Fog Creek Software
Discussion Board

Welcome! and rules

Joel on Software

.NET learning.


I have been programming for the last 8 years in clipper/foxpro etc..

I am having great difficulty getting up to speed on the follow subjects :-

1) Object Oriented programming.
2) SQL including stored procedures.
3) UML.
4) Design patterns
5) 'n' tier development

I am using VB.NET and ASP.NET at the moment and I really get the feeling I am not using VS.NET to it's best ability. For example, I am hand coding all the dataset, connection information over and over again in the web pages and manually databinding entry boxes. I just know that this can probably be done using drag and drop.

Can anyone point me to good reading material on the above subjects and if there is a user guide for VS.NET that goes into all its features?

I got mine from MSDN subscription and it seems devoid of how of use VS.NET. (Unless I am looking in the wrong place. :-) )

It seems the xbase languages have kept me in isolation for two long.

Before all the VB.NET haters jump in, I will switch to C# later.


Mike Grace
Friday, September 20, 2002

Baaa... Stick with VB. Its fun. Its pretty. And its a much less silly name than C#.

As for learning, I haven't found anything that really does a good job. Every book I pick up spends the first 22 chapters on drawing forms and then tags 1 chapter on the end called "working with data" or some such.

A good book would be nice. Some just needs to write it. Hey wait, JOEL! You've got all that free time....

That is sort of the key problem you see. Anyone who knows what they are really doing is too busy doing it to sit back and write about it. That leaves people who have no clue about real world development to write the books.

Marc LaFleur
Friday, September 20, 2002


Your request for information seems to fall into two categories.

Getting up to speed on the OO/UML/Design and making effective use of VS.NET.

Some books for that you may want to consider for the first would be:

"Object Oriented Thought Process" by Matt Weisfeld is a gentle intro to OO. The code samples are in Java but it really does not matter as he is stressing the concepts and not the language.

"UML Distilled" by Martin Fowler is short, concise and to the point and a great intro to UML.

"Design Patterns Explained" by Alan Shalloway and James Trott is in a lot a ways an easier read than the classic Gang of Four book on the same topic.

The other must have book that you should take a look at is "Refactoring" by Martin Fowler.

There is also "OOP with Microsoft Visual Basic .NET and Microsoft Visual C# Step by Step" by Robin A. Reynolds-Haertle.  A friend recommended this book, but I do not have any personal experience with this book.

For the second part, I would suggest that you pick up a copy of Wrox's "Effective Visual Studio .NET".  If focuses on the tool and not languages and should get you up to speed on VS.NET in no time.

Good luck and have fun.


Anil John
Friday, September 20, 2002

For OOAD,  my favorite book is Applying UML and Patterns by Craig Larman.  (ISBN 0130925691)  It provides a comprehensive introduction to OO, UML, and pattern use.

Martin Fowler's UML Distilled (ISBN 020165783X) is my favorite UML book.  It focuses on the most commonly used UML features and makes an excellent reference book as well.

For more advanced patterns, the GoF Design Patterns (ISBN 0201633612) book is  a must-have title.  Parts of this book can be a little difficult to grasp if you don't have a solid understanding of OO concepts.  You might want to hold off on this one until you have had a chance to read some of the other introductory books.

As for SQL, I personally looked at some examples and picked it up as I went along.  My favorite T-SQL reference is the Books Online help document that comes with SQL Server.

Scott Banwart
Friday, September 20, 2002

Forgot about Stored Procedures and SQL.

In a lot of ways, it depends on which DB you choose to work with.

If you are working with SQL Server 2000, I would suggest picking up a copy of "Professional SQL Server 2000 Programming" by Robert Vieira.


Anil John
Friday, September 20, 2002

Here is a book if Oracle is your weapon of choice:

Friday, September 20, 2002

"I am having great difficulty getting up to speed on the follow subjects..."

Well you would - it's taken me years to be as good as I am ;-). Focus on one thing at a time until you get a good grasp of it (or get bored) and move on to the next thing.

You could go on a course too, ideally with someone who knows what they're talking about as the instructor - DevelopMentor have a good reputation and seem to have some bright people working for them.

