The Code's the Thing
A development environment isn't much good if you can't use it to write code. Looking at the list of nominees in the .NET Tool or Add-In of the Year category in the Developer.com Product of the Year contest this year, it's pretty clear that .NET developers are indeed busy writing code. This year's finalists are for the most part hardcore tools for those who have a substantial amount of source code to manage:
- CodeSmart 2005 for Visual Studio .NET
- Microsoft Visual Studio 2005
- Mono .NET Framework
- Rational Rose XDE Developer for Visual Studio
The competition to choose a winner was tough this year, but before we get to that, let's take a look at the finalists in some more detail.
Like Visual Studio, Only More So
After you've used AxTools' CodeSmart 2005 for Visual Studio for a while, you may have a hard time telling where CodeSmart leaves off and Visual Studio begins. That's because the several dozen tools in this VS add-in package are so well integrated into the host application that you can be pardoned for forgetting that they didn't come directly from Redmond. AxTools has a knack for spotting places where the VS user interface can be made just a bit better with some extra work, and then shipping that extra work in a clean and usable form.
For example, the Code Explorer window combines the best features of both Solution Explorer and Class View and then adds even more to make for the easiest hierarchical navigation window around, complete with searching, filtering, and customization. The Extended Find and Replace dialog has a wider selection of scopes than the default version as well as more flexible options. SmartComplete adds IntelliSense-like features to language keywords, and a code formatter can quickly clean up places that have become messy. That's just a sample of what you'll find in this well-integrated package, whose toolbars and windows and menus blend seamlessly into Visual Studio 2003 or 2005.
Most developers probably won't use every tool in the CodeSmart package, just like they don't use every tool in Visual Studio. But there are enough valuable pieces here to make just about any developer's life easier.
It's long been accepted wisdom that Microsoft needs three versions to get an application right. If that's the case, then Visual Studio 2005 ought to be a winner - and it is. With a newly-polished a spiffed=up look and feel and numerous usability and productivity improvements, the combination of Visual Studio 2005 and .NET 2.0 offers many substantial reasons for .NET developers to upgrade.
If you've been paying any attention at all, you've likely been inundated with PR about the features and benefits of Visual Studio 2005. There's the new high-end Visual Studio Team System that offers a variety of features for teams of architects, developers, and testers working together on huge projects. There are the new free Express editions for hobbyists and beginning developers. There are little fit-and-finish things, like on-screen arrows to show where a toolwindow will dock when you drop them. There are advances in code generation, in the underlying languages, in rapid development with ASP.NET, and much more. It would take many articles the size of this one just to list the improvements in Visual Studio 2005.
Some developers have reported teething pains with advanced features of the new version, but overall the early reception seems to be quite positive. Indeed, one of the most frequent complaints I've seen is that you can't compile .NET 1.1 projects with Visual Studio 2005 - people are anxious to get the productivity improvements of the upgraded IDE even before they have the time to upgrade their code. It's hard to imagine a stronger endorsement from the coding community.
The Mono Project is a repeat contender on this list - indeed, it was last year's winner. Its aim is to provide a complete open-source .NET implementation, starting with the ECMA standards for C# and the Common Language Infrastructure (which Microsoft wisely released in a bid for greater acceptance of .NET). With commercial backing from Novell, Mono now provides a solid infrastructure for running many .NET applications on Linux, Mac OS X, and Solaris.
Mono technology now covers most things you'd want to build an application - desktop forms, ASP.NET, security, XML, remoting, database access, and much more. With its open source nature, it's also attracted people to write plumbing for many things that don't tie in well with the official .NET bits from Microsoft (like CORBA and Novell Directory LDAP).
With a wealth of free tools available, as well as open-source databases, Web servers, and operating systems that all play well together, Mono offers a way to move .NET applications to a completely free platform. Many developers are showing an interest in this technology, and it continues to advance at least as rapidly as the "official" Microsoft implementation of .NET.
Don't Write, Generate!
Code generation remains high on the radar of many .NET developers, and it's easy to see why. If there is such a thing as a typical .NET application, it's probably a Web application that works with data stored in a database. Such an application has plenty of repetitive code in it, and we developers hate writing the same code over and over again. That's where code generation comes in: pick the right tool, supply the right parameters, and it will spit out all the code you need.
The code generation tool on this year's nominee list is MyGeneration", and it's certainly a good choice. MyGeneration supports a variety of data access architectures (including its own dOOdads, NHibernate, Microsoft's Data Access Application Block, and DotNetNuke) and databases (including SQL Server, Oracle, DB2, Access, and MySQL) out of the box. That's just a start, though - with its templated architecture, you can extend MyGeneration to generate just about any code you can imagine.
MyGeneration has an active following, an online library of templates, hooks for creating a user interface on top of the data access chunks, support for a variety of languages in templates - and it's free. It's hard to get a better value than that.
UML for .NETThe last entrant in this year's category, Rational Rose XDE Developer for Visual Studio, is a high-end enterprise tool (with a pricetag to match). But if you've bought into the Rational process, it offers an unparalleled suite of modeling and code tools for building .NET applications.
With versions targeting both J2EE and .NET, as well as support for the Eclipse, Visual Studio, and WebSphere IDEs, Rational XDE can support even very ambitious cross-language enterprise development projects. That's critical when you're working on large projects, where it's not unusual to mix and match components from different vendors. The tools here offer support for multiple UML models from a variety of perspectives, as well as forward and reverse engineering between code and model. You also get integration of a variety of other performance and tracing tools to help you nail down any problems at runtime.
With the release of Visual Studio Team System, Microsoft is now trying to grab some of the same market that Rational XDE has already been selling into for a few years. One way to look at that is as an endorsement of the existing product: it's so good that Microsoft feels the need to compete.
And the Winner Is...
This year we've actually got two winners to announce in this category, as the balloting was extremely close. The overall winner this year is Microsoft Visual Studio 2005. But we're also announcing a "non-Microsoft" winner: the Mono Project. Between these two products, you can easily use .NET 2.0 to build applications that run just about anywhere, from Windows Mobile SmartPhones to Windows desktops and servers to Linux, Mac, and Solaris boxes. That's a pretty impressive accomplishment.
Trends and Thoughts
.NET has clearly grown up in the five years since it was introduced. This year's entrants in the .NET tool and add-in category aren't little toys or minor productivity aids, but serious code-slinging tools. Whether it's cross-platform code, enterprise UML models, or massive code generation, .NET has you covered. To Microsoft's credit, they've kept an easy entry point with the Visual Studio Express Editions, but beyond that, serious developers can take the .NET system as far as they need to. When you're solving real-world business problems, that's important.
About the Author
Mike Gunderloy is the author of over 20 books and numerous articles on development topics, and the Senior Technology Partner for Adaptive Strategy, a Washington State consulting firm. When he's not writing code, Mike putters in the garden on his farm in eastern Washington state.