Itâs been two years since we first launched our public ASP.NET web
site here at work. Along the way, weâve implemented a host of
.NET related technologies, some with good success, and others less
successful. Hereâs a re-cap of what worked and what didnât for
us, and why:
TDD with NUnit was one of the most valuable additions to our
development process here. Iâve mentioned this before, but our
development time has been reduced, and we spend less time debugging
with layers that were designed using TDD.
With a half-dozen solutions re-using business components, layering
has enabled us to get a great deal of re-use from our code, simplify
Visual Studio project management, and organize and simplify our coding
process. We have 4 layers, UI, Business, Data and Common. Simple,
but works great.
With ASP.NET Web Services weâve very easily extended our
business layer to our customers and partners. They work like
promised, and weâve integrated partners in cross-platform
environments. Weâve also integrated 3rd party services into our
architecture with equal success.
Early on, we made the decision to create installers for all of our
applications, in order to push them into production
environments. This has allowed us to keep our production
application settings in one place, in an easily portable
format. In the past two years, weâve changed servers a
handful of times, and had to recover from hardware failures. Each time,
our installers allowed us to setup new servers in a matter of minutes,
not hours.
If you can get a hold of one of these bad boys, Iâd recommend
it! It works great for updating production code: Just starve
traffic from a server, update it and bring it back into the mix.
Your end-users are
none the wiser!
Red-Gate and Resharper = Coding Bliss. Iâm not even going to write
about them here, because you owe it to yourself to find out why theyâre
so good. See www.red-gate.com and www.jetbrains.com for more information.
Yep. We use em both, and they both have their place.
DataSets are a great method for quick data binding and updating,
especially with one-off sets of data. Business Objects are the
way to go with your base business entities that are going to see lots
of re-use. But donât take my word for it, read through the
CodeBetter.Com archives and get into the debate.
If you need to provide GEO location and map data in your
applications, Map Point Web Services are the place to look. Very
cool and full-featured SDK and Framework.
This has worked okay, and has itâs advantages such as single-sign
on, and security management. Itâs a hassle though, keeping the AD
store in sync with your local SQL database, and updating
and querying AD. If I had to do it again, Iâd use the
Enterprise Libraryâs Security Application Block.
What Didnât Work
Custom UI Controls
In the last two years, Iâve developed a whole host of custom UI
controls for ASP.NET. A TabStrip, a TreeView etc. These
have been buggy and have had such bad code smells that
theyâve smelled up other code around them. Now, in my defense, the
tools available at the time were not all that great, but now with
companies like Telerik and ComponentArt,
donât waste a second developing custom UI tools. Iâm currently in
the process of ripping out all of my dumb code and replacing it with
ComponentArtâs suite.
I blogged about how to implement this once, and actually deployed
some code with it. Even when I figured
out this complicated code, it was still buggy and
difficult to maintain. Iâve recently ripped all this code out,
and manually updated all the clients that are using it. Let me
just say that I canât wait for ClickOnce.
Ugh. Weâve ripped out all Crystal Reports except one, and this one
report still causes us headaches. All I can say is ugh.
What Works and Works and Works, and keeps on Workingâ¦
ASP.NET and the .NET Framework. Really, what a joy it is to work
with this technology. Thanks .NET, we have, IMO one of the best
port sites in the world.