As they gain experience, application developers often establish a preferred procedure, or a standard modus operandi that carries them through the unpredictable project cycle. This familiar IDE coupled with pet methods make up the security blanket responsible for producing whatever modicum of comfort a developer feels during the inevitable coding crunch. However, that familiarity can also lead to stagnation and stubbornness when new, and potentially better, ways to produce software become available.
One innovation in application development that programmers should not ignore involves the melding of open source development tools with the Microsoft .NET development environment. While on the surface the combination seems to defy common sense, when scrutinized from the cold hard perspective of "what works best," evidence shows that the mixing of seemingly incompatible development universes produces a fruitful relationship.
Open Source .NET Development : Programming with
NAnt, NUnit, NDoc, and More
In his book, Open Source .NET Development, published by Addison-Wesley, author Brian Nantz explains how open source programming tools like nAnt, nUnit, and nDoc can be used to enhance development within the .NET Framework. The benefits of combining the best each has to offer should not be summarily dismissed by any serious developer. Perhaps it is time to get out of your rut and move beyond your current comfort zone with some different programming tools. This book shows you the benefits of this approach with practical examples and in-depth examinations of open source .NET projects already in progress. TechRepublic has made Chapter 2, "Open Source and the .NET Platform" available for free download. This chapter will give you an overview of some of the potential benefits achievable when open source tools are combined with .NET application development.
Combining the best of two worlds
In the following interview, TechRepublic asked author Brian Nantz for his opinions concerning application development using a combination of open source and .NET tools to form a better overall IDE.
[TechRepublic] During the past six months, we have seen an increasing interest among TechRepublic and Builder members in open source applications. The gist of the member discussion seems to revolve around the coming together of two concepts: proprietary software is expensive, and open source is a viable alternative. Your book seems to combine this idea quite nicely. What are the overall benefits of open source development using Microsoft .NET?
[Nantz] I think the biggest advantage of open source is that the source is open. I know that sounds a little trite but it is true. A developer can learn so much from inspecting other people's code and there are so many code bases out there to learn from. Not only is proprietary software obviously more expensive, but many times companies are not very responsive to fixing bugs they consider to be minor but are wreaking havoc in your program. Then there is always the chance that the company can go out of business. These companies actually want you to pay, in many instances, a yearly fee for the right to their code if they go out of business!
The uniqueness of open source code written using .NET is that C# is an ISO standard (whereas other popular open source languages are not) and that it makes open source much more readily available to traditional Microsoft windows developers. These developers may not have even considered open source before.
[TechRepublic] Open source software developers often have an evangelistic perspective on software development. The zeal of this perspective often includes dismissing anything Microsoft. Yet your book clearly shows that many open source developers are using .NET to develop their software. Do you think the practicalities and benefits of open source .NET development will sway the more passionately anti-Microsoft developers in the near term or will it be a long term process?
[Nantz] In my experience, most of the anti-Microsoft crowd is opposed to Microsoft's business practices not necessarily their technologies or the people themselves. I don't think Microsoft and open source have a bitter hatred for each other. I have seen Microsoft employees using open source products like NUnit and Firefox, and I have also seen prominent open source proponents using OWA/Exchange to remotely check their corporate e-mails.
Because of the industry-wide interest in Web services and interoperability, I have seen Microsoft, IBM, and the Apache group very interested in working together and learning from each other.
[TechRepublic] Security is an all-consuming concern for organizations recently. Secure application development plays a major role in overall security and is a major component of any project. What security advantages are offered by the use of open source .NET development?
[Nantz] Security and open source is a huge topic. In my book I have a section on "Is Open Source more Secure," where I cite a couple of studies and give some insights from my experience. The conclusion is basically that this issue requires a lot of common sense. I think it is foolish to say [that] in all instances one side or the other is more secure. Take it on a product-by-product basis. Microsoft says that because the code is open that crackers can inspect it for potential attacks. But they neglect to point out that you as the user can do the same thing! You can evaluate the security and stability of the code—or hire someone specializing in security to do it for you. I don't think this is even possible in proprietary products.
You are blindly accepting that the code is secure when you really don't know if it is or not until it is too late. The rule of thumb is that if you don't know if you are being hacked or not, then for all practical purposes you are being hacked.
[TechRepublic] In your book, you mention .NET programming with nAnt, nUnit, nDoc, and many other tools, IDEs, and application interfaces. Have you come across any new programming tools that developers working in open source .NET should look into before tackling their next project? Which of the available tools do you personally find most useful?
[Nantz] .NET open source is always evolving at such a rapid pace! I have a blog and a wiki on my Web site where I try to keep up on useful things. A new project I am checking out now is Nini because I find .NET Configuration Classes a little lacking sometimes.
I also find many of Microsoft's Application Blocks are useful and respect what work James Newkirk is doing there, but I am still hoping they will make those projects open source.
[TechRepublic] As .NET and the open source movement continue to evolve, what impact will that evolution have on application development? Do you eventually see a day when the line between open source and proprietary software is so blurred that it becomes for all intents and purposes meaningless?
[Nantz] In my opinion I don't think these two camps will ever reconcile their differences. Open source is the only software development "organization" that can compete with Microsoft. Microsoft can't figure out a strategic business plan to compete with open source. With each competitive product analysis Microsoft does, they are only lending more credence to the open source community. I do think there will come a day when most users and developers (on both sides of the fence) will take the right tool for the job and not really be too concerned about its licensing.
Tools make the project
The concepts detailed in Open Source .NET Development are not abstract theory. They are practical, tested methods already being used successfully by numerous application developers. Like any other artistic endeavor, proper tools make the project. As an application developer, you should always be striving to acquire the tools that will make your coding more efficient and more effective. Download Chapter 2, "Open Source and the .NET Platform," to get an overview of the potential benefits you will receive from combining open source tools with the .NET development environment.
Additional white paper resources
- Architecting an Application using the .NET Framework
- Exploring Open Software Standards for Enterprise E-Business Computing
- Enterprise Application Development Using Eclipse
Mark W. Kaelin has been writing and editing stories about the IT industry, gadgets, finance, accounting, and tech-life for more than 25 years. Most recently, he has been a regular contributor to BreakingModern.com, aNewDomain.net, and TechRepublic.