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.

Untitled Document


Open Source .NET Development : Programming with
NAnt, NUnit, NDoc, and More

By Brian Nantz
ISBN: 0321228103
Publisher: Addison-Wesley Professional
(Aug. 16, 2004)
Book and CD-rom edition
Pages: 504


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.

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.

By far the most useful tools are:
NUnit, NAnt, CruiseControl.NET, Sharpdevelop,
Reflector, and Log4Net. These are
tools that I use every day.

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