Vinod just posted his 10 Commandments of .Net which I find to be very interesting and true. Below are some of the commandments along with my own personal comments.
1. Thou shall learn XML, now! But not just any old XML, .Net XML. What do I mean? I'm an old VB6 (is there such a thing) developer who did all his XML work with MSXML. When I made the move to .Net I found that XML in .Net is much different than XML in MSXML. I still don't think I fully understand how XML is handled in .Net, but not because I don't understand XML, because I don't (fully) understand .Net.
2. Thou shall become an object-oriented programmer! Another fun one for the VB6 developer. When I switched to .Net I forced myself to learn C# because I found VB.Net to be too frustrating. It was similar to VB6 but that seemed to be more of a hindrance than a help. What is the use of a familiar syntax when everything underneath is different? Needless to say I think the fact that I don't have a CS background (I'm a self-taught developer) is a hindrance when developing in .Net. To be productive in .Net you do need to use OO techniques, now I just need to find a good book to bring VB6 developers up to speed on OO in .Net using C#.
3. Thou shall concentrate on the .Net framework, not the language being used. Agreed. The only question for me is how much do I need to learn about the framework to be a successful developer? I read Sam Gentile's posts about CLR books to read which sounds great until I look at my current stack of books I'm trying to read just to understand how to develop in .Net and be productive. Unfortunately I'm a mere developer and sometimes .Net seems to be so big that I can't possible wrap my tiny brain around it.
4. Thou shall not go it alone. Perhaps this is the answer to my questions above. I should get involved in the .Net community. This is how I learned so much about SqlXml, by helping out in the newsgroups. [Note to self: subscribe to a .Net community of some sort]
5. Thou shall adapt to new development environment. I think I've been working on this ever since .Net came out. I can say that at this point I'm very comfortable using VS.Net, however I'm not sure that I'm a very good .Net developer.
6. Thou shall abandon DCOM and use remoting. Amen. At least on the the abandoning DCOM part. In my previous life as a speech application develop, I abandoned DCOM for my own version of SOAP before SOAP was a standard. DCOM was a headache.
7. Thou shall not use VS.NETs code generators without understanding the code they generate.My own version of this is thou shall not use VS.NET's code generators if they generate too much code to understand. Some of the code generator's (ex: events) generate an understandable amount of code, while other code generators (ex: dragging datasets and SQL connections onto a form) generate more code than I care to figure out.
8. Thou shall use structure error handling in VB. I haven't done much (OK any) .Net coding in VB due to my frustrations with VB.Net when I first started. However, I recently read an article (but I don't remember where) that talked about using VB for the UI layer because it made more sense. I think I'm just about ready to start using VB.Net from time to time when it fits, and when I do I don't have any plans to go back to VB6 type error handling.
9. Thou shall avoid using COM+ for single phase transactions. I'm currently not doing anything with transactions, but I'm keep this in mind when I get there.
10. Thou shall not underestimate the complexity of .NET.Nor shall I overestimate the size of my own brain. I'm beginning to think that I will never fully understand .Net even though I think I have a pretty good grasp of it. Hopefully I will begin to get it more as I begin to get a better understanding of OO design, and as I understand .Net XML, and the CLR, and the 10 books sitting on my shelf. OK so maybe I'll never fully understand it, but hopefully at some point it will help me be a more productive developer who write solid, maintainable applications.
Thanks again Vinod for your great list, I enjoyed thinking (and blogging) through it.