Post delayed by bugs – of the viral nature…
My ASP.Net course (ASP.Net Using C# 2010 – Part 1) wrapped up on Thursday and I have quite mixed feelings about it. I believe that the course was aimed at C# developers who are transitioning on to ASP.Net and it shows. I myself had no C# experience, but its very name displays its C heritage and I have used a number of other derivative languages in that family, so I could follow the general concepts.
The way that the course was presented and many of the language libraries used were too much like developing a Windows application for my liking. When developing a Windows application you generally aim for consistency – the same menu structures, the same look and feel, the same data entry and presentation widgets. The web is much freer. Plus, most websites are not about entering and presenting sales data. Intranet applications, maybe, but even then plenty are designed for other activities.
Datagrids, preconfigured navigation and site map structures, themes other than pure CSS or HTML-like templates. It all felt very old fashioned web. In fact it felt like a programmatic evolution of Microsoft FrontPage. It’s what a Microsoft Windows Application Developer might want and I think that’s the problem.
Microsoft have, over the years, struggled to accept that the World Wide Web should not be tied to their products.
Take Microsoft Word for instance. It is the bane of most webmasters’s existence. Why? Because when you export to HTML it generates a whole lot of code in order to retain it’s original appearance when placed online. Even if you use filtered HTML. But most of the time you don’t want it to look like that, especially if putting it into a content management system. Some non-HTML author writes up their content in Word, then you need to spend ages cleaning up the code. My favourite feature of Adobe Dreamweaver isn’t the (not-really) WYSIWYG editor (I usually use the code window), nor the integrated file management. It’s the fantastic Word HTML cleaning when I paste content across.
This misunderstanding of the web’s nature sometimes manifests itself as outright hostility by their supporters towards open source and other alternative technologies, often decried as “not up to enterprise standards”, despite being used by some of the world’s largest online companies. If many Microsoft technology courses were structured like mine then I can see how these misconceptions are transmitted to new Microsoft developers.
In itself I can’t see anything wrong with using C# and I can certainly see why many developers love Visual Studio. Apart from the serious debugging and data visualisation capabilities, which I didn’t really get into, Visual Studio does a lot of convenient handholding with properties windows and Intellisense making lots of suggestions and autocompletions. Maybe too much handholding and easy shortcuts to completing tasks, which I think gets in the way of intimate understanding of a technology and can slow you down. I wonder how many experienced developers switch that handholding off.
Anyway, at least I know have a feel for the language and Visual Studio. It will be interesting to see how useful the course was when I start developing with ASP.Net over the next few weeks.