<?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>Arik Poznanski&amp;#39;s Blog : Windows Azure</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+Azure/default.aspx</link><description>Tags: Windows Azure</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>3-Screens Development using WPF, SL and WP7 - SDP 2011 Conference</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/16/3-screens-development-using-wpf-sl-and-wp7-sdp-2011-conference.aspx</link><pubDate>Wed, 16 Mar 2011 17:59:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:806885</guid><dc:creator>arik</dc:creator><slash:comments>3</slash:comments><description>&lt;div style="PADDING-BOTTOM:4px;MARGIN:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;FLOAT:none;PADDING-TOP:4px;" class="wlWriterHeaderFooter"&gt;&lt;iframe style="BORDER-BOTTOM:medium none;BORDER-LEFT:medium none;WIDTH:130px;HEIGHT:80px;BORDER-TOP:medium none;BORDER-RIGHT:medium none;" src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/16/3-screens-development-using-wpf-sl-and-wp7-sdp-2011-conference.aspx" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;Yesterday I’ve delivered my lecture titled “&lt;strong&gt;3-Screens Development using WPF, SL and WP7&lt;/strong&gt;” in the SDP 2011 conference.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/197389_201361109891595_184255348268838_680237_2957281_n_2EDA2E11.jpg"&gt;&lt;img style="MARGIN:0px auto;DISPLAY:block;FLOAT:none;" title="197389_201361109891595_184255348268838_680237_2957281_n" alt="197389_201361109891595_184255348268838_680237_2957281_n" src="http://blogs.microsoft.co.il/blogs/arik/197389_201361109891595_184255348268838_680237_2957281_n_thumb_4F5147F6.jpg" width="720" height="540" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In this lecture I’ve presented the application &lt;a href="http://code.msdn.microsoft.com/FlashCards"&gt;FlashCards.Show&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;which has 3 clients in WPF, Silverlight and Windows Phone 7.&lt;/p&gt;
&lt;p&gt;I showed how to share the code base between the different clients using: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MVVM &lt;/li&gt;
&lt;li&gt;Adding files as links &lt;/li&gt;
&lt;li&gt;Preprocessor symbols &lt;/li&gt;
&lt;li&gt;OOP &lt;/li&gt;
&lt;li&gt;Portable Library tools &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Then I showed a few features that exist in WPF and don’t exist in Silverlight, and how one can overcome this gap.&lt;/p&gt;
&lt;p&gt;Specifically I showed how to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Implement &lt;strong&gt;Commands&lt;/strong&gt; in Silverlight 3 &lt;/li&gt;
&lt;li&gt;Implement &lt;strong&gt;ClipToBounds&lt;/strong&gt; property &lt;/li&gt;
&lt;li&gt;Implement a &lt;strong&gt;DataTemplateSelector&lt;/strong&gt; replacement &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;I want to thank all the people who came to my lecture today. &lt;br /&gt;I really enjoyed it and I hope you too.&lt;/p&gt;
&lt;p&gt;You can download the PowerPoint presentation and the demos &lt;a href="http://cid-552e8ea12a93deba.office.live.com/browse.aspx/.Public?uc=1"&gt;here&lt;/a&gt;&lt;strong&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In addition you can find more references on porting from WPF to Silverlight in the following posts:&lt;/p&gt;
&lt;p&gt;&lt;a title="Porting from WPF to Silverlight- The Missing Pieces, Part 1" href="http://blogs.microsoft.co.il/blogs/arik/archive/2010/09/21/porting-from-wpf-to-silverlight-the-missing-pieces-part-1.aspx"&gt;Porting from WPF to Silverlight- The Missing Pieces, Part 1&lt;/a&gt; &lt;br /&gt;&lt;a title="Porting from WPF to Silverlight- The Missing Pieces, Part 2" href="http://blogs.microsoft.co.il/blogs/arik/archive/2010/09/23/porting-from-wpf-to-silverlight-the-missing-pieces-part-2.aspx"&gt;Porting from WPF to Silverlight- The Missing Pieces, Part 2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I will post again when my lecture will be available to view on &lt;a href="http://scc.sela.co.il/scc"&gt;Sela College Channel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;That’s it for now, &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=806885" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Sela/default.aspx">Sela</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/SDP/default.aspx">SDP</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/SDP+2011/default.aspx">SDP 2011</category></item><item><title>Flashcards.Show – Planning a Cross-Platform Solution</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/13/flashcards-show-planning-a-cross-platform-solution.aspx</link><pubDate>Sun, 13 Mar 2011 23:02:11 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:805807</guid><dc:creator>arik</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Following is another post by &lt;a href="http://windowsteamblog.com/members/yochay-kiriaty/"&gt;Yochay Kiriaty&lt;/a&gt; on a project I’ve done for Microsoft involving WPF, Silverlight, Windows Phone 7 and Windows Azure.&lt;/p&gt;  &lt;p&gt;If you’re interested in more details, make sure you come to my presentation at the coming &lt;a href="http://www.sela.co.il//s/sdp/_new/practice2011.html"&gt;SDP 2011&lt;/a&gt; conference (in two days!).&lt;/p&gt;  &lt;p&gt;[Cross-posted from &lt;a title="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/03/03/flashcards-show-planning-a-cross-platform-solution.aspx" href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/03/03/flashcards-show-planning-a-cross-platform-solution.aspx"&gt;http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/03/03/flashcards-show-planning-a-cross-platform-solution.aspx&lt;/a&gt;]&lt;/p&gt;  &lt;p&gt;I recently blogged about &lt;a href="http://windowsteamblog.com/windows/b/developers/archive/2011/02/17/flashcards-show-version-2-for-the-desktop-browser-and-windows-phone.aspx"&gt;Flashcards.Show Version 2 for WPF, Silverlight, and Windows Phone&lt;/a&gt;, which features the Flashcards.Show application. I’m not going to (again) review the app, but I do want to talk about how we developed the application and the design the code base to support multiple clients. &lt;/p&gt;  &lt;p&gt;The first version of Flashcards.Show was a Windows (WPF) application. This app was originally designed by &lt;a href="http://www.identitymine.com/forward/2011/02/identitymines-flashcards-show-application-easily-updated-by-yochayk-and-arikpoz/"&gt;IdentityMine&lt;/a&gt;, and used a few Windows 7 features such as multi-touch and taskbar integration. While the first version was great, we wanted to increase its value by enabling users to share the decks that they are creating. Therefore, when we set to work on version 2, we sought both functional and technological solutions to enable ease of use for the deck-sharing scenarios, as well as ease of development and maintenance of the code. &lt;/p&gt;  &lt;p&gt;Ease of use for a deck-sharing scenario is achieved by enabling users to simply click one button to start the sharing process, and another to send the deck. Behind the scenes, the application communicates with Windows Azure Flashcards services and uploads the deck. To keep it simple, we chose to use the default email client application as the means for sending the email. The pre-populated email that is generated includes a link to a Silverlight player that lets the email recipients view and interact with the attached deck. If you want to experience it first hand, you can try by &lt;a href="http://flashcardsshow.cloudapp.net:81/FlashCards.UI.SL.html?param=bTVkemgxYWxtYQ"&gt;clicking this link&lt;/a&gt;. The email also includes information on how to download the deck to your Windows Phone application and how to install (using ClickOnce) the WPF application.&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/1411.image_5F00_1891AC3E.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Sharing Code between WPF, Silverlight and Windows Phone&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;After we designed deck sharing, our next step was to build the Silverlight viewer. We knew that we were going to target Windows Phone as the next platform, and therefore our first decision was to make sure the runtimes are compatible. This drove the decision to build the viewer as a Silverlight 3 rather than Silverlight 4 application. While this decision costs us a few days of hard work to implement SL4 features in SL3 code, it paid off during the Windows Phone development phase. &lt;/p&gt;  &lt;p&gt;The second decision was to share as much code base as possible, which we did. The &lt;a href="http://code.msdn.microsoft.com/FlashcardsShow-84f2b3ba"&gt;Flashcards.Show source code&lt;/a&gt; includes a solution file that includes all the “client” (WPF, Silverlight, and Windows Phone) projects. If you’re interested, you can find another solution file that includes all Flashcards.Show projects, including Windows Azure in the &lt;b&gt;WindowsAzureService&lt;/b&gt; folder (once you extract the zip file). . For now, we’ll focus on the client projects:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;FlashCards.ViewModel.WPF&lt;/b&gt; – Contains the View-Model piece of the MVVM architecture that is used in the Windows application &lt;/li&gt;    &lt;li&gt;&lt;b&gt;FlashCards.ViewModel.SL&lt;/b&gt; – Contains the View-Model piece of the MVVM architecture that is used in the Silverlight application &lt;/li&gt;    &lt;li&gt;&lt;b&gt;FlashCards.ViewModel.Phone&lt;/b&gt; – Contains the View-Model piece of the MVVM architecture that is used in the Windows Phone application &lt;/li&gt;    &lt;li&gt;&lt;b&gt;FlashCards.UI.WPF&lt;/b&gt; – Contains the main Windows application, including both modes, Admin and Game&lt;b&gt; &lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;FlashCards.UI.SL&lt;/b&gt; – Contains the Silverlight application, including the different pages and resources &lt;/li&gt;    &lt;li&gt;&lt;b&gt;FlashCards.UI.Phone&lt;/b&gt; – Contains the Windows Phone application, including the different pages and resources &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Looking at the above list, you might be asking yourself if there are duplications between the different ViewModel projects and the UI projects. To start with, we have to compile for the target framework. The assembly that is used for WPF ViewModel .NET 3.5 is not supported by Silverlight or Windows Phone. In addition to the Silverlight assembly, Silverlight 3 also is not fully supported by Windows Phone. Therefore you have no other option but to compile to the required target CLR. &lt;/p&gt;  &lt;p&gt;But there is more to it than this, especially in regard to the ViewModel project. Since all clients basically share the same data model, they all have the same application logic, display the same games, and follow the same game rules. Therefore both the Silverlight and Windows Phone view-model projects include links to most of the &lt;b&gt;FlashCards.ViewModel.WPF&lt;/b&gt; view-model project. The WPF view-model contains the data model for the deck of cards (&lt;b&gt;cardDeck.cs&lt;/b&gt;), which is comprised of individual cards (&lt;b&gt;cardPair.cs&lt;/b&gt;), which again are comprised of two sides of a card (&lt;b&gt;card.cs&lt;/b&gt;). The model includes metadata (MetaData) information about the types of items (text, image, sound, video, URL) placed on each card. The games logic is also part of the view-model as you can see in the LearningGameViewModel.cs and the MatchingGameViewModel.cs. Feel free to further explore the code. &lt;/p&gt;  &lt;p&gt;If you review the &lt;b&gt;Flashcards.ViewModel.SL&lt;/b&gt; and &lt;b&gt;Flashcards.ViewModel.Phone&lt;/b&gt; projects, you’ll see that they are &lt;b&gt;virtually&lt;/b&gt; identical, and the code files in each of these projects simply contain &lt;b&gt;links&lt;/b&gt; to the original WPF view-model files. &lt;/p&gt;  &lt;p&gt;However, a more careful review of the &lt;b&gt;Flashcards.ViewModel.SL&lt;/b&gt; reveals some differences. For example, the Silverlight view-model doesn’t have the &lt;b&gt;Taskbar.cs&lt;/b&gt; file, since it doesn’t integrate with the Windows 7 taskbar as the WPF application does. The Silverlight version also doesn’t include the &lt;b&gt;DeckPackaging.cs&lt;/b&gt; file, since we don’t allow the Silverlight viewer to edit and upload decks to the Windows Azure service. &lt;/p&gt;  &lt;p&gt;We omit files and classes of features that are not functional in the Silverlight and Windows Phone solutions. You might want to note that the &lt;b&gt;Flashcards.ViewModel.Phone&lt;/b&gt; is identical to the Silverlight view-model. &lt;/p&gt;  &lt;p&gt;But there are additional changes that reflect the differences between the different platforms. In the view-model projects, you can find them in the &lt;b&gt;MainViewModel&lt;/b&gt;.cs file. The WPF and Silverlight versions of this file are quite different from each other. The Windows Phone code is embedded into the Silverlight project and we use WINDOWS_PHONE and SILVERLIGHT conditional compile time symbols to distinguish between the two. Reviewing the &lt;b&gt;MainViewModel.cs&lt;/b&gt; file, you’ll notice compile time conditional statements such as: #if WINDOWS_PHONE&lt;/p&gt;  &lt;p&gt;The reason we decided to use compile time symbols instead of creating a complete new copy of the &lt;b&gt;MainViewModel.cs&lt;/b&gt; file in the phone project is due to the simple fact that while there are differences between the two, they are small and relatively easily encapsulated. &lt;/p&gt;  &lt;p&gt;For example, the Windows Phone application can save decks in local store, a feature we are not using in Silverlight (although possible). This introduces a completely new set of features, like getting a deck from isolated storage over the network, which can be encapsulated for the Windows Phone implementation, and abstracted from the main view-model logic. We simply make sure the main view-model receives the required information for its internal data model, and when the code compiles and runs on Windows Phone, we make sure we wrap the additional functionality in such a way that it is transparent to the main view-model logic. &lt;/p&gt;  &lt;p&gt;For example, the &lt;b&gt;StartLoading&lt;/b&gt; function is implemented for Silverlight and Windows Phone. While the code is similar in nature, In the Windows Phone implementation you’ll notice that we need to jump through extra hoops. For example, in the &lt;b&gt;webClient_OpenReadCompleted&lt;/b&gt; method (called…), we don’t just return a stream back to the view-model, we also write the deck to the isolated storage. During the write time, we show a progress report, because such operations on a Windows Phone can take some time. &lt;/p&gt;  &lt;p&gt;Another example is the private &lt;b&gt;_instance_PropertyChanged &lt;/b&gt;method that is used in Windows Phone to control the navigation between the application pages, where in the Silverlight version we simply swap in and out user controls instead of complete pages. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Lesson Learned &lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Make your data model technology-agnostic as possible &lt;/li&gt;    &lt;li&gt;In your view-model, separate the way you handle data (the model) and the flow (screen, pages, etc.) of the application (the view) within your application logic. This will make it easier to introduce different behaviors and code for different platforms, just as we did for Windows Phone and SL &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Sharing UI (XAML) Is Difficult&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This brings us to the next topic of sharing UI and XAML. While sharing the View-Model is relatively straightforward, sharing the UI, is a completely different story. &lt;/p&gt;  &lt;p&gt;To start with, there is no #if def support for XAML. Therefore, you can’t use compile time symbols to control which XAML code end up in which project. Next, the namespaces are different. WPF uses a &lt;b&gt;System.Windows.Window&lt;/b&gt;, whereas Silverlight uses &lt;b&gt;System.Windows.Controls.UserControl&lt;/b&gt;. But even if you successfully overcome the namespace problem, there is a bunch of functionality in WPF4 that is not in Silverlight 3 (remember we chose SL3 for ease of migration to Windows Phone). Therefore, we end up rewriting most of the Silverlight application. With that said, you can still leverage all of your .NET and WPF skills as you write the Silverlight XAML, using data binding, date templates, and such. However, I really hope Shawn’s work on &lt;a href="http://blogs.msdn.com/b/sburke/archive/2011/01/23/3-screen-coding-is-here-portable-library-tools-allow-you-to-target-multiple-net-platforms-with-one-binary.aspx"&gt;3-Screen Coding Is Here: Portable Library Tools allow you to target multiple .NET platforms with one binary&lt;/a&gt; will help reduce such friction in the near future. &lt;/p&gt;  &lt;p&gt;While converting the WPF solutions to support Silverlight 3 was a pain, we deliberately targeted Silverlight 3 and not Silverlight 4 because Windows Phone Silverlight runtime is version 3. The reason is simple; we wanted the easiest possible port from Silverlight to Windows Phone. And the outcome was just that, a super easy port from Silverlight to Windows Phone. It took about &lt;b&gt;3 days&lt;/b&gt; to make the Silverlight application run on Windows Phone.&lt;/p&gt;  &lt;p&gt;If you look at the &lt;b&gt;FlashCards.UI.Phone&lt;/b&gt; project, you’ll find that most of the files are links to the Silverlight UI project. The differences are visible when we check the displaying screens. In Windows Phone Silverlight application there is only one way to display data – inside a Windows Phone Page. Therefore the Windows Phone and Silverlight solutions differ in that way. But even here, the Silverlight and Windows Phone versions are very similar. &lt;/p&gt;  &lt;p&gt;For example, the Windows Phone &lt;b&gt;LearningPage.xaml&lt;/b&gt; includes a &lt;b&gt;LearningGame &lt;/b&gt;user control (LearningGame.xaml). If you look at the Silverlight &lt;b&gt;LearningGame.XAML,&lt;/b&gt; you’ll find the same user control. While we had to copy the XAML file and make &lt;b&gt;some&lt;/b&gt; changes to fit the smaller screen, the core of the control, its behavior, and the code behind are very (very) similar. Therefore, even if we did end up copying XAML files, the core functionality remains the same. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Lessons Learned &lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Unfortunately, we can’t really share XAML code &lt;/li&gt;    &lt;li&gt;Some controls can be reused &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Bottom Line&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Obviously, there is no single silver bullet solution to sharing code across multiple platforms. With that said, while working on this project, we learned that there is a lot of room to navigate the platform’s limitations.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Using MVVM in your WPF/SL solution makes it easier to share the model. Your application data models, logic and any request to the server side backend can and should be shared. &lt;/li&gt;    &lt;li&gt;As for your UI, well, that really depends on the complexity of your design, and how closely you want your implementation to be dependent upon the platform form factor, like the phone’s small screen. However, even here there is some flexibility. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You are more than welcome to &lt;a href="http://code.msdn.microsoft.com/FlashcardsShow-84f2b3ba"&gt;download&lt;/a&gt; the project source code, which includes some documentation. And please &lt;a href="http://channel9.msdn.com/posts/FlashcardsShow-Version-2-running-on-Windows-Phone-and-IE"&gt;watch&lt;/a&gt; a short video on C9 demoing the 3 client applications. As usual, your feedback is most welcome. &lt;/p&gt;  &lt;p&gt;&lt;object type="application/x-silverlight-2" data="data:application/x-silverlight-2," width="512" height="288"&gt;&lt;param name="minRuntimeVersion" value="4.0.50401.0" /&gt;&lt;param name="source" value="http://channel9.msdn.com/scripts/Channel9.xap?v=1.5" /&gt;&lt;param name="initParams" value="mediaurl=http://media.ch9.ms/ch9/b72d/74f823fb-b458-47a6-b024-9e8c0143b72d/FlashcardsShow_ch9.wmv,thumbnail=http://media.ch9.ms/ch9/b72d/74f823fb-b458-47a6-b024-9e8c0143b72d/FlashcardsShow_512_ch9.jpg,deliverymethod=progressivedownload,autoplay=false,entryid=74f823fbb45847a6b0249e8c0143b72d" /&gt;&lt;/object&gt;&lt;/p&gt;  &lt;p&gt;I want to thank &lt;a href="http://blogs.microsoft.co.il/blogs/arik/"&gt;Arik Poznanski&lt;/a&gt;, from Sela group, who helped drive the second phase of Flashcards.show.&lt;/p&gt;  &lt;p&gt;Follow Windows Phone announcements on Twitter at &lt;a href="http://twitter.com/wp7dev"&gt;WP7DEV&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Follow &lt;a href="http://twitter.com/yochayk"&gt;Yochay on Twitter&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Get &lt;a href="http://create.msdn.com/en-US/"&gt;started&lt;/a&gt; with &lt;a href="http://create.msdn.com/en-us/home/getting_started"&gt;free tools&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/wp7trainingcourse.aspx"&gt;free training&lt;/a&gt;, and &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/08/17/windows-phone-7-jump-start-training.aspx"&gt;free Jump Start video course&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(Post edited by Barbara Alban)&lt;/p&gt;  &lt;p&gt;[end of cross-post]&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/13/flashcards-show-planning-a-cross-platform-solution.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/13/flashcards-show-planning-a-cross-platform-solution.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/13/flashcards-show-planning-a-cross-platform-solution.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/13/flashcards-show-planning-a-cross-platform-solution.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=172641" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=805807" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/SDP/default.aspx">SDP</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/FlashCards.Show/default.aspx">FlashCards.Show</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Azure/default.aspx">Azure</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/SDP+2011/default.aspx">SDP 2011</category></item><item><title>Flashcards.Show Version 2 for the Desktop, Browser, and Windows Phone</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/04/flashcards-show-version-2-for-the-desktop-browser-and-windows-phone.aspx</link><pubDate>Fri, 04 Mar 2011 21:15:38 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:801071</guid><dc:creator>arik</dc:creator><slash:comments>4</slash:comments><description>&lt;p&gt;Following is a great post by &lt;a href="http://windowsteamblog.com/members/yochay-kiriaty/"&gt;Yochay Kiriaty&lt;/a&gt; on a project I’ve done involving WPF, Silverlight, Windows Phone 7 and Windows Azure.&lt;/p&gt;  &lt;p&gt;If you’re interested in more details, make sure you come to my presentation at the coming &lt;a href="http://www.sela.co.il//s/sdp/_new/practice2011.html"&gt;SDP 2011&lt;/a&gt; conference.&lt;/p&gt;  &lt;p&gt;[Cross-posted from &lt;a title="http://windowsteamblog.com/windows/b/developers/archive/2011/02/17/flashcards-show-version-2-for-the-desktop-browser-and-windows-phone.aspx" href="http://windowsteamblog.com/windows/b/developers/archive/2011/02/17/flashcards-show-version-2-for-the-desktop-browser-and-windows-phone.aspx"&gt;http://windowsteamblog.com/windows/b/developers/archive/2011/02/17/flashcards-show-version-2-for-the-desktop-browser-and-windows-phone.aspx&lt;/a&gt;]&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-70-metablogapi/1884.image_5F00_7B944EBB.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;The Flashcards.show application has been around for few months now. It is mostly used as a developer’s reference and demo for showing specific and cool Windows 7 features. While the first version of the Flashcards let you create all kinds of decks and then consume these cards in the form of games, you could not share any of the great cards you created with anyone else except by sending the deck file itself via email..&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-70-metablogapi/3566.image_5F00_322E69C9.png" alt="" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;Figure 1: Flashcards.Show in “Game” mode&lt;/p&gt;  &lt;p&gt;With that in mind, we started working on Flashcards.Show &lt;strong&gt;version 2&lt;/strong&gt;. Our goal was to enable seamless and easy sharing of decks among users across different computers. The idea was simple, upload the deck to the cloud, and let the user send a message to whomever the user wants to share the deck with. That message will include a link for the receiving party to click on to launch a web browser and run a Silverlight application that can “play” the shared deck. The Silverlight application dynamically downloads the shared deck and displays that single deck just as it would be displayed on the WPF application. At this point the user can launch any of the 3 games: Learning, Matching, or Memory, with the same user experience as the WPF application. &lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-70-metablogapi/4744.image_5F00_05A539E3.png" alt="" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;Figure 2: Flashcards.Show memory game running in IE as Silverlight application&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Note&lt;/i&gt;&lt;/b&gt;&lt;i&gt;: The shared decks have a few limitations. The deck size can’t exceed 5MB and we don’t allow video or audio. All restrictions are functional and not technical. We didn’t want to get into too deep of a development cycle. &lt;/i&gt;&lt;/p&gt;  &lt;p&gt;So far so good, we have a WPF application that can share decks through the cloud and a Silverlight application that can play these decks. The next logical step was to try and run the Silverlight application on Windows Phone. Since one of Windows Phone development models is Silverlight, there is a good chance the app will run. So we tried. As you can see it works!&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-70-metablogapi/0574.image_5F00_274162B4.png" alt="" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;Figure 3: Flashcards.Show running on the Windows Phone emulator&lt;/p&gt;  &lt;p&gt;The Flashcards.Show application runs on Windows Phone as a Silverlight application and can display the same deck that the WPF application shared with the web Silverlight. The same content and the same games can be played on Windows, on the web running Silverlight, and on Windows Phone. &lt;/p&gt;  &lt;p&gt;If you want to download the application, feel free to use the &lt;a href="http://flashcardsshowclient.blob.core.windows.net/flashcards/WPFClient/FlashCards.Show.application"&gt;Flashcards.Show ClickOnce install&lt;/a&gt;. If you want access to the code, please visit &lt;a href="http://code.msdn.microsoft.com/FlashCards"&gt;Flashcards&lt;/a&gt; on MSDN Code Gallery. &lt;/p&gt;  &lt;p&gt;So there you have it – a single application that run on three different platforms backed by Windows Azure as the supporting cloud service. The nice thing about the entire Flashcards.Show implementation is our ability (by design) to share a lot of code and resources between WPF, Silverlight, and Windows Phone. &lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-70-metablogapi/3201.Drawing1_5F00_244C2AD1.jpg" alt="" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;Figure 4: Flashcards.Show high level architecture &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How does it work?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The Flashcards.Show application is built from two main components: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The suite of client applications – WPF for Windows, Silverlight for web, and Windows Phone &lt;/li&gt;    &lt;li&gt;The cloud piece, a series of web services running on Windows Azure backed by Azure storage. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In this series of posts, we will NOT explain the cloud part, but will focus on the Silverlight and Windows Phone implementations.&lt;/p&gt;  &lt;p&gt;When you download the &lt;a href="http://code.msdn.microsoft.com/FlashcardsShow-84f2b3ba"&gt;Flashcard.Show version 2 source code&lt;/a&gt;, you will find a single Visual Studio solution file (FlashCardsSolution) that contains 10 different projects:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;FlashCards.UI.Phone&lt;/strong&gt; – Contains the Windows Phone application, including the different pages and resources &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;FlashCards.UI.SL&lt;/strong&gt; – Contains the Silverlight application, including the different pages and resources &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;FlashCards.UI.WPF&lt;/strong&gt; – Contains the main Windows application, including both modes, Admin and Game &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;FlashCards.ViewModel.Phone&lt;/strong&gt; – Contains the View-Model piece of the MVVM architecture that is used in the Windows Phone application &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;FlashCards.ViewModel.SL&lt;/strong&gt; – Contains the View-Model piece of the MVVM architecture that is used in the Silverlight application &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;FlashCards.ViewModel.WPF&lt;/strong&gt; – Contains the View-Model piece of the MVVM architecture that is used in the Windows application &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;FlashCardsServices&lt;/strong&gt; – Contains the Windows Azure project that references the services that are deployed with it &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;FlashCardsServices.Contracts&lt;/strong&gt; – Contains the definition of the services use by the various Flashcards.Show applications &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;FlashCardsServices.Entities&lt;/strong&gt; – Contains the model of the supporting web services &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;FlashWCFWebRole&lt;/strong&gt; – Contains the web services that the different Flashcards.Show applications use &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Looking at the above list, you might be asking yourself, what are the duplications between the different ViewModel projects and the UI projects? &lt;/p&gt;  &lt;p&gt;To start with, we have to compile for the target platform (Windows, Silverlight, and Windows Phone), you have no other option but to compile to the required target CLR. For a little bit of background, please watch Shawn Burke’s “&lt;a href="http://bit.ly/aUlqkU"&gt;3-Screen Coding: Sharing code between Windows Phone, Silverlight, and .NET&lt;/a&gt;”. This sample, doesnt use the library Shawn is referring to in his talk, but it would sure make our life easier. &lt;/p&gt;  &lt;p&gt;However, that doesn’t mean we just have to duplicate code. This is especially true in regards to the ViewModel (part of MVVM) piece of the application. Since all clients basically share the same model, they all have the same logic and display the same games and screen flow. Therefore, as you can see from the figure on the left, the WPF view-model (FlashSards.ViewModel.WPF) is the main view model we are using, and the phone’s view-model (FlashSards.ViewModel.Phone) and Silverlight view-model (FlashSards.ViewModel.SL) simply &lt;b&gt;link&lt;/b&gt; to the relevant view model files. As you can see from the image, little arrows indicate that the relevant files are linked (click on the image to the left to see a larger version of it). This shows that we are maintaining a single view-model for all clients.&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-70-metablogapi/6746.image41_5F00_4D5A5301.png" width="207" height="547" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;The UI is a little bit trickier. The difference between Silverlight 3 and WPF 4 runtimes are such that in our case, it is easier to simply rewrite the Silverlight application (remember, we choose to target SL3 to make the porting to Windows Phone easier). The FlashCards.UI.SL is a Silverlight project that mimics a lot of the WPF functionality, but with Silverlight capabilities. &lt;/p&gt;  &lt;p&gt;You can still leverage all of your .NET and WPF skills as you write the Silverlight XAML and use data binding. We deliberately targeted Silverlight 3 and not Silverlight 4 because Windows Phone Silverlight runtime is version 3. The reason is simple; we wanted the easiest possible port from Silverlight to Windows Phone. And the outcome was just that, a super easy port from Silverlight to Windows Phone. It took about 3 days to make the Silverlight application run on Windows Phone. &lt;/p&gt;  &lt;p&gt;As you can see from the figure to the left, most of the Windows Phone UI project- FlashCards.UI.Phone files are links (including the folders that are collapsed in image #6.). The links point to the Silverlight web application implementation FlashCards.UI.SL.&lt;/p&gt;  &lt;p&gt;The files that could not be linked are those under Views. These files include XAML that is directly related to the way we display the specific pages on the phone. The phone’s form-factor is much smaller, and therefore we can fit fewer objects into it. With that in mind the implementation of the XAML was similar but not identical.&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-70-metablogapi/4863.image52_5F00_5D19E805.png" width="214" height="558" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Unlike regular C# code, XAML doesn’t support of &lt;b&gt;#ifdef&lt;/b&gt;, therefore we had to write new XAML for all the views in the game. But even then we could copy large parts of the already existing XAML. &lt;/p&gt;  &lt;p&gt;At this stage I am not going to jump into the details of the implementation, mainly because there are a lot of them. You are more than welcome to &lt;a href="http://code.msdn.microsoft.com/FlashcardsShow-84f2b3ba"&gt;download&lt;/a&gt; the source code, which includes documentation. You can also &lt;a href="http://channel9.msdn.com/posts/FlashcardsShow-Version-2-running-on-Windows-Phone-and-IE"&gt;watch&lt;/a&gt; a short video on C9.&lt;/p&gt; &lt;object type="application/x-silverlight-2" data="data:application/x-silverlight-2," width="512" height="288"&gt;&lt;param name="minRuntimeVersion" value="4.0.50401.0" /&gt;&lt;param name="source" value="http://channel9.msdn.com/scripts/Channel9.xap?v=1.3" /&gt;&lt;param name="initParams" value="mediaurl=http://media.ch9.ms/ch9/b72d/74f823fb-b458-47a6-b024-9e8c0143b72d/FlashcardsShow_ch9.wmv,thumbnail=http://media.ch9.ms/ch9/b72d/74f823fb-b458-47a6-b024-9e8c0143b72d/FlashcardsShow_512_ch9.jpg,deliverymethod=progressivedownload,autoplay=false" /&gt;&lt;/object&gt;  &lt;p&gt;I want to thank &lt;a href="http://blogs.microsoft.co.il/blogs/arik/"&gt;Arik Poznanski&lt;/a&gt; who helped drive the second phase of Flashcards.show.&lt;/p&gt;  &lt;p&gt;Follow Windows Phone announcements on Twitter at &lt;a href="http://twitter.com/wp7dev"&gt;WP7DEV&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Follow &lt;a href="http://twitter.com/yochayk"&gt;Yochay on Twitter&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Get &lt;a href="http://create.msdn.com/en-US/"&gt;started&lt;/a&gt; with &lt;a href="http://create.msdn.com/en-us/home/getting_started"&gt;free tools&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/wp7trainingcourse.aspx"&gt;free training&lt;/a&gt;, and &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/08/17/windows-phone-7-jump-start-training.aspx"&gt;free Jump Start video course&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(Post edited by Barbara Alban)&lt;/p&gt;  &lt;p&gt;[end of cross-post]&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/04/flashcards-show-version-2-for-the-desktop-browser-and-windows-phone.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/04/flashcards-show-version-2-for-the-desktop-browser-and-windows-phone.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/04/flashcards-show-version-2-for-the-desktop-browser-and-windows-phone.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/04/flashcards-show-version-2-for-the-desktop-browser-and-windows-phone.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=172641" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=801071" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/SDP/default.aspx">SDP</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/FlashCards.Show/default.aspx">FlashCards.Show</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Azure/default.aspx">Azure</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/SDP+2011/default.aspx">SDP 2011</category></item><item><title>PDC 2010, Day 1: Keynotes: Windows Azure</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2010/10/28/pdc-2010-day-1-keynotes-windows-azure.aspx</link><pubDate>Thu, 28 Oct 2010 18:12:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:733663</guid><dc:creator>arik</dc:creator><slash:comments>1</slash:comments><description>&lt;h3&gt;Windows Azure and PaaS&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/IMG_20101028_100635_thumb1_62B70CA7.jpg"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-BOTTOM:0px;BORDER-LEFT:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:block;FLOAT:none;MARGIN-LEFT:auto;BORDER-TOP:0px;MARGIN-RIGHT:auto;BORDER-RIGHT:0px;PADDING-TOP:0px;" title="IMG_20101028_100635_thumb[1]" border="0" alt="IMG_20101028_100635_thumb[1]" src="http://blogs.microsoft.co.il/blogs/arik/IMG_20101028_100635_thumb1_thumb_70E55FCA.jpg" width="641" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;President of Microsoft&amp;#39;s Server and Tools Business, Bob Muglia, comes to the stage. &lt;br /&gt;He starts by reviewing the different types of cloud computing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Software as a Service (SaaS)&lt;/li&gt;
&lt;li&gt;Platform as a Service (PaaS)&lt;/li&gt;
&lt;li&gt;Infrastructure as a Service (IaaS)&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Then he dives in to the the advantages of PaaS vs. todays platforms:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In today’s platform you must deal with server, VM, network, storage and your application. Whereas in PaaS you only think of the application (no infrastructure).&lt;/li&gt;
&lt;li&gt;In today’s platform you must take care of your servers, apply patches, service releases, new upgrades and their possible consequence on your application. Whereas in PaaS this is all done for you and Microsoft will stay compatible when upgrading their service infrastructure.&lt;/li&gt;
&lt;li&gt;In today’s platform you need to write lot’s of code for compose your helper services yourself to make them work. Whereas in PaaS, you got a list of existing services provided by Microsoft that you can use.&lt;/li&gt;
&lt;li&gt;In today’s platform every problem has solutions that are different in many ways: network topology, operating system, storage, etc.. Whereas in PaaS the solution is always standardized, at lease from these perspectives.&lt;/li&gt;
&lt;li&gt;In today’s platform you need to plan your solution for peak load. Whereas in PaaS you can scale on-demand.&lt;/li&gt;
&lt;li&gt;In today’s platform you build the application to avoid &amp;amp; recover from failure. Whereas in PaaS you build your application to expect and withheld failure.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Windows Azure is the operating system for PaaS.It manages the underling hardware and provides services.&lt;/p&gt;
&lt;h3&gt;Some More Windows Azure News&lt;/h3&gt;
&lt;p&gt;All the services that are now available in the cloud will be made available to the private cloud.&lt;/p&gt;
&lt;p&gt;Microsoft is making their cloud open to anyone. That means that java is a first class citizen on Windows Azure. You can also build Windows Azure applications using eclipse. Support for dynamic languages like PHP and Ruby exists.&lt;/p&gt;
&lt;p&gt;Now there is a showcase by Chris Ford from Pixar Animation Studios that shows how they use Microsoft’s cloud and integrate it into their main, award-winning, rendering engine.&lt;/p&gt;
&lt;p&gt;The reason you need cloud computing for the render process in the first place is that rendering takes lot’s of CPU processing. For example, if the movie Toy Story 3 was rendered on a single CPU, it would take approximately 277 years to finish the rendering.&lt;/p&gt;
&lt;p&gt;Pixar chose Windows Azure for its cloud solution for the following reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Scalability – They need lot’s of computers for doing this type of cloud.&lt;/li&gt;
&lt;li&gt;Sustainability – They need the solution to be available two years later.. not every company can do such promises.&lt;/li&gt;
&lt;li&gt;It works – Microsoft cloud simply works.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;More Applications to the Cloud&lt;/p&gt;
&lt;p&gt;Bob Announce: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Windows Azure Virtual Machine Role – Allows to easily move a Windows Server 2008 R2 image into the cloud.&lt;/li&gt;
&lt;li&gt;Server Application Virtualization – Wraps the application and deploy to azure&lt;/li&gt;&lt;/ol&gt;
&lt;h3&gt;New features in the coming version of Windows Azure&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Extra small instance&lt;/li&gt;
&lt;li&gt;Remote Desktop&lt;/li&gt;
&lt;li&gt;Full IIS support&lt;/li&gt;
&lt;li&gt;Virtual Network&lt;/li&gt;
&lt;li&gt;Multiple administrators&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Now came Mark Russinovitch to present a demo that uses some of these applications. Mark shows how to use the new Windows Azure management console and how to customize installation of a role to the machine.&lt;/p&gt;
&lt;h3&gt;New TFS&lt;/h3&gt;
&lt;p&gt;Bob Muglia announce that next year Microsoft will provide TFS as a service. &lt;br /&gt;The demo is presented by Brian Harry which showed us that basically, after you configure your account over the web, the user gets the same UX like with the regular TFS and it also includes support for continues integration over the cloud, etc.&lt;/p&gt;
&lt;h3&gt;New and Updated Services&lt;/h3&gt;
&lt;p&gt;The following services are either new or updated:&lt;/p&gt;
&lt;p&gt;Windows Azure AppFabric:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Access Control Service&lt;/li&gt;
&lt;li&gt;Caching&lt;/li&gt;
&lt;li&gt;Service Bus&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;SQL Azure&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reporting&lt;/li&gt;
&lt;li&gt;DataCenter&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;We saw a demo by Don Box and Jonathan Carter that uses some of these new services.&lt;/p&gt;
&lt;p&gt;Also announcing: Windows Azure MarketPlace which includes DataCenter, and a Composition Service that supports WF.&lt;/p&gt;
&lt;p&gt;That’s it for now, &lt;br /&gt;Arik Poznanski.&lt;/p&gt;
&lt;div style="PADDING-BOTTOM:0px;MARGIN:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;PADDING-TOP:0px;" class="wlWriterHeaderFooter"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2010/10/28/pdc-2010-day-1-keynotes-windows-azure.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2010/10/28/pdc-2010-day-1-keynotes-windows-azure.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2010/10/28/pdc-2010-day-1-keynotes-windows-azure.aspx"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;BORDER-TOP:0px;BORDER-RIGHT:0px;" alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2010/10/28/pdc-2010-day-1-keynotes-windows-azure.aspx" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=733663" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Sela/default.aspx">Sela</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/PDC+2010/default.aspx">PDC 2010</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+Azure/default.aspx">Windows Azure</category></item></channel></rss>