With more than 20 years experience in software design and engineering, Bill Wagner has led the design on many successful engineering and enterprise Microsoft Windows products and adapted legacy systems for Windows.
In 2000, he started using .NET and now spends his time facilitating the adoption of .NET in clients’ product and enterprise development. Knowledgeable in all .NET areas, Bill’s principal strengths include the C# language, the core framework, Smart Clients, and Service Oriented Architecture and design.
In addition to his role at SRT Solutions, Bill serves as Michigan’s Regional Director for Microsoft. In 2005, Microsoft awarded him “C# Most Valuable Professional (MVP)” status. These honorary positions allow Bill previews of upcoming technologies and help ensure SRT clients the most advanced and cutting-edge solutions for their technology projects.
An internationally recognized author on the C# language evolution, Smart Clients and enterprise design, Bill has been a contributing editor, editorial board member and regular columnist for over a decade with his tutorials and advanced essays published in MSDN Magazine, MSDN Online, .NET Insight, and .NET DJ. He also writes a monthly column for Visual Studio Magazine, and a monthly column on the MSDN C# team developer center.
Bill’s book, Effective C#, was published in 2004. His next book, More Effective C#, was distributed in 2008. Bill was also among the annotators on the C# Programming Language Specification, 3rd edition, also published in 2008.
Bill earned a Bachelor of Science degree in computer science from the University of Illinois at Champaign-Urbana.
Suggested Reading
03 Aug 2010
Read and Recommended: The Jazz Process
Bill Wagner writes
"...You may not agree with everything, but it will make you think. Adrian Cho uses a jazz combo as a metaphor...Throughout the book, he suggests themes from his experience as a jazz bassist...The Jazz Process will open your eyes to a different way of thinking about teams, business, and software development. It’s a huge payback for the time invested in reading it."
Read post »
29 Jun 2010
Nested Using Statements: Redundancy is a Safety Net
Bill Wagner writes
"...One of the rules of IDisposable is that clients can call Dispose() multiple times and the effect must be the same as if it was called exactly once. (See Item 17 in Effective C#, 2nd edition for more details). The above code snippet will dispose twice, which is fine. If I’m faced with a choice where my error is possibly disposing..."
Read post »
01 Jun 2010
Solution to Anonymous Function Conversion to Delegates and similar signatures
Bill Wagner writes
"...why EventHandler
is not the same as Action