Friday, September 20, 2002

I can say that

"OOP with Microsoft Visual Basic .NET and Microsoft Visual C# Step by Step" by Robin A. Reynolds-Haertle, Microsoft Press.

this is a good introduction - it will help you get your feet wet and put some of those new OO terms into practice. On the side, I generally have turned to these two books from Apress

"Programming VB.NET: A Guide for experienced programmers" by Gery Cornell and Jonathan Morrison


"Visual Basic.NET and the .NET platform: An Advanced guide" by Andrew Troelsen.

If you are going to be doing mostly ASP.NET stuff, you will want to supplement with some others that are specific to ASP.NET.

Good Luck

Nick Katsivelos
Friday, September 20, 2002

My opinion:

I know why MS chose to develop VB.NET.  That being said, I think that if you have not been doing VB development in the past few years, then you should try and learn C#.  Even if you have been doing VB for a while, learn C#.  It is pretty easy to learn and you can use resources from other languages (Java books, C++ books) to get a better view of how different languages treat OOP.  It is my belief that OOP books are not very common (yet) for VB.NET, becuase it is new and VB.NET programmers are starting to get used to the implementation inheritance that was absent in earlier versions of VB (VB6 does have interface inheritance).  Also, if you are doing any kind of .NET programming you need to understand object-oriented programming and how it works.  If you are doing ASP.NET, to get a solid design, you must think about OO concepts and work them into your design, or you could end up with some messy design that doesn't do what you thought it would.  Learn C#...

Friday, September 20, 2002

You should look into the eXtreme Programming community. While most of the practices looks too radical to some (they do look like cowboy hacking, but believe me, they are not), there is one which stands out: Test-First programming, or Test-Driven-Design. Use Google and search for pdf papers.

Most of the interesting samples are written in Java, some in C++. I managed, as a VB6 coder, to both read and turn the samples into VB. The best object oriented programming primer ever.

Kent Beck has written "Test Driven Design". The book is available in November, the draft might still be available at

If you need testing software, go to Ron Jeffrey's site

ObjectMentor also have some good papers:


Thomas Eyde
Saturday, September 21, 2002

Re learning OOP in VB .NET,

I'd obviously recommend my "Programming VB .NET from Apress - I really tried hard to teach the foundations of OOP in an accessable form to people who can program but haven't done much OOP

Although, of course I am obviously biased but considering since Joel and the average Amazon reader likes it too...

Gary Cornell 

Gary Cornell
Saturday, September 21, 2002

YG says:
There is no group called testdrivendevelopment..

Well, well, another Clipper refugee ... I decided to learn Java and J2EE but it's tough going ... sometimes I wonder should I just follow the big crowd and buy the MSDN subscription.

Patrick O'Beirne
Sunday, September 22, 2002

I just did a search and got:

(what did I do the first time?)

Patrick O'Beirne
Sunday, September 22, 2002


Thanks for all the responses.

I will look into the books you have all suggested.

I am writing an ASP.NET web site in VB.NET, I will have to upgrade a 10 year xbase++ app in the next few months and I luckily have time to get up to speed.

Also, I am the only programmer in my company. I feel it would help if there was another programmer working here. Its much easier to learn off others/ feed off a program that already exists.


Mike Grace
Monday, September 23, 2002


Good call on the "Applying UML and Patterns".  I just browsed thru the Second Edition and it looks like a great book.  In the second edition, he is emphasizing using the Unified Process as the methodology.


If you are focusing primarily on ASP.NET, there are also a couple of community resources where you can get if you get stuck (beyond here, of course).

Check out:

The Microsoft ASP.NET Forums @

If you are into Listserves, check out the
ASPFriends Listservers @

I do not know what IDE you will be using for your ASP.NET development.  If you cannot get access to VS.NET, do check out the free ASP.NET Web Matrix IDE, which was developed by the Microsoft ASP.NET Team.

You can find out more about it and download it @

Good luck.

- Anil

Anil John
Monday, September 23, 2002

*  Recent Topics

*  Fog Creek Home