<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>.NET Musings</title>
    <description>Wandering thoughts of a C# developer, architect, speaker, and trainer</description>
    <link>http://www.skimedic.com/blog/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.6.1.0</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.skimedic.com/blog/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Phil Japikse (blog@skimedic.com)</dc:creator>
    <dc:title>.NET Musings</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/skimedic" /><feedburner:info uri="skimedic" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:emailServiceId>skimedic</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
      <title>Special Savings for VSLive Chicago</title>
      <description>&lt;p&gt;I’ll be speaking at Visual Studio Live!, May 13-16 in Chicago,IL &lt;a href="http://bit.ly/CHSPK16"&gt;http://bit.ly/CHSPK16&lt;/a&gt; Surrounded by your fellow developers, Visual Studio Live! provides you with immediately usable education that will keep you relevant in the workforce.&lt;/p&gt;  &lt;p&gt;I’ll be presenting the following sessions/workshops:&lt;/p&gt;  &lt;p&gt;· A Primer in Windows 8 Development with WinJS&lt;/p&gt;  &lt;p&gt;· Controlling ASP.NET MVC4&lt;/p&gt;  &lt;p&gt;SPECIAL OFFER: As a speaker, I can extend $400 savings on the 4-day package. Register here&lt;a href="http://bit.ly/CHSPK16"&gt;http://bit.ly/CHSPK16&lt;/a&gt; and use code &lt;b&gt;CHSPK16&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;Learn how you can code like a rockstar at Visual Studio Live! Chicago — bring the issues that keep you up at night and prepare to leave this event with the answers, guidance and training you need.&amp;#160; Register now: &lt;a href="http://bit.ly/CHSPK16"&gt;http://bit.ly/CHSPK16&lt;/a&gt;&lt;/p&gt;  &lt;div id="author" class="vcard"&gt;   &lt;h3&gt;About the author&lt;/h3&gt;    &lt;h4 class="fn"&gt;Philip Japikse&lt;/h4&gt;    &lt;table&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;&lt;img title="Japikse" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Philip Japikse" src="http://www.skimedic.com/images/self/Japikse2012_93x112.jpg" width="93" height="112" /&gt;&lt;/td&gt;          &lt;td&gt;Philip Japikse is an international speaker, a Microsoft MVP, INETA Community Champion, MCSD, CSM/ CSP, and a passionate member of the developer community, Phil has been working with .Net since the first betas, developing software for over 20 years, and heavily involved in the agile community since 2005. Phil works as a Senior Developer Evangelist for &lt;a href="http://www.telerik.com" target="_blank"&gt;Telerik&lt;/a&gt;'s &lt;a href="http://bit.ly/PqkA51" target="_blank"&gt;RadControls for Windows 8&lt;/a&gt; as well as the Just family of products (&lt;a href="http://bit.ly/TT8FCS" target="_blank"&gt;JustCode&lt;/a&gt;, &lt;a href="http://bit.ly/O3NsFp" target="_blank"&gt;JustMock&lt;/a&gt;, &lt;a href="http://bit.ly/TT920f" target="_blank"&gt;JustTrace&lt;/a&gt;, and &lt;a href="http://bit.ly/Sl3CVZ" target="_blank"&gt;JustDecompile&lt;/a&gt;) and co-hosts the Hallway Conversations podcast (www.hallwayconversations.com). Phil is also the Lead Director for the Cincinnati .Net User’s Group (&lt;a href="http://bit.ly/RPKrIX"&gt;http://www.cinnug.org&lt;/a&gt;). You can follow Phil on twitter via &lt;a href="http://www.twitter.com/skimedic"&gt;www.twitter.com/skimedic&lt;/a&gt; read his Telerik blog at &lt;a href="http://blogs.telerik.com/skimedic"&gt;http://blogs.telerik.com/skimedic&lt;/a&gt; and his personal blog at &lt;a href="http://www.skimedic.com/blog"&gt;www.skimedic.com/blog&lt;/a&gt;.&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;div&gt;&lt;/div&gt;  &lt;p&gt;&lt;iframe title="Twitter Follow Button" class="twitter-follow-button" style="height: 20px; width: 235px" src="https://platform.twitter.com/widgets/follow_button.1355514129.html#_=1356622109692&amp;amp;id=twitter-widget-1&amp;amp;lang=en&amp;amp;screen_name=skimedic&amp;amp;show_count=true&amp;amp;show_screen_name=true&amp;amp;size=m" frameborder="0" allowtransparency="allowtransparency" scrolling="no" data-twttr-rendered="true"&gt;&lt;/iframe&gt;&lt;script&gt;!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");&lt;/script&gt;&lt;a class="twitter-share-button" href="https://twitter.com/share" data-via="skimedic" data-text="Blogged: VSLIve Deep Discounts Available" data-url="http://skimedic.com/blog/post/2013/04/08/Special-Savings-for-VSLive-Chicago.aspx"&gt;Tweet&lt;/a&gt; &lt;script&gt;!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");&lt;/script&gt;&lt;!-- Place this tag where you want the +1 button to render. --&gt;&lt;/p&gt;  &lt;div class="g-plusone" data-href="http://skimedic.com/blog/post/2013/04/08/Special-Savings-for-VSLive-Chicago.aspx"&gt;&lt;/div&gt; &lt;!-- Place this tag after the last +1 button tag. --&gt;&lt;script type="text/javascript"&gt;
  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
&lt;/script&gt;&lt;img src="http://feeds.feedburner.com/~r/skimedic/~4/PHdoDf2N84k" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/skimedic/~3/PHdoDf2N84k/post.aspx</link>
      <author>PhilJapikse</author>
      <comments>http://www.skimedic.com/blog/post/2013/04/08/Special-Savings-for-VSLive-Chicago.aspx#comment</comments>
      <guid isPermaLink="false">http://www.skimedic.com/blog/post.aspx?id=5802fd98-47f6-44ec-b5f8-537a0f2ec5ea</guid>
      <pubDate>Mon, 08 Apr 2013 03:58:05 -0900</pubDate>
      <category>speaking</category>
      <category>VSLive</category>
      <category>Visual Studio</category>
      <category>Windows 8</category>
      <category>WinJS</category>
      <category>ASP.NET MVC</category>
      <dc:publisher>PhilJapikse</dc:publisher>
      <pingback:server>http://www.skimedic.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.skimedic.com/blog/post.aspx?id=5802fd98-47f6-44ec-b5f8-537a0f2ec5ea</pingback:target>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://www.skimedic.com/blog/trackback.axd?id=5802fd98-47f6-44ec-b5f8-537a0f2ec5ea</trackback:ping>
      <wfw:comment>http://www.skimedic.com/blog/post/2013/04/08/Special-Savings-for-VSLive-Chicago.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.skimedic.com/blog/syndication.axd?post=5802fd98-47f6-44ec-b5f8-537a0f2ec5ea</wfw:commentRss>
    <feedburner:origLink>http://www.skimedic.com/blog/post.aspx?id=5802fd98-47f6-44ec-b5f8-537a0f2ec5ea</feedburner:origLink></item>
    <item>
      <title>MVVM in WinJS Part 3 – Binding Initializers and Two Way Binding</title>
      <description>&lt;h3&gt;A Quick Status Check&lt;/h3&gt;  &lt;p&gt;I started this blog series on developing Windows 8 Store Applications with JavaScript to document my process of learning WinJS and Windows 8 as well as the functionality that would be needed for &lt;a href="http://blogs.telerik.com/jesseliberty/posts/12-11-14/creating-a-windows-8-application-from-scratch.aspx" target="_blank"&gt;Conference Buddy&lt;/a&gt; – an application that I am writing for Windows 8 with my good friend &lt;a href="http://www.telerik.com/community/evangelists/jesse-liberty.aspx" target="_blank"&gt;Jesse Liberty&lt;/a&gt;. (Note: &lt;a href="http://www.telerik.com/community/evangelists/michael-crump.aspx" target="_blank"&gt;Michael Crump&lt;/a&gt; is writing a version for Windows Phone – you should check that out as well).&lt;/p&gt;  &lt;p&gt;I haven’t spent much time writing specifically about Conference Buddy to date since the posts that I have written so far have been much broader and foundational for developing WinJS applications.&amp;#160; In time, I will outline how I used each one of these concepts to create Conference Buddy from start to finish.&lt;/p&gt;  &lt;p&gt;Here are the posts that are already published in this series:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Creating &lt;a href="http://www.telerik.com/justcode" target="_blank"&gt;JustCode&lt;/a&gt; Templates to speed WinJS development – &lt;a title="http://skimedic.com/blog/post/2012/11/25/JustCode-JavaScript-Templates-for-WinJS.aspx" href="http://skimedic.com/blog/post/2012/11/25/JustCode-JavaScript-Templates-for-WinJS.aspx" target="_blank"&gt;JustCode Templates For WinJS&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Getting started with Model View ViewModel (MVVM) in WinJS with &lt;a title="http://skimedic.com/blog/post/2012/11/27/MVVM-in-WinJS-Part-1-Observable-Models.aspx" href="http://skimedic.com/blog/post/2012/11/27/MVVM-in-WinJS-Part-1-Observable-Models.aspx" target="_blank"&gt;Observable Models&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Discussing how ideas become manifest by &lt;a title="http://skimedic.com/blog/post/2012/12/04/The-Importance-of-Wireframes-in-Application-Design.aspx" href="http://skimedic.com/blog/post/2012/12/04/The-Importance-of-Wireframes-in-Application-Design.aspx" target="_blank"&gt;Using Wireframes in application design&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Expanding the MVVM Story with &lt;a title="http://skimedic.com/blog/post/2012/12/20/MVVM-in-WinJS-Part-2-e28093-Observable-Collections.aspx" href="http://skimedic.com/blog/post/2012/12/20/MVVM-in-WinJS-Part-2-e28093-Observable-Collections.aspx" target="_blank"&gt;Observable Collections&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Removing Chrome but not the functionality through &lt;a title="http://skimedic.com/blog/post/2012/12/27/Windows-8-AppBars-in-WinJS.aspx" href="http://skimedic.com/blog/post/2012/12/27/Windows-8-AppBars-in-WinJS.aspx" target="_blank"&gt;AppBars in WinJS&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Interacting with the user through &lt;a title="http://skimedic.com/blog/post/2012/12/31/Adding-and-Editing-Records-with-AppBar-Flyouts.aspx" href="http://skimedic.com/blog/post/2012/12/31/Adding-and-Editing-Records-with-AppBar-Flyouts.aspx" target="_blank"&gt;AppBar Flyouts&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Taking advantage of some &lt;a title="http://skimedic.com/blog/post/2013/01/31/Leveraging-Browser-Quirks-in-WinJS.aspx" href="http://skimedic.com/blog/post/2013/01/31/Leveraging-Browser-Quirks-in-WinJS.aspx" target="_blank"&gt;browser quirks&lt;/a&gt; when developing Windows Store Applications with WinJS &lt;/li&gt;    &lt;li&gt;&lt;a title="http://skimedic.com/blog/post/2013/02/03/Implementing-the-Layout-Guidelines-in-WinJS.aspx" href="http://skimedic.com/blog/post/2013/02/03/Implementing-the-Layout-Guidelines-in-WinJS.aspx" target="_blank"&gt;Following the User Interface Guidelines&lt;/a&gt; for Windows Store Applications &lt;/li&gt;    &lt;li&gt;Reusing the layout settings with a &lt;a title="http://skimedic.com/blog/post/2013/02/05/Creating-a-WinJS-Project-Template.aspx" href="http://skimedic.com/blog/post/2013/02/05/Creating-a-WinJS-Project-Template.aspx" target="_blank"&gt;Custom Project Template&lt;/a&gt; for Visual Studio 2012 &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Background&lt;/h3&gt;  &lt;p&gt;A lot had been said about the Windows 8 data binding mechanism and its lack of support for two way binding.&amp;#160; While that is inherently true, it isn’t the whole story. You can certainly use other JavaScript frameworks (like Knockout), but if you want to stick to the “out of the box” tooling, you must listen to an element’s change event and then update the source object.&amp;#160; Of course, support for two way binding out of the box would be better, and the Windows team is &lt;em&gt;very&lt;/em&gt; aware of that.&amp;#160; &lt;/p&gt;  &lt;p&gt;As I am sure you are well aware, data binding is done with the data-win-bind attribute and the “property-to-bind:value-from-data-context” syntax.&amp;#160; This provides model to view binding. The data-win-bind attribute also supports another parameter, and that is a &lt;em&gt;binding initializer&lt;/em&gt;.&amp;#160; Through the binding initializer, you can incorporate view to model binding in a very MVVM way.&amp;#160; To use a binding initializer in markup, set the data-win-bind as in the following code snippet:&lt;/p&gt;  &lt;pre style="overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; border-bottom: #cecece 1px solid; padding-bottom: 5px; padding-top: 5px; padding-left: 5px; min-height: 40px; border-left: #cecece 1px solid; padding-right: 5px; width: 550px; background-color: #fbfbfb"&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;data-win-bind=”property-to-bind:value-from-data-context bindingInitializer”&lt;/pre&gt;&lt;/pre&gt;

