<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.5.1" --><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Southworks Master Site Feed</title>
	<link>http://blogs.southworks.net</link>
	<description>Shows all posts, comments, and pages from all blogs</description>
	<pubDate>Sat, 11 Jul 2009 02:00:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
	<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/master-feed" type="application/rss+xml" /><item>
		<title>.NET Service Bus – Remote Desktop over Firewalls!</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/VqadueNhmy4/</link>
		<comments>http://blogs.southworks.net/mwoloski/2009/07/10/net-service-bus-remote-desktop-over-firewalls/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 02:00:38 +0000</pubDate>
		<dc:creator>Matias Woloski</dc:creator>
		
		<category><![CDATA[Azure]]></category>

		<category><![CDATA[CoolStuff]]></category>

		<category><![CDATA[NET Services]]></category>

		<category><![CDATA[Service Bus]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/mwoloski/2009/07/10/net-service-bus-remote-desktop-over-firewalls/</guid>
		<description><![CDATA[Today was holiday in Argentina but I had to work on some pending stuff (yeah, lucky me). I didn’t want to travel to the office but I had to access a SQL Server that was hosted at Southworks LAN and we don’t have inbound ports open to connect to our workstations through RDP (port 3389). [...]]]></description>

		<content:encoded><![CDATA[<p>Today was holiday in Argentina but I had to work on some pending stuff (yeah, lucky me). I didn’t want to travel to the office but I had to access a SQL Server that was hosted at <a href="http://www.southworks.net">Southworks</a> LAN and we don’t have inbound ports open to connect to our workstations through RDP (port 3389). So…. the <a href="http://www.microsoft.com/azure/servicebus.mspx">.Net Service Bus</a> came to the rescue! Last week <a href="http://davidaiken.com/">David Aiken</a> told me about this cool project hosted on codeplex <a href="http://socketshifter.codeplex.com">http://socketshifter.codeplex.com</a>. He told me “these people are streaming video over the service bus”&#8230;</p>
<p>So yesterday before leaving the office I opened up the <a href="http://socketshifter.codeplex.com/">socketshifter</a> server, configured my service bus account and allowed some ports to be redirected. Today I connected from home and here is a nice screenshot of RDP to a Southworks LAN machine (connected to localhost:1000). Isn’t it cool??!!?!</p>
<p><a href="http://blogs.southworks.net/mwoloski/files/2009/07/image.png"><img border="0" alt="image" src="http://blogs.southworks.net/mwoloski/files/2009/07/image-thumb.png" width="804" height="604" /></a> </p>
<p>For those of you who are wondering how these work, the code is reeeeallly simple because all of the hardlifting is made by the service bus. There is a client and a server that will redirect a stream of bytes from port a to port b (using plain sockets). The socket shifter client will establish a session to the server via the service bus using the <strong>NetTcpRelayBinding</strong>. The rest of the story is bytes flowing around <img src='http://blogs.southworks.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</p>
<p><a href="http://blogs.southworks.net/mwoloski/files/2009/07/image1.png"><img border="0" alt="image" src="http://blogs.southworks.net/mwoloski/files/2009/07/image-thumb1.png" width="640" height="383" /></a> </p>
<p>This is the client running on my laptop:</p>
<p><a href="http://blogs.southworks.net/mwoloski/files/2009/07/clip-image002.jpg"><img border="0" alt="clip_image002" src="http://blogs.southworks.net/mwoloski/files/2009/07/clip-image002-thumb.jpg" width="681" height="346" /></a></p>
<p>And this is the configuration on the client</p>
<p><font face="consolas">&lt;configuration&gt;     <br />&#160; &lt;appSettings&gt;      <br />&#160;&#160;&#160; &lt;add key=&quot;solutionName&quot; value=&quot;southworks-magnolia&quot;/&gt;      <br />&#160;&#160;&#160; &lt;add key=&quot;password&quot; value=&quot;&#8230;.&quot;/&gt;&#160;&#160;&#160; <br />&#160;&#160;&#160; &lt;add key=&quot;servicePath&quot; value=&quot;sb://southworks-magnolia.servicebus.windows.net/rd&quot;/&gt;      <br />&#160;&#160;&#160; &lt;add key=&quot;localPort&quot; value=&quot;1000&quot; /&gt;      <br />&#160;&#160;&#160; &lt;add key=&quot;remoteHost&quot; value=&quot;localhost&quot;/&gt;      <br />&#160;&#160;&#160; &lt;add key=&quot;remotePort&quot; value=&quot;3389&quot;/&gt;      <br />&#160; &lt;/appSettings&gt;      <br />&lt;/configuration&gt;</font></p>
<p>The server needs to be installed as a Windows Service to be able to redirect 3389. I also tried accessing the web server (IIS7) that is running on the LAN and it worked (need to configure the remoteport to 80). So that means that I can expose a web server that runs on my desktop machine and show stuff to customers without asking IT to move my machine to the DMZ!! <a href="http://blogs.msdn.com/clemensv/archive/2009/04/05/net-services-march-2009-ctp-host-a-public-website-at-the-kitchen-table-or-from-a-coffee-shop-no-kidding.aspx">Clemens did something similar</a> couple of months ago.</p>
<p>This is a very cool use of the Service Bus. Go ahead and try it yourself! Download the <a href="http://socketshifter.codeplex.com/SourceControl/ListDownloadableCommits.aspx">latest source code</a>.</p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/VqadueNhmy4" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/mwoloski/2009/07/10/net-service-bus-remote-desktop-over-firewalls/</feedburner:origLink></item>
	<item>
		<title>Windows 7×7 is training campaign is running!</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/mupVof_fjy0/</link>
		<comments>http://blogs.southworks.net/aortega/2009/07/10/windows-7x7-is-training-campaign-is-running/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 23:42:45 +0000</pubDate>
		<dc:creator>aortega</dc:creator>
		
		<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/aortega/2009/07/10/windows-7x7-is-training-campaign-is-running/</guid>
		<description><![CDATA[The Windows 7&#215;7 campaign is already running, do not miss this opportunity to learn hot new topics about this OS in a 10 minutes screencast format, there are three published with me as a speaker :), enter here! http://www.microsoft.com/latam/windows/7&#215;7/

Gestión de drivers en Windows 7: http://www.mslatam.com/latam/mediacenter/default.aspx?v=44091f9f-6d9f-45c4-b28e-864e88f0f0cc
 Instalación rápida de Windows 7: http://www.mslatam.com/latam/mediacenter/default.aspx?v=87c813e3-9ef2-4cd6-9bd9-c270f5e321c7
Mas productividad en el almacenamiento [...]]]></description>

		<content:encoded><![CDATA[<p>The Windows 7&#215;7 campaign is already running, do not miss this opportunity to learn hot new topics about this OS in a 10 minutes screencast format, there are three published with me as a speaker :), enter here! <a href="http://www.microsoft.com/latam/windows/7x7/">http://www.microsoft.com/latam/windows/7&#215;7/</a></p>
<ul>
<li>Gestión de drivers en Windows 7: <a href="http://www.mslatam.com/latam/mediacenter/default.aspx?v=44091f9f-6d9f-45c4-b28e-864e88f0f0cc">http://www.mslatam.com/latam/mediacenter/default.aspx?v=44091f9f-6d9f-45c4-b28e-864e88f0f0cc</a></li>
<li> Instalación rápida de Windows 7: <a href="http://www.mslatam.com/latam/mediacenter/default.aspx?v=87c813e3-9ef2-4cd6-9bd9-c270f5e321c7">http://www.mslatam.com/latam/mediacenter/default.aspx?v=87c813e3-9ef2-4cd6-9bd9-c270f5e321c7</a></li>
<li>Mas productividad en el almacenamiento de información con BranchCache: <a href="http://www.mslatam.com/latam/mediacenter/default.aspx?v=d82c2973-2d25-4b4e-b7a1-70423c5674bb">http://www.mslatam.com/latam/mediacenter/default.aspx?v=d82c2973-2d25-4b4e-b7a1-70423c5674bb</a></li>
</ul>
<p><a href="http://www.microsoft.com/latam/windows/7x7/"><img src="http://blogs.southworks.net/aortega/files/2009/07/ban-lat-windows7-670x191.jpg" border="0" alt="ban_lat_windows7_670x191" width="675" height="195" /></a></p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/mupVof_fjy0" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/aortega/2009/07/10/windows-7x7-is-training-campaign-is-running/</feedburner:origLink></item>
	<item>
		<title>Change Management</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/VTSChHd22wc/</link>
		<comments>http://blogs.southworks.net/tosborn/2009/07/10/change-management/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 18:15:20 +0000</pubDate>
		<dc:creator>Tim Osborn</dc:creator>
		
		<category><![CDATA[Change]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/tosborn/?p=45</guid>
		<description><![CDATA[On my flight from Seattle to L.A. for last year&#8217;s PDC there were two young boys with their mother seated behind me. As we approached LAX the plane banked sharply for final approach, and one of the boys exclaimed, &#8220;This is where the sickness comes in!&#8221;
It reminded me that while change can be exhilarating, it [...]]]></description>

		<content:encoded><![CDATA[<p>On my flight from Seattle to L.A. for last year&#8217;s PDC there were two young boys with their mother seated behind me. As we approached LAX the plane banked sharply for final approach, and one of the boys exclaimed, &#8220;This is where the sickness comes in!&#8221;</p>
<p>It reminded me that while change can be exhilarating, it can also be stressful. And because we often want to avoid stress, we avoid change. We stick with our proven practices at work, our established relationships in the community, our trusted recipes when cooking at home. They are convenient, cost effective and safe. At least in the short term. As <a href="http://sethgodin.typepad.com/seths_blog/2009/06/priming-the-pump-of-efficiency.html">Seth Godin</a> points out, &#8220;There&#8217;s always a gap between the short-term results of a well-polished system and the first results of a switch to a more efficient one.&#8221; The morning after I read that post I woke up with this picture in my head:</p>
<p><a href="http://blogs.southworks.net/tosborn/files/2009/07/cost.png"><img src="http://blogs.southworks.net/tosborn/files/2009/07/cost-thumb.png" border="0" alt="cost" width="556" height="329" /></a></p>
<p>The challenge is that the two circles are also frequently in motion. Sometimes there is great overlap, sometimes there is none. What is convenient and what is effective often change due to external factors beyond our control. Ultimately change has no inherent value on its own; it&#8217;s the intended results we are after. Don&#8217;t deny the cost, count the cost. And once counted, maybe your fear will subside enough that you&#8217;ll find yourself more exhilarated than stressed as you change your company strategies. Or at least try out a new recipe at home with some recently made friends. <img src='http://blogs.southworks.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div id="4f14e34e-c5f2-410f-9cc7-307ee6128bd9" class="wlWriterEditableSmartContent" style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px">Technorati Tags: <a rel="tag" href="http://technorati.com/tags/Change">Change</a>,<a rel="tag" href="http://technorati.com/tags/stress">stress</a>,<a rel="tag" href="http://technorati.com/tags/process">process</a>,<a rel="tag" href="http://technorati.com/tags/opportunity">opportunity</a></div>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/VTSChHd22wc" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/tosborn/2009/07/10/change-management/</feedburner:origLink></item>
	<item>
		<title>Windows Server 2008 SP2 – Event ID 12321 “Security-Licensing-Slc Token Based Activation Failed”</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/pK4XmWL6ddg/</link>
		<comments>http://blogs.southworks.net/aortega/2009/07/08/windows-server-2008-sp2-event-id-12321-security-licensing-slc-token-based-activation-failed/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 10:53:25 +0000</pubDate>
		<dc:creator>aortega</dc:creator>
		
		<category><![CDATA[Windows Server 2008]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/aortega/2009/07/08/windows-server-2008-sp2-event-id-12321-security-licensing-slc-token-based-activation-failed/</guid>
		<description><![CDATA[This may happened I you use a volume-licensed media to deploy Windows Server 2008 SP2 (this was my case). The resolution is to set-up a KMS server on your LAN or switch the product key to a MAK key, find out more here:

Volume Activation For Windows Vista: http://support.microsoft.com/default.aspx/kb/929712/
Error message when you try to activate Windows [...]]]></description>

		<content:encoded><![CDATA[<p>This may happened I you use a volume-licensed media to deploy Windows Server 2008 SP2 (this was my case). The resolution is to set-up a KMS server on your LAN or switch the product key to a MAK key, find out more here:</p>
<ul>
<li>Volume Activation For Windows Vista: <a title="http://support.microsoft.com/default.aspx/kb/929712/" href="http://support.microsoft.com/default.aspx/kb/929712/">http://support.microsoft.com/default.aspx/kb/929712/</a></li>
<li>Error message when you try to activate Windows Vista Enterprise, Windows Vista Business, or Windows Server 2008: &#8220;Code 0&#215;8007232b&#8221;: <a title="http://support.microsoft.com/kb/929826" href="http://support.microsoft.com/kb/929826">http://support.microsoft.com/kb/929826</a></li>
<li>Windows Server 2008 KMS Setup Demonstration: <a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=bbf2eb61-2b30-4f2d-bccd-df53e220b8e9&amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=bbf2eb61-2b30-4f2d-bccd-df53e220b8e9&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=bbf2eb61-2b30-4f2d-bccd-df53e220b8e9&amp;displaylang=en</a></li>
</ul>
<p>In my case this happened on a Geneva Server machine.</p>
<p>Hope it helps,</p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/pK4XmWL6ddg" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/aortega/2009/07/08/windows-server-2008-sp2-event-id-12321-security-licensing-slc-token-based-activation-failed/</feedburner:origLink></item>
	<item>
		<title>How-to Hide Views inside Composite Application Guidance (aka Prism-v2) regions.</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/rB47YlBMDvI/</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>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/rB47YlBMDvI" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/matiasb/2009/07/02/how-to-hide-views-inside-composite-application-guidance-aka-prism-v2-regions/</feedburner:origLink></item>
	<item>
		<title>Drink the red token – debug your claims-aware apps</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/FxEfHHhV9WQ/</link>
		<comments>http://blogs.southworks.net/mwoloski/2009/06/30/drink-the-red-token-debug-your-claims-aware-apps/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 19:43:11 +0000</pubDate>
		<dc:creator>Matias Woloski</dc:creator>
		
		<category><![CDATA[Geneva]]></category>

		<category><![CDATA[Identity]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/mwoloski/2009/06/30/drink-the-red-token-debug-your-claims-aware-apps/</guid>
		<description><![CDATA[Another identity development widget brought to you by Vittorio’s team. This time it’s a very tiny control called SecurityTokenVisualizer that helps debugging claims-aware web applications. But the thing I like of this control is that it can also be used as a teaching tool, very useful for demos by the way. Last week we “dogfooded” [...]]]></description>

		<content:encoded><![CDATA[<p>Another identity development widget brought to you by <a href="http://blogs.msdn.com/vbertocci">Vittorio’s</a> team. This time it’s a very tiny control called <a href="http://blogs.southworks.net/mwoloski/files/2009/06/clip-image002.jpg"><img style="margin-left: 0px;margin-right: 0px" border="0" hspace="12" alt="clip_image002" align="right" src="http://blogs.southworks.net/mwoloski/files/2009/06/clip-image002-thumb.jpg" width="46" height="61" /></a><b>SecurityTokenVisualizer</b> that helps debugging claims-aware web applications. But the thing I like of this control is that it can also be used as a teaching tool, very useful for demos by the way. Last week we “dogfooded” it during the Iteration Review of an identity-related project and the audience made the click when we expanded the red small pentagon that shows the behind the scenes. </p>
<p>Simply drag and drop the control on any page and it will render a collapsible table with</p>
<ul>
<li>Issued Identity claims</li>
<li>Delegated Identity claims</li>
<li>The raw SAML token (in a textarea)</li>
<li>The SAML token properties (validfrom, validto, audience, signing certificate, etc.)</li>
<li>The certificate used for token decryption</li>
</ul>
<p>As usual, read the details on <a href="http://blogs.msdn.com/vbertocci/archive/2009/06/29/i-made-you-a-token-but-i-eated-it-or-how-to-debug-authentication-issues-in-asp-net-with-securitytokenvisualizercontrol.aspx">Vittorio’s blog</a>.</p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/FxEfHHhV9WQ" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/mwoloski/2009/06/30/drink-the-red-token-debug-your-claims-aware-apps/</feedburner:origLink></item>
	<item>
		<title>Composite Application Guidance (Prism-v2) sample application using Silverlight 3 Child Window</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/c_qKQ_uKg4o/</link>
		<comments>http://blogs.southworks.net/dschenkelman/2009/06/30/composite-application-guidance-prism-v2-sample-application-using-silverlight-3-child-window/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 12:58:26 +0000</pubDate>
		<dc:creator>Damian Schenkelman</dc:creator>
		
		<category><![CDATA[Composite Application Guidance for WPF &amp; SL]]></category>

		<category><![CDATA[Event Aggregation]]></category>

		<category><![CDATA[Patterns &amp; Practices]]></category>

		<category><![CDATA[Prism-v2]]></category>

		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[Silverlight 3]]></category>

		<category><![CDATA[p&amp;p]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/dschenkelman/?p=107</guid>
		<description><![CDATA[Today I tweaked the Event Aggregator Quickstart that comes with the Prism-v2 source code to show how Silverlight 3 Child Windows could be used in a Silverlight Composite Application.
Child Window Overview
Silverlight 3 has a new template called ChildWindow. It is basically a user control (unlike a Popup you can edit its XAML), but it allows [...]]]></description>

		<content:encoded><![CDATA[<p>Today I tweaked the <a href="http://msdn.microsoft.com/en-us/library/dd458918.aspx">Event Aggregator Quickstart</a> that comes with the <a href="http://msdn.microsoft.com/en-us/library/dd458809.aspx">Prism-v2</a> source code to show how Silverlight 3 Child Windows could be used in a Silverlight Composite Application.</p>
<h4>Child Window Overview</h4>
<p>Silverlight 3 has a new template called ChildWindow. It is basically a user control (unlike a Popup you can edit its XAML), but it allows you to create modal windows for your application, such as dialogs.</p>
<p><a href="http://blogs.southworks.net/dschenkelman/files/2009/06/childwindow.png"><img class="alignnone size-full wp-image-108" src="http://blogs.southworks.net/dschenkelman/files/2009/06/childwindow.png" alt="Template Dialog to add Child Window control" width="500" height="303" /></a></p>
<p>To use this dialog, you just have to create a new instance of it and call its <strong>Show</strong> method. As this call is asynchronic, you need to handle the Closed event to know when the dialog interaction has finished.</p>
<h4>Sample Scenario</h4>
<p>The Quickstart&#8217;s scenario shows how to use the Event Aggregator to add funds of a particular customer, so what I did is add a confirmation dialog before adding the fund. After you select the customer and fund (both of them as in the original Quickstart) and click the <strong>Add</strong> button following dialog pops up:</p>
<p><a href="http://blogs.southworks.net/dschenkelman/files/2009/06/popup.png"></a></p>
<p> <a href="http://blogs.southworks.net/dschenkelman/files/2009/06/popup1.png"><img class="alignnone size-full wp-image-110" src="http://blogs.southworks.net/dschenkelman/files/2009/06/popup1.png" alt="Dialog to decide whether to add the fund or not" width="500" height="415" /></a></p>
<p>As expected, if you click &#8220;Yes&#8221; the fund will be added, and if you click &#8220;No&#8221; or close the dialog it won&#8217;t.</p>
<h5>Child Window Sample</h5>
<h6>Disclaimer</h6>
<p>This code is provided “AS IS” with no warranties, and confers no rights.</p>
<h6>Download</h6>
<p>You can get the sample from here: <a href="http://cid-09f63fc7ac065e5e.skydrive.live.com/self.aspx/p%7C0p%20Samples/ChildWindowSample.zip">ChildWindowSample.zip</a>.</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.southworks.net%2fdschenkelman%2f2009%2f06%2f30%2fcomposite-application-guidance-prism-v2-sample-application-using-silverlight-3-child-window%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.southworks.net%2fdschenkelman%2f2009%2f06%2f30%2fcomposite-application-guidance-prism-v2-sample-application-using-silverlight-3-child-window%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
<p><a rev="vote-for" href="http://dotnetshoutout.com/Damian-Schenkelmans-Blog-Blog-Archive-Composite-Application-Guidance-Prism-v2-sample-application-using-Silverlight-3-Child-Window"><img style="border:0px" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Fblogs.southworks.net%2Fdschenkelman%2F2009%2F06%2F30%2Fcomposite-application-guidance-prism-v2-sample-application-using-silverlight-3-child-window%2F" alt="Shout it" /></a></p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/c_qKQ_uKg4o" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/dschenkelman/2009/06/30/composite-application-guidance-prism-v2-sample-application-using-silverlight-3-child-window/</feedburner:origLink></item>
	<item>
		<title>Revisiting the Facade Pattern</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/74Qzlj1PW4Q/</link>
		<comments>http://blogs.southworks.net/tosborn/2009/06/28/revisiting-the-facade-pattern/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 16:03:46 +0000</pubDate>
		<dc:creator>Tim Osborn</dc:creator>
		
		<category><![CDATA[Communication]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/tosborn/?p=42</guid>
		<description><![CDATA[The Facade Design Pattern provides an interface that simplifies access to a more complex (or in some cases poorly designed) API or subsystem. One of the motivations for use is to reduce the communication and dependencies between subsystems. Recently I was reflecting on how this pattern is frequently applied not only to software interfaces, but [...]]]></description>

		<content:encoded><![CDATA[<p>The Facade Design Pattern provides an interface that simplifies access to a more complex (or in some cases poorly designed) API or subsystem. One of the motivations for use is to reduce the communication and dependencies between subsystems. Recently I was reflecting on how this pattern is frequently applied not only to software interfaces, but human interactions as well.</p>
<p>Visit the grocery store, stop by the bank, pass a colleague in the hall, answer a telemarketer&#8217;s call (thank heaven for caller ID), or just about anything that involves verbal communication, and the most common opening inquiry is, &#8220;How are you?&#8221;And without one iota of actual research I&#8217;m confident the most frequent response (at least in America) is, &#8220;Fine.&#8221; A completely meaningless and context-free response whose sole purpose is to simplify (and/or minimize) communication, and move it to the next state. (Can you imagine someone following that response with &#8220;Oh really, tell me more&#8221;?) It is, as I call it, the &#8220;Fine Facade Pattern&#8221;.</p>
<p>There&#8217;s nothing wrong with this pattern. It provides a solution to a commonly occurring problem of how to open the communication channel with another person, in a way that is safe, effective, and low cost. But perhaps there&#8217;s another way. Last year, over an early breakfast on the Microsoft campus, <a href="http://blogs.southworks.net/jdominguez/">Julian</a>, <a href="http://blogs.msdn.com/masaez/">Miguel</a>  and I agreed to the following experiment: for the next seven days we would respond to the question, &#8220;How are you?&#8221; not with the Fine Facade Pattern, but with our <em>intended </em>state. Not necessarily how we were, but with how we wanted to be. So for the next week each of us sincerely replied, &#8220;Great!&#8221; and observed the results. The following week we met again and shared the following observations:</p>
<ul>
<li>People were often caught off guard (highly conditioned to the Fine Facade), but the majority actually gave a genuine smile after a short delay, seemingly brightened by the response</li>
<li>Conversations tended to be more upbeat, focused on what was right, not wrong</li>
<li>Our memories of our interactions evoked positive emotions as we shared our experiences</li>
<li>A tiny sample seemed offended, as if we had no right to be so positive in the midst of their own dire emotional state</li>
</ul>
<p>It&#8217;s not that we transformed into a trio of Pollyannas, viewing our actual circumstances outside the lens of any reality filter. And we recognized that overuse could diminish the effects and render it equivalent to the Fine Facade. But we liked the results (even those that were offended, as we knew who to take off our &#8220;eagles&#8221; lists). And we decided that if our facade was not going to represent the actual complexity of our subsystems, why should we always be only fine, when we could instead choose to be great?</p>
<div id="5f9bbdfd-e16a-4115-b538-b0ce848ee05b" class="wlWriterEditableSmartContent" style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px">Technorati Tags: <a rel="tag" href="http://technorati.com/tags/Design+Pattern">Design Pattern</a>,<a rel="tag" href="http://technorati.com/tags/Facade">Facade</a>,<a rel="tag" href="http://technorati.com/tags/Communication">Communication</a></div>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/74Qzlj1PW4Q" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/tosborn/2009/06/28/revisiting-the-facade-pattern/</feedburner:origLink></item>
	<item>
		<title>How to: Drag and Drop Silverlight Views between Regions in Prism-v2</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/EdPPOF1gK24/</link>
		<comments>http://blogs.southworks.net/dschenkelman/2009/06/27/how-to-drag-and-drop-silverlight-views-between-regions-in-prism-v2/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 06:17:07 +0000</pubDate>
		<dc:creator>Damian Schenkelman</dc:creator>
		
		<category><![CDATA[Composite Application Guidance for WPF &amp; SL]]></category>

		<category><![CDATA[Patterns &amp; Practices]]></category>

		<category><![CDATA[Prism-v2]]></category>

		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[p&amp;p]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/dschenkelman/?p=105</guid>
		<description><![CDATA[As some of you may know, some weeks ago I blogged about how to drag and drop WPF views between regions in Prism-v2. Well, today I started spiking and was able to create the same sample for Silverlight (thanks Julian and Ezequiel for your contributions). So, if you were interested in the previous spike but [...]]]></description>

		<content:encoded><![CDATA[<p>As some of you may know, some weeks ago I <a href="http://blogs.southworks.net/dschenkelman/2009/06/05/how-to-drag-and-drop-wpf-views-between-regions-in-prism-v2/">blogged about how to drag and drop WPF views between regions in Prism-v2</a>. Well, today I started spiking and was able to create the same sample for Silverlight (thanks <a href="http://blogs.southworks.net/jdominguez/">Julian</a> and <a href="http://blogs.southworks.net/ejadib/">Ezequiel</a> for your contributions). So, if you were interested in the previous spike but could not use it because you are developing a Silverlight application, you might find this sample useful.</p>
<p>I will not go over the specs, because there are no modifications required to use it compared to its WPF version (explained in my <a href="http://blogs.southworks.net/dschenkelman/2009/06/05/how-to-drag-and-drop-wpf-views-between-regions-in-prism-v2/">related previous post</a>). However, I did modify the <strong>ViewDragManager</strong> to cope with some of the WPF/Silverlight differences.</p>
<h4>Outcome</h4>
<p>Below you can find a picture of how the Silverlight <strong>ViewDragManager</strong> doing its job:<br />
<a href="http://blogs.southworks.net/dschenkelman/files/2009/06/sldragdrop.png"><img class="alignnone size-full wp-image-106" src="http://blogs.southworks.net/dschenkelman/files/2009/06/sldragdrop.png" alt="" width="500" height="203" /></a><br />
 </p>
<h4>Drag and Drop Sample</h4>
<h6>Disclaimer</h6>
<p>This code is provided &#8220;AS IS&#8221; with no warranties, and confers no rights.</p>
<h6>Download</h6>
<p>You can get the sample from here: <a href="http://cid-09f63fc7ac065e5e.skydrive.live.com/self.aspx/p%7C0p%20Samples/SLDragDropSample.zip" target="_blank">SLDragDropSample.zip</a>.</p>
<p>Hope this is useful application <img src="http://blogs.southworks.net/dschenkelman/wp-includes/images/smilies/icon_smile.gif" alt=")" />.</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.southworks.net%2fdschenkelman%2f2009%2f06%2f27%2fhow-to-drag-and-drop-silverlight-views-between-regions-in-prism-v2%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.southworks.net%2fdschenkelman%2f2009%2f06%2f27%2fhow-to-drag-and-drop-silverlight-views-between-regions-in-prism-v2%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
<p><a rev="vote-for" href="http://dotnetshoutout.com/Damian-Schenkelmans-Blog-Blog-Archive-How-to-Drag-and-Drop-Silverlight-Views-between-Regions-in-Prism-v2"><img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Fblogs.southworks.net%2Fdschenkelman%2F2009%2F06%2F27%2Fhow-to-drag-and-drop-silverlight-views-between-regions-in-prism-v2%2F"></a></p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/EdPPOF1gK24" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/dschenkelman/2009/06/27/how-to-drag-and-drop-silverlight-views-between-regions-in-prism-v2/</feedburner:origLink></item>
	<item>
		<title>Una Demo de la Gran 7</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/L-OLUqzDfAc/</link>
		<comments>http://blogs.southworks.net/aortega/2009/06/25/una-demo-de-la-gran-7/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 08:46:59 +0000</pubDate>
		<dc:creator>aortega</dc:creator>
		
		<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/aortega/2009/06/25/una-demo-de-la-gran-7/</guid>
		<description><![CDATA[Grabá un Screencast de 5 minutos para TechNET y participa!
¡Hay en juego USD1000 en American Express Travelers Cheques, 2 Netbooks Asus EEE y tu oportunidad para hacer famosa tu Demo en los Newsletters, Sitios Web y Eventos de Microsoft! La participación en este concurso supone la aceptación de Bases y Condiciones 
Mas información: http://www.puertadeenlace.net/page/Demo.aspx
]]></description>

		<content:encoded><![CDATA[<p>Grabá un Screencast de 5 minutos para TechNET y participa!</p>
<p><strong>¡Hay en juego <span style="text-decoration: underline"><span style="color: #ff0000">USD1000 </span></span>en American Express Travelers Cheques, 2 Netbooks Asus EEE y tu oportunidad para hacer famosa tu Demo en los Newsletters, Sitios </strong><strong>Web y Eventos de Microsoft! </strong><em>La participación en este concurso supone la aceptación de <strong><a href="http://www.puertadeenlace.net/file.axd?file=2009%2f6%2fBases+Legales+Una+demo+de+la+gran+7+ARG+y+UY.pdf">Bases y Condiciones</a></strong> </em></p>
<p>Mas información: <a title="http://www.puertadeenlace.net/page/Demo.aspx" href="http://www.puertadeenlace.net/page/Demo.aspx">http://www.puertadeenlace.net/page/Demo.aspx</a></p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/L-OLUqzDfAc" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/aortega/2009/06/25/una-demo-de-la-gran-7/</feedburner:origLink></item>
	<item>
		<title>Geneva Server Beta 2: Troubleshooting Windows Integrated Authentication</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/QyvT_Qrk850/</link>
		<comments>http://blogs.southworks.net/gabrielsz/2009/06/24/geneva-server-beta-2-troubleshooting-windows-integrated-authentication/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 05:46:36 +0000</pubDate>
		<dc:creator>gabrielsz</dc:creator>
		
		<category><![CDATA[IIS]]></category>

		<category><![CDATA[Identity]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/gabrielsz/2009/06/24/geneva-server-beta-2-troubleshooting-windows-integrated-authentication/</guid>
		<description><![CDATA[When in Geneva Server Beta 2 you try to configure and use Windows Integrated Authentication, it may not prompt for credentials and instead you receive an error message:

When connecting from another computer, you may see the following error message:&#160;       
And when you connect from the same server, the more [...]]]></description>

		<content:encoded><![CDATA[<p>When in <a href="https://connect.microsoft.com/site/sitehome.aspx?SiteID=642">Geneva Server</a> Beta 2 you try to configure and use Windows Integrated Authentication, it may not prompt for credentials and instead you receive an error message:</p>
<ul>
<li>When connecting from another computer, you may see the following error message:&#160; <br /><img border="0" alt="Access is denied due to invalid credentials" src="http://blogs.southworks.net/gabrielsz/files/2009/06/image4.png" width="640" height="149" />      </li>
<li>And when you connect from the same server, the more detailed error is displayed:     <br /><img border="0" alt="HTTP Error 401.2 - Unauthorized You are not authorized to view this page due to invalid authentication headers" src="http://blogs.southworks.net/gabrielsz/files/2009/06/image5.png" width="640" height="446" /> </li>
</ul>
<p>The error messages indicate that Windows Authentication is disabled, but when you check the IIS configuration it shows as if it were enabled:   <br /><img border="0" alt="image" src="http://blogs.southworks.net/gabrielsz/files/2009/06/image6.png" width="464" height="199" /> </p>
<h2>So, where is the error?</h2>
<p>In IIS 7 the overall configuration file is stored in <strong>C:\Windows\System32\inetsrv\config\<a href="http://learn.iis.net/page.aspx/124/introduction-to-applicationhostconfig/">applicationHost.config</a></strong>. The file contains some <a href="http://learn.iis.net/page.aspx/157/how-to-use-configuration-delegation-in-iis-70/">configurations</a> that apply to the whole server, some configurations that apply to each site, and some that apply to a specific path. If you scroll down the file until you see the &quot;FederationPassive&quot; location configuration, you&#8217;ll see that Windows Authentication is disabled. That is OK except that it is also removing the authentication providers, so no child location can use Windows Authentication without them!</p>
<p>&#160;<img border="0" alt="image" src="http://blogs.southworks.net/gabrielsz/files/2009/06/image7.png" width="486" height="229" /> </p>
<h2>Solution</h2>
<p>Open <strong>applicationHost.config</strong> in a text editor. Find the <strong>&lt;location&gt;</strong> tag related to Windows Integrated Authentication and modify it to look like the following:</p>
<p><img border="0" alt="image" src="http://blogs.southworks.net/gabrielsz/files/2009/06/image8.png" width="838" height="209" /> </p>
<h3>Configuration section</h3>
<p>Below you&#8217;ll find the complete configuration section that you can copy and paste onto your <strong>applicationHost.config</strong> file.</p>
<p><font face="Consolas">&lt;location path=&quot;Default Web Site/FederationPassive/auth/integrated&quot; &gt;     <br />&#160;&#160;&#160; &lt;system.webServer&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;security&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;authentication&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;anonymousAuthentication enabled=&quot;false&quot; /&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;windowsAuthentication enabled=&quot;true&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </font><font face="Consolas">useKernelMode=&quot;true&quot; useAppPoolCredentials=&quot;true&quot;&gt;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;providers&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;add value=&quot;Negotiate&quot; /&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;add value=&quot;NTLM&quot; /&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/providers&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/windowsAuthentication&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/authentication&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/security&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;handlers accessPolicy=&quot;Read, Script&quot; /&gt;      <br />&#160;&#160;&#160; &lt;/system.webServer&gt;      <br />&lt;/location&gt;</font></p>
<p>When you save the file, IIS will automatically reload the configuration, so you don&#8217;t need to restart any service.</p>
<p>Hope this helps!</p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/QyvT_Qrk850" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/gabrielsz/2009/06/24/geneva-server-beta-2-troubleshooting-windows-integrated-authentication/</feedburner:origLink></item>
	<item>
		<title>WebBrowser control Quickstart for the Composite Application Guidance for WPF and Silverlight (Prism-v2)</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/NfTiG9ZRe-o/</link>
		<comments>http://blogs.southworks.net/dschenkelman/2009/06/23/webbrowser-control-quickstart-for-the-composite-application-guidance-for-wpf-and-silverlight-prism-v2/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 07:40:28 +0000</pubDate>
		<dc:creator>Damian Schenkelman</dc:creator>
		
		<category><![CDATA[Composite Application Guidance for WPF &amp; SL]]></category>

		<category><![CDATA[Event Aggregation]]></category>

		<category><![CDATA[Patterns &amp; Practices]]></category>

		<category><![CDATA[Prism-v2]]></category>

		<category><![CDATA[WCF]]></category>

		<category><![CDATA[WPF]]></category>

		<category><![CDATA[Windows Presentation Foundation]]></category>

		<category><![CDATA[p&amp;p]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/dschenkelman/?p=103</guid>
		<description><![CDATA[Last week, with Matias Bonaventura, Julian Dominguez and Pablo Constantini, we created a WPF demo application using Prism-v2 that shows both way interaction between different modules of the application and different WPF WebBrowser controls.
Below you can find some of the highlights of how this application works. The demo shows interaction between the WPF application and [...]]]></description>

		<content:encoded><![CDATA[<p>Last week, with <a href="http://blogs.southworks.net/matiasb/">Matias Bonaventura</a>, <a href="http://blogs.southworks.net/jdominguez/">Julian Dominguez</a> and <a href="http://blogs.southworks.net/pcostantini/">Pablo Constantini</a>, we created a WPF demo application using Prism-v2 that shows both way interaction between different modules of the application and different <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.aspx">WPF WebBrowser controls</a>.</p>
<p>Below you can find some of the highlights of how this application works. The demo shows interaction between the WPF application and a Web application hosted in a WebBrowser control. How this is done is explained with further detail in the blog post.</p>
<h4>Quickstart Overview</h4>
<p>The demo has the following main components:</p>
<ul>
<li><strong>CustomersModule</strong>: This module is responsible for handling the information of the different customers. It gets the information from a <a href="http://msdn.microsoft.com/en-us/netframework/aa663324.aspx">WCF</a> WebService. It has a single view, CustomerView, with a DataGrid to show the customers.  The view is placed in the &#8220;CustomersRegion&#8221; (top left of the screen).</li>
<li><strong>LocationModule</strong>: This module contains a single view which in turn hosts a <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.aspx">WPF WebBrowser control</a> (and a progress bar to show when the page is loading). This control shows the place of residence of the customer through Bing Maps. This view is placed in the &#8220;LocationRegion&#8221; (bottom of the screen).</li>
<li><strong>OrdersModule</strong>: This module contains a single view which has a <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.aspx">WPF WebBrowser control</a>. This control shows a different ASP.NET page with a customer order, based on the customer that is selected in the CustomersView DataGrid. The view is shown in the &#8220;OrdersRegion&#8221;.</li>
<li>A Web Application that allows shipping different customer orders.</li>
<li>A WCF service that manages Customers and Orders (this is for the Web app and the WPF app to share the same data).</li>
</ul>
<p>The image below shows the layout of the application:<br />
<a href="http://blogs.southworks.net/dschenkelman/files/2009/06/demolayout.png"><img class="alignnone size-full wp-image-104" src="http://blogs.southworks.net/dschenkelman/files/2009/06/demolayout.png" alt="Demo UI Layout" width="500" height="334" /></a></p>
<h4>How does the application work?</h4>
<p>When a customer from the DataGrid is selected a command is executed (through an <a href="http://blogs.southworks.net/jdominguez/2008/08/icommand-for-silverlight-with-attached-behaviors/">attached behavior</a> with the DataGrid&#8217;s SelectionChanged event). This command publishes an event using the <a href="http://msdn.microsoft.com/en-us/library/dd458915.aspx">EventAggregator</a> to notify the Presenter&#8217;s of the OrdersView and LocationView in the other modules.</p>
<p>The OrdersView updates the page it shows in the WebBrowser control, and the LocationView updates the customer&#8217;s address in a BingMap.</p>
<p>When the user clicks the <strong>&#8220;Ship Order&#8221; </strong>button from the WebSite hosted in the WebBroser control from the OrdersView:</p>
<ol>
<li>The WCF Web Service is updated with the data of the Shipped Order (marks the order as shipped).</li>
<li>The view listens to the published JS event in the site hosted by the WebBrowser control and notifies its Presenter (I go over how this communication takes place later in this post).</li>
<li>The Presenter fires an event through EventAggregator.</li>
<li>The event is handled by the CustomersViewModel which updates the customer list through the WebService.</li>
<li>The Customers DataGrid is updated.</li>
</ol>
<h4>Implementation Specifics</h4>
<p>To enable the <strong>WebSite</strong> to communicate with the <strong>WebBrowser </strong>control (via JS events) the following steps were performed:</p>
<ol>
<li>Created the <strong>OrdersScriptableModel</strong> class (located in the <strong>OrdersView</strong> code behind), which is serialized as JS.</li>
<li>Fire a JS event from this class in the page and this in turn notifies the view.</li>
<li>Publish an event (using the <strong>EventAggregator</strong>) to establish communication with the <strong>CustomersViewModel</strong> to update the customers list (performing a call to the WebService).</li>
</ol>
<p>There are other possible approaches, such as going over the different controls in the current <strong>WebBrowser.Document</strong> to listen for JS events.</p>
<p>You can also check out some tips about using WCF services in Prism in <a href="http://blogs.southworks.net/matiasb/2009/06/20/how-to-consume-wcf-services-from-composite-application-guidance-for-wpf-and-silverlightprism-v2-modules/">this post</a> by Matias.</p>
<h4>Source Code</h4>
<h6>Disclaimer</h6>
<p>This code is provided &#8220;AS IS&#8221; with no warranties, and confers no rights.</p>
<h6>Download</h6>
<p>We uploaded the sample to the <a href="http://compositewpf.codeplex.com/">Prism codeplex site</a>. You can get the sample from <a href="http://compositewpf.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=72581">here</a>.</p>
<p>Hope this sample application is useful!!!</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.southworks.net%2fdschenkelman%2f2009%2f06%2f23%2fwebbrowser-control-quickstart-for-the-composite-application-guidance-for-wpf-and-silverlight-prism-v2%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.southworks.net%2fdschenkelman%2f2009%2f06%2f23%2fwebbrowser-control-quickstart-for-the-composite-application-guidance-for-wpf-and-silverlight-prism-v2%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
<p><a rev="vote-for" href="http://dotnetshoutout.com/WebBrowser-control-Quickstart-for-the-Composite-Application-Guidance-for-WPF-and-Silverlight-Prism-v2"><img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Fblogs.southworks.net%2Fdschenkelman%2F2009%2F06%2F23%2Fwebbrowser-control-quickstart-for-the-composite-application-guidance-for-wpf-and-silverlight-prism-v2%2F"></a></p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/NfTiG9ZRe-o" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/dschenkelman/2009/06/23/webbrowser-control-quickstart-for-the-composite-application-guidance-for-wpf-and-silverlight-prism-v2/</feedburner:origLink></item>
	<item>
		<title>Optional Checkable Tree View Control for .NET Compact Framework 3.5</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/LWR9BQ_ye_M/</link>
		<comments>http://blogs.southworks.net/mconverti/2009/06/22/optional-checkable-tree-view-control-for-net-compact-framework-35/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 09:02:59 +0000</pubDate>
		<dc:creator>mconverti</dc:creator>
		
		<category><![CDATA[.NET Compact Framework]]></category>

		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/mconverti/?p=126</guid>
		<description><![CDATA[
During this month I was working with my teammates Julian Dominguez and Diego Perez on a project that targeted Window Mobile 6.0 and the .NET Compact Framework 3.5. The main objective of this project was to create a module for an existing mobile application to let users perform different surveys and allowing them to navigate [...]]]></description>

		<content:encoded><![CDATA[<div style="height: 202px">
<p><a href="http://blogs.southworks.net/mconverti/files/2009/06/mobilecompactframework10.png"><img style="margin-left: 0px;margin-right: 0px" src="http://blogs.southworks.net/mconverti/files/2009/06/mobilecompactframework-thumb10.png" border="0" alt="Windows Mobile" width="138" height="191" align="left" /></a>During this month I was working with my teammates <a href="http://blogs.southworks.net/jdominguez/">Julian Dominguez</a> and <a href="http://blogs.southworks.net/dperez">Diego Perez</a> on a project that targeted <strong>Window Mobile 6.0</strong> and the <strong>.NET Compact Framework 3.5</strong>. The main objective of this project was to create a module for an existing mobile application to let users perform different surveys and allowing them to navigate and filter through the questions and answers (between other things).</p>
</div>
<p>Among all the requirements for this project, there was one that asked for a view to show a hierarchical list of the questions / answers of the survey grouped by their types. The special thing about this view was that only some items of the hierarchical list should be checkable. Julian and I tried to use the <a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview(VS.80).aspx">TreeView</a> control included in the .NET Compact Framework, but this control does not allow you to choose which items are checkable and which are not. So we decided to extend the default TreeView and create an optional checkable TreeView control. These were the results:</p>
<p><a href="http://blogs.southworks.net/mconverti/files/2009/06/treeviewcontrols1.png"><img src="http://blogs.southworks.net/mconverti/files/2009/06/treeviewcontrols-thumb1.png" border="0" alt="Tree View Controls" width="555" height="377" /></a> </p>
<p>As you can see, in the default <strong>TreeView</strong> control (on the left) all the nodes has check boxes even the ones that are expandable. In the <strong>OptionalCheckableTreeView</strong> control (on the right) the expandable nodes are not checkable.</p>
<h3>Implementation Details</h3>
<p>Instead of setting the <a href="http://msdn.microsoft.com/library/system.windows.forms.treeview.checkboxes(VS.80).aspx"><span style="color: #669966">CheckBoxes</span></a> property of the TreeView to true, we are using images to display the check boxes (either in checked or unchecked state) and the minus and plus icons to expand the tree.</p>
<p>To accomplish this we had to add support for the <strong>NodeMouseClick</strong> event, which is not available in the .NET Compact Framework. This event allows us to check / uncheck / expand / collapse the clicked node and also change the image index. We followed the guidance provided in the following articles in <a href="http://msdn.microsoft.com/"><span style="color: #669966">MSDN</span></a>, with a few modifications:</p>
<ul>
<li><a href="http://msdn.microsoft.com/library/ms229683.aspx"><span style="color: #669966">How to: Use a Helper Class for Platform Invokes</span></a></li>
<li><a href="http://msdn.microsoft.com/library/ms229658.aspx"><span style="color: #669966">How to: Use a Class for Hooking Windows Procedures</span></a></li>
<li><a href="http://msdn.microsoft.com/library/ms229669.aspx"><span style="color: #669966">How to: Subclass a TreeView by Using Native Callbacks</span></a></li>
</ul>
<h3>Download</h3>
<p>Download the C# source code from <a href="http://blogs.southworks.net/mconverti/files/2009/06/optionalcheckabletreeview.zip">here</a>. The ZIP file contains the following:</p>
<ul>
<li><strong>OptionalCheckableTreeView.sln</strong>: Contains the source code for the <strong>OptionalCheckableTreeView</strong> control.</li>
<li><strong>OptionalCheckableTreeView.Sample.sln</strong>: Contains a sample application that uses the <strong>OptionalCheckableTreeView</strong> control.</li>
</ul>
<table border="1" cellspacing="0" cellpadding="2" width="520">
<tbody>
<tr>
<td width="520" valign="middle"><strong>Note</strong>: This code is provided “AS IS” with no warranties, and confers no rights.</td>
</tr>
</tbody>
</table>
<p>Feedback is always appreciated!</p>
<p>Mariano</p>
<div id="71e18c0a-c49d-4656-9e52-6788702ab44f" class="wlWriterEditableSmartContent" style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px">Technorati Tags: <a rel="tag" href="http://technorati.com/tags/Windows+Mobile+6.0">Windows Mobile 6.0</a>,<a rel="tag" href="http://technorati.com/tags/.NET+Compact+Framework+3.5">.NET Compact Framework 3.5</a>,<a rel="tag" href="http://technorati.com/tags/TreeView">TreeView</a></div>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.southworks.net%2fmconverti%2f2009%2f06%2f22%2foptional-checkable-tree-view-control-for-net-compact-framework-35%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.southworks.net%2fmconverti%2f2009%2f06%2f22%2foptional-checkable-tree-view-control-for-net-compact-framework-35%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/LWR9BQ_ye_M" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/mconverti/2009/06/22/optional-checkable-tree-view-control-for-net-compact-framework-35/</feedburner:origLink></item>
	<item>
		<title>The Cookie Experiment</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/UwwPbaFRLAg/</link>
		<comments>http://blogs.southworks.net/tosborn/2009/06/21/the-cookie-experiment/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 03:56:21 +0000</pubDate>
		<dc:creator>Tim Osborn</dc:creator>
		
		<category><![CDATA[Leadership]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/tosborn/?p=41</guid>
		<description><![CDATA[Three people working together. A plate of five cookies available on the break. Social norms dictate that no one take the last (fifth) cookie, but what about the fourth?

Such was the inquiry of the “cookie experiment” reported by Keltner, Gruenfeld &#38; Anderson (2000). Groups of individuals were placed into teams of three, with two responsible [...]]]></description>

		<content:encoded><![CDATA[<p>Three people working together. A plate of five cookies available on the break. Social norms dictate that no one take the last (fifth) cookie, but what about the fourth?</p>
<p><a href="http://blogs.southworks.net/tosborn/files/2009/06/plate.png"><img src="http://blogs.southworks.net/tosborn/files/2009/06/plate-thumb.png" border="0" alt="PLATE" width="200" height="240" /></a></p>
<p>Such was the inquiry of the “cookie experiment” reported by Keltner, Gruenfeld &amp; Anderson (2000). Groups of individuals were placed into teams of three, with two responsible for creating a social policy paper and one randomly assigned to evaluate the output.  After  30 minutes, “the experimenter arrived with a plate of five cookies. This allowed each participant to take one cookie, and at least one participant to comfortably take a second cookie, thus leaving one cookie on the plate.” No one was expected to take the fifth cookie and no one did. But what about the fourth, the one that could be taken without awkwardness, or negotiation? The results of the study showed that the “boss” (the evaluator) was clearly more likely to take a second cookie.  (Videotapes of the interactions also showed them more likely to eat with their mouths open and scattering crumbs widely.) The conclusion is that individuals in power are more “disinhibited” and prone to focus on their own needs to the exclusion of others.</p>
<p><a href="http://blogs.southworks.net/tosborn/files/2009/06/cook1es.png"><img src="http://blogs.southworks.net/tosborn/files/2009/06/cook1es-thumb.png" border="0" alt="cook1Es" width="240" height="209" /></a></p>
<p>The authors proceed to identify some candidate behaviors that are more “prosocial” in nature, with less focus on self and more on others. One of those, expressing approval,  led me to think about ways in which to improve and be more effective in this area.</p>
<ol>
<li>Take the time to point out areas of positive contribution of employees. Don’t assume they “just know” they are appreciated.</li>
<li>Be specific, demonstrating authentic knowledge of the contribution. (In large organizations you often see congratulatory emails work their way up the chain to increasing levels of abstraction until you see a final reply all of the nature, “I want to thank each and every one of you for your efforts in this endeavor.” Not exactly Hoosiers-like inspiration.)</li>
<li>Give them some insight as to how this benefits the company, especially beyond the obvious. Ideally everyone has the vision of how what they are doing benefits the company. Ideally.</li>
<li>Resist the temptation to temper it with some constructive criticism, as if their performance might degrade due to the poor aerodynamic properties of an engorged head. Authentic (and rigorous) feedback about improvement areas is vital, but it does not have to permeate every conversation. Share five large positive things and one minor area of criticism with someone and what will he remember? Just the one negative thing. Save it for another conversation.</li>
<li>Don’t fish for return compliments. It should be more sincere than simply a bartered transaction at an accolade flea market.</li>
</ol>
<p>Simple things requiring little investment, yet with potentially high returns in terms of motivation. And who knows, if you do it enough you might start to notice there’s a few less crumbs on your shirt at the end of the day.  <img src='http://blogs.southworks.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>“I have yet to find the man, however exalted his station, who did not do better work and put forth greater effort under a spirit of approval than under a spirit of criticism.”</em> – Charles Schwab</p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/UwwPbaFRLAg" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/tosborn/2009/06/21/the-cookie-experiment/</feedburner:origLink></item>
	<item>
		<title>How-to: Consume WCF services from Composite Application Guidance for WPF and Silverlight(Prism-v2) Modules</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/-Z74KUs5LLg/</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>

		<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>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/-Z74KUs5LLg" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/matiasb/2009/06/20/how-to-consume-wcf-services-from-composite-application-guidance-for-wpf-and-silverlightprism-v2-modules/</feedburner:origLink></item>
	<item>
		<title>ASP.NET control for claims-aware apps</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/26QJpRLvhaY/</link>
		<comments>http://blogs.southworks.net/mwoloski/2009/06/19/aspnet-control-for-claims-aware-apps/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 00:40:53 +0000</pubDate>
		<dc:creator>Matias Woloski</dc:creator>
		
		<category><![CDATA[Claim-Based Identity]]></category>

		<category><![CDATA[Geneva]]></category>

		<category><![CDATA[Identity]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/mwoloski/2009/06/19/aspnet-control-for-claims-aware-apps/</guid>
		<description><![CDATA[Vittorio just announced it in his blog… we helped writing an experiment of raising the level of abstraction to work against claims. We created a server control that allows you to work with claims. There are three types of expression:

Claim Value: set the value of a property with the value of a specified claim type

&#60;cc1:ClaimsDrivenModifierControl [...]]]></description>

		<content:encoded><![CDATA[<div id="codeSnippetWrapper"><a href="http://blogs.msdn.com/vbertocci/archive/2009/06/19/use-claims-for-driving-your-web-ui-without-even-seeing-a-line-of-code.aspx">Vittorio just announced it in his blog</a>… we helped writing an experiment of raising the level of abstraction to work against claims. We created a server control that allows you to work with claims. There are three types of expression:</div>
<ul>
<li><strong>Claim Value</strong>: set the value of a property with the value of a specified claim type</li>
</ul>
<p><span class="kwrd">&lt;</span><span class="html">cc1:ClaimsDrivenModifierControl</span> <span class="attr">ID</span><span class="kwrd">=&#8221;cdmFirstName&#8221;</span> <span class="attr">runat</span><span class="kwrd">=&#8221;server&#8221;</span> <span class="attr">ControlToDrive</span><span class="kwrd">=&#8221;txtFirstName&#8221;</span> <span class="attr">PropertyToModify</span><span class="kwrd">=&#8221;Text&#8221;</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">Expression</span> <span class="attr">Type</span><span class="kwrd">=&#8221;ClaimValue&#8221;</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">ClaimType</span><span class="kwrd">&gt;</span>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname<span class="kwrd">&lt;/</span><span class="html">ClaimType</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;/</span><span class="html">Expression</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;/</span><span class="html">cc1:ClaimsDrivenModifierControl</span><span class="kwrd">&gt;</span></p>
<li><strong>Condition</strong>: set the value of a property based on a condition <span class="kwrd">&lt;</span><span class="html">cc1:ClaimsDrivenModifierControl</span> <span class="attr">ID</span><span class="kwrd">=&#8221;cdmPrivileges&#8221;</span> <span class="attr">runat</span><span class="kwrd">=&#8221;server&#8221;</span> <span class="attr">ControlToDrive</span><span class="kwrd">=&#8221;pnlPrivileges&#8221;</span> <span class="attr">PropertyToModify</span><span class="kwrd">=&#8221;Visible&#8221;</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">Expression</span> <span class="attr">Type</span><span class="kwrd">=&#8221;Condition&#8221;</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">ClaimType</span><span class="kwrd">&gt;</span>http://cloudbuddies.com/2009/06/FrequentFlierProgram<span class="kwrd">&lt;/</span><span class="html">ClaimType</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">Operator</span><span class="kwrd">&gt;</span>Equals<span class="kwrd">&lt;/</span><span class="html">Operator</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">Value</span><span class="kwrd">&gt;</span>FabrikamAirlines<span class="kwrd">&lt;/</span><span class="html">Value</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;/</span><span class="html">Expression</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;/</span><span class="html">cc1:ClaimsDrivenModifierControl</span><span class="kwrd">&gt;</span>
<ul>
<li><strong>Mapping: </strong>it will set the value of a property based on a set of conditions with an output <span class="kwrd">&lt;</span><span class="html">cc1:ClaimsDrivenModifierControl</span> <span class="attr">ID</span><span class="kwrd">=&#8221;cdmMemebershipLevel&#8221;</span> <span class="attr">runat</span><span class="kwrd">=&#8221;server&#8221;</span> <span class="attr">ControlToDrive</span><span class="kwrd">=&#8221;imgMembershipLevel&#8221;</span> <span class="attr">PropertyToModify</span><span class="kwrd">=&#8221;ImageUrl&#8221;</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">Expression</span> <span class="attr">Type</span><span class="kwrd">=&#8221;Mapping&#8221;</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">cc1:Mapping</span> <span class="attr">ClaimType</span><span class="kwrd">=&#8221;http://cloudbuddies.com/2009/06/FrequentFlierLevel&#8221;</span> <span class="attr">ClaimValue</span><span class="kwrd">=&#8221;silver&#8221;</span> <span class="attr">Result</span><span class="kwrd">=&#8221;~/img/silver.png&#8221;</span> <span class="kwrd">/&gt;</span> <span class="kwrd">&lt;</span><span class="html">cc1:Mapping</span> <span class="attr">ClaimType</span><span class="kwrd">=&#8221;http://cloudbuddies.com/2009/06/FrequentFlierLevel&#8221;</span> <span class="attr">ClaimValue</span><span class="kwrd">=&#8221;gold&#8221;</span> <span class="attr">Result</span><span class="kwrd">=&#8221;~/img/gold.png&#8221;</span> <span class="kwrd">/&gt;</span> <span class="kwrd">&lt;/</span><span class="html">Expression</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;/</span><span class="html">cc1:ClaimsDrivenModifierControl</span><span class="kwrd">&gt;</span></li>
</ul>
<p>And of course you can use the designer to set this all up. I’m not a huge fan of server controls and designers but I know that there are people out there that loves them, so this is something that will bring you closer to developing claims-aware applications.</p>
<p>Download the control from <a title="http://code.msdn.microsoft.com/ClaimsDrivenControl/Release/ProjectReleases.aspx?ReleaseId=2861" href="http://code.msdn.microsoft.com/ClaimsDrivenControl/Release/ProjectReleases.aspx?ReleaseId=2861">http://code.msdn.microsoft.com/ClaimsDrivenControl/Release/ProjectReleases.aspx?ReleaseId=2861</a></li>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/26QJpRLvhaY" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/mwoloski/2009/06/19/aspnet-control-for-claims-aware-apps/</feedburner:origLink></item>
	<item>
		<title>Identity thoughts #2: Level 2 Authorization</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/NfeBb1wD_0U/</link>
		<comments>http://blogs.southworks.net/mwoloski/2009/06/17/identity-thoughts-2-level-2-authorization/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 04:59:56 +0000</pubDate>
		<dc:creator>Matias Woloski</dc:creator>
		
		<category><![CDATA[Federation]]></category>

		<category><![CDATA[Geneva Server]]></category>

		<category><![CDATA[Identity Management]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/mwoloski/2009/06/17/identity-thoughts-2-level-2-authorization/</guid>
		<description><![CDATA[In my last post I talked about an identity roadmap and how we are helping companies to achieve Level 1: Externalizing Authentication. In this first level, we only care about checking the credentials of a user in a Security Token Service and issue a token with a couple of claims. That token will be enough [...]]]></description>

		<content:encoded><![CDATA[<p>In my last post I talked about an <a href="http://blogs.southworks.net/mwoloski/2009/05/27/microsoft-architecture-day-roadmap-to-identity/">identity roadmap</a> and how we are helping companies to achieve <strong>Level 1: Externalizing Authentication</strong>. In this first level, we only care about checking the credentials of a user in a Security Token Service and issue a token with a couple of claims. That token will be enough to prove access to the application. </p>
<p>Reaching the <strong>Level 1 </strong>will make a great difference to the IT department of a given company. By having a central login place they will be able to answer to questions like “when someone logged in to a certain application?”, “which applications someone used in this timeframe?”, etc. In terms of governance, having a single way to implement login will allow the architecture department (if any) to decrease security threats because there is a single well thought piece of infrastructure to perform user authentication across all apps. As a side effect it will also reduce costs of development and maintenance. </p>
<p><strong>Level 2 </strong>talks about the <strong>authorization </strong>process. The authorization decision happens near the application or the service because it knows about the resource (each application has a different domain model).</p>
<p><strong>Geneva Server – Level 1 Authentication</strong></p>
<ul>
<li>SSO &amp; Federation – unified login experience and federation with partners</li>
<li>Centralized Claim Mapping management</li>
<li>Externalize authentication</li>
<li>Near the identity provider</li>
<li>Questions it will answer</li>
<ul>
<li>When a subject logged in to an app? </li>
<li>What claims the subject presented to the app?</li>
</ul>
</ul>
<p><strong>Policy Server&#160; - Level 2 Authorization</strong></p>
<ul>
<li>Policy Enforcement</li>
<li>Centralized Policy Rules management</li>
<li>Externalize authorization</li>
<li>Near the application</li>
<li>Questions it will answer</li>
<ul>
<li>What permissions did the subject requested? </li>
<li>What permissions where denied?</li>
</ul>
</ul>
<p>The following figure shows a very high level architecture of the components and its interactions</p>
<p><a href="http://blogs.southworks.net/mwoloski/files/2009/06/image1.png"><img border="0" alt="image" src="http://blogs.southworks.net/mwoloski/files/2009/06/image-thumb1.png" width="640" height="472" /></a></p>
<p><strong>Resources</strong></p>
<p>[XACML] <a title="http://www.oasis-open.org/committees/xacml/" href="http://www.oasis-open.org/committees/xacml/">http://www.oasis-open.org/committees/xacml/</a>    <br />[Geneva Server] <a href="http://connect.microsoft.com/content/content.aspx?ContentID=10106&amp;SiteID=642">http://connect.microsoft.com/content/content.aspx?ContentID=10106&amp;SiteID=642</a>    <br />[SAML] <a title="http://www.oasis-open.org/specs/#samlv2.0" href="http://www.oasis-open.org/specs/#samlv2.0">http://www.oasis-open.org/specs/#samlv2.0</a></p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/NfeBb1wD_0U" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/mwoloski/2009/06/17/identity-thoughts-2-level-2-authorization/</feedburner:origLink></item>
	<item>
		<title>Identity thoughts #1: Analogy between a single app and a federated app</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/7HVG28SSWI4/</link>
		<comments>http://blogs.southworks.net/mwoloski/2009/06/17/identity-thoughts-1-analogy-between-a-single-app-and-a-federated-app/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 04:36:09 +0000</pubDate>
		<dc:creator>Matias Woloski</dc:creator>
		
		<category><![CDATA[Federation]]></category>

		<category><![CDATA[Geneva]]></category>

		<category><![CDATA[Geneva Server]]></category>

		<category><![CDATA[Identity]]></category>

		<category><![CDATA[Identity Management]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/mwoloski/2009/06/17/identity-thoughts-1-analogy-between-a-single-app-and-a-federated-app/</guid>
		<description><![CDATA[The following table shows an analogy of identity concepts between a single application and a federated application. 
The single app has its own identity silo and the federated app relies on an STS (like Geneva Server). I find this analogy useful to explain how things differ from the non-federated non-claim-based world.

]]></description>

		<content:encoded><![CDATA[<p>The following table shows an analogy of identity concepts between a single application and a federated application. </p>
<p>The single app has its own identity silo and the federated app relies on an STS (like <a href="http://connect.microsoft.com/content/content.aspx?ContentID=10106&amp;SiteID=642">Geneva Server</a>). I find this analogy useful to explain how things differ from the non-federated non-claim-based world.</p>
<p><a href="http://blogs.southworks.net/mwoloski/files/2009/06/image.png"><img border="0" alt="image" src="http://blogs.southworks.net/mwoloski/files/2009/06/image-thumb.png" width="640" height="262" /></a></p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/7HVG28SSWI4" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/mwoloski/2009/06/17/identity-thoughts-1-analogy-between-a-single-app-and-a-federated-app/</feedburner:origLink></item>
	<item>
		<title>Agiles@BsAs monthly meeting</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/gumg0xMi0Bw/</link>
		<comments>http://blogs.southworks.net/aschapiro/2009/06/14/agilesbsas-monthly-meeting/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 23:20:24 +0000</pubDate>
		<dc:creator>aschapiro</dc:creator>
		
		<category><![CDATA[Agiles]]></category>

		<category><![CDATA[Events]]></category>

		<category><![CDATA[Lightning Talks]]></category>

		<category><![CDATA[Presentations]]></category>

		<category><![CDATA[Projects kick off]]></category>

		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/aschapiro/2009/06/14/agilesbsas-monthly-meeting/</guid>
		<description><![CDATA[Last Tuesday I attended to June&#8217;s meeting of an agile practitioners group called &#34;Agiles&#34; (Spanish). The topic for that meeting in particular was &#34;How do you start your projects?&#34;. Overall product planning and project, team and process setup were some of the activities discussed as part of the first iteration of an agile project.
The format [...]]]></description>

		<content:encoded><![CDATA[<p>Last Tuesday I attended to June&#8217;s meeting of an agile practitioners group called &quot;<a href="http://www.agiles.org/">Agiles</a>&quot; (Spanish). The topic for that meeting in particular was <em>&quot;How do you start your projects?&quot;</em>. Overall product planning and project, team and process setup were some of the activities discussed as part of the first iteration of an agile project.</p>
<p>The format for the meeting was similar to a <a href="http://en.wikipedia.org/wiki/Lightning_Talk">Lightning Talk</a>; in this case a series of time-boxed presentations and Q&amp;A (7 +3 mins). Presentations were very interesting, but especially I always find this kind of talks formats very effective: as opposed to long open discussions, they help the audience to get quickly to the point, have a fare amount of questions and then move to the next presentation. This way the audience (customer?) gets added value after a short iteration, in this case of 10 minutes. Any similitude with agile goals? <img src='http://blogs.southworks.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>July 14th meeting will be around estimation in agile projects and they&#8217;ll use the same Lightning Talk format.</p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/gumg0xMi0Bw" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/aschapiro/2009/06/14/agilesbsas-monthly-meeting/</feedburner:origLink></item>
	<item>
		<title>Threat Modeling – Modeling with Microsoft’s SDL Threat Modeling Tool</title>
		<link>http://feedproxy.google.com/~r/master-feed/~3/THLc_kdqWTY/</link>
		<comments>http://blogs.southworks.net/nbeni/2009/06/13/threat-modeling-modeling-with-microsofts-sdl-threat-modeling-tool/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 12:10:00 +0000</pubDate>
		<dc:creator>nbeni</dc:creator>
		
		<category><![CDATA[Threat Modeling]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/nbeni/2009/06/13/threat-modeling-modeling-with-microsofts-sdl-threat-modeling-tool/</guid>
		<description><![CDATA[This is the third post on a series of Threat Modeling post, previously I wrote about Information Gathering and The Modeling Process. On this opportunity I&#8217;d like to introduce you to a very useful tool provided by Microsoft, the SDL Threat Modeling Tool.
Creating Architecture Diagrams
Using Visio&#8217;s engine, this tool helps us in the process of [...]]]></description>

		<content:encoded><![CDATA[<p>This is the third post on a series of Threat Modeling post, previously I wrote about <a href="http://blogs.southworks.net/nbeni/2009/05/22/threat-modeling-information-gathering/">Information Gathering</a> and <a href="http://blogs.southworks.net/nbeni/2009/05/26/threat-modeling-the-modeling-process/">The Modeling Process</a>. On this opportunity I&#8217;d like to introduce you to a very useful tool provided by <a href="http://www.microsoft.com">Microsoft</a>, the <a href="http://msdn.microsoft.com/en-us/security/dd206731.aspx">SDL Threat Modeling Tool</a>.</p>
<p><strong>Creating Architecture Diagrams</strong></p>
<p>Using Visio&#8217;s engine, this tool helps us in the process of creating Architecture Diagrams.</p>
<p>So, let&#8217;s take as an example, a simple system in which we have a SQL Server, a Web Page and the user which uses the page.</p>
<p><em>(This is a simplistic scenario specially thought for this example; it does not in any way suggest a way of designing or programming)</em></p>
<p>First, identify the components of the solution. In our example, we have The <em>User/Browser (External Interactor),</em> the <em>Web Page (Process),</em> and the <em>SQL Server (Data Store)</em>.</p>
<p><em>(Let&#8217;s assume we have gathered all required information following the steps described in my <a href="http://blogs.southworks.net/nbeni/2009/05/22/threat-modeling-information-gathering/">previous post</a> and move to using the tool, threat modeling)</em></p>
<p>  <a href="http://blogs.southworks.net/nbeni/files/2009/06/image3.png"><img src="http://blogs.southworks.net/nbeni/files/2009/06/image3-thumb.png" border="0" alt="image3" width="634" height="176" /></a>  </p>
<p>Modeling with the tool is quite simple, just drag and drop the elements in the canvas (Visio-Like) and then join with the flow arrows.</p>
<p><strong>Identifying Threats</strong></p>
<p>The tool automatically generates &#8220;threats placeholders&#8221; following the STRIDE Chart, mentioned in my <a href="http://blogs.southworks.net/nbeni/2009/05/26/threat-modeling-the-modeling-process/">previous post</a>, for each component and flow of the diagram. It also provides us with some tips to identify those threats.</p>
<p><a href="http://blogs.southworks.net/nbeni/files/2009/06/image4.png"><img src="http://blogs.southworks.net/nbeni/files/2009/06/image4-thumb.png" border="0" alt="image4" width="644" height="383" /></a></p>
<p><strong><em>NOTE: The tool also has TFS integration, so you will be able to open a bug (see &#8220;file bug&#8221; in the screen) directly from the tool.</em></strong></p>
<p>At this point you should complete the placeholders for each element with the corresponding threat, or certify there is none for it. I&#8217;ll add one just as an example.</p>
<p>Let&#8217;s suppose that the webpage does not parse the user/password requested in the login. Then we have a SQL Injection Threat (could be either Tampering or Information Disclosure depending on the solution.)</p>
<p><a href="http://blogs.southworks.net/nbeni/files/2009/06/image5.png"><img src="http://blogs.southworks.net/nbeni/files/2009/06/image5-thumb.png" border="0" alt="image5" width="644" height="348" /></a></p>
<p>At this point, we should file a bug, and, once the bug is closed, update the threat model with the corresponding mitigation.</p>
<p><img src="http://blogs.southworks.net/nbeni/files/2009/06/image6.png" border="0" alt="image6" width="640" height="253" /></p>
<p>There&#8217;s a lot more to investigate, I leave that to you <img src='http://blogs.southworks.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope you find this information useful; feedback and comments are always welcomed <img src='http://blogs.southworks.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> !</p>
<img src="http://feeds.feedburner.com/~r/master-feed/~4/THLc_kdqWTY" height="1" width="1"/>]]></content:encoded>
		<wfw:commentRss />
		<feedburner:origLink>http://blogs.southworks.net/nbeni/2009/06/13/threat-modeling-modeling-with-microsofts-sdl-threat-modeling-tool/</feedburner:origLink></item>
</channel>
</rss><!-- 374 queries 1.692 seconds. -->
