<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Paulo Morgado : PageModules</title><link>http://msmvps.com/blogs/paulomorgado/archive/tags/PageModules/default.aspx</link><description>Tags: PageModules</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Are Page Modules Still Useful In IIS7?</title><link>http://msmvps.com/blogs/paulomorgado/archive/2007/10/15/are-page-modules-still-useful-in-iis7.aspx</link><pubDate>Mon, 15 Oct 2007 00:19:20 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1247551</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1247551</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1247551</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2007/10/15/are-page-modules-still-useful-in-iis7.aspx#comments</comments><description>&lt;p&gt;With &lt;a title="Internet Information Services 7.0" href="http://www.iis.net/default.aspx?tabid=7" target="_blank"&gt;IIS7&lt;/a&gt; a new transfer method is available in the &lt;a title="HttpServerUtility Class" href="http://msdn2.microsoft.com/library/System.Web.HttpServerUtility.aspx" target="_blank"&gt;HttpServerUtility class&lt;/a&gt;. It&amp;#39;s the &lt;a title="HttpServerUtility.TransferRequest Method" href="http://msdn2.microsoft.com/library/System.Web.HttpServerUtility.TransferRequest.aspx" target="_blank"&gt;TransferRequest method&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;What this method is intended to do is behave like the &lt;a title="HttpResponse.Redirect Method" href="http://msdn2.microsoft.com/library/System.Web.HttpResponse.Redirect.aspx" target="_blank"&gt;HttpResponse.Redirect method&lt;/a&gt; without the &lt;a title="The Cost Of Client-Side Redirects In ASP.NET And Using Page Modules" href="http://msmvps.com/blogs/paulomorgado/pages/the-cost-of-client-side-redirects-in-asp-net-and-using-page-modules-.aspx" target="_blank"&gt;penalty of traveling to the client and back&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;I said &amp;quot;is intended to behave&amp;quot; because it still doesn&amp;#39;t, like &lt;a title="Lu&amp;iacute;s Abreu&amp;#39;s Blog" href="http://msmvps.com/blogs/LuisAbreu/" target="_blank"&gt;Luís Abreu&lt;/a&gt; &lt;a title="Are you using the new TransferRequest?" href="http://msmvps.com/blogs/luisabreu/archive/2007/10/09/are-you-using-the-new-transferrequest.aspx" target="_blank"&gt;found out in his first attempt to use this new method&lt;/a&gt;. Fortunately, &lt;a title="Thomas Marquardt&amp;#39;s Blog" href="http://blogs.msdn.com/tmarq/" target="_blank"&gt;Thomas Marquardt&lt;/a&gt; already &lt;a title="Server.TransferRequest hangs or takes a long time to execute" href="http://blogs.msdn.com/tmarq/archive/2007/10/10/server-transferrequest-hangs-or-takes-a-long-time-to-execute.aspx" target="_blank"&gt;knows about it and said they will fix it&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;This problem that Luís ran into reminds us that there is still &lt;a title="The Cost Of Client-Side Redirects In ASP.NET And Using Page Modules" href="http://msmvps.com/blogs/paulomorgado/pages/the-cost-of-client-side-redirects-in-asp-net-and-using-page-modules-.aspx" target="_blank"&gt;too much going on&lt;/a&gt; when you call &lt;strong&gt;TransferRequest&lt;/strong&gt; that won&amp;#39;t be if a &lt;a title="Introducing ASP.NET Page Modules" href="http://msmvps.com/blogs/paulomorgado/pages/introducing-asp-net-page-modules.aspx" target="_blank"&gt;Page Module&lt;/a&gt; is used. So, I guess &lt;a title="Introducing ASP.NET Page Modules" href="http://msmvps.com/blogs/paulomorgado/pages/introducing-asp-net-page-modules.aspx" target="_blank"&gt;they&lt;/a&gt; are still useful.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1247551" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Community/default.aspx">Community</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MVP/default.aspx">MVP</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/PageModules/default.aspx">PageModules</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/IIS/default.aspx">IIS</category></item><item><title>You Don't Always Need Page Modules</title><link>http://msmvps.com/blogs/paulomorgado/archive/2007/09/16/you-don-t-always-need-page-modules.aspx</link><pubDate>Sun, 16 Sep 2007 18:02:45 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1201243</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1201243</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1201243</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2007/09/16/you-don-t-always-need-page-modules.aspx#comments</comments><description>&lt;p&gt;From my article on &lt;a title="Introducing to ASP.NET Page Modules" href="http://msmvps.com/blogs/paulomorgado/pages/introducing-asp-net-page-modules.aspx" target="_blank"&gt;Page Modules&lt;/a&gt; some people might have gotten the wrong impression that this would be the only way to get a reference to the &lt;a title="Page Class" href="http://msdn2.microsoft.comlibrary/system.web.ui.page.aspx" target="_blank"&gt;page&lt;/a&gt; given its path, but it isn&amp;#39;t.&lt;/p&gt; &lt;p&gt;You can use the &lt;span style="color:black;font-face:consolas, &amp;#39;Courier New&amp;#39;;"&gt;&lt;strong&gt;&lt;a title="System.Web.UI.PageParser.GetCompiledPageInstance Method" href="http://msdn2.microsoft.com/library/System.Web.UI.PageParser.GetCompiledPageInstance.aspx" target="_blank"&gt;System.Web.UI.PageParser.GetCompiledPageInstance&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt; method to get the reference to the &lt;a title="Page Class" href="http://msdn2.microsoft.comlibrary/system.web.ui.page.aspx" target="_blank"&gt;page&lt;/a&gt; before calling the &lt;span style="color:black;font-face:consolas, &amp;#39;Courier New&amp;#39;;"&gt;&lt;strong&gt;&lt;a title="System.Web.HttpServerUtility.Transfer Method" href="http://msdn2.microsoft.com/library/8z9e2zxx.aspx" target="_blank"&gt;System.Web.HttpServerUtility.Transfer&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt; method.&lt;/p&gt; &lt;p&gt;There&amp;#39;s one caveat, though. Unlike the version of the &lt;span style="color:black;font-face:consolas, &amp;#39;Courier New&amp;#39;;"&gt;&lt;strong&gt;&lt;a title="System.Web.HttpServerUtility.Transfer Method" href="http://msdn2.microsoft.com/library/caxa892w.aspx" target="_blank"&gt;System.Web.HttpServerUtility.Transfer&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt; method where you that takes a virtual path as an argument, this one will not change the values of the &lt;span style="color:black;font-face:consolas, &amp;#39;Courier New&amp;#39;;"&gt;&lt;strong&gt;&lt;a title="System.Web.HttpRequest.AppRelativeCurrentExecutionFilePath Property" href="http://msdn2.microsoft.com/library/System.Web.HttpRequest.AppRelativeCurrentExecutionFilePath.aspx" target="_blank"&gt;System.Web.HttpRequest.AppRelativeCurrentExecutionFilePath&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt; and &lt;span style="color:black;font-face:consolas, &amp;#39;Courier New&amp;#39;;"&gt;&lt;strong&gt;&lt;a title="System.Web.HttpRequest.CurrentExecutionFilePath Property" href="http://msdn2.microsoft.com/library/System.Web.HttpRequest.CurrentExecutionFilePath.aspx" target="_blank"&gt;System.Web.HttpRequest.CurrentExecutionFilePath&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt; properties won&amp;#39;t change from the original request.&lt;/p&gt; &lt;p&gt;That can either be a problem or the solution to a problem.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1201243" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Community/default.aspx">Community</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MVP/default.aspx">MVP</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/PageModules/default.aspx">PageModules</category></item><item><title>Introducing ASP.NET Page Modules</title><link>http://msmvps.com/blogs/paulomorgado/archive/2007/09/09/introducing-asp-net-page-modules-post.aspx</link><pubDate>Sun, 09 Sep 2007 22:58:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1183330</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1183330</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1183330</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2007/09/09/introducing-asp-net-page-modules-post.aspx#comments</comments><description>&lt;p&gt;From the need to handle events in every rendered page and not wanting to pay the penalties (network usage and server load) of frequent client redirects, I came up with the concept of Page Modules.&lt;/p&gt;
&lt;p&gt;&lt;a class="" title="Introducing to ASP.NET Page Modules" href="http://msmvps.com/blogs/paulomorgado/pages/introducing-asp-net-page-modules.aspx" target="_blank"&gt;Read all about it.&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1183330" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Community/default.aspx">Community</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MVP/default.aspx">MVP</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/PageModules/default.aspx">PageModules</category></item></channel></rss>