Joe Wirtley

Information & Communications Technology

.NET Clean Code Akka.NET C# Generics

Springboro, Ohio, United States

Joe Wirtley

Wirtley Consulting LLC

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 or follow him on Twitter: @JoeWirtley.

Current sessions

Building concurrent systems with Akka.NET

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.

Attack of the clones: Eliminating duplicate code in .NET

Code duplication threatens the agility and maintainability of software. Literally repeated code can be easily remedied, but there are other more subtle and insidious kinds of code duplication. What about code that's the same except for type, or code that needs to be applied in many locations? In this session, you will learn about tools to help find duplicate code. After identifying problem code, you will learn how to eradicate it with software design techniques and .NET framework features. Specifically, you will see how to apply generics, delegates, extension methods, and attributes to quash repeated code. You will leave with ideas and techniques to reduce duplicated code in your development.

Creating Eloquent Code

If you've been programming long, you've had the experience of looking at your own code and struggling to understand it. Worse yet is trying to understand other people's code. Every piece of code you write not only instructs the computer, it also informs human readers. What is it telling them? In this session, you will learn to listen to what your code is saying. You will see how choices about scope, visibility, coupling, and cohesion reveal themselves in your code. You will learn principles and practices for creating eloquent code. Examples will be in C#, but will be applicable to any object-oriented language. You will leave with new ideas to make your code speak clearly and inspiration to be more mindful while creating code.

Generics in .NET

All .NET developers have used generics, but too few utilize their full power. Most developers who use generics think of them only for collections, when they are valuable in any situation where code is the same except for type. This session is a deep dive into generic classes, interfaces, methods, and delegates. You will learn how to increase the power of generics by applying constraints, and will see examples drawn from real applications. You will leave with ideas about how to apply generics in your development and understanding the .NET features necessary to realize those ideas.

The Actor Model and why you should be using it

You are probably familiar with the object-oriented and functional programming paradigms, but what about the actor model? The actor model is designed for concurrent programming and is an easy way to create systems that do many things at once. For example, the actor model is an excellent way to implement IoT (Internet of Things) applications or take advantage of the processing power of multiple CPU cores. Actors provide a natural way to model and reason about concurrent systems, especially for developers working in object-oriented languages. In this session, you will learn the fundamentals of the actor model. You will learn how actors work, communicate, and act as state machines. You will see how groups of actors cooperate in distributed, scalable, and fault tolerant systems. The session will include code examples in Akka.NET, which is a toolkit for C# and F#. At the end of this session, you will know the strengths and weaknesses of actor systems, and when they may help you solve a problem.

Past and future events

Momentum 2019

21 Mar 2019
Cincinnati, Ohio, United States

CodeMash 2019

7 Jan 2019 - 11 Jan 2019
Sandusky, Ohio, United States