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:
What Worked
Test Driven Development
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.
Application Layering
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.
Web Services
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.
VS Installers
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.
WSMQ
I would say that this worked wouldn’t I? I wrote it, and yes,
it’s working well for us. A great alternative, IMHO, to MSMQ for
simple queuing.
Cisco Systems CSS (Load Balancer)
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!
3rd Party Tools
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.
DataSets AND Business Objects
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.
ASP.NET Mobile Controls
These work exactly as promised, and are a great way to extend your current framework onto mobile devices.
MapPoint Web Services
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.
What Sorta Worked
Active Directory Integration
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.
App Updater Application Block
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.
Crystal Reports
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.
-Brendan