<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Matias Bonaventura's Blog</title>
	<atom:link href="http://blogs.southworks.net/matiasb/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.southworks.net/matiasb</link>
	<description></description>
	<pubDate>Mon, 17 Aug 2009 03:14:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Prism Automation: Templates for implementing the MVVM pattern using the Composite Application Library</title>
		<link>http://blogs.southworks.net/matiasb/2009/08/15/prism-automation-templates-for-implementing-the-mvvm-pattern-using-the-composite-application-library/</link>
		<comments>http://blogs.southworks.net/matiasb/2009/08/15/prism-automation-templates-for-implementing-the-mvvm-pattern-using-the-composite-application-library/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 20:33:24 +0000</pubDate>
		<dc:creator>Matias Bonaventura</dc:creator>
		
		<category><![CDATA[Composite Application Guidance]]></category>

		<category><![CDATA[Patterns and Practices]]></category>

		<category><![CDATA[Prism]]></category>

		<category><![CDATA[Prism-v2]]></category>

		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[WPF]]></category>

		<category><![CDATA[Automation]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/matiasb/?p=43</guid>
		<description><![CDATA[With the help of Damian Schenkelman and Julian Dominguez, we created some Visual Studio Item Templates that provides the basic assets for implementing a new view using the MVVM pattern in Prism. These templates create the necessary files and classes for the view and viewModel parts of the pattern.
I will explain in this post how [...]]]></description>
			<content:encoded><![CDATA[<p>With the help of <a href="http://blogs.southworks.net/dschenkelman/">Damian Schenkelman</a> and <a href="http://blogs.southworks.net/jdominguez/">Julian Dominguez</a>, we created some <a href="//blogs.southworks.net/matiasb/files/2009/08/prism-mvvm-templates1.zip">Visual Studio Item Templates </a>that provides the basic assets for implementing a new view using the MVVM pattern in <a href="http://msdn.microsoft.com/en-us/library/cc707819.aspx">Prism</a>. These templates create the necessary files and classes for the view and viewModel parts of the pattern.</p>
<p>I will explain in this post how to install and use the Prism MVVM templates. If you are not familiar with the MVVM pattern the following links are a good staring point:</p>
<ul>
<li><a href="http://compositewpf.codeplex.com/Wiki/View.aspx?title=Model%20View%20ViewModel%20%28MVVM%29">Model View ViewModel (MVVM)</a> in the <a href="http://compositewpf.codeplex.com/Wiki/View.aspx?title=Knowledge%20Base">prism Knowledge Base</a>.</li>
<li><a href="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx">WPF Apps With The Model-View-ViewModel Design Pattern</a></li>
<li><a href="http://msdn.microsoft.com/en-us/magazine/dd458800.aspx">Model-View-ViewModel In Silverlight 2 Apps</a></li>
<li><a href="http://blogs.msdn.com/dancre/archive/2006/07/23/676272.aspx">DataModel-View-ViewModel pattern: 1</a></li>
<li><a href="http://www.orbifold.net/default/?p=550">WPF patterns : MVC, MVP or MVVM or…?</a></li>
</ul>
<p>These MVVM templates aim to help you facilitate the creation of <a href="http://msdn.microsoft.com/en-us/library/dd490819.aspx">views with presenters</a> when developing prism applications. Then we disscuss briefly some implementation considetarions.<br />
<a href="http://blogs.msdn.com/dphill/">David Hill</a> has recently posted the <a href="http://blogs.msdn.com/dphill/archive/2009/06/15/prism-quick-start-kit-update.aspx">Prism Quick Start Kit</a> which includes project templates for creating prism <a href="http://msdn.microsoft.com/en-us/library/dd458929.aspx">Modules</a> and <a href="http://msdn.microsoft.com/en-us/library/dd458910.aspx">Shell</a>, both for WPF and Silverlight. <a href="http://blogs.southworks.net/dschenkelman/">Damian</a> has created <a href="http://blogs.southworks.net/dschenkelman/2009/08/13/c-code-snippet-to-create-commands-with-attached-behaviors-using-prism/">code snippets</a> for easing the creation of Commands with attached Behaviors.</p>
<h4>How-To: Install the Prism MVVM Templates</h4>
<p>Installing the templates it&#8217;s really simple!</p>
<ol>
<li><a href="//blogs.southworks.net/matiasb/files/2009/08/prism-mvvm-templates1.zip">Dowloand templates</a> and unzip them into your Visual Studio templates folder. They are C# templates so they go here on my system:<br />
    <strong>My Documents\Visual Studio 2008\Templates\ItemTemplates\Visual C#</strong></li>
<li>To avoid getting a warning message the first time you use them, you can close Visual Studio and run the following command (as admin) in a Visual Studio Command Prompt window:<br />
    <strong>devenv.exe /installvstemplates</strong></li>
</ol>
<p>That&#8217;s all! you should now be able see them in the New Items dialog.</p>
<h4>How-To: Use the Prism MVVM Templates</h4>
<p>Using the templates it&#8217;s also really simple (that&#8217;s the idea of using templates after all :-)).</p>
<ol>
<li>Open any prism application in Visual Studio. (Templates will work in any kind of application, but you will have to reference CAL assemblies).</li>
<li>Right click on the project/folder where you want to place your new view and select <strong>Add / New Item&#8230;</strong>The New Item Dialog will appear.</li>
<li>Select <strong>Prism MVVM</strong> or <strong>Prism MVVM (with interfaces)</strong> from the My Templates category.<a href="http://blogs.southworks.net/matiasb/files/2009/08/image3.png"><img src="http://blogs.southworks.net/matiasb/files/2009/08/image-thumb3.png" border="0" alt="image" width="644" height="392" /></a></li>
<li>Click <strong>Add.</strong>  This will create the View with xaml and code behind, and the ViewModel. If you selected <strong>Prism MVVM (with interfaces)</strong> template, it will additionally create interfaces for the View and ViewModel (this is highly recommended as it will ease testing).</li>
</ol>
<p><a href="http://blogs.southworks.net/matiasb/files/2009/08/image1.png"><img src="http://blogs.southworks.net/matiasb/files/2009/08/image-thumb1.png" border="0" alt="image" width="349" height="107" /></a></p>
<p>Great, we have now the new view with it&#8217;s corresponding ViewModel.  To show the view you should register it in the appropriate region as usual. For example, using view discovery (if you didn&#8217;t used interfaces, you won&#8217;t need the first line):</p>
<blockquote>
<pre><span style="color: #0000ff">this</span>._container.RegisterType&lt;<span style="color: #2b91af">ICustomersViewModel</span>, <span style="color: #2b91af">CustomersViewModel</span>&gt;();
<span style="color: #0000ff">this</span>._regionManager.RegisterViewWithRegion(RegionNames.ButtomLeftRegion, () =&gt; <span style="color: #0000ff">this</span>._container.Resolve&lt;<span style="color: #2b91af">CustomersView</span>&gt;());</pre>
</blockquote>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>Using the above code in David&#8217;s Quickstart Solution, you can get the view shown:</p>
<p><a href="http://blogs.southworks.net/matiasb/files/2009/08/image4.png"><img src="http://blogs.southworks.net/matiasb/files/2009/08/image-thumb4.png" border="0" alt="image" width="352" height="239" /></a></p>
<h4>Implementation considerations:</h4>
<p>You will notice in the implementation of the view and viewModel that:</p>
<ol>
<li>View-First approach is used.</li>
<li>Templates can be used in WPF and Silverlight prism applications.</li>
<li>The implementation relies on prism, as it inyects the EA to the ViewModel.</li>
<li>A property is created in the viewModel, to demostrate databinding in the view.</li>
</ol>
<p>You can download the templates from <a href="//blogs.southworks.net/matiasb/files/2009/08/prism-mvvm-templates1.zip">here</a>.<br />
<a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.southworks.net%2fmatiasb%2f2009%2f08%2f15%2fprism-automation-templates-for-implementing-the-mvvm-pattern-using-the-composite-application-library%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.southworks.net%2fmatiasb%2f2009%2f08%2f15%2fprism-automation-templates-for-implementing-the-mvvm-pattern-using-the-composite-application-library%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/matiasb/2009/08/15/prism-automation-templates-for-implementing-the-mvvm-pattern-using-the-composite-application-library/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Automation Templates for the Composite Application Library: Prism Quick Start Kit</title>
		<link>http://blogs.southworks.net/matiasb/2009/08/06/automation-templates-for-the-composite-application-library-prism-quick-start-kit/</link>
		<comments>http://blogs.southworks.net/matiasb/2009/08/06/automation-templates-for-the-composite-application-library-prism-quick-start-kit/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 14:36:56 +0000</pubDate>
		<dc:creator>Matias Bonaventura</dc:creator>
		
		<category><![CDATA[Composite Application Guidance]]></category>

		<category><![CDATA[Patterns and Practices]]></category>

		<category><![CDATA[Prism]]></category>

		<category><![CDATA[Prism-v2]]></category>

		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[WPF]]></category>

		<category><![CDATA[Automation]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/matiasb/2009/08/06/automation-templates-for-the-composite-application-library-prism-quick-start-kit/</guid>
		<description><![CDATA[David Hill (patterns and practices architect) has been working recently on new Visual Studio Templates that provide an excellent starting point for WPF and Silverlight Prism-v2 applications.  This is an experiment on how p&#38;p could provide some level of automation for next versions of prism, so don&#8217;t hesitate to post any comment on David&#8217;s post.
You can [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.msdn.com/dphill/">David Hill</a> (patterns and practices architect) has been working recently on new Visual Studio Templates that provide an excellent starting point for WPF and Silverlight Prism-v2 applications.  This is an experiment on how p&amp;p could provide some level of automation for next versions of prism, so don&#8217;t hesitate to post any comment on David&#8217;s <a href="http://blogs.msdn.com/dphill/archive/2009/06/15/prism-quick-start-kit-update.aspx">post</a>.</p>
<p>You can download and install these templates from David&#8217;s blog:</p>
<ul>
<li><a href="http://blogs.msdn.com/dphill/archive/2009/05/29/prism-quick-start-kit.aspx">Prism Quick Start Kit</a></li>
<li><a href="http://blogs.msdn.com/dphill/archive/2009/06/15/prism-quick-start-kit-update.aspx">Prism Quick Start Kit Update</a></li>
</ul>
<p>The <a href="http://msdn.microsoft.com/en-us/library/dd458809.aspx">Composite Application Guidance for WPF and Silverlight</a> (a.k.a Prism) provides several <a href="http://msdn.microsoft.com/en-us/library/dd458858.aspx">Quickstarts</a> that demonstrate key concepts of the library and the <a href="http://msdn.microsoft.com/en-us/library/dd458919.aspx">Stock Trader Reference Implementation</a> which illustrate a real-world scenario. The Prism Quick Start Kit aims to provide the basic structure for prism projects and solutions, easy to understand and make use of the recommended practices.</p>
<p>The Prism Quick Start Kit comes with quick-start solutions, templates for the Shell and module projects and supports both WPF and Silvelright.</p>
<p><img src="http://blogs.msdn.com/blogfiles/dphill/WindowsLiveWriter/PrismQuickStartKitUpdate_8735/image_2.png" alt="" /></p>
<p>Hope you find them useful!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/matiasb/2009/08/06/automation-templates-for-the-composite-application-library-prism-quick-start-kit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How-to Hide Views inside Composite Application Guidance (aka Prism-v2) regions.</title>
		<link>http://blogs.southworks.net/matiasb/2009/07/02/how-to-hide-views-inside-composite-application-guidance-aka-prism-v2-regions/</link>
		<comments>http://blogs.southworks.net/matiasb/2009/07/02/how-to-hide-views-inside-composite-application-guidance-aka-prism-v2-regions/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 15:21:25 +0000</pubDate>
		<dc:creator>Matias Bonaventura</dc:creator>
		
		<category><![CDATA[Composite Application Guidance]]></category>

		<category><![CDATA[Patterns and Practices]]></category>

		<category><![CDATA[Prism]]></category>

		<category><![CDATA[Prism-v2]]></category>

		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/matiasb/?p=33</guid>
		<description><![CDATA[The IRegion interface allows to Add/Remove and Activate/Deactivate the views contained in the region. These two sets of actions let us manipulate the state of each view in regions. While the meaning of Add/Remove is clear, the semantics of Activate/Deactivate might be confusing as it greatly depends on the concrete implementation of IRegion.
Activate semantic by [...]]]></description>
			<content:encoded><![CDATA[<p>The <strong>IRegion</strong> interface allows to Add/Remove and Activate/Deactivate the views contained in the region. These two sets of actions let us manipulate the state of each view in regions. While the meaning of Add/Remove is clear, the semantics of Activate/Deactivate might be confusing as it greatly depends on the concrete implementation of <strong>IRegion</strong>.</p>
<p><strong><span style="text-decoration: underline">Activate semantic by concrete region implementation (between brackets is the type of control attached to by default):</span></strong></p>
<ul>
<li><strong>SingleActiveRegion (ContentControl):</strong> There is a maximum of one active region at a time. This means that activating a view might trigger a deactivation of another view.<br />
If the region is created with the default adapter (<strong>ContentControlRegionAdapter</strong>) the active view will also be only one visible, as it is set as the content of the ContentControl.</li>
<li><strong>AllActiveRegion (ItemsControl):</strong> All views that are kept in the region are active. Calling Deactivate on a view will throw an InvalidOperationException. All views are usually visible.</li>
<li><strong>Region (Selector): </strong>This region allows for multiple active and deactive views.<br />
If created with the default adapter (<strong>SelectorRegionAdapter</strong>) the active views will be kept in sync with the SelectedItem/SelectedItems of the control. So when calling Activate on a view, you can only select a single active view at a time. By setting the SelectedItems property of a listbox, you can set multiple views to active. All views (active and deactive) are visible.</li>
</ul>
<p>The <strong>RegionActiveAwareBehavior </strong>and the <strong>IActiveAware</strong> interface are very close related to the activate semantic. So for example, even if the IActiveAware interface is implemented in a view, if it is contained in an <strong>AllActiveRegion</strong>, the view will only be notified of the active state change only once (when added to the region).</p>
<h2>Hiding views</h2>
<p>Activating and deactivating views is usually confused with it&#8217;s visibility. If you deactivate a view, it will only hide it if the region is a SingleActiveRegion. It will throw an exception in AllActiveRegions and it will not hide the view in Regions.</p>
<p>The posibility of hiding views while keeping the view in the region is not implemented out-of-the-box in prism-v2. Hiding view only makes sense in <strong>ItemsControl</strong> containers, as in other containers views are automatically hidden when they are not active. Hiding views might be particularly helpful, for example if there is a requirement to hide certain <strong>TabItems</strong> (as deactivating the view won&#8217;t hide the tab, and setting <strong>Visibility=Hidden</strong> in the view won&#8217;t hide the tab).</p>
<p>With Damian Schenkelman, we created the following two classes (one for Silverlight and one for WPF) that add extension methods to allow hide/show views in prism-v2 regions (Download links below). WPF methods implements hide/show for all <strong>ItemsControl </strong>containers while Silverlight methods are only implemented for the <strong>TabControl</strong>.</p>
<blockquote><p>· <strong>SilverlightRegionExtensions</strong> (allow hide views in <strong>TabControl</strong> regions)</p>
<p>· <strong>WPFRegionExtensions</strong> (allow hide views in <strong>ItemsControl</strong> regions)</p></blockquote>
<p>The aforementioned classes expose the following extension methods for the <strong>IRegion</strong> interface:</p>
<blockquote><p>· <strong>Hide(string viewName</strong>): Hides a view registered with a particular name in the region.</p>
<p>· <strong>Hide(object view):</strong> Hides the view passed as a parameter.</p>
<p>· <strong>Show(string viewName):</strong> Shows a view registered with a particular name in the region.</p>
<p>· <strong>Show(object view):</strong> Shows the view passed as a parameter.</p></blockquote>
<p>We also created a sample application to show it&#8217;s usage and to highlight the difference betwen Add/Remove, Activate/Deactivate, Hide/Show.<br />
<a href="http://blogs.southworks.net/matiasb/files/2009/07/image.png"><img src="http://blogs.southworks.net/matiasb/files/2009/07/image-thumb.png" border="0" alt="image" width="284" height="255" /></a></p>
<p>You can play with it selecting the tab checkboxes and pressing the action buttons.</p>
<p> </p>
<h2>Download</h2>
<p>We uploaded the WPF and silverlight region extension method to the <a href="http://compositewpf.codeplex.com/">Prism codeplex site</a>. You can get these classes from <a href="http://compositewpf.codeplex.com/">RegionExtensions.zip</a>.</p>
<p>You can also downloaded the sample application from <a href="http://blogs.southworks.net/matiasb/files/2009/07/hideviewssample.zip">Hide Views Sample</a> .<br />
<a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.southworks.net%2fmatiasb%2f2009%2f07%2f02%2fhow-to-hide-views-inside-composite-application-guidance-aka-prism-v2-regions%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.southworks.net%2fmatiasb%2f2009%2f07%2f02%2fhow-to-hide-views-inside-composite-application-guidance-aka-prism-v2-regions%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/matiasb/2009/07/02/how-to-hide-views-inside-composite-application-guidance-aka-prism-v2-regions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How-to: Consume WCF services from Composite Application Guidance for WPF and Silverlight(Prism-v2) Modules</title>
		<link>http://blogs.southworks.net/matiasb/2009/06/20/how-to-consume-wcf-services-from-composite-application-guidance-for-wpf-and-silverlightprism-v2-modules/</link>
		<comments>http://blogs.southworks.net/matiasb/2009/06/20/how-to-consume-wcf-services-from-composite-application-guidance-for-wpf-and-silverlightprism-v2-modules/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 05:03:25 +0000</pubDate>
		<dc:creator>Matias Bonaventura</dc:creator>
		
		<category><![CDATA[Composite Application Guidance]]></category>

		<category><![CDATA[Patterns and Practices]]></category>

		<category><![CDATA[Prism]]></category>

		<category><![CDATA[Prism-v2]]></category>

		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[WCF]]></category>

		<category><![CDATA[WPF]]></category>

		<category><![CDATA[WebBrowser Control]]></category>

		<category><![CDATA[WebBrowser]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/matiasb/?p=30</guid>
		<description><![CDATA[Yesterday, while developing a demo app that uses Prism-v2, WCF services, ASP.NET web application and interaction with WebBrowser controls ,  I run into a little problem trying to consume the service from a module.  I thought could be useful posting about it to save someone a little time.
Update: Damian Schenkelman has posted WebBrowser control Quickstart [...]]]></description>
			<content:encoded><![CDATA[<div id="b203eda6-a1b2-40ad-91cb-386d527e99a6" class="wlWriterSmartContent" style="padding-right: 0px;padding-left: 0px;padding-bottom: 0px;margin: 0px;padding-top: 0px">Yesterday, while developing a <a href="http://blogs.southworks.net/dschenkelman/2009/06/23/webbrowser-control-quickstart-for-the-composite-application-guidance-for-wpf-and-silverlight-prism-v2/">demo app </a>that uses <a href="http://msdn.microsoft.com/en-us/library/dd458809.aspx">Prism-v2</a>, <a href="http://msdn.microsoft.com/en-us/library/ms735119.aspx">WCF services</a>, <a href="http://msdn.microsoft.com/en-us/asp.net/default.aspx">ASP.NET</a> web application and interaction with <a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.aspx">WebBrowser controls</a> ,  I run into a little problem trying to consume the service from a module.  I thought could be useful posting about it to save someone a little time.</div>
<div class="wlWriterSmartContent" style="padding-right: 0px;padding-left: 0px;padding-bottom: 0px;margin: 0px;padding-top: 0px"><strong>Update: </strong><a href="http://blogs.southworks.net/dschenkelman">Damian Schenkelman </a>has posted <a href="http://blogs.southworks.net/dschenkelman/2009/06/23/webbrowser-control-quickstart-for-the-composite-application-guidance-for-wpf-and-silverlight-prism-v2/">WebBrowser control Quickstart for the Composite Application Guidance for WPF and Silverlight (Prism-v2</a>) where you can find and download the demo.</div>
<h3>The Problem</h3>
<p>I had a WCF service in place. It was working fine with a ASP.NET web app, but when I tried to cunsume it from a Prism-v2 module I got the following exception:</p>
<p><em>&#8216;System.InvalidOperationException: Could not find default endpoint element that references contract &#8216;CustomerService.ICustomerService&#8217; in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.</em></p>
<p align="center"><a href="http://blogs.southworks.net/matiasb/files/2009/06/image.png"><img src="http://blogs.southworks.net/matiasb/files/2009/06/image-thumb.png" border="0" alt="image" width="397" height="97" /></a></p>
<p>I was using the <strong>app.config </strong>that was generated by the WCF &#8220;add service reference&#8221; wizard. I checked it&#8217;s content but everything was fine.</p>
<h3>The solution</h3>
<p><strong>Move the app.confing to the Shell project!</strong><br />
In prism modules are loaded dynamically, so they all run in the Shell project context. WCF was not finding my app.config because it was not in the right place.</p>
<p align="center"><a href="http://blogs.southworks.net/matiasb/files/2009/06/image1.png"><img src="http://blogs.southworks.net/matiasb/files/2009/06/image-thumb1.png" border="0" alt="image" width="163" height="273" /></a></p>
<p align="center"> </p>
<p style="text-align: left">This will do for simple applications, but most general application already have an app.config with settings. On the other hand, modules should be completely decoupled from the shell. A good way to resolve these issues is to set WCF configuration within the module programatically.</p>
<p align="left">I hope this is useful when consuming WCF Services from Prism Modules.<br />
 </p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.southworks.net%2fmatiasb%2f2009%2f06%2f20%2fhow-to-consume-wcf-services-from-composite-application-guidance-for-wpf-and-silverlightprism-v2-modules%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.southworks.net%2fmatiasb%2f2009%2f06%2f20%2fhow-to-consume-wcf-services-from-composite-application-guidance-for-wpf-and-silverlightprism-v2-modules%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/matiasb/2009/06/20/how-to-consume-wcf-services-from-composite-application-guidance-for-wpf-and-silverlightprism-v2-modules/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Migrating Composite Application Guidance (Prism-v2) to XBAP</title>
		<link>http://blogs.southworks.net/matiasb/2009/03/11/using-cal-with-xbap-applications/</link>
		<comments>http://blogs.southworks.net/matiasb/2009/03/11/using-cal-with-xbap-applications/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 02:23:26 +0000</pubDate>
		<dc:creator>Matias Bonaventura</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/matiasb/2009/03/11/using-cal-with-xbap-applications/</guid>
		<description><![CDATA[I&#8217;ve seen that there are quite a few questions on how to use Composite Application Guidance for WPF and Silverlight  (a.k.a Prism) with XBAP applications on the discussion list, so I&#8217;ll try show you in this post how to migrate the HelloWorld demo (included with CAL) to XBAP.  If you are in a hurry, you [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve seen that there are quite a few questions on how to use <strong>Composite Application Guidance for WPF and Silverlight</strong>  (a.k.a Prism) with XBAP applications on the <a href="http://compositewpf.codeplex.com/Thread/List.aspx?SearchText=xbap">discussion list</a>, so I&#8217;ll try show you in this post how to migrate the <strong>HelloWorld</strong> demo (included with <a href="http://msdn.microsoft.com/en-us/library/dd458809.aspx">CAL</a>) to XBAP.  If you are in a hurry, you can skip directly to the Solution.</p>
<h4>Problem</h4>
<p>The main issue is that XBAP applications rely on WPF framework to create the <strong>NavigationWindow</strong>s that will be holding XBAP pages and CAL needs to create the main window on the Bootstrapper (creating instances of <strong>NavigationWindow</strong>s is not allowed in PartialTrust applications).</p>
<p>The first thing that you will  do to convert your WPF application into an XBAP application is changing <strong>&lt;Window&gt;</strong> for <strong>&lt;Page&gt;</strong> in you XAMLs. In most scenarios that is practically all you have to do because WPF framework is intelligent enough to create the right environment for the application: If you are using <strong>Window</strong>s, it just creates a new instance of a window and calls it&#8217;s <strong>Show </strong>method (like you usually do in the CAL&#8217;s Bootstrapper). But if you are using <strong>Page</strong>s, it needs to host pages in <strong>NavigationWindow</strong>s or the Browser.</p>
<p>But, if you are using CAL after changing your <strong>Window</strong>s for <strong>Page</strong>s, you will end up commenting the call to the <strong>Show</strong> Method (pages don&#8217;t have a <strong>Show</strong> method) and setting the <strong>starupURI</strong> of the application. And that&#8217; were the root of the problem lies: WPF creates an instance of a <strong>Page</strong> and you are creating another instance in the Bootstrapper. That will mess up things and you will end up loosing references to the CAL&#8217;s regions and contentControls.</p>
<h4>Solution</h4>
<p>Based on Mokosh&#8217;s <a href="http://www.mokosh.co.uk/post/Prism-and-WPF-Browser-Application-(Xbap).aspx">Prism and WPF Browser Application (Xbap)</a> post that shows a good way run Prism v1 solution as XBAPs,  let&#8217;s migrate a Prism v2 solution to run as an XBAP application is as follows:</p>
<p>We will start with the <strong>HelloWorldDemo.Desktop </strong>Quickstart included in Prism v2<strong>.</strong></p>
<ol>
<li>Set the shell as the startup page of the application. To do that, open the <strong>App.xml</strong> file and add <strong>StartupUri=&#8221;Shell.xaml&#8221;</strong> to the <strong>&lt;Application&gt;</strong> element.<br />
<span style="color: #0000ff">&lt;</span><span style="color: #a31515">Application </span><span style="color: #ff0000">x:Class</span><span style="color: #0000ff">=</span>&#8220;<span style="color: #0000ff">HelloWorld.App</span>&#8221;<br />
<span style="color: #ff0000">xmlns</span><span style="color: #0000ff">=</span>&#8220;<span style="color: #0000ff">http://schemas.microsoft.com/winfx/2006/xaml/presentation</span>&#8221;<br />
<span style="color: #ff0000">xmlns:x</span><span style="color: #0000ff">=</span>&#8220;<span style="color: #0000ff">http://schemas.microsoft.com/winfx/2006/xaml</span>&#8221;<br />
<strong><span style="color: #ff0000">StartupUri</span><span style="color: #0000ff">=</span>&#8220;<span style="color: #0000ff">Shell.xaml</span>&#8220;</strong><span style="color: #0000ff">&gt;<br />
  &lt;</span><span style="color: #a31515">Application.Resources</span><span style="color: #0000ff">&gt;<br />
  &lt;/</span><span style="color: #a31515">Application.Resources</span><span style="color: #0000ff">&gt;<br />
&lt;/</span><span style="color: #a31515">Application</span><span style="color: #0000ff">&gt;</span></li>
<p><a href="http://11011.net/software/vspaste"></a></p>
<li>In the <strong>App.xaml</strong> code behind (<strong>App.xaml.cs</strong>) remove the <strong>OnStartup </strong>method. We will add the <strong>BootStrapper</strong> initialization afterwards.</li>
<li>In the <strong>Shell.xaml </strong>file change the <strong>&lt;Window&gt;</strong> element for a <strong>&lt;Page&gt;</strong> element. You should end up with the <strong>Shell.xaml</strong> code as follows:<br />
<strong><span style="color: #0000ff">&lt;</span><span style="color: #a31515">Page </span></strong><span style="color: #ff0000">x:Class</span><span style="color: #0000ff">=</span>&#8220;<span style="color: #0000ff">HelloWorld.Shell</span>&#8221;<br />
<span style="color: #ff0000">xmlns</span><span style="color: #0000ff">=</span>&#8220;<span style="color: #0000ff">http://schemas.microsoft.com/winfx/2006/xaml/presentation</span>&#8221;<br />
<span style="color: #ff0000">xmlns:x</span><span style="color: #0000ff">=</span>&#8220;<span style="color: #0000ff">http://schemas.microsoft.com/winfx/2006/xaml</span>&#8221;<br />
<span style="color: #ff0000">xmlns:cal</span><span style="color: #0000ff">=</span>&#8220;<span style="color: #0000ff">http://www.codeplex.com/CompositeWPF</span>&#8221;<br />
<span style="color: #ff0000">Title</span><span style="color: #0000ff">=</span>&#8220;<span style="color: #0000ff">Hello World</span>&#8221; <span style="color: #ff0000">Height</span><span style="color: #0000ff">=</span>&#8220;<span style="color: #0000ff">300</span>&#8221; <span style="color: #ff0000">Width</span><span style="color: #0000ff">=</span>&#8220;<span style="color: #0000ff">300</span>&#8220;<span style="color: #0000ff">&gt;<br />
  &lt;</span><span style="color: #a31515">ItemsControlName</span><span style="color: #0000ff">=</span>&#8220;<span style="color: #0000ff">MainRegion</span>&#8221; <span style="color: #0000ff">/&gt;<br />
<strong>&lt;/</strong></span><strong><span style="color: #a31515">Page</span><span style="color: #0000ff">&gt;</span></strong></li>
<p><a href="http://11011.net/software/vspaste"></a></p>
<li>In the <strong>Shell.cs </strong>make <strong>Shell </strong>inherit from <strong>Page </strong>instead of <strong>Window. </strong>Ej: <span style="color: #0000ff">public partial class </span><span style="color: #2b91af">Shell </span>: <span style="color: #2b91af">Page</span></li>
<p><a href="http://11011.net/software/vspaste"></a><a href="http://11011.net/software/vspaste"></a></p>
<li>To avoid creating a new instance of the shell, get the one created during the Application startup.  A good place to do that is the <strong>Shell</strong> constructor.</li>
<pre><span style="color: #0000ff">public </span>Shell()
{
    Bootstrapper bootStrapper = <span style="color: #0000ff">new </span>Bootstrapper();
    bootStrapper.ShellPage = <span style="color: #0000ff">this</span>;
    bootStrapper.Run();

    InitializeComponent();
}</pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<li>Now we will need to add a property to the <strong>Bootstrapper </strong>class to have a reference to the <strong>Shell</strong> and  then return it in the <strong>CreateShell</strong> method. So the complete <strong>Bootstrapper</strong> code should be:</li>
<pre><span style="color: #0000ff">class </span><span style="color: #2b91af">Bootstrapper </span>: UnityBootstrapper
{
    <span style="color: #0000ff">private </span>DependencyObject shellPage;
    <span style="color: #0000ff">public </span>DependencyObject ShellPage
    {
        <span style="color: #0000ff">get
        </span>{
            <span style="color: #0000ff">return </span>shellPage;
        }

        <span style="color: #0000ff">set
        </span>{
            shellPage = <span style="color: #0000ff">value</span>;
        }
    }

    <span style="color: #0000ff">protected override </span>DependencyObject CreateShell()
    {
        <span style="color: #0000ff">return </span>ShellPage;
    }

    <span style="color: #0000ff">protected override </span>IModuleCatalog GetModuleCatalog()
    {
        ModuleCatalog catalog = <span style="color: #0000ff">new </span>ModuleCatalog()
            .AddModule(<span style="color: #0000ff">typeof</span>(HelloWorldModule.HelloWorldModule));
        <span style="color: #0000ff">return </span>catalog;
    }
}</pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<li>Press <strong>F5</strong> and Enjoy!</li>
</ol>
<p><strong>Further improvements:</strong></p>
<ul>
<li>You can host the XBAP application directly in the browser if you follow these 6 steps proposed by Charles: <a href="http://www.charlespetzold.com/blog/2006/11/120718.html">Converting EXE Projects to XBAPs</a></li>
<li>You can take a look at <a href="http://blogs.southworks.net/dschenkelman/">Damian</a>&#8217;s migration of the Reference Implementation and download the XBAP RI: <a href="http://blogs.southworks.net/dschenkelman/2009/03/13/composite-application-guidance-for-wpf-silverlight-prism-v2-reference-implementation-migrated-to-xbap/">Composite Application Guidance for WPF &amp; Silverlight (Prism v2) Reference Implementation migrated to XBap</a></li>
</ul>
<p><a href="http://blogs.southworks.net/matiasb/files/2009/04/clip-image002.gif"><img src="http://blogs.southworks.net/matiasb/files/2009/04/clip-image002-thumb.gif" border="0" alt="clip_image002" width="244" height="243" /></a> <a href="http://blogs.southworks.net/matiasb/files/2009/04/clip-image004.gif"><img src="http://blogs.southworks.net/matiasb/files/2009/04/clip-image004-thumb.gif" border="0" alt="clip_image004" width="244" height="235" /></a></p>
<p>Technorati Tags: <a href="http://technorati.com/tags/Patterns%20and%20Practices">Patterns and Practices</a>,<a href="http://technorati.com/tags/Composite%20Application%20Guidance">Composite Application Guidance</a>,<a href="http://technorati.com/tags/WPF">WPF</a>,<a href="http://technorati.com/tags/XBAP">XBAP</a>,<a href="http://technorati.com/tags/Prism">Prism</a>,<a href="http://technorati.com/tags/CAL">CAL</a><br />
<a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.southworks.net%2fmatiasb%2f2009%2f03%2f11%2fusing-cal-with%e2%80%a6p-applicationsusing-cal-with-xbap-applications%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.southworks.net%2fmatiasb%2f2009%2f03%2f11%2fusing-cal-with%e2%80%a6p-applicationsusing-cal-with-xbap-applications%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/matiasb/2009/03/11/using-cal-with-xbap-applications/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SQL Services</title>
		<link>http://blogs.southworks.net/matiasb/2008/11/08/sql-services/</link>
		<comments>http://blogs.southworks.net/matiasb/2008/11/08/sql-services/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 09:53:44 +0000</pubDate>
		<dc:creator>Matias Bonaventura</dc:creator>
		
		<category><![CDATA[Azure]]></category>

		<category><![CDATA[SQL Services]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/matiasb/?p=10</guid>
		<description><![CDATA[Comming soon!
 

]]></description>
			<content:encoded><![CDATA[<p>Comming soon!</p>
<p> </p>
<p><a href="http://blogs.southworks.net/matiasb/files/2008/11/sql-services.jpg"><img class="alignnone size-medium wp-image-11" src="http://blogs.southworks.net/matiasb/files/2008/11/sql-services.jpg" alt="" width="300" height="168" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/matiasb/2008/11/08/sql-services/feed/</wfw:commentRss>
		</item>
		<item>
		<title>.Net Services</title>
		<link>http://blogs.southworks.net/matiasb/2008/11/08/net-services/</link>
		<comments>http://blogs.southworks.net/matiasb/2008/11/08/net-services/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 09:53:22 +0000</pubDate>
		<dc:creator>Matias Bonaventura</dc:creator>
		
		<category><![CDATA[Azure]]></category>

		<category><![CDATA[.Net Services]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/matiasb/?p=8</guid>
		<description><![CDATA[Comming Soon!
 

]]></description>
			<content:encoded><![CDATA[<p>Comming Soon!</p>
<p> </p>
<p><a href="http://blogs.southworks.net/matiasb/files/2008/11/net-services.jpg"><img class="alignnone size-medium wp-image-9" src="http://blogs.southworks.net/matiasb/files/2008/11/net-services.jpg" alt="" width="300" height="140" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/matiasb/2008/11/08/net-services/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows Azure</title>
		<link>http://blogs.southworks.net/matiasb/2008/11/08/windows-azure/</link>
		<comments>http://blogs.southworks.net/matiasb/2008/11/08/windows-azure/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 09:53:06 +0000</pubDate>
		<dc:creator>Matias Bonaventura</dc:creator>
		
		<category><![CDATA[Azure]]></category>

		<category><![CDATA[Windows Azure]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/matiasb/?p=5</guid>
		<description><![CDATA[ 
Windows Azure is part of the Azure Services Platform which I introduced in my previous post.
This new platform will allow us (Developers) to run your applications directly in the cloud by hosting them in Windows Azure. This means that not only Web apps can be developed for Windows Azure but also background processes are also [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p class="MsoNormal"><span><span><a href="http://www.microsoft.com/azure/windowsazure.mspx">Windows Azure</a> is part of the <span>Azure Services Platform</span> which I introduced in my <span>previous <a href="http://blogs.southworks.net/matiasb/2008/10/31/azureservicesplatform">post</a></span>.</span></span></p>
<p class="MsoNormal"><span><span>This new platform will allow us (Developers) to run your applications directly in the cloud by hosting them in Windows Azure. This means that not only Web apps can be developed for Windows Azure but also background processes are also supported.</span></span></p>
<p class="MsoNormal"><span><span>Windows Azure not only provides an environment to run applications but it also provides a platform for storing application&#8217;s data. This data is exposed using a RESTful approach, which means that applications running on Azure and applications running elsewhere can access this data in the same way.</span></span></p>
<p class="MsoNormal"><span style="color: #0000ee;text-decoration: underline"><a href="http://blogs.southworks.net/matiasb/files/2008/11/win-azure-plat.jpg"></a><a href="http://blogs.southworks.net/matiasb/files/2008/11/win-azure-plat1.jpg"><img class="alignnone size-medium wp-image-15" src="http://blogs.southworks.net/matiasb/files/2008/11/win-azure-plat1.jpg" alt="" width="675" height="412" /></a></span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span><span> </span></span></p>
<p class="MsoNormal"><span><span>Up to this date Windows Azure can run only applications built on the .NET Framework, but Microsoft has announced that it will also support running unmanaged code in 2009.</span></span></p>
<p class="MsoNormal"><span><span> </span></span></p>
<p class="MsoNormal"><span><strong><span>Why Use Windows Azure?</span></strong></span></p>
<p class="MsoNormal"><span><span>Windows Azure runs on a large number of machines, located in the huge Microsoft&#8217;s data centers. By running applications on the cloud, we are making use of the advantages of Microsoft&#8217;s infrastructure<span>  </span>which can have great benefits:</span></span></p>
<p class="MsoListParagraphCxSpFirst"><span><span><span>·<span>         </span></span></span></span><span><strong><span>Save money. </span></strong></span><span><span>Instead of buying your own servers (even when you need your app to scale), use the ones provided by Azure and pay just for what you use .<strong></strong></span></span></p>
<p class="MsoListParagraphCxSpLast"><span><span><span>·<span>         </span></span></span></span><span><strong><span>Save Time. </span></strong></span><span><span>Installing and maintaining systems and servers take time and effort. Microsoft does this for you!<strong></strong></span></span></p>
<p class="MsoNormal"><span><span style="text-decoration: underline"><span><span> </span></span></span></span></p>
<p class="MsoNormal"><span><strong><span>How to start?</span></strong></span></p>
<p class="MsoNormal"><span><span>The best way to start learning and coding for Windows Azure is doing the <span><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&amp;displaylang=en">Training Kit</a></span><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&amp;displaylang=en"> Labs</a>:</span></span></p>
<p class="MsoNormal"><span><span><span> </span><span> </span></span></span><span><span> <img src="http://blogs.southworks.net/matiasb/files/2008/11/azure-tk.jpg" alt="" width="477" height="326" /></span></span></p>
<p class="MsoNormal"><strong><span> </span></strong></p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/matiasb/2008/11/08/windows-azure/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Azure Services Platform</title>
		<link>http://blogs.southworks.net/matiasb/2008/10/31/azureservicesplatform/</link>
		<comments>http://blogs.southworks.net/matiasb/2008/10/31/azureservicesplatform/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 08:18:18 +0000</pubDate>
		<dc:creator>Matias Bonaventura</dc:creator>
		
		<category><![CDATA[Azure]]></category>

		<category><![CDATA[Azure Services]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/matiasb/2008/10/31/azureservicesplatform/</guid>
		<description><![CDATA[As everybody must already know, Microsoft annouced on PDC2008 it&#8217;s new cloud services platform called Azure Services Platform:

 
What is it?
Azure Services Platform (or just Azure) is a group of cloud technologies, at the moment composed by an Operating System (Windows Azure) and a set of services (.Net Services, SQL Services, Live Services, Sharepoint Services and Dynamics [...]]]></description>
			<content:encoded><![CDATA[<p>As everybody must already know, Microsoft annouced on <a href="http://www.microsoftpdc.com/">PDC2008 </a>it&#8217;s new cloud services platform called <a href="http://www.microsoft.com/azure/">Azure Services Platform</a>:</p>
<p class="MsoNormal"><a href="http://blogs.southworks.net/matiasb/files/2008/11/ozzie-azure.jpg"><img class="alignnone size-medium wp-image-14" src="http://blogs.southworks.net/matiasb/files/2008/11/ozzie-azure.jpg" alt="" width="300" height="187" /></a></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><strong><span>What is it?</span></strong></p>
<p class="MsoNormal"><span>Azure Services Platform (or just Azure) is a <strong>group</strong> of cloud technologies, at the moment composed by an Operating System (Windows Azure) and a set of services (.Net Services, SQL Services, Live Services, Sharepoint Services and Dynamics CRM Services).</span></p>
<p> </p>
<p class="MsoNormal"><img src="http://blogs.southworks.net/matiasb/files/2008/11/azure-platform.jpg" alt="" width="564" height="222" /></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span><span>Azure was built flexible enough to allow the two possible scenarios: Building new applications to be run in the cloud; Enhance already existing applications (web, desktop and mobile) by consuming cloud services.</span></span></p>
<p class="MsoNormal"><span><span>Azure makes all this services available through open, standard, interoperable protocols such as HTTP, REST, SOAP, etc. This enables end users and both Microsoft and non-Microsoft programming languages to consume this services. In the near future also non Microsoft development environments will be released (such as Eclipse!). </span></span></p>
<p class="MsoNormal"><span> <img src="http://blogs.southworks.net/matiasb/files/2008/11/azure-service-interact.jpg" alt="" width="471" height="376" /></span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span>Before getting deeper with each of the services provided, remember you can start coding and using this platform yourself!</span></p>
<ul>
<li><span><span><span> </span></span></span><span>A good place to start coding is the <strong>Azure Training Kit</strong>: download it <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&amp;displaylang=en">here</a>.</span></li>
<li><span><span><span> </span></span></span><span>And a good technical overview of the hole platform can read from David <strong><span>Chappell</span></strong><strong><span>  </span>White Paper: Introducing the Azure Services: </strong>download it <a href="http://www.microsoft.com/presspass/events/pdc/docs/AzureServicesPlatform.pdf">here.</a></span></li>
</ul>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal">To know each service a bit deeper you can check my other posts:</p>
<p class="MsoNormal"><span><strong>Windows Azure:</strong><br />
 <a href="http://blogs.southworks.net/matiasb/2008/11/08/windows-azure">http://blogs.southworks.net/matiasb/2008/11/08/</a><span title="Click to edit this part of the permalink"><a href="http://blogs.southworks.net/matiasb/2008/11/08/windows-azure">windows-azure</a> <br />
<strong> </strong></span></span></p>
<p class="MsoNormal"><span><span title="Click to edit this part of the permalink"><strong>.Net Services: </strong> <br />
 <a href="http://blogs.southworks.net/matiasb/2008/11/08/net-services/">http://blogs.southworks.net/matiasb/2008/11/08/</a><span title="Click to edit this part of the permalink"><a href="http://blogs.southworks.net/matiasb/2008/11/08/net-services/">net-services</a></span><a href="http://blogs.southworks.net/matiasb/2008/11/08/net-services/">/</a></span></span></p>
<p class="MsoNormal"><span><span title="Click to edit this part of the permalink"><strong>SQL Services:<br />
</strong>  <a href="http://blogs.southworks.net/matiasb/2008/11/08/sql-services">http://blogs.southworks.net/matiasb/2008/11/08/</a><span title="Click to edit this part of the permalink"><a href="http://blogs.southworks.net/matiasb/2008/11/08/sql-services">sql-services<br />
</a></span></span></span></p>
<p class="MsoNormal"><span><span title="Click to edit this part of the permalink"><span title="Click to edit this part of the permalink"><strong>Live Services:  <br />
</strong> <a href="http://blogs.southworks.net/matiasb/2008/11/08/live-services/">http://blogs.southworks.net/matiasb/2008/11/08/</a><span title="Click to edit this part of the permalink"><a href="http://blogs.southworks.net/matiasb/2008/11/08/live-services/">live-services</a></span><a href="http://blogs.southworks.net/matiasb/2008/11/08/live-services/">/</a></span></span></span></p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/matiasb/2008/10/31/azureservicesplatform/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
