Building Silverlight Bing Maps based API with Cloud application in SharePoint 2010


Developing Bing Maps API based Silverlight applications are quite easy integrating with Windows Azure , SQL Azure databases with Microsoft SharePoint 2010. Bing Maps API provides a rich set of geolocation APIs which helps to easy integrate with Silverlight, Windows Azure application.

  • To use Bing Maps with Silverlight Web applications , you need to get the Bing Maps Developer key which can be obtained from www.bingmapsportal.com , register there with your Windows Live ID & get a developer key by clicking on create or view key.

  •  Next, you need keep the key in clipboard & should be used while developing your Silverlight application. Now create a new Silverlight application from Visual Studio & modify the following XAML into it.

  • Write in MainPage.XAML :

<UserControl x:Class=”SimpleBingMap.MainPage”

xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation&#8221;

xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml&#8221;

xmlns:d=”http://schemas.microsoft.com/expression/blend/2008&#8243;

xmlns:m=”clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl”        

xmlns:mc=”http://schemas.openxmlformats.org/markup-compatibility/2006&#8243;

mc:Ignorable=”d”

d:DesignHeight=”300″ d:DesignWidth=”400″>

<Grid x:Name=”LayoutRoot” Background=”White” HorizontalAlignment=”Stretch”

VerticalAlignment=”Stretch” Width=”888″ Height=”394″>

<Grid.ColumnDefinitions>

<ColumnDefinition Width=”888*” />

<ColumnDefinition Width=”314*” />

</Grid.ColumnDefinitions>

<Grid.RowDefinitions>

<RowDefinition Height=”auto” />

<RowDefinition Height=”*” />

</Grid.RowDefinitions>

<StackPanel Grid.ColumnSpan=”2″>

<TextBlock Text=”Map Me!” FontWeight=”Bold” FontSize=”14″ Width=”888″ />

<StackPanel Orientation=”Horizontal” HorizontalAlignment=”Stretch” Margin=”12,0,12,0″>

<TextBox x:Name=”txtbxLatitude” Width=”322″ Text=”Type your latitude here,e.g. 47.7656″ FontSize=”10″ />

</StackPanel>

<StackPanel Orientation=”Horizontal” HorizontalAlignment=”Stretch” Margin=”12,0,12,0″>

<TextBox x:Name=”txtbxLongitude” Width=”322″ Text=”Type your longitude here, e.g. -122.9957″ FontSize=”10″ />

</StackPanel>

<StackPanel Orientation=”Horizontal” HorizontalAlignment=”Stretch” Margin=”12,0,12,0″>

<Button x:Name=”btnFindMe” Content=”Map It!” Width=”65″ Click=”btnFindMe_Click” />

</StackPanel>

</StackPanel>

<m:Map CredentialsProvider=”Av1a04p5K8Ubd97aV5dMMX7tRSbDxWz8hm01_4ZA8BA2kE7o56VvsNfjMOOrTnV5″ x:Name=”MyMap” Grid.Row=”1″ Mode=”AerialWithLabels” HorizontalAlignment=”Stretch” VerticalAlignment=”Stretch” Margin=”0,14,0,0″ Grid.ColumnSpan=”2″>

<m:Map.Children>

<m:MapLayer x:Name=”PushPinLayer” />

</m:Map.Children>

</m:Map>

</Grid>

</UserControl>

  • Write in MainPage.XAML.CS:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Animation;

using System.Windows.Shapes;

using  Microsoft.Maps.MapControl;


namespace SimpleBingMap

{

public partial class MainPage : UserControl

{

public MainPage()

{

InitializeComponent();

}

private  void btnFindMe_Click(object sender, RoutedEventArgs e)

{

Location myLocation = newLocation();

myLocation.Latitude = Double.Parse(txtbxLatitude.Text);

myLocation.Longitude = Double.Parse(txtbxLongitude.Text);

// Create a new pushpin to add to the map.

Pushpin myPPin = newPushpin();

myPPin.Width = 7;

myPPin.Height = 10;

myPPin.Location = myLocation;

PushPinLayer.AddChild(myPPin, myLocation, PositionOrigin.Center);

// Set the main view of the map using location with a zoom level

MyMap.SetView(myLocation, 10);

}

}

}

 

  • Map yourself in Bing Maps API by providing Latitude & Longitude:

  • Now, it’s time to integrate with your SharePoint 2010 website. Open the Add Documents Library option & Click on Add, Click browser & paste the path of Silverlight .xap file in SharePoint directory.
  • Click on Site Settings & Click on Edit Page to open the .xap file in SharePoint Web Part, Now open the insert tab-> Click on Media Content-> Silverlight Web Part -> paste the path of the Silverlight .xap file in the clipboard. Access it in Silverlight portal.

 

  • Configure the height & width according to configuration :

  • That’s it, The SharePoint applications is integrated with Silverlight web part along with Bing Maps API integrated in Cloud.

