CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Glenn Block


Seattle CodeCamp Recap

image

Like all good things, sadly Seattle CodeCamp has come to an end. I had a great time and enjoyed hanging out with all the CodeCampers. I particularly enjoyed hearing about the different challenges customers are facing in their implementations. I also took part in more than a few discussions about our p&p deliverables including perceptions on the new Unity container and our newly announced "Prism" project. In general I heard no complaints and a lot of support for the new emphasis we've been putting on simplifying our deliverables and giving more options as to how you use them.

As to my talks, well they certainly didn't turn out as I had planned ;)

My WCSF talk was originally scheduled to be around an advanced topic of how to replace the default Session-State injection mechanism in the factory. However, I quickly switched gears and ended up doing an overview on Composite applications, Dependency Injection and the Web Client Software Factory. Notwithstanding the change in topic the session was really enjoyable. The coding was all ad-hoc and apparently I scored a few brownie points when it compiled the first time :) We ended the talk at a point when we could have dove into the original topic, however there wasn't enough time.

My day two talk followed suit which switching gears yet again, this time covering the Smart Client Software Factory. As before the session was not planned, but I think it went well. At the end of this talk a few of the attendees requested that they would really like to cover the topic I originally planned (the DSA) now that they understand the basics of Smart Client Software Factory. It turned out that there was a free slot at 3 PM which I happily agreed to (though my wife on the other hand was less than pleased ;) )

During the last talk we did a deep dive into how the Disconnected Service Agent works under the hood, and how you can go about replacing it's default mechanism which supports a simple Request-Response message exchange pattern, to instead use a Duplex channel. The one annoying part to the talk was that I was experiencing connectivity issues and the connection monitor infrastructure was working too well keeping my application in an off-line state. We finally got around this by connecting to the internet through a USB connection to one of the attendees cell phones :)

Actually the connection monitor does allow you to configure a DesktopConnection which you can use to simulate connectivity even if you are not connected. I spent about 30 minutes trying to get this configured before my talk (as I realized it might be a problem), but I was unsuccessful. Anyway, all and all I think the talk went well though it had a few hiccups, but hey this is CodeCamp :)

You can find all the code and decks for the talks (both the originally planned and the actual ones delivered) posted on a skydrive here.

  • "Custom Session State Injection" contains the sample for my original WCSF talk. Take a look at the helpers folder in the Shell project to see the custom mechanism. In the web site, GetSessionValue.aspx and SetSessionValue.aspx demonstrate the functionality.
  • "DSAQuickStart" contains the original Disconnected Service Agent Quickstart that uses the Request-Response message exchange.
  • "CustomDSAQuickStart" contains the modified version that uses a WCF Duplex channel to allow multiple callbacks. When you run the code you will notice only a partial list of restaurants appears to be returned. This is because we changed the code in the session to do a call back every 5 items. The client app however was not written to deal with multiple responses, so the second callback overrides the first.
  • "DemoApp" contains the account site that we build in the WCSF overview talk. Within the sample we show recursive DI in that the AuditingService has a dependency on the AuditingTransportService.
  • "DemoClient" contains the simple (and I do mean simple) app we through together in the SCSF talk.

Note: You'll need SQL Compact to be installed in order to run the DSA samples which are built on VS2005. If you upgrade the projects to VS2008 they will work, but you will need to use Upgrade utility to convert the compact DB to the latest version. Aside from the DSA, all the other samples are in VS2008.

Also I have added a few links below to blog posts where you can read about the different techniques.

http://staff.southworks.net/blogs/siacomuzzi/archive/2007/09/24/Enabling-WCF-Duplex-Channel-in-DSA-solution.aspx

http://staff.southworks.net/blogs/siacomuzzi/archive/2007/10/05/How-to-replace-our-Sessions-State-strategy-in-Web-Client-Software-Factory-with-a-custom-one.aspx

Thanks to everyone for making it a fun event. Until next year!


Published Jan 28 2008, 01:25 AM by gblock
Filed under: , , , ,

About gblock

Glenn Block is the Technical Product Planner for the Client UX program at patterns & practices. As Product Planner he is responsible for driving the vision and creation of p&p client deliverables including the Web Client and Smart Client software factories. Prior to joining Microsoft, Glenn has lived in various roles being "in the trenches" with developers, including being responsible for the overall architecture and technology direction. He has worked in both large and small organizations building enterprise systems for financial services, manufacturing, and print & mail on multiple platforms including .NET and Java. His technology passions are in software frameworks, architecture and systems integration. He resides with his wife and 3 year old daughter in Seattle (his other passion). Check out Devlicio.us!

This Blog

Syndication

News

View Glenn Block's profile on LinkedIn

Me