DeveloperDeveloperDeveloper! Sydney 2012 Roundup

I had the opportunity to attend the Developer, Developer, Developer Sydney event today (30/June). Other than catching up with people I only met on Twitter (David Burela, John Bristowe, Nick Hodge), catching up with people I have met before (Nick Randolph, David Glover, Brendan Forster, Jose Fajardo) and making new contacts, my main interest was in learning more about Windows 8. I attended sessions focussing on Windows 8 & Windows Azure and Microsoft ASP.NET Web API. Here is a summary of the sessions I attended today, they were all awesome!
Bring your Windows 8 Apps to Life with Push Notifications using Windows Azure by Nick Harris (@cloudnick)

Nick presented on building a Windows 8 C#/XAML application connected to the web. He built a Windows 8 app that used the camera (a webcam connected to his laptop) to take a photo, upload it to Windows Azure & stored as a blob, added geo-location to the photo with a map highlighting where the photo was taken and finally demonstrating how easy it was to implement Tile and Toast Notifications in Windows 8 applications (along with resizing the uploaded photo to fit within a tile). In tandem with the Windows 8 application was a Microsoft ASP.NET Web API application performing tasks such as uploading a photo to Azure Blob Storage, setting up push notifications, etc. Nick showed how to use Shared Access Signature to implement a simple yet powerful access policy for blob storage. Nicks’ talk (silides, recorded video and code) is available for download from –

Some links relevant to Nick’s talk –

WindowsAzure.Notifications –
Windows8.Notifications –
WNSRecipe –

ASP.NET Web API – From Web to REST in 60 minutes
by Paul Glavich (@glav)

Paul took everyone in a journey through Microsoft’s new ASP.NET Web API. ASP.NET Web API is Microsoft’s attempt to help developers build RESTful APIs with ASP.NET MVC a breeze. Gone are the days when decorating controller methods with “HttpGet”, “HttpPost”, etc was necessary. Paul explained model binding, action parameters, authorization, logging, documenting an API and also building a task parallel API. The 60 minute talk was full of many takeaways! Pauls’ talk is available online from –, the source code for the talk is available at – Couple of recent posts by Paul on ASP.NET Web API are really cool, go check them out now!

Some links relevant to Paul’s talk –

Getting started with ASP.NET Web API –

Using non Microsoft JS frameworks with Windows 8 by Nick Hodge (@NickHodgeMSFT)

Nick presented a no nonsense, no slide-deck, code only talk on building a Windows 8 app using Javascript and HTML. He showed how the power of Javascript could be used to build a Windows 8 app that functioned like a traditional “desktop” app in existing/older version of Windows. Nick then demonstrated an application built with Rafael Javascript library. John Bristowe then presented on Telerik’s Metro control suite. A great session, with lot of participation from the audience.

Some links relevant to Nick & Johns’ talk –

Rafael Javascript Library –
Telerik RadControls for Metro –

Windows 8 Development 101: The basics of XAML and ViewModels
by David Burela (@DavidBurela)

David presented on MVVM & ViewModels and how they can used to build a Windows 8 application. In the last 15 minutes, David demonstrated how easy it is to implement internationalization in a Windows 8 application, very cool! David is a regular presenter in various seminars, user groups and conferences, go check out his blog at

What I learnt flying BoxKites  My story of Flying with Windows 8
by Brendan Forster (@shiftkey)

Brendan presented on his experiences on building ‘BoxKites’, a Windows 8 application parts of which will be open-sourced soon. The talk covered the basics on editing a copy of a XAML template, adding icons, testing and certification, etc. Overall a very informative and in-depth talk. Contents of the talk is available at –

Some links relevant to Brendan’s talk –

BoxKits.Notifications –
SyncFusion MetroStudio –

Build a touch first mobile enterprise app using Metro WinJS & MVC by Cassandra Buono (@CBuono)

In the final talk of the day, Cassandra presented on building a Windows 8 Metro application with WinJS and HTML using the MVC pattern in Javascript. First part of the talk covered the UI design of the application in depth, very useful for developers starting on Metro design. Next part of the talk was on using the mydigitalstructure API to build an ERP application. A comparison of jQuery and WinJS and how web development skills can be leveraged to build a Windows 8 Metro app were key takeaways from the talk. Code and presentation from the talk will be available at –

Some links relevant to Cassandra’s talk –

mydigitalstructure API signup –



To wrap up the event on a high note, I was one of the recipients of a Telerik Ultimate collection from a lucky draw! Thank you Telerik and David for the prize. Lewis and his team did a phenomenal job of organizing and running the event. DDD Sydney (and hopefully other cities) will be in my list of “to attend” events.

I have had a hiatus from blogging. While I have been silent, I have worked extensively on building connected applications with Windows Azure & SQL Azure for mobile applications that run on Apple iOS, Google Android and Windows Phone 7. With an explosive June (Azure, Surface, Windows Phone 8, iOS 6, Android announcements), I aim to blog often staring with this post.

Lawson Smart Office – A WPF Line-Of-Business application

