Boston Azure Bootcamp Presentation Materials

I had a tremendous time this weekend presenting alongside Bill Wilder, Michael Collier, John Zablocki, and Jim O’Neil at the Boston Azure Bootcamp event in Cambridge, MA.  The topic once again covered the concepts of using Windows Azure to enhance mobile Windows Phone application and general mobile development considerations, and went beyond my demos to include a hands on lab that most everyone seems to have enjoyed.

As promised, the slide and code content I referred to in my talk can be found here.  I mentioned to a few who asked – there are some values in the lab that are specific to the ACS namespaces I have set up.  I am including in the code file a word doc that indicates how to set up the ACS values for the demo code in question.

Again, many thanks!  I’m looking forward to hearing about how folks are using Azure to add cloud “goodness” to their mobile applications.

CodeStock 2012 Presentation Content

I would like to thank the attendees of my “Putting the Cloud in Your Pocket – A Guide to Using Windows Azure to Build Cloud-Enabled Windows Phone Apps” talk at the recent Codestock event – especially considering the early hour following the previous night’s fun.  The slide and code content I referred to in my talk can be found here.   Also, many thanks go out to the event organizers – I had a great time traveling down to Tennessee for this event, and hope to maybe do so again in the future.

As can be expected, I removed my custom/personal ACS information from the sample code.  This includes the acsnamespace and realm resources in the AccessControlResources.xaml file within the Phone project, and the SwtSigningKey, realm, and namespace values from the MVC project’s web.config file.  These values can be obtained from a new or existing ACS namespace as follows:

ACS Configuration Values

These values are available in the following locations (Note – this is based on the current Silverlight-based management portal.  Precise locations may shift slightly when this content moves to the newer HTML5-based portal.)

The namespace value is the namespace you indicated when creating the ACS instance.

image

The Realm is specific to the relying party application that has been configured, and can be found on the Relying Party Application page:

image

The symmetric key can be obtained from the Access Control Service management portal, selecting Certificates and Keys, selecting (and/or creating) a Symmetric Key specific to the namespace:

image

image

image

Async CTP

Also, please remember that the code made use of the Async CTP assembly.  This was not strictly required, but was instead put in place to help improve the code flow instead of using Lambdas or complete methods for the various callback functions used when interacting with Azure Storage.  Information about the Async CTP is available here.

NuGet Nugget: File-System Based Package Stores

A recent network “hiccup” posed a bit of a challenge to a demo that was built around showing how the Windows Azure Toolkit for Windows Phone (WATWP) NuGet packages make it easy to add Windows Azure cloud features to a Windows Phone 7 application.  So how do you access NuGet content when a network connection isn’t available?  What if you want to exert some management over the updates that are exposed to the developers in your enterprise, including exposing often-used or internal-use assets?

It turns out that NuGet offers some functionality that addresses these scenarios.  In addition to supporting the ability to set up your own package server (also known as Creating Remote Feeds in the NuGet documentation), there is the ability to consume packages collected in a directory – either a network share or a local file-system folder.  This is illustrated in the NuGet documentation under the subtopic “Creating Local Feeds” within the “Hosting Your Own NuGet Feeds” topic.

Populating a File-System Based Package Store

Any folder that contains NuGet .nupkg files can be set to be as a file-system based package server.  From my own use, folders that contain subfolders with .nupkg files will also work, allowing for organization and hierarchy.  If you already have a Visual Studio solution that has references to NuGet packages, moving these packages into such a local package store can be quite simple (especially for demos!)  Just locate the “packages” folder that is created when the NuGet packages are added

image

The entire package folder is not required, since the nupkg files are really Zip files that contain all of the necessary contents.  Search for files that end with the .nupkg extension. 

SNAGHTML9fbf7a

Simply copy all of these files into the folder you are using for your file-system based package store.  Note that a wider set of packages is available in your local package cache, which is normally maintained in <UserFolder>\AppData\Local\NuGet\Cache, and can be accessed from Visual Studio via Tools-Library Package Manager-Package Manager Settings, and click the “Browse” button in the General section of the Package Manager settings node.

Using File-Based Package Stores

