DevCity.NET -
Professional Visual Studio 2005
Ged Mead

Ged Mead (XTab) is a Microsoft Visual Basic MVP who has been working on computer software and design for more than 25 years. His journey has taken him through many different facets of IT. These include training as a Systems Analyst, working in a mainframe software development environment, creating financial management systems and a short time spent on military laptop systems in the days when it took two strong men to carry a 'mobile' system.

Based in an idyllic lochside location in the West of Scotland, he is currently involved in an ever-widening range of VB.NET, WPF and Silverlight development projects. Now working in a consultancy environment, his passion however still remains helping students and professional developers to take advantage of the ever increasing range of sophisticated tools available to them.

Ged is a regular contributor to forums on vbCity and authors articles for DevCity. He is a moderator on VBCity and the MSDN Tech Forums and spends a lot of time answering technical questions there and in several other VB forum sites. Senior Editor for DevCity.NET, vbCity Developer Community Leader and Admin, and DevCity.NET Newsletter Editor. He has written and continues to tutor a number of free online courses for VB.NET developers.

by Ged Mead
Published on 11/19/2006

  The average VB.NET developers' book starts  with the language and uses the IDE to help along the way.  This  book takes a different approach.  It starts with the IDE and radiates out from there.  (IDE-centric I think they  call it in the publisher's blurb).   It's an interesting approach, but does it work?

Ged Mead decided to find out.


Introduction and Overview


  I'm sure that the 80/20 Rule applies to Visual Studio 2005 in much the same way as it applies to most large applications or major software suites; that's the belief that 80% of  users only make use of 20% of the tools available.  And when the tool is as comprehensive and complex as the Visual Studio IDE it isn't really surprising if this is the case.   This book aims to help you increase your productivity by showing you  how to use many of the tools available.    

    As I was reading through the book, I started to write detailed comments on each chapter but - with a total of 56 chapters to get through -  I discovered before I was halfway through that if I kept it up, the review would be almost as long the book !   So I have just homed in with details on those that particularly caught my attention for one reason or another.    The other chapters generally just get a quick summary.    The list of chapter headings is available from the Wiley site here.  

Book Structure

   The book has been broken down into ten parts which are listed below (there is more detail of what they contain on the next page).    Although some of the topics are spread between more than one Part, generally the authors have tried to keep related material together.  Not an easy task with such a diverse range of subjects and it is almost inevitable that some of the links between main heading and chapter title are a bit artificial.

  The ten parts are:

  1. The IDE
  2. Project and Solution Design
  3. Documentation and Research
  4. Security and Modeling
  5. Coding
  6. Automation
  7. Other Time Savers
  8. Build and Deployment
  9. Debugging and Testing
  10. Extensions for VS 2005

Quite usefully, the Wiley site also offers you a chance to look at the sub-topics covered chapter by chapter.   You can view or download it in PDF format from here.    If you are thinking about buying this book, I would recommend that you take a look at this as it is a very useful guide to what each chapter covers in detail.

  You can check out the authors' writing styles by viewing the PDF version of Chapter 1 which is available here.  As you will see if you do view that sample chapter, the explanations are liberally interspersed with screen shots; something that is quite useful in a book of this kind.





Book Content

    I have picked out a selection of chapters and topics as they caught my attention.

Part 1 - The IDE

     Apart from the obvious topics you would expect to see covered here, such as the IDE layout, the various windows, keyboard  shortcuts, the Toolbox and so on, it also includes useful little hints, such as suitable alternative fonts to the  standard Courier New. 

   Thanks to the clear explanation in this Part of the book, I also finally managed to understand how the new 
window docking features in VS 2005 actually worked.   In the past I've been in that (majority?) group who left 
the IDE windows set up at the default because we got fed up of "losing" windows that we thought we'd dragged to  better locations.    

   One thing it didn't mention in the explanation of Layout Settings is that it seems that you have to close a Solution and re-open it for changes to Layout Mode and ShowGrid settings to kick in (at least on the PC I tried it out on).    However, on the plus side,  in the next section they introduced me to the especially useful magenta line which takes lining up one stage further - allowing you to line up the text areas when dealing with controls that have a text aspect to them. This was a tool that I had been totally unaware of.

