New Course! Architecting Applications with Visual Studio Team System (Bootcamp)

On March 17th in Toronto, I'll be teaching our first delivery of this new course. It's a one day hands on, instructor led - whirlwind bootcamp style course that gives you a lap around Visual Studio Team System - specifically with a Solution Architect's perspective. We touch a little bit on the project management stuff, testing and some of the developer tools, but primarily we'll spend more than half the day on modeling as we walk through the Whitehorse designers.

Now how can we teach a course on a product that's not even in beta you ask? Very carefully. A lot of people are evaluating if and how they'll use VSTS in their shops once it is released so by popular demand we're offering this course a little earlier than we would normally. This course probably needs to be 3 days to properly focus on best practices and true “architecture” but for the purposes of evaluating this technology and letting people make their own minds, we are focusing primarily on the tools provided. With that in mind, this abbreviated 1 day course is being delivered in 6 cities across Canada: Toronto, Montreal, Ottawa, Vancouver, Calgary and Quebec City. There is also a promotional price of $299 CAD. For more details, full schedule and registration, visit 



Sending Mail through SMTP with Authentication

If you have looked at the process of sending emails from within .NET, odds are pretty good that you have stumbled across the SmtpServer class.  To send email, you create a MailMessage object, assign the necessary properties and then use the Send method on SmtpServer.  The SmtpServer class can be pointed to any mail server that you would like. 

MailMessage message = new MailMessage();

message.From = "";
message.To = "";
message.Subject = "Testing";
message.Body = "This is a test";

SmtpServer.Server = "";

So all is well and good right?  Well maybe not so much.  What happens if your email server, like all good servers, doesn't allow relays.  Instead, it requires that a user id and password be provided.  What I found strange is that the SmtpServer class doesn't include properties like UserId or Password to handle the authentication.  So how is this accomplished.

The answer is to utilize a newly added feature(new to .NET 1.1, that is).  The MailMessage class has a Fields collection.  The necessary authentication information gets added to the fields in the message that is being sent out. Certainly not where I expected it to be, but smarter people than I designed the class, so I'm sure there was a reason for this approach.  Regardless, it's knowledge that needs to be easily Googlable, hence the post. An example of the code that adds the three fields follows.

"1"); //basic authentication
//set your username here
//set your password here


DevTeach June 18-22, Montreal and a $50.00 Rebate Code!

DevTeach is a really nice conference. I went to it for the first time last year and it's a very intimate and interactive conference. While smaller than your TechEd's and PDC's, it manages to attract a very good set of speakers....Kevin McNeish, Brian Noyes, Julia Lerman, Don Kiely, Patrick Hynds, Carl Franklins, Mario Cardinal, Ted Neward, Nick Landry, Etienne Tremblay, Sam Gentile, Jim Duffy, Guy Barrette, Eric Cote, Markus Egger, Kate Gregory and me too. I'll be doing a DataSet tips and tricks talk - but mostly just so I can get a free pass to go and see all the other great talks. This year it is being held once again in Montreal which is a beautiful city with a great night life.

And last but not least, here is a rebate code for $50.00 "TO000OBJSHARP". You can register at

VS Live Toronto 2005 - 10% Discount Priority Code

VS Live is coming to Toronto again - April 13-16th. This year, the event will be right downtown on the lake at the Harbour Westin Castle hotel. Use Priority Code “BARRY” for a 10% discount when you register. You'll also save an additional $250 if you register early by March 16th. Toronto is a great place for a conference, especially when you factor in the exchange rate, this is very affordable for americans.

I'm speaking at this event, covering some of the methodology customization support in Visual Studio Team System and some new ADO.NET stuff too. Should be a lot of fun.

Putting it into Perspective

One of the dangers of being a consultant, especially one who focuses on cutting edge technology, is that it's easy to get wrapped up in a small, insular world.  In my case, that would be .NET. And at this moment in particular, Whidbey, Yukon and Indigo. Why is this a problem?  Because sometimes it blinds you to the problems that the majority of the programming world is working on.  To get a look at the world from the perspective of the 'masses', check out the results of this survey (thanks to Dino Esposito for the link).

One of the more interesting points is that almost 50% of the respondees come from 1-2 person shops.  Because I don't know the methodology behind the survey, I am suspicious of the accuracy of the percentages.  However even allowing for a large margin of error, I find that percentage significant. And I have no doubt that you will have to pry VB6 (if I can borrow a phrase) from their cold, dead fingers.  After all, small shops like that don't normally have the luxury of fooling around with new technology.  There is too much real work to be done.

That having been said, I have seen many times how great an improvement in developer productivity can be obtained through the proper use of the .NET Framework.  And these small shops would probably benefit the most from the productivity gains, if they can just be pushed to the top of the learning curve. My question is:  what is the best way to introduce these people, who are already hugely productive in their tool set, to the benefits of .NET?  Any suggestions out there, because I'm certainly open to them.