In a recent video posted on Channel 9, Adam Kinney talks to Matthew Allbee from Lawson Software about a smart client application developed entirely in WPF, screenshots of which surfaced earlier this year. In the short video, Matthew demonstrates the application which is similar to a desktop session, one where the user switches between a number of applications (WPF 3D has been used with Visual Brush to preview open forms – awesome!), opens Microsoft Office appllications, etc. The application integrates with the Lawson backend, shorcuts and other user preferences are all stored for the user. The application has 10,000 forms and it is growing! Lawson’s smart office is yet another line-of-business application developed with WPF, after we all saw Billy Hollis showing of StaffLynx which I have blogged about earlier.

Here is a screenshot of the application (Courtesy : Lawson) –

Lawson Smart Office

Lawson Smart Office

Jaieme Rodriguez has posted some more screenshots in a recent post. Head over to Channel 9 and watch the video!

WPF Bootcamp 2008

If you, like me, didn’t have a chance to attend the WPF Bootcamp 2008 (Note: Requires Silverlight 2), or, if you attended and would like to download and watch the sessions again, they are available for download here. The source code used in the demonstrations is also available. Session presenters include Karsten Januszewski, Robbie Ingebretsen, Jonathan Russ, Greg Schechter, Jaime Rodriguez, Adam Smith, Alan Le, Josh Wagoner & Josh Smith. Sessions of particular interest are by Adam Smith (WPF Performance), Josh Wagoner (Real World WPF) and the excellent introductory series by Jonathan Russ and Robbie Ingebretsen.

These free resources are definitely worth going through, I am sure they will help in the WPF journey!

The dreaded AddressAccessDeniedException

About six months ago, I made the switch from developing with the .NET framework on Windows XP to Windows Vista (My main development rig runs Windows Vista Business 64-bit which is rock solid, I use Virtual PC 2007 SP1 to run virtual machines for development, testing, trials, etc. I even have a openSuse VM for Mono work!). I was flying high with Vista Service Pack 1 installed on the development VM until I hit the dreaded AddressAccessDeniedException –

AddressAccessDeniedException in Visual Studio 2008

AddressAccessDeniedException in Visual Studio 2008

Fortunately, this was not the first time I encountered this exception. In the first major project where I developed a workflow-driven business layer exposed with the WCF WorkflowServiceHost, I spent about three hours fighting with the exception during a deployment drill, until I hit the cause of the issue and found a solution. Digging deep to find a nice solution, I initially tried using httpcfg.exe as outlined in this MSDN article but soon gave up.

Fast forward to present – I am using a console application to host a workflow which is exposed to clients using a WCF WorkflowServiceHost. I use WSHttpContextBinding as the binding for the endpoint. The console application runs well within Visual Studio 2008 when I use a Windows XP Service Pack 3 VM for testing. I encounter the exception when I attempt to run the same console application in Vista. I turned off UAC (Yes, you may ask me why do I use Vista then!), restarted Visual Studio and it was all good. Next, I turned on UAC, right-click on the Visual Studio 2008 shortcut, and select “Run as administrator”. The console application runs fine without any exceptions! I coudn’t justify myself running Visual Studio with elevated permissions in Windows Vista without finding a way to add the reserved HTTP namespace to the group of users my logged in account belongs to.

I refreshed my memory of an excellent tool that I used the last time I encountered the same exception during the deployment drill on a server running Windows Server 2003. This tool is called HttpNamespaceManager, developed and shared by Paul. This tool can be used to manage HTTP namespaces. It provides a user interface that is simple and easy to follow. When adding a reserved HTTP namespace to the list, use the string http://+:9000/ (This is only an example; I was using http://localhost:9000 to host the workflow) in the “Enter URL” popup, followed by “BUILTIN\Users” in the “Permissions” popup – “Group or User Names” section. After entering the users group, turn on the “GenericExecute” option. Close all the pop-up windows and try running the application. The exception does not appear again.

In summary, there are two (nice) ways to resolve the exception –

  • Run Visual Studio 2008 as administrator.
  • Run the HttpNamespaceManager tool and the HTTP namespace the group of users your user account belongs to.

I had hoped that with Visual Studio 2008 SP1 this issue will have been resolved. However, this is not the case. I am guessing this is perhaps the a requirement for Visual Studio 2008 – not to allow the user to access reserved HTTP namespaces unless explicit permission is granted.

Have a nice day!

The WPF journey

Why WPF?

This was the question recently asked by a client when I was presenting a proposal for a new smart client application. I have used Windows Forms to develop smart clients for the last few years. When Microsoft had the “Orcas” release out, I started playing with the WPF bits and have been very excited about the potential of using this new technology to design and develop smart clients for LOB (Line Of Business) applications. The content of this post was inspired by the experience of my journey so far developing applications with WPF.