Part 2 - Project and Solution Design

      This covers areas such as common properties and configuration properties for Solutions and Projects. It works through various ways and scenarios for these kinds of configuration.

   There is a very useful chapter on Source Control and another that describes XML Resource files in some detail.

Part 3 - Documentation and Research

 This part includes details of finer points such as Help Favorites and Customizing Help just the way you want  it.  The kind things you always mean to sort out but somehow never get round to! 

  I was slightly disappointed with Chapter 12, XML Comments.  Not because it lacks detail on all the various tags that you can use - there is a whole range of these explained, each with realistic samples.  But I felt that it more or less fizzled out on the topic once they had got to the end of the list of tags, almost as if they had spent all their energy on the lists of tags and had become bored with the subject and wanted to move on.    I certainly would have liked more detailed explanation or a walkthrough of how to use the XML Comments in a meaningful way in a real world project.   Unfortunately, the downloadable code samples didn't include a sample for this chapter which compounded my disappointment.

  Also in this part of the book, there is a  brief overview of the Document Outline Window in VS 2005.  Although it doesn't really do anything  that you can't achieve by just selecting the control on the form's design surface,  in a very busy GUI, possibly with some controls being partially or fully hidden, then it can be very useful.   The authors also recommended using this window to see if controls were nested and, if so, which ones;  I thought to myself that that wasn't likely to happen much  and then the very next day, along comes this thread:
which contains that exact problem and the same suggested solution.  So full marks to them for that one.

Part 4 -Security and Modeling

  The chapter on Code Generation briefly looks at a number of features and begins with some usefully worked through examples of how to use the Class Designer.  If you haven't dabbled with this tool much then you might find this introduction illuminating.  You will probably need to access the MSDN help too if you are going to use Class Diagrams to any great extent; happily the MSDN entries for this topic are quite comprehensive and clearer than many.

  The Object Test Bench also gets some coverage and, once you have worked out how to access this feature (View > Other Windows > Object Test Bench) the worked examples are useful.

    In the fairly short Chapter 15, Security Concepts get a brief explanation and it helps the reader to understand the core difference between code-based security and role-based security approaches.

Part 5 - Coding

   Part V begins with an explanation of Intellisense.  It then moves on to bring you up to speed on the Code Snippets feature in VS 2005 .   As well as introducing the built in snippets that ship with VS 2005, there is coverage of how to create your own the hard way and the slightly easier way.  It also includes a couple of useful hints about problems to watch out for.

 Regions, Outlining and Bookmarks, all of which are available in earlier editions of Visual Studio, of course are covered here too but it does include some newly available features, such as XML Commenting for Regions

  The next chapter provides the link to the download of Refactor! (currently available free under a deal  between Developer Express and Microsoft) and then walks through some of the refactoring scenarios which can be aided with this tool.

  Chapter 22 briefly describes some of the new VB 2005 features, Generics, Nullable and Partial Types and Operator Overloading.  The coverage is brief, but the chapter does contain some useful hints and warnings for the unwary.

   The new style "My" namespace is covered in Chapter 24.  The main components are described and several code snippet examples of usage are included.

Part 6 - Automation

   The first chapter in Part 6  is a good example of the kind of topic coverage that makes such a specialist book so useful.   With detailed instruction on how you can create your own item templates and project templates, plus a full explanation of how to create and install more complex templates, complete with wizards, you can learn everything you need to know about this speciality topic .

Chapter 26 introduces Macros and goes on to look a little deeper into the DTE object; information you will need if you want to advance from the standard "record, save, use" approach for simple macros.

Connection Strings are the subject of the next chapter.  This is one of the chapters I'd have happily seen dropped in favour of more coverage of other subjects, a view I also had on the Strongly Typed Datasets,  DataBinding and the Starter Kits chapters. 

  However I thought that the chapters on Add-Ins and Third-party Extensions on the other hand were highly relevant, fairly detailed, useful and exactly the kind of thing I was looking for in the book.

