Welcome!

Bill Wagner

Subscribe to Bill Wagner: eMailAlertsEmail Alerts
Get Bill Wagner via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Top Stories by Bill Wagner

Building binary components sometimes means utilizing late binding and reflection to find the code with the particular functionality you need. Reflection is a powerful tool, and it enables you to write software that is much more dynamic. Using reflection, an application can be upgraded with new capabilities by adding new components that were not available when the application was deployed. That's the upside. With this flexibility comes increased complexity, and with increased complexity comes increased chance for many problems. When you use reflection, you circumvent C#'s type safety. Instead the invoke members use parameters and return values typed as object. You must make sure the proper types are used at runtime. In short, using reflection makes it much easier to build dynamic programs, but it is also much easier to build broken programs. The .NET language compile... (more)

Implementing Patterns with Generics

It's been a few months since Visual Studio 2005 was released. In that time you've probably seen and read quite a bit about generics. Unfortunately all those articles and presentations can leave you with the impression that generics are useful only in the context of collections (List, Dictionary, Queue, and so on). It's true that many of the most common uses of generics involve collections. But limiting your use to collections will cause you to miss many of the opportunities for creating components that you can reuse in even more ways. In fact, many idioms where develo... (more)

C#3.0-LINQ

C# 3.0 represents a radical new approach to .NET development. The new language features were added primarily to support Language Integrated Query (LINQ), allowing you to query data using the same constructs regardless of where the data is currently stored. However, you'll find that there are many things you can do with these new features outside of queries. There's a learning curve for these new features, but by adopting them you'll find that you can be much more productive than you ever were in earlier versions of C#. In this article, I'll give you a whirlwind tour of C# 3.0 lan... (more)