Although I have only scratched the surface of WebMatrix I felt comfortable with its existence as the right tool for a very particular job. My gut was that technically we could look at WebMatrix as a solution for simple forms-over-data web applications where the data is your application and you just need a pipe to get it back and forth between your datastore and web pages. Screw separation of concerns in these scenarios as it would just add friction and unnecessary abstractions and make the solution less maintainable. Just toss the data access and minimal code within the pages themselves as best as possible. As long as we learned from Classic ASP days that this type of structure can get really ugly, really fast as the complexity of the application evolves, we should be okay 🙂
From a Microsoft perspective the WebMatrix stack may get developers going to PHP for this type of development to come to ASP.NET and IIS. It will hopefully also get the remaining Classic ASP Developers to move to .NET as well.
This is great, but recently I read a blog post suggesting that WebMatrix is a good way for developers to ramp-up to more enterprise frameworks and tooling.
“WebMatrix is a stack and tool for folks just entering the ASP.NET development arena. The hope is WebMatrix will provide an easy on-ramp to the enterprise worthy frameworks for the those new to the party. WebMatrix is more concerned with you learning the fundamentals than allowing you to effectively separate the concerns of your application, unit test every aspect of your site or create an n-tier solution.”
I agree that one can learn the fundamentals of ASP.NET using WebMatrix, but I doubt it will help with learning the fundamentals of enterprise web development and what it takes to move to an enterprise-worthy framework. In fact, development learned using WebMatrix may do more harm than good as a stepping stone to enterprise development.
Enterprise web development is all about creating maintainable and sustainable applications for which you must understand separation of concerns and other core software development principles that you won’t be leveraging with WebMatrix. One can just read the Twitter streams of all the professional ASP.NET Developers during the WebMatrix announcement that it pretty much has no place in their toolbelt except for the possibility of the situation I mention above ( and as the shiny new toy we all love to play with ). The fact is, separation of concerns and other basic software development principles are crucial to professional enterprise web development and not learning them from the beginning can cause more pain later on as you try to unlearn all your “bad practices.“ Just ask me who is constantly unlearning old habits, all the Classic ASP developers who never could transition to .NET, and those ASP.NET Web Developers who still don’t fully understand how to develop a maintainable web application. It is difficult to unlearn old techniques that were put in place while learning a skill.
My goal isn’t to beat up WebMatrix as I can see a purpose for it, but let’s not have developers thinking this is the best path for being a professional enterprise web developer. For those interested in Enterprise Web Development, I recommend using tools and techniques being used by the professionals that embody sound software development principles and focus on the methodologies, practices, and principles for turning out good solutions.
The WebMatrix technology stack is mainly about providing a suite of tools for more simple development needs – the right tool for the right job.
To all those just starting to learn web development I wish you the best of luck. Technology is changing faster than ever and it is easy to get distracted and not focus on skills that will sustain you in the long run. In general, you may want to focus on your software development skills first and then learning a particular envirornment for you to apply those skills. Sound software development skills will always stay with you, be in demand, and will allow you to adapt quickly to changes in technology.