<br />
<b>Deprecated</b>:  YoastSEO_Vendor\Symfony\Component\DependencyInjection\Container::__construct(): Implicitly marking parameter $parameterBag as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/symfony/dependency-injection/Container.php</b> on line <b>60</b><br />
<br />
<b>Deprecated</b>:  YoastSEO_Vendor\League\OAuth2\Client\Provider\AbstractProvider::authorize(): Implicitly marking parameter $redirectHandler as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/league/oauth2-client/src/Provider/AbstractProvider.php</b> on line <b>416</b><br />
<br />
<b>Deprecated</b>:  YoastSEO_Vendor\GuzzleHttp\Client::getConfig(): Implicitly marking parameter $option as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/guzzlehttp/guzzle/src/Client.php</b> on line <b>181</b><br />
<br />
<b>Deprecated</b>:  YoastSEO_Vendor\GuzzleHttp\ClientInterface::getConfig(): Implicitly marking parameter $option as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php</b> on line <b>77</b><br />
{"id":631,"date":"2011-11-02T00:03:08","date_gmt":"2011-11-01T23:03:08","guid":{"rendered":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/"},"modified":"2011-11-02T00:03:08","modified_gmt":"2011-11-01T23:03:08","slug":"developing-windows-8-metro-style-applications-for-sharepoint","status":"publish","type":"post","link":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/","title":{"rendered":"Developing Windows 8 (Metro Style) Applications for SharePoint"},"content":{"rendered":"<p>I had a lot of questions in the last few days about the final demo on my <a href=\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/10\/22\/microsoft-sinergija-2011-session-are-good-sharepoint-solutions-only-a-myth-slide-deck-and-source-code\/\">Microsoft Sinergija<\/a> session \u2013 the demo where the SharePoint list data have been displayed in a Windows 8 Metro Style client. Most of those questions were about people asking me to post the code for that client. But the main point is not the client-side code, it&#8217;s the way there.<\/p>\n<p>So, no, I will not simply post the metro client code here, I will explain the way how to create such a client, how to get the necessary data &#8211;\u00a0 with the code snippets included, of course.<\/p>\n<p><!--more--><\/p>\n<h3>Prerequisites<\/h3>\n<p>f you still haven&#8217;t read my posts from the <a href=\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/category\/architecture\/\">SharePoint architecture series<\/a>, then please read it, at least the <a href=\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/09\/03\/sharepoint-architecture-what-are-we-talking-about-here\/\">&#8220;SharePoint Architecture \u2013 what are we talking about here?&#8221;<\/a> post, since this post will heavily rely on it. Hence, this would not be possible without it at all.<\/p>\n<p>First thing that you will need of course is Windows 8 Developer Preview, which can be downloaded <a href=\"http:\/\/msdn.microsoft.com\/en-us\/windows\/apps\/br229516\">here<\/a>. And the <strong>full<\/strong> Visual Studio 2011 Developer Preview (not the Express edition which comes with Windows 8), which can be downloaded <a href=\"http:\/\/msdn.microsoft.com\/en-us\/vstudio\/hh127353\">here<\/a>. I will not go into the Windows 8 installation \u2013 like a thousand blogs have been written on that topic, so just find one of them.<\/p>\n<h3>Introduction<\/h3>\n<p>So, we need to display, and eventually to write back, the SharePoint list data in a Windows 8 \u2013 Metro style client. Yes, the one with the tiles.<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-12.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"application-1\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-1_thumb2.png\" alt=\"application-1\" width=\"566\" height=\"318\" border=\"0\" \/><\/a><\/p>\n<p>Since Metro clients are somewhat different \u2013 if developed in C# or VB, they rely on .NET 4.5, and have specific user programming model (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Windows_Runtime\">WinRT<\/a>) which &#8220;interfaces&#8221; between platform and programming language you are using (C# in this example), there is no way to access the SharePoint data directly, through the SharePoint Client Object model. Server Object Model is anyway out of reach. <\/p>\n<p>It leaves us with only one possibility: we need to consume our data through services.<\/p>\n<p>Since there is a known bug in the current version of the .NET framework 4.5, which doesn&#8217;t allow us to add a service reference for any OData service, it means that SharePoint OData services (listdata.svc) are not an option, too. And since we do not want to use SharePoint&#8217;s .asmx services (do I still need to explain why?), one remaining choice which we have, is to write an own WCF service, which will read the SharePoint data, and transport them back to the client.<\/p>\n<p>This approach has another advantage: if we made the architecture of our solution properly, we probably already have API methods which read the data from SharePoint lists, we just need to leverage that functionality and to encapsulate it in a WCF service call.<\/p>\n<p>If you recall the SharePoint Solution architecture schema I have proposed in the &#8220;<a href=\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/09\/03\/sharepoint-architecture-what-are-we-talking-about-here\/\">What are we talking about here?<\/a>&#8221; article, this would be the information flow in this case:<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/WCF-Win81.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"WCF Win8\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/WCF-Win8_thumb1.png\" alt=\"WCF Win8\" width=\"558\" height=\"395\" border=\"0\" \/><\/a><\/p>\n<p><span style=\"color: #666666; font-size: xx-small;\"><em>(click for larger image)<\/em><\/span><\/p>\n<p><strong><span style=\"text-decoration: underline;\">Pay attention on the boxes with the red borders<\/span><\/strong>: this is how the SharePoint data will reach our Metro client. Business Logic will read the data from SharePoint, by using the Data Access Layer Methods, and then a WCF Service will expose the calls to the appropriate Business Logic methods to the outer world.<\/p>\n<h3>The case<\/h3>\n<p>We will use existing solution, which we have been working at in the last few articles, which deals with the <a href=\"http:\/\/sharedove.codeplex.com\">Conference Organization<\/a>.<\/p>\n<p>We have in our &#8220;Sessions&#8221; SharePoint list agenda for the conference that we are organizing, and we want to expose that agenda to the different clients, among them the Windows 8.<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/calendar1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"calendar\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/calendar_thumb1.png\" alt=\"calendar\" width=\"574\" height=\"459\" border=\"0\" \/><\/a><\/p>\n<p>We have also implemented a method in the business logic, which reads the agenda for a day, and this is what we are going to expose.<\/p>\n<h3>The WCF Service<\/h3>\n<p>Since SharePoint is &#8220;special&#8221;, we need to impose some boundaries on the WCF service that we will create for reading SharePoint data.<\/p>\n<p>1. To keep the service separated from the SharePoint web applications, we will create a new site in IIS to host the web service \u2013 it will not be hosted inside the SharePoint site. But, we must use the existing SharePoint application pool, otherwise there will be no way to retrieve the SharePoint context.<\/p>\n<p>2. We need to enable the Windows Authentication on the IIS site which hosts the service<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/image3.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"image\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/image_thumb3.png\" alt=\"image\" width=\"512\" height=\"168\" border=\"0\" \/><\/a><\/p>\n<p>3. The service needs to be build with .NET 3.5 (yeah, I know&#8230;)<\/p>\n<p>4. ABC \u2013 service needs to use the BasicHttpBinding, to use the &#8220;TransportCredentialOnly&#8221; and &#8220;Ntlm&#8221; as security mode. We will need to use Ntlm authentication in our scenario, since considering other scenarios (Forms, Windows Live) would go way out of boundaries of this article.<\/p>\n<p>Furthermore, we need to set the ASP.NET compatibility mode in the service as following:<\/p>\n<p><span style=\"font-family: Courier New;\">&lt;serviceHostingEnvironment aspNetCompatibilityEnabled=&#8221;true&#8221; \/&gt;<\/span><\/p>\n<p>Whole ServiceModel of the web.config is shown here:<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/image4.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"image\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/image_thumb4.png\" alt=\"image\" width=\"582\" height=\"329\" border=\"0\" \/><\/a><\/p>\n<p>With this up and running, the service is able to accept the credentials from the clients, and to establish the SPContext under these credentials.<\/p>\n<p>Now we need to call the methods from the business layer, to retrieve the data:<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/image5.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"image\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/image_thumb5.png\" alt=\"image\" width=\"582\" height=\"259\" border=\"0\" \/><\/a><\/p>\n<p>And that would be more the less all what is important on the service side. No business logic goes there \u2013 we have implemented that already in out business logic layer.<\/p>\n<h3>The Client \u2013 Windows 8 Metro style<\/h3>\n<p>I will not explain here Metro-style applications development, nor the new await\/async methods in C# 5.0 There is more than enough information on that on the web. But I will use it to to call our service.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">One thing is of importance here:<\/span><\/strong> Windows 8 machine is, in my case, member of the same domain as the SharePoint server. That allows me to authenticate with the default credentials. SharePont just needs to know who is knocking on it&#8217;s door, and what is he allowed to see.<\/p>\n<p>If this is not possible, you will need to provide the username and password of a domain user when instantiating a client proxy, and then to authenticate with that user. A kind of a &#8220;proxy user&#8221;, which has necessary rights.<\/p>\n<p>If this is not possible as well, then you have two options \u2013 turn the anonymous authentication on, or, implement the form based authentication with Windows Live \u2013 but that would go way behind the scope of this article. So, I will just suppose that the Windows 8 client and SharePoint server are in the same domain.<\/p>\n<p>Let&#8217;s start.<\/p>\n<p>Create a new &#8220;Split application&#8221; from Visual C# \/ Windows Metro Style templates. Split application is good, because it shows the grouped data in a really nice manner, and we don&#8217;t have to do the layout for this example ourselves.<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/create-app1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"create app\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/create-app_thumb2.png\" alt=\"create app\" width=\"584\" height=\"356\" border=\"0\" \/><\/a><\/p>\n<h4>Set application capabilities<\/h4>\n<p>The next step is to add the &#8220;capabilities&#8221; to the newly created application \u2013 basically, permissions which our application will have. They can be found in the &#8220;Package.appxmanifest&#8221; file. The important one here is &#8220;Home\/work Networking&#8221;, so we can talk to our service:<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/capabilities1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"capabilities\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/capabilities_thumb1.png\" alt=\"capabilities\" width=\"583\" height=\"542\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>Add service reference<\/h4>\n<p>The next step is to add the reference to the service:<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/service_conf1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"service_conf\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/service_conf_thumb1.png\" alt=\"service_conf\" width=\"363\" height=\"373\" border=\"0\" \/><\/a><\/p>\n<p>As you see, there is no App.config or Web.config to configure the service in the application. All the configuration is done in the proxy class, created for you when you add the service reference. Usually it is good enough, but I did encounter that the binding and security mode have not been &#8220;imported&#8221; properly. You can do it manually in the &#8220;reference.cs&#8221; file which is created under the service node (turn display all files on), but be aware: if you update the service reference, all of your changes to the reference.cs will be lost:<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/service-conf-manual1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"service conf manual\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/service-conf-manual_thumb1.png\" alt=\"service conf manual\" width=\"560\" height=\"77\" border=\"0\" \/><\/a><\/p>\n<p>But, as I have said, this happens really rarely, so in 99% of the cases you can leave the Reference.cs alone.<\/p>\n<h4>Bind the data<\/h4>\n<p>After the service has been added, we will not do much more than change the Sample Data class in the template, and to put our SharePoint data instead of the hard-coded values which come with the template.<\/p>\n<p>In the code below, I just retrieve the data from the service, iterate through it to create &#8220;Collections&#8221; and &#8220;Items&#8221; (elements in the &#8220;Split application&#8221;).<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/code-tiny1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"code tiny\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/code-tiny_thumb1.png\" alt=\"code tiny\" width=\"583\" height=\"291\" border=\"0\" \/><\/a><\/p>\n<p>You notice, that, even if we do make an asynchronous call, we actually work as if it would be a standard synchronous call. This is made possible by the new C# 5 features (async\/await), which were used in the service proxy class (again, take a look at the Reference.cs under the service node).<\/p>\n<p>The binding is not done here, it ls in the App.xaml, if you are looking for it.<\/p>\n<h4>Enjoy<\/h4>\n<p>And that&#8217;s actually it. If you start the application, you will see your Conference Agenda, pulled right out of the SharePoint List, and displayed in the nice metro interface, grouped by the tracks (DEV, ADM, BUS).<\/p>\n<p>Here are some screenshots:<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/title1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"title\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/title_thumb1.png\" alt=\"title\" width=\"569\" height=\"320\" border=\"0\" \/><\/a><\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-13.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"application-1\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-1_thumb3.png\" alt=\"application-1\" width=\"569\" height=\"320\" border=\"0\" \/><\/a><\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-21.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"application-2\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-2_thumb1.png\" alt=\"application-2\" width=\"569\" height=\"320\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>Read<\/h3>\n<p>Some further reading, stuff which has been used here:<\/p>\n<p><a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/apps\/br211386(v=vs.85).aspx\">Getting started with Windows Metro style app development<\/a><\/p>\n<p><a href=\"http:\/\/blogs.msdn.com\/b\/ericlippert\/archive\/2010\/10\/28\/asynchrony-in-c-5-part-one.aspx\">Asynchrony in C# 5, Part One<\/a><\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/sharedove-architecture-project\/\">ShareDove &#8211; SharePoint Architecture Project<\/a><\/p>\n<div class=\"fb-background-color\">\n\t\t\t  <div \n\t\t\t  \tclass = \"fb-comments\" \n\t\t\t  \tdata-href = \"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/\"\n\t\t\t  \tdata-numposts = \"59\"\n\t\t\t  \tdata-lazy = \"true\"\n\t\t\t\tdata-colorscheme = \"light\"\n\t\t\t\tdata-order-by = \"time\"\n\t\t\t\tdata-mobile=true>\n\t\t\t  <\/div><\/div>\n\t\t  <style>\n\t\t    .fb-background-color {\n\t\t\t\tbackground:  !important;\n\t\t\t}\n\t\t\t.fb_iframe_widget_fluid_desktop iframe {\n\t\t\t    width: 100% !important;\n\t\t\t}\n\t\t  <\/style>\n\t\t  ","protected":false},"excerpt":{"rendered":"<p>I had a lot of questions in the last few days about the final demo on my Microsoft Sinergija session \u2013 the demo where the SharePoint list data have been displayed in a Windows 8 Metro Style client. Most of those questions were about people asking me to post the code for that client. But [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[10,11],"tags":[20,40,55,67,70],"class_list":["post-631","post","type-post","status-publish","format-standard","hentry","category-architecture","category-development","tag-architecture","tag-metro","tag-sharepoint","tag-wcf","tag-windows8"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Developing Windows 8 (Metro Style) Applications for SharePoint - Adis Jugo blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Developing Windows 8 (Metro Style) Applications for SharePoint - Adis Jugo blog\" \/>\n<meta property=\"og:description\" content=\"I had a lot of questions in the last few days about the final demo on my Microsoft Sinergija session \u2013 the demo where the SharePoint list data have been displayed in a Windows 8 Metro Style client. Most of those questions were about people asking me to post the code for that client. But [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/\" \/>\n<meta property=\"og:site_name\" content=\"Adis Jugo blog\" \/>\n<meta property=\"article:published_time\" content=\"2011-11-01T23:03:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-1_thumb2.png\" \/>\n<meta name=\"author\" content=\"adis.jugo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"adis.jugo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/\",\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/\",\"name\":\"Developing Windows 8 (Metro Style) Applications for SharePoint - Adis Jugo blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-1_thumb2.png\",\"datePublished\":\"2011-11-01T23:03:08+00:00\",\"author\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/#primaryimage\",\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-1_thumb2.png\",\"contentUrl\":\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-1_thumb2.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.sharedove.com\/adisjugo\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Developing Windows 8 (Metro Style) Applications for SharePoint\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#website\",\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/\",\"name\":\"Adis Jugo blog\",\"description\":\"The Southern Side\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.sharedove.com\/adisjugo\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c\",\"name\":\"adis.jugo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g\",\"caption\":\"adis.jugo\"},\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/author\/adisjugo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Developing Windows 8 (Metro Style) Applications for SharePoint - Adis Jugo blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/","og_locale":"en_US","og_type":"article","og_title":"Developing Windows 8 (Metro Style) Applications for SharePoint - Adis Jugo blog","og_description":"I had a lot of questions in the last few days about the final demo on my Microsoft Sinergija session \u2013 the demo where the SharePoint list data have been displayed in a Windows 8 Metro Style client. Most of those questions were about people asking me to post the code for that client. But [&hellip;]","og_url":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/","og_site_name":"Adis Jugo blog","article_published_time":"2011-11-01T23:03:08+00:00","og_image":[{"url":"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-1_thumb2.png","type":"","width":"","height":""}],"author":"adis.jugo","twitter_card":"summary_large_image","twitter_misc":{"Written by":"adis.jugo","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/","url":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/","name":"Developing Windows 8 (Metro Style) Applications for SharePoint - Adis Jugo blog","isPartOf":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/#primaryimage"},"image":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-1_thumb2.png","datePublished":"2011-11-01T23:03:08+00:00","author":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c"},"breadcrumb":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/#primaryimage","url":"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-1_thumb2.png","contentUrl":"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/11\/application-1_thumb2.png"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/11\/02\/developing-windows-8-metro-style-applications-for-sharepoint\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.sharedove.com\/adisjugo\/"},{"@type":"ListItem","position":2,"name":"Developing Windows 8 (Metro Style) Applications for SharePoint"}]},{"@type":"WebSite","@id":"https:\/\/blog.sharedove.com\/adisjugo\/#website","url":"https:\/\/blog.sharedove.com\/adisjugo\/","name":"Adis Jugo blog","description":"The Southern Side","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.sharedove.com\/adisjugo\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c","name":"adis.jugo","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g","caption":"adis.jugo"},"url":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/author\/adisjugo\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/posts\/631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/comments?post=631"}],"version-history":[{"count":0,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/posts\/631\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/media?parent=631"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/categories?post=631"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/tags?post=631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}