<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Ahmed El-Ramly's Blog</title><link>http://blogs.msdn.com/b/ahmedelr/</link><description>Welcome to Ahmed&amp;#39;s little nook in the blogosphere.  Here I will post my thoughts on some of the coolest and most relevant technologies I think people will find interesting.  </description><dc:language /><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Windows 8 and Azure Media Services</title><link>http://blogs.msdn.com/b/ahmedelr/archive/2012/09/21/windows-8-and-azure-media-services.aspx</link><pubDate>Fri, 21 Sep 2012 21:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10352202</guid><dc:creator>Ahmed El-Ramly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ahmedelr/rsscomments.aspx?WeblogPostID=10352202</wfw:commentRss><comments>http://blogs.msdn.com/b/ahmedelr/archive/2012/09/21/windows-8-and-azure-media-services.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Leverage Azure Media Services for video needs in Windows 8 applications&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Have you found you need a platform to support your video needs for Windows 8 applications?&amp;nbsp; Have you had the need to support encoding, encrypting, hosting, and streaming of video assets to a Windows 8 application?&amp;nbsp; Over the coming weeks, I will dive into this topic and layout the foundation of leveraging Azure Media Services to support your media needs with Windows 8.&amp;nbsp; Today, I want to review the technology pieces involved in using these technologies together.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1 - Azure Media Services&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Windows Azure Media Services is a component of the Windows Azure platform that allows you to create, manage and distribute content.&amp;nbsp; It offers the flexibility, scalability, and reliability of a cloud platform, while allowing you to create workflows to streamline the process of preparing your content.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/1541.MediaServicesArch_5F00_244B958E.png"&gt;&lt;img width="571" height="382" title="MediaServicesArch" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" alt="MediaServicesArch" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/0167.MediaServicesArch_5F00_thumb_5F00_00B48898.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In addition, Azure Media Services allows you to target multiple devices and platforms including Windows, Mac, iOS, Android, and Xbox.&lt;/p&gt;
&lt;p&gt;In order to use Azure Media Services, you will have to setup a Windows Azure Account for Media Services, setup your computer for Media Services Development, then use Azure Media Services to Encode, Protect, and deliver your media content.&amp;nbsp; I recommend the &lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/"&gt;How to Use Media Services&lt;/a&gt; guide as an important place to start:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-1"&gt;What Are Media Services?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-2"&gt;Setting Up a Windows Azure Account for Media Services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-3"&gt;Setting up for Media Services Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-4"&gt;How to: Connect to Media Services Programmatically&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-5"&gt;How to: Create an Encrypted Asset and Upload to Storage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-6"&gt;How to: Get a Media Processor Instance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-7"&gt;How to: Encode an Asset&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-8"&gt;How to: Protect an Asset with PlayReady Protection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-9"&gt;How to: Manage Assets in Storage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-10"&gt;How to: Deliver an Asset by Download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-11"&gt;How to: Deliver Streaming Content&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-12"&gt;How to: Deliver Apple HLS Streaming Content&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-13"&gt;How to: Enable Windows Azure CDN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/media-services/#header-14"&gt;Next Steps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2 - Smooth Streaming Client SDK for Windows 8&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In order to build a Windows 8 application that can consume Live or On-Demand streams, developers will need to install the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/04423d13-3b3e-4741-a01c-1ae29e84fea6?SRC=Home"&gt;Smooth Streaming Client SDK for Windows 8&lt;/a&gt;, currently in a Beta 2 release. This SDK supports Windows 8 applications by offering:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for X86, X64, and ARM processor-based devices&lt;/li&gt;
&lt;li&gt;H.264 and VC-1 video codes&lt;/li&gt;
&lt;li&gt;AAC, Dolby DD+ (New in Beta2), and WMA Pro audio codes&lt;/li&gt;
&lt;li&gt;Video on Demand (Play, Pause, Seek, and Stop)&lt;/li&gt;
&lt;li&gt;Live streaming with seek capabilities&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3 - Player Framework&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://playerframework.codeplex.com/"&gt;Player Framework&lt;/a&gt; is an open source project available from CodePlex the provides a video player for Windows 8 and HTML 5 applications.&amp;nbsp; For Windows 8, it gives the developer the flexibility to develop their application either with HTML/JavaScript or XAML/C#.&lt;/p&gt;
&lt;p&gt;This component is critical to building a successful Windows 8 application with video playback capabilities as it is incredibly complex to support all the possible scenarios for video playback.&amp;nbsp; For example, this player supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adaptive Streaming&lt;/li&gt;
&lt;li&gt;Closed captioning&lt;/li&gt;
&lt;li&gt;Advertising&lt;/li&gt;
&lt;li&gt;DVR-style playback controls&lt;/li&gt;
&lt;li&gt;Skinning and styling&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Bringing it all together&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In my next post, I plan on developing a sample application to pull together all the assets above into a simple Windows 8 application that streams video from Azure Media Services.&amp;nbsp; Stay tuned!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Useful links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://dev.windows.com/"&gt;Windows Developer Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/overview/"&gt;Azure Developer Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/home/features/media-services/"&gt;Azure Media Services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/04423d13-3b3e-4741-a01c-1ae29e84fea6?SRC=Home"&gt;Smooth Streaming Client SDK for Windows 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://playerframework.codeplex.com/"&gt;Player Framework&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10352202" width="1" height="1"&gt;</description></item><item><title>Windows 8 Process Lifecycle Management How Do I Video</title><link>http://blogs.msdn.com/b/ahmedelr/archive/2012/09/21/windows-8-process-lifecycle-management-how-do-i-video.aspx</link><pubDate>Fri, 21 Sep 2012 14:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10352051</guid><dc:creator>Ahmed El-Ramly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ahmedelr/rsscomments.aspx?WeblogPostID=10352051</wfw:commentRss><comments>http://blogs.msdn.com/b/ahmedelr/archive/2012/09/21/windows-8-process-lifecycle-management-how-do-i-video.aspx#comments</comments><description>&lt;p&gt;A couple of months ago I recorded a quick How Do I video on understanding the process lifecycle for Windows 8 applications.&amp;nbsp; I spoke to the states a Windows 8 application undergoes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Activation&lt;/li&gt;
&lt;li&gt;Running&lt;/li&gt;
&lt;li&gt;Suspension&lt;/li&gt;
&lt;li&gt;Termination&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I discussed what a developer needs to account for in each state and demonstrated them using the Release Candidate of Visual Studio 2012.&amp;nbsp; Check out the &lt;a href="http://channel9.msdn.com/Blogs/How-Do-I/How-Do-I-Handle-Process-Lifetime-Management-for-a-Windows-8-Metro-application"&gt;video&lt;/a&gt; to learn more as the process lifecycle for Windows 8 applications remains the same with the release of Windows 8.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10352051" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ahmedelr/archive/tags/Visual+Studio/">Visual Studio</category><category domain="http://blogs.msdn.com/b/ahmedelr/archive/tags/Windows+8/">Windows 8</category></item><item><title>Launch your Windows 8 App in 30 days</title><link>http://blogs.msdn.com/b/ahmedelr/archive/2012/08/18/launch-your-windows-8-app-in-30-days.aspx</link><pubDate>Sat, 18 Aug 2012 21:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10341303</guid><dc:creator>Ahmed El-Ramly</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ahmedelr/rsscomments.aspx?WeblogPostID=10341303</wfw:commentRss><comments>http://blogs.msdn.com/b/ahmedelr/archive/2012/08/18/launch-your-windows-8-app-in-30-days.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The release of Windows 8 is on the horizon, and soon &lt;a href="http://www.youtube.com/watch?v=WqplLC7HQQg&amp;amp;feature=youtu.be"&gt;millions of people will be looking for Windows 8 apps&lt;/a&gt;. Now&amp;rsquo;s the time to make sure your app is ready for them.&lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200116610"&gt;&lt;img width="152" height="131" title="win8_cta" align="right" style="background-image: none; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" alt="win8_cta" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/7484.win8_5F00_cta_5F00_05E888BE.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Begin your 30-day journey to create a great Windows 8 Metro style app. Get started at &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200116610"&gt;www.generationapp.com&lt;/a&gt; and receive:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Insider tips and tricks on Windows 8 application development.&lt;/li&gt;
&lt;li&gt;Personal on-the-phone access to a Windows 8 architect*.&lt;/li&gt;
&lt;li&gt;An exclusive one-on-one Metro style design consultation*.&lt;/li&gt;
&lt;li&gt;An opportunity to get expert help from a Microsoft Services Engineer at an App Excellence Lab.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Your new Windows 8 app could be mere days away.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: xx-small;" size="1"&gt;* Offer good only to legal residents in the 50 United States &amp;amp; D.C., age 18 or older to hobbyists, professionals or developers in the field of software tech who sign up for building a Windows 8 application on &lt;/span&gt;&lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200116610"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;www.generationapp.com&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: xx-small;" size="1"&gt;. Offer limited to 250 design consultations per month and 500 technical review consultations per month, on a first come first served basis. Limit of one session of each offer type per person. This offer is non-transferable and cannot be combined with any other offer. This offer ends when supplies are exhausted, and is not redeemable for cash.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10341303" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ahmedelr/archive/tags/Windows+8/">Windows 8</category></item><item><title>ProfitStars® Adds to Azure Portfolio with Budget Manager and MaxConnect</title><link>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/27/profitstars-174-adds-to-azure-portfolio-with-budget-manager-and-maxconnect.aspx</link><pubDate>Wed, 27 Jun 2012 14:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10324535</guid><dc:creator>Ahmed El-Ramly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ahmedelr/rsscomments.aspx?WeblogPostID=10324535</wfw:commentRss><comments>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/27/profitstars-174-adds-to-azure-portfolio-with-budget-manager-and-maxconnect.aspx#comments</comments><description>&lt;p&gt;&lt;b&gt;PROFITstar&amp;reg; Budget Manager and Margin Maximizer Connect continue ProfitStars&amp;rsquo; adoption of Azure&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;One of the largest and most dynamic partners I work with is &lt;a href="http://www.jackhenry.com/"&gt;Jack Henry &amp;amp; Associates&lt;/a&gt;, Inc.&amp;reg;, and specifically, their &lt;a href="http://www.profitstars.com/Pages/default.aspx"&gt;ProfitStars&lt;/a&gt;&amp;reg; division. Jack Henry and ProfitStars provide a suite of applications for Retail Banking and Credit Unions, ranging from core banking to financial performance, payment processing, and budgeting.&lt;/p&gt;
&lt;p&gt;ProfitStars is in the midst of releasing 2 new solutions into Azure. I took the opportunity to talk with Bill Plendl, Senior Manager of Research and Development for PROFITstar&amp;reg; Budget Manager, and Ashley Messer, Software Engineering Manager for MaxConnect Interactive&amp;trade; (MCi), about these solutions and Azure.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ahmed: Tell me about ProfitStars and your 2 new Azure services Budget Manager and Margin Maximizer Connect. &lt;br /&gt;Bill&lt;/b&gt;: The PROFITstar ALM/Budgeting and Budget Manager applications are part of the Financial Performance Suite products for ProfitStars&amp;reg;, a division of Jack Henry &amp;amp; Associates, Inc. &amp;reg;. The new Budget Manager application for Azure will assist financial institutions in managing their budgeting process, and improve the accessibility of their system data from remote offices and distributed branches and institutions.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ashley&lt;/b&gt;: And MaxConnect Interactive&amp;trade; (MCi) builds on our first Azure solution, Margin Maximizer Interactive&amp;trade;. Margin Maximizer Interactive is also part of the Financial Performance Suite products for ProfitStars&amp;reg; and helps commercial lenders make profitable pricing (lending) decisions using a consistent industry best practice pricing methodology. MCi allows these commercial lenders to integrate their on premise or hosted core banking systems with Margin Maximizer to efficiently upload the latest lendee profile information.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ahmed: What was the main challenge you were trying to tackle by offering these services in Azure? &lt;br /&gt;Bill: &lt;/b&gt;The primary business need that we are addressing by targeting Budget Manager for Azure is to provide an online-hosted version of our budgeting product. The current market version of Budget Manager is an on-premise Silverlight application and prior versions have been client/server apps. We want to improve overall accessibility with this hosted offering while reducing the IT burden of our clients to administer the system.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ashley: &lt;/b&gt;By targeting Margin Maximizer Interactive and MaxConnect Interactive in Azure we will be able to increase the frequency of our releases to deliver the latest features to our customers as quickly as possible. A secondary goal was to offer a solution that lenders could use while outside of their financial institution (FI), without having to place any additional IT burden on the FI. As long as they have a web browser and Internet access the application just works.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ahmed: What are the merits of Azure for these ProfitStars services? &lt;br /&gt;Bill and Ashley:&lt;/b&gt; Windows Azure scalability features are particularly useful for applications like Budget Manager and Margin Maximizer that have seasonal or spikey peak usage patterns. Azure allows us to scale our solutions up to meet our peaks and also provides savings by not having to carry the heavy infrastructure cost throughout the rest of the year.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ahmed: How would you describe the developer productivity gained by using Azure and Visual Studio? &lt;br /&gt;Ashley:&lt;/b&gt; We experienced a significant productivity gain while building Margin Maximizer Interactive and MaxConnect Interactive. Being able to run the application locally in an emulator and deploy to an environment in Azure with a few clicks provides a significant time savings over other cloud platforms and tools.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bill: &lt;/b&gt; For Budget Manager, we were able to architect it to utilize classic Azure-related features that aid in the building of scalable multitenant applications. One example is how Budget Manager imports its data. Users upload their data into blob storage, which is fast and inexpensive, and then the application uses message queues and worker roles to manage the process of populating that data into the appropriate SQL Azure database.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ahmed: How was your experience transitioning an on-premise application to a Cloud hosted one? &lt;br /&gt;Bill: &lt;/b&gt;Some minor architectural changes were necessary as we transitioned from an on-premise application to a multitenant Azure application. Microsoft helped us engage with one of their partners, Sogeti, to work through the details of migrating the application to Azure. They helped point our team to tools and features in Azure and Visual Studio to help in this migration. The use of a Microsoft Partner in this effort greatly accelerated the learning process of moving to Azure.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10324535" width="1" height="1"&gt;</description></item><item><title>Sharing Data Between LOB Windows 8 Metro Style Apps Part 2</title><link>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/27/sharing-data-between-lob-windows-8-metro-style-apps-part-2.aspx</link><pubDate>Wed, 27 Jun 2012 04:23:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10324341</guid><dc:creator>Ahmed El-Ramly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ahmedelr/rsscomments.aspx?WeblogPostID=10324341</wfw:commentRss><comments>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/27/sharing-data-between-lob-windows-8-metro-style-apps-part-2.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Looking at the Share Target for complex data schemas&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In my &lt;a href="http://blogs.msdn.com/b/ahmedelr/archive/2012/06/25/sharing-data-between-lob-windows-8-metro-style-apps-part-1.aspx"&gt;last post&lt;/a&gt;, I started looking into how one could share data between Metro Style Apps that were more complex than the typical URLs, bitmaps, text and files.&amp;#160; I went in to an example of sharing a Person object based on &lt;a href="http://schema.org/Person"&gt;http://schema.org/Person&lt;/a&gt; and having one app share data about a selected person for another app to consume.&amp;#160; Today, I will go into showing how that other app will consume that complex data format.&lt;/p&gt;  &lt;p&gt;At the end of my last post on data sharing, I showed how the user chose to share data on a Person yet there were no apps on the system that could accept a share type of &lt;a href="http://schema.org/Person"&gt;http://schema.org/Person&lt;/a&gt;.&amp;#160; Let’s walk through creating an app that can accept that share type.&lt;/p&gt;  &lt;p&gt;I will start by creating a new Blank App in Visual Studio Express 2012.&amp;#160; On the page, MainPage, I will simply drop a TextBox to show the data coming from the Share source app.&amp;#160; Next, I will open up the Package.appxmanifest to set an important declaration that allows the system to know this app can be the target of a share, and which types of shares it will participate in.&amp;#160; Looking at the Declarations tab of the Package.appxmanifest file, I select the Share Target under the “Available Declarations” and add it.&amp;#160; Then in the Properties section, I use Add New under the “Data formats” section to declare the types of data this app can accept.&amp;#160; Note that I can add multiple data formats.&amp;#160; In this case, I am adding one for our Person schema.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/6136.image_5F00_00857A4F.png"&gt;&lt;img title="image" style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/5556.image_5F00_thumb_5F00_6959FFD0.png" width="604" height="369" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If I build and run the app, it would now register itself on Windows 8 as an app that can handle a share of type &lt;a href="http://schema.org/Person"&gt;http://schema.org/Person&lt;/a&gt;.&amp;#160; It’s that easy.&amp;#160; If we go back to the Banking CRM app I used in my last post and now run it we see the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/8512.image_5F00_4B0F48DA.png"&gt;&lt;img title="image" style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/6840.image_5F00_thumb_5F00_3B030AD4.png" width="604" height="242" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Of course if I select the Loan App, nothing will happen yet.&amp;#160; So let’s get custom data we are sending to show up in that app.&lt;/p&gt;  &lt;p&gt;First, we need to tell the app which page to invoke when a share target operation is invoked on the app.&amp;#160; In our App.xaml.cs file, we add the following method to have the MainPage show:&lt;/p&gt;  &lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 84.65%; height: 161px; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;   &lt;pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 82.2%; height: 112px; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;override&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt; OnShareTargetActivated(ShareTargetActivatedEventArgs args)&lt;br /&gt; {&lt;br /&gt;     var rootFrame = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; Frame();&lt;br /&gt;     rootFrame.Navigate(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(MainPage), args.ShareOperation);&lt;br /&gt;     Window.Current.Content = rootFrame;&lt;br /&gt;     Window.Current.Activate();&lt;br /&gt; }&lt;/pre&gt;&amp;#160;&amp;#160; &lt;/div&gt;

