A couple of weeks ago I had the opportunity to speak at the Canadian Technology Triangle .NET Users Group.

We had a great crowd of over 60 people eager to learn more about ASP.NET MVC. I was able to do a mix of Visual Studio 2008 and 2010 demos, as well as showcase a production application,  a crowd-sourced translation dictionary for First Nation Languages, currently supporting Maliseet and Mi’kmaw languages (www.sayitfirst.ca).

A question came up in the talk about content management systems and ASP.NET MVC. There was one in particular that intrigued me, but I couldn’t remember the name. After doing some digging it was www.n2cms.com. The interesting angle of N2 is that it is very lightweight, and not meant to be the shell of your entire site, but rather works within your application to serve up content where appropriate. I hope to use this on a future project.

Make sure to check out these other valuable resources as you learn ASP.NET MVC:

Aspiring Architect - Web cast series

With all this heat, I almost wrote "perspiring". Why not beat the heat, and stay cool inside while watching these web casts from MS Canada targeting aspiring architects. With the predicted shortage in IT in the upcoming years, we're sure to see an influx of junior resources into our industry. This is a good opportunity for developers to transition into architecture roles to leverage their existing skill set.

The Aspiring Architect Series 2008 builds on last year’s content and covers a number of topics that are important for architects to understand. So it would be a great idea to watch last year's recordings if you haven't already. Links are available here:  http://blogs.msdn.com/mohammadakif/archive/tags/Aspiring+Architects/default.aspx .

Upcoming sessions are as follows:

June 16th, 2008 – 12:00 p.m. to 1:00 p.m. – Introduction to the aspiring architect Web Cast series


June 17th, 2008 – 12:00 p.m. to 1:00 p.m. – Services Oriented Architecture and Enterprise Service Bus – Beyond the hype


June 18th, 2008 – 12:00 p.m. to 1:00 p.m. – TOGAF and Zachman, a real-world perspective


June 19th, 2008 – 12:00 p.m. to 1:00 p.m. – Services Oriented Architecture (Web Cast in French)


June 20th, 2008 – 12:00 p.m. to 1:00 p.m. – Interoperability (Web Cast in French)


June 23rd , 2008 – 12:00 p.m. to 1:00 p.m. – Realizing dynamic systems


June 24th, 2008 – 12:00 p.m. to 1:00 p.m. – Web 2.0, beyond the hype


June 25th, 2008 – 12:00 p.m. to 1:00 p.m. – Architecting for the user experience


June 26th, 2008 – 12:00 p.m. to 1:00 p.m. – Conclusion and next steps


VS 2008 at The Movies, Feb 7, 2008 Toronto Paramount

Posters_Codefather Our designer is having a field-day with this "at the Movies" theme for our upcoming review of Visual Studio 2008 being held Feb 7th from 8:30am-12:00pm @ the Paramount in Toronto. Grab a copy of this movie poster before it gets "whacked" by the lawyers.

Hope to see you there. Check out all the details after this link.

Visual Studio 2008 to ship by end of month!

In case you didn't catch this S. Somasegar announced today during his TechEd Developers Keynote in Barcelona that Visual Studio 2008 will ship by the end of this month (November!). Yeah! Most people were counting on this before the end of the year which mean December or early January so this comes as a nice surprise.

We're talking about some cool technology:

  • Visual Studio 2008 (all editions)
  • Team Foundation Server 2008
  • .NET Framework 3.5
  • Language Integrated Query (LINQ)

Now of course the best feature in Visual Studio 2008 is multi-targeting. This features allows you to continue to develop .NET 2.0 or 3.0 applications without migrating to 3.5. There are lots of great features if Visual Studio 2008 - even if you don't move to .NET 3.5:

And if you are a Team System User

  • SharePoint 2007/WSS 3.0 or MOSS support
  • Simplified Installation
  • Better Offline Support
  • A bunch of other stuff including Power Tool Rollups.

And don't worry - you can install VS 2008 side by side with VS 2005.

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

.NET Applications on a Mac with WPF/E

As you might be aware, in sequence with Vista, Microsoft released .NET 3.0. This is an addtional set of libraries on top of .NET 2.0 - so your existing apps continue to work and the runtime CLR is otherwise unaffected.

This incremental set of .NET 3.0 libraries include usful parts for building distributed applications in new ways:

  • Windows Communication Foundation
  • Windows Workflow
  • Windows Presentation foundation

It should be noted that although these are released and pre-deployed with Vista - they are backward compatible to run on XP and 2003.

Windows Presentation Foundation (WPF) is for building very rich (i.e. 2D, 3D, animation, video & audio) client side applications and includes a markup language (XAML) to help out with that.

MS is already at work on a new derivative of WPF, namely WPF/E - E = Everywhere. Everywhere is a bit of a stretch - but it will include other browsers (Firefox, Safari, etc..) and other platform(s) - namely the Mac. Not clear if this is going to run on my J2ME, blackberry or Mobile Framework yet.

