December, 2011


  • Microsoft UK Faculty Connection

    Getting Started with a 90 day Azure Pass



    You can start building and using Microsoft Windows Azure by following the following steps:

    Azure FREE

    1. Setup an Account:

    Set up an account and obtain a free subscription for accessing the online portals for Windows Azure an SQL Azure.
    You can sign up and get the trial from

    Note: With the new capping functionality available you are assured that no charging will happen once your trial offer has expired.

    2. Create your First application and Deploy it on the Windows Azure Platform:

    Download the tools and learn how to create an application using .NET, JAVA, Node.js or PHP and deploy it on Windows Azure at

    When all steps are executed successfully you will have a implemented a Windows Azure Platform.

    Learn more about how to use Windows Azure as a student or within your teaching curriculum from

  • Microsoft UK Faculty Connection

    Windows Azure updates December 2011


    Today we are announcing multiple updates to Windows Azure that improve ease of use, interoperability, and overall value.

    Key Highlights:

    • New Developer Experience and Enhanced Interoperability

    Access to Windows Azure libraries for .NET, Java, and Node.js is now available under Apache 2 open source license and hosted on GitHub, a new Windows Azure SDK for Node.js makes Windows Azure a first-class environment for Node applications, and a limited preview of an Apache Hadoop based service for Windows Azure enables Hadoop apps to be deployed in hours instead of days.

    • Easier to Get Started and Simplified Subscription Management

    Revamped Dev Centers for multiple languages with helpful content and tutorials, a new sign-up process with spending caps makes sign-up simple, fast and ensures a completely free 90 day trial. View real-time usage and billing details directly from the Windows Azure Management Portal and see expected costs with a simplified pricing calculator.

    • Improved Database Scale

    Three times the maximum database size for SQL Azure and SQL Azure Federation, a new sharding pattern that simplifies elastic scale-out.

    • Better Overall Value

    New price cap for the largest SQL Azure databases reduces effective price per gigabyte by 67%, Data Transfer prices in Europe have been reduced by 25%, and Service Bus usage is now free through March 2012.

    Windows Azure is always evolving based on your feedback and you can read more details about these updates at the Windows Azure Team Blog

    The following videos from Microsoft Channel9 are also very useful

    Learn About SQL Azure Federations from Cihan Biyikoglu

    Interview with Glenn Block Talking About Node.js on Windows Azure

    Learn About the Windows Azure Service Bus from Clemens Vasters

    Learn About the Windows Azure Access Control Service from Vittorio Bertocci

  • Microsoft UK Faculty Connection

    Great news for Universities who are using PhoneGap for App development – Full Support for Windows Phone



    PhoneGap version 1.3 has just been announced with full support for Windows Phone

    We want to highlight that all the features of the popular mobile framework are supported on Windows Phone 7.5. The Microsoft Interoperability team have blogged about this here.

    This release extends the cross-platform capabilities of PhoneGap, giving more choices to developers in need of a programming environment allowing them to easily deliver the same mobile experience to their users across the various existing and prominent mobile operating systems.


    In addition to being able to leverage their HTML5 and Javascript skills to target Windows Phone, developers can now enjoy a selection of PhoneGap Plugins that support social networks and a solid integration into Visual Studio Express for Windows Phone.

    The plugins are now available for download here.

    Plugin Features

    · Facebook JS SDK
    · Twitter/LinkedIn/WindowsLive status retriever
    · Bing Maps Launcher
    · LiveTile Update


    Cross Platform Developer Resources for Building Windows Phone Applications

    WP7 Porting resources and API mapping

    Leveraging your iPhone development expertise to build Windows Phone applications

    Leveraging your Android development expertise to build Windows Phone applications

  • Microsoft UK Faculty Connection

    Learn Windows Azure Next Tuesday (Dec 13th)



    Next Tuesday, Dec 13th 2011 Microsoft will be holding a special Learn Windows Azure training event for developers.

    The Event will provide a great way to learn Windows Azure and what it provides. You can attend the event either by watching it streamed LIVE online.

    Learn Window Azure Event

    cloud power hclip_image001

    During the Learn Windows Azure event attendees will learn how to start building great cloud based applications using Windows Azure.

    The event will contain an overview of Windows Azure, explaining the concepts and the core features and benefits.  There will demos of how to build applications for it using .NET, Visual Studio and the Windows Azure SDK. In addition the event will go into detail on Cloud Data and Storage, how to use the Visual Studio Windows Azure Tools, how to Build Scalable Cloud Applications, and to close there will be an Q&A panel with Scott Guthrie, Dave Campbell and Mark Russinovich.

    Register Now for Free

    The free Learn Windows Azure event will start at 9am (PST) on Dec 13th. You’ll be able to watch the entire event live on Channel9 or attend it in person. Both options are completely free.

    • Register now to watch online or attend the event in person for FREE
  • Microsoft UK Faculty Connection

    Getting Started with the FEZ Spider Kit for Microsoft .NET Gadgeteer



    Ok I have to confess, I am addicted! I have been playing with a .NET Gadgeteer FEZ Spider Kit from GHI Electronics. The .NET Gadgeteer kits enable you to quickly prototype and test a wide variety of functionality for embedded devices. As you are all aware from some of my recent presentations I am a huge fan of the Microsoft .NET Gadgeteer.

    A number of you  have asked me about about the .NET Gadgeteer kits and how easy is it for Teachers, Lectures and academics to grasp and teach this technology to school, college and University students? Well firstly you need to know some C# if you don't then watch the following tutorials.  

    So for all of you haven't heard about Gadgeteer or are simply wondering what you can do with Gadgeteer  the following guide will hopefully be of assistance.

    The following guide is to:

    1. Introduces you to the basic hardware components of the GHI FEZ Spider Kit

    2. Give you some examples of  how to create your first .NET Gadgeteer application.

    .NET Gadgeteer development requires that you have Microsoft Visual Studio installed on your computer. You can use either of the following Visual Studio packages:


    • Microsoft Visual Studio 2010 - This is the full featured Visual Studio application development suite with support for multiple programming languages.
    • Microsoft Visual C# 2010 Express - A free alternative, Visual C# 2010 Express provides lightweight, easy-to-learn and easy-to-use tools for creating applications.

    Both of these are free to download for all UK Students via there is an extensive .NET Gadgeteer support and learning materials available from .NET Gadgeteer and GHI 

    So lets get started

    Building your First .NET Gadgeteer Device

    The FEZ Spider Kit consists of components, which are called modules, and cables that you can use to create various types of functionality in your device. To create your first .NET Gadgeteer device, you will need the following parts:

    • FEZ Spider Mainboard
    • A Red USB Client Dual Power (USBClientDP) module
    • A Button module
    • A Camera module
    • A Display_T35 module
    • Module connector cables
    The FEZ Spider Mainboard

    The FEZ Spider Mainboard includes a processor and memory, as well as 14 sockets. The sockets are outlined by a white box that surrounds the socket number (1 through 14) and groups the socket number with a set of letters that indicate which modules can be connected to the socket.

    .NET Gadgeteer-compatible hardware modules connected to the FEZ Spider mainboard by these connectors allow you to extend the FEZ Spider mainboard with communication, user interaction, sensing, and actuation capabilities.

    The FEZ Spider mainboard includes a Reset button to reboot the system. There is also a small LED (labelled D1) which lights up whenever the FEZ Spider has power.


    The USB Client Dual Power Device Module

    The USB Client Dual Power (USBClientDP) module (coloured red) enables you to connect the FEZ Spider Mainboard to your computer for programming and debugging. The dual-powered module is itself powered either by a USB port on a computer or by a 7 -30 volt DC power source. A USBClientDP module supplies power to the FEZ Spider and to any other modules that are connected to it. You can plug in both power sources of the USBClientDP module to program and to power at the same time.


    Never connect more than one red module to the FEZ Spider Mainboard at the same time. This will damage the hardware.

    The USBClientDP module has a black socket, identical to the sockets on the FEZ Spider Mainboard. Next to the connector, there is a letter D. This means that this particular module can only be connected to a socket labelled D on the mainboard.

    In a similar way, all .NET Gadgeteer-compatible modules have letters next to their sockets that identify which mainboard sockets they can be connected to. Many modules are labelled with multiple letters. This means that they can be connected to any of the labelled sockets.

    Red USB Device Module

    The Module Connector Cable

    Your hardware kit includes many module connector cables of different lengths. Apart from the length, these cables are all identical and can be used interchangeably to connect modules to the FEZ Spider Mainboard. Note that all sockets have a notch and the cable headers have a protrusion that fits into this notch, so the cables can only be inserted one way.

    A .NET Gadgeteer-compatible Module Connector Cable

    Connect the red USB Device module to socket number 1 on the FEZ Spider Mainboard, which is the only socket that has the letter D. Then, connect the small end of the mini USB cable provided with the kit to the USBClientDP module. However, do not connect the other end to your computer yet.

    Connecting the FEZ Spider to the USB Client module


    When plugging or unplugging any module into a FEZ Spider socket, always make sure that power is not connected, by unplugging either end of the mini USB cable. The mini USB cable supplies power to the FEZ Spider; if you plug or unplug a module on the FEZ Spider while it is powered, the hardware could be damaged.

    After ensuring that the FEZ Spider mainboard is not powered, continue by getting a Button module from your hardware kit.

    A Button with Multicolour LED

    Turn the Button module over. Next to the connector are the letters X Y. This means that a Button module can be connected to one of the sockets labelled X or Y on a mainboard.

    The Reverse Side of a Button Module

    Get a Camera module from your hardware kit. Turn the Camera module over. This module has a single connector labelled H. Only socket 3 on the FEZ Spider mainboard supports modules labelled with the letter H. Plug one end of a connector cable to the socket on the Camera module and the other end to the FEZ Spider on socket number 3, also labelled HI.

    Camera with Socket labelled H

    Connecting the Modules to the Mainboard

    Connect the Button and the Camera to the mainboard using module connector cables as described in the previous sections.

    The .NET Gadgeteer designer can identify the sockets on modules and on the mainboard that are compatible. This method is described in the following section titled Using the .NET Gadgeteer Designer UI. In this example we will connect the remaining Display_T35 module manually.

    The Display_T35 module has four connectors. Connect sockets 14, 13, and 12 to the Display_T35 module sockets labelled R, G, and B. As you might expect, these letters signify the colour distribution of the Display_T35 module. Connect socket 10 on the mainboard to socket T on the Display_T35 module. Socket T on the Display_T35 module facilitates the touch screen features of this module.


    Make the actual connections between all modules and the mainboard before you connect the USBClientDP to the USB port on your computer.

    The following illustration shows the mainboard connected to a Display_T35 module, a Button module, a Camera module, and the USBClientDP module. Now, with all the other modules connected, you can connect the USBClientDP module to the USB port on your computer.

    .NET Gadgeteer Modules with Connectors

    Creating Your First .NET Gadgeteer Application.

    Start Microsoft Visual Studio 2010 or Microsoft Visual C# 2010 Express. The following sequence will get your first .NET Gadgeteer Application up and running in less than half an hour.

    To create a Visual Studio application:
    1. On the File menu, select New Project....

      Microsoft Visual Studio

    2. On the New Project screen, under Installed Templates, expand the Visual C# category.
    3. Select Gadgeteer.
    4. Select .NET Gadgeteer Designer Application. Name the project GadgeteerCamera.
    5. Click OK.

      Microsoft Visual Studio, New .NET Gadgeteer Application Project

    Using the .NET Gadgeteer Designer UI

    The .NET Gadgeteer Designer opens with the FEZ Spider Mainboard displayed on the canvas. If the Toolbox is not visible, click the View menu and select Toolbox. The Toolbox with a list of installed modules will open. You can resize or hide the Toolbox to make more work space on the canvas.

    Microsoft Visual Studio, .NET Gadgeteer Application and Toolbox

    If you want to use a different mainboard, open the toolbox, and drag the mainboard icon of your choice onto the designer surface.


    Replace Mainboard

    When you drag a new mainboard to the designer surface, you'll be prompted, as shown in the following illustration, to confirm replacement of the mainboard. All existing connections will be removed.


    To continue building the example device, open the Toolbox and drag the modules for this example on to the work canvas. You will need the following modules:

    • Camera
    • Display_T35
    • Button

    The Designer canvas with modules is shown in the following illustration.

    Microsoft Visual Studio, .NET Gadgeteer Application and Modules

    As indicated by the instructions in the text box on the canvas, the .NET Gadgeteer Designer will graphically connect all the modules for you. Right click on the design surface and select Connect all modules. You can move the modules around on the design surface to make the connections easier to read. You can also delete any connection by right clicking on the connection and selecting Delete.

    Microsoft Visual Studio, Designer Connected Modules

    To manually set a connection, click on a socket in the diagram and hold down the left mouse button. Then you can drag a line that represents the connection from a module socket to a mainboard socket or in the opposite direction from the mainboard to a module. The sockets that the module can use will light up in green, as shown in the following illustration.

    Writing Code for Devices that use .NET Gadgeteer Modules

    To specify what the modules should do in this application, now edit the Program.cs file. The following illustration shows the Program.cs file open in Visual Studio.

    Microsoft Visual Studio, New Project, default Program.cs Code

    When using the designer, the modules are automatically instantiated by auto-generated code. This code can be found in the file Program.Generated.cs, but during normal use it is not necessary to view this file, and this file should not be edited because the Designer will automatically regenerate it and undo any direct changes made to it. The Program.Generated.cs file is shown in the following snippet.Program.Generated.cs file.

    Microsoft Visual Studio, Progam.Generated.cs Code

    The Button Pressed Event and Delegate Method

    Next, you generate code that will enable the program to react to a button press. To do this, assign an event handler for the Button.ButtonPressedevent. The IntelliSense feature of Visual Studio makes this process very easy.

    In the Program.cs file, after the comment that reads:

     Initialize event handlers here.

    Type button.(button followed by a period). IntelliSense displays a list of properties, methods and events as shown in the following illustration.

    IntelliSense Feature Showing Members of the Button class

    Using the arrow keys, select ButtonPressed. Then type += (plus sign followed by an equals sign). IntelliSense offers option to automatically insert the rest of the declaration:

    IntelliSense Offers to Create the Handler Declaration

    Press TAB to confirm. IntelliSense offers to automatically generate a delegate method to handle the event:

    IntelliSense Offers to Generate the Event Handler Method

    Press TAB to confirm. The following code is generated:


    Event Handler for the ButtonPressed Event

    This event handler will be called each time the button is pressed. Delete the following line from the method:

     throw new NotImplementedException();

    And replace it with:


    Now when the Button is pressed, the Camera module will take a picture.

    Take Picture in ButtonPressed Event

    The Picture Captured Event and Delegate Method

    The Camera module raises an event when the Cameracaptures a picture. You can use the event to display the picture in the Display_T35 module.

    The PictureCaptured event is an example of an asynchronous event. Calling Camera.TakePicturein the Button.ButtonPressed delegate starts the process, but the result of the action is not returned by the ButtonPressed delegate. Instead, the GT.Picture object returns as a parameter of the asynchronous PictureCaptured event.

    When the PictureCaptured event occurs, you can get the GT.Picture object and display it by using the SimpleGraphics interface of the Display_T35 module. The SimpleGraphics interface supports the DisplayImage method, which accepts a GT.Picture object as a parameter, along with integer values to indicate the X an Y coordinates that position the image on the display.

    All code required to display the picture is shown in the following implementation of the PictureCaptured event delegate.

    Complete Application Code

    All the code for a .NET Gadgeteer Application that takes a picture and displays it in the Display_T35 module is shown in the following example.

    Entire Code Listing

    Deploying Your .NET Gadgeteer Application

    To deploy this application to a mainboard and begin running it, select Start Debugging from the Debug menu, or press F5.

    Start Debugging

    Make sure that the Output Window is visible by pressing the CTRL + ALT + O key combination on your keyboard. If you have enabled sounds, you should hear Windows make the "USB disconnected" sound, followed by the "USB connected" sound as the Mainboard reboots. The Output Window should show the process of loading various files and assemblies. The final line, which appears once the application begins to run, should read Program Started.

    Output Window

    Running the .NET Gadgeteer Device

    When you see Program Started appear on the Output window, you can take a picture. Smile for the Camera, and push the Button. Your picture will appear on the screen of the Display_T35 module. If it works - congratulations! You have completed your first .NET Gadgeteer application.

    To exit debugging mode, select Stop Debugging from the Debug menu, or press Shift + F5.

    Stopping Debugging

    Note: The mainboard continues to be programmed, and will run this application whenever it is powered up, even if it is not connected to a computer.

    Adding Timed Actions for a Surveillance Camera

    An interesting extension of the camera application in the previous example is programming the application to take pictures automatically at an interval set by an instance of the GT.Timer class.

    To create an instance of the GT.Timer class, add the following global variable to the Program class, as shown in the following example. This line of code initializes the GT.Timer to raise the Tick event at an interval of 2000 milliseconds (2 seconds).

        GT.Timer timer = new GT.Timer(2000);

    Create the delegate to handle the GT.Timer.Tick event, but stop the timer until the button is pushed. The following code shows the set-up in the ProgramStarted method.

    Initialize Timer

    In the ButtonPressed handler replace Camera.TakePicture with the following code. The new code starts and stops the GT.Timer.Tick event and toggles the LED indicator on the Button. When the GT.Timer is firing events, you can use the event handler to take pictures instead of the ButtonPressed handler.

    Toggle Timer

    The implementation of the GT.Timer.Tick event is shown in the following example.

    Timer Tick

    When the LED is off and the user pushes the Button, the LED indicator turns on and remains on while the Camera module takes pictures at two second intervals. When the user pushes the button again, the GT.Timer stops, and the LED turns off.

    The following code contains all the code for the camera with timer. The boxes show the changes to the previous example.

    Code for Surveillance Camera


    This section describes common issues that you may encounter and provides suggestions for how to fix them.

    Set-up Issues

    If VS is running when you install GadgeteerCore, you’ll need to close and restart it before creating your first project. Otherwise you won’t see the .NET Gadgeteer Application template.

    You may need to change the USB name of the target mainboard in your first project. The most efficient way to do this is using the MFDeploy tool.

    Sometimes VS will hang at the display: “The debugging target is not in an initialized state; rebooting”. Push the reset button on the mainboard to fix this.

    If you’re using the Display_T35 and see a null reference exception on startup, verify that the touch socket is connected both in the designer and on the module.

    If you’re using a laptop and you see errors on deployment like “Please check your hardware”, try plugging a 7 volt DC power supply into the USBClientDP module.

    The camera image is blurred or not in focus   The lens is screwed into camera base, by unscrewing or screwing in you can focus it.

    Compile Time Errors

    If you receive compilation errors when you attempt to deploy and run your application, read the error message carefully. Most errors fall into one of two categories:

    • Syntax: A statement is missing required syntax, for example, the ending semi-colon character. These types of errors are generally reported unambiguously in the Error output window. Fix the syntax problem and try again.
    • Identifier: An identifier is unknown or invalid. This can happen if you spell the identifier incorrectly, or do not qualify it correctly. All identifiers are case sensitive; for example, Button cannot be entered as button. To help avoid problems with identifiers, use the IntelliSense feature of Visual Studio. IntelliSense presents only valid identifiers.
    Unexpected Application Behaviour

    If your application does not behave as expected (for example, pressing the button does not raise the event), start by checking that the physical socket to which the hardware module is connected agrees with the initializion in code of the identifier that corresponds to the module.

    For example, if you connect a Button to mainboard socket 4, but initialize it to socket 8, the button will not work.

      // Button is actually plugged into socket 4.
      button = new GTM.GHIElectronics.Button(8);

    The programming model for the .NET Gadgeteer platform is event driven. Events are raised that correspond to a hardware change or physical action. For example, when you press a button, the ButtonPressed event is raised, and when you release it, the ButtonReleased event is raised.

    You can use debug statements inside your event handlers to make sure that your handler is receiving the event. For example, if your LED does not light when you press the button, you can insert a statement inside the event handler for the ButtonPressed event to make sure that your button is in fact receiving the event.

     private void Button_ButtonPressed(GTM.Button sender, GTM.Button.ButtonState state)
        Debug.Print("Button Pressed");

    When you deploy and run your application, check the Visual Studio Debug Output window for your message. If the message does not appear at the expected time (for example, when you press the button), make sure that the physical socket and logical initializer are in agreement, as previously described. If they are, the button or the module connector cable might be defective. Unplug the mini USB cable from your computer, swap the module connector cable or the button with another from your hardware kit, reconnect the mini USB cable, and try again.


    Occasionally, you may receive an error as you attempt to deploy your application to a mainboard. This can happen if the mainboard is not connected to your computer, or the mainboard requires a restart. If the mainboard is disconnected, connect it and retry. If the mainboard is connected when this happens, disconnect it from your computer (by unplugging the mini USB cable), wait a few seconds, and reconnect it. Then try the deployment again.

    Device Drivers

    When you install the .NET Gadgeteer core, the device drivers that are needed to communicate with a mainboard are also installed. This process usually does not require any intervention on your part.

    In some cases, the .NET Gadgeteer core installation or kit installation might not install the device drivers automatically. If your computer is having problems communicating with a mainboard that you suspect are related to the device drivers, please refer to the Tiny CLR Forum.

    If you get any error during installation of .NET Gadgeteer ensure that you have installed .NET Micro Framework Version 4.1 drivers and SDK from 

    Have something to add? Got a request or suggestion?

    You can email the Gadgeteer team at or follow them on Twitter @netgadgeteer.

  • Microsoft UK Faculty Connection

    Announcement of improvements to the SkyDrive API



    With the announcements on Windows Store we are announcing lots of new services for developers.

    The Windows Live team have been doing some amazing work to help developers on Windows, Windows Phone and other platforms use SkyDrive in their applications.

    At //Build the team announced the availability of the developer preview, the next version of the Live Connect APIs and the newly created Live SDK. A number of changes have been made to the SkyDrive API providing the ability for applications to fully access, upload and share documents, photos and videos from a user’s cloud storage in SkyDrive.

    With the integration into Windows Phone and Windows 8, SkyDrive is a key part of your “device cloud,” letting you work and play easily across your PC and phone.

    A key statement from the team is

    SkyDrive also works with apps like Microsoft Office and OneNote so you can organize, collaborate and share from anywhere. We believe that the most value for our customers comes when more people and more apps can connect to the cloud from most available devices. This goes beyond device platforms and applications built by Microsoft. With this API change, any app on any platform now gets to take advantage of the fact that any user with a Windows Live ID, including every Windows 8 user, has free cloud storage in SkyDrive that they can integrate into their experience to access their documents and photos.

    For more details see the SkyDrive team blog

    Show us your apps

    We’re really encouraged by the enthusiasm we’ve seen for students and academics developing and teaching Windows phone application development.

    With the availability of the APIs, we’d love to see the innovative ways people incorporate SkyDrive into their mobile apps, devices and websites. Also if your students are developing apps the Microsoft UK Student have some amazing competitions see

  • Microsoft UK Faculty Connection

    SQL Azure Labs


    SQL Azure Labs

    What is SQL Azure Labs?

    Azure Labs is a place where we test concept ideas and prototypes. The projects in labs are experiments with no current plans to be included in a product and are not production quality. Instead it is a place where we want to share our current thinking and ideas in specific areas and solicit your feedback so we can shape our future direction.

    What ideas are being offered?

    This week SQL Azure Labs launched Microsoft Codename “Data Transfer” Lab on the SQL Azure Labs site. This lab provides Azure users with an easy-to-use Web application for importing their data into SQL Azure or Blob storage. Users can now transfer structured data and files into Azure using any standard modern browser. 

    One of the goals we have for this lab is to take the complexity out of typical operations, such as loading structured data in CSV and Excel files into SQL Azure. The lab service provides simple parsing, type discovery and conversion over files in a wizard-like experience.

    The second goal we have for this lab is to learn from our users. We intend to use this lab to measure demand for the service and to shape the service based on direct customer feedback. We’ll use all the standard channels for collecting customer data: SQL Azure Labs Support Forum, webtrends, and application instrumentation. You’ll also notice surveys and pop-up questionnaires sprinkled throughout the lab during “down time.”

    The SQL Azure Labs team intent is to keep this lab live for three months. They will continue to evolve the lab during this test period. They will be changing surveys and questions. They will be refreshing the lab with support for larger file sizes, multi-file transfer, simple conversions for more types of files into SQL Azure, and reliable transfer that handles dropped connections.

    Giving Feedback

    If you have feedback or suggestions about this lab or about, please feel free to contact the SQL Azure Labs team directly via the feedback link.

    What to know more about Windows Azure services

    If your interested in learning more or experimenting with Windows Azure please use the following 90 day trail offer

  • Microsoft UK Faculty Connection

    Access control to Windows Azure services



    I have had a number of questions recently regarding the provision of access to Windows Azure services via Academic Institutions or existing authentication services or methods.

    In the context of the Windows Azure AppFabric Access Control Service (ACS), is an identity provider service that authenticates user or client identities and issues security tokens that can be consumed by ACS.

    The ACS Management Portal provides built-in support for configuring the following identity providers:

    In addition to these identity providers, ACS supports configuration of the following identity provider types programmatically through the ACS Management Service:

    For many Universities the answer will be to use one of the following


    WS-Trust identity providers pass identity claims to ACS using the WS-Trust protocol and are most frequently used in web service scenarios. Many WS-Trust identity providers also support WS-Federation and can be configured in ACS as WS-Federation identity providers to create the required trust relationship. An example of a WS-Trust identity provider is Active Directory Federation Services (AD FS) 2.0 (also a WS-Federation identity provider), which allows you to integrate your enterprise Active Directory service accounts with ACS. For more information, see How To: Configure AD FS 2.0 as an Identity Provider.

    OpenID-Based Identity Providers

    ACS supports federation with OpenID-based identity providers for web sites and web applications, using the OpenID 2.0 authentication protocol. The ACS OpenID implementation allows an OpenID authentication endpoint to be configured as part of an identity provider entity in ACS. When an ACS login page is rendered for a relying party application, ACS constructs an OpenID authentication request as part of the login URL for the identity provider. After a user selects the identity provider and logs in at the requested URL, the OpenID response is returned to the ACS where it is processed by the ACS rules engine. ACS retrieves OpenID user attributes using the OpenID Attribute Exchange Extension and maps these attributes to claims that are then output in the token response issued to the relying party application.

    Two examples of OpenID-based identity providers that ACS supports are Google and Yahoo!, which can be configured in the ACS Management Portal. For more information, see Google and Yahoo!.

    Other identity providers that support OpenID 2.0 authentication endpoints can be configured programmatically using the ACS Management Service. For more information, see How To: Use Management Service to Configure an OpenID Identity Provider.

    Windows Identity Foundation Simplifies User Access for Developers

    Enables .NET developers to externalize identity logic from their application, improving developer productivity, enhancing application security, and enabling interoperability.

    Federated Authentication in a Windows Azure Web Role Application

    Identity and the Windows Azure Platform Hands on labs resources

  • Microsoft UK Faculty Connection

    Microsoft Dynamics CRM Update Includes Social Networking Features



    A service update for Microsoft Dynamics CRM includes new social networking and cloud features which is great news for Microsoft Dynamics Academic Alliance members.

    The Microsoft Dynamics® Academic Alliance is a program for member universities and colleges who wish to enhance the learning experience by integrating Microsoft Dynamics enterprise resource planning (ERP) and customer relationship management (CRM) software in the curriculum.

    These updates help position Microsoft in the new world of social networking and for Dynamics Academic Alliance members it will allow you to start bring the new aspects of social networking into your teaching.

    “By bringing together new social-collaboration capabilities in Microsoft Dynamics CRM with familiar collaboration technologies such as Office, SharePoint and Lync, businesses will be able to expand their relationships with customers and gain even deeper insight and understanding,” wrote Brad Wilson, General Manager of the Microsoft Dynamics CRM Product Management Group.

    Useful Resources

    For more see

    Read success stories

    Faculty Connection Resources for Dynamics

    Linkedin Group


  • Microsoft UK Faculty Connection

    Are you teaching Mobile development?


    Which Platform are you teaching?


    Have you spent the time to understand the landscape of device distribution and decide how to prioritize the development of your application training curriculum?

    Are you training or developing your courses to meet specific platform or versions?

    The following pie chart below demonstrates how many different versions of Android are in use. The chart contains information relating to the number of devices and Android version that has accessed Android Market within a 14-day period ending on the data collection date noted below.



    Platform Codename API Level Distribution
    Android 1.5 Cupcake 3 0.9%
    Android 1.6 Donut 4 1.4%
    Android 2.1 Eclair 7 10.7%
    Android 2.2 Froyo 8 40.7%
    Android 2.3 -
    Android 2.3.2
    Gingerbread 9 0.5%
    Android 2.3.3 -
    Android 2.3.7
    10 43.9%
    Android 3.0 Honeycomb 11 0.1%
    Android 3.1 12 0.9%
    Android 3.2 13


    Data collected during a 14-day period ending on November 3, 2011

    So what does all this mean?

    The purpose of this graph is to demonstrate the shear number of versions which you need to support if your developing apps for the Android market, unfortunately from a teaching perspective this casts a number of issues on which version and API to choose.

    With Windows Phone its so much more straight forward

    All Windows Phones must have a particular minimum specification, so these are the very least you can expect to find on a device.

    The Windows Phone specifications ensure that every Windows Phone has a consistent set of features that customers can rely on. This also provides developers with a base set of features they can build rich and creative applications upon.

    • Standard Hardware
    • A common set of hardware controls and buttons that include the Start, Search, and Back buttons.
    • A large WVGA (800 x 480) format display capable of rendering most web content in full-page width and displaying movies in widescreen.
    • Capacitive 4-point multi-touch screens for quick, simple control of the phone and its features.
    • Support for data connectivity using cellular networks and Wi-Fi.
    • 256 MB (or more) of RAM and 8 GB (or more) of flash storage.
    • A-GPS
    • Accelerometer

    Optional Hardware

    • Compass
    • Gyro
    • Primary Camera
    • Front-facing Camera
    It is quite likely that different phone manufacturers will add their particular “take” on the platform, so you will find devices with more memory, faster processors, hardware keyboards and larger screens.

    A key issue with teaching  Android is that you need to develop your application for the version that is at the very top of the chart, then your application is compatible with 100% of active devices (and all future versions), because all Android APIs are forward compatible. Or, if you develop your application for a version lower on the chart, then it is currently compatible with only a % percentage of devices indicated.

    Again a huge issue is the API Support from each device. The following table specifies the API Level supported by each version of the Android platform.

    Platform Version API Level VERSION_CODE Notes
    Android 4.0 14 ICE_CREAM_SANDWICH Platform Highlights
    Android 3.2 13 HONEYCOMB_MR2
    Android 3.1.x 12 HONEYCOMB_MR1 Platform Highlights
    Android 3.0.x 11 HONEYCOMB Platform Highlights
    Android 2.3.4
    Android 2.3.3
    10 GINGERBREAD_MR1 Platform Highlights
    Android 2.3.2
    Android 2.3.1
    Android 2.3
    Android 2.2.x 8 FROYO Platform Highlights
    Android 2.1.x 7 ECLAIR_MR1 Platform Highlights
    Android 2.0.1 6 ECLAIR_0_1
    Android 2.0 5 ECLAIR
    Android 1.6 4 DONUT Platform Highlights
    Android 1.5 3 CUPCAKE Platform Highlights
    Android 1.1 2 BASE_1_1
    Android 1.0 1 BASE

    Windows Phone application development

    You write Windows Phone applications in exactly the same way as you write other applications for the Windows desktop. You use the Visual Studio IDE (Integrated Development Environment). You can debug a program running in a Windows Phone device just as easily as you can debug a program on your PC desktop. You can also create solutions that share components across the desktop, Windows Phone and even Xbox platforms.

    You can take all your Windows Desktop development skills in Silverlight and your console skills in XNA and use them on the phone. If you learn how to use the Windows Phone you are also learning how to write code for the desktop (Silverlight) or console (XNA).

    This is great news for you as it means that you can write programs for Windows Phone without having to learn a lot of new technologies if you have previously written programs for desktop computers then the move to Windows Phone.

    The Windows Phone Emulator

    The Windows Phone development environment is supplied with an emulator which gives you a Windows Phone you can play with on your PC desktop. If you have a PC system that supports multi-touch input you can even use this with the emulator to test the use of multi-touch gestures with your Windows Phone programs.

    While the emulator is feature complete, in that it behaves exactly like a real phone would in response to the requests from your software, it does not mimic the performance of the actual phone hardware. Programs running on the emulator are using the power of your PC, which may well be much greater than the processor in the phone. This means that although you can test the functionality of your programs using the emulator you only really get a feel for how fast the program runs, and what the user experience feels like, when you run your program on a real device.

    The emulator will allow you to test motion controlled programs by allowing you to tip and turn a “virtual” phone on your PC screen. The inputs to the program will reflect the orientation that you see on your screen. You can also pre-record a set of movements to allow you to perform repeatable tests using particular movements or gestures. There is also provision for location emulation. You can select on a map where you want the emulated phone to “be”. You can also input paths for the phone to follow and then replay these, so that you can create journeys to test location aware applications.


    So if your interested in developing for Windows Phone download the necessary tools from Microsoft DreamSpark

    If your interested in teaching Windows Phone in your curricula see Microsoft Faculty Connection Resources Center for a complete set of resources

    If your interested in porting existing Android applications to Windows Phone take a look Windows Phone Interoperability Bridges site

Page 1 of 2 (16 items) 12