Vermont Code Camp Presentation Materials

Many thanks to the organizers and attendees of this year’s Vermont Code Camp.   This event continues to set the bar for excellence, and a ton of credit is due to Julie Lerman, Rob Hale, and the rest of the volunteers who all clearly work quite hard to pull it all together.

I have uploaded the code and content from my “What’s New in Windows Phone 7.1 Silverlight Development”, and they can be downloaded from here.


NH .Net Code Camp 3 Presentation Materials

I have uploaded the content from my 2 talks at the NH .Net Code Camp 3 event from yesterday (6/4/2011). 

  • The code and material for my first talk – Introduction to Windows Phone 7 Development with Silverlight – are available here.
  • The code and material for my second talk –  What’s New in Windows Phone 7.1 Silverlight Development – are available here.

As is usually the case, the code has been sanitized, which involves the removal of my personal Bing Maps developer key.  For information on how to obtain your own map key, please check out the Bing Maps Developer Portal.

Many thanks to Patty, Udai, and Pat for hosting another fun event. 

New England Code Camp 14 Presentation Materials

I have uploaded the content from my two talks at the New England Code Camp – Introduction to Windows Phone 7 Development with Silverlight and Advanced Windows Phone 7 Development with Silverlight. The content can be found here and here (Slideshare links here and here.) The uploaded content includes:

  • Presentation slides, which include the reference and event links I mentioned during the talk
  • An interactive pdf of the outline I worked off for the talk (Acrobat Reader may be required)
  • The sample code

The demo code was prepared with the RTM version of the Windows Phone Developer Tools, as well as some controls from the Silverlight for Windows Phone Toolkit. To use the Bing Maps demos without the watermark indicating the control needs to be licensed, please go to the Bing Maps Developer portal, register, and put your application key into the properties in the BingMapsKey.cs files.

* Note – when using the Notification Service and Bing Maps Demos from the Advanced topic, be sure to set the solution to use Multiple Startup Projects (PhoneDemo and PhoneDemoService.)

Vermont Code Camp 2010 Presentation Materials

Julie Lerman and her team have once again put on a terrific event at the 2010 Vermont Code Camp. The host team’s terrific hospitality as well as the great facilities provided by the University of Vermont made this an extremely enjoyable event to attend and present at.

I have uploaded the content from my talk – Introduction to Windows Phone 7 Development with Silverlight – and the content can be found here (Slideshare link here). The uploaded content includes:

  • Presentation slides, which include the reference links I mentioned during the talk
  • An interactive pdf of the outline I prepared for the talk (Acrobat Reader may be required)
  • The sample application, with notes added to locate the key concepts that were discussed

The demo code was prepared with the Beta version of the Windows Phone Developer Tools – there may be breaking changes as later versions come out.

Code Camp Silverlight for Business Review

Yesterday’s Code Camp presentation went relatively well – the Demo Gods only frowned a couple of times. I wanted to take a few moments to review some of the things that went wrong, what I did to overcome them, and also to review some of the questions I was asked to answer.

Question: I have a client who needs to write a Business Application. Is Silverlight the right technology to use?
Answer: Um….yes? Actually, I could not answer this directly. There are too many variables involved. What is the existing technology investment, if any? What are the client’s feelings about that investment? Should it be kept, or does it need to be replaced or rethought? What are the end-user needs, especially in terms of OS platform, ease-of-deployment, occasional or ubiquitous network connectivity, etc? What is the existing skillset for maintaining the code going forward?

There’s a lot that goes into making a decision about adopting a technology for a problem, especially if it is for a client. Silverlight is certainly a good platform for developing interesting applications, including Line of Business applications. I’d invite people to review the “Why Silverlight” portion of my presentation to see if its benefits are applicable to their specific situations.