&lt;h3&gt;Creating a Binding Initializer&lt;/h3&gt;

&lt;p&gt;To create a binding initializer by hand, start by wrapping a function in a call to WinJS.Binding.initializer (as in Listing 1).&amp;#160; WinJS.Binding.initializer adds a call to WinJS.Utilities.markSupportedForProcessing, which allows using the function declaratively in markup (as the third parameter in the binding expression as explained above).&amp;#160; &lt;/p&gt;

&lt;pre style="overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; border-bottom: #cecece 1px solid; padding-bottom: 5px; padding-top: 5px; padding-left: 5px; min-height: 40px; border-left: #cecece 1px solid; padding-right: 5px; width: 550px; background-color: #fbfbfb"&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;WinJS.Namespace.define(&amp;quot;&lt;span style="color: #8b0000"&gt;ConferenceBuddy.Binding&lt;/span&gt;&amp;quot;, {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    twoWay: WinJS.Binding.initializer(&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; (
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;              source, sourceProps, dest, destProps) {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    })
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;});
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;&lt;/pre&gt;&lt;/pre&gt;
Listing 1 – Creating a Binding Initializer 

&lt;br /&gt;

&lt;p&gt;The binding initializer in a binding expression is passed in the source object, an array of the source properties, the destination object, and an array of the destination properties.&amp;#160; The source is the model object that is being bound to (the data context), the property string array contain properties listed in the the “value-from-data-context”, the destination is the element in markup (either an HTML element or a WinJS control), and the destination property array are the properties of the markup element/WinJS controls that is being modified. &lt;/p&gt;

&lt;p&gt;It The Binding Initializer only gets called once (when the binding is getting set up after a call to WinJS.Binding.processAll), so it’s important to return a binding or create an event handler that will then respond to changes in the data values.&amp;#160; &lt;/p&gt;

&lt;h3&gt;Attaching an Event Listener&lt;/h3&gt;

&lt;p&gt;To update the source object (your model), you need to listen for the change event on your view element.&amp;#160; When the change is fired, compare the value of the element with the value of the model, and if they are different, update the model.&amp;#160; The comparison is important, because you don’t want to cause a recursion issue.&amp;#160; The code is shown in Listing 2.&amp;#160; I will detail each of the functions used later in this post. &lt;/p&gt;

&lt;pre style="overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; border-bottom: #cecece 1px solid; padding-bottom: 5px; padding-top: 5px; padding-left: 5px; min-height: 40px; border-left: #cecece 1px solid; padding-right: 5px; width: 550px; background-color: #fbfbfb"&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;WinJS.Namespace.define(&amp;quot;&lt;span style="color: #8b0000"&gt;ConferenceBuddy.Binding&lt;/span&gt;&amp;quot;, {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;  twoway: WinJS.Binding.initializer(&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; (
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;                 source, sourceProps, dest, destProps) {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    dest.onchange = &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; () {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; newValue = ConferenceBuddy.Binding.Helpers.&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;                         dest, destProps);
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; targetObject = ConferenceBuddy.Binding.Helpers&lt;br /&gt;            .getSourceObject(source, sourceProps);&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; oldValue = targetObject[sourceProps[sourceProps.&lt;span style="color: #0000ff"&gt;length&lt;/span&gt; - 1]];
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (oldValue !== newValue) {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;            targetObject[sourceProps[sourceProps.&lt;span style="color: #0000ff"&gt;length&lt;/span&gt; - 1]] = newValue;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;        }
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    };
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;  })
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;});
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Listing 2 – Attaching an Event Listener in a Binding Initializer&lt;/p&gt;

&lt;h3&gt;Getting the New Value&lt;/h3&gt;

&lt;p&gt;The last two parameters contain the view element and the properties.&amp;#160; If you are doing simple binding like “value:age”, then getting the value is as simple as writing dest[destProps[0]].&amp;#160; However, real life is rarely that simple.&amp;#160; If you are binding to a JavaScript control, then the construct will fail, because the value is a property of the winControl and not the element.&amp;#160; So you would then need to write dest.winControl[destProps[1]].&amp;#160; If you are binding to a path, such as “style.color:age”, then the first value in the array with be “style”, and you won’t get the desired effect either.&lt;/p&gt;

&lt;p&gt;So there’s two cases that we need to program for:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The simple case where the destProps array only hold one vale &lt;/li&gt;

  &lt;li&gt;Any other case where there are more than 1 properties. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Listing three shows the implementation of the getDistinationValue function.&lt;/p&gt;

