<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Essential XAML</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/</link><description>The Hitchhiker’s Guide to XAML Apps</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>New Windows 8 Store Apps Development with C# 6 days Course</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2013/01/14/new-windows-8-store-apps-development-with-c-6-days-course.aspx</link><pubDate>Mon, 14 Jan 2013 18:35:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1662196</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1662196</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1662196</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2013/01/14/new-windows-8-store-apps-development-with-c-6-days-course.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Recently, I&amp;#39;ve been working hard, developing a new Windows 8 Store Apps 6 days Course for C# developers. 
&lt;/p&gt;&lt;p&gt;Today I was very proud to deliver it to one of &lt;a href="http://www.johnbryce.co.il/"&gt;John Bryce&lt;/a&gt; customers, at Hi-Tech College, Herzliya, and it was a great beginning.
&lt;/p&gt;&lt;p&gt;The course is very detailed and practical, just like I did with a previous 6 days WPF course I&amp;#39;ve developed. Different content, different college, but same mini-Me &lt;span style="font-family:Wingdings;"&gt;J&lt;/span&gt;.
&lt;/p&gt;&lt;p&gt;So if you&amp;#39;ve enjoyed previous sessions with me, I&amp;#39;m sure you&amp;#39;ll enjoy this course either, now with &lt;a href="http://www.codevalue.net/"&gt;CodeValue&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Following is the agenda for the course arranged by Modules and Topics. Each topic contains many sub-topics not presented here. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:12pt;"&gt;Module 01: Introduction to Windows 8 Store Apps&lt;/span&gt;
		&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Introduction to Windows Store Apps
&lt;/p&gt;&lt;p&gt;Windows Store app Development
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:12pt;"&gt;Module 02: Overview of the WinRT&lt;/span&gt;
		&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Introduction to Windows Runtime
