Building Composite Applications at Toronto SharePoint Camp

This past Saturday, I gave a talk at the Toronto SharePoint Camp on building composite applications. I started talking in general requirements terms of why composite applications are useful, what they are, and what are the platform requirements - it naturally came down to a SharePoint demo - it's a great platform for building web based composite applications. The nice thing about SharePoint is that much of that work can be done in an ad hoc fashion. This means less plumbing code for us developers and we get to focus on solving business problems.

Some of the things I demonstrated are all available with Windows SharePoint Services (free). For example, Document Libraries and Custom lists, along with the excellent Outlook integration (including offline support) not to mention version control. Then we got into Workflow and integration with enterprise data with the Business Data Catalog of which requires the Microsoft Office SharePoint Server or MOSS 2007 which is not free (approx $5000), but a totally worthwhile investment. You can easily save the license fees several times over in reduced development effort. I also used SharePoint Designer which is about $200-300.

My slides and demo files are attached. Let me know if you have any questions. I've also included some demo script notes in the slide notes for those who asked.

Also, check out Rob Windsor's Pictures on Flickr of the event

Toronto Architect Forum, this Thursday

This coming Thursday, Microsoft is hosting the annual Toronto Architect Forum at their offices in Mississauga. The target audience is architects that are *not* in the financial service industry. Here's the agenda:

8:00 - 8:30 am Breakfast and Registration
8:30 - 9:00 am Welcome by Mark Relph
9:00 - 9:30 am Architectural Agility as Business Value, Dave Remmer
9:30 - 10:30 am Office Business Applications, Mike Walker
10:30 - 10:45 am Break
10:45 - 12:00 pm Visual Studio 2008 “All Up”, Adam Gallant
12:00 - 1:00 pm Networking lunch
1:00 - 2:15 pm Architectural Implications of LINQ, Barry Gervin
2:15 - 2:30 pm Break
2:30 - 3:00 pm Project Experiences using AJAX, Amalan Ponnampalam
3:00 - 4:15 pm How to be an Effective Architect, Mohammad Akif
4:15 - 4:30 pm Wrap-up and Prize Draw

As you can, I've secured the ever so popular "right after lunch" time slot. I don't know if there are detailed abstracts online for each session, but here is mine:

LINQ: Architectural Implications

Support for Language Integrated Query in the .NET 3.5 Framework promises to simplify and unify querying operations across object collections, relational data, DataSets and XML. The opportunity to simplify or even eliminate the notion  of a data access layer is one many architects are considering. During this session we will quickly introduce the capabilities of LINQ, LINQ to SQL and the upcoming Entity Framework, and then discuss how this may affect the design of our data access logic moving forward.

Registration is still open - here.

Update - the event is for Architects not in the financial services industry (my mistake).

Toronto SharePoint Camp

image Come to camp on Saturday October 20th, 2007 in downtown Toronto. We'll do paper mache, cook marshmallows over a fire, and learn how to rapidly build collaborative portal solutions. You can visit the site and register here, and they are still looking for speakers.

I hope to be speaking about something in the Architect Track, but haven't quite decided on what I'd like to talk about yet. What would you like to hear? Drop me a line.

Are you an aspiring architect?

I guess by the very definition of an architect, you would have to have aspirational qualities. Mohammad Akif & and Dave Remmer, Architect Evangelists with Microsoft Canada are putting on a series of web casts just for you. Check them out....

Architecture 101 (Mohammad, May 24)

Architecture is the balance between art and engineering, it requires a certain mindset and approach to solving problems. Architects often function as a bridge between the business users and development groups and are increasingly being recognized as a critical community within organizations. Becoming an Architect can often translate in  to an elevated status from a career stage perspective but it is hard to find prescriptive guidance around how to become an architect. Join Mohammad Akif for the first of a four part series focused on aspiring architects. During the Architecture 101 session we will discuss some key ideas around Architecture and define attributes of an architect.

Software development lifecycle and methodologies (Dave, May 31)