So with WPF/E we have this new thing that can make rich multimedia content and run in any browser, any platform - some would say a Flash Killer. With that in mind there are a few interesting tidbits I find interesting.

  1. You can script with JavaScript, like flash. Here's a nice demo on the http://thewpfblog.com/ where a cityscape is split in half - one side Flash, the other side WPF/E and a blue disc is scripted to bounce from one side to the other using JavaScript glue.
  2. The source code - and what's published to the browser - is Markup language - namely XAML.
  3. One of the reasons we like HTML so much is that search engines can parse and index i. That makes it's easy to find stuff. Anybody who has built a fancy front end to their website in Flash knows however that this content that is pushed to the browser is binary format to be executed by the flash runtime. Therefore it is a black box and can't be indexed by search engines.

    Remember I said WPF/E uses XAML - a markup language. Well the cool part is that this is pushed out to the browser so indeed it can be indexed. No reason why a rich WPF/E document couldn't be searched by Google & Live. It should be interesting to see what happens and how engines like Google, Live, Yahoo, etc. crawl, rank, search & render results of XAML content. Hmmm, search engine wars aren't over yet.
  4. CLR Integration is one of the tricker features that Mike Harsh says they are currently scoping. Being able to use the CLR with WPF is of course a key feature, so is this going to run on the Mac? I've expected to a commercially supported CLR for the Mac for sometime, well since, the Rotor project and more recently since this Mix 06 demo of the MiniCLR.. I've seen a lot of folks excited about the possibility of cross-platform .NET development. There are obviously technical and commercial hurdles to overcome. I suspect the technical hurdles to be no less challenging than any other attempts at cross platform support.

I think if we keep our perspective on on WPF/E in the same context of Flash, we'll find good uses for this technology and enjoy a more consistent development platform from CLR in our SQL Database right through to our browsers and devices.

WPF/E is expected to ship in the first half of 2007, but the December Community Technology Preview (CTP) is downloadable now. http://www.microsoft.com/wpfe

Migrating ASP.NET 1.x sites to ASP.NET 2.0

One of the questions we got during the Q&A of the Ottawa VS Launch yesterday was around problems in migrating ASP.NET applications from 2002/2003 to 2005.

The Web Platform Team has put together a nice step-by-step guide that covers some best practices to ensure a successful migration effort which should take you “the better part of a day” according to them. http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/webprojectsvs05.asp

Hello 2.0

This past week we saw the final bits of SQL Server 2005 and Visual Studio 2005 get shipped up to MSDN Subscriber Downloads. Next week we'll see the official launch of these same products to the rest of the world, ushered in with a rolling thunder of launch events and parties stretching into the rest of the month and beyond. Microsoft does a great job of fostering community with events like this.

Technically there is a lot to like about the updates to the platform and I share most of Joel's top picks. I've been building applications, consulting and teaching developers on this platform for 4 years now and it feels quite legacy, if not common place, to me now. However, in many peoples' eyes, this becomes a critical moment in time: .NET is no longer a 1.0 product. Of course I'm speaking about groups who are not developing anything significant in .NET today, and with this maturity milestone, allows them into this “new“ world.

We've been watching the adoption and market maturity of .NET closely for the past few years, and a bit to my surprise I'm starting to see a lot of groups come to .NET for the very first time with 2.0.

This coming Tuesday I have the great pleasure of being involved in the ushering in of this new era at the Toronto launch where we are expecting between 3,000 and 4,000 developers and IT professionals come together. Early statistics are showing that somewhere between 35-50% of these folks are new to .NET. Similar events are taking place all over the world during this week and stretching out into December and beyond. For Canada, Toronto is just the first stop in a long list of cities from coast to coast. Personally, I'll be presenting at Toronto, Ottawa, Vancouver, Montreal, Quebec City and Halifax.

The overwhelming registration statics tics in all cities tells me two things: Firstly that .NET 2.0 is going to be adopted very quickly. Secondly, and more importantly, is that the software development industry in Canada is vibrantly growing and that indeed....Software Matters!

Consider two things:

  • Software costs a lot of money to design, build, test and deploy. Much more than it should.
  • Software projects fail at an alarming rate. Failure can be defined as any of the following: Late, Over Budget, Under Functionality, Buggy, Doesn't meet requirements.

Yet despite these two glaring issues, the business value of software is so compelling, that people are willing to keep investing in building software at increasing rates.

And then there is Visual Studio and SQL Server 2005:

  • One of ASP.NET 2.0's design goals was to reduce the number of lines of code in a typical application by over 50%.
  • SQL Server 2005 has been enhanced to be more reliable and secure, while at the same time bringing the 4GL productivity associated with C#, VB.NET and the .NET Framework into the database engine itself.
  • Visual Studio Team System 2005 was built from the ground up to help project's stay on track by integrating developers, architects, testers, project managers and other stakeholders into a common extensible repository known as Team Foundation Server.

