BUILD 2012 – Day 3
The BUILD conference’s third day was devoted fully to breakout conferences, with the BUILD party at the end of the day (and Microsoft has shown before that they know to throw a party).
As always – all BUILD sessions are available on MSDN channel 9.
BUILD Session – Tips and Tricks for Developing Connected Applications
This session focused on issues regarding the development of applications which require a data connection, whether it be a server or a pee-to-peer connection and has shown some tricks accomplishable with the new Windows 8 API (WinRT):
Peer-to-Peer Communication
Windows provides a peer-to-peer communication API, which can be used to communicate directly with other devices via several communication methods (Bluetooth, NFC etc.). In this session, the presenters focused on Wi-Fi Direct which is a standard allowing two devices to discover each other and create an ad-hoc connection between them via Wi-Fi based communication. This allows creating, for example, multiplayer games which do not require a server or even a network to connect with each-other and is pretty cool. The standard is interoperable with other platforms (such as iOS and Android if they support it), but unfortunately is not currently supported by the new Windows Phone.
Avoid “Bill Shock”
WinRT provides an API for checking the cost of the current data connection which the device uses (Fixed, Unlimited, Roaming etc.) and your application should have appropriate strategies for handling the different costs associated with various networks. If your users gets a huge cellular bill at the end of the month because of your app, they won’t be particularly happy…
Loopback Communication Prohibited
Windows Store apps are limited in their abilities to use OS services in order to provide the user confidence in the applications they install. This is in contrast to Desktop applications which can pretty much do what they want. As a result, WinRT apps cannot communicate with desktop apps (or any other app for that matter) through any loopback manner – network, pipes, RPC etc.. This will only work on development machines for debugging purposes, but is prohibited and rejected by the Windows Store. In contrast, loopback communication within a Windows Store app works flawlessly.
BUILD Session – Windows Azure Active Directory
This is the first session in BUILD I attended which focused on enterprise applications instead of on consumer applications, and it was a very interesting one. Enterprises today are faced with a problem which tends to repeat itself – the enterprise has a working Active Directory which is (hopefully) well guarded in a LAN behind various firewalls, but now we want to allow external application (such as SaaS applications) to use and operate based on these enterprise identities. For example, imagine an enterprise which has some Windows Azure accounts. Today these accounts are assigned to the employee’s personal Microsoft Accounts which is not really a good practice since the organization’s IT has no control over these accounts. Today, with the incorporation of Windows Azure Active Directory, organizations can much more easily expose and use the enterprise identities of their employees for better management and control. Windows Azure Active Directory works as PaaS application, and so is very easy and automated to deploy – you can even skip a local Active Directory if you don’t require one and manage it all in the cloud – no server and configuration required… Azure Active Directory is a very powerful tool and I highly recommend watching this session if your development work requires dealing with Active Directory identities.
A nice twist on the presentation was that all slides were drawn in real-time during the presentation itself! Think about it like live coding, PowerPoint style…
BUILD Session – Windows Azure Internals
How Azure works? This is the question that Mark Russinovich himself tried to answer in this packed one hour session. Azure, with its hundred of thousands of servers running millions of application and services, is an amazing OS. If you ever wondered what makes a tick this session is for you to watch. Besides, watching Mark in action is always fun…
As part of the session, Mark explained what was the bug which caused the famous Azure outage during the last leap year day (February 29th). It was very simple when think about it:
- Never ever write this line of code as it won’t always work: “date.Year = date.Year + 1”. As Mark said – “Time is always a single point of failure!”.
- Never take hasty decisions in the middle of the night after no sleep when deploying critical hotfixes. You’ll only end up making things much worse…
The full story is real fun to hear, and again – I highly recommend watching the full session to hear it.
BUILD Session – Building Services for Any Client with ASP.NET Web API
RESTful services are the de-facto standard today for authoring scalable, interoperable services which leverage the web and connect every device on any platform. ASP.NET Web API is the Microsoft’s latest framework for authoring RESTful services and is quite simple to use and easy to learn. If you are new to ASP.NET Web API and would like to get an overview – this session is for you.
For me, the most interesting thing in the session was the presentation of the Web API’s support for OData queries – simply return an IQueryable or IEnumerable implementation from your service and your pretty much done! Pass any supported query string and the Web API does the heavy lifting for you. It’s quite impressive and it raises the question – if I want to provide an OData feed to my clients, should I use WCF Data Services or ASP.NET Web API? Well, that depends as shown in the following slides.
That’s it for day 3. Feel free to leave a comment if you have anything to ask…