After a week of training and a couple days of hacking at existing code, I think that the transition from 2003 to 2005 shouldn’t be made at the same time you are learning. Some of the projects I have are in 2003 and there are significant changes to sites when you open them with 2005.
There are a few positive improvements in 2005 though. One of the nice additions I have found are what are referred to as MasterPages. They seem to be a key template tool. Much more useful than a site theme or the like. MS does a good job of keeping you in the silo by offering just enough tools to keep you struggling with what they give you. I do think the programmers at MS are talented, but I would like to put others tallents to work too.
Here is another difference between .NET and PHP. In .NET you work with what you are given, and make finite mashup pages with these rebuilt controls as the ingredients. With PHP, you make it from scratch or choose a framework that includes control classes. At first consideration you may think that makes .NET the obvious choice. However, for those of us who are familiar with the paradigm that is the web, wonder why we need to forget reality and again think Microsoft’s way.
Maybe it is VS that is my irritation at the moment. I still don’t think that C# is that bad of a language. Although it too has it’s aspects that don’t fit to the text based nature of the Web and the dynamic nature of web sites. I guess if you want to understand what I am thinking, apply the ‘square-peg-in-round-hole’ feeling to Visual Studio. Sure you want to make the user feel like they are using a fat client. If you make the programmer feel that they are building a fat client, you better do all the middle logic for them. What I am getting at is the tool requires the programmer to think the MS way about a concept he already understands. This is may the way that MS wants to go.
Another thing is odd. When I was using VB6 there were all kinds of communities surrounding it and using it with other technologies. The VB6 community offered help and code freely. Never once have I gotten the impression that it is easy to integrate standards or other code with .NET. I would love to tack on a Rico to put it’s authors talents to work. I would love to patch into Yahoo, Google, Amazon… As I search around the web, every site I hit, weather MS or not, I feel pushed to become dependent on what is provided by MS or another silo that is dependent on MS. I don’t get a feeling of community. There are sites that have tutorials, demos and code but they charge for them. The .NET community is a gated facility where everyone is afraid of violating the covenant and getting shunned if they plant poppies instead of daisies. How does this foster creativity? MS seems to be struggling to keep up with real innovation like AJAX. When they do implement it it is reduced to a bloated featurette like a Market Street Rolex to let you fit in at a coctale party. Well? Do you fit in? That is all that matters right?