Over the years the various approaches teams have used to develop software have evolved. Join Dave Remmer in the second of a series focused on aspiring architects where we will discuss the various stages projects go through and sample some of the methodologies used by teams developing software. In this session we will compare and contrast the waterfall, agile, RUP, Scrum and MSF methodologies and how they are used within software projects.

Services orientation and other architectural paradigms  (Dave, June 7)

One of the hottest topics in software architecture is the services oriented approach to building solutions and how this can provide agility, flexibility and reuse. Join Dave Remmer in the third of a series focused on aspiring architects where we will be looking at approaches to architecting software. This session will give an overall description of service orientation and how it differs from object oriented and component based architectures as well as a discussion of some of the organizational challenges teams experience when using a services oriented architecture.

Transitioning from a developer to an architect  (Mohammad, June 14)

Are you a developer who would like to learn more about becoming an architect? Or how to get formally recognized as one (since you already wear the design and architecture hat along with the developer one)?. Join Mohammad Akif for the fourth and last part of the series focused on aspiring architects, during this session we will discuss how you can attain the skill set required to be an architect and sell yourself as an architect within your organization and industry. We will also provide a list of resources that you can use to continue the transition from a developer to an architect role.

Follow up on LINQ and ADO.NET Entity Framework Talk

On Saturday on March 31, 2007 I did a couple of talks at the Toronto Code Camp. The first an overview on the LINQ Project and the ADO.NET Entity Framework.

The second talk was an impromptu talk to cover a time slot for a speaker who was unable to attend. I gave the audience some choices of topics and they chose Automated Unit Testing in VSTS. We also touched briefly on the bridge between TDD and QA, other types of tests, integration with source control, work items and builds. My hidden agenda was to convince folks that this is an essential evolution of our develop discipline and is no longer a fringe activity, nor associated to just one kind of development methodology (XP/Agile).

The talk was unscripted and as such no slides. Good thing because we went well into the lunch hour and I appreciate everybody's willingness to hang out and have a good discussion. Here are some links:

And lastly a couple of book recommendations:

Finally a big thanks to Chris Dufour for putting on an excellent glitch free code camp - this should be a model for similar events.

Update: Also check out this blog post for videos of the EDM designer that unfortunately isn't working in the March CTP.

Update 2: I should also include Shyam Pather's excellent Entity Framework screencast tutorial(s) in which he demos Entity Query Language and tells a great story of how to evolve ADO.NET 1.0/2.0 code to ADO.NET 3.0

My Recent Visit to MS Research

A couple of weeks back (sorry still catching up) I had the great fortune of being invited to visit a MS Research event called TechFest. MS Research hosts this event annually for fellow MS Employees and opens up their doors so they can see what they've been working on, and for the first time in their 15 year history, they allowed those of us without the trademark MS employee blue-badge to attend. The "exhibit hall" was very "science fair" full of academic research geeks and no marketing folks.

MS Product teams have been going through an era of transparency over the past few years and it was nice to see this principle infect MSR. A few quick facts that impressed me about MSR:

  • MSR has been grown from 0 to 750 researchers over the past 15 years. This is the equivalent of creating a new Berkeley CompSci Faculty...each of those 15 years.
  • MSR has researchers in facilities located in Redmond, Silicon Valley, San Francisco, Cambridge, Beijing and Bangalore.
  • MSR runs the largest CompSci Ph.D. internship program. Currently there are 800 Ph.D. interns working worldwide in MSR labs. In the US last summer, MSR had 300 interns in their labs which is impressive considering that the US produces about 1200 CompSci Ph.D.'s annually

There was lots of interesting projects to learn about, some very space-age and cool, others kind of weird and hard to see any use for, and some that you wish were in a shipping product yesterday. Then there are some that caused attendees with certain allergies to get all stuffed up. Check out some of the videos here and here.

Toronto Association of Systems and Software Quality

A few weeks ago I attended the Toronto Association of Systems and Software Quality (TASSQ). It's refreshing to attend a user group outside of the MicroSphere. There was about a 100 attendees and I like the round table format over dinner with lots of opportunity for peer discussions.