&lt;pre style="overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; border-bottom: #cecece 1px solid; padding-bottom: 5px; padding-top: 5px; padding-left: 5px; min-height: 40px; border-left: #cecece 1px solid; padding-right: 5px; width: 550px; background-color: #fbfbfb"&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;WinJS.Namespace.define(&amp;quot;&lt;span style="color: #8b0000"&gt;Binding.Helpers&lt;/span&gt;&amp;quot;, {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    getDestinationValue: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; (dest, destProps) {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (destProps.&lt;span style="color: #0000ff"&gt;length&lt;/span&gt; === 1) {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;                &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; dest[destProps[0]];
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;        }
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;        &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;            &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; element = &lt;span style="color: #0000ff"&gt;eval&lt;/span&gt;(&amp;quot;&lt;span style="color: #8b0000"&gt;dest['&lt;/span&gt;&amp;quot; + 
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;                  destProps.slice(0, destProps.&lt;span style="color: #0000ff"&gt;length&lt;/span&gt; - 1).join(&amp;quot;&lt;span style="color: #8b0000"&gt;']['&lt;/span&gt;&amp;quot;) + 
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;                  &amp;quot;&lt;span style="color: #8b0000"&gt;']&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;            &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; element[destProps[destProps.&lt;span style="color: #0000ff"&gt;length&lt;/span&gt;-1]];
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;        }
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    },
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;});
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;&lt;/pre&gt;&lt;/pre&gt;
Listing 3 – Getting the value from the view 

&lt;h4&gt;Slice, Join, and Eval&lt;/h4&gt;

&lt;p&gt;The actual property that needs to be read is always the last leaf in the array.&amp;#160; The construct that will get us the element is dest[destProps[0]][destProps[1]][destProps[n-1]].&amp;#160; Instead of iterating through the array, we use a JavaScript tricks to get a reference to the element.&amp;#160; The “join” function will join an array of strings into a single string with the option to specify the connector for the strings.&amp;#160; In this case, we want to build the string to look like “[‘property1’][‘property2’]…[‘property(n-1)’].&amp;#160; And since we want the element, and not the property itself, we only want to build the string using all &lt;em&gt;but&lt;/em&gt; the last element of the array.&amp;#160; We get the desired items from the array by using the slice method on the array starting with zero (the first item) and then getting all but the last one by passing in one less than the length of the array.&amp;#160; The slice method returns a new array, so we can directly call join after slice, and get the desired string.&amp;#160; Then a call to &lt;em&gt;eval&lt;/em&gt; processes the string into the element.&amp;#160; The final line returns the value of the property that we are seeking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: If you are using the Telerik RadControls for WinJS, this becomes much easier, as the WinJS team at Telerik has created two utility functions, Telerik.Utilities.getPropertyValue(dest, destProps) and Telerik.Utilities.setPropertyValue(dest, destProps, value)&lt;/p&gt;

&lt;h3&gt;Getting and Updating the Old Value From the Model&lt;/h3&gt;

&lt;p&gt;Retrieving the old value follows the same process of using the slice, join, and eval functions to get the model object.&amp;#160; Since the event handler potentially needs to update the value, the function returns the object and not just the value. Once we have the object, we can get or set the value of the property by using the element[sourceProps[sourceProps.length-1]] syntax.&lt;/p&gt;

&lt;pre style="overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; border-bottom: #cecece 1px solid; padding-bottom: 5px; padding-top: 5px; padding-left: 5px; min-height: 40px; border-left: #cecece 1px solid; padding-right: 5px; width: 550px; background-color: #fbfbfb"&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;getSourceObject: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; (source, sourceProps) {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (sourceProps.&lt;span style="color: #0000ff"&gt;length&lt;/span&gt; === 1) {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; source;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    }
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;eval&lt;/span&gt;(&amp;quot;&lt;span style="color: #8b0000"&gt;source['&lt;/span&gt;&amp;quot; + sourceProps
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;            .slice(0, sourceProps.&lt;span style="color: #0000ff"&gt;length&lt;/span&gt; - 1)
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;            .join(&amp;quot;&lt;span style="color: #8b0000"&gt;']['&lt;/span&gt;&amp;quot;) + &amp;quot;&lt;span style="color: #8b0000"&gt;']&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    }
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;},
&lt;/pre&gt;&lt;/pre&gt;
Listing 4 – Getting Source Object

&lt;br /&gt;

&lt;h3&gt;The Result&lt;/h3&gt;

&lt;p&gt;To test the two way binding, I set up a screen with a record displayed on the left and the same record on the right with text boxes for the names and a range control bound to the age property.&amp;#160; Changing the value of the range control causes the values for the age in the label and the textbox to be immediately updated.&amp;#160; Likewise, changing the value in the text box updates the value of the range control and the label.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://skimedic.com/blog/image.axd?picture=image_33.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://skimedic.com/blog/image.axd?picture=image_thumb_32.png" width="644" height="167" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;Although it might seem like a lot of extra work, it really just takes longer to explain than code.&amp;#160; Two way binding is very achievable in WinJS through just a few lines of code.&amp;#160;&amp;#160; I’ve added this to my JustCode JavaScript templates so I always have it at my finger tips.&amp;#160; Yes, out of the box support for two way binding would be much better, and yes, you can pull in any framework you want to handle binding for you.&amp;#160; But you can also do with the tooling provided out of the box by taking advantage of the Binding Initializers.&lt;/p&gt;

&lt;div id="author" class="vcard"&gt;
  &lt;h3&gt;About the author&lt;/h3&gt;

  &lt;h4 class="fn"&gt;Philip Japikse&lt;/h4&gt;

  &lt;table&gt;&lt;tbody&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;img title="Japikse" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Philip Japikse" src="http://www.skimedic.com/images/self/Japikse2012_93x112.jpg" width="93" height="112" /&gt;&lt;/td&gt;

        &lt;td&gt;Philip Japikse is an international speaker, a Microsoft MVP, INETA Community Champion, MCSD, CSM/ CSP, and a passionate member of the developer community, Phil has been working with .Net since the first betas, developing software for over 20 years, and heavily involved in the agile community since 2005. Phil works as a Developer Evangelist for &lt;a href="http://www.telerik.com" target="_blank"&gt;Telerik&lt;/a&gt;'s &lt;a href="http://bit.ly/PqkA51" target="_blank"&gt;RadControls for Windows 8&lt;/a&gt; as well as the Just family of products (&lt;a href="http://bit.ly/TT8FCS" target="_blank"&gt;JustCode&lt;/a&gt;, &lt;a href="http://bit.ly/O3NsFp" target="_blank"&gt;JustMock&lt;/a&gt;, &lt;a href="http://bit.ly/TT920f" target="_blank"&gt;JustTrace&lt;/a&gt;, and &lt;a href="http://bit.ly/Sl3CVZ" target="_blank"&gt;JustDecompile&lt;/a&gt;) and co-hosts the Hallway Conversations podcast (www.hallwayconversations.com). Phil is also the Lead Director for the Cincinnati .Net User’s Group (&lt;a href="http://bit.ly/RPKrIX"&gt;http://www.cinnug.org&lt;/a&gt;). You can follow Phil on twitter via &lt;a href="http://www.twitter.com/skimedic"&gt;www.twitter.com/skimedic&lt;/a&gt; read his Telerik blog at &lt;a href="http://blogs.telerik.com/skimedic"&gt;http://blogs.telerik.com/skimedic&lt;/a&gt; and his personal blog at &lt;a href="http://www.skimedic.com/blog"&gt;www.skimedic.com/blog&lt;/a&gt;.&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;div&gt;&lt;/div&gt;

&lt;p&gt;&lt;iframe title="Twitter Follow Button" class="twitter-follow-button" style="height: 20px; width: 235px" src="https://platform.twitter.com/widgets/follow_button.1355514129.html#_=1356622109692&amp;amp;id=twitter-widget-1&amp;amp;lang=en&amp;amp;screen_name=skimedic&amp;amp;show_count=true&amp;amp;show_screen_name=true&amp;amp;size=m" frameborder="0" allowtransparency="allowtransparency" scrolling="no" data-twttr-rendered="true"&gt;&lt;/iframe&gt;&lt;script&gt;!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");&lt;/script&gt;&lt;a class="twitter-share-button" href="https://twitter.com/share" data-via="skimedic" data-text="Blogged: MVVM in WinJS - Two Way Binding" data-url="http://skimedic.com/blog/post/2013/02/22/MVVM-in-WinJS-Part-3-e28093-Binding-Initializers-and-Two-Way-Binding.aspx"&gt;Tweet&lt;/a&gt; &lt;script&gt;!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");&lt;/script&gt;&lt;!-- Place this tag where you want the +1 button to render. --&gt;&lt;/p&gt;

&lt;div class="g-plusone" data-href="http://skimedic.com/blog/post/2013/02/22/MVVM-in-WinJS-Part-3-e28093-Binding-Initializers-and-Two-Way-Binding.aspx"&gt;&lt;/div&gt;
&lt;!-- Place this tag after the last +1 button tag. --&gt;&lt;script type="text/javascript"&gt;
  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
&lt;/script&gt;&lt;img src="http://feeds.feedburner.com/~r/skimedic/~4/Unl0qNhkpD8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/skimedic/~3/Unl0qNhkpD8/post.aspx</link>
      <author>PhilJapikse</author>
      <comments>http://www.skimedic.com/blog/post/2013/02/22/MVVM-in-WinJS-Part-3-e28093-Binding-Initializers-and-Two-Way-Binding.aspx#comment</comments>
      <guid isPermaLink="false">http://www.skimedic.com/blog/post.aspx?id=369d6fa2-4375-4663-bdb0-7053ad37200a</guid>
      <pubDate>Fri, 22 Feb 2013 18:40:56 -0900</pubDate>
      <category>JavaScript</category>
      <category>WinJS</category>
      <category>Windows 8</category>
      <dc:publisher>PhilJapikse</dc:publisher>
      <pingback:server>http://www.skimedic.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.skimedic.com/blog/post.aspx?id=369d6fa2-4375-4663-bdb0-7053ad37200a</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.skimedic.com/blog/trackback.axd?id=369d6fa2-4375-4663-bdb0-7053ad37200a</trackback:ping>
      <wfw:comment>http://www.skimedic.com/blog/post/2013/02/22/MVVM-in-WinJS-Part-3-e28093-Binding-Initializers-and-Two-Way-Binding.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.skimedic.com/blog/syndication.axd?post=369d6fa2-4375-4663-bdb0-7053ad37200a</wfw:commentRss>
    <feedburner:origLink>http://www.skimedic.com/blog/post.aspx?id=369d6fa2-4375-4663-bdb0-7053ad37200a</feedburner:origLink></item>
    <item>
      <title>Creating a WinJS Project Template</title>
      <description>&lt;p&gt;In my &lt;a href="http://www.skimedic.com/blog/post/2013/02/03/Implementing-the-Layout-Guidelines-in-WinJS.aspx" target="_blank"&gt;last post&lt;/a&gt;, I showed how to implement the User Interface Guidelines for JavaScript based Windows Store Applications.&amp;nbsp; To make developing applications easier, I&amp;rsquo;ve created a Visual Studio Project Template that contains the HTML and CSS I described in that post.&amp;nbsp; If you are impatient, and just want the file, you can download it &lt;a href="http://www.skimedic.com/samples/blankapplicationwithlayout.zip" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Creating the Template from a Project&lt;/h3&gt;
&lt;p&gt;The first step is to create your project in Visual Studio.&amp;nbsp; If you would like to use the project that I built in my last post, you can download it &lt;a href="http://blogs.telerik.com/docs/default-source/skimedic/simplelayout.zip?sfvrsn=2" target="_blank"&gt;here&lt;/a&gt;. Once you have created your project, select &amp;ldquo;Export Template&amp;hellip;&amp;rdquo; from the File menu (shown in Figure 1).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://skimedic.com/blog/image.axd?picture=image_28.png"&gt;&lt;img style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" title="image" src="http://skimedic.com/blog/image.axd?picture=image_thumb_27.png" border="0" alt="image" width="424" height="484" /&gt;&lt;/a&gt; &lt;br /&gt;Figure 1 &amp;ndash; Exporting a template (File menu)&lt;/p&gt;
&lt;p&gt;The Export Template wizard consists of two screens.&amp;nbsp; The first lets you choose between a Project Template or an Item Template, and select the solution item that will be the basis for the template.&amp;nbsp; Select &amp;ldquo;Project template&amp;rdquo; and the &amp;ldquo;SimpleLayout&amp;rdquo; project (if you are using my sample, otherwise select the project that you want to use at the project template).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://skimedic.com/blog/image.axd?picture=image_29.png"&gt;&lt;img style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" title="image" src="http://skimedic.com/blog/image.axd?picture=image_thumb_28.png" border="0" alt="image" width="572" height="484" /&gt;&lt;/a&gt; &lt;br /&gt;Figure 2 &amp;ndash; Export Template item selection screen&lt;/p&gt;
&lt;p&gt;The second screen allows you to set the template options.&amp;nbsp; In addition to the Template Name, make sure the &amp;ldquo;Automatically import the template into Visual Studio&amp;rdquo; is &lt;strong&gt;not&lt;/strong&gt; checked.&amp;nbsp; We will bring the template into Visual Studio later in this post. Figure 3 shows how I filled out the wizard for this example.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://skimedic.com/blog/image.axd?picture=image_30.png"&gt;&lt;img style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" title="image" src="http://skimedic.com/blog/image.axd?picture=image_thumb_29.png" border="0" alt="image" width="572" height="484" /&gt;&lt;/a&gt; &lt;br /&gt;Figure 3 &amp;ndash; Template Options&lt;/p&gt;
&lt;p&gt;Once you have filled out the screens and click &amp;ldquo;Finish&amp;rdquo;, Visual Studio will create a .zip file in the directly shown in the Output location on the screen.&amp;nbsp; By default, this location is &amp;ldquo;My Documents\Visual Studio 2012\Exported Templates\[TemplateName].zip&amp;rdquo;&lt;/p&gt;
&lt;h3&gt;Modifying Template Files&lt;/h3&gt;
&lt;p&gt;The files added to the template .zip file must be modified using Visual Studio&amp;rsquo;s template parameters (for more information, see this &lt;a href="http://msdn.microsoft.com/en-us/library/eehb4faa(v=vs.80).aspx" target="_blank"&gt;MSDN article&lt;/a&gt;). To modify them, uncompress the .zip file into another directory.&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;The Application Manifest&lt;/h4&gt;
&lt;p&gt;The first file to update is &amp;ldquo;package.appmanifest&amp;rdquo;.&amp;nbsp; There are three changes that need to be made:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Name GUID and UserName in the &amp;lt;Identity&amp;gt; tag &lt;/li&gt;
&lt;li&gt;The DisplayName and PublisherDisplayName in the &amp;lt;Properties&amp;gt; tag &lt;/li&gt;
&lt;li&gt;The DisplayName and Description in the &amp;lt;VisualElements&amp;gt; tag &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The template values that will be used are as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$guid1$ &amp;ndash; A GUID to replace the project GUID &lt;/li&gt;
&lt;li&gt;$projectname$ &amp;ndash; The name provided by the user in the New Project dialog box &lt;/li&gt;
&lt;li&gt;$username$ &amp;ndash; The current user name &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; The templates are case sensitive.&lt;/p&gt;
&lt;pre style="overflow: auto; min-height: 40px; width: 530px; background-color: #fbfbfb; border: #cecece 1px solid; padding: 5px;"&gt;&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;xml version="1.0" encoding="utf-8"&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Package&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://schemas.microsoft.com/appx/2010/manifest"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Identity&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"&lt;span style="color: #008040;"&gt;$guid1$&lt;/span&gt;"&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #ff0000"&gt;Version&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"1.0.0.0"&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #ff0000"&gt;Publisher&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"CN=&lt;span style="color: #008040;"&gt;$username$&lt;/span&gt;"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Properties&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;DisplayName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #008040;"&gt;$projectname$&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;DisplayName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;PublisherDisplayName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #008040;"&gt;$username$&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;PublisherDisplayName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Logo&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;images\storelogo.png&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Logo&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Properties&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Prerequisites&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;OSMinVersion&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;6.2.1&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;OSMinVersion&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;OSMaxVersionTested&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;6.2.1&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;OSMaxVersionTested&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Prerequisites&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Resources&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Resource&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Language&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"x-generate"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Resources&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Applications&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Application&lt;/span&gt; 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;      &lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"App"&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;      &lt;span style="color: #ff0000"&gt;StartPage&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"default.html"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;VisualElements&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #ff0000"&gt;DisplayName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"&lt;span style="color: #008040;"&gt;$projectname$&lt;/span&gt;"&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;        &lt;span style="color: #ff0000"&gt;Logo&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"images\logo.png"&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #ff0000"&gt;SmallLogo&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"images\smalllogo.png"&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;        &lt;span style="color: #ff0000"&gt;Description&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"&lt;span style="color: #008040;"&gt;$projectname$&lt;/span&gt;"&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #ff0000"&gt;ForegroundText&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"light"&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;        &lt;span style="color: #ff0000"&gt;BackgroundColor&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"#464646"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;DefaultTile&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ShowName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"allLogos"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;SplashScreen&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Image&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"images\splashscreen.png"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;VisualElements&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Application&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Applications&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Capabilities&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Capability&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"internetClient"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Capabilities&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Package&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/pre&gt;
&lt;p&gt;Listing 1 &amp;ndash; package.appmanifest&lt;/p&gt;
&lt;h4&gt;The Project File&lt;/h4&gt;
&lt;p&gt;The project file has three very important changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The GUID in the &amp;lt;ProjectGuid&amp;gt; tag &lt;/li&gt;
&lt;li&gt;The name of the key file in the &amp;lt;PackageCertificateKeyFile&amp;gt; tag &lt;/li&gt;
&lt;li&gt;The name of the key file in the list of items in the &amp;lt;ItemGroup&amp;gt; tag &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For the ProjectGuid, use the same GUID template that you used in the application manifest file (you can specify 10 different GUIDS with the template).&amp;nbsp;&lt;/p&gt;
&lt;pre style="overflow: auto; min-height: 40px; width: 530px; background-color: #fbfbfb; border: #cecece 1px solid; padding: 5px;"&gt;&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;xml version="1.0" encoding="utf-8"&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Project&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ToolsVersion&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"4.0"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;DefaultTargets&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Build"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://schemas.microsoft.com/developer/msbuild/2003"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ItemGroup&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Label&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"ProjectConfigurations"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;&lt;span style="color: #008000"&gt;&amp;lt;!-- Project Configurations omitted for brevity --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ItemGroup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;PropertyGroup&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Label&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Globals"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectGuid&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #008040;"&gt;$guid1$&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectGuid&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;PropertyGroup&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Condition&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"'$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &amp;amp;lt; '11.0'"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;VisualStudioVersion&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;11.0&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;VisualStudioVersion&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Import&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Project&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Condition&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Import&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Project&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\$(WMSJSProjectDirectory)\Microsoft.VisualStudio.$(WMSJSProject).Default.props"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Import&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Project&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\$(WMSJSProjectDirectory)\Microsoft.VisualStudio.$(WMSJSProject).props"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;TargetPlatformIdentifier&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Windows&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;TargetPlatformIdentifier&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;TargetPlatformVersion&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;8.0&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;TargetPlatformVersion&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;DefaultLanguage&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;en-US&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;DefaultLanguage&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;PackageCertificateKeyFile&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #008040;"&gt;$projectname$&lt;/span&gt;_TemporaryKey.pfx&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;PackageCertificateKeyFile&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ItemGroup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;AppxManifest&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Include&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"package.appxmanifest"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;SubType&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Designer&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;SubType&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;AppxManifest&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Content&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Include&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"default.html"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Content&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Include&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"images\logo.png"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Content&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Include&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"images\smalllogo.png"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Content&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Include&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"images\splashscreen.png"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Content&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Include&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"images\storelogo.png"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Content&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Include&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"js\default.js"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Content&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Include&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"css\default.css"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;None&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Include&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"&lt;span style="color: #008040;"&gt;$projectname$&lt;/span&gt;_TemporaryKey.pfx"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ItemGroup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ItemGroup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;SDKReference&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Include&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Microsoft.WinJS.1.0, Version=1.0"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ItemGroup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Import&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Project&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\$(WMSJSProjectDirectory)\Microsoft.VisualStudio.$(WMSJSProject).targets"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #008000"&gt;&amp;lt;!-- Project Build options omitted for brevity --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Project&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/pre&gt;
&lt;p&gt;Listing 2 &amp;ndash; The .jsporj file&lt;/p&gt;
&lt;h4&gt;The Default HTML File&lt;/h4&gt;
&lt;p&gt;There are two optional minor changes that can be applied to the default.html file.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update the title to the Safe Project Name &lt;/li&gt;
&lt;li&gt;Update the HTML comment for the project references &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For both of these I use the $safeprojectname$ template, which is the user supplied project name with any invalid characters stripped out.&lt;/p&gt;
&lt;pre style="overflow: auto; min-height: 40px; width: 530px; background-color: #fbfbfb; border: #cecece 1px solid; padding: 5px;"&gt;&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;!DOCTYPE html&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;meta&lt;/span&gt; &lt;span style="color: #ff0000"&gt;charset&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"utf-8"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #008040;"&gt;$safeprojectname$&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #008000"&gt;&amp;lt;!-- WinJS references --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;link&lt;/span&gt; &lt;span style="color: #ff0000"&gt;href&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"//Microsoft.WinJS.1.0/css/ui-dark.css"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;rel&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"stylesheet"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"//Microsoft.WinJS.1.0/js/base.js"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"//Microsoft.WinJS.1.0/js/ui.js"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #008000"&gt;&amp;lt;!-- $safeprojectname$ references --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;link&lt;/span&gt; &lt;span style="color: #ff0000"&gt;href&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"/css/default.css"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;rel&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"stylesheet"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"/js/default.js"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"contentHost"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"appTitle"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;h1&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Header&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;h1&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"backButton"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;button&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"win-backbutton"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;button&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"appSubTitle"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;h2&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Subheader&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;h2&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"contentTarget"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"mainContent"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;h3&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Body Text&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;h3&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/pre&gt;
&lt;p&gt;Listing 3 &amp;ndash; The Default HTML File&lt;/p&gt;
&lt;h4&gt;The VSTemplate&lt;/h4&gt;
&lt;p&gt;The are several changes to the generated template file, all in the &amp;lt;TemplateContent&amp;gt; tag:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update the Project TargetFileName in the &amp;lt;Project&amp;gt; tag &lt;/li&gt;
&lt;li&gt;Update the ReplaceParameters attribute for the &amp;ldquo;package.appxmanifest&amp;rdquo; file in the &amp;lt;ProjectItem&amp;gt; tag &lt;/li&gt;
&lt;li&gt;Update the TargetFileName and ReplaceParameters attibutes for the key file in the &amp;lt;ProjectItem&amp;gt; tag &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The ReplaceParameters attribute instructs the New Project dialog to look into the referenced file and replace any project templates found with the correct values.&amp;nbsp; The TargetFileName attribute specifies how the referenced file will be named named.&lt;/p&gt;
&lt;pre style="overflow: auto; min-height: 40px; width: 530px; background-color: #fbfbfb; border: #cecece 1px solid; padding: 5px;"&gt;&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;VSTemplate&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Version&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"3.0.0"&lt;/span&gt; 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://schemas.microsoft.com/developer/vstemplate/2005"&lt;/span&gt; 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #ff0000"&gt;Type&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Project"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;TemplateData&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;BlankApplicationWithLayout&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Description&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Blank Application With MS Recommended Layout
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Description&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectType&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;JavaScript&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectType&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectSubType&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Windows Store&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectSubType&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;SortOrder&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;1000&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;SortOrder&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;CreateNewFolder&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;CreateNewFolder&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;DefaultName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;BlankAppWithLayout&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;DefaultName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ProvideDefaultName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ProvideDefaultName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;LocationField&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Enabled&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;LocationField&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;EnableLocationBrowseButton&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;EnableLocationBrowseButton&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Icon&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;__TemplateIcon.ico&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Icon&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;TemplateData&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;TemplateContent&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Project&lt;/span&gt; &lt;span style="color: #ff0000"&gt;TargetFileName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"&lt;span style="color: #008040;"&gt;$projectname$&lt;/span&gt;.jsproj"&lt;/span&gt; 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;         &lt;span style="color: #ff0000"&gt;File&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"SimpleLayout.jsproj"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ReplaceParameters&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"true"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Folder&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"css"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;TargetFolderName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"css"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ReplaceParameters&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"true"&lt;/span&gt; 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;            &lt;span style="color: #ff0000"&gt;TargetFileName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"default.css"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;default.css&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Folder&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Folder&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"images"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;TargetFolderName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"images"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ReplaceParameters&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"false"&lt;/span&gt; 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;            &lt;span style="color: #ff0000"&gt;TargetFileName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"logo.png"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;logo.png&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ReplaceParameters&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"false"&lt;/span&gt; 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;            &lt;span style="color: #ff0000"&gt;TargetFileName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"smalllogo.png"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;smalllogo.png&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ReplaceParameters&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"false"&lt;/span&gt; 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;            &lt;span style="color: #ff0000"&gt;TargetFileName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"splashscreen.png"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;                   splashscreen.png&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ReplaceParameters&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"false"&lt;/span&gt; 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;            &lt;span style="color: #ff0000"&gt;TargetFileName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"storelogo.png"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;storelogo.png&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Folder&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Folder&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"js"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;TargetFolderName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"js"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ReplaceParameters&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"true"&lt;/span&gt; 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;            &lt;span style="color: #ff0000"&gt;TargetFileName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"default.js"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;default.js&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Folder&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ReplaceParameters&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"true"&lt;/span&gt; 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;            &lt;span style="color: #ff0000"&gt;TargetFileName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"default.html"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;default.html&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ReplaceParameters&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"&lt;span style="color: #008040;"&gt;true&lt;/span&gt;"&lt;/span&gt; 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;            &lt;span style="color: #ff0000"&gt;TargetFileName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"&lt;span style="color: #008040;"&gt;$projectname$&lt;/span&gt;_TemporaryKey.pfx"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;                   SimpleLayout_TemporaryKey.pfx&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ReplaceParameters&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"&lt;span style="color: #008040;"&gt;true&lt;/span&gt;"&lt;/span&gt; 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;            &lt;span style="color: #ff0000"&gt;TargetFileName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"package.appxmanifest"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;                   package.appxmanifest&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ProjectItem&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Project&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb;"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;TemplateContent&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 12px; font-family: consolas,'Courier New',courier,monospace; margin: 0em; width: 100%; background-color: #ffffff;"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;VSTemplate&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/pre&gt;
&lt;p&gt;Listing 4 &amp;ndash; The VSTemplate File&lt;/p&gt;
&lt;h3&gt;Adding the Template to Visual Studio&lt;/h3&gt;
&lt;p&gt;After updating the files, they need to be added back into the generated .zip file that was exported earlier in the process.&amp;nbsp; Once the zip file contains all of the updated files, there are two ways to register your project template with Visual Studio.&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Using The User Templates Setting&lt;/h4&gt;
&lt;p&gt;Under Tools &amp;ndash;&amp;gt; Options &amp;ndash;&amp;gt; Projects and Solutions, one of the settings is &amp;ldquo;User project template location:&amp;rdquo;.&amp;nbsp; Any template .zip files will be automatically pulled into Visual Studio. (If you have Visual Studio open when you copy the file, it won&amp;rsquo;t show until the next restart of Visual Studio.)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://skimedic.com/blog/image.axd?picture=image_31.png"&gt;&lt;img style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" title="image" src="http://skimedic.com/blog/image.axd?picture=image_thumb_30.png" border="0" alt="image" width="644" height="435" /&gt;&lt;/a&gt; &lt;br /&gt;Figure 4 &amp;ndash; User project templates location&lt;/p&gt;
&lt;p&gt;The one downside of this method is that the template will only show up under JavaScript and not JavaScript &amp;ndash;&amp;gt; Windows Store.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://skimedic.com/blog/image.axd?picture=image_32.png"&gt;&lt;img style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" title="image" src="http://skimedic.com/blog/image.axd?picture=image_thumb_31.png" border="0" alt="image" width="644" height="446" /&gt;&lt;/a&gt; &lt;br /&gt;Figure 5 &amp;ndash; New Project Dialog&lt;/p&gt;
&lt;h4&gt;Adding to Visual Studio Install Directory&lt;/h4&gt;
&lt;p&gt;The second option is to add the files (&lt;strong&gt;not&lt;/strong&gt; in the .zip file) to a new subdirectory in &amp;ldquo;&amp;lt;VS11 Install Directory&amp;gt;\Common7\IDE\ProjectTemplates\JavaScript\Windows Store\1033&amp;rdquo;, and then run (as administrator) &amp;ldquo;devenv.exe /InstallVSTemplates&amp;rdquo; from a command prompt.&lt;/p&gt;
&lt;h3&gt;Summary&lt;/h3&gt;
&lt;p&gt;When you have something good, it&amp;rsquo;s even better if it&amp;rsquo;s easy to re-use.&amp;nbsp; If you have a great starting point for your Windows 8 projects, package it up, and add it to your environment as a project template.&amp;nbsp; You can even share it with your coworkers!&lt;/p&gt;
&lt;div id="author" class="vcard"&gt;
&lt;h3&gt;About the author&lt;/h3&gt;
&lt;h4 class="fn"&gt;Philip Japikse&lt;/h4&gt;
&lt;table border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" title="Japikse2012_93x112" src="http://www.skimedic.com/images/self/Japikse2012_93x112.jpg" border="0" alt="2012STLDODN.93x112" width="93" height="112" /&gt;&lt;/td&gt;
&lt;td&gt;Philip Japikse an international speaker, a Microsoft MVP, INETA Community Champion, MCSD, CSM/ CSP, and a passionate member of the developer community, Phil Japikse has been working with .Net since the first betas, developing software for over 20 years, and heavily involved in the agile community since 2005. Phil works as a Developer Evangelist for &lt;a href="http://www.telerik.com" target="_blank"&gt;Telerik&lt;/a&gt;'s &lt;a href="http://bit.ly/PqkA51" target="_blank"&gt;RadControls for Windows 8&lt;/a&gt; as well as the Just family of products (&lt;a href="http://bit.ly/TT8FCS" target="_blank"&gt;JustCode&lt;/a&gt;, &lt;a href="http://bit.ly/O3NsFp" target="_blank"&gt;JustMock&lt;/a&gt;, &lt;a href="http://bit.ly/TT920f" target="_blank"&gt;JustTrace&lt;/a&gt;, and &lt;a href="http://bit.ly/Sl3CVZ" target="_blank"&gt;JustDecompile&lt;/a&gt;) and co-hosts the Hallway Conversations podcast (www.hallwayconversations.com). Phil is also the Lead Director for the Cincinnati .Net User&amp;rsquo;s Group (&lt;a href="http://bit.ly/RPKrIX"&gt;http://www.cinnug.org&lt;/a&gt;). You can follow Phil on twitter via &lt;a href="http://www.twitter.com/skimedic"&gt;www.twitter.com/skimedic&lt;/a&gt; read his Telerik blog at &lt;a href="http://blogs.telerik.com/skimedic"&gt;http://blogs.telerik.com/skimedic&lt;/a&gt; and his personal blog at &lt;a href="http://www.skimedic.com/blog"&gt;www.skimedic.com/blog&lt;/a&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script type="text/javascript"&gt;&lt;!--
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
// --&gt;&lt;/script&gt;
&lt;a class="twitter-share-button" href="https://twitter.com/share"&gt;Tweet&lt;/a&gt;
&lt;script type="text/javascript"&gt;&lt;!--
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
// --&gt;&lt;/script&gt;
&lt;!-- Place this tag where you want the +1 button to render. --&gt;&lt;/p&gt;
&lt;!-- Place this tag after the last +1 button tag. --&gt;
&lt;p&gt;
&lt;script type="text/javascript"&gt;&lt;!--
  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
// --&gt;&lt;/script&gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/skimedic/~4/MHnvm41bHP0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/skimedic/~3/MHnvm41bHP0/post.aspx</link>
      <author>PhilJapikse</author>
      <comments>http://www.skimedic.com/blog/post/2013/02/05/Creating-a-WinJS-Project-Template.aspx#comment</comments>
      <guid isPermaLink="false">http://www.skimedic.com/blog/post.aspx?id=25523014-b09c-4fff-a9de-00b39757fbc6</guid>
      <pubDate>Tue, 05 Feb 2013 10:44:00 -0900</pubDate>
      <category>Visual Studio</category>
      <category>VS2012</category>
      <category>Windows 8</category>
      <category>WinJS</category>
      <dc:publisher>PhilJapikse</dc:publisher>
      <pingback:server>http://www.skimedic.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.skimedic.com/blog/post.aspx?id=25523014-b09c-4fff-a9de-00b39757fbc6</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.skimedic.com/blog/trackback.axd?id=25523014-b09c-4fff-a9de-00b39757fbc6</trackback:ping>
      <wfw:comment>http://www.skimedic.com/blog/post/2013/02/05/Creating-a-WinJS-Project-Template.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.skimedic.com/blog/syndication.axd?post=25523014-b09c-4fff-a9de-00b39757fbc6</wfw:commentRss>
    <feedburner:origLink>http://www.skimedic.com/blog/post.aspx?id=25523014-b09c-4fff-a9de-00b39757fbc6</feedburner:origLink></item>
    <item>
      <title>Implementing the Layout Guidelines in WinJS</title>
      <description>&lt;p&gt;Microsoft has been very forthcoming when it come to application layout in Windows Store applications, and built the CSS appropriately in the starter templates for JavaScript Windows Store Applications.&amp;#160; The layout is based on heat map studies and focus groups that determined the optimal use of screen real estate and typography.&amp;#160; Figure 1 shows the layout guidelines and the typography sizes.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://skimedic.com/blog/image.axd?picture=image_24.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://skimedic.com/blog/image.axd?picture=image_thumb_23.png" width="644" height="273" /&gt;&lt;/a&gt; Figure 1&lt;/p&gt;  &lt;p&gt;When selecting one of the more complex project templates (the Grid, Split, Fixed Layout, or Navigation application templates), the required CSS and HTML pages are preconfigured to match the design guidelines. The problem is that the starter templates come with a lot of extra code that you might not need for your application design.&lt;/p&gt;  &lt;p&gt;The Blank app template is my favorite starting point for WinJS applications because it allows me to control every aspect of my application.&amp;#160; However, it &lt;em&gt;really is&lt;/em&gt; just a blank application. This means that the layout must be added manually.&amp;#160; Fortunately, the typography comes for free with the&amp;#160; ui-dark.css or ui-light.css packaged with the Windows Library for JavaScript that is referenced by default in every JavaScript Windows Store Application.&lt;/p&gt;  &lt;h3&gt;Typography&lt;/h3&gt;  &lt;p&gt;Achieving the expected typography is extremely easy, as long as you follow the accepted practices for HTML.&amp;#160; The headings (&amp;lt;h1&amp;gt; through &amp;lt;h3&amp;gt;) are styled with the correct font family (Segoe) and the correct sizes (42, 20, 11).&amp;#160; The next two headers tags (&amp;lt;h4&amp;gt; through &amp;lt;h5&amp;gt;) are also set at 11pt with diminishing font weights. The final header tag (&amp;lt;h6&amp;gt;) is set at 9pt and is used for tertiary information. Page headers should be set as &amp;lt;h1&amp;gt; elements, sub-headers as &amp;lt;h2&amp;gt;, and small sub-headers and main text should be set as &amp;lt;h3&amp;gt;, as the code in Listing 1 demonstrates and is displayed in Figure 2.&lt;/p&gt;  &lt;pre style="overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; border-bottom: #cecece 1px solid; padding-bottom: 5px; padding-top: 5px; padding-left: 5px; min-height: 40px; border-left: #cecece 1px solid; padding-right: 5px; width: 530px; background-color: #fbfbfb"&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;!DOCTYPE html&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;meta&lt;/span&gt; &lt;span style="color: #ff0000"&gt;charset&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;SimpleLayout&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #008000"&gt;&amp;lt;!-- WinJS references --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;link&lt;/span&gt; &lt;span style="color: #ff0000"&gt;href&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;//Microsoft.WinJS.1.0/css/ui-dark.css&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;rel&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;//Microsoft.WinJS.1.0/js/base.js&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;//Microsoft.WinJS.1.0/js/ui.js&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #008000"&gt;&amp;lt;!-- SimpleLayout references --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;link&lt;/span&gt; &lt;span style="color: #ff0000"&gt;href&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;/css/default.css&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;rel&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;/js/default.js&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;h1&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;42pt Header&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;h1&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;h2&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;20pt Subheader&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;h2&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;h3&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;11pt Body Text&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;h3&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;
Listing 1 – Setting Headers, Sub-headers, and Small Sub-Headers 

&lt;p&gt;&lt;a href="http://skimedic.com/blog/image.axd?picture=image_25.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://skimedic.com/blog/image.axd?picture=image_thumb_24.png" width="644" height="231" /&gt;&lt;/a&gt; 

  &lt;br /&gt;Figure 2 – Headers, Sub-headers, and Small Sub-Headers Text&lt;/p&gt;

&lt;h4&gt;Non Header CSS Classes &lt;/h4&gt;

&lt;p&gt;In addition to the header HTML elements, the CSS files that ship with the Windows Library for JavaScript contain classes provide the same markup without using header tags.&amp;#160; The classes range from “win-type-xx-large” (42pt) to “win-type-xx-small” (9pt).&amp;#160; And example is shown in Listing 2, and the resulting is shown in Figure 3.&lt;/p&gt;

&lt;pre style="overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; border-bottom: #cecece 1px solid; padding-bottom: 5px; padding-top: 5px; padding-left: 5px; min-height: 40px; border-left: #cecece 1px solid; padding-right: 5px; width: 530px; background-color: #fbfbfb"&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;win-type-xx-large&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;42pt Largest Text&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;win-type-x-large&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;20pt Secondary Text&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;win-type-large&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;11pt Text&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;
Listing 2 – Built in CSS classes for recommended typography 

&lt;p&gt;&lt;a href="http://skimedic.com/blog/image.axd?picture=image_26.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://skimedic.com/blog/image.axd?picture=image_thumb_25.png" width="644" height="457" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;Figure 3 – Text Using Header Elements and non Header text using built in CSS Classes for Typography&lt;/p&gt;

&lt;h4&gt;Handling Snapped State&lt;/h4&gt;

&lt;p&gt;Another advantage to using the built in classes for typography instead of creating your own is that the default style sheets also contain entries to change the fonts when the application is in snapped state.&amp;#160; Unfortunately, only header sizes one to three (&amp;lt;h1&amp;gt; - &amp;lt;h3&amp;gt;) and the the three largest win-types (win-type-xx-large – win-type-large) are handled, although it is easy enough to add the missing entries if you need them.&lt;/p&gt;

&lt;h3&gt;Page Layout&lt;/h3&gt;

&lt;p&gt;The recommended page layout isn’t built into the style sheets that ship with the WinJS library, but it is very easy to add to your project. The foundation for the layout is using the “display: –ms-grid” style element.&amp;#160; (If you need more information in the grid style, please refer to this post on &lt;a href="http://blogs.msdn.com/b/ie/archive/2011/04/14/ie10-platform-preview-and-css-features-for-adaptive-layouts.aspx" target="_blank"&gt;MSDN&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;By using the –ms-grid layout mechanism, you can specify a combination of fixed width (to adhere to the guidelines) and relational widths (to adjust the real estate to accommodate the different devices available to the consumer.&lt;/p&gt;

&lt;h4&gt;Altering the default.html page&lt;/h4&gt;

&lt;p&gt;Presuming that your application will be using standard navigation with the main html page (default.html) acting as the target for all page navigation, the page can be separated into four divisions, starting with the &amp;lt;body&amp;gt; tag.&amp;#160; The body will be the container for the –ms-grid, dividing the page into two columns and three rows. The second column (120px from the left edge) will hold the app title (top row), the subtitle (second row), and the body (third row).&amp;#160; If you plan in placing a standard “back” button in the main page (as opposed to placing it in the the navigation bar), you will place it in the top row of the first column.&amp;#160; Applying the divisions to the labels created earlier in this post will create markup like the code in Listing 3.&amp;#160;&amp;#160; &lt;/p&gt;

&lt;pre style="overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; border-bottom: #cecece 1px solid; padding-bottom: 5px; padding-top: 5px; padding-left: 5px; min-height: 40px; border-left: #cecece 1px solid; padding-right: 5px; width: 530px; background-color: #fbfbfb"&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;contentHost&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;appTitle&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;h1&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;42pt Header&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;h1&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;backButton&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;button&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;win-backbutton&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;button&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;appSubTitle&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;h2&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;20pt Subheader&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;h2&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;contentTarget&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;mainContent&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;h3&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;11pt Body Text&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;h3&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;win-type-xx-large&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;42pt Largest Text&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;win-type-x-large&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;20pt Secondary Text&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;win-type-large&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;11pt Text&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;&lt;/pre&gt;&lt;/pre&gt;
Listing 3 – Layout markup 

&lt;br /&gt;

&lt;h4&gt;Creating the CSS classes&lt;/h4&gt;

&lt;p&gt;The five CSS classes are shown in Listing 4.&amp;#160; The main class creates the –ms-grid and the columns and rows.&amp;#160; Columns or rows are defined by listing out the widths (heights) of the columns (rows), either in absolute or relative size. The “fr” in the sizing stands for “fractional values”.&amp;#160; (For more information on CSS sizing values, please refer to this &lt;a href="http://www.w3.org/TR/css3-grid-layout/#used-values-for-grid-definition-rows-and" target="_blank"&gt;article&lt;/a&gt;.) This is akin to the percentage values used in the past with web development.&amp;#160; At rendering, the engine first attempts to allocate all of the fixed space requirements, then divides the remaining space by the sum of all of the fractional units.&amp;#160; In the “contentHost” class listed in Listing 4, the grid has two columns, the first 120 pixels wide and the second uses up the remaining space.&amp;#160; There are three rows, the first two are 100 and 40 pixels high (respectively), and the final one uses all of the remaining space.&amp;#160; This gives us the grid as outlined in Figure 1.&lt;/p&gt;

&lt;p&gt;The remaining classes define what row and column each element should be in, determines the alignment for the content, and then uses margins and height values to perfect the desired layout.&lt;/p&gt;

&lt;pre style="overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; border-bottom: #cecece 1px solid; padding-bottom: 5px; padding-top: 5px; padding-left: 5px; min-height: 40px; border-left: #cecece 1px solid; padding-right: 5px; width: 530px; background-color: #fbfbfb"&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;.&lt;span style="color: #800000"&gt;contentHost&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;{
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #ff0000"&gt;display&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;-ms-grid&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-columns&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;120px 1fr&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-rows&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;100px 40px 1fr&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;}
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;.&lt;span style="color: #800000"&gt;appTitle&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;{
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #ff0000"&gt;height&lt;/span&gt;:&lt;span style="color: #0000ff"&gt;62px&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #ff0000"&gt;margin-top&lt;/span&gt;:&lt;span style="color: #0000ff"&gt;38px&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-column&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;2&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-row&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;1&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-row-align&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;}
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;.&lt;span style="color: #800000"&gt;backButton&lt;/span&gt; {
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #ff0000"&gt;height&lt;/span&gt;:&lt;span style="color: #0000ff"&gt;40px&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #ff0000"&gt;margin-top&lt;/span&gt;:&lt;span style="color: #0000ff"&gt;60px&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-column&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;1&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-row&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;1&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-row-align&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-column-align&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #ff0000"&gt;margin-right&lt;/span&gt;:&lt;span style="color: #0000ff"&gt;10px&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;}
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;.&lt;span style="color: #800000"&gt;appSubTitle&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;{
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #ff0000"&gt;height&lt;/span&gt;:&lt;span style="color: #0000ff"&gt;30px&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #ff0000"&gt;margin-top&lt;/span&gt;:&lt;span style="color: #0000ff"&gt;5px&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #ff0000"&gt;margin-bottom&lt;/span&gt;:&lt;span style="color: #0000ff"&gt;5px&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-column&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;2&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-row&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;2&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-row-align&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;}
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;.&lt;span style="color: #800000"&gt;mainContent&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;{
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #ff0000"&gt;margin-top&lt;/span&gt;:&lt;span style="color: #0000ff"&gt;5px&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-column&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;2&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #fbfbfb"&gt;    &lt;span style="color: #ff0000"&gt;-ms-grid-row&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;3&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; margin: 0em; width: 100%; background-color: #ffffff"&gt;}&lt;/pre&gt;&lt;/pre&gt;
Listing 4 – CSS for the recommended layout 

&lt;br /&gt;

&lt;p&gt;The resulting page (as shown in Figure 4) adheres to the design guidelines with minimal effort.&amp;#160; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://skimedic.com/blog/image.axd?picture=image_27.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://skimedic.com/blog/image.axd?picture=image_thumb_26.png" width="644" height="346" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;Although the more complex project templates for JavaScript Windows Store Applications already implement layout guidelines from Microsoft, those projects were created for very specific scenarios.&amp;#160; More often than not, the Blank Template is the best option for your project.&amp;#160; Unfortunately, the blank template is &lt;strong&gt;very&lt;/strong&gt; blank, and doesn’t adhere to the guidelines.&amp;#160; By adding in the CSS classes from this post, all of your applications can meet the standards.&lt;/p&gt;

&lt;div id="author" class="vcard"&gt;
  &lt;h3&gt;About the author&lt;/h3&gt;

  &lt;h4 class="fn"&gt;Philip Japikse&lt;/h4&gt;

  &lt;table&gt;&lt;tbody&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;img title="Japikse2012_93x112" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="2012STLDODN.93x112" src="http://www.skimedic.com/images/self/Japikse2012_93x112.jpg" width="93" height="112" /&gt;&lt;/td&gt;

        &lt;td&gt;Philip Japikse an international speaker, a Microsoft MVP, INETA Community Champion, MCSD, CSM/ CSP, and a passionate member of the developer community, Phil Japikse has been working with .Net since the first betas, developing software for over 20 years, and heavily involved in the agile community since 2005. Phil works as a Developer Evangelist for &lt;a href="http://www.telerik.com" target="_blank"&gt;Telerik&lt;/a&gt;'s &lt;a href="http://bit.ly/PqkA51" target="_blank"&gt;RadControls for Windows 8&lt;/a&gt; as well as the Just family of products (&lt;a href="http://bit.ly/TT8FCS" target="_blank"&gt;JustCode&lt;/a&gt;, &lt;a href="http://bit.ly/O3NsFp" target="_blank"&gt;JustMock&lt;/a&gt;, &lt;a href="http://bit.ly/TT920f" target="_blank"&gt;JustTrace&lt;/a&gt;, and &lt;a href="http://bit.ly/Sl3CVZ" target="_blank"&gt;JustDecompile&lt;/a&gt;) and co-hosts the Hallway Conversations podcast (&lt;a href="http://www.hallwayconversations.com"&gt;www.hallwayconversations.com&lt;/a&gt;). Phil is also the Lead Director for the Cincinnati .Net User’s Group (&lt;a href="http://bit.ly/RPKrIX"&gt;http://www.cinnug.org&lt;/a&gt;). You can follow Phil on twitter via &lt;a href="http://www.twitter.com/skimedic"&gt;www.twitter.com/skimedic&lt;/a&gt; read his Telerik blog at &lt;a href="http://blogs.telerik.com/skimedic"&gt;http://blogs.telerik.com/skimedic&lt;/a&gt; and his personal blog at &lt;a href="http://www.skimedic.com/blog"&gt;www.skimedic.com/blog&lt;/a&gt;.&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;div&gt;&lt;/div&gt;

&lt;p&gt;&lt;iframe title="Twitter Follow Button" class="twitter-follow-button" style="height: 20px; width: 235px" src="https://platform.twitter.com/widgets/follow_button.1355514129.html#_=1356622109692&amp;amp;id=twitter-widget-1&amp;amp;lang=en&amp;amp;screen_name=skimedic&amp;amp;show_count=true&amp;amp;show_screen_name=true&amp;amp;size=m" frameborder="0" allowtransparency="allowtransparency" scrolling="no" data-twttr-rendered="true"&gt;&lt;/iframe&gt;&lt;script&gt;!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");&lt;/script&gt;&lt;a class="twitter-share-button" href="https://twitter.com/share" data-via="skimedic" data-text="Blogged: Layout Guidelines in WinJS" data-url="http://skimedic.com/blog/post/2013/02/03/Implementing-the-Layout-Guidelines-in-WinJS.aspx"&gt;Tweet&lt;/a&gt; &lt;script&gt;!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");&lt;/script&gt;&lt;!-- Place this tag where you want the +1 button to render. --&gt;&lt;/p&gt;

&lt;div class="g-plusone" data-href="http://skimedic.com/blog/post/2013/02/03/Implementing-the-Layout-Guidelines-in-WinJS.aspx"&gt;&lt;/div&gt;
&lt;!-- Place this tag after the last +1 button tag. --&gt;&lt;script type="text/javascript"&gt;
  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
&lt;/script&gt;&lt;img src="http://feeds.feedburner.com/~r/skimedic/~4/o1o2zDazuUc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/skimedic/~3/o1o2zDazuUc/post.aspx</link>
      <author>PhilJapikse</author>
      <comments>http://www.skimedic.com/blog/post/2013/02/03/Implementing-the-Layout-Guidelines-in-WinJS.aspx#comment</comments>
      <guid isPermaLink="false">http://www.skimedic.com/blog/post.aspx?id=f3e339a1-5711-4eef-8fb7-0a0026479011</guid>
      <pubDate>Sun, 03 Feb 2013 08:35:03 -0900</pubDate>
      <category>JavaScript</category>
      <category>Windows 8</category>
      <category>WinJS</category>
      <dc:publisher>PhilJapikse</dc:publisher>
      <pingback:server>http://www.skimedic.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.skimedic.com/blog/post.aspx?id=f3e339a1-5711-4eef-8fb7-0a0026479011</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.skimedic.com/blog/trackback.axd?id=f3e339a1-5711-4eef-8fb7-0a0026479011</trackback:ping>
      <wfw:comment>http://www.skimedic.com/blog/post/2013/02/03/Implementing-the-Layout-Guidelines-in-WinJS.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.skimedic.com/blog/syndication.axd?post=f3e339a1-5711-4eef-8fb7-0a0026479011</wfw:commentRss>
    <feedburner:origLink>http://www.skimedic.com/blog/post.aspx?id=f3e339a1-5711-4eef-8fb7-0a0026479011</feedburner:origLink></item>
    <item>
      <title>Deep Discounts Available for VSLive Las Vegas</title>
      <description>&lt;p&gt;Interested in learning the latest tech from industry experts?&amp;#160; Interested in getting a deep discount?&amp;#160; You can do both!&amp;#160; I will be speaking at &lt;a href="http://vslive.com/Events/Las-Vegas-2013/Home.aspx?utm_source=AttendeeMktg&amp;amp;utm_medium=Fax&amp;amp;utm_campaign=VLSPK18 " target="_blank"&gt;VSLive Las Vegas&lt;/a&gt; along with a host of very smart people.&amp;#160; I’ll be dlivering two sessions, one on WinJS and the other on ASP.NET MVC4.&amp;#160; &lt;/p&gt;  &lt;p&gt;Registering is extremely easy!&amp;#160; Just click on the &lt;a href="http://vslive.com/Events/Las-Vegas-2013/Home.aspx?utm_source=AttendeeMktg&amp;amp;utm_medium=Fax&amp;amp;utm_campaign=VLSPK18 " target="_blank"&gt;link&lt;/a&gt;, and you will be able to get the entire conference (5 days) for a discounted price of $1,595 – over $500 off.&lt;/p&gt;  &lt;div id="author" class="vcard"&gt;   &lt;h3&gt;About the author&lt;/h3&gt;    &lt;h4 class="fn"&gt;Philip Japikse&lt;/h4&gt;    &lt;table&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;&lt;img title="Japikse2012_93x112" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="2012STLDODN.93x112" src="http://www.skimedic.com/images/self/Japikse2012_93x112.jpg" width="93" height="112" /&gt;&lt;/td&gt;          &lt;td&gt;Philip Japikse an international speaker, a Microsoft MVP, INETA Community Champion, MCSD, CSM/ CSP, and a passionate member of the developer community, Phil Japikse has been working with .Net since the first betas, developing software for over 20 years, and heavily involved in the agile community since 2005. Phil works as a Developer Evangelist for &lt;a href="http://www.telerik.com" target="_blank"&gt;Telerik&lt;/a&gt;'s &lt;a href="http://bit.ly/PqkA51" target="_blank"&gt;RadControls for Windows 8&lt;/a&gt; as well as the Just family of products (&lt;a href="http://bit.ly/TT8FCS" target="_blank"&gt;JustCode&lt;/a&gt;, &lt;a href="http://bit.ly/O3NsFp" target="_blank"&gt;JustMock&lt;/a&gt;, &lt;a href="http://bit.ly/TT920f" target="_blank"&gt;JustTrace&lt;/a&gt;, and &lt;a href="http://bit.ly/Sl3CVZ" target="_blank"&gt;JustDecompile&lt;/a&gt;) and co-hosts the Hallway Conversations podcast (www.hallwayconversations.com). Phil is also the Lead Director for the Cincinnati .Net User’s Group (&lt;a href="http://bit.ly/RPKrIX"&gt;http://www.cinnug.org&lt;/a&gt;). You can follow Phil on twitter via &lt;a href="http://www.twitter.com/skimedic"&gt;www.twitter.com/skimedic&lt;/a&gt; read his Telerik blog at &lt;a href="http://blogs.telerik.com/skimedic"&gt;http://blogs.telerik.com/skimedic&lt;/a&gt; and his personal blog at &lt;a href="http://www.skimedic.com/blog"&gt;www.skimedic.com/blog&lt;/a&gt;.&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;div&gt;&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;iframe title="Twitter Follow Button" class="twitter-follow-button" style="height: 20px; width: 235px" src="https://platform.twitter.com/widgets/follow_button.1355514129.html#_=1356622109692&amp;amp;id=twitter-widget-1&amp;amp;lang=en&amp;amp;screen_name=skimedic&amp;amp;show_count=true&amp;amp;show_screen_name=true&amp;amp;size=m" frameborder="0" allowtransparency="allowtransparency" scrolling="no" data-twttr-rendered="true"&gt;&lt;/iframe&gt;&lt;script&gt;!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");&lt;/script&gt;&lt;a class="twitter-share-button" href="https://twitter.com/share" data-via="skimedic" data-text="Blogged: Deep Discounts for VSLive Las Vegas" data-url="http://skimedic.com/blog/post/2013/01/31/Deep-Discounts-Available-for-VSLive-Las-Vegas.aspx"&gt;Tweet&lt;/a&gt; &lt;script&gt;!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");&lt;/script&gt;&lt;!-- Place this tag where you want the +1 button to render. --&gt;&lt;/p&gt;  &lt;div class="g-plusone" data-href="http://skimedic.com/blog/post/2013/01/31/Deep-Discounts-Available-for-VSLive-Las-Vegas.aspx"&gt;&lt;/div&gt; &lt;!-- Place this tag after the last +1 button tag. --&gt;&lt;script type="text/javascript"&gt;
  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
&lt;/script&gt;&lt;img src="http://feeds.feedburner.com/~r/skimedic/~4/KtlQHzSVXPk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/skimedic/~3/KtlQHzSVXPk/post.aspx</link>
      <author>PhilJapikse</author>
      <comments>http://www.skimedic.com/blog/post/2013/01/31/Deep-Discounts-Available-for-VSLive-Las-Vegas.aspx#comment</comments>
      <guid isPermaLink="false">http://www.skimedic.com/blog/post.aspx?id=96fb21c9-e896-45e1-904f-f358124af2a3</guid>
      <pubDate>Thu, 31 Jan 2013 13:43:42 -0900</pubDate>
      <category>.NET</category>
      <category>ASP.NET MVC</category>
      <category>Conferences</category>
      <category>VS2012</category>
      <category>Windows 8</category>
      <category>WinJS</category>
      <category>WinRT</category>
      <category>VSLive</category>
      <dc:publisher>PhilJapikse</dc:publisher>
      <pingback:server>http://www.skimedic.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.skimedic.com/blog/post.aspx?id=96fb21c9-e896-45e1-904f-f358124af2a3</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.skimedic.com/blog/trackback.axd?id=96fb21c9-e896-45e1-904f-f358124af2a3</trackback:ping>
      <wfw:comment>http://www.skimedic.com/blog/post/2013/01/31/Deep-Discounts-Available-for-VSLive-Las-Vegas.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.skimedic.com/blog/syndication.axd?post=96fb21c9-e896-45e1-904f-f358124af2a3</wfw:commentRss>
    <feedburner:origLink>http://www.skimedic.com/blog/post.aspx?id=96fb21c9-e896-45e1-904f-f358124af2a3</feedburner:origLink></item>
  </channel>
</rss>
