I should probably be writing articles titled an ASP.Net Crash Course for Developers right now, the past 10 days or so I have been involved in dealing with an ASP.Net Application written by someone else, as well as two ASP.Net application which I am developing as well.
The application written by someone else is the product of another failed outsourcing project, I was asked to initially do a code review of this mess, as well as now I am having to re-write a large majority of it. When are companies going to realize that just because they call themselves programmers, and are cheaper than the people sitting down the hall doesn't mean that they even understand the concept of doing business in the United States? (This is a real pet peeve of mine, and I'll save this rant for another post.)
Anyway, so now the re-write of the outsource mess is project number one, and Project Number two is a Web Interface into my Business's Software that enables all the same functionality as the FoxPro App.
Now here's the kicker, My experience to date in ASP.Net is to use it for developing Web Services to move functionality requiring major processor horsepower from the desktop application to the Server. And my experience for Web Development in General is limited to HTML 3.0 and ASP using VB-Script. So for the past 10 days I have been struggling with Visual Studio 2005's UI for developing Web Forms, and struggling to create a general enough Application Framework that going forward I won't be forced to re-write.
Now my programming past includes c and c++, and I've been doing Web Services in c# for about a year now, so I'm no real stranger to the languages, and HTML 3.0 is more than sufficient to get good looking Web Forms. So what's the big deal here? Well I've never been a big fan of buzz words, and with .Net Microsoft changed all the names for things, so doing searches for information is where the real challenge is.
BUT there is light at the end of this tunnel for me, I finally got over the Sand Dune yesterday, and now I've gotten all the major aspects of developing these applications figured out. The last two major obstacles for me were the Page.Master files, and User Controls.
The last application framework that I developed was in 1999-2000, and it was FoxPro based. It's designed around using SQL Server and FoxPro. That project's original goal was to separate the Presentation Layer from the Business Rules, and everything from the Data Layer. When the applications were small, it worked very well, but when the applications started to grow in complexity, they began mixing the three layers together to tightly that it's no longer possible to replace one layer without affecting all three.
In the .Net arena I don't plan to make that mistake again, this time I know most of the major pitfalls, and I chronicled the history of my FoxPro framework well enough that I think I know the major problems that required me to bring the layers more tightly together, so this time I think I can do a better job at separating them.