Issue: Visual Studio and IE locked up during the demo. I was running the application, and it got stuck at 45% loading. IE was unresponsive and Visual Studio told me it was busy whenever I tried to do anything.
Cause: Voodoo?
Resolution: I used Task Manager (actually I used Process Explorer) to kill IE. Visual Studio was still locked up. I tried to shut down the Cassini web host, but the tray icon was unresponsive. In the interests of time, my next step involved using Process Monitor to kill Visual Studio and just restarted things from where I left off. That worked…otherwise my next steps would have involved rebooting, and perhaps doing a clean build.

Issue: During the Authentication topic, checking the ASP.Net Authentication Service revealed that it was in a bad state.
Cause: Pilot-error (cut and paste problem in the web.config)
Resolution: When I pasted in the configuration contents for the Authentication and Role services, I neglected to combine these with the pre-existing service configuration for the other web service I was using. The configuration parser got annoyed when it realized that I had two sections with the same name. I just merged the Service and Behavior declarations in and successfully rechecked the ASP.Net Authentication Service.

Issue: During the Authentication topic, when showing server-side role checking, I got an exception when launching the application.
Cause: Pilot-error (cut and paste problem when adding the functionality to the web service code)
Resolution: An astute attendee noticed that when I pasted my new GetProducts method into my web service code, I had left the OperationContract attribute off. I re-added the attribute, recompiled, and was able to show that logging in as different users with different roles returned different data. In gratitude, the user got one of my giveaways on the spot – a copy of O’Reilly’s Programming EF.

Question: I have a shop of ASP.Net/HTML/Javascript developers. Should I go back and tell them that they need to learn Silverlight?
Answer: Um…yes? Again, a lot depends on the specific problem domain. Silverlight has many benefits, and if those benefits seem to apply to the direction your business is going, then it is likely that it would be a good thing to learn. Be careful, however of the old adage “if all you have is a hammer, the whole world looks like a nail.” Sometimes, you really should use a screwdriver. Silverlight is a viable technology, and is being used in many professional scenarios. Unfortunately in answering this I think I gave too many examples of people using the media capabilities of Silverlight (NBC Olympics, CNN Inauguration, etc.) For a showcase of hundreds of actual Silverlight Business applications, please visit the Microsoft Silverlight Showcase and select “Business Applications” from the Category section. Also, Microsoft has put together some compelling data in this application.


Silverlight Showcase Business Applications

There were also a couple of questions about LINQ-to-Entity and EF vs LINQ-to-SQL. There are better sources than me for information on that battle.

Another Code Camp

Spring is here (finally!) so it is time to go camping again – or perhaps at least the geek alternative. I’m doing another Code Camp, this time reprising my Silverlight for Business Applications presentation, with a few changes. It will be interesting to do this one considering everything that was just announced for Silverlight 3.0 (all of this is how you do it today, but if you wait until the new framework comes out, it will be a whole lot easier…)

Anyway, I have uploaded the presentation slide deck, materials, and my “script PDF.” The content is available for download here.

Note: I am posting this early, before I do my presentation, and will refine it later on today…I just don’t want to get into one of those “life happens” situations and neglect to push up the content in a timely manner…

Silverlight Demo Content Posted (Pt1)

The first of the New Hampshire Code Camp
Silverlight Demo content has been uploaded. The content includes the simple “Hello World” code, which is just a basic Silverlight page and project, as well as the associated auto-generated Web Project. The second project is the data access demo, which illustrates a data access layer (Linq to SQL), a WCF Service which provides access to the data access layer and returns a shaped version of the data in the DAL, and a Silverlight page which shows the data in a DataGrid.

The Silverlight page in the Data Demo also illustrates the use of the Silverlight Controls’
AutoCompleteBox to do client-side filtering of the retrieved data, as well as a Line Graph from the same library. One thing that has been added since the demo is a “swinging gate” technique to use an AutoResetEvent and a background thread to load the data for the graph, in order to avoid the latency seen in the UI when the graph was being arranged inline with keyboard entry in the AutoComplete box.  The DataDemo relies on the Products table in the AdventureWorks sample database, which can be downloaded here.  As I was using a named instance of SQL Server on my machine, some updates to the connection string may be necessary – the connection string is being kept in the web project’s web.config. file.