Windows Azure Service Bus EDI & EAI & On-Premise Service Bus Connect Tools Available – December 2011 Release


The Windows Azure Service Bus Enterprise Application(Artifacts) Infrastructure & Enterprise Distributed Infrastructure provides integration capabilities for the Windows Azure apps to extend On-Premise application to the cloud, provide Rich Messaging Endpoints to process and transform messages, caching & provides rich support for enterprise integrate disparate application on -premise as well in Windows Azure.

Download the toolkits from here: http://www.microsoft.com/download/en/details.aspx?id=17691

  • Features: Windows Azure Appfabric Service Bus Connect Project Template in Visual Studio.
  • Connectivity between on-premise with cloud apps supporting service bus internal endpoints & on – premise LOB applications.
  • PowerShell cmdlets to manage Service Bus Connect RunTime components.
  • Stable integration with Windows Identity Foundation(4.0) runtime with SAML token, SWT token, STS tokens, Relay services & WRAP 2.0 Protocols.

  • The  installation  of Windows Azure Appfabric Service Bus Connect SDK installation which requires Windows Server Appfabric SDK , IIS 6 metabase & PowerShell cmdlets.
  • It also installs itself Microsoft Bizspark integration components as a integration of Microsoft Biztalk servers with Appfabric Service Bus Queues.

  • Integrating WCF LOB adapters & Biztalk spark components with Service Bus Connect.

Transient Fault Handling Framework for SQL Azure, Azure Storage Services


SQL Azure databases is a distributed system in which each physical server hosts many databases. This sharing of resources leads to capacity constraints on operation throughput. SQL Azure handles these capacity by throttling operations & closing connections that are using too many resources. SQL Azure also closes connections when it alleviates operational hot spots by switching from a primary  SQL Azure database to one of its two backup databases.

One of the cloud development strategy is “Design for Failure” . It’s important that applications using SQL Azure being designed to handle failures appropriately.

There are two kinds of error:

1. Permanent Error: Indicating failure of a part of the system.

2. Transient Error: Existing only a brief time.

Permanent errors may be the indicate the logical problem with the application – and handle transient errors gracefully by retrying the operation that led to the error in hope that it does not recur. A dropped connection should be regarded as transient and application should respond to a dropped connection by opening new connection and retrying the operation.

There remains the problem of distinguishing permanent from transient errors. This can be done by comparing the error returned from a failed operation with known list of transient errors. An application can therefore include a retry mechanism that checks the status of operations and retries any operations that experienced a transient error.

 

The Windows Azure Appfabric Customer Advisory team has made available on MSDN code gallery the source code & pre-compiled assemblies for Transient Fault Handling Framework for SQL Azure , Azure Storage Services , Azure Appfabric Service Bus & Caching Services.

Download Here:  http://code.msdn.microsoft.com/Transient-Fault-Handling-b209151f              (C# Code)

  • Features of the framework:
  • Provides the foundation for building high extensible logic for handling a variety of transient conditions, not limited to SQL Azure.
  • Supports a range of pre-defined retry policies (Fixed retry interval, Progessive retry interval)
  • Supports seperate retry policy for SQL  connections & SQL Commands for adding flexibility.

 

 

 

Windows Azure Toolkit for Windows 8


The Windows Azure Toolkit for Windows 8 is released to make development easy for Windows Metro style application that can harness the power of Windows Azure Compute and Storage. The template is based on Windows Push Notification services existing with Windows Phone 7 applications.

Technologies:

  • ASP.NET MVC 3
  • Windows Azure SDK 1.4.1 Refresh
  • Windows Metro style Javascript application project

The process of sending a notification requires few steps:

  1. Request a channel. Utilize the WinRT API to request a Channel Uri from WNS. The Channel Uri will be the unique identifier you use to send notifications to an application instance.
  2. Register the channel with your Windows Azure cloud services. Once you have your channel you can then store your channel and associate it with any application specific data (e.g user profiles and such) until your services decide that it’s time to send a notification to the given channel
  3. Authenticate against WNS. To send notifications to your channel URI you are first required to Authenticate against WNS using OAuth2 to retrieve a token to be used for each subsequent notification that you push to WNS.
  4. Push notification to channel recipient. Once you have your channel, notification payload and WNS access token you can then perform an HttpWebRequest to post your notification to WNS for delivery to your client.

This slideshow requires JavaScript.