Part 7 - Other Time Savers

   Always an intriguing title - we all like good, reliable time savers when we can find them.   To a large extent though several of the ten chapters in this part were more "Other Topics" than "Other Time Savers".  That's not to say that many of them are not useful, but I didn't think they really all belonged under the same umbrella. 

  Workspace Control in Chapter 35 was interesting but I would have liked the explanations to drill down further than they did.   "Find and Replace" in the next chapter did however get a comprehensive workout.  The Server Explorer and Visual DataBase Tools chapters are a handy first walkthrough.  There are a collection of various Tips, Hacks and Tweaks in Chapter 40; something I would have enjoyed seeing more of.

   Two chapters covered aspects of web application development and the final two chapters - although probably not qualifying as Time Savers - were very interesting in their introduction to Device Application programming; not something you often see in mainstream books.

Part 8 - Build and Deployment

   Those of us who have tried using the various upgrade wizards in the past usually approach this subject with some level of fear.  It's clear that the authors have some experience in this field too and so the first chapter includes advice that includes a section headed "Things That Just Don't Work".  Again, this is the kind of coverage that adds tremendous value to this kind of book.  

  Part 8 also includes introductory walkthroughs and explanation of the various Build options, the Compile page, MSBuild, building an Installer with the help of the Setup and Deployment project and finally ClickOnce deployment.

Part 9 - Debugging and Testing

   Given that debugging is often one of the most time-consuming aspects of our development day, this is an important part of the book.   Several chapters work their way through the subject and I was impressed to see that the coverage included material beyond the usual window by window walkthrough of the basic tools and windows that is seen in many books.   Chapter 50, for example, steps into the world of Debugging Proxies and Visualizers and Chapter 52 has help on debugging Macros; very relevant for a book that is centred on Visual Studio.   Part 9 ends with a chapter on Unit Testing.

Part 10 - Extensions for Visual Studio 2005

   The book wraps up with this section which includes coverage at various levels of InfoPath 2003 Toolkit, Visual Studio Tools for Office and the Visual Studio Team System. 



Pros and Cons

   The introduction to the book tells you that it is for developers who want to learn about features they may have previously overlooked.   In the main, it meets that promise.   This book contains a great deal of useful information about how to access and make good use of a lot of tools that are available in Visual Studio 2005.  The explanations are clearly written and are often amplified by screenshots and diagrams.    In some cases you will probably need to go off in search of more detailed technical instruction, but at least the book serves to bring the topic to your attention in the first place and gives you a flavour of its usefulness to you.     Several topics are of course covered in comprehensive detail in the book and those chapters will be great hands-on reference sources for you in the future.

   Some readers may feel that this is one of those books that is open to the criticism  sometimes seen on amazon that  "It doesn't contain anything you can't find on MSDN".  While a lot of the coverage is basic, verging on superficial occasionally, it is well written, clearly presented and it provides a useful hard copy reference to a very wide range of tools and techniques.   Without a book like this one which brings them to your attention, you might remain unaware of the existence of many of these aids to productivity .

     For my money, this book is going to be one that goes on my "grab when you need it" shelf;  those specialist books that will show you (or remind you) how to use a particular Visual Studio feature or will get you started with one of the new features of the 2.0 Framework.


    If you need a book that you can pick up when needed and use to show you how to use the Visual Studio tools most productively then this is a book you should own.   If you want an introduction to several of the new features of the 2005 version of the language then again this book is a useful quick reference to get you started.   Overall, this book is a tool to help make you more productive.  It doesn't aim or claim to teach you how to be a .NET language developer (in fact it assumes you already have a fair degree of experience), although it does clarify several language features along the way.

   I think the  strength of this book is this:  it draws your attention back to many of the Visual Studio productivity tools that you may have known existed, but somehow you've been so busy coding that you never really found the time to stop and use them.   Its weakness is that it tries to cover too many topics.   Although it seems mean to criticise the authors for trying too hard, it inevitably means that some of the coverage of difficult technical topics isn't much more than a skim over the surface.  At times this left me wishing they had left the topic out altogether and used the pages to make the coverage of other topics more comprehensive.

Overall though, there is a great deal of hands on guidance in here that many readers will find very useful indeed.