Also uploaded are the PowerPoint slide deck and a folder of links and slides which served as reference material used in preparing the presentation. (Near) future uploads will include the use of the ASP.Net Authentication Service from a Silverlight control, and interacting with HTML content (and jQuery) through the HTML bridge. Also in a subsequent upload will be interactive PDFs of the script content I used through the presentation.

To everyone (anyone?) who was waiting for this content, thank you for your patience.

The content is available here.

NH Code Camp Presentations – MMC 3.0 Development with .Net

OK…having shoveled and shoveled and shoveled out of today’s snowstorm, I can finally turn my attention to putting these presentations online. I’m going to start with the MMC Presentation in one shot, then do the Silverlight Presentation as a series of updates.

The focus of the presentation was using the MMC 3.0 API exposed in the Windows SDK to do what is pictured below – write content such as an administration tool and integrate it in a way that makes it look integrated into the Windows Shell.

Quite often, server-side components end up being managed through some hastily written application that is installed with as little integration as a presence in the Start Menu and perhaps a shortcut on the desktop.

So anyway, the presentation slides are here (I use SkyDrive for these because WordPress is not the best for file storage and retrieval):

Slides and Script


Not that I use Mindjet MindManager for my presentation prep, which is where I keep my scripts. The output animated PDF reads much the same as the original…start at 12:00 and read clockwise around. The little “paper” icons are the topic notes – which house the text.


New Hampshire Code Camp

Wow have I been bad about (not) posting here. I just did the NH Code Camp yesterday (Saturday.) The event went very well, especially so considering it was the first one put on by Pat Tormey and the NH .Net User Group.

I gave 2 presentations – a refined version of the “Writing Custom Admin Consoles with .Net and MMC 3.0″ that I debuted at the last Boston .Net code camp, as well as a premiere version of a Silverlight 2.0 for business applications presentation. The first one had a whopping audience of 3 (one of whom was there because he was presenting in the same room after me), but the Silverlight presentation had a full room. I ran a bit long with the SL presentation, and my configuration for the ASP.Net membership service blew up, but overall I think it went OK (I still need to get the review sheets to know for certain.) I will likely be revising & reprising the Silverlight presentation next month at Boston.Net’s next code camp.

Unfortunately, I was not able to get my presentations up today, but I will be putting them up through the week (weather/shoveling permitting.) In the meantime, I keep my public presentation materials on my SkyDrive here.

CodeCamp 10 Presentations Online

Yesterday I gave my aforementioned presentations at the New England Code Camp. Overall, things went well, especially considering this was my first public speaking opportunity. My presentations did run a bit long, and I had to omit some things I had originally wanted to go over. From my own notes, some one-on-one feedback, and some of the review sheets (which were quite positive…thanks!), I plan to make some changes to the presentations in the hopes that they will flow a little faster and hopefully we can concentrate more on the content and less on my ability to type in an audience setting.

I am taking 2 approaches to publishing the presentation content. First, the raw slide decks and Visual Studio solutions have been published (links below.) Then, over the next few days, I will both augment the code so that the key points are called out (more comments, etc.) as well as write some posts dedicated to covering some of the details in a more conversational format.

Because WordPress is a little flaky when it comes to how files are stored, I am storing the content in some publicly accessible SkyDrive folders. The PowerPoint slide decks are written in PowerPoint 2007, and the source code projects are Visual Studio 2008 projects. (For Office 2003 & Office XP users, some compatibility information is available here.)

C++/CLI Presentation Content

MMC Presentation Content

Many thanks to my 2 audiences and for the congratulations and well-wishes I received. I definitely plan do this again – only better.