To tell Visual Studio to consume file-based package stores, bring up the settings dialog (via Tools-Library Package Manager-Package Manager Settings or through the other accessors in Visual Studio) and select the Package Sources section of the Package Manager settings node.  Provide a name and type in the path or browse to the package location and click the Add button.  Note that the elements in the Available Package Sources list are shown in a check-list-box – they can be enabled or disabled.  Elements in the list can also be reordered in order to determine the precedence in which the sources are searched for matching packages.

SNAGHTMLab5b5b

When adding NuGet package references to your project in Visual Studio via the Manage NuGet Packages dialog, note that the newly named source now appears within the “Online” package listing section. 

SNAGHTMLb09c32

The new source is also available as a pulldown option in the Package Manager Console window.

SNAGHTMLb430e2

As I’ve been digging into NuGet more lately, I’ve been quite impressed by the functionality it exposes.  There’s much more to it than just a right-click menu item and a dialog box  that adds and updates project assembly references.  Some of my current favorites include managing package references at the solution level and visualizing NuGet package chains.  Be sure to check out the NuGet docs in case you have yet to discover your favorite.

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.

Office 2007 Compatibility

I have been using Office 2007 since the Betas and followed its development extensively (Jensen Harris is a Program Manager in the Office User Experience Team who published a series of Blog posts that gave an incredible amount of detail into the how the new UI came to be, as well as the some valuable history into the evolution of the Office Suite. His Blog can be found here.) I have been quite impressed with the new products. The new XML-based documents allow for some great programmability options, and the Ribbon UI was quite easy to adapt to, and now that I am used to it, I really do feel that my productivity has actually increased (I am looking forward to the integration of the ribbon UI into parts of the upcoming Windows 7 UI.)

All that being said, a lot of people have not made the move, for quite a number of reasons. Sometimes it is organizational / cost related; other times it can be because the transition from memorized menu-command layouts to the Ribbon layout can be daunting. There are actually a few really interesting tools to help bridge some of these gaps, and I will discuss a few below.

Office Compatibility Pack

Microsoft actually released an update for the Office XP and Office 2003 suites that allows Word, Excel, and PowerPoint files written in Office 2007 (docx, xlsx, and pptx extensions respectively) to be opened in these earlier versions of the suite. The Compatibility Pack description and download link can be found here.

Interactive Command Guides

Another tool that was released to help bridge between the two suite versions is an online interactive command guide. The various web apps present the original Office 2003 menus and toolbars. Selecting an item will trigger an animation that shows the corresponding location of that command within the new Office 2007 UI.

Figure 1- File/Save in Word 2003 and Corresponding Save in Word 2007

Links to the Command Guide Follow.

Word Command Guide

Excel Command Guide

PowerPoint Command Guide

Outlook Command Guide

Getting Started Addin

The last compatibility tool I plan to discuss is the Getting Started addin for the Office Suite. Downloading and installing this addin from Microsoft adds a new “Get Started” tab to Excel, PowerPoint, and Word. The new tab includes demo videos, links to the Interactive Compatibility Guides listed above, and other interactive learning materials. Information about the addins and download links can be found here.

Search Commands Addin

Microsoft created a group within the Office team called the Office Labs. As Jensen Harris puts it, the group’s charter is largely to “create concept cars.” One of their efforts has yielded an addin called Search Commands. Installing Search Commands results in a new tab in your Office applications that allows you to enter a term and search for matching commands. The Search Commands ribbon contents are populated with the command buttons that match your search term, and you can select the command directly by selecting one of these buttons. The Search Commands Addin is available here.

Keep in mind that the tools produced by the Office Labs are experimental, and neither support nor continued development is guaranteed.

Figure 2- Searching for Open in Word

The Series Has Landed

With all due respect to Matt Groening, et al…

Okay. It took a little longer to get to this point than I had wanted it to, but the important thing is that I got here. What follows is hopefully a collection of a few things, including:

  • Solutions to technical problems that interest me that I either encounter directly or that have been brought to my attention by others;
  • Random rants (I seem to be prone to these) ;
  • Other odds and ends…

Basically, your typical Blog fare. I have been participating in the .Net community for several years now, mostly as an audience member (sometimes an excessively vocal one, but an audience member nonetheless.) It is time to start paying it back.

At a minimum, I intend to make it fun…