Author Archives: Joe Wirtley

April 25, 2018, 6PM: UI Tests are Fun to Write (if you Write them Right) – Seth Petry-Johnson

Automated browser tests can be a nightmare to write and maintain. Unlike unit tests they’re tough to set up, slow to run, make permanent changes to data, and they’re incredibly brittle. Even a tiny CSS change can result in cascading failures!

You can’t ignore these issues, but you CAN design around them by adopting a few key patterns and techniques. Data creation helpers let you construct intricate data graphs in one line of code. Page Objects abstract away tedious browser automation code and make tests resilient to changes in HTML structure. Applied correctly, these patterns (and others) take away the pain and make UI tests a joy to create!

Bio:

Pointy-haired boss by day, coder by night

Seth spent 21 years as a professional developer/architect before finally turning in his daily commit rights for a Microsoft Project product key. He now spends his days as a pointy-haired boss leading a small product development team in the search for simple solutions to complex problems. He is passionate about clean architecture, testable systems, and bringing order to chaos. Seth lives in Columbus, OH and is an active participant in the Midwest developer community. He’ll write TPS reports when he has to, but still enjoys writing, reviewing, and talking about code.

March 28, 2018, 6PM: Building concurrent systems with Akka.NET – Joe Wirtley

Building concurrent systems is challenging. Code that is innocuous when run on a single thread can require a tangle of locking when running on multiple threads. One way to address this problem is leveraging the actor model. Akka.NET implements the actor model and is ideal for developing concurrent, scalable, and fault tolerant applications in .NET. In this session, you will see code to create actors, send messages to actors, and handle messages within actors. You will also learn about advanced capabilities of Akka.NET including routing, location transparency, persistence, and clustering. You will leave with ideas of how you might use Akka.NET in your own projects and resources to continue your exploration.

Bio: Joe Wirtley is an independent consultant with over thirty years of professional software development experience. He works with .NET development teams helping them create clean, well-designed code, which in turn produces higher quality web and desktop applications. He is an active member of the developer community in southwest Ohio and helps lead the Dayton .NET Developer Group. He has presented at many user groups and conferences including CodeMash, Code PaLOUsa, CodeStock, and Stir Trek. He is the author of the Generics in .NET screencast for O’Reilly. You can check out his site at http://WirtleyConsulting.com or follow him on Twitter: @JoeWirtley.

February 28, 2018, 6PM: Blockchain – Bitcoin, Ethereum, and the Future of Everything – David Shattuck

Bitcoin blinked into existence ex nihilo in 2009 and brought with it what may very well prove to be one of the most important creations of computer science in the last decade: the blockchain. This presentation offers a brief history of the blockchain, an overview of how the technology works, a demonstration of an Ethereum smart contract in action, a survey of interesting projects currently being built on blockchains, and wild speculation about what the future holds.

Files supporting the presentation can be found here.

Bio:
David Shattuck is a software developer at Smart Data Systems in Miamisburg, OH. He works primarily with whichever development stack happens to be required by the current client and/or project, though the Microsoft stack was his first love. He has been a cryptocurrency enthusiast since 2013 and speaks on the subject whenever the opportunity presents itself, and also often when it doesn’t. He is amazing at video games.


Special Thanks to our meeting sponsor: PSA Airlines

PSA Airlines

American Airlines, the world’s largest airline, is expanding its Technology Department in Dayton to support PSA Airlines, a wholly owned subsidiary which, since 2014, has tripled its size and continues to grow. We are currently building out a small, agile development team who are striving to become thought leaders in the organization around Azure, DevOps, business process automation and data/analytics. So this is a great opportunity to join a small local team that has the benefits of drawing from the vast resources of American Airlines. Come join us: https://jobs.aa.com, we’re hiring!

January 24, 2018, 6PM: Easy CQRS with ASP.NET Core & MediatR – Ryan Foote

Are your controller actions gigantic? Is your service layer bloated? Are testing and maintenance a nightmare? Need a scalable solution? The CQRS (Command Query Responsibility Segregation) development pattern can help address these issues. But implementing a distributed CQRS architecture can be intimidating. If not well designed, it can make your application exponentially more complex and difficult to maintain. So why not start simple? Using the popular .NET library, MediatR, it’s super easy to write simple, testable, scalable CQRS applications. In this session, we will explore CQRS and its core concepts while building a mind-blowingly simple ASP.NET Core application with MediatR. We will emphasize separation of concerns, dependency injection, code reuse, thin controllers, and unit testability. You will leave with knowledge and confidence to start using MediatR in your own projects.

Bio:
Ryan, first of his name. King of his household, his mancave and his backyard. Raiser of children, author of code, lover of patterns and injector of dependencies.

November 15, 2017, 6PM: A Feature Based approach to Software Development – Ryan Lanciaux

Creating a solid architecture for any system we design can be a challenging process. The frameworks we use have often include some opinion about how our software should be designed but these guidelines may not always be the best for the long-term health of our application. How can we build our applications to ensure they are both maintainable and extensible in the future?