Getting Something for Nothing - Almost

It's not often that you can get something for nothing. And this case is no exception. But when you realize what you do get, it's still a very, very good deal.

The offer is basically as follows:  buy some Microsoft Office Licenses, get a check towards to cost of developing software that utilizes the Office application set.  If this sounds lame to you, then you probably aren't aware of all of the development tools that are available for Office.  Nor all of the uses to which it can be put.

For example, we have one client that uses InfoPath as one of the interfaces into a workflow application.  Users enter data through an InfoPath form.  The data is transformed into an XML document which is then submitted to the workflow through a web service.  And that is just one application.  The Visual Studio Tools for Office (VSTO) toolkit is surprisingly powerful.  If your user base is familiar with Office, then the ability to extend Word and Excel to interact with your corporate applications can be quite compelling.

If you want to talk to someone about the possibilities, feel free to drop me a line at


Get your Free Visual Studio Tools for Office custom applications here.

Ok, this is very cool - not often somebody gives you something for free.

Is your company upgrading to Office 2003 between June & July of this year?

Could you envision a customized solution built on top of Office - perhaps using Visual Studio Tools for Office, to solve some business need? If so, not only can we help with that, but Microsoft Canada is willing to foot the bill for the development effort. This is a great risk free way to try out Visual Studio Tools for Office projects - either the current 2003 or 2005 versions.

For more info, drop me an email.

Dog Food .NET

Here is a list of MS products that either include or are built using the .NET Framework. I was surprised to see how big it is. Thanks to Dan Fernandez @ MS for this list.

  • Windows Server 2003 includes 1.1
  • Sharepoint Team Services requires the .NET Framework
  • Sharepoint Portal Server 2.0 requires 1.1 and written in managed code.
  • Small Business Server 2003 - Remote Web Workplace and the Backup Snap-in use .NET
  • Windows XP Tablet PC Edition - 1.1 is included, and the Tablet API is written in managed code.
  • Windows XP Media Center Edition includes 1.1 and some of the applications are written in managed code.
  • Outlook Business Contact Manager - majority written in .NET
  • SQL Reporting Services - majority written in managed code.
  • Exchange 2003 Outlook Mobile Access is written in managed code using ASP.NET mobile controls
  • BizTalk 2004 - parts are written in managed code
  • Commerce Server 2002 - parts are written in managed code
  • Content Management Server 2002 - parts are written in managed code
  • MSN Messenger Server (Presence server and admin/config tools)
  • Microsoft Business Network written in managed code, requires .NET Framework 1.1
  • MS-CRM – parts are written in managed code
  • SharePoint Portal Server 2003 – Parts written in managed code
  • Speech Server 2004 – Parts written in managed code
  • ASP.NET Web Matrix – Fully written in managed code
  • Visual Studio .NET 2002/3 - parts are written in managed code
  • This one seems obvious......NET Framework 1.0/1.1 - parts are written in managed code.


What are you doing for your summer job?

We have a very exciting internship project coming up this summer for a university student, perhaps co-op - but not mandatory.

This high-profile project is to develop a software system to monitor the various systems in a “green” home that is completely off of the power grid. The house is fed by batteries charged by solar and wind (and a backup generator). There are many other systems in place to optimize power usage throughout the house. Although this home is off the grid, it's not off the internet, so the software will have to publish it's information and allow remote access via it's 2-way satellite system. The software will also be developed in .NET, likely using the current whidbey beta.

You are a university student with some combination of electrical engineering and computer science. You are strong “quality-oriented” programmer. You have strong design skills and are good at listening and capturing requirement. The position will be located in southern ontario.

If you are interested, please send your resume to .

.NET Celebrity Auction

Be a sport and click on this link:

Then make a generous bid. If you'll win, you'll get an hour (or more) of help from a .NET guru/celebrity (or possibly me). But more, you'll also be helping Tsunami relief efforts.

The top bid gets to pick their consultant. Then next, and so on and so on. If you are in southern Ontario, and you get me, I'll make it up to you by coming to your office - for a whole day, hang out, and bring donuts. What will I do? I can tell you everything I know about Visual Studio Team System (breaking all kinds of NDA rules, etc.), try to convince you to use data sets, do some code reviews, help debug something nasty, defrag your hard drive, organize your mp3's, tell you what DataGrid girl is really like, whatever.

I'm visiting Vancouver, Calgary, Ottawa, Montreal over the next 3 months so if you live/work near there, my offer stands, pending my schedule. I'll also be in Orlando possibly in June (for TechEd), LA in Sept (for PDC), and Chicago in August, so ditto on those as well.

For more info on how it all works....

And finally, special thanks to the other RD's who are volunteering their time (especially all those fellow Canadians). Last but not least, special thanks to Stephen Forte and Julia Lerman for organizing this.