<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>WhoIsKB - Kevin Blakeley</title><link>http://dotnetjunkies.com/WebLog/whoiskb/default.aspx</link><description>Public WebLog WhoIsKb() { return "Random experiences with .Net" ; }</description><dc:language>en-US</dc:language><generator>CommunityServer 1.0 (Build: 1.0.1.50214)</generator><item><title>Control your view state</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2005/06/23/128346.aspx</link><pubDate>Thu, 23 Jun 2005 17:28:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:128346</guid><dc:creator>whoiskb</dc:creator><slash:comments>3</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/128346.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=128346</wfw:commentRss><description>&lt;P&gt;I just came across a post on the asp.net forums about wanting to control how view state is saved with a page. As we all know by default view state is rendered as a hidden element on the page, but that can easily be changed and you can set your pages up so that viewstate is saved to the cache, session, or the database.&lt;/P&gt;
&lt;P&gt;The first step I&amp;nbsp;would suggest is to create a base page for your aspx pages and override two methods, LoadPageStateFromPersistenceMedium and SavePageStateToPersistenceMedium. As you can tell by their names, these are the two methods responsible for determining how view state is actually handled in the page.&lt;/P&gt;
&lt;P&gt;The following is what I put together for the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWebUIPageClassSavePageStateToPersistenceMediumTopic.asp"&gt;SavePageStateToPersistenceMedium&lt;/A&gt; method. This method will take the viewstate object that is passed in and run it through a special formatter to serialize the object. According to MSDN, the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebuilosformatterclasstopic.asp"&gt;LosFormatter&lt;/A&gt; object&amp;nbsp;is designed for highly compact ASCII format serialization and serializes the view state for a WebForm page. Once the object has been serialized, I then save the viewstate to a session variable. I used a session variable for demonstration purposes only, but once the object has been serialized, it can be saved to session, cache, or a database. Here is the code for the SavePageStateToPersistenceMedium method:&lt;/P&gt;&lt;FONT size=1&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;protected&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;override&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;void&lt;/FONT&gt; SavePageStateToPersistenceMedium(&lt;FONT color=#0000ff&gt;object&lt;/FONT&gt; viewState)&lt;BR&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Saftey check to ensure we have a valid object&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;if&lt;/FONT&gt;( viewState==&lt;FONT color=#0000ff&gt;null&lt;/FONT&gt;) &lt;FONT color=#0000ff&gt;return&lt;/FONT&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Instantiate the formatter used by the framework to serialize viewstate&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;LosFormatter formatter = &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; LosFormatter();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // We need a stream writer to write the viewstate text to&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;StringWriter writer = &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; StringWriter();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;try&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Serialize our view state to the string writer&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;formatter.Serialize( writer, viewState );&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Save the view state to session state&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;Session[&lt;FONT color=#ff00ff&gt;"ViewState"&lt;/FONT&gt;] = writer.ToString();&lt;BR&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;catch&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;{&lt;BR&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;throw&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; HttpException(&lt;FONT color=#ff00ff&gt;"Invalid view state"&lt;/FONT&gt;);&amp;nbsp;&lt;BR&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;finally&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clean up&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;writer.Close();&lt;BR&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;}&lt;BR&gt;}&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;
&lt;P&gt;The next step is to override the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebuipageclassloadpagestatefrompersistencemediumtopic.asp"&gt;LoadPageStateFromPersistenceMedium&lt;/A&gt; and load the viewstate data from the same location it was saved to in the SavePageStateToPersistenceMedium method. This is where we take the data out of our session object and then deserialie the data. Here is the code for the LoadPageStateFromPersistenceMedium method:&lt;/P&gt;&lt;FONT size=1&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;protected&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;override&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;object&lt;/FONT&gt; LoadPageStateFromPersistenceMedium()&lt;BR&gt;{&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object&lt;/FONT&gt; viewStateObj = &lt;FONT color=#0000ff&gt;null&lt;/FONT&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;// Instantiate the formatter used by the framework to serialize viewstate&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;LosFormatter formatter = &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; LosFormatter();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;// Grab our viewstate from session&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object&lt;/FONT&gt; sessionViewState = Session[&lt;FONT color=#ff00ff&gt;"ViewState"&lt;/FONT&gt;];&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;// Deserialize the object&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;viewStateObj = formatter.Deserialize(sessionViewState.ToString());&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;{&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; HttpException(&lt;FONT color=#ff00ff&gt;"Invalid view state"&lt;/FONT&gt;);&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;}&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/FONT&gt; viewStateObj;&lt;BR&gt;}&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;
&lt;P&gt;Once you implement this code, you will notice that a hidden viewstate field is still dumped out into your page, but its empty.&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=128346" width="1" height="1"&gt;</description></item><item><title>VS 2005 Beta 2 and VS 2003</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2005/05/13/76702.aspx</link><pubDate>Fri, 13 May 2005 22:49:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:76702</guid><dc:creator>whoiskb</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/76702.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=76702</wfw:commentRss><description>&lt;P&gt;I haven't seen many people blog about this, but can they co-exist?&amp;nbsp; Has anyone done it and if so, what kind of problems have you run into?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=76702" width="1" height="1"&gt;</description></item><item><title>ASP.Net without web projects!</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2004/11/09/31500.aspx</link><pubDate>Wed, 10 Nov 2004 01:48:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:31500</guid><dc:creator>whoiskb</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/31500.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=31500</wfw:commentRss><description>&lt;P&gt;While listening to Fritz Onion today on his first web cast, he told us about a URL that just made my day:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://pluralsight.com/wiki/default.aspx/Fritz.AspNetWithoutWebProjects"&gt;http://pluralsight.com/wiki/default.aspx/Fritz.AspNetWithoutWebProjects&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This is an article that I wish I found about 8 months ago!&amp;nbsp; It goes into details on how to setup asp.net appliations without using a web project from visual studio.&amp;nbsp; I converted one of my projects and it worked like a champ!&amp;nbsp; Debugging and all!&lt;/P&gt;
&lt;P&gt;I am going to keep the settings this way for a while to see if I find any &amp;#8220;Gotcha's&amp;#8220; and I will report back if I do.&amp;nbsp; In the mean time, if you have been using this method for a while and know of any gotcha's, please let me know.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=31500" width="1" height="1"&gt;</description></item><item><title>ASP.NET 2.0 Directory Names</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2004/09/14/25542.aspx</link><pubDate>Tue, 14 Sep 2004 15:43:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:25542</guid><dc:creator>whoiskb</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/25542.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=25542</wfw:commentRss><description>&lt;P&gt;Check out this &lt;A href="http://weblogs.asp.net/ksharkey/archive/2004/09/13/229121.aspx"&gt;blog entry&lt;/A&gt;&amp;nbsp;if you are interested in providing feedback on how the new asp.net directory names should be setup.&amp;nbsp; I know I have seen quite a bit of discussion on these names and how they should be configured through a config file, well now is your chance to provide more feedback to the product team....&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=25542" width="1" height="1"&gt;</description></item><item><title>Need a good SQL Server Book recommendation</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2004/08/23/22979.aspx</link><pubDate>Mon, 23 Aug 2004 17:33:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:22979</guid><dc:creator>whoiskb</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/22979.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=22979</wfw:commentRss><description>&lt;P&gt;After reading &lt;A href="http://scottwater.com/blog/archive/2004/08/23/CSSBookSuggestions.aspx"&gt;Scotts&lt;/A&gt; post on CSS book recommendations, I want to try to get similiar feedback on SQL Server books.&amp;nbsp; This is one area that I would really like to learn more about.&amp;nbsp; I know enough about SQL server to get me around as I have been working with SQL Server for about 6 years now, but never really got into how to setup and properly configure SQL Server as I have always had the help of a DBA.&amp;nbsp; Now, I have some side projects going on, where I really need to understand SQL Server better.&amp;nbsp; I want to learn more about indexing, performace, security and just basic better server management.&lt;/P&gt;
&lt;P&gt;So what book do you recommend and why?&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=22979" width="1" height="1"&gt;</description></item><item><title>Visual Studio 2005 Beta Problems</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2004/07/30/20749.aspx</link><pubDate>Fri, 30 Jul 2004 04:53:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:20749</guid><dc:creator>whoiskb</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/20749.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=20749</wfw:commentRss><description>&lt;P&gt;I finally got my CD's from MSDN with the new Visual Studio 2005 beta's, so I&amp;nbsp;installed the&amp;nbsp;beta today on a virtual PC image and ran into some problems once I got everything installed.&lt;/P&gt;
&lt;P&gt;Here are links to the two error messages I am getting.&lt;/P&gt;
&lt;P&gt;The first error message is when I start Visual Studio&lt;BR&gt;&lt;A href="http://dotnetjunkies.com/WebLog/images/dotnetjunkies_com/whoiskb/1574/o_VSBetaError1.jpg"&gt;http://dotnetjunkies.com/WebLog/images/dotnetjunkies_com/whoiskb/1574/o_VSBetaError1.jpg&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This second error message I get when&amp;nbsp; I go to try to create any application&lt;BR&gt;&lt;A href="http://dotnetjunkies.com/WebLog/images/dotnetjunkies_com/whoiskb/1574/o_VSBetaError2.jpg"&gt;http://dotnetjunkies.com/WebLog/images/dotnetjunkies_com/whoiskb/1574/o_VSBetaError2.jpg&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Does anyone have any work arounds for these problems?&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=20749" width="1" height="1"&gt;</description></item><item><title>Longhorn Preview</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2004/07/14/19322.aspx</link><pubDate>Wed, 14 Jul 2004 21:59:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:19322</guid><dc:creator>whoiskb</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/19322.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=19322</wfw:commentRss><description>&lt;P&gt;I just came across this review and the screen shots that they shown I have never seen before, so I thought I would share this with everyone:&lt;BR&gt;&lt;A href="http://www.extremetech.com/slideshow/0,2394,l=&amp;amp;s=25501&amp;amp;a=126556,00.asp"&gt;http://www.extremetech.com/slideshow/0,2394,l=&amp;amp;s=25501&amp;amp;a=126556,00.asp&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I think the new alt-tab looks really cool.....&lt;BR&gt;&lt;A href="http://www.extremetech.com/slideshow_viewer/0,2393,l=&amp;amp;s=25501&amp;amp;a=126556&amp;amp;po=6,00.asp"&gt;http://www.extremetech.com/slideshow_viewer/0,2393,l=&amp;amp;s=25501&amp;amp;a=126556&amp;amp;po=6,00.asp&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=19322" width="1" height="1"&gt;</description></item><item><title>Where do you go for streaming radio.....</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2004/06/03/15304.aspx</link><pubDate>Thu, 03 Jun 2004 16:42:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:15304</guid><dc:creator>whoiskb</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/15304.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=15304</wfw:commentRss><description>&lt;P&gt;My company decided to try a little &amp;#8220;experiment&amp;#8221; for our latest project.&amp;nbsp; We have a pretty large .Net project going on so they decided to stick all the programmers (11 of us)&amp;nbsp;into a big conference room, so that we can work more effeciently.&amp;nbsp; Before being moved into this room, we would be all over the place trying to track people down to talk about different issues, and now we are all in the same room.&amp;nbsp; Plus, we are able to completely focus on our goals at hand, and are not bothered by other projects as well.&amp;nbsp; All in all, it has worked out pretty well for us.&amp;nbsp; There are times where it can get tough when there are multiple conversations going on and you don't want to participate, but we also utilize a small conference room next door to try to keep distractions down.&lt;/P&gt;
&lt;P&gt;One thing that everybody has done though is invested in some good headphones so that you can tune stuff out.&amp;nbsp; Lately I have started listening to some streaming radio from the Internet and was curious if anyone knows of some good places to find a good variety of stations.&amp;nbsp; I have a few stations picked out from my WMP and MSN Entertainment, but would like to broaden my play list.&lt;/P&gt;
&lt;P&gt;Any recommendations?&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=15304" width="1" height="1"&gt;</description></item><item><title>ASP.net Tracing in a popup window</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2004/06/01/14899.aspx</link><pubDate>Tue, 01 Jun 2004 16:14:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:14899</guid><dc:creator>whoiskb</dc:creator><slash:comments>3</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/14899.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=14899</wfw:commentRss><description>&lt;P&gt;&lt;CODE&gt;I just saw Dino's &lt;A href="http://weblogs.asp.net/despos/archive/2004/05/31/144800.aspx"&gt;post&lt;/A&gt; on his wish list for ASP.Net tracing and saw he wanted the tracing window in a popup window.&amp;nbsp; This is something we wanted for our web apps as well, so here is how I tackled the problem. I know its not perfect and the output is still put out to the main page, but the reason why I had to come up with this scheme was because in our web apps we are using absolute positioning. When we did this our content was placed over the top of the trace div.&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;Here is the code.....&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;============== Parent ASPX Page =================&lt;BR&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" &amp;gt;&lt;BR&gt;&amp;lt;HTML&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;lt;HEAD&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;TITLE&amp;gt;Parent Page&amp;lt;/TITLE&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;SCRIPT&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;function SetupTraceWindow()&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var div = GetTraceDiv();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(div==null) return;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;win = window.open("Trace.htm","Trace");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(win==null) windown.status="The trace window was blocked.&amp;nbsp; Please make sure popup blockers are off.";&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;// Called by the child window to get the html of the trace output and also hides the trace output on the parent page.&lt;BR&gt;&amp;nbsp;&amp;nbsp;function GetTraceHTML()&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var div = GetTraceDiv();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(div==null) return "";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var html = div.outerHTML;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;div.style.display="none";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return html;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;// Returns the div that is created by the ASP.Net trace function&lt;BR&gt;&amp;nbsp;&amp;nbsp;function GetTraceDiv()&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var div = document.getElementById('__asptrace');&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return div;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/SCRIPT&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;lt;/HEAD&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;lt;BODY ms_positioning="GridLayout" onload="SetupTraceWindow();"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;FORM id="Form1" method="post" runat="server"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;This is the parent page.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/FORM&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;lt;/BODY&amp;gt;&lt;BR&gt;&amp;lt;/HTML&amp;gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;======================= Trace.htm =======================&lt;BR&gt;&amp;lt;!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en"&amp;gt;&lt;BR&gt;&amp;lt;HTML&amp;gt;&lt;BR&gt;&amp;lt;HEAD&amp;gt;&lt;BR&gt;&amp;lt;TITLE&amp;gt;ASP.Net Trace Output Popup&amp;lt;/TITLE&amp;gt;&lt;BR&gt;&amp;lt;SCRIPT language="javascript"&amp;gt;&lt;BR&gt;function SetupTrace()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;var html = opener.GetTraceHTML();&lt;BR&gt;&amp;nbsp;document.writeln(html);&lt;BR&gt;&amp;nbsp;opener.focus();&lt;BR&gt;}&lt;BR&gt;&amp;lt;/SCRIPT&amp;gt;&lt;BR&gt;&amp;lt;/HEAD&amp;gt;&lt;BR&gt;&amp;lt;BODY onload="SetupTrace()"&amp;gt;&lt;BR&gt;&amp;lt;DIV id="myTrace"&amp;gt;&amp;lt;/DIV&amp;gt;&lt;BR&gt;&amp;lt;/BODY&amp;gt;&lt;BR&gt;&amp;lt;/HTML&amp;gt;&lt;/CODE&gt;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=14899" width="1" height="1"&gt;</description></item><item><title>How do you use regions?</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2004/05/27/14687.aspx</link><pubDate>Thu, 27 May 2004 23:39:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:14687</guid><dc:creator>whoiskb</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/14687.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=14687</wfw:commentRss><description>&lt;P&gt;We had discussion today at work about how we should use regions, and it was funny to see everyone had a different opinion on the matter.&amp;nbsp; Here is what I usually do:&lt;/P&gt;
&lt;P&gt;Class&amp;nbsp; - Wrapped around the class&lt;BR&gt;Private Members &lt;BR&gt;Constructors&lt;BR&gt;Properties&lt;BR&gt;Public Methods&lt;BR&gt;Private Methods&lt;BR&gt;Base OverRides&lt;BR&gt;Interface Definitions&lt;BR&gt;&lt;BR&gt;What do you do?&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=14687" width="1" height="1"&gt;</description></item><item><title>Dropdownlist does not allow child controls</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2004/05/20/14035.aspx</link><pubDate>Thu, 20 May 2004 05:48:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:14035</guid><dc:creator>whoiskb</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/14035.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=14035</wfw:commentRss><description>&lt;P&gt;I got an interesting error today, but first some background.&amp;nbsp; I am creating a server control that inherits from DropDownList and internally I also add an image server control next to it.&amp;nbsp; I add this image dynamically by trying to add it to the controls collection of the dropdownlist.&amp;nbsp; When I try to do this I get an error saying that you cannot add controls to the dropdownlist controls collection.&lt;/P&gt;
&lt;P&gt;When I look at the dropdownlist in reflector I noticed that the&amp;nbsp; CreateControlsCollection has been overridden and an emptycontrolcollection is created.&amp;nbsp; What this emptycontrolcollection does is enforce the rule that you cannot add controls to the control collection.&lt;/P&gt;
&lt;P&gt;Now, I was able to override the CreateControlsCollection for my control, but I am curious as to why they did this.&amp;nbsp; Does anyone know why?&amp;nbsp; Its strange because I did this same functionality with a textbox and had no problems.&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=14035" width="1" height="1"&gt;</description></item><item><title>Sorting the datagrid</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2004/04/19/11702.aspx</link><pubDate>Mon, 19 Apr 2004 16:31:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:11702</guid><dc:creator>whoiskb</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/11702.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=11702</wfw:commentRss><description>&lt;P&gt;This weekend I worked on implementing sort logic in the datagrid.&amp;nbsp; I wanted to use the built in sorting that the datagrid provided and was a little dissapointed.&amp;nbsp; I will post the code below but I was suprised by&amp;nbsp;two things:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;No indication of which direction the sort should be&lt;/LI&gt;
&lt;LI&gt;No easy way to get to the column header the sort came from&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Not that these two were show stoppers or anything, but I guess I was just expecting those two things to be there.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;But anway, I have posted the code below that I came up with to implement bi-directional sorting in my datagrid.&amp;nbsp; This code will perform the sort on my dataview plus attempt to add an image to the column header.&amp;nbsp; If anyone has some feedback on an easier way to do this in case I missed something, please share.&lt;/P&gt;
&lt;P&gt;Here is the code behind code, and these are just the routines that are involved in my sort logic:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;EM&gt;private void grdContacts_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;String sort = e.SortExpression;&lt;BR&gt;&amp;nbsp;String vsort = GetSortViewState();&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp;// If the current sort expression&amp;nbsp; is the same as the one in view state that means they are resorting&lt;BR&gt;&amp;nbsp;// the same column and we need to sort in the opposite direction.&amp;nbsp; Once we add the DESC flag to the sort, if&lt;BR&gt;&amp;nbsp;// the user clicks on the same column again, it won't won't match and the sort expression will be reset to&lt;BR&gt;&amp;nbsp;// the same column but with ASC order.&lt;BR&gt;&amp;nbsp;if(sort==vsort) &lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;SetColumnSortIcon(sort,false);&lt;BR&gt;&amp;nbsp;&amp;nbsp;sort = String.Concat(sort," Desc");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;else&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;SetColumnSortIcon(sort,true);&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;// Save off our sort so that on a post back we can determine what direction the sort should be if they click the same column&lt;BR&gt;&amp;nbsp;SetSortViewState(sort);&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp;BindPageData(sort);&lt;BR&gt;}&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;private void SetColumnSortIcon(String sortExpression, bool ascending)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;String imgAsc = String.Concat("&amp;amp;nbsp;","&amp;lt;img border=0 src=",Request.ApplicationPath,"/images/sortasc.gif","&amp;gt;");&lt;BR&gt;&amp;nbsp;String imgDesc = String.Concat("&amp;amp;nbsp;","&amp;lt;img border=0 src=",Request.ApplicationPath,"/images/sortdesc.gif","&amp;gt;");&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;// Loop through all of the columns in the datagrid and compare the sort expressions to find a column match.&lt;BR&gt;&amp;nbsp;// Once the column match has been found, lets add our image HTML to the header to show which column is being sorted on.&lt;BR&gt;&amp;nbsp;foreach(DataGridColumn col in grdContacts.Columns)&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;if(col.SortExpression==sortExpression)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;String text = col.HeaderText;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// The &amp;amp;nbsp; is an indicator to know if we have already added an image tag.&amp;nbsp; If it exists in the header that means&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// we already have an icon in the header and the current column was previously sorted and the direction of the sort &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// has changed.&amp;nbsp; This could cause a problem if we use the &amp;amp;nbsp; text in our header to force a space&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;int pos = col.HeaderText.IndexOf("&amp;amp;nbsp;");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(pos&amp;gt;-1) text = col.HeaderText.Substring(0,pos);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(ascending)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;col.HeaderText = String.Concat(text,imgAsc);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;col.HeaderText = String.Concat(text,imgDesc);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;}&lt;BR&gt;#endregion&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;#region Private methods&lt;BR&gt;private String GetSortViewState()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;object obj = ViewState["sortexpression"];&lt;BR&gt;&amp;nbsp;return (obj==null) ? String.Empty : (string)obj;&lt;BR&gt;}&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;private void SetSortViewState(String sort)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;ViewState.Add("sortexpression",sort);&lt;BR&gt;}&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;private void ClearSortViewState()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;ViewState.Remove("sortexpression");&lt;BR&gt;}&lt;BR&gt;#endregion&lt;/EM&gt;&lt;BR&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=11702" width="1" height="1"&gt;</description></item><item><title>c# Faq</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2004/04/13/11325.aspx</link><pubDate>Tue, 13 Apr 2004 20:54:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:11325</guid><dc:creator>whoiskb</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/11325.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=11325</wfw:commentRss><description>&lt;P&gt;This just came across one of the MSDN blogs I watch and thought I would share just in case anyone missed it.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/csharpfaq"&gt;http://blogs.msdn.com/csharpfaq&lt;/A&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;EM&gt;The C# team, along with members of the C# Community, are answering Frequently Asked Questions (FAQs) via a web log (blog) set up at &lt;/EM&gt;&lt;A href="http://blogs.msdn.com/csharpfaq"&gt;&lt;EM&gt;http://blogs.msdn.com/csharpfaq&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;. Entries from that site will be displayed on MSDN through this page with only a short delay due to caching.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=11325" width="1" height="1"&gt;</description></item><item><title>70-229 Sql Server exam</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2004/04/12/11227.aspx</link><pubDate>Mon, 12 Apr 2004 18:29:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:11227</guid><dc:creator>whoiskb</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/11227.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=11227</wfw:commentRss><description>&lt;P&gt;I have finally decided to get commited to finish up my MCSD and also get certified for the MCSD for Microsoft .NET.&lt;/P&gt;
&lt;P&gt;The first exam on my list is the &lt;A href="http://www.microsoft.com/learning/exams/70-229.asp"&gt;70-229&lt;/A&gt; Sql Server exam.&amp;nbsp; I am looking at mainly using books as my guide to study for this exam and was curious as to what thoughts people have to the books that are out there and how they related to the exam.
&lt;P&gt;Any tips/input would be extremely appreciated.....I heard this test is one of the tougher ones....&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=11227" width="1" height="1"&gt;</description></item><item><title>Share session state across virtual directories</title><link>http://dotnetjunkies.com/WebLog/whoiskb/archive/2004/04/07/10953.aspx</link><pubDate>Wed, 07 Apr 2004 18:20:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:10953</guid><dc:creator>whoiskb</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/whoiskb/comments/10953.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/whoiskb/commentrss.aspx?PostID=10953</wfw:commentRss><description>&lt;P&gt;I just got done reading &lt;A href="http://dotnetjunkies.com/WebLog/petergekko/archive/2004/04/07/10949.aspx"&gt;Peter's&lt;/A&gt; post about a limitation he ran into about sharing session variables across web applications, and thought I would blog about an approach we recently took with one of our web apps to get around this problem.&lt;/P&gt;
&lt;P&gt;We got our solution from this &lt;A href="http://support.microsoft.com/default.aspx?scid=kb;en-us;307467"&gt;MSDN&lt;/A&gt; article, which shows you how to separate out your web applications into smaller web applications. The first step is to create an IIS application and this is&amp;nbsp;the root of your web application. Under this root, you create your smaller modules as virtual directories, but don't configure them to have their own web application. (now refer to the article to see how to make this friendly to VS.Net) Now, because the root is setup as a web application, this is the guy that manages your session state for all of the modules below it, and our session state can no be shared across all of the different modules.&lt;/P&gt;
&lt;P&gt;Now I understand that this won't be for everyone, but in our case it has worked out great. We are currently building a pretty large web system that consists of various modules, and one requirement we would like to satisfy is to allow us to deploy each module separately but also be able to share session state across all of the modules. We have a main IIS root application and each module is setup as a virtual directory under it. The root, and each of the modules each has its own ASP.NET web project and can be compiled separately. This would allow us to only update specific modules when needed. So now when we make changes to just module A, we can build the web app for module A, plus all of its supporting assemblies.&amp;nbsp; By having all of the modules under the root, all of the modules can now also share session state.&lt;/P&gt;
&lt;P&gt;Hope this makes sense, but if it doesn't the MSDN article will really clear things up since they provide good instructions on how to get everything configured.&lt;/P&gt;
&lt;P&gt;UPDATE: Fixed the MSDN link&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=10953" width="1" height="1"&gt;</description></item></channel></rss>