In this talk, we’ll discuss how taking a feature based approach to our application architecture can help us clearly structure applications that scale well over time. Additionally, we will talk about how we can apply these concepts to both the front-end and back-end to promote a consistent mindset across the entire tech stack. All examples will be using .NET Core and React but the concepts apply well beyond these technologies.

Bio:
Ryan Lanciaux is a professional software developer in Ann Arbor, MI. Although he programs in several languages, his current area of focus is front-end development. Ryan attempts to contribute to the development community through his (often neglected) blog.

October 25, 2017, 6PM: Rebooting the ASP.NET Franchise – Jay Harris

Are you an ASP.NET developer that is tired of the baggage and cruft within the framework? Do you wish you could use OS X for developing ASP.NET apps? Are you new to ASP.NET, but are adverse to installing Windows and Visual Studio? Everything has changed: ASP.NET isn’t just for Visual Studio, anymore. Learn how ASP.NET has broken free from Windows and has turned into a fresh, cross-platform, OS-agnostic framework. Develop ASP.NET applications on your OS, with your editor, in your way. No more compromises, no VMs, no workarounds. Grab some popcorn an experience the reboot of the ASP.NET Franchise.

Bio:
Jay is a code wrangler, software consultant, and co-owner of Arana Software. He has been developing on the web since 1995, when the Blink tag lured him away from Visual Basic 3, and has been awarded as a Microsoft Regional Director, ASPInsider, and Microsoft MVP. Recognizing that the greatest application performance bottleneck is a developer’s time, Jay’s continuing quest is for frameworks, modules, tools, and practices that make developers stronger, fitter, happier, and more productive.

Originally from Rochester, New York, Jay resides in Las Vegas, Nevada. Follow him on Twitter at @jayharris.

September 27, 2017, 6PM: Digital Payments in a Mobile World – Parag Joshi

Apple Pay and Android Pay are now here as are several other methods to pay electronically rather than using conventional means such as check or cash. How do we integrate these in our app and what are our options? In this session, we will look at at an Android app that uses Android Pay to process payments using Stripe. We will take a look at the Stripe backend and also the android pay development do’s and do not’s. We will also look at an iOS app that uses Square to accept credit card payments. No doubt, if you have walked into a store or rented a car, you have seen the Square terminals. We will take a look at the Square reader and walk through the code to interact with a Square app. You will leave this session with an understanding of what it takes to integrate Stripe and Square into your apps.

Bio: Parag Joshi (@ilovethexbox ) is a Co Lead for Digital , Mobile, Portal and Outsourcing for Cincinnati Business Unit of Centric Consulting LLC and has over 19 years software development experience working on various technologies. He is co director of the Cincinnati DotNet User Group (CINNUG.org) and also director of the Cincinnati All Things Mobile User Group (Catmug.org). He spends his time writing apps and staying current on technology. He loves playing tennis with his 13 year old son and singing with his 7 year old daughter.

August 23, 2017, 6PM: Dealing with Database Sprawl in Azure – Mike Wood

“Move your database to the cloud they said! Shard your databases for scale they said! Now how do I deal with all these databases when it’s time to update them? How can I run queries again each of them? And where’s my SQL Agent?!”

These statements aren’t uncommon when databases are moved to the cloud. Come hear about how Azure Elastic Database Jobs can help alleviate some of the pains of managing and updating multiple databases in Azure SQL DB deployments. Don’t let the name fool you: you don’t need to be using Elastic Database Pools to use this tool. You can use this tool to roll out schema changes across databases, execute TSQL across them or even use it as a SQL Agent replacement. Best of all, learn about how this tool is going to be a hosted service from Microsoft and see how you can get in on the preview!

Bio:
Mike Wood is a Product Manager for SentryOne where he works on cloud related products and services. He describes himself as a problem solving, outdoorsy, user group founding, dog-loving, blog writing, solution creating, event planning, married, technology speaking, father of one kind of guy. When he’s not living up to that title he’s an avid reader, (horrible) violinist and gamer. Michael is one of the Founding Directors of the Cincinnati .NET User Group as well as the founder of the Cincinnati Software Architecture Special Interest Group. He is also a Microsoft MVP in Windows Azure. You can catch up with Mike on his blog at http://mvwood.com/blog and on twitter under the handle @mikewo.

July 26, 2017, 6PM: Flying High with Xamarin! – Sam Basu

Cross-platform mobile development has been democratized for .NET developers – thanks to Xamarin & Microsoft. Let’s build a cool aviation app together – targeting all platforms from the comforts of Visual Studio on Windows or Mac. Real world apps need cloud data connectivity, navigation, storage, lifecycle management and polished UI – let’s do all that. Let’s look at some tooling for professional Xamarin developers. Let’s dip into device capabilities, reuse libraries and elevate the user experience. Oh, and we will throw in some passion for aviation in the app, like private jets and supersonic possibilities. Loads of fun while learning cutting-edge mobile development – you in?

Bio:
Sam Basu is a technologist, author, speaker, Microsoft MVP, gadget-lover and Progress Developer Advocate for Telerik products. With a long developer background, he now spends much of his time advocating modern web/mobile/cloud development platforms on Microsoft/Telerik technology stacks. His spare times call for travel, fast cars, cricket and culinary adventures with the family. You can find him on the internet.