The Fast Track to ASP.NET Competence

By Peter A. Bromberg, Ph.D.

Peter Bromberg  

To begin, let me qualify my catchy title: I do not believe there is any real "Fast Track" to becoming competent as a .NET Developer, and I think you should be wary of anyone that claims to offer one. This is a huge undertaking for even the most experienced developer, there are literally thousands of base classes available in the Framework, and every developer has a different perspective on what it is they hope to accomplish with their "personal learning curve". What I can do, however is share the track that I have taken, why I have done it, and hopefully that can serve as a guideline for others.

First, let me try to quantify my own approach: I have always been more or less "self-taught". I don't like to sit in classes, I find they (usually) tend to hold me back. I prefer to get sample code, tutorials and books, prepare my materials, set my own learning objectives, and design my own goals and curriculum. Others may respond much better to a structured classroom-type learning environment, and if that sounds like you, then great. Just be aware that the comments I make here are coming from my particular perspective.



I was one of the attendees at the first .NET PDC in Orlando in 2000, and I received and installed a copy of Visual Studio .NET Beta 1. So I have some 13 months of experience with this. However, due to a combination of factors (lack of time, and especially the expectation that it might be a good idea not to get too heavy into it until Beta 2) I didn't really spend that much time with .NET until Beta 2 was released in August. Up until that time almost all of my development experience had been with VB and ASP, with a pretty good background in Javascript and some C++ and Java. I also have a good solid background with XML/ XSLT. Again, almost all of this is self-taught.

My overall objective was, and still is - to become as competent as possible using .NET as a web development application platform, with the development of components and custom controls being a close second. I really have very little interest in Winforms, services, etc.

YOUR FIRST DECISION: What Language do I want to use?

My first decision was that if C# was good enough for the Microsoft guys to put over a million lines of code into writing ASP.NET, then it was OK for me. Although I have a lot of experience with VB, and much less experience with Java and C++, my early investigations of VB.NET told me that it was so different from "classic VB" that I would be better off just forgetting about VB.NET and concentrating on learning C#. I still feel comfortable - even relieved - that I made this decision. C# as a language is a lot more compact (less verbose). In fact, I can tell you that I've learned more about C# by converting VB.NET example code into C# than any other way! Syntactically, C# is no more difficult to learn than say, Javascript. All I can say is that if you have this "luxury" (being able to decide on focusing with one specific language) I strongly recommend C# as the .NET language of choice. This language was designed from the "ground up" with the .NET platform in mind. If you are already a C++ developer, you will miss very little. The hardest thing is not the language itself, but rather the huge amount of base classes and functionality in the .NET Platform that you can access with it.

YOUR SECOND DECISION: What kind of applications will I focus on?

in my case, I knew from the outset that well over 90 percent of what I would be doing in .NET would be what I was already doing - building IIS web-based solutions and applications with either controls or components that interacted with these applications - whether it was database code, XML - based code, or some other process. So it was obvious to me that I didn't need to waste my time with learning materials that showed me examples of console applications or Winforms based applications. I needed books and materials that focused on ASP.NET.

YOUR THIRD DECISION: What resources will I use to achieve my goals and where will I find them?

This can be a very confusing issue. The first books that came out on .NET were incomplete. They were rushed out to be there "first". Virtually all of them assumed you didn't have the Visual Studio .NET IDE - that you were just using the command line compilers and tools that came with the free .NET Framework SDK. Fortunately, now that Beta 2 is well underway and GOLD is due for developers before the end of 2001, there is a constantly growing list of books to choose from. Unfortunately, you can spend a lot of money surrounding yourself with books and be disappointed easily. After reading the first ASP.NET books (Wrox's ASP.NET book which was distributed at the 2000 PDC, as well as Christophe Wille's "Presenting C#") and having also purchased another early Wrox title on C#, I knew that I needed to be extra careful in selecting books that got me where I wanted to go. My final selections, which I feel very comfortable with, were "Professional ASP.NET (Wrox), and "Professional C# (Wrox). These are both 1300 pagers and I expect they will keep me busy for a long time. In fact, I do not expect to be purchasing any new .NET books for the next 6 to 12 months at least, because 90% of everything I need to know (at least to get to "first base") can be found in these two titles. The "Professional" designation that Wrox seems to be fond of attaching to these titles can be misleading -- they are "Professional" level in that they are indeed one grade above "Beginner", but that's about all. The C# books covers the language and much of the base class functionality well. This is your core C# language book if you want to get into ASP.NET, even though a considerable portion of it does not cover ASP.NET --only two small chapters on ASP.NET, and they are quite sparse. The ASP.NET book covers in much greater detail the inner workings of the ASP.NET functionality, and as an added bonus, most of the code samples in it are in VB.NET, so you'll get plenty of practice translating them into C# if that's your chosen language. It covers coding issues, the Page class, codebehind, Caching, custom controls, Server Controls, Web Forms, Data Access, XML, Web Applications, configuration files, and much more. Again, these are the books I selected, and why. You may be able to do better. Bookpool.com has both of these at ridiculously low prices. Alan Troelson has a good book, and Dan Wahlin has one that focuses on XML in .NET.

The other resources that I use are as follows:

1) Download ALL the free code from every .NET book from every publisher, and examine it carefully. It costs you nothing!

2) Start reading the newsgroups and mailing lists. Two of the best newsgroups resources are the Microsoft groups at msnews.microsoft.com, and also at developmentor.com. I've had a number of difficult questions answered courteously by folks who are smarter than me, and I've also taken the time to help out some other people with answers.

3) Visit the .NET oriented websites. Besides our own (www.eggheadcafe.com) which has a growing list of .NET -- related resources and an active discussion forum, there are at least twenty other sites from Dotnetjunkies.com to gotdotnet.com that have gobs of articles, sample code and other resources.

4) The best resource of course, is yourself! In my case, my employer doesn't really have much of a current focus on .NET, although it is "on the horizon" and my bosses are aware of both my interest and growing competency in this area. So if you (like me) are in a situation where you don't really "have to learn" .NET, then the motivation and rationale has to come from inside YOU. Make it your business to set realistic learning and competency goals, formulate a plan of action to get there, and stick with it.

5) And last but not least, try to get yourself a programming "buddy" if you can. I'm fortunate because Robbe Morris, the co-developer of our eggheadcafe.com site, has just as much if not more enthusiasm than I do for the .NET Platform. It's nice to be able to bat around your ideas and questions with somebody, to share coding styles and approaches. There are also a couple of people I work with who are starting to get into .NET.


Peter Bromberg is an independent consultant specializing in distributed .NET solutionsa Senior Programmer /Analyst at in Orlando and a co-developer of the NullSkull.com developer website. He can be reached at info@eggheadcafe.com