&lt;p&gt;Next we go into the code behind for MainPage and add the following to the OnNavigatedTo method:&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 85.13%; height: 210px; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;
  &lt;pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;ShareOperation shareOperation;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; customData;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;override&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt; OnNavigatedTo(NavigationEventArgs e)&lt;br /&gt;{&lt;br /&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.shareOperation = (ShareOperation)e.Parameter;&lt;br /&gt;&lt;br /&gt;     var unused = Task.Factory.StartNew(async () =&amp;gt;&lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; (shareOperation.Data.Contains(&lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;http://schema.org/Person&amp;quot;&lt;/span&gt;))&lt;br /&gt;         {&lt;br /&gt;             customData = await &lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.shareOperation.Data.GetTextAsync(&lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;http://schema.org/Person&amp;quot;&lt;/span&gt;);&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;         &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; (customData != &lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;         {&lt;br /&gt;             &lt;span style="color: rgb(0, 128, 0);"&gt;// Get back to the UI thread using the dispatcher.&lt;/span&gt;&lt;br /&gt;             await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =&amp;gt;&lt;br /&gt;             {&lt;br /&gt;                 JsonObject person = JsonObject.Parse(customData);&lt;br /&gt;                 JsonObject personProperties = person[&lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;properties&amp;quot;&lt;/span&gt;].GetObject();&lt;br /&gt;&lt;br /&gt;                 StringBuilder sb = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; StringBuilder();&lt;br /&gt;&lt;br /&gt;                 sb.AppendLine(&lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;Name: &amp;quot;&lt;/span&gt; + personProperties[&lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;givenName&amp;quot;&lt;/span&gt;].GetString() + &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot; &amp;quot;&lt;/span&gt; +&lt;br /&gt;                     personProperties[&lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;familyName&amp;quot;&lt;/span&gt;].GetString());&lt;br /&gt;                 sb.AppendLine(&lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;Birthdate: &amp;quot;&lt;/span&gt; + personProperties[&lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;birthDate&amp;quot;&lt;/span&gt;].GetString());&lt;br /&gt;                 sb.AppendLine(&lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;Telephone: &amp;quot;&lt;/span&gt; + personProperties[&lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;telephone&amp;quot;&lt;/span&gt;].GetString());&lt;br /&gt;&lt;br /&gt;                 &lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.customerDataTextBox.Text = sb.ToString();&lt;br /&gt;             });&lt;br /&gt;         }&lt;br /&gt;     });&lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Stepping through this, we are testing to see if the data being shared is in the data format we are interested in.&amp;#160; We then grab that data and asynchronously deconstruct the JSON object back to the individual elements that were passed from the Sharing source app.&amp;#160; That’s it!&amp;#160; We have successfully passed a complex data type from one Metro app to another.&lt;/p&gt;

&lt;p&gt;So what if there isn’t a published schema for a data format you want to support?&amp;#160; Then create your &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh750306.aspx"&gt;custom data format&lt;/a&gt;.&amp;#160; This gives LOB developers flexibility in determining the exact data they want to pass between Metro apps, whether they are developing both the source and target apps or a schema they can share with other organizations looking to consume specific data from their Metro apps.&lt;/p&gt;

&lt;p&gt;With the ability for Metro apps to be &lt;a href="http://blogs.msdn.com/b/windowsstore/archive/2012/04/25/deploying-metro-style-apps-to-businesses.aspx"&gt;side loaded&lt;/a&gt; in enterprise deployment situations, this ability to share using a custom data format becomes even more compelling.&amp;#160; ISVs developing LOB apps deployed into enterprises, or enterprise developers themselves, will know they have a powerful tool to enable lightweight data sharing on the client between Metro 8 apps.&lt;/p&gt;

&lt;p&gt;Important links:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-US/windows"&gt;Windows Dev Center&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/xaml/Hh871368(v=win.10).aspx"&gt;Sharing content&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh771179.aspx#using_schema_based_formats"&gt;Using schema-based formats&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh771179.aspx#using_custom_formats"&gt;Using custom formats&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh750306.aspx"&gt;Guidelines for creating custom data formats&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/windowsstore/archive/2012/04/25/deploying-metro-style-apps-to-businesses.aspx"&gt;Deploying Metro style apps to businesses&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10324341" width="1" height="1"&gt;</description></item><item><title>AssureSign Brings their Flagship Solution to Azure</title><link>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/26/assuresign-brings-their-flagship-solution-to-azure.aspx</link><pubDate>Tue, 26 Jun 2012 16:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10324035</guid><dc:creator>Ahmed El-Ramly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ahmedelr/rsscomments.aspx?WeblogPostID=10324035</wfw:commentRss><comments>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/26/assuresign-brings-their-flagship-solution-to-azure.aspx#comments</comments><description>&lt;p&gt;&lt;b&gt;AssureSign&amp;rsquo;s growth signaled the need to expand their data centers or adopt the cloud. AssureSign chose Azure.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.assuresign.com"&gt;AssureSign&lt;/a&gt; is an Altamonte Springs, FL based Independent Software Vendor founded in 2007. AssureSign is a provider of electronic signature solutions offering both cloud and on-premise deployments that help organizations of all sizes and across all industries save time and money by eliminating costly shipping fees and speeding up the signing process.&lt;/p&gt;
&lt;p&gt;I had a chance to talk to David Brinkman, CEO of AssureSign, about their AssureSign on Azure offering and the thought process that went into adopting this cloud platform.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Tell me about AssureSign&amp;rsquo;s Azure-based service you recently launched? &lt;br /&gt;&lt;/b&gt;AssureSign has ported our entire flagship application to Azure&amp;rsquo;s Platform-as-a-Service environment. This includes document creation, administration and front-end signing. New customers can be provisioned in the multi-tenant Azure environment or stood up separately without any support from our current infrastructure. AssureSign on Azure is 100% Windows Azure.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;What was the main challenge you were trying to tackle by offering this a service? &lt;br /&gt;&lt;/b&gt;We currently operate two data centers in the US where the AssureSign applications are hosted. Recent business demands had forced us to consider deployment to an overseas datacenter, which would bring a heavy burden and expense associated with startup. Azure makes AssureSign a global product immediately and helps us overcome the challenges of data sovereignty and jurisdictional issues. Current volumes and projected growth also dictated that we quickly develop a plan for expanding our current service infrastructure, from computing to storage. With Azure we are able to meet the needs of our customers when they need it by dynamically scaling our services.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;What were the merits of Azure for your service? &lt;br /&gt;&lt;/b&gt;AssureSign was developed in the Microsoft stack using .NET, SQL Server and IIS, so conceptually there was only a small learning curve. Our port to Azure occurred over 4 months and 1,300 hours of development which we considered reasonable given the ROI. Azure allows us to move from a CapEx to an OpEx cost model thus helping to identify and control our costs accurately.&lt;b&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;What was the tipping point for your investment in Azure? &lt;br /&gt;&lt;/b&gt;Early 2012 I was invited to an event hosted by Microsoft and Sogeti called the Azure Privilege Club. It was there where I was able to understand the investment, depth and breadth of Windows Azure and the vision Microsoft has for the service. For example, the way Microsoft is able to commoditize the server environment is something few companies would be able envision, much less achieve. The advantage for AssureSign is that we can now reap those same benefits through Windows Azure. &lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;How would you describe the developer productivity gained by using Azure? &lt;br /&gt;&lt;/b&gt;AssureSign&amp;rsquo;s Azure development team was very knowledgeable and protective of the code base developed to date. As such, with only minor modifications, we were able to develop a data access layer to account for the differences between storage services in Azure and Windows Server. For example, SQL Azure vs SQL Server, Azure Queues vs MSMQ, and so on. This allows AssureSign to maintain a single source code base across our deployment models. The advantages to this approach are numerous and provide all clients to timely updates to new features, regardless of the platform.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img width="504" height="354" title="image" style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/1738.image_5F00_thumb_5F00_1D16E269.png" border="0" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10324035" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ahmedelr/archive/tags/Azure/">Azure</category></item><item><title>Sharing Data Between LOB Windows 8 Metro Style Apps Part 1</title><link>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/25/sharing-data-between-lob-windows-8-metro-style-apps-part-1.aspx</link><pubDate>Tue, 26 Jun 2012 01:15:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10323799</guid><dc:creator>Ahmed El-Ramly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ahmedelr/rsscomments.aspx?WeblogPostID=10323799</wfw:commentRss><comments>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/25/sharing-data-between-lob-windows-8-metro-style-apps-part-1.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Sharing complex data schemas makes for richer sharing between Windows 8 Metro Style Apps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;I recently wrote a post where I delved into the &lt;a href="http://blogs.msdn.com/b/ahmedelr/archive/2012/06/15/a-look-at-the-windows-8-charms-for-lob-apps.aspx"&gt;Windows 8 Charms for LOB apps&lt;/a&gt;.&amp;nbsp; I spent some time talking about using the Search charm to not only look for data on your Windows 8 device/computer, but to also search into data for Metro apps that is either stored offline or in back end systems.&amp;nbsp; This capability is very useful for LOB Metro apps to utilize as it unifies the search experience for your users.&lt;/p&gt;

&lt;p&gt;I also spent time talking about the Share Charm and using the Share Contract to allow Metro apps to either expose certain data a user may want to share, or to allow them to consume data from another app the user is using.&amp;nbsp; Today I want to dive into this further as this powerful feature can really help create some wonderful user experiences for LOB apps.&lt;/p&gt;

&lt;p&gt;In my last post, I pointed out the 7 types of data that can be shared between Metro Style apps:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Plain text &lt;/li&gt;

  &lt;li&gt;URIs &lt;/li&gt;

  &lt;li&gt;HTML &lt;/li&gt;

  &lt;li&gt;Formatted text &lt;/li&gt;

  &lt;li&gt;Bitmaps &lt;/li&gt;

  &lt;li&gt;Files &lt;/li&gt;

  &lt;li&gt;Custom data formats &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While the first 6 are quite useful and likely encompass many of the share scenarios a user is seeking, it is the last one that allows complex data to be exchanged between applications.&amp;nbsp; For example, let’s assume one is working in banking and spends much of their time in a banking customer relationship management application.&amp;nbsp; This application could allow the user to see information and alerts about their regular customers.&amp;nbsp; Let’s say the app looks like the rudimentary one below:&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/1680.image_5F00_6912943C.png"&gt;&lt;img width="604" height="302" title="image" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/5086.image_5F00_thumb_5F00_78B52FFE.png" border="0"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Let’s say the Mr. Smith is on the phone with the user and wants to take out a new loan.&amp;nbsp; Since this is a CRM app, it doesn’t have the functionality to start a new loan application.&amp;nbsp; Instead, the user must navigate to the loan Metro Style app and begin the process of taking down all of Mr. Smith’s details for the loan, many of which are in this very CRM app.&amp;nbsp; Compounding this, the Loan app is written by another software vendor and the 2 ISVs have never worked together to integrate their apps.&amp;nbsp; This is where using a common schema can come into play.&lt;/p&gt;

&lt;p&gt;In this example, the Person schema from schema.org can be used to share from the CRM app to the Loan app the general contact details about Mr. Smith.&amp;nbsp; Details on this schema can be found at &lt;a href="http://schema.org/Person"&gt;http://schema.org/Person&lt;/a&gt;.&amp;nbsp; So let’s step through what needs to happen to allow this data format to be shared.&lt;/p&gt;

&lt;p&gt;As with the more common Share types, one needs to set up the app to share it’s data.&amp;nbsp; In this case the app will share a data in the Person schema format.&amp;nbsp; First the page much instantiate an instance of the &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.datatransfer.datatransfermanager.aspx"&gt;DataTransferManager&lt;/a&gt; and register an event to fire when the user invokes the Share Charm by clicking or tapping it (or manually using Window-H):&lt;/p&gt;&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;&lt;pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt; ShareSourceLoad() &lt;br&gt;{ &lt;br&gt;    DataTransferManager dataTransferManager = DataTransferManager.GetForCurrentView(); &lt;br&gt;    dataTransferManager.DataRequested += &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; TypedEventHandler&amp;lt;DataTransferManager, DataRequestedEventArgs&amp;gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.DataRequested); &lt;br&gt;}&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;



&lt;blockquote&gt;&lt;pre class="csharpcode"&gt;&amp;nbsp;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;Next, we wire up the DataRequested event to populate a JSON object with the Person Schema:&lt;/p&gt;&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;&lt;pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt; DataRequested(DataTransferManager sender, DataRequestedEventArgs args) &lt;br&gt;{ &lt;br&gt;    DataRequest request = args.Request; &lt;br&gt;    request.Data.Properties.Title = &lt;span style="color: rgb(0, 96, 128);"&gt;"Share a Person"&lt;/span&gt;; &lt;br&gt;    request.Data.Properties.Description = &lt;span style="color: rgb(0, 96, 128);"&gt;"Sharing contact details about a person."&lt;/span&gt;;&lt;br&gt;&lt;br&gt;    &lt;span style="color: rgb(0, 128, 0);"&gt;// Choose the selected item &lt;/span&gt;&lt;br&gt;    PersonDataItem pdi = (PersonDataItem)itemListView.SelectedItem;&lt;br&gt;&lt;br&gt;    JsonObject person = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; JsonObject(); &lt;br&gt;    person.SetNamedValue(&lt;span style="color: rgb(0, 96, 128);"&gt;"type"&lt;/span&gt;, JsonValue.CreateStringValue(&lt;span style="color: rgb(0, 96, 128);"&gt;"http://schema.org/Person"&lt;/span&gt;));&lt;br&gt;&lt;br&gt;    JsonObject personProperties = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; JsonObject(); &lt;br&gt;    personProperties.SetNamedValue(&lt;span style="color: rgb(0, 96, 128);"&gt;"givenName"&lt;/span&gt;, JsonValue.CreateStringValue(pdi.Title)); &lt;br&gt;    personProperties.SetNamedValue(&lt;span style="color: rgb(0, 96, 128);"&gt;"familyName"&lt;/span&gt;, JsonValue.CreateStringValue(pdi.FamilyName)); &lt;br&gt;    personProperties.SetNamedValue(&lt;span style="color: rgb(0, 96, 128);"&gt;"birthDate"&lt;/span&gt;, JsonValue.CreateStringValue(pdi.BirthDate)); &lt;br&gt;    personProperties.SetNamedValue(&lt;span style="color: rgb(0, 96, 128);"&gt;"telephone"&lt;/span&gt;, JsonValue.CreateStringValue(pdi.Telephone));&lt;br&gt;&lt;br&gt;    &lt;span style="color: rgb(0, 128, 0);"&gt;// Continue adding name/value pairs&lt;/span&gt;&lt;br&gt;  &lt;br&gt;   &lt;br&gt;    person.Add(&lt;span style="color: rgb(0, 96, 128);"&gt;"properties"&lt;/span&gt;, personProperties);&lt;br&gt;&lt;br&gt;    request.Data.SetData(&lt;span style="color: rgb(0, 96, 128);"&gt;"http://schema.org/Person"&lt;/span&gt;, person.Stringify()); &lt;br&gt;}&lt;br&gt;  &lt;br&gt;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;

&lt;blockquote&gt;

&lt;/blockquote&gt;


&lt;blockquote&gt;
  &lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If we run the app and choose a customer, then invoke the Share charm, we will get the following screen:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/8623.image_5F00_1AA09283.png"&gt;&lt;img width="604" height="256" title="image" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/1273.image_5F00_thumb_5F00_5587C54C.png" border="0"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Notice the Share Dialog on the right of the screen tells us the Title and Description of the Share.&amp;nbsp; But it also tells us we don’t have any apps that accept this type of shared content.&amp;nbsp; In this case, there are no apps on the system that have declared that they can be a Share target for type &lt;a href="http://schema.org/Person"&gt;http://schema.org/Person&lt;/a&gt;.&amp;nbsp; We will go into setting up an app to accept that type in my next post.&lt;/p&gt;

&lt;p&gt;Important links:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-US/windows"&gt;Windows Dev Center&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/xaml/Hh868180(v=win.10).aspx"&gt;Adding search to an app&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/xaml/Hh871368(v=win.10).aspx"&gt;Sharing content&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh771179.aspx#using_schema_based_formats"&gt;Using schema-based formats&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh771179.aspx#using_custom_formats"&gt;Using customer formats&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.schema.org/"&gt;schema.org&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh750306.aspx"&gt;Guidelines for creating custom data formats&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10323799" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ahmedelr/archive/tags/Windows+8/">Windows 8</category></item><item><title>Brainware Banks on Azure for Distiller as a Service</title><link>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/15/brainware-banks-on-azure-for-distiller-as-a-service.aspx</link><pubDate>Fri, 15 Jun 2012 18:51:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10320663</guid><dc:creator>Ahmed El-Ramly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ahmedelr/rsscomments.aspx?WeblogPostID=10320663</wfw:commentRss><comments>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/15/brainware-banks-on-azure-for-distiller-as-a-service.aspx#comments</comments><description>&lt;p&gt;&lt;b&gt;When Brainware decided to offer their Distiller solution as a service, they chose to launch it on Azure.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Over the past year I have worked with &lt;a href="http://www.brainware.com/index.php"&gt;Brainware&lt;/a&gt; to expose them to Microsoft’s platforms and technologies. One area we focused on was Azure and how Brainware could utilize it to offer one of their solutions in a Software as a Service model. I talked to &lt;a href="http://www.brainware.com/about_management.php#ops"&gt;David Luzier&lt;/a&gt;, Chief Technology Officer at Brainware, on their strategic decision to bet on Azure.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Tell us about Brainware and the Distiller as a Service (DaaS) offer you have made available?      &lt;br /&gt;&lt;/b&gt;Brainware is a market leader in intelligent data capture solutions for high volume document processing which includes documents such as invoices, orders, checks and remittance, BOLs, contracts, etc.&lt;/p&gt;  &lt;p&gt;We recently launched our traditional, premises-based data capture solution called Distiller on Azure. Distiller is highly scalable and capable of handling upwards of 5 million documents a day. DaaS is a solution which focuses on invoice processing to extract header and line-item data from varying invoice layouts and languages without creation of templates for each invoice layout. We typically reduce manual data entry by up to 80-90 percent for our customers. The solution allows our customers to handle more invoices in less time, reduce errors, avoid late payment penalties and take advantage of early payment discounts—all while gaining unrivaled visibility and control of their AP process. &lt;/p&gt;  &lt;p&gt;DaaS gives users a flexible, IT-friendly deployment option for our market-leading Distiller solution. It is targeted at organizations that include:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Large enterprise clients that want a hybrid option for large scale rollout - on premises software for certain locations and SaaS for others&lt;/li&gt;    &lt;li&gt;SMB clients that want the power of Distiller but don't need a full blown, on premises deployment&lt;/li&gt;    &lt;li&gt;Partners and resellers that want to incorporate Distiller into their own SaaS solutions&lt;/li&gt;    &lt;li&gt;BPOs and multi-client shared service centers that need rapid setup and deployment for new Distiller projects&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;What was the main challenge you were trying to tackle by offering Distiller as a service?      &lt;br /&gt;&lt;/b&gt;We started looking towards the cloud as a means of offering a solution to those opportunities we would previously disqualify because their daily or monthly invoice volumes fell below the typical target threshold. We were also looking to address the needs of larger opportunities that were unable to move forward because of unavailable IT resources or hardware for deployment.&lt;/p&gt;  &lt;p&gt;While investigating solutions, we liked the capabilities that Azure could provide such as Azure Marketplace, and the longer term capabilities in which the sign-up, billing and maintenance of the equipment and OS could be managed by MSFT.&lt;/p&gt;  &lt;p&gt;We also wanted to broaden our market opportunities for Brainware Distiller by increasing licensing and deployment options. Since we previously have only offered an on-premises solution, expanding into a Software as a Service model allows us to address a larger market segment.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;What were the merits of Azure for Distiller?      &lt;br /&gt;&lt;/b&gt;Distiller in the cloud powered by Windows Azure enables customers and partners to leverage all the benefits of Distiller in an on-demand, self-service model. There are minimal upfront costs, fast and easy start-up, anywhere/anytime access and comprehensive scalability. In addition, we are able to minimize our ongoing deployment costs by only using the amount of computer and storage resources we need to service our customers. We can scale our deployment footprint up and down and thus keep our costs to a minimum. We couldn’t do this if we were to stand up our own datacenter and host Distiller ourselves.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;What is it like being a Managed Microsoft Partner and how did it help you bring DaaS to market?&lt;/b&gt;    &lt;br /&gt;For the past couple of years, we have had ongoing engagement with Microsoft personnel including a Technical Evangelist and a Business Development Manager. These folks have helped keep us updated on Microsoft’s technologies and roadmap and present us with unique opportunities to engage in development discussions or marketing opportunities.&lt;/p&gt;  &lt;p&gt;This sort of attention from Microsoft has really helped us in our delivery of DaaS. I was constantly in touch with our Microsoft contacts who were readily available to discuss our progress and offer solutions to any technical hurdles.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Is DaaS available now on the market?&lt;/b&gt;    &lt;br /&gt;On May 14&lt;sup&gt;th&lt;/sup&gt; we announced the release of Brainware Distiller as a Service (DaaS). We had been performing customer evaluations and POCs prior to the official announcement.&lt;/p&gt;  &lt;p&gt;The first customer to use DaaS is a leading U.S.-based owner and operator of wireless communications towers. They found that DaaS boosted productivity in the processing of utility invoices by more than 700%.&lt;/p&gt;  &lt;p&gt;To learn more about DaaS, see the Windows Azure Marketplace &lt;a href="https://datamarket.azure.com/browse/Applications?Category=legal&amp;amp;Publisher=08e75b42-97a8-4f99-a34e-ddfd8e7e0f3e"&gt;listing&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10320663" width="1" height="1"&gt;</description></item><item><title>A look at the Windows 8 Charms for LOB Apps</title><link>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/15/a-look-at-the-windows-8-charms-for-lob-apps.aspx</link><pubDate>Fri, 15 Jun 2012 15:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10320573</guid><dc:creator>Ahmed El-Ramly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ahmedelr/rsscomments.aspx?WeblogPostID=10320573</wfw:commentRss><comments>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/15/a-look-at-the-windows-8-charms-for-lob-apps.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;The Charms are a great new feature for Windows 8 that should be leveraged whenever possible&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/5226.image_5F00_00E95BC2.png"&gt;&lt;img style="margin: 0px 10px; float: right; display: inline; background-image: none;" title="image" border="0" alt="image" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/1581.image_5F00_thumb_5F00_2AE959EA.png" width="40" height="343" /&gt;&amp;#160;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Windows 8 was previewed to the world back in September 2011 and and one of the cool features that was shown repeatedly were the charms that can be swiped in from the right side of the screen (this bar is called the System Commands).&amp;#160; These charms include the Search, Share, Devices, and Settings charms.&amp;#160; The purpose of these charms is to make certain common and repeatable actions available at the OS level to be leveraged by applications where suitable.&lt;/p&gt;  &lt;p&gt;In my role working with Independent Software Vendors, I was immediately taken by how this could enhance certain scenarios for Line of Business Apps and started discussing them with the ISVs I work with.&amp;#160; In particular, the Search and Share charms were very interesting so I thought I would spend some time blogging about them over the coming weeks.&lt;/p&gt;  &lt;p&gt;Today, let’s start with a review of the capabilities and how they can be used in LOB Metro Style Apps.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Search&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;From the Start screen, when one brings up the system commands and touches/clicks the top most charm the Windows 8 Search experience is displayed (captured below).&amp;#160; The left portion of the screen displays the currently installed apps in alphabetical order, while the right side gives the user the ability to type what they are searching for in order to filter down the results.&amp;#160; &lt;/p&gt;  &lt;p&gt;The initial search is for Apps, but Settings and Files are also searchable.&amp;#160; Below the fold, one will notice a number of apps that can be clicked.&amp;#160; These apps have implemented the &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh465238.aspx"&gt;Search Contract&lt;/a&gt;, which allows them to receive the search query entered by the user.&amp;#160; This allows users to extend their search query into the various apps installed on their Windows 8 computer as long as those apps have implemented this contract.&amp;#160; The search results for each app are displayed within the app itself, immersing the user in the appropriate experience for that app.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/6303.clip_5F00_image001_5F00_4CD4BC6E.png"&gt;&lt;img style="display: inline; background-image: none;" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/6763.clip_5F00_image001_5F00_thumb_5F00_0F6457E7.png" width="491" height="278" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;How is this important to LOB Apps?&amp;#160; It allows a user to find the information they need quickly.&amp;#160; For example, let’s say I work at a bank and in that search box I type the name of a customer I work with (let’s say “John Smith”).&amp;#160; Initially, Windows 8 is unlikely to find any Apps named “John Smith”.&amp;#160; If I click Files, it may find files I have stored on my computer with “John Smith” in the title or contents.&amp;#160; But if I click the People app, that app will immediately start and be passed the query string “John Smith” and display any contacts with that name.&amp;#160; If I have a banking app and click it, how that app behaves will be determined by the app developers, but let’s assume it will search for customers with that name, even if that data is not local to the app.&amp;#160; The banking app will launch, take in the query string, then send a search request to its backend servers to conduct that search.&amp;#160; I have done all this searching by simply typing “John Smith” once and navigating through the apps I am interested in finding information about that person in. &lt;/p&gt;  &lt;p&gt;In addition, if I was already in a specific Metro Style app, pulling up the Search charm and typing a search term will conduct a search locally in that app first, then allow the user to choose to search for that term in App, Settings Files, or other Windows 8 Metro Style Apps.&amp;#160; If your application needs to offer a search experience, it is highly advisable to use the Search charm to initiate that search experience as it will be the natural place users will go to begin searching.&amp;#160; And, it will also reduce the real estate in your app to display a search link.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Share&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The really fascinating charm for me is the Share charm.&amp;#160; This charm allows a user to share information from one Metro Style App to another without the apps needing to intimately know about one another ahead of time.&amp;#160; Typically, the type of information shared might be text or a link.&amp;#160; Where cut and paste have been typically used to share some information between apps, Share can be used to pass information between apps but have the Target app act much more intelligently based on the type of data received from the Source App.&amp;#160; Let’s take a look at an example.&lt;/p&gt;  &lt;p&gt;If I am in the Windows Store and find an app I would like to share with someone, while on the app’s page, I can invoke the Share charm.&amp;#160; This will allow me to select an app to share information to based on the type of information being share.&amp;#160; In this case, a URI is being shared to deep link to this app within the Windows Store.&amp;#160; You will notice in the top screen shot that just 3 apps are offered to share to.&amp;#160; This is because these 3 apps are participating in the &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh465261.aspx"&gt;Share Target contract&lt;/a&gt;, and in addition, are specifically able to consume a data format of URI.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/2337.clip_5F00_image0015_5F00_6978FB98.png"&gt;&lt;img style="display: inline; background-image: none;" title="clip_image001[5]" border="0" alt="clip_image001[5]" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/8105.clip_5F00_image0015_5F00_thumb_5F00_72858719.png" width="429" height="243" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/4885.clip_5F00_image0017_5F00_58451DF5.png"&gt;&lt;img style="display: inline; background-image: none;" title="clip_image001[7]" border="0" alt="clip_image001[7]" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-66-27-metablogapi/4863.clip_5F00_image0017_5F00_thumb_5F00_4FE1489E.png" width="429" height="243" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once I click on an app, Mail in this case, I am brought into an experience to write a mail message with the content of that share already embedded in the message.&amp;#160; In this case, the Mail app decided how to handle the shared data based on the type of data being share, a URI, and chose to embed the URI in a new mail message.&amp;#160; It is up to the developers of Target app to decide how to consume the data from the Source app.&lt;/p&gt;  &lt;p&gt;There are 7 types of data that can be shared between Windows 8 Metro Style Apps:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Plain text&lt;/li&gt;    &lt;li&gt;URIs&lt;/li&gt;    &lt;li&gt;HTML&lt;/li&gt;    &lt;li&gt;Formatted text&lt;/li&gt;    &lt;li&gt;Bitmaps&lt;/li&gt;    &lt;li&gt;Files&lt;/li&gt;    &lt;li&gt;Custom data formats&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It is the last one, the custom data formats, that brings particular power to LOB apps on Windows 8.&amp;#160; While the 6 standard data formats are highly usable, they don’t encompass all the scenarios around data sharing a developer may want to expose or consume and the custom data formats is the mechanism to invoke a richer share experience between apps.&amp;#160; For example, lets say you are in a banking CRM app looking at a customer and want to initiate a new loan for that customer.&amp;#160; Instead of retyping a lot of basic information for that customer, you would like to share that information to the loan origination app.&amp;#160; Ideally, you would pass a Person data format from the CRM app to the loan app.&amp;#160; This can be done by using a &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh771179.aspx#using_schema_based_formats"&gt;scheme-based format&lt;/a&gt; or creating a &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh771179.aspx#using_custom_formats"&gt;custom data format&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Ideally, one would use a common schema like those found on &lt;a href="http://www.schema.org"&gt;http://www.schema.org&lt;/a&gt;.&amp;#160; In the banking example I just mentioned, one could have used this &lt;a href="http://schema.org/Person"&gt;Person schema&lt;/a&gt;, which includes expected details like name, address, phone numbers, email, birthday …&lt;/p&gt;  &lt;p&gt;If a suitable schema can’t be found on &lt;a href="http://www.schema.org/"&gt;schema.org&lt;/a&gt;, then you can &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh750306.aspx"&gt;roll our own&lt;/a&gt; to allow you to pass the suitable information between Source and Target apps.&amp;#160; I will be taking a deeper look at this in a future blog post as this capability is what will allow LOB app developers to loosely couple Windows 8 Metro Style Apps, whether they are developing both the source and target apps or whether they are creating just one of them.&lt;/p&gt;  &lt;p&gt;Links in this post:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/xaml/Hh868180(v=win.10).aspx"&gt;Adding search to an app&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/xaml/Hh871368(v=win.10).aspx"&gt;Sharing content&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh771179.aspx#using_schema_based_formats"&gt;Using schema-based formats&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh771179.aspx#using_custom_formats"&gt;Using customer formats&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.schema.org/"&gt;schema.org&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh750306.aspx"&gt;Guidelines for creating custom data formats&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10320573" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ahmedelr/archive/tags/Windows+8/">Windows 8</category></item><item><title>Windows 8 Release Preview Now Available</title><link>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/01/windows-8-release-preview-now-available.aspx</link><pubDate>Fri, 01 Jun 2012 19:20:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10313718</guid><dc:creator>Ahmed El-Ramly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ahmedelr/rsscomments.aspx?WeblogPostID=10313718</wfw:commentRss><comments>http://blogs.msdn.com/b/ahmedelr/archive/2012/06/01/windows-8-release-preview-now-available.aspx#comments</comments><description>&lt;p&gt;Exciting times here as the Release Preview (RP) for Windows 8 has just dropped yesterday.&amp;#160; The RP can be downloaded from &lt;a href="http://preview.windows.com"&gt;http://preview.windows.com&lt;/a&gt;.&amp;#160; To develop Metro Style apps for Windows 8, download the Release Candidate of Visual Studio 2012 Express &lt;a href="http://msdn.microsoft.com/en-us/windows/apps/br229516"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;While you are downloading and installing the Windows 8 RP, here are some great blog posts to read about what’s new with the RP of Windows 8:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/b8/archive/2012/05/31/delivering-the-windows-8-release-preview.aspx"&gt;Delivering the Windows 8 Release Preview&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/b8/archive/2012/06/01/web-browsing-in-windows-8-release-preview-with-ie10.aspx"&gt;Web browsing in Windows 8 Release Preview with IE10&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/windowsstore/archive/2012/05/31/windows-store-for-release-preview.aspx"&gt;Windows Store for Release Preview&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Be sure to checkout all the exciting titles in the Windows Store.&amp;#160; Enjoy!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10313718" width="1" height="1"&gt;</description></item></channel></rss>