This particular month the format was that of a moderated panel and despite being a new member, somehow I ended up as one of the panel members during the first part of the evening. There were a lot of questions and discussions around agile development, TDD and how that plays a part in the QA role. It was my pleasure to meet Scott Ambler and sit on the panel with him. He is an interesting guy who spends much of his time in the agile space.

It was obvious to me from watching and participating in the discussions that the TDD movement is perceived as a huge opportunity to assist Quality Assurance professionals. Unfortunately there is not a good understanding of how Test Driven Developers collaborate their work with the QA team. Not actually knowing what TDD or how to implement it is another common problem, but that's another blog post.

TDD is all about adding quality from the inside out, but per se, not intended to assist the QA profession. But there are good opportunities here in the areas build verification, earlier functional testing, regression testing and code coverage. The end goal here should be to cost-effectively improve our software quality. With that in mind, if you are in the Toronto area on March 29, 2007, I'd like to invite you to our Software MAnagement RoundTable (SMART) breakfast to discuss these issues. Click this link to read more about the event and registration details.

PDC 07 Dates Announced

PDC 2007

October 2-5, 2007
Los Angeles, Californa

Important Links:

Speaking at Chicago .NET Users Group in Downers Grove on March 15th

I'll be speaking at the Chicago .NET Users Group in Downers Grove on March 15th

Stay tuned for details....


Visual Studio Team System and Team Foundation Server Seminar across Canada

In November, 2005, Microsoft launched Visual Studio 2005, a major new release of its developer tools environment, and the foundation of Microsoft platform development for the next few years. In addition, this marked our entry into the lifecycle tools market, with the addition of Visual Studio Team System and the Team Foundation Server, to support end-to-end system development scenarios. We are bringing the tools we have been using for years internally to market to help address customers need to more rapidly develop and deliver solutions that meet the business performance, scalability and end user requirements.

Visual Studio Team System adds significant new capabilities and value to the suite of Microsoft developer tools, with advanced end-to-end role collaboration, real-time reporting and analysis, and a host of new tools covering architecture, development, and testing.

Many of you may have already transition to one of the individual role based offerings in Visual Studio Team System, but are still learning all the new tools and benefits of the offering. This session is intended to provide an introduction to Visual Studio Team System, highlight the new functionality and business value in each offering, and outline the transition steps for existing Visual Studio and MSDN customers. We will also demonstrate Visual Studio Team System in action.

This is your opportunity to attend a free education session and fast track your knowledge and use of Visual Studio Team System.


On-Site VSTS Event Details & Registration:

City: Mississauga
Date/Time: February 22nd 2006 -- 3:00 to 5:00pm
Location: MS Mississauga Office MPR Room
Conference ID: 1032290174
TO REGISTER for this event click here

City: Vancouver:
Date/Time: March 2nd 2006 -- 9:00 to 11:00am
Location: MS Vancouver OFC
Conference ID: 1032290176
TO REGISTER for this event click here

City: Mississauga
Date/Time: March 21st 2006 -- 1:00 to 3:00pm
Location: MS Mississauga Office MPR Room
Conference ID: 1032290177
TO REGISTER for this event click here

City: Ottawa
Date/Time: Apr 19th 2006 -- 1:00 to 3:00pm
Location: MS Ottawa Office Glacier Room
Conference ID: 1032290179
TO REGISTER for this event click here

City: Calgary
Date/Time: May 17th 2006 -- 9:00 to 11:00am
Location: MS Calgary Office Bldg (*TBC) - registrants will be notified of location
Conference ID: 1032290181
TO REGISTER for this event click here
City: Toronto

Date/Time: June 21st 2006 -- 1:00 to 3:00pm
Location: Intercontinental Hotel on Front Street (*TBC) - downtown Toronto
Conference ID: 1032290183
TO REGISTER for this event click here
*TBC – To be confirmed

Alternative Registration Options:

  • By calling 1-877-673-8368 to reserve your place, 24 hours a day, 7 days a week, and quoting the event ID.
  • Register online at by clicking on Search Event or Event ID in the left hand column and typing in the event ID.