<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>MS Application Blocks</title>
        <link>http://geekswithblogs.net/dmillard/category/500.aspx</link>
        <description>MS Application Blocks</description>
        <language>en-GB</language>
        <copyright>Duncan Millard</copyright>
        <managingEditor>duncan.millard@Microsoft.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Back Button Patch for UI Process Block v2</title>
            <link>http://geekswithblogs.net/dmillard/archive/2004/05/14/4885.aspx</link>
            <description>&lt;P&gt;"&lt;SPAN id=Alias&gt;SpideyWitness" has ported my back button&amp;nbsp;fix to&amp;nbsp;version 2 of the User Interface Process Block. Top man!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I haven't had a chance to check it out yet, but he has kindly emailed me the source so I'll have a look soon.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The release &lt;A href="http://www.gotdotnet.com/Community/Workspaces/viewuploads.aspx?id=0af2b0ef-b049-401a-a2f2-f55a070c1572"&gt;can be found here&lt;/A&gt;&lt;/SPAN&gt;.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=4885"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=4885" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dmillard/aggbug/4885.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Duncan Millard</dc:creator>
            <guid>http://geekswithblogs.net/dmillard/archive/2004/05/14/4885.aspx</guid>
            <pubDate>Fri, 14 May 2004 07:02:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dmillard/comments/4885.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dmillard/archive/2004/05/14/4885.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dmillard/comments/commentRss/4885.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dmillard/services/trackbacks/4885.aspx</trackback:ping>
        </item>
        <item>
            <title>UI Process Block: Let me help you</title>
            <link>http://geekswithblogs.net/dmillard/archive/2004/05/04/4599.aspx</link>
            <description>&lt;P&gt;I've noticed a number of referrals from Google from people looking for help with the UI Process block.&lt;/P&gt;
&lt;P&gt;Having spent some time with the UI Process Block I'd like to share my experiences, but to do that I would like to know what information people are after. Please leave me a comment below, or contact me directly using the "Contact" link above and I'll try to come up with some suitable articles.&lt;/P&gt;
&lt;P&gt;Finally the obligatory plug: If you are looking for help with UI Process Block implementation, especially on projects that also involve BizTalk, my employer (&lt;A href="http://www.solidsoft.com"&gt;www.solidsoft.com&lt;/A&gt;) specialises in BizTalk and .NET implementations so feel free to make an approach to learn more about us and (I hope) engage us commercially.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;IMPORTANT UPDATE: &lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;I haven't worked with the UI Process Block for almost a year, so it's increasingly hard to devote time to looking into these issues. Please feel free to continue using my comments section to ask questions - but it's unlikely that I'll be able to chip in with answers. Don't forget the &lt;A href="http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=0af2b0ef-b049-401a-a2f2-f55a070c1572"&gt;Got Dot Net workspace.&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;IMPORTANT UPDATE #2: &lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;I've now closed comments on this entry; please direct your questions to the official &lt;A href="http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=0af2b0ef-b049-401a-a2f2-f55a070c1572"&gt;Got Dot Net workspace.&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;IMPORTANT UPDATE #3 :): &lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Closing comments meant they weren't displayed any more; that was unintentional and seems to be a limitation of the .Text blog engine. Comments are open again so that you can see the old content :).&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=4599"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=4599" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dmillard/aggbug/4599.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Duncan Millard</dc:creator>
            <guid>http://geekswithblogs.net/dmillard/archive/2004/05/04/4599.aspx</guid>
            <pubDate>Tue, 04 May 2004 12:41:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dmillard/comments/4599.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dmillard/archive/2004/05/04/4599.aspx#feedback</comments>
            <slash:comments>107</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dmillard/comments/commentRss/4599.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dmillard/services/trackbacks/4599.aspx</trackback:ping>
        </item>
        <item>
            <title>User Interface Process Block v2 and Back Button Issues</title>
            <link>http://geekswithblogs.net/dmillard/archive/2004/04/26/4351.aspx</link>
            <description>Microsoft have released the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/uipab.asp"&gt;User Interface Process (UIP) Application Block Version 2&lt;/A&gt;. This application block lets you separate out your UI code from your UI navigation code by using a config-driven navigation/workflow system.&lt;BR&gt;&lt;BR&gt;I've been using version 1 quite extensively on a project in my day job, and an in-house framework that was pretty similar at my previous company and I recommend you take a look at it if you have any kind of halfway-complex or repeating navigation/workflow.&lt;BR&gt;&lt;BR&gt;One caveat - the back button support isn't quite as good in v2 as it could be. V1 had some serious issues with the back button for which I released a fix on the &lt;A href="http://www.gotdotnet.com/Community/Workspaces/Workspace.aspx?id=0af2b0ef-b049-401a-a2f2-f55a070c1572"&gt;Got Dot Net community workspace&lt;/A&gt;. Having had a quick glance at the v2 source, I'm pleased to see that it looks like they've fixed one of my biggest gripes - namely that an out of order post back used the wrong controller - however three key issues are still present: &lt;BR&gt;&lt;BR&gt;- You can't use the same ASP.NET page as the basis for multiple views&lt;BR&gt;- Out-of-order postbacks of the same ASP.NET page are not detected as being an out of order postback&lt;BR&gt;- Out-of-order postbacks (when detected and explicitly allowed) are potentially sent to the wrong nav graph.&lt;BR&gt;&lt;BR&gt;In detail, it detects back-button usage by comparing the System.Type of the posted back page with the System.Type of the most-recently-rendered page and uses this to figure out the page's view name. This is where we hit the first issue: You can't have multiple views defined with the same underlying page. I use this scenario quite extensively when I want to have a common page which renders subtly differently in different contexts - for example on a customer details screen the page checks if it's the "new customer details", or the "amend customer details" view, and adjusts itself accordingly. Yes, I could infer this from the NavGraph but then the UI code becomes aware of the navigation, instead of only caring about its own state. &lt;BR&gt;&lt;BR&gt;Secondly, the post back is handled by the most recent navgraph. Hence if your view is used in multiple navigation graphs (eg the 'new customer' and the 'amend details' nav graphs) then you're going to suddenly launch into the wrong navgraph if you use the 'back' button to get to a view used in an old navgraph. The UIP block does check that the view exists in the current nav graph, which seems to me to be a half hearted compromise. If you are doing context-sensitive navigation - for example by having a 'next' button for new customer but an 'update' button for amendments then Stuff will still break.&lt;BR&gt;&lt;BR&gt;Finally, and as should be obvious from the above, the system can't detect that you're an out of order postback when you use the back button and post back a page of the same System.Type as the most recently rendered page.&lt;BR&gt;&lt;BR&gt;So all in all the V2 release is better than the V1 release in terms of back button support, but still leaves a lot to be desired for my particular scenario. I'll try to get an enhanced back button support release together for V2 as soon as I can.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=4351"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=4351" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dmillard/aggbug/4351.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Duncan Millard</dc:creator>
            <guid>http://geekswithblogs.net/dmillard/archive/2004/04/26/4351.aspx</guid>
            <pubDate>Mon, 26 Apr 2004 11:39:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dmillard/comments/4351.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dmillard/archive/2004/04/26/4351.aspx#feedback</comments>
            <slash:comments>9</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dmillard/comments/commentRss/4351.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dmillard/services/trackbacks/4351.aspx</trackback:ping>
        </item>
    </channel>
</rss>