Like many other software developers & UI designers around the world, I have had a hard time convincing customers and prospects to adopt WPF as the technology for developing new smart client applications or enhancing existing products. MFC had a recent “refresh” release and Windows Forms, with the plethora of third-party controls (ComponentFactory has excellent Windows Forms controls that are available for free!), it is very tempting to stick on with Windows Forms for smart client development. However, when you think of the time few years from now, WPF will have gone through several refreshes, bug fixes and enhancements, making it more robust and stable and ready for enterprise grade application development. To “future-proof” your product, it is essential to give some thought in investing time to learn and adopt WPF as the technology of choice for smart client development. I regularly watch dnrTV shows and had a chance to watch Billy Hollis demonstrate a line of business application developed using WPF. I learnt a lot from the show and was inspired to continue with my journey with WPF (you can download the show from here). In addition, the WPF application showcase provides a list of applications that are developed with WPF. The applications in the showcase highlight the fact that the next generation smart clients will benefit a lot from WPF.

Climbing up the WPF learning curve

Adopting WPF is a challenge as there is a steep learning curve involved, a developer is expected to slip and trip while climbing the curve! I recall a comment from a very successful entrepenuer I recently met in a meeting – “When you think you are falling down a cliff, be as close to the edge as possible and grab hold of any shrubs and branches – try to slow down the speed with which you are falling down. As you get hold of more shrubs and branches, you will eventually slow down and not hit yourself hard at the bottom of the cliff”. As an analogy, while climbing the curve, we can always refer to samples, useful blog posts, resources available from Microsoft and its partners, etc. There are some really good references that people have blogged about elsewhere. I have been using “Pro WPF in C# 2008” as my “workbook”, while having WPF Unleashed and Programming WPF by my side for digging deeper. Working through a tutorial or workbook may not be the ideal way for every new developer to learn and master WPF, however, it can certainly make the climb up the curve a lot more comfortable.

WPF Training Resources 

In addition the books and blogs, there are some really helpful and illustrative resources available for free. Downloading them and viewing them while working through a book or tutorial helps getting a concept or two across. Some training resources that I have used and found really useful are –

WPF Code Samples

Sample applications (with source code) developed with WPF and WPF code samples can help a lot in understanding fundamental concepts or illustrate how a feature should be used the right way. I have picked the following from my list of resources I always keep handy while developing a WPF application.

I hope you find the links and resources in this post useful in your journey. Good Luck!

SQL Server 2008 Beta Exams

Microsoft recently announced two Beta exams for SQL Server 2008 DBAs and developers. Interested candidates can register with their local Prometric centers (Outside US and Canada, you can register through the Prometric website) and take these exams for free, yes, FREE! Note that the results for these exams are not available immediately after you write the exam, you hvae to wait several weeks after the exams are publicly available (These exams will be publicly available later this year in November time frame). The two exams you may wish to attempt are –

Exam 71-450: Microsoft SQL Server 2008 : Designing, Optimizing, and Maintaining a Database Administrative Solution

This exam will be available later this year as 70-450. Passing the exam will count towards a credit for Microsoft Certified IT Professional: Database Administrator 2008 certification [Note that you need to pass Exam 70-432: TS: Microsoft SQL Server 2008, Implementation and Maintenance in order to obtain this certification]. The official study guide for this Beta exam is available here. To register for this exam, use the promotional code 239F4. Registration for this exam will be available from August 15 until 24 hours before the exam period ends on September 16.

Exam 71-452: Designing a Business Intelligence Infrastructure Using Microsoft SQL Server 2008

This exam will be available later this year as 70-452. Passing the exam will count towards a credit for Microsoft Certified IT Professional: Business Intelligence Developer 2008 certification [Note that you need to pass Exam 70-448: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance in order to obtain this certification]. The official study guide for this Beta exam is available here. To register for this exam, use the promotional code 3568C. Registration for this exam is currently open, and will be available up to 24 hours before the exam period ends on September 10.

How do I prepare for these exams?

There are no preparation guides or resources available at the moment for us to refer and prepare for the exams. The lack of resources actually adds to the excitement of doing the exam! Earlier this year, I passed the Beta version of Exam 70-504 : Microsoft .NET Framework 3.5 : Windows Workflow Foundation Application Development. Other than the official study guide, there were no training resources available to prepare for the exams. I used the Visual Studio 2008 training kit, worked through the samples and hands-on labs, did a number of virtual labs, viewed a number of webcasts and read through several dozen blog posts! Once I felt I was ready to look at a book for more in-depth knowledge while I was developing couple of applications using WF for practice, I used Microsoft Windows Workflow Foundation Step By Step By Kenn Scribner and Pro WF: Windows Workflow in .NET 3.0 by Bruce Bukovics as references. The preparation strategy worked out well and I passed the Beta exam.

To prepare for the SQL Server 2008 Beta exams, it is perhaps beneficial to start with the available SQL Server 2005 books. A book like Pro SQL Server 2005 Database Design and Optimization by Louis Davidson et. al. lays the foundation well. Add a good reference book on the track you are willing to pursue after you have worked your way through one book. Follow this up with the SQL Server 2008 Virtual Labs, some demos and videos, SQL Server 2008 Books Online & the SQL Server Developer Center for downloads and other resources.

Update [29 August 2008]

While trawling the web for some SQL Server 2008 resources, I found a few links that I would like to share –

Note/Disclaimer: My suggestions above do not gurantee success! They are simple guidelines and thoughts that I have shared and could possibly help you in achieving success. Good Luck!