Coincidence? I hope not ;)

Access VSTS information - from Unix, Mac, and Eclipse with Teamprise

This is often a common push back or at least concern with big shops whom are considering adopting Team Foundation. How do we integrate our Java Developers (or non .NET Developers) into the Zen of Team System?

Enter TeamPrise. This looks like a serious gap filler. On their site you can download a trial that works with the July CTP of the Team Foundation Server. Lastly, TeamPrise is a division of SourceGear.

UPDATE: Also check out devBiz X5 web client - work item tracking via the browser - everybody has been asking for this one, say for example to integrate customer change requests into the team work flow. It doesn't yet seem to allow you to only edit certain types of work item types (they really need that) or to have an external authentication scheme. [Eric Jarvi]

Reflections on the PDC Day 1 Keynote

Bill Gates gave a pretty typical high level keynote to introduce the keynote this morning. He talked about the past, how far we've come, and how now is the most exciting time, and that we are in most exciting industry. Not that I don't disagree, but I swear I've heard this keynote before.

After Bill, a series of VP's and Architect's ran through more product details. Things started to get much more interesting at this point. Chris Capossela gave an end user run down of Windows Vista and Office 12 - which will be both released at the same time near the end of 2006.

The UI is just stunning (as it always is in these demos). It was also nice to see the QuickSearch text box integrated through both products. Not unlike Google Desktop Search, and using the same engine as MSN Desktop Search, the QuickSearch text box gives context sensitive searching through the application. If you're in a document explorer - you can search there for documents. If you are in the start menu, you can easily search for applications (and recent documents). If you are in outlook you can easily search your in-box, contacts, etc. Of course you can do broad computer searches too, but that context is nice.

Chris also showed off Sidebar which isn't really big news, but he also showed the audience Sideshow. Sideshow uses the same dock-able gadgets that Sidebar does, but re-use them on what I can only describe as a built in Pocket PC device that is built into the cabinetry of your laptop. This allows you to check real-time information (email, appointments, etc.) without turning on or booting up your laptop. Expedia had a nice gadget working in Sideshow that showed up to the minute flight status. Nice.

RSS is also taking a prominent position in Vista and Office. An RSS store was announced that would store subscribed RSS feed content. This content would be regularly downloaded automatically, and the content would be available to the Sidebar, Outlook, IE7, and your own applications. Cool.

Office 12 has a new user interface that hopes to make more of its features discoverable. At first glance I wasn't all too excited about this, but I'll reserve my judgment until I play around with it. The quick “wizard“ like features were absolutely stunning though.

The integration with Outlook and Sharepoint is quite impressive. We are all accustomed to having our email/contacts/appointments offline stored in our outlook store. With Office 12, you can keep in sync with any Sharepoint folder to keep those files on your local store. Sweet. Better yet, a special new Sharepoint List for sharing PowerPoint decks. When you upload a PowerPoint file, an item appears in the list for each slide. From within PowerPoint, I can create a new deck, and pull individual slides from the Sharepoint server. You can optionally have it keep that slide up to date so if a new version is uploaded to the server, you'll automatically get it. Corporate plagiarism has just become so much easier.

After Chris's “consumer“ demos, Jim Alchin came out with Don Box, Chris Anderson, Anders Hejlsberg and Scott Guthrie. Jim started by giving some demos of some interesting plumbing bits. One cool thing in Vista is Super Fetch. Super Fetch is a preloaded memory cache of things you'll likely need, but unlike typical hard drive caches, it basis it's decisions on analyzing your behavior over days, weeks, months to determine what an idle machine should be preloading. The second part of his demo tied in very nicely where he showed that any USB Memory Stick could be plugged into a Vista machine and it would automatically start using it for expanded virtual ram. That totally rocks for laptops which can quickly max out their ram capacities.

Don and Anders went on to talk about some big news, namely the Language Integrated Query (LINQ) project. Linq provides a query engine on top of XML, Object and Relational data stores using a common query language reminiscent of SQL. No, this isn't an O/R mapping tool, but you can see how they may have wanted to delay ObjectSpaces until they got Linq out the door. I'll have more on this in my blog in the coming days. Attendees at PDC are getting Linq bits to try out, and don't forget to stop by the track lounge to pick up a copy of a Linq whitepaper. 

Next Don and Chris messed around with Indigo, and they also created a goofy Avalon application. Scott Guthrie came out to show off the Atlas product which is a set of cross browser javascripts and server side ASP.NET 2 controls to make Ajax style programming a snap.

To close out the lengthy presentation, Jim brought out a few other people to demonstrate complete applications to bring up the wow factor, including Microsoft Max and a kiosk application created for the North Face.

UPDATE: Dinesh Kulkarni gives some inside scoop on how ObjectSpaces is dead, or rather morphed into DLinq. It would appear ObjectsSpaces is not something you'll see built down the road on top of Linq.