&lt;/p&gt;&lt;p&gt;Async Programming
&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;Module 03: UI Controls and Layout
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;UI Designer and XAML
&lt;/p&gt;&lt;p&gt;Navigation Model
&lt;/p&gt;&lt;p&gt;Built-in Controls
&lt;/p&gt;&lt;p&gt;Layout and Orientation
&lt;/p&gt;&lt;p&gt;Dependency Properties
&lt;/p&gt;&lt;p&gt;Routed Events
&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;Module 04: Data Binding and Data Controls
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Data Binding and the MVVM Pattern
&lt;/p&gt;&lt;p&gt;Data Templates and Content Model
&lt;/p&gt;&lt;p&gt;Data Controls
&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;Module 05: Graphics and UI Design
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Control Styles
&lt;/p&gt;&lt;p&gt;Control Templates
&lt;/p&gt;&lt;p&gt;Graphics and Animations
&lt;/p&gt;&lt;p&gt;Visual State Manager
&lt;/p&gt;&lt;p&gt;Globalization and Localization
&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;Module 06: Application Model and Life Cycle
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Application Execution Model
&lt;/p&gt;&lt;p&gt;Application and User Data
&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;Module 07: Tiles, Badges and Toast notifications
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Tiles and Badges
&lt;/p&gt;&lt;p&gt;Secondary Tiles
&lt;/p&gt;&lt;p&gt;Toast Notifications
&lt;/p&gt;&lt;p&gt;Lock Screen Interaction
&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;Module 08: Contracts and Extensions
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Windows Store App Contracts
&lt;/p&gt;&lt;p&gt;Windows Store App Extensions
&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;Module 09: Background Tasks
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Background task basics
&lt;/p&gt;&lt;p&gt;Implementation concepts
&lt;/p&gt;&lt;p&gt;Background task sample code
&lt;/p&gt;&lt;p&gt;Resource management
&lt;/p&gt;&lt;p&gt;Threading model
&lt;/p&gt;&lt;p&gt;Best practices
&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;Module 10: Accessing Device Hardware
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Camera, Audio and Video
&lt;/p&gt;&lt;p&gt;Motion and Device Orientation
&lt;/p&gt;&lt;p&gt;Location Awareness
&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;Module 11: Packaging and Deployment
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Application Packaging
&lt;/p&gt;&lt;p&gt;Install, Update and Removal
&lt;/p&gt;&lt;p&gt;Side loading and Enterprise Apps
&lt;/p&gt;&lt;p&gt;Introduction to the Windows Store
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Please feel free to leave me a private message in this blog, or contact CodeValue, should you want to participate in future courses.
&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1662196" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Course/default.aspx">Course</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/CodeValue/default.aspx">CodeValue</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Runtime/default.aspx">Windows Runtime</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+8+Store+App/default.aspx">Windows 8 Store App</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/XAML/default.aspx">XAML</category></item><item><title>Displaying user Messages, Errors and Dialogs from a ViewModel using a Service – Part 2</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/12/18/displaying-user-messages-errors-and-dialogs-from-a-viewmodel-using-a-service-part-2.aspx</link><pubDate>Tue, 18 Dec 2012 20:01:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1567263</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1567263</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1567263</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/12/18/displaying-user-messages-errors-and-dialogs-from-a-viewmodel-using-a-service-part-2.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/12/18/displaying-user-messages-errors-and-dialogs-from-a-viewmodel-using-a-service-part-2.aspx"&gt;Displaying user Messages, Errors and Dialogs from a ViewModel using a Service – Part 1&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In &lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/12/17/displaying-user-messages-errors-and-dialogs-from-a-viewmodel-using-a-service-part-1.aspx"&gt;my previous post&lt;/a&gt;, I&amp;#39;ve discussed a bit about using the MVVM pattern and how to display a message or opening a dialog from within the view-model.
&lt;/p&gt;&lt;p&gt;As part of the discussion, I&amp;#39;ve shown a possible way for displaying Messages, Errors and even Dialog or Popups.
&lt;/p&gt;&lt;p&gt;In this post I would like to provide more details about the implementation of the Dialog part.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Recall previous post, we have the following two methods of the user interaction service:
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;font-family:Consolas;font-size:9pt;background-color:white;"&gt;bool&lt;span style="color:black;"&gt;? ShowDialog&amp;lt;TConductor&amp;gt;(&lt;span style="color:blue;"&gt;string&lt;span style="color:black;"&gt; title) &lt;span style="color:blue;"&gt;where&lt;span style="color:black;"&gt; TConductor : &lt;span&gt;IDialogConductor&lt;span style="color:black;"&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;font-family:Consolas;font-size:9pt;background-color:white;"&gt;bool&lt;span style="color:black;"&gt;? ShowDialog&amp;lt;TConductor, TParameters&amp;gt;(&lt;span style="color:blue;"&gt;string&lt;span style="color:black;"&gt; title, TParameters parameters)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;"&gt;&lt;span style="font-family:Consolas;font-size:9pt;background-color:white;"&gt;
				&lt;span style="color:blue;"&gt;where&lt;span style="color:black;"&gt; TConductor : &lt;span&gt;IDialogConductor&lt;span style="color:black;"&gt;&amp;lt;TParameters&amp;gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;TConductor&lt;/strong&gt; – implements the &lt;strong&gt;IDialogConductor&lt;/strong&gt; or &lt;strong&gt;IDialogConductor&amp;lt;TParameters&amp;gt;&lt;/strong&gt;. The conductor is responsible for providing the view/view-model pair.
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;TParameters&lt;/strong&gt; – an optional parameters can be passed to the dialog view-model. Using this parameters we can pass initial parameters, also get results back when closing the dialog.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;From here, it&amp;#39;s very simple. Let&amp;#39;s take a look what&amp;#39;s happening inside the service:
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;font-family:Consolas;font-size:9pt;background-color:white;"&gt;public&lt;span style="color:black;"&gt;
				&lt;span style="color:blue;"&gt;bool&lt;span style="color:black;"&gt;? ShowDialog&amp;lt;TConductor, TParameters&amp;gt;(&lt;span style="color:blue;"&gt;string&lt;span style="color:black;"&gt; title, TParameters parameters)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;where&lt;span style="color:black;"&gt; TConductor : &lt;span&gt;IDialogConductor&lt;span style="color:black;"&gt;&amp;lt;TParameters&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;var&lt;span style="color:black;"&gt; conductor = &lt;span&gt;ServiceLocator&lt;span style="color:black;"&gt;.Current.GetInstance&amp;lt;TConductor&amp;gt;();
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;var&lt;span style="color:black;"&gt; view = conductor.ResolveView();
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;var&lt;span style="color:black;"&gt; viewModel = conductor.ResolveViewModel(parameters);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;return&lt;span style="color:black;"&gt; ShowDialog(title, view, viewModel);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;font-family:Consolas;font-size:9pt;background-color:white;"&gt;private&lt;span style="color:black;"&gt;
				&lt;span style="color:blue;"&gt;static&lt;span style="color:black;"&gt;
						&lt;span style="color:blue;"&gt;bool&lt;span style="color:black;"&gt;? ShowDialog(&lt;span style="color:blue;"&gt;
								&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    string&lt;span style="color:black;"&gt; title, &lt;span&gt;DependencyObject&lt;span style="color:black;"&gt; view, &lt;span&gt;DialogViewModel&lt;span style="color:black;"&gt; viewModel)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;var&lt;span style="color:black;"&gt; element = view &lt;span style="color:blue;"&gt;as&lt;span style="color:black;"&gt;
							&lt;span&gt;FrameworkElement&lt;span style="color:black;"&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;if&lt;span style="color:black;"&gt; (element == &lt;span style="color:blue;"&gt;null&lt;span style="color:black;"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;throw&lt;span style="color:black;"&gt;
					&lt;span style="color:blue;"&gt;new&lt;span style="color:black;"&gt;
							&lt;span&gt;ArgumentException&lt;span style="color:black;"&gt;(
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:9pt;background-color:white;"&gt;&amp;quot;Dialog view must be of type &amp;quot;&lt;span style="color:black;"&gt; + &lt;span style="color:blue;"&gt;typeof&lt;span style="color:black;"&gt;(&lt;span&gt;FrameworkElement&lt;span style="color:black;"&gt;).FullName);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    element.DataContext = viewModel;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;var&lt;span style="color:black;"&gt; dialogHost = &lt;span style="color:blue;"&gt;new&lt;span style="color:black;"&gt;
							&lt;span&gt;Window&lt;span style="color:black;"&gt;
								&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;        Title = title,
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;        SizeToContent = &lt;span&gt;SizeToContent&lt;span style="color:black;"&gt;.WidthAndHeight,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;        Content = element,
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    };
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span&gt;CloseHandler&lt;span style="color:black;"&gt;.Create(dialogHost, viewModel);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;return&lt;span style="color:black;"&gt; dialogHost.ShowDialog();
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;}&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;From what we&amp;#39;re getting here, the process is simple:
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Resolve a conductor from a DI container or other.
&lt;/li&gt;&lt;li&gt;Use the conductor to resolve the view.
&lt;/li&gt;&lt;li&gt;Use the conductor to resolve the view-model.
&lt;/li&gt;&lt;li&gt;Now that we have both the view and view-model, connect them together, or let the conductor do that, then display Window, Popup, custom control, etc.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;In case that you&amp;#39;re using a DI container, coding is much simpler. To provide a dialog you should:
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Create a dialog view and view-model pair.
&lt;/li&gt;&lt;li&gt;Create a dialog-specific conductor interface and type and register the type with the container. If you&amp;#39;re using MEF, just decorate it with Export using the relevant &lt;strong&gt;IDialogConductor&lt;/strong&gt; interface as a contract. Also if you&amp;#39;re lazy creating additional conductor type, like I did, let the View be the conductor. So it should implement the &lt;strong&gt;IDialogConductor&lt;/strong&gt; and return itself as the view. Also make sure it&amp;#39;s not Singleton!
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Here&amp;#39;s an example of the Save Image Dialog types:
&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Consolas;font-size:9pt;background-color:white;"&gt;///&lt;span style="color:green;"&gt;
				&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;span style="color:black;"&gt;
					&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Consolas;font-size:9pt;background-color:white;"&gt;///&lt;span style="color:green;"&gt; Represents the save image dialog conductor interface.&lt;span style="color:black;"&gt;
				&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Consolas;font-size:9pt;background-color:white;"&gt;///&lt;span style="color:green;"&gt;
				&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;span style="color:black;"&gt;
					&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;font-family:Consolas;font-size:9pt;background-color:white;"&gt;public&lt;span style="color:black;"&gt;
				&lt;span style="color:blue;"&gt;interface&lt;span style="color:black;"&gt;
						&lt;span&gt;ISaveImageDialog&lt;span style="color:black;"&gt; : &lt;span&gt;IDialogConductor&lt;span style="color:black;"&gt;&amp;lt;&lt;span&gt;SaveImageDialogParameters&lt;span style="color:black;"&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;"&gt;&lt;span style="background-color:white;"&gt;}&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Consolas;font-size:9pt;background-color:white;"&gt;///&lt;span style="color:green;"&gt;
				&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;span style="color:black;"&gt;
					&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Consolas;font-size:9pt;background-color:white;"&gt;///&lt;span style="color:green;"&gt; Interaction logic for SaveImageDialogView.xaml&lt;span style="color:black;"&gt;
				&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Consolas;font-size:9pt;background-color:white;"&gt;///&lt;span style="color:green;"&gt;
				&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;span style="color:black;"&gt;
					&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;[&lt;span&gt;Export&lt;span style="color:black;"&gt;(&lt;span style="color:blue;"&gt;typeof&lt;span style="color:black;"&gt;(&lt;span&gt;ISaveImageDialog&lt;span style="color:black;"&gt;)), &lt;span&gt;PartCreationPolicy&lt;span style="color:black;"&gt;(&lt;span&gt;CreationPolicy&lt;span style="color:black;"&gt;.NonShared)]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;font-family:Consolas;font-size:9pt;background-color:white;"&gt;public&lt;span style="color:black;"&gt;
				&lt;span style="color:blue;"&gt;partial&lt;span style="color:black;"&gt;
						&lt;span style="color:blue;"&gt;class&lt;span style="color:black;"&gt;
								&lt;span&gt;SaveImageDialogView&lt;span style="color:black;"&gt; : &lt;span&gt;UserControl&lt;span style="color:black;"&gt;, &lt;span&gt;ISaveImageDialog&lt;span style="color:black;"&gt;
													&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;public&lt;span style="color:black;"&gt; SaveImageDialogView()
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;        InitializeComponent();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span&gt;DependencyObject&lt;span style="color:black;"&gt;
					&lt;span&gt;IDialogConductor&lt;span style="color:black;"&gt;&amp;lt;&lt;span&gt;SaveImageDialogParameters&lt;span style="color:black;"&gt;&amp;gt;.ResolveView()
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;return&lt;span style="color:black;"&gt;
					&lt;span style="color:blue;"&gt;this&lt;span style="color:black;"&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span&gt;DialogViewModel&lt;span style="color:black;"&gt;
					&lt;span&gt;IDialogConductor&lt;span style="color:black;"&gt;&amp;lt;&lt;span&gt;SaveImageDialogParameters&lt;span style="color:black;"&gt;&amp;gt;.ResolveViewModel(&lt;span&gt;SaveImageDialogParameters&lt;span style="color:black;"&gt; parameters)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;return&lt;span style="color:black;"&gt;
					&lt;span style="color:blue;"&gt;new&lt;span style="color:black;"&gt;
							&lt;span&gt;SaveImageDialogViewModel&lt;span style="color:black;"&gt;(parameters);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;"&gt;&lt;span style="background-color:white;"&gt;}&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Consolas;font-size:9pt;background-color:white;"&gt;///&lt;span style="color:green;"&gt;
				&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;span style="color:black;"&gt;
					&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Consolas;font-size:9pt;background-color:white;"&gt;///&lt;span style="color:green;"&gt; The logic of the save image dialog view.&lt;span style="color:black;"&gt;
				&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Consolas;font-size:9pt;background-color:white;"&gt;///&lt;span style="color:green;"&gt;
				&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;span style="color:black;"&gt;
					&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;font-family:Consolas;font-size:9pt;background-color:white;"&gt;internal&lt;span style="color:black;"&gt;
				&lt;span style="color:blue;"&gt;class&lt;span style="color:black;"&gt;
						&lt;span&gt;SaveImageDialogViewModel&lt;span style="color:black;"&gt; : &lt;span&gt;DialogViewModel&lt;span style="color:black;"&gt;
									&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;private&lt;span style="color:black;"&gt;
					&lt;span style="color:blue;"&gt;readonly&lt;span style="color:black;"&gt;
							&lt;span&gt;SaveImageDialogParameters&lt;span style="color:black;"&gt; _parameters;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;public&lt;span style="color:black;"&gt; SaveImageDialogViewModel(&lt;span&gt;SaveImageDialogParameters&lt;span style="color:black;"&gt; parameters)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;        _parameters = parameters;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;        FullPath = _parameters.ImageFilePath;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;public&lt;span style="color:black;"&gt;
					&lt;span style="color:blue;"&gt;string&lt;span style="color:black;"&gt; FullPath { &lt;span style="color:blue;"&gt;get&lt;span style="color:black;"&gt;; &lt;span style="color:blue;"&gt;set&lt;span style="color:black;"&gt;; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;public&lt;span style="color:black;"&gt;
					&lt;span&gt;DelegateCommandBase&lt;span style="color:black;"&gt; CancelCommand
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;get&lt;span style="color:black;"&gt; { &lt;span style="color:blue;"&gt;return&lt;span style="color:black;"&gt; GetOrCreateCommand(&lt;span&gt;&amp;quot;CancelCommand&amp;quot;&lt;span style="color:black;"&gt;, () =&amp;gt; OnClosed(&lt;span style="color:blue;"&gt;false&lt;span style="color:black;"&gt;)); }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;public&lt;span style="color:black;"&gt;
					&lt;span&gt;DelegateCommandBase&lt;span style="color:black;"&gt; SaveCommand
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;get&lt;span style="color:black;"&gt;
				&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;        {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;return&lt;span style="color:black;"&gt; GetOrCreateCommand(&lt;span&gt;&amp;quot;SaveCommand&amp;quot;&lt;span style="color:black;"&gt;, () =&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;            {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;                _parameters.ImageFilePath = FullPath;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;                OnClosed(&lt;span style="color:blue;"&gt;true&lt;span style="color:black;"&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;            });
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;        }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;    }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;}&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Consolas;font-size:9pt;background-color:white;"&gt;///&lt;span style="color:green;"&gt;
				&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;span style="color:black;"&gt;
					&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Consolas;font-size:9pt;background-color:white;"&gt;///&lt;span style="color:green;"&gt; Parameters for the save image dialog.&lt;span style="color:black;"&gt;
				&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Consolas;font-size:9pt;background-color:white;"&gt;///&lt;span style="color:green;"&gt;
				&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;span style="color:black;"&gt;
					&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;font-family:Consolas;font-size:9pt;background-color:white;"&gt;public&lt;span style="color:black;"&gt;
				&lt;span style="color:blue;"&gt;class&lt;span style="color:black;"&gt;
						&lt;span&gt;SaveImageDialogParameters&lt;span style="color:black;"&gt;
							&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;
			&lt;span style="color:blue;"&gt;public&lt;span style="color:black;"&gt;
					&lt;span style="color:blue;"&gt;string&lt;span style="color:black;"&gt; ImageFilePath { &lt;span style="color:blue;"&gt;get&lt;span style="color:black;"&gt;; &lt;span style="color:blue;"&gt;set&lt;span style="color:black;"&gt;; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:9pt;background-color:white;"&gt;}&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I&amp;#39;ve created a small, incomplete, working VS2012 code demonstrating this concept.
&lt;/p&gt;&lt;p&gt;Feel free to download it from SkyDrive:
&lt;/p&gt;&lt;p&gt;&lt;a href="http://sdrv.ms/12ynsEK"&gt;DialogUsingService.rar&lt;/a&gt; (&lt;a href="http://sdrv.ms/12ynsEK"&gt;http://sdrv.ms/12ynsEK&lt;/a&gt;)
&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/12/18/displaying-user-messages-errors-and-dialogs-from-a-viewmodel-using-a-service-part-2.aspx"&gt;Displaying user Messages, Errors and Dialogs from a ViewModel using a Service – Part 1&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1567263" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Pattern/default.aspx">Pattern</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Design/default.aspx">Design</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/MEF/default.aspx">MEF</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/MVVM/default.aspx">MVVM</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/XAML/default.aspx">XAML</category></item><item><title>Displaying user Messages, Errors and Dialogs from a ViewModel using a Service – Part 1</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/12/17/displaying-user-messages-errors-and-dialogs-from-a-viewmodel-using-a-service-part-1.aspx</link><pubDate>Mon, 17 Dec 2012 15:29:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1562486</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1562486</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1562486</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/12/17/displaying-user-messages-errors-and-dialogs-from-a-viewmodel-using-a-service-part-1.aspx#comments</comments><description>&lt;p align="justify"&gt;&lt;img width="176" height="167" align="right" style="float:right;display:inline;" src="http://ts3.mm.bing.net/th?id=H.4767886969406302&amp;amp;pid=1.9" alt="" /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/12/18/displaying-user-messages-errors-and-dialogs-from-a-viewmodel-using-a-service-part-2.aspx"&gt;Displaying user Messages, Errors and Dialogs from a ViewModel using a Service – Part 2&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="justify"&gt;Years after the invention of the MVVM pattern and people are still asking many questions about how to do this and how to do that, and specifically, how to display a Message, Error or even opening a Dialog from a View Model without accessing the view layer or visual tree.&lt;/p&gt;  &lt;p align="justify"&gt;If we go straight with the MVVM pattern concept, the view-model must not directly access or manipulate the View/Visual Tree or part of it in any circumstances. As many of you may already familiar with the basics, this serves one purpose: Separated Presentation. With all the benefits of separated presentation, this restriction is the origin of the complexity of this pattern and the source of many questions.&lt;/p&gt;  &lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p align="justify"&gt;If we keep in mind the separation rule, there are several patterns out there we can use to target this problem. For example, we can use a Service.&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;var &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;userInteraction = container.Resolve&amp;lt;&lt;/span&gt;&lt;span style="background:white;"&gt;IUserInteraction&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;&amp;gt;();
&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;var &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;result = userInteraction.ShowMessage(
    &lt;/span&gt;&lt;span style="background:white;"&gt;&amp;quot;Allow camera access?&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;, &lt;/span&gt;&lt;span style="background:white;"&gt;UserMessageOptions&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;.YesNo);
&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;if &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;(result == &lt;/span&gt;&lt;span style="background:white;"&gt;UserMessageResult&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;.Yes)
{
    &lt;/span&gt;&lt;span style="background:white;color:green;"&gt;// ...
&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;}&lt;/span&gt;&lt;/pre&gt;


&lt;p align="justify"&gt;What we’re doing here is actually using a service to separate the presentation related logic from the view-model, placing it inside a presentation-service, in our case: &lt;strong&gt;IUserInteraction&lt;/strong&gt;.&lt;/p&gt;

&lt;p align="justify"&gt;Given that the &lt;strong&gt;IUserInteraction&lt;/strong&gt; service is implemented as part of the view layer, and this layer is restricted from within the view-model, we are using a DI container to resolve this service implementation. This way we’re having a real separation, yet we are able to interact with the user.&lt;/p&gt;

&lt;p align="justify"&gt;Same concept for displaying errors, using a different method or interface for handling exceptions and error codes.&lt;/p&gt;

&lt;p align="justify"&gt;Now, looking inside the implementation of such a service, located in the view-layer, we may see something like this:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;"&gt;UserMessageResult &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;ShowMessage(&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;string &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;message, &lt;/span&gt;&lt;span style="background:white;"&gt;UserMessageOptions &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;options);
        
&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;void &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;ShowError(&lt;/span&gt;&lt;span style="background:white;"&gt;Exception &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;e);&lt;/span&gt;&lt;/pre&gt;


&lt;p align="justify"&gt;The service is part of the view-layer, so it’s reasonable that it may access any presentation element and run presentation code. In our case accessing WPF &lt;strong&gt;MessageBox&lt;/strong&gt;. Of course you may want to use your own WPF/SL specific implementation of a message box, but then you only need to replace the native &lt;strong&gt;MessageBox&lt;/strong&gt; with your own implementation, later when it will be alive and kicking.&lt;/p&gt;

&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p align="justify"&gt;Now the tricky part here is displaying dialogs.&lt;/p&gt;

&lt;p align="justify"&gt;First, depends on the type of application we are developing: Desktop, Tablet, Phone, etc. We should ask if Dialogs/Popups are the right mechanism to use. Of course there are alternatives: Navigation for example.&lt;/p&gt;

&lt;p align="justify"&gt;Whatever mechanism we’ll use, it will be part of the view-layer (For example, in Windows 8 Store Apps it’s part of the Frame or Page), so we better separate that from the view-model using the same service concept I’ve presented above.&lt;/p&gt;

&lt;p align="justify"&gt;Here’s a simple usage:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;var &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;saveImageDialogParameters = &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;new &lt;/span&gt;&lt;span style="background:white;"&gt;SaveImageDialogParameters
&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;{
    ImageFilePath = &lt;/span&gt;&lt;span style="background:white;"&gt;@&amp;quot;c:\images&amp;quot;
&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;};

_userInteraction.ShowDialog&amp;lt;&lt;/span&gt;&lt;span style="background:white;"&gt;ISaveImageDialog&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;, &lt;/span&gt;&lt;span style="background:white;"&gt;SaveImageDialogParameters&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;&amp;gt;(
    &lt;/span&gt;&lt;span style="background:white;"&gt;&amp;quot;Save Image&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;, saveImageDialogParameters);&lt;/span&gt;&lt;/pre&gt;


&lt;p align="justify"&gt;A dialog is a bit complex than a simple message box, hence it may have view logic and we may want to develop it using the MVVM pattern, so we have a dialog view and a dialog view-model.&lt;/p&gt;

&lt;p align="justify"&gt;Now we’re dealing with two parts, and additional option to pass parameters to the dialog view-model. In our case ImageFilePath. Since we really don’t want to interact directly with the dialog view-model not the view from the actual view-model, we need to find a generic way to combine all together.&lt;/p&gt;

&lt;p align="justify"&gt;Let’s take a look at possible method signatures for opening dialogs from the view-model:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;bool&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;? ShowDialog&amp;lt;TConductor&amp;gt;(&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;string &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;title)
    &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;where &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;TConductor : &lt;/span&gt;&lt;span style="background:white;"&gt;IDialogConductor&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;

&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;bool&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;? ShowDialog&amp;lt;TConductor, TParameters&amp;gt;(&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;string &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;title, TParameters parameters)
    &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;where &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;TConductor : &lt;/span&gt;&lt;span style="background:white;"&gt;IDialogConductor&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;&amp;lt;TParameters&amp;gt;;&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;p align="justify"&gt;The concept here is using what I’m calling: a dialog conductor. A conductor is responsible for creating dialog view, view-model and initializing the view-model with the dialog parameters if any.&lt;/p&gt;

&lt;p align="justify"&gt;In our case, the &lt;strong&gt;ISaveImageDialog&lt;/strong&gt; interface represents the conductor. Since the implementation is internal to the dialog, we resolve it from the container.&lt;/p&gt;

&lt;p align="justify"&gt;The first signature can be used for displaying a dialog without any parameters, and the second can be used in case that we want to provide both conductor and parameters.&lt;/p&gt;

&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p align="justify"&gt;In my next post about this topic I’ll provide the implementation details for the ShowDialog and complete code for the rest.&lt;/p&gt;

&lt;p align="justify"&gt;Stay tuned!&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/12/18/displaying-user-messages-errors-and-dialogs-from-a-viewmodel-using-a-service-part-2.aspx"&gt;Displaying user Messages, Errors and Dialogs from a ViewModel using a Service – Part 2&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1562486" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Pattern/default.aspx">Pattern</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Design/default.aspx">Design</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/MVVM/default.aspx">MVVM</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+8+Store+App/default.aspx">Windows 8 Store App</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/XAML/default.aspx">XAML</category></item><item><title>Just in case Input Language in Windows 8 is driving you nuts...</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/11/29/just-in-case-input-language-in-windows-8-is-driving-you-nuts.aspx</link><pubDate>Thu, 29 Nov 2012 14:42:57 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1494853</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1494853</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1494853</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/11/29/just-in-case-input-language-in-windows-8-is-driving-you-nuts.aspx#comments</comments><description>&lt;p&gt;In case you’re working with more than one input language in Windows 8 (EN, HE…), and you’re wondering “Why the hell the input language is HE in vs2012 or EN in Word, or the opposite, and not switching back automatically…”?&lt;/p&gt;  &lt;p&gt;The answer for this question is: starting with Windows 8, the default for input language for any window is the last selected by the user (Users request from Microsoft…).&lt;/p&gt;  &lt;p&gt;This situation is great for users who are working with only one language. This feature is annoying for users like me, switching languages back and forward, it drives me crazy!&lt;/p&gt;  &lt;p&gt;So what can we do about that?&lt;/p&gt;  &lt;p&gt;It’s simple, go to Start screen (Win Ley), search for “input language” in settings section&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_0FD3B1A8.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;margin:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_77ECCA81.png" width="244" height="139" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Select “Switch input methods”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_6B127463.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;margin:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_59DE96C0.png" width="244" height="139" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On the left, select “Advanced Settings”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_6CB31A6A.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;margin:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_5AA6D6DD.png" width="244" height="139" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then in the “Switching input methods” section set the “Let me set a different input method for each window”.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;From now on, changing the input language will be kept for each Window and won’t be changing globally.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1494853" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+8/default.aspx">Windows 8</category></item><item><title>Using C# types from C++/CX in Windows 8 Store Apps</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/09/12/using-c-types-from-c-cx-in-windows-8-store-apps.aspx</link><pubDate>Thu, 13 Sep 2012 01:22:48 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1280003</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1280003</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1280003</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/09/12/using-c-types-from-c-cx-in-windows-8-store-apps.aspx#comments</comments><description>&lt;p align="justify"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_1D83A418.png"&gt;&lt;font size="2"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:right;padding-top:0px;padding-left:0px;margin:4px 0px 0px 16px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" align="right" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_4A9890E6.png" width="319" height="188" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;One of the best things happened to Windows 8 Store Apps (aka Metro apps) is the option to write apps and games with pure, native C++, with the help of CX extensions.&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;Aside from performance gained by using C++, being able to develop with C++ in Windows 8 Apps addresses one of the most requested scenarios: Porting and Code Sharing.&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;Lets say that you’re the creator of a famous Mobile Application, developed using C++ for Android and other platforms, and you may want to port this great app, or pieces of it to run under Windows 8.&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;Before running and picking C++ as the main project for your application, first thing to ask: Is it really necessary to develop the UI using C++?&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;Believe me, it’s not! I’ve been doing it for the past few months, and it’s absolutely unnecessary. If you’re not going to write a Game, the performance benefits using C++ for developing “modern” (Metro) apps is not worth the pain. And it hurts!&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;So, what I’m suggesting here is that you develop you Windows 8 Store app UI using C#, but keep using your portable C++ code, having a thin, lightweight WinRT layer between them.&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;The WinRT layer contains Windows Runtime Components. These components are special objects, can be shared across C#/C++/JS thanks to the common type system and the Winmd format, which is the same format used by the .NET framework.&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;If you ask me, I would prefer developing these components using C++/CX. But&amp;#160; you can also use C# with one disadvantage: Using a shared WinRT component written with C# from C++, causes the .NET runtime to be loaded into your application,&amp;#160; even if it’s a C++ only application.&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;Inspired by one of the questions asked in the &lt;/font&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/he-IL/metroappshe/threads"&gt;&lt;font size="2"&gt;Windows 8 Apps Israeli forum&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; I’m coordinating, I’ve prepared a small application, demonstrates a .NET WinRT component, consumed by C++ using Visual Studio 2012.&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;First, I’ve created a C#, Windows Store, Windows Runtime Component library (DLL with a Winmd).&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="2"&gt;Then I’ve renamed the “Class1” &lt;strong&gt;&lt;u&gt;sealed&lt;/u&gt;&lt;/strong&gt; class to “InteropType” (pick your own name of course) and added a public method should be exposed to C++.&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; SharedWinRTLib.Calculator&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;sealed&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; InteropType&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;double&lt;/span&gt; Add(&lt;span class="kwrd"&gt;double&lt;/span&gt; a, &lt;span class="kwrd"&gt;double&lt;/span&gt; b)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; a + b;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;

&lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;As you can see (line 5), I’ve added the Add method, which gets two double type parameters, and returns double type.&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;strong&gt;Important&lt;/strong&gt; thing to consider when creating WinRT components, is that you must use only platform supported types, such as int, double, string, custom WinRT type, etc.&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;You can’t use simple .NET types which are not WinRT types, but you can also use interfaces which adhere to these rules.&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;After creating this WinRT library, I’ve created a simple Windows Store C++ application, and added reference to this Winmd assembly:&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;Right click on the C++ project &amp;gt; References…, then I’ve picked my Winmd lib, named SharedWinRTLib.&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;Adding this reference, now I can instantiate and use the InteropType component directly from C++.&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;void&lt;/span&gt; CppStoreApp::MainPage::Button_Click_1(&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    auto calculator = &lt;span class="kwrd"&gt;ref&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; SharedWinRTLib::Calculator::InteropType();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    &lt;span class="kwrd"&gt;double&lt;/span&gt; a = _wtof(textBoxA-&amp;gt;Text-&amp;gt;Data());&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    &lt;span class="kwrd"&gt;double&lt;/span&gt; b = _wtof(textBoxB-&amp;gt;Text-&amp;gt;Data());&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="kwrd"&gt;double&lt;/span&gt; result = calculator-&amp;gt;Add(a, b);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    textBoxResult-&amp;gt;Text = &lt;span class="kwrd"&gt;ref&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Platform::String(to_wstring(result).c_str());&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;In the code snippet above, I’ve instantiated the InteropType component (line 4), which is located under the SharedWinRTLib::Calculator namespace.&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;Then I’ve converted the Text value of a text-box I’ve added to the UI (line 7, 8), to double, called the Add() method (line 9), and then converted the result to string again using the &lt;strong&gt;to_wstring&lt;/strong&gt; C-Runtime function, and again to &lt;strong&gt;Platform::String&lt;/strong&gt;, then placed the value in the result text-box (line 10).&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;Simple as that!&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;You can &lt;/font&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/1279999/download.aspx"&gt;&lt;font size="2"&gt;download the full code from here&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;&lt;font size="2"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1280003" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Metro+Style/default.aspx">Metro Style</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Runtime/default.aspx">Windows Runtime</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/C_2B002B002F00_CX/default.aspx">C++/CX</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+8+Store+App/default.aspx">Windows 8 Store App</category></item><item><title>Microsoft has just released Windows 8 and VS 2012 for MSDN subscribers</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/08/15/microsoft-has-just-released-windows-8-rtm-for-msdn-subscribers.aspx</link><pubDate>Thu, 16 Aug 2012 00:43:36 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1216822</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1216822</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1216822</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/08/15/microsoft-has-just-released-windows-8-rtm-for-msdn-subscribers.aspx#comments</comments><description>&lt;p&gt;&lt;img style="margin:8px;display:inline;float:left;" align="left" src="http://cdn-static.zdnet.com/i/story/70/00/002359/original/01-thinkpad-tablet-2-620x.jpg?hash=AGL2Amt0Az" width="148" height="118" alt="" /&gt;Microsoft has just released Windows 8 and Visual Studio 2012 for MSDN subscribers!&lt;/p&gt; &lt;p&gt;What are you waiting for? If you’ve MSDN subscription, go ahead, be first to download this long awaited release.&lt;/p&gt; &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/subscriptions/downloads/hh442898.aspx" href="http://msdn.microsoft.com/en-us/subscriptions/downloads/hh442898.aspx"&gt;http://msdn.microsoft.com/en-us/subscriptions/downloads/hh442898.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Now with the release of both, Windows 8 and Visual Studio 2012 we can develop Windows 8 apps and upload them to the online store.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Also don’t forget to check the &lt;a href="http://social.msdn.microsoft.com/Forums/he-IL/metroappshe"&gt;Windows 8 Apps Development&lt;/a&gt; Microsoft’s Israeli forum I’m coordinating with two other community members.&lt;/p&gt; &lt;p&gt;In this forum I’m sure you will find all the answers for your Windows 8 Apps developments questions, in all languages: C++/CX, C#, VB and JS.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1216822" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+8/default.aspx">Windows 8</category></item><item><title>Get screen resolution in Windows 8 Metro style application</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/07/24/get-screen-resolution-in-windows-8-metro-style-application.aspx</link><pubDate>Wed, 25 Jul 2012 03:50:22 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1169932</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1169932</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1169932</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/07/24/get-screen-resolution-in-windows-8-metro-style-application.aspx#comments</comments><description>&lt;p&gt; Today, someone asked an interesting question in the Israeli Metro forum I’m moderating.&lt;/p&gt;  &lt;p&gt;The question was: “How can I know what’s the screen resolution in a Metro style app?”&lt;/p&gt;  &lt;p&gt;This is a tricky answer, since:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;This capability has been removed from the RC.&lt;/li&gt;    &lt;li&gt;We can’t rely on current window Width and Height, since it may not be fully opened (snapping).&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Well, searching a bit over the API’s, I didn’t find anything that can help, but, we can always use DirectX.&lt;/p&gt;  &lt;p&gt;Creating a C++ Metro style application, here’s a code snippet demonstrating how to extract the screen resolution of a given display device:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_6D0535C1.png"&gt;&lt;img title="image" style="display:inline;" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_51EC66B3.png" width="712" height="433" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Using DirectX, we can query for the IDXGIAdapter, then make a call the EnumOutputs, which provides information for output devices. From there, we can make a call for IDXGIOutput::GetDesc to get the device description. From there we can extract the screen resolution.&lt;/p&gt;  &lt;p&gt;Now, to be able getting this value from a C# or JS application, we should create a simple WinRT object, placing it in a WinRT dll, then use it from other projects.&lt;/p&gt;  &lt;p&gt;To create a WinRT object with C++, we should create a class which looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_27BCB8CB.png"&gt;&lt;img title="image" style="display:inline;" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_74144C6C.png" width="715" height="346" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Feel free to &lt;a href="https://skydrive.live.com/redir?resid=D5E69BE94633397E!330"&gt;download the code (MetroScreenRes.zip)&lt;/a&gt; for both the WinRT object and a C# tester.&lt;/p&gt;  &lt;p&gt;Running the application, you can click on the Button and see your screen resolution. Changing the resolution and click the button again, you may see it updated.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1169932" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Metro+Style/default.aspx">Metro Style</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Runtime/default.aspx">Windows Runtime</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/C_2B002B002F00_CX/default.aspx">C++/CX</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DirectX/default.aspx">DirectX</category></item><item><title>Windows Phone Summit – Live Blogging</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/06/20/windows-phone-summit-live-blogging.aspx</link><pubDate>Wed, 20 Jun 2012 23:55:22 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1125309</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1125309</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1125309</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/06/20/windows-phone-summit-live-blogging.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/new-start-screen_71D99149.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:8px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="new-start-screen" border="0" alt="new-start-screen" align="right" src="http://blogs.microsoft.co.il/blogs/tomershamam/new-start-screen_thumb_1CD17F4F.jpg" width="138" height="244" /&gt;&lt;/a&gt;Windows Phone Summit is taking place right now, and I’m watching it Live over the the WEB at &lt;b&gt;&lt;a href="http://aka.ms/wpsummit"&gt;http://aka.ms/wpsummit&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Frankly, there’s nothing new I didn’t know, but now it’s official by Microsoft.&lt;/p&gt; &lt;p&gt;There are about 9 new features in the future Windows Phone 8&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Shared core between Windows 8 and Windows Phone 8, includes Native Code apps!&lt;/li&gt; &lt;li&gt;Support of Multi Core CPU’s&lt;/li&gt; &lt;li&gt;Support for additional 2 screen resolution: 720p, WXGA&lt;/li&gt; &lt;li&gt;Removable MicroSD support&lt;/li&gt; &lt;li&gt;Internet Explorer 10, with HTML5 and better JS performance&lt;/li&gt; &lt;li&gt;New start screen with more tiles and resizing options&lt;/li&gt; &lt;li&gt;Wallet&amp;nbsp; experience&lt;/li&gt; &lt;li&gt;Nokia Map technology replaces Bing Maps&lt;/li&gt; &lt;li&gt;Support for NFC&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;UPDATE: Recommendation for W8/WP8 developers:&lt;/p&gt; &lt;p&gt;Build apps using XAML/C#/VB.NET and Games using DirectX/C++.&lt;/p&gt; &lt;p&gt;Now the more interesting question is: When the SDK will be ready so I can put my hands on.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1125309" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Live+Blogging/default.aspx">Live Blogging</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Phone+8/default.aspx">Windows Phone 8</category></item><item><title>Migrating your Windows 8 Consumer Preview app to Windows 8 Release Preview</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/06/03/migrating-your-windows-8-consumer-preview-app-to-windows-8-release-preview.aspx</link><pubDate>Sun, 03 Jun 2012 04:13:36 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1110276</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1110276</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1110276</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/06/03/migrating-your-windows-8-consumer-preview-app-to-windows-8-release-preview.aspx#comments</comments><description>&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" border="0" align="right" src="http://microsoft-info.com/wp-content/uploads/2012/06/01.jpg" width="353" height="198" alt="" /&gt; &lt;p&gt;Lately, Microsoft released &lt;a href="http://windows.microsoft.com/en-US/windows-8/release-preview"&gt;Windows 8 Release Preview&lt;/a&gt;, and also &lt;a href="http://www.microsoft.com/visualstudio/11/en-us/downloads"&gt;Visual Studio 2012 RC&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you’re a Metro Style application developer, you might wonder what has changed from the last Beta.&lt;/p&gt; &lt;p&gt;As one who have already developed Metro Style apps, I can say that there are braking changes!&lt;/p&gt; &lt;p&gt;One of my favorite is in the Dispatcher (&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.core.coredispatcher"&gt;CoreDispatcher&lt;/a&gt; class) which no longer contains BeginInvoke pre-historic operation style of the old version of asynchronous pattern. Instead it contains the modern ‘async’ convention method called RunAync, which is of course Windows Runtime asynchronous method.&lt;/p&gt; &lt;p&gt;Here’s the signature of it:&lt;/p&gt; &lt;p&gt;public IAsyncAction RunAsync(CoreDispatcherPriority priority, DispatchedHandler agileCallback);&lt;/p&gt; &lt;p&gt;If you really want to spare the trial and error step, finding what was remove, what was change or replaced, you can find all changes in the following white paper:&lt;/p&gt; &lt;p&gt;&lt;a title="http://go.microsoft.com/fwlink/?LinkId=251943" href="http://go.microsoft.com/fwlink/?LinkId=251943"&gt;http://go.microsoft.com/fwlink/?LinkId=251943&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1110276" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Metro+Style/default.aspx">Metro Style</category></item><item><title>Installing SQL Server R2 Management Studio on machine with VS2008 without SP1</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/03/25/installing-sql-server-r2-management-studio-on-machine-with-vs2008-without-sp1.aspx</link><pubDate>Sun, 25 Mar 2012 16:31:46 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1042422</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1042422</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1042422</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/03/25/installing-sql-server-r2-management-studio-on-machine-with-vs2008-without-sp1.aspx#comments</comments><description>&lt;p&gt;I’ve been trying to install SQL Server R2 Management Studio on my customer site DEV machine I’m working with, and suddenly the I’ve got an annoying message saying that I don’t have VS2008 SP1 installed and the installation failed. &lt;p&gt;Mainly I’m working with&amp;nbsp; VS2010 only, and I really don’t care about VS2008, especially not in concern with Management Studio… &lt;p&gt;Now I have three options: &lt;p&gt;1. Uninstall Visual Studio 2008 &lt;p&gt;2. Download and install VS 2008 SP1, which takes decades… &lt;p&gt;3. Fool installation app to think VS is not installed &lt;p&gt;&amp;nbsp; &lt;p&gt;Since I really don’t have time to waste, I’ve chosen option number 3. I‘ve downloaded the famous Process Monitor from Microsoft, and monitored registry access by the installation app. Then I’ve noticed it has something to deal with: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DevDiv. &lt;p&gt;I’ve renamed it, and, what do you know… Setup Succeeded! &lt;p&gt;&amp;nbsp; &lt;p&gt;Few things to concern: &lt;p&gt;1. Rename the DevDiv key before installation begin to the end of installation. &lt;p&gt;2. Since the installation creates a new DevDiv, save it (export) to a file and then delete it. &lt;p&gt;3. Rename back the original DevDiv key and import the file you’ve just exported with the new changes. &lt;p&gt;&amp;nbsp; &lt;p&gt;AT YOUR OWN RISK &lt;p&gt;It works for me with one issue: XAML Package fails to load now on VS 2008. Really haven&amp;#39;t checked this before so I really don’t know if it caused by the installation. &lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1042422" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Tips+_2600_amp_3B00_+Tricks/default.aspx">Tips &amp;amp; Tricks</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/howto/default.aspx">howto</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/ITPRO/default.aspx">ITPRO</category></item><item><title>Windows 8 Development Tutorial – Part 1 – First Steps</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/03/03/windows-8-development-tutorial-part-1-first-steps.aspx</link><pubDate>Sun, 04 Mar 2012 02:40:21 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1025377</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1025377</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1025377</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/03/03/windows-8-development-tutorial-part-1-first-steps.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_0F72C78E.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:8px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" align="right" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_58BD1E9C.png" width="240" height="135" /&gt;&lt;/a&gt;Now that both Windows 8 Consumer Preview and Visual Studio 11 Beta have been released, it’s a fantastic time posting about Windows 8 programming, especially about the new Metro style based applications.&lt;/p&gt; &lt;p&gt;For the sake of rapid-start, I’ll save the writing about what Metro Style application is, but I’ll give you a link in case that you’ve missed that:&lt;/p&gt; &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/windows/apps/hh464920.aspx" href="http://msdn.microsoft.com/en-us/library/windows/apps/hh464920.aspx"&gt;http://msdn.microsoft.com/en-us/library/windows/apps/hh464920.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Installing Windows 8 Customer Preview&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Before we begin, I highly recommend you to install Windows 8 and learn about the new Metro UI language, since it’s totally different than what we are used to in current versions of windows.&lt;/p&gt; &lt;p&gt;Lets create a clean install of the Windows 8 Consumer on our Tablet, Laptop or Desktop PC, then we will install Visual Studio 11 Beta.&lt;/p&gt; &lt;p&gt;If you already have Windows 8 installed, skip this section.&lt;/p&gt; &lt;p&gt;There are several ways installing Windows 8 on our machine, and I think that the easiest and fastest is using a USB stick.&lt;/p&gt; &lt;p&gt;1. First go and &lt;a href="http://windows.microsoft.com/en-US/windows-8/iso"&gt;download&lt;/a&gt; the full Windows 8 Consumer Preview ISO file from Microsoft.&lt;/p&gt; &lt;p&gt;2. Get a USB stick big enough to contain the 3.3GB (x64) or 2.5GB (x86) ISO file and use the &lt;a href="http://www.microsoftstore.com/store/msstore/html/pbPage.Help_Win7_usbdvd_dwnTool"&gt;Windows 7 USB/DVD download tool&lt;/a&gt; to make your USB stick bootable with Windows 8 installation.&lt;/p&gt; &lt;p&gt;3. Create a bootable USB device using the tool and the Windows 8 ISO file.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/SNAGHTML11635830_2D0EE551.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SNAGHTML11635830" border="0" alt="SNAGHTML11635830" src="http://blogs.microsoft.co.il/blogs/tomershamam/SNAGHTML11635830_thumb_1100B717.png" width="244" height="131" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/SNAGHTML11649def_26EA2967.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SNAGHTML11649def" border="0" alt="SNAGHTML11649def" src="http://blogs.microsoft.co.il/blogs/tomershamam/SNAGHTML11649def_thumb_469B93E0.png" width="244" height="131" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/SNAGHTML1164afa2_0A7258E9.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SNAGHTML1164afa2" border="0" alt="SNAGHTML1164afa2" src="http://blogs.microsoft.co.il/blogs/tomershamam/SNAGHTML1164afa2_thumb_30D6CCE5.png" width="244" height="131" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/SNAGHTML1164bbe7_229AE4A6.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SNAGHTML1164bbe7" border="0" alt="SNAGHTML1164bbe7" src="http://blogs.microsoft.co.il/blogs/tomershamam/SNAGHTML1164bbe7_thumb_1F8886B1.png" width="244" height="131" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;4. Now that you have a bootable USB stick you can use it to create a clean installation of Windows 8 on your machine. Just plug the USB stick in the target machine, and boot from it. You can also run setup or use automatic startup if you already have Windows 7 or Windows 8 Preview installed on the target machine.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;HINT&lt;/strong&gt;: If you have the &lt;em&gt;&lt;a href="http://www.pcworld.com/article/239936/windows_8_tablet_hands_on.html"&gt;Windows 8 Samsung Tablet&lt;/a&gt;&lt;/em&gt; handed for free in the last Microsoft’s Build conference, you can boot from the USB stick by Holding the Window button while powering it on. A blue screen with three options should appear. Tap on &lt;strong&gt;Troubleshoot&lt;/strong&gt;, and then tap on &lt;strong&gt;Reset your PC&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;5. Booting from the USB stick or running the setup file directly from Windows, the installation process is very simple. Note that you may need to enter the following public product key: &lt;strong&gt;NF32V-Q9P3W-7DR7Y-JGWRW-JFCK8&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;6. The installation process may take a while and you may notice your device restarting at least one time before done. So seat back and continue reading this post… After few minutes, Windows 8 Installed! I’ve Signed-in with my Live account, and also installed some free-apps from the Windows Store, including Cut-the-Rope famous game.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_1C7628BC.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_2CA9A2C8.png" width="244" height="139" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_47E48C7A.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_3CDFAD85.png" width="229" height="139" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_32AE1318.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_511D7563.png" width="220" height="139" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_29E5BCDF.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_6AF89BFE.png" width="229" height="139" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_5126F680.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_4ABFD458.png" width="229" height="139" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_2E457329.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_608B8BBF.png" width="229" height="139" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/SNAGHTML1ad555ae_0DA3093F.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SNAGHTML1ad555ae" border="0" alt="SNAGHTML1ad555ae" src="http://blogs.microsoft.co.il/blogs/tomershamam/SNAGHTML1ad555ae_thumb_16724FE4.png" width="229" height="139" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_587B4FD6.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_26CD05F6.png" width="229" height="139" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;This new Beta is equipped with many Built-in apps, such as People, Mail, Calendar, Camera, SkyDrive, Video, Xbox LIVE Games, Maps, and more.&lt;/p&gt; &lt;p&gt;In case you’ve installed Windows 8 on existing Windows, don’t forget to remove the remaining old Windows&amp;nbsp; version, setup files, follows this link:&lt;/p&gt; &lt;p&gt;&lt;a title="http://windows.microsoft.com/en-US/windows7/How-do-I-remove-the-Windows-old-folder" href="http://windows.microsoft.com/en-US/windows7/How-do-I-remove-the-Windows-old-folder"&gt;http://windows.microsoft.com/en-US/windows7/How-do-I-remove-the-Windows-old-folder&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_46123D7A.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_40C5E77A.png" width="398" height="270" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Installing Visual Studio 11 Beta&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Ok, Now that you have a Windows 8 machine running, and of course, played a bit with the awesome Metro style UI, lets install Visual Studio 11 Beta. We will use it for developing our Windows 8 Metro style applications. Note that you can install it on a different machine and test the applications you developed on the Emulator or on the Windows 8 machine, connecting remotely. Personally, I prefer installing it on my Samsung i5 Slate device.&lt;/p&gt; &lt;p&gt;1. Download Visual Studio 11 Beta from here:&lt;a title="http://www.microsoft.com/visualstudio/11/en-us" href="http://www.microsoft.com/visualstudio/11/en-us"&gt;http://www.microsoft.com/visualstudio/11/en-us&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;NOTE&lt;/strong&gt;: I recommend downloading the ISO file.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=28975"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_6B34A948.png" width="398" height="101" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;2. Copy the ISO file you’ve just downloaded to a USB stick, or directly to a drive in your development Machine.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HINT: Windows 8 has a new feature for mounting an ISO file as a Virtual Drive. I will use this feature to install Visual Studio 11 Beta directly from the ISO file. You can burn the ISO file on a DVD, extract it to USB disk or use a virtual DVD drive application such as Daemon tools lite.&lt;/p&gt;&lt;/blockquote&gt;  &lt;p&gt;3. In case of Windows 8, go to Desktop mode (click on Desktop tile from the start screen), open the ISO file location, right click on it, then choose Mount. Then run the setup file.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_4B1C2D3C.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_052D8ACD.png" width="244" height="211" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_792E2B49.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_60C0A89D.png" width="244" height="211" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_403BF99C.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_3193DE68.png" width="163" height="211" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_6A411926.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_69D776E2.png" width="163" height="211" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;4. After installing Visual Studio 11 Beta, it will be automatically starting, and you would have have to choose a proffered development settings. I’ve chosen C#. This will arrange the templates so C# development comes first, and the rest after.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_58F2D2F2.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_65196E7B.png" width="324" height="184" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_6B62D5BA.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_622E4C8C.png" width="324" height="184" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Windows Runtime&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;One moment before diving into code, lets describe what is Windows Runtime, or WinRT:&lt;/p&gt; &lt;p&gt;“The Windows Runtime is designed to make it easy for you to create apps using the technologies that you know. You can write apps that are tailored to every hardware form factor. Your Metro style apps participate in the breadth and diversity of the Windows ecosystem. They&amp;#39;re optimized for touch, aware of the user&amp;#39;s location and identity, and hosted in the Windows Store. Metro style apps are always on and available for instant use, and always connected with the latest content from the web. Users can discover and purchase your apps in the Windows Store, and they can be confident that apps install quickly and uninstall cleanly.”&lt;/p&gt; &lt;p&gt;In other words, WinRT provides common runtime and type system for creating Metro style applications. It also provides set of classes and APIs which are common to several technologies such as C#/XAML, C++/XAML, JavaScript/HTML5. WinRT is based on native code, exposing its types using Meta Data, very similar to .NET, provides you an option to create a Metro style application using the technology you like, and share components between these technologies. Comparing to .NET Framework, WinRT is not limited only to .NET languages, it’s common to Managed, Native C++ and JavaScript.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/Windows-Runtime_7D69363E.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="Windows Runtime" border="0" alt="Windows Runtime" src="http://blogs.microsoft.co.il/blogs/tomershamam/Windows-Runtime_thumb_37E6C6C4.jpg" width="651" height="357" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;First Metro Style Application&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Now that you have Visual Studio 11 Beta installed, you may want to create your first “Hello World” Windows 8 Metro style application.&lt;/p&gt; &lt;p&gt;1. On the menu, choose &lt;strong&gt;File&lt;/strong&gt; –&amp;gt; &lt;strong&gt;New&lt;/strong&gt; –&amp;gt; &lt;strong&gt;Project&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;2. On the left, pick &lt;strong&gt;Windows Metro&lt;/strong&gt; style, then select &lt;strong&gt;Blank Application&lt;/strong&gt;. I’ll demonstrates other templates on my next posts of this series.&lt;/p&gt; &lt;p&gt;3. In the “Name” field, select a name for the new project – “HelloWorldUI”, also for the solution name “HelloWorld”, and then click OK.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;NOTE&lt;/strong&gt;: Clicking OK you be asked to have a Developer License. Just stay connected and provide you Live ID when asked.&lt;/p&gt; &lt;p&gt;As you can see, there’s a solution called HelloWorld and one project called HelloWorldUI on the right side of the screen. The project has one empty page called BlankPage.xaml. Expanding this file by clicking the arrow on the left, reveals additional file called BlankPage.cs.xaml.&lt;/p&gt; &lt;p&gt;Typically, a Metro style application contains at least one page. This page is the UI container of the Metro style application. The .xaml file is an XML file which defines the structure of the UI declaratively using an XML language called XAML. If you’re familiar with other XAML based UI technologies, such as WPF, Silverlight and Silverlight for WP7, you may be familiar with XAML for Metro style applications since it’s same concept.&lt;/p&gt; &lt;p&gt;The XAML file is used for describing the UI declaratively with UI elements such as Buttons, Lists, Layout panels and so on, where the CS file is used for specifying the logic behind the XAML.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: In case that you’re familiar with WEB programming, you can create a JavaScript Metro style based application, using HTML5 instead of XAML for the UI, and JavaScript instead of C# for code behind.&lt;/p&gt; &lt;p&gt;4. Open the Metro UI designer by double clicking on the BlankPage.xaml file. On the top half of the screen you may see the Designer, and on the bottom you may see the XAML editor.&lt;/p&gt; &lt;p&gt;Looking inside the XAML markup, you may see that it comprises root element named Page and few xmlns namespaces, and one child element named Grid. Running the application, a Page and Grid instances will be created and initialized. The XAML actually describes the Visual tree of WinRT objects should be created when running the application.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: WinRT stands for Windows Runtime, and it’s a native, common framework, providing common type system for all metro style based technologies and languages, such as C#, C++ and JavaScript.&lt;/p&gt; &lt;p&gt;5. On the left, click on the TOOLBOX pane. The toolbox contains the UI element you can drop into a page.&lt;/p&gt; &lt;p&gt;6. Select Button and drag it into the UI designer. Inside the designer, you can choose the button, drag it and change the size of it a bit.&lt;/p&gt; &lt;p&gt;7. Selecting the button, you may see its properties on the right pane, find the Content property and change its value to Hello!&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_500CC1D0.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_34FBA4D5.png" width="804" height="484" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;8. Double click on the Button. This will register the button’s Click event, and automatically open the C# editor. This is a good place to display the Hello World message.&lt;/p&gt; &lt;p&gt;9. Add the following code to the event handler created:&lt;/p&gt; &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt; &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; var dialog = new MessageDialog(&amp;quot;Hellow World!&amp;quot;);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; await dialog.ShowAsync();&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Also add the C# 4.5 new keyword called ‘&lt;strong&gt;async’&lt;/strong&gt; to the event handler method, since from now on, everything in a Metro style application is Asynchronous (ShowAsync).&lt;/p&gt;
&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; private async void Button_Click_1(object sender, RoutedEventArgs e)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     var dialog = new MessageDialog(&amp;quot;Hellow World!&amp;quot;);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     await dialog.ShowAsync();&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;












&lt;p&gt;10. Run the application you’ve created by clicking F% in Visual Studio.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: If you’re not running VS on Windows 8, we may choose to run your application on the Windows 8 Simulator installed as part of the Visual Studio 11. To run on the Simulator, replace “Local Machine” on the toolbar to “Simulator”, then click F5. Now clicking on the Hello button you may see the Hello World message.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_52FED42B.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_7D7026AA.png" width="404" height="244" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/image_47F9F536.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tomershamam/image_thumb_2462E840.png" width="404" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Congra! Now that you have the pre-basics of developing a Windows 8 Metro style application, you can start playing with VS and Windows 8 to create basic apps.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I’ll finish here, but next time I’ll explain a bit more about the Metro style application and UI. Stay tuned.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1025377" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Metro+Style/default.aspx">Metro Style</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Runtime/default.aspx">Windows Runtime</category></item><item><title>Windows 8 Consumer Preview (beta) is out!</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/02/29/windows-8-consumer-preview-beta-is-out.aspx</link><pubDate>Wed, 29 Feb 2012 22:13:43 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1022940</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1022940</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1022940</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/02/29/windows-8-consumer-preview-beta-is-out.aspx#comments</comments><description>&lt;p&gt;Windows 8 Beta build 8250 is out, and you can download it from here:&lt;/p&gt; &lt;p&gt;&lt;a title="http://windows.microsoft.com/en-US/windows-8/download" href="http://windows.microsoft.com/en-US/windows-8/download"&gt;http://windows.microsoft.com/en-US/windows-8/download&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The new beta is called Consumer Preview and it contains some installed apps and other 100 can be downloaded from the Windows Store.&lt;/p&gt; &lt;p&gt;Here are some of the new features you can find:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;New bootscreen  &lt;li&gt;New branding  &lt;li&gt;New shortcut menu  &lt;li&gt;New way to close Immersive Apps  &lt;li&gt;New start button  &lt;li&gt;New Aero lite theme  &lt;li&gt;New Ribbon organization &lt;li&gt;New splitted touch keyboard organisation&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1022940" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+8/default.aspx">Windows 8</category></item><item><title>Windows Devices User Group Meeting - Windows Phone Navigation &amp; Life Cycle</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/02/17/windows-devices-user-group-meeting-windows-phone-navigation-amp-life-cycle.aspx</link><pubDate>Fri, 17 Feb 2012 15:48:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1015203</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1015203</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1015203</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/02/17/windows-devices-user-group-meeting-windows-phone-navigation-amp-life-cycle.aspx#comments</comments><description>&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/WPUG_5F76CDBF.jpg"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-BOTTOM:0px;BORDER-LEFT:0px;MARGIN:8px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:inline;FLOAT:left;BORDER-TOP:0px;BORDER-RIGHT:0px;PADDING-TOP:0px;" title="WPUG" border="0" alt="WPUG" align="left" src="http://blogs.microsoft.co.il/blogs/tomershamam/WPUG_thumb_1824087E.jpg" width="116" height="133" /&gt;&lt;/a&gt;במפגש משתמשים Windows Devices השני, שיתקיים במיקרוסופט רעננה, בתאריך 28/2/2012, יום שלישי, אני מעביר הרצאה בנושא Windows Phone Navigation and Application Life Cycle.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בהרצאה זו אדבר על יכולות הניווט בין אפליקציות ובתוך אפליקציות Windows Phone, ואראה כיצד הן משפיעות על תהליך ריצת האפליקציה. כמו כן, נלמד להבדיל בין שני המצבים Dormancy ו- Tombstoning, וכיצד לקחת מצבים אלו בחשבון בזמן תכנון אפליקצית Windows Phone.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;לפרטים נוספים אודות הארוע, ורישום:&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://windowsphonenavandlifecycle.eventbrite.com/"&gt;http://windowsphonenavandlifecycle.eventbrite.com&lt;/a&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;אשמח לראותכם,&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;תומר שמם&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://codevalue.net/"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-BOTTOM:0px;BORDER-LEFT:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;PADDING-TOP:0px;" title="codevalue_logo" border="0" alt="codevalue_logo" src="http://blogs.microsoft.co.il/blogs/tomershamam/CodeValue-Logo_03_157DDD7E.png" width="136" height="34" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1015203" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Phone+Mango/default.aspx">Windows Phone Mango</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/User+Group/default.aspx">User Group</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/CodeValue/default.aspx">CodeValue</category></item><item><title>Advanced Windows Phone 7.5 Applications – Presentation and Demo</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/02/13/advanced-windows-phone-7-5-applications-presentation-and-demo.aspx</link><pubDate>Tue, 14 Feb 2012 00:32:30 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1013096</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=1013096</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=1013096</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/02/13/advanced-windows-phone-7-5-applications-presentation-and-demo.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/live-tiles_554E4244.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:8px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="live-tiles" border="0" alt="live-tiles" align="right" src="http://blogs.microsoft.co.il/blogs/tomershamam/live-tiles_thumb_19AE3384.jpg" width="105" height="104" /&gt;&lt;/a&gt;Thank you for participating my Advanced Windows Phone 7.5 Applications session at Microsoft, Raanana today. It was a great fun, and I’m very happy that you’ve enjoyed the session.&lt;/p&gt; &lt;p&gt;As I promissed, &lt;a href="https://skydrive.live.com/redir.aspx?cid=d5e69be94633397e&amp;amp;resid=D5E69BE94633397E!325&amp;amp;parid=D5E69BE94633397E!129"&gt;here is a SkyDrive link&lt;/a&gt; for both the Presentation and Demo code.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Please leave comments should you have any questions about the session.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Thanks,&lt;/p&gt; &lt;p&gt;Tomer Shamam&lt;/p&gt; &lt;p&gt;&lt;a href="http://codevalue.net"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="codevalue_logo" border="0" alt="codevalue_logo" src="http://blogs.microsoft.co.il/blogs/tomershamam/CodeValue-Logo_03_114A5E2D.png" width="180" height="45" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1013096" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Open+House/default.aspx">Open House</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Phone+Mango/default.aspx">Windows Phone Mango</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/CodeValue/default.aspx">CodeValue</category></item><item><title>Developers Seminar at Microsoft about Advanced Windows Phone 7.5</title><link>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/01/26/open-house-at-microsoft-about-advanced-windows-phone-7-5.aspx</link><pubDate>Thu, 26 Jan 2012 13:50:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:998038</guid><dc:creator>Tomer Shamam</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/rsscomments.aspx?PostID=998038</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/tomershamam/commentapi.aspx?PostID=998038</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/01/26/open-house-at-microsoft-about-advanced-windows-phone-7-5.aspx#comments</comments><description>&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tomershamam/Windows_Phone-Logo_314DF327.jpg"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-BOTTOM:0px;BORDER-LEFT:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:inline;FLOAT:left;BORDER-TOP:0px;BORDER-RIGHT:0px;PADDING-TOP:0px;" title="Windows_Phone Logo" border="0" alt="Windows_Phone Logo" align="left" src="http://blogs.microsoft.co.il/blogs/tomershamam/Windows_Phone-Logo_thumb_17E8809E.jpg" width="240" height="50" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;אני שמח להזמין אתכם ליום עיון למפתחים במיקרוסופט רעננה, בתאריך &lt;strong&gt;13/2/2012&lt;/strong&gt; שיוצא ביום שני, בו אני מרצה בנושא &lt;strong&gt;Advanced Windows Phone 7.5 Applications&lt;/strong&gt;.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בהרצאה זו נדבר על מרכיב חדש שהתווסף לגרסת מנגו, שמאפשר לתהליכים באפליקציה לרוץ ברקע בזמן שהאפליקציה אינה רצה. מה שבעצם מכונה Background Task, ונלמד כיצד בעזרת תהליכים מקביליים אלו תוכל האפליקציה לעדכן Tiles, לבדוק שינויי סטטוס, לבצע סנכרון מול השרת, ועוד, ובו זמנית לשמור על חיי סוללה תקינים וחווית משתמש איכותית.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;פרטים נוספים אודות האירוע, והרשמה תוכלו למצוא בלינק הבא:&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://codevalue.net/events/event/applications-development-for-windows-phone"&gt;http://codevalue.net/events/event/applications-development-for-windows-phone&lt;/a&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;נשמח לראותכם,&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;תומר שמם&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;img style="DISPLAY:inline;" title="codevalue_logo" alt="codevalue_logo" src="http://blogs.microsoft.co.il/blogs/tomershamam/CodeValue-Logo_03_3C106BDE.png" width="176" height="44" /&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a title="http://codevalue.net" href="http://codevalue.net/"&gt;http://codevalue.net&lt;/a&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=998038" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Phone+Mango/default.aspx">Windows Phone Mango</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://blogs.microsoft.co.il/blogs/tomershamam/archive/tags/CodeValue/default.aspx">CodeValue</category></item></channel></rss>