<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Philip Rieck</title><subtitle type="html">Phil in .net</subtitle><id>http://weblogs.asp.net/prieck/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/prieck/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2003-11-12T14:52:00Z</updated><entry><title>More asp.net Viewstate filters …</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2004/06/18/159332.aspx" /><id>http://weblogs.asp.net/prieck/archive/2004/06/18/159332.aspx</id><published>2004-06-18T15:53:00Z</published><updated>2004-06-18T15:53:00Z</updated><content type="html">&lt;p&gt;Note, this is cross-posted from &lt;a href="http://philiprieck.com/blog/"&gt;Philip Rieck&lt;/a&gt;'s full weblog. &lt;a href="http://philiprieck.com/blog/archive/2004/06/17/ViewRestate.aspx"&gt;Full entry is here&lt;/a&gt;.&amp;nbsp; I have the strong feeling that I will no longer cross-post to weblogs.asp.net.&amp;nbsp; So if you find this stuff interesting, you'll probably want to subscribe to my&amp;nbsp;&lt;a href="http://philiprieck.com/blog/Rss.aspx"&gt;rss feed&lt;/a&gt;.&amp;nbsp; Otherwise, thanks for reading and goodbye.&amp;nbsp; I'll keep the content available here as long as they'll let me.&lt;/p&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;&lt;em&gt; &lt;p&gt;&lt;strong&gt;The background:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;I've seen a lot of articles lately about viewstate (well, in the last two weeks or so. I'm bad about keeping up with the rss) . &lt;a href="http://www.4guysfromrolla.com/ScottMitchell.shtml"&gt;Scott Mitchell&lt;/a&gt;&amp;nbsp;recently published one &lt;a href="http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/viewstate.asp"&gt;article on MSDN all about the viewstate&lt;/a&gt;, and (among other things) showed how to send less viewstate. In it he also mentioned that &lt;a href="http://www.mostlylucid.co.uk/"&gt;Scott Galloway&lt;/a&gt; blogged on &lt;a href="http://www.mostlylucid.co.uk/archive/2004/01/03/694.aspx"&gt;viewstate compression using bzip2&lt;/a&gt;. Also of note is the &lt;a href="http://www.flesk.net/fleskviewstate.aspx"&gt;Flesk viewstate optimizer&lt;/a&gt;.&amp;nbsp;&amp;nbsp;All of these allow you to send less viewstate to the client, which means that you're saving bandwidth twice -- since the browser sends the Sviewstate back with the next request.&amp;nbsp; For large pages with lots of viewstate, this can make a difference even on a LAN -- let alone those poor 56K modem users.&lt;/p&gt; &lt;p&gt;Now, I love these articles (and that looks like a good product), but they all&amp;nbsp;take the same approach. While that's probably because it's the best one, I decided to&amp;nbsp;try for the same result and take a different tack. &lt;/p&gt; &lt;p&gt;All of the above work by either having you override your page's &lt;code&gt;“PersistViewStateToFileSystem”&lt;/code&gt; and call a method, or have you derive your page class from a base object they provide. All well and good, eh?&amp;nbsp; Hey,&amp;nbsp;the support is&amp;nbsp;built into the framework!&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The divergence:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I like a declarative approach. That is, I want to take an existing site, add on line to the web.config, and have it do what I want.&amp;nbsp; After all, this is not per-page functionality I'm talking about here... it's a cross-cutting concern.&amp;nbsp; Why modify all my pages to do it?&amp;nbsp; &lt;/p&gt; &lt;p&gt;So I wrote one that just requires you to add an HttpModule (which takes copying a dll to your /bin dir, then adding three lines to your web.config. The module also requires just one more line to configure it).&amp;nbsp; While this doesn't satisfy my "add one line" need, four lines is pretty close.&amp;nbsp; And I don't have to modify anything else.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Presto! Add a module, and your viewstate shrinks. What could be easier? Now, before the parties start, let me warn you -- this is no magic bullet. GZipping the viewstate takes some time that could be used to download the viewstate... so where's the happy medium? Using a file store means you have lots of files and increased disk I/O. Using the Session or Application object mean more memory. And I can't generalize your database.&lt;/p&gt; &lt;p&gt;So this has the shotgun approach -- it can either compress the viewstate and leave it in-page (using &lt;a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx"&gt;#ziplib&lt;/a&gt;), it can save it to file, it can keep it in the application or session collections, or you can implement a (very, very simple) interface and do the work yourself.&lt;/p&gt;&lt;/em&gt;&lt;/blockquote&gt; &lt;p&gt;There's more... &lt;a href="http://philiprieck.com/blog/archive/2004/06/17/ViewRestate.aspx"&gt;get the full article here&lt;/a&gt;, where the source code and binaries are.&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=159332" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term=".net development" scheme="http://weblogs.asp.net/prieck/archive/tags/.net+development/default.aspx" /></entry><entry><title>Create context menu items in IE (a wish from cerkit.com)</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2004/05/11/130145.aspx" /><id>http://weblogs.asp.net/prieck/archive/2004/05/11/130145.aspx</id><published>2004-05-12T00:21:00Z</published><updated>2004-05-12T00:21:00Z</updated><content type="html">&lt;BLOCKQUOTE&gt;&lt;EM&gt;
&lt;P&gt;...The scary thing is, I don't think people realize just how easy it is to add context menu items to IE.&amp;nbsp; It involves just two things:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;A html file containing a script (or a script file) 
&lt;LI&gt;A single entry in the registry&lt;/LI&gt;&lt;/OL&gt;&lt;/EM&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;...But where's the fun? (more specifically, where's the user-friendly .net?) I went ahead and implemented it again as a .net application, just so you could use it (if you wanted to) as an example of how to make a .net-written IE menu extension application. Here's how it works...&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Go to the &lt;A href="http://philiprieck.com/blog/archive/2004/05/11/FollowupURL.aspx"&gt;full entry &lt;/A&gt;for the source code and a screen shot...&lt;/P&gt;[Posted from &lt;A href="http://philiprieck.com/blog"&gt;Philip Rieck&lt;/A&gt;'s full blog.. subscribe now, posts to weblogs.asp.net are dwindling fast!]&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=130145" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term=".net development" scheme="http://weblogs.asp.net/prieck/archive/tags/.net+development/default.aspx" /></entry><entry><title>Announcing the Visual Studio 2005 CTP "community change log"</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2004/03/30/103371.aspx" /><id>http://weblogs.asp.net/prieck/archive/2004/03/30/103371.aspx</id><published>2004-03-30T13:50:00Z</published><updated>2004-03-30T13:50:00Z</updated><content type="html">&lt;P&gt;So, as I &lt;A href="http://philiprieck.com/blog/archive/2004/03/27/206.aspx"&gt;suggested in a previous post&lt;/A&gt;, I'd like to use the VS2005 CTPs.&amp;nbsp; All of 'em.&amp;nbsp; However,&amp;nbsp;I don't want to tear&amp;nbsp;my hair out trying to figure out what version we should use because the stuff&amp;nbsp;I'm working with is broken in the latest version.&amp;nbsp;&amp;nbsp;I also don't want to have to try working with someting for a day only to figure out that it &lt;STRONG&gt;is&lt;/STRONG&gt; newly broken, &lt;EM&gt;especially&lt;/EM&gt; if someone else has already suffered through it.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;BR&gt;So, Without further ado, I give you the &lt;/STRONG&gt;&lt;A href="http://usingvisualstudio.net/flexwiki/"&gt;&lt;STRONG&gt;Visual Studio 2005 Community Tech Preview community running change log&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt; (VS2K5CTPCRCL).&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;What &lt;A href="http://davebettin.com/me/"&gt;Dave Bettin&lt;/A&gt; and I (and hopefully more of you) wanted to accomplish with this is simple - make up for the lack of a change log with the CTPs.&amp;nbsp; This way, we can all know what's new, what's newly broken, and what is really, really cool.&amp;nbsp; Not much info is up there yet... but it's coming, and quickly.&amp;nbsp; If you help, it will be that much more useful to the entire community.&amp;nbsp;&amp;nbsp; Otherwise, it may just be helpful to Dave and I.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[&lt;A href="http://philiprieck.com/blog/archive/2004/03/30/VisualStudioCTPChangeLog.aspx"&gt;cross-posted&lt;/A&gt; from &lt;A href="http://philiprieck.com/blog/"&gt;Philip Rieck&lt;/A&gt;'s full blog]&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=103371" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term=".net development" scheme="http://weblogs.asp.net/prieck/archive/tags/.net+development/default.aspx" /></entry><entry><title>Our communtiy adds the C to the VS 2005 CTP</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2004/03/27/100481.aspx" /><id>http://weblogs.asp.net/prieck/archive/2004/03/27/100481.aspx</id><published>2004-03-27T23:32:00Z</published><updated>2004-03-27T23:32:00Z</updated><content type="html">&lt;P&gt;I think the community can make the CTP drops&amp;nbsp;much more useful to all of us.&lt;/P&gt;
&lt;P&gt;MS said it: VS 2005 CTP is not a beta. VS 2005 CTP is not a beta. VS 2005 CTP is not a beta. VS 2005 CTP is not a beta. Developers. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;The Problem:&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;The expansions in C#&lt;/EM&gt; - one of my new favorite features of visual studio - no longer work well.&amp;nbsp; That is, they still produce an "expansion" when you type the shortcut, but.... &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;You have to hit tab twice now, and Ctrl-Alt-M, X is gone (sort of replaced by [Ctrl-R, X], but entirely different behavior).&amp;nbsp; It took me a few tries to get 'em going, because they show up in the intellisense menu (now), so you'd assume that just one tab would work (or selecting with mouse, or hitting &lt;ENTER&gt;).&amp;nbsp; Nope. 
&lt;LI&gt;The cursor position is all screwed up.&amp;nbsp; For example, with "prop&lt;TAB&gt;&lt;TAB&gt;", the cursor goes to the beginning of the file.&amp;nbsp; Oops.&amp;nbsp; 
&lt;LI&gt;The&amp;nbsp;expansion vars (places where you type in items that get replaced) are no longer navigable with "tab".. Well, they do get selection rectangles around them when you hit tab, but the cursor isn't moved around. 
&lt;LI&gt;When you enter a expansion replacement area, all the text in that area isn't highlighted.&amp;nbsp; You have to delete what's there, then type new content.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;It's much, much, &lt;EM&gt;much&lt;/EM&gt; less useful and useable than the PDC bits.&amp;nbsp; If I wanted to play with expansions, I&amp;nbsp;may&amp;nbsp;be better off using the PDC drop. I didn't know that until digging in a bit.&amp;nbsp; However, I may be wrong - perhaps there's something else different (and better) that I missed...&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;So anyway - The Solution.&amp;nbsp; You.&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://davebettin.com/me" target=_blank&gt;Dave Bettin&lt;/A&gt; and I&amp;nbsp;are setting up&amp;nbsp;a Wiki where&amp;nbsp;the community&amp;nbsp;can post and track these changes,&amp;nbsp;figure out&amp;nbsp;CTP breaks what feature, what CTP adds what feature, etc.&amp;nbsp;&amp;nbsp; -- A community-built running change log that will allow for interaction as well.&lt;/P&gt;
&lt;P&gt;Why? If I'm reading correctly, these CTP drops will be somewhat frequent.&amp;nbsp; I'd love to have&amp;nbsp;this "running change log" so that someone using CTP7 knows that if they want to play with some specific new feature (say, the Data Container in windows forms) they should use CTP5 instead because it's broken in CTP7.&amp;nbsp; Or a person looking for the refactorings knows that moving to CTP2 is worth the headache because it adds twelve new ones.&lt;/P&gt;
&lt;P&gt;Is this a dumb idea?&amp;nbsp; Would it provide any benefit to anyone?&amp;nbsp; Comment here and let me know.&amp;nbsp;&amp;nbsp; We should have something up quite soon, but if&amp;nbsp;no-one&amp;nbsp;wants it, we won't sink the effort in.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Is this a good idea but needs more oomph?&amp;nbsp;Is there something that must be included?&amp;nbsp; Comment here and let me know.&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;[&lt;A href="http://philiprieck.com/blog/archive/2004/03/27/206.aspx"&gt;This entry&lt;/A&gt; was cross-posted from &lt;A href="http://philiprieck.com/blog/"&gt;Philip Rieck&lt;/A&gt;'s full blog.]&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=100481" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term=".net development" scheme="http://weblogs.asp.net/prieck/archive/tags/.net+development/default.aspx" /></entry><entry><title>HttpModule to keep post-back scroll position</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2004/02/11/71557.aspx" /><id>http://weblogs.asp.net/prieck/archive/2004/02/11/71557.aspx</id><published>2004-02-11T23:00:00Z</published><updated>2004-02-11T23:00:00Z</updated><content type="html">&lt;P&gt;One of the things I hate about the joy of postbacks is losing my scroll position.&amp;nbsp; On a page that's a bit longer than the window, if I have an auto-postback combobox (for example), the user selects an item, the page posts back, and poof! they're back at the top of the page.&lt;/P&gt;
&lt;P&gt;On a corporate intranet the post back is nice and fast, and many times the user has no clue that it happened....&amp;nbsp; Except for the fact that the page just "jumped" back to the top.&lt;/P&gt;
&lt;P&gt;Because&amp;nbsp;of this&amp;nbsp;I (as many people) write my controls to re-position, or I have page logic to re-position after a postback. There&amp;nbsp;are articles on &lt;A href="http://www.codeproject.com/"&gt;CodeProject&lt;/A&gt; with &lt;A href="http://www.codeproject.com/aspnet/AspNetScrollbarMove.asp"&gt;controls for keeping the scroll position&lt;/A&gt;, &amp;nbsp; &lt;A href="http://www.dotnetjunkies.com/Article/E474B0FC-20D2-48B3-93B5-DC4CB3C4A1AB.dcik"&gt;one on DotNetJunkies&lt;/A&gt; that isn't quite so pre-packaged, but still good, and several tutorials.&amp;nbsp; The problem then is that the behavior is coded in &lt;STRONG&gt;everywhere&lt;/STRONG&gt;, or the control must be included on each page, or the page must be derived from something other than the Page class, or something else..&amp;nbsp; I wanted a fire and forget solution.&lt;/P&gt;
&lt;P&gt;So here's what I created&amp;nbsp;late last night&amp;nbsp;to un-vex myself --&amp;nbsp;an HTTPModule that adds scroll position retention across postbacks to all pages.&amp;nbsp; It's implemented as a filter that adds javascript to the pages after they are output.&amp;nbsp; I've tested it&amp;nbsp;&lt;STRONG&gt;only&lt;/STRONG&gt; on IE 6, as that's the browser my client site's intranet uses.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The nice thing about this (to me) is that three lines in your web.config instantly gives you scroll position retention across postbacks on every page in your application.&amp;nbsp; No muss, and not a whole lot of fuss.&lt;/P&gt;
&lt;P&gt;To use it, add the module in to your web.config (see the readme.txt included for instructions on doing this), and then configure it to either add the behavior to all pages, or be selective (again, see the readme.txt).&amp;nbsp; &lt;A href="http://philiprieck.com/files/ScrollKeeper.zip"&gt;The zip&lt;/A&gt; includes the source, and a pre-build binary that's strongly named in case you want to just drop it in.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;If you find any bugs or problems with it, fix 'em yourself!&amp;nbsp; No, really you can just leave me a comment here and I may look at it.&amp;nbsp; The module works great for me (the infamous "it works on my machine!" that translates to "it &lt;EM&gt;only&lt;/EM&gt; works on my machine!"), and hopefully will for you too.&amp;nbsp;&amp;nbsp; If you like the code, I wrote it.&amp;nbsp;&amp;nbsp; If you don't like the code,&amp;nbsp;then some other idiot wrote it.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://philiprieck.com/files/ScrollKeeper.zip"&gt;Download it here (13K zip)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=-1&gt;&lt;STRONG&gt;Cross-posted from &lt;/STRONG&gt;&lt;A href="http://philiprieck.com/blog/"&gt;&lt;STRONG&gt;Philip Rieck&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;'s full blog. Full of neat stuff, don't miss it!&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=71557" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term=".net development" scheme="http://weblogs.asp.net/prieck/archive/tags/.net+development/default.aspx" /></entry><entry><title>UDDI - has it ever lived?</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2004/02/07/69476.aspx" /><id>http://weblogs.asp.net/prieck/archive/2004/02/07/69476.aspx</id><published>2004-02-08T03:40:00Z</published><updated>2004-02-08T03:40:00Z</updated><content type="html">&lt;P&gt;&lt;A href="http://skonnard.com/"&gt;Aaron Skonnard&lt;/A&gt; asked &amp;nbsp;&amp;#8220;&lt;A href="http://skonnard.com/archive/2004/02/04/216.aspx"&gt;Is UDDI Dead&lt;/A&gt;?&amp;#8221;&amp;nbsp;a few days ago, &amp;nbsp;Wondering if WS-Addressing will reduce the need for it.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="http://www.davebettin.com/me/"&gt;Dave Bettin&lt;/A&gt; thinks &lt;A href="http://davebettin.com/me/archive/0001/01/01/280.aspx"&gt;that it can be sucessful&lt;/A&gt;, at least in the enterprise.&amp;nbsp; &lt;A href="http://www.cerkit.com/cerkitBlog/"&gt;Michael Erls&lt;/A&gt; &lt;A href="http://www.cerkit.com/cerkitBlog/PermaLink.aspx?guid=aaaf8e71-2637-4ad1-893f-addca324f266"&gt;thinks so too&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;My take - UDDI hasn't lived at all yet.&amp;nbsp; I'm not so sure it will.&amp;nbsp; I agree with the opinions that if it does, it will be in the enterprise only, but I don't think it will live there either.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Why not?&amp;nbsp; Well, at several large enterprises, I've seen solutions already in place -- web services at well known points that serve up the endpoints for other web services.&amp;nbsp; These are tied into a web app that lets people search for functionality based on keywords and categories that make sense in the business they have.&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;This solution allows&amp;nbsp;developers to find the services they want, if they exist.&amp;nbsp; It allows them to list and describe the services they create.&amp;nbsp; It allows them to programmatically (via the webservice) find a service that they already know about.&amp;nbsp;&amp;nbsp; All using technologies and methods they already understand -- and indeed use on a daily basis.&lt;/P&gt;
&lt;P&gt;Now, UDDI has a lot of cool stuff -- security, subsciption, good searching capability, blah, blah, blah...&amp;nbsp; And &lt;A href="http://uddi.org/pubs/uddi_v3.htm"&gt;UDDI v3&lt;/A&gt; has fixed some issues (like multiple registry support, publisher keys, etc)&amp;nbsp; but for most its simply overkill.&amp;nbsp; They need 10% of the features -- why learn a whole new set of tools when a few hours gives them the framework that they need?&lt;/P&gt;
&lt;P&gt;Since I've seen this succeed -- and haven't yet seen UDDI deployed in an enterprise -- I'm wondering if UDDI has ever lived.&amp;nbsp; And from my experience, its future is bleak as well.&lt;/P&gt;
&lt;p&gt;&lt;font size=-1&gt;cross-posted from &lt;a href="http://philiprieck.com/blog"&gt;Philip Rieck&lt;/a&gt;'s full blog&lt;/font&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=69476" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term="development" scheme="http://weblogs.asp.net/prieck/archive/tags/development/default.aspx" /></entry><entry><title>WaitHandles for the confused</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2004/01/27/63510.aspx" /><id>http://weblogs.asp.net/prieck/archive/2004/01/27/63510.aspx</id><published>2004-01-27T20:27:00Z</published><updated>2004-01-27T20:27:00Z</updated><content type="html">&lt;P&gt;I put up a somewhat old writeup on the ManualResetEvent and AutoResetEvent on my full blog, thought since it was .net, I'd post here as well.&amp;nbsp; Here's an excerpt:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;EM&gt;Confused about WaitHandles? Sure you are. For one, they have the word "Event" on them.. Are they events? Do they call delegates?. For another, what's this "Reset" action, and why would I want to do it manually? And lastly, what does the documentation mean when it says "Signaled" and "Nonsignaled"? In project [codename] you see a good number of calls to WaitHandle-derived objects , both AutoReset and ManualReset. As the interaction can be somewhat complex, it can be difficult to decipher what is going on. Hopefully this simplified example will help clear things up. &lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://philiprieck.com/blog/archive/2004/01/27/WaitHandleSample.aspx"&gt;You can find it here&lt;/A&gt; if you're interested.&amp;nbsp; It really was written for interns, but if you've never used them, you might find it useful.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=63510" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term=".net development" scheme="http://weblogs.asp.net/prieck/archive/tags/.net+development/default.aspx" /><category term="development" scheme="http://weblogs.asp.net/prieck/archive/tags/development/default.aspx" /></entry><entry><title>Sharing my oft-used Ink controls, part 1.</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2004/01/21/61446.aspx" /><id>http://weblogs.asp.net/prieck/archive/2004/01/21/61446.aspx</id><published>2004-01-22T04:12:00Z</published><updated>2004-01-22T04:12:00Z</updated><content type="html">&lt;P&gt;I do a good amount of TabletPC development, pretty much mostly for myself.&amp;nbsp; I have lots of fun and useful apps that do things I need, and some apps I use to demo the Tablet to others..&lt;/P&gt;
&lt;P&gt;And, like any developer, I hate to redo work.&amp;nbsp; So I created a library of controls that I use that I can drop-in.&amp;nbsp; I showed these to a friend today and she said &amp;#8220;Share with the world!&amp;#8221;.&amp;nbsp; So here you are.&amp;nbsp; This is the first one that I would even consider letting anyone else look at, and it's not a control I'd consider anywhere near polished.&amp;nbsp; But perhaps you other TabletPC developers out there can use and adapt this to reduce some of the &amp;#8220;gruntwork&amp;#8221;.&lt;/P&gt;
&lt;P&gt;So, here's the &lt;STRONG&gt;TabletTextbox&lt;/STRONG&gt; - it's an Ink input control that I use on a lot of forms to quickly input text / numbers whatever.&amp;nbsp; It allows quick retrieval of the recognized text with the .Text property, and can optionally show a field label and / or the recognized text inside the control (each can be put in one of the four corners, or omitted).&lt;/P&gt;
&lt;P&gt;Here's a runtime screenshot of four instances of it with different properties:&lt;/P&gt;&lt;IMG height=263 src="http://philiprieck.com/images/TextTool.gif" width=492&gt; 
&lt;P&gt;And here's where to get the &lt;A href="http://philiprieck.com/files/TabletTextBox.zip"&gt;source for the TabletTextBox&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Feel free to do what you want with it. If you find nasty bugs, comment here and I may fix them. Even better, if you fix the nasty bugs or add features, comment here if you like so that I can use those fixes myself!&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;EM&gt;[cross-posted from &lt;A href="http://philiprieck.com/blog/"&gt;Philip Rocks&lt;/A&gt;, Philip Rieck's new-ish real blog - &lt;A href="http://philiprieck.com/blog/archive/2004/01/21/TabletTextBox.aspx"&gt;here.&lt;/A&gt;]&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;BR&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=61446" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term=".net development" scheme="http://weblogs.asp.net/prieck/archive/tags/.net+development/default.aspx" /></entry><entry><title>Strongly typed dataset tip</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2004/01/21/61104.aspx" /><id>http://weblogs.asp.net/prieck/archive/2004/01/21/61104.aspx</id><published>2004-01-21T15:03:00Z</published><updated>2004-01-21T15:03:00Z</updated><content type="html">&lt;P&gt;While doing code reviews (for .net code, of course!),&amp;nbsp; I see one minor annoyance with strongly typed datasets again and again - not using the TableName property.&amp;nbsp; I don't know why this comes up so often, so I thought I'd add a quick tip about it.&lt;/P&gt;
&lt;P&gt;If you have a strongly typed dataset (some call them XSD datasets), great. You don't need to remember column names or worry about casting values.&amp;nbsp; So why do I see things like this:&lt;BR&gt;&lt;/P&gt;
&lt;DIV class=code&gt;dAdapter.TableMappings.Add("Table1", "MyTable");&lt;BR&gt;//or&lt;BR&gt;cntrl.DataMember("MyTable");&lt;BR&gt;&lt;/DIV&gt;&lt;BR&gt;
&lt;P&gt;Instead of using the table's name as a string, use the .TableName property as such:&lt;/P&gt;
&lt;DIV class=code&gt;dAdapter.TableMappings.Add("Table1", typedSet.MyTable.TableName);&lt;BR&gt;//or&lt;BR&gt;cntrl.DataMember(typedSet.MyTable.TableName);&lt;BR&gt;&lt;/DIV&gt;&lt;BR&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now you can rename your table and let the compiler find all of the code you need to change, instead of trying to do a &amp;#8220;Find&amp;#8221; and hoping you didn't miss any.&amp;nbsp; I'm all about making the compiler find as many problems as I can.&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;EM&gt;[cross-posted from &lt;A href="http://philiprieck.com/blog/"&gt;Philip Rocks&lt;/A&gt;, Philip Rieck's new-ish real blog - &lt;A href="http://philiprieck.com/blog/archive/2004/01/21/152.aspx"&gt;http://philiprieck.com/blog/archive/2004/01/21/152.aspx&lt;/A&gt;]&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=61104" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term=".net development" scheme="http://weblogs.asp.net/prieck/archive/tags/.net+development/default.aspx" /></entry><entry><title>Don't loose this regex</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2004/01/16/59457.aspx" /><id>http://weblogs.asp.net/prieck/archive/2004/01/16/59457.aspx</id><published>2004-01-16T18:40:00Z</published><updated>2004-01-16T18:40:00Z</updated><content type="html">&lt;P&gt;I really wish I knew where I found this... but after only an hour of digging in my old code, I found the regex to deal with CSV files (that is, handle both quoted and non-quoted values, commas in quoted values, etc).&lt;/P&gt;
&lt;P&gt;I know I didn't write the regex pattern. I also know I don't want to lose this and have to try.&lt;/P&gt;
&lt;P&gt;// ,(?=([^"]*"[^"]*")*(?![^"]*"))&lt;/P&gt;
&lt;P&gt;Regex rex = new Regex(",(?=([^\"]*\"[^\"]*\")*(?![^\"]*\"))");&lt;BR&gt;string[] values = rex.Split( csvLine );&lt;BR&gt;foreach( string v in values)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; ...&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;If you have an attribution for me, please let me know. I'd like to give credit to the regex author.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;[update]&lt;/FONT&gt;&lt;/STRONG&gt; - yes, it was from here : &lt;A href="http://radio.weblogs.com/0117167/2003/02/18.html#a132" target=_new&gt;&lt;FONT color=#355ea0&gt;http://radio.weblogs.com/0117167/2003/02/18.html#a132&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp; (that's from&amp;nbsp;&lt;A href="http://radio.weblogs.com/0117167/"&gt;Early and Adopter&lt;/A&gt;)&amp;nbsp;&amp;nbsp; (thanks, &lt;A id=Comments.ascx_CommentList__ctl2_NameLink href="http://regexblogs.com/DNeimke" target=_blank&gt;&lt;FONT color=#355ea0&gt;Darren Neimke&lt;/FONT&gt;&lt;/A&gt;!)&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;EM&gt;[cross-posted from &lt;/EM&gt;Philip Rocks&lt;EM&gt;, Philip Rieck's new-ish real blog - &lt;A href="http://philiprieck.com/blog/"&gt;http://philiprieck.com/blog/&lt;/A&gt;]&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=59457" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term=".net development" scheme="http://weblogs.asp.net/prieck/archive/tags/.net+development/default.aspx" /></entry><entry><title>Labelling people "advanced" is done by beginners.</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2003/12/10/42510.aspx" /><id>http://weblogs.asp.net/prieck/archive/2003/12/10/42510.aspx</id><published>2003-12-10T14:21:00Z</published><updated>2003-12-10T14:21:00Z</updated><content type="html">So, I'm sure you've seen &lt;A href="http://longhornblogs.com/scobleizer/posts/1679.aspx"&gt;Scoble post on what advanced users need&lt;/A&gt;, and responses like &lt;A href="http://weblogs.asp.net/jkey/posts/42381.aspx"&gt;Jeff Key's&lt;/A&gt;, &lt;A href="http://www.tallent.us/CommentView.aspx?guid=b9f54b9d-747b-479e-b6d7-62bb465fb9c4"&gt;Richard Tallent's&lt;/A&gt;, &lt;A href="http://dotnetified.com/PermaLink.aspx?guid=fb0331b7-0ee8-4b92-95ed-232a89a44f0f"&gt;Andy Hopper's&lt;/A&gt; , and &lt;A href="http://www.thinkingin.net/2003/12/09.aspx#a569"&gt;Larry O'Brien&lt;/A&gt;. Here's why I think that labeling users as "Advanced", "Beginner", "Blue-square", or "Rob" is a bad idea. (unless their actual name &lt;I&gt;is&lt;/I&gt; "Beginner", or whatever) 
&lt;P&gt;I'm a great cook, even though I don't cook much anymore (now that my wife has surpassed me I refuse to cook lest the comparisons begin). If someone asked me if I was an "advanced" oven user, I'd say "yes" without hesitation, then prove it by letting my wife whip up something delicious. I know what temperature I want to use, why I want to use that temperature, how long to keep it there, and to not touch the hot burny type things unless supervised by an adult. &lt;BR&gt;&lt;BR&gt;But I'm also an idiot. I know, you don't believe me, but I &lt;B&gt;always&lt;/B&gt; turn the oven on without looking in it. That wouldn't be bad, except for the fact that 99% of the time there's a broiler pan or cookie sheet in there, and I burn something or have to juggle multiple things when putting my masterpiece in. You'd think I'd learn, but I don't - or at least haven't yet after hundreds of lessons. Now, would most people find it annoying if their oven forced them to open and close the door (ostensibly making them look into it) before turning it on? Yes. Would that same option save me problems almost every day? Yes. &lt;BR&gt;&lt;BR&gt;However, if the salesman had said "this oven is set up for advanced users", I'd have bought it, when what he meant was "This oven allows you to turn it on without looking into it and burning&amp;nbsp;the french toast you put into it to keep it slightly warm this morning"&amp;nbsp;&amp;nbsp;- Heck, I &lt;I&gt;am&lt;/I&gt; an advanced user, and even if I weren't, I'd probably still think I was. Even if I knew I wasn't, I wouldn't want the "beginner oven", thinking it would annoy me with it's "I know better than you - look into me, then I'll turn on" settings. Damn condescending oven. Others might be (truly) advanced but want the beginner model because it would be simpler to use - or so they thought, until they tried to turn the oven on. "I &lt;B&gt;still&lt;/B&gt; know there's nothing in here, you stupid oven!" they would shout. But they might like the huge playskool-style dials. &lt;/P&gt;
&lt;P&gt;So back to software (finally): &lt;STRONG&gt;If you ask a user if they're advanced, the answer they give will have nothing to do with the settings you're trying to determine&lt;/STRONG&gt; . What makes a Photoshop user advanced; intimate knowledge of layout and the Pantone color system (even though they have no idea what "double-click " means) - or the incredible ability to perform application navigation and functions (but confusion over what the heck a specular highlight is)? &lt;BR&gt;&lt;BR&gt;The truth is, the "advanced" label is not useful. In windows settings terms, you simply can't guess at what will make a user feel as though have the perfect balance between power and ease. What you &lt;I&gt;can&lt;/I&gt; do is aim for defaults that cause the majority of people minimal confusion (hopefully achieve some intuitive functionality), and allow &lt;I&gt;easy&lt;/I&gt; customization to let that one specific person find their own balance. &lt;/P&gt;That said, here's what I want as an "advanced user": 
&lt;OL&gt;
&lt;LI&gt;&lt;B&gt;On initial install, set windows resolution to the right value&lt;/B&gt; &lt;BR&gt;Yes, Scoble definitely got this right.&amp;nbsp; Not doing this is really, really annoying.&amp;nbsp; Richard Simmons Alarm Clock annoying.&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;Customization of functionality should be easy to find&lt;/B&gt;&lt;BR&gt;Some apps allow you to change sounds for events - these sound settings show up in the application settings, and in the system "sound" settings. I like this. How about customizations "near the function", and in one repository available through the control panel. Apps could opt in to adding and retrieving user settable options from this store, which is easy for a user to maintain (unlike the registry). While I can already see some problems with this, the &lt;I&gt;ease&lt;/I&gt; with witch one can change options is much more important than the number of options available. In fact, options that are hard to set or find means you can't have too many of them.&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;Ability to save, restore, and migrate all these customizations to other computers.&lt;/B&gt;&lt;BR&gt;I no longer customize VS.NET because it's so frustrating to move these options around. If I get used to my own key bindings, I can't use the default settings easily -- and I can't move my settings easily either -- so I just get used to the default. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=42510" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term="development" scheme="http://weblogs.asp.net/prieck/archive/tags/development/default.aspx" /><category term="rant" scheme="http://weblogs.asp.net/prieck/archive/tags/rant/default.aspx" /></entry><entry><title>Perhaps a social statement</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2003/12/01/40519.aspx" /><id>http://weblogs.asp.net/prieck/archive/2003/12/01/40519.aspx</id><published>2003-12-01T18:02:00Z</published><updated>2003-12-01T18:02:00Z</updated><content type="html">&lt;P&gt;From &lt;A href="http://broken.typepad.com/"&gt;ThisIsBroken&lt;/A&gt;, comes &lt;A href="http://broken.typepad.com/b/2003/09/net_connection_.html"&gt;this&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I know I feel like this scene from Vancouver is accurate some days.&lt;/P&gt;&lt;IMG src="http://www.goodexperience.com/broken/i/03/09/internet.s.jpg" border=0&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=40519" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term="rant" scheme="http://weblogs.asp.net/prieck/archive/tags/rant/default.aspx" /></entry><entry><title>To beta or not to beta-- The previewer's dilemma</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2003/11/20/38830.aspx" /><id>http://weblogs.asp.net/prieck/archive/2003/11/20/38830.aspx</id><published>2003-11-20T14:28:00Z</published><updated>2003-11-20T14:28:00Z</updated><content type="html">&lt;P&gt;I went to the PDC.&amp;nbsp; I got the bits.&amp;nbsp; I played with Whidbey and ASP.NET 2.0.&amp;nbsp; I fell in love.&lt;/P&gt;
&lt;P&gt;Back in the real world of work, I'm about to start a 4-6 month project.&amp;nbsp; During this project we'll have to:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Use (or write our own) a page templating solution that will allow a consistent look and feel across the site with minimal effort per-page.&amp;nbsp; Hmm, master pages would be perfect&lt;/LI&gt;
&lt;LI&gt;Allow personalization.&amp;nbsp; Hmm, doesn't asp.net 2 have a personalization engine?&lt;/LI&gt;
&lt;LI&gt;We'll use objects as data sources. Unfortunately our interns will have to forgo the use of the designers because they don't support this at design time.&amp;nbsp; Hey, doesn't whidbey have an object datasource?&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;We'd like to:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;validate against XHTML. Not going to happen with VS2003.&lt;/LI&gt;
&lt;LI&gt;pre-compile the huge number of pages / ascx's this project may have to catch compilation errors before the page or code-path is hit.&amp;nbsp; Wish I could do this&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Yikes- I want Whidbey! Now!.&amp;nbsp; I can get lots of this now from different or home-grown solutions, but in 9 months or a year when this application is re-visited, I'll be using Whidbey.&amp;nbsp; Wouldn't it be great if I didn't have to &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Spend time now hacking together what whidbey already has in the alpha?&lt;/LI&gt;
&lt;LI&gt;Not have to rewrite the code later to use whidbey features? (or support both?)&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;So here I am, reimplementing things that Microsoft has already built, grumbling because I can't use it.&amp;nbsp; This doesn't even touch the other things I want (generics, refactoring, stencils, other &amp;#8220;neat&amp;#8220; features)&lt;/P&gt;
&lt;P&gt;I don't understand why people would want to consult a psychic - It sucks to know the future when you're stuck in the present.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=38830" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term=".net development" scheme="http://weblogs.asp.net/prieck/archive/tags/.net+development/default.aspx" /><category term="rant" scheme="http://weblogs.asp.net/prieck/archive/tags/rant/default.aspx" /></entry><entry><title>Soap with attatchments change in WSE 2!</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2003/11/12/37255.aspx" /><id>http://weblogs.asp.net/prieck/archive/2003/11/12/37255.aspx</id><published>2003-11-13T04:20:00Z</published><updated>2003-11-13T04:20:00Z</updated><content type="html">&lt;P&gt;&lt;A href="http://blogs.gotdotnet.com/rdias/"&gt;Rebecca Dias&lt;/A&gt; &lt;A href="http://blogs.gotdotnet.com/rdias/permalink.aspx/238c6372-ec0a-4ac8-9d26-d90034924172"&gt;let us know&lt;/A&gt; of a change to WSE2 based on PDC feedback:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;We have already taken one action in WSE v2.0 as a result of the feedback from the PDC.&amp;nbsp; Attachments will be abstracted away so that migration to MTOM will be more seemless. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;This makes me very happy in two ways:&lt;/P&gt;
&lt;OL dir=ltr&gt;
&lt;LI&gt;
&lt;DIV&gt;Despite letting us know that adopters of WSE are on the &amp;#8220;Bleeding edge&amp;#8221;, and should expect more work when migrating from one version / messaging technology to the next, they're still making it easy on us.&amp;nbsp;Attachments are one of those things that we want &lt;EM&gt;now&lt;/EM&gt;, and WSE is for people that aren't afraid to pay later for doing it now. Thanks for making us pay less.&amp;nbsp; Ahh, SWA &amp;amp; DIME, I hardly knew ye.&lt;BR&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;She cares! she really cares!&amp;nbsp; -- I mean, of course, that Microsoft cares.&amp;nbsp; One of the biggest lessons I came away with from the PDC was that &lt;STRONG&gt;I am Microsoft's customer, and I'm important to them.&amp;nbsp; &lt;/STRONG&gt;Too often, people think of MS as the &amp;#8220;evil monopoly&amp;#8221; that simply churns out standards-breaking software, and those of us that use that software have to sit back and watch for whats coming next.&amp;nbsp; Not so.&amp;nbsp; Microsoft knows that by listening to me (yes, me and others like me) they&amp;nbsp;are better able to&amp;nbsp;a) build better software, and b) keep making money by being the platform/tool vendor of my choice.&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;One other thing the PDC helped me with - I stopped thinking of Microsoft as &amp;#8220;that software company&amp;#8221;, and started thinking of Microsoft &amp;#8220;that&amp;nbsp;company where lots of people work to make software&amp;#8221;.&amp;nbsp; Perhaps a subtle disctintion to most of you, but to me the personalization made a huge difference in my mindset about why they make some of the decisions and products that they make.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=37255" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term=".net development" scheme="http://weblogs.asp.net/prieck/archive/tags/.net+development/default.aspx" /><category term="rant" scheme="http://weblogs.asp.net/prieck/archive/tags/rant/default.aspx" /></entry><entry><title>Longhorn available on Subscriber downloads</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/prieck/archive/2003/11/12/37181.aspx" /><id>http://weblogs.asp.net/prieck/archive/2003/11/12/37181.aspx</id><published>2003-11-12T20:52:00Z</published><updated>2003-11-12T20:52:00Z</updated><content type="html">That's right - the same bits of Longhorn preview available at the PDC are now &lt;A href="http://msdn.microsoft.com/subscriptions/downloads/default.asp"&gt;available to download&lt;/A&gt;&amp;nbsp;(MSDN subscribers only).&amp;nbsp; I guessing slowly, as everyone in the world hits the servers at the same time.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=37181" width="1" height="1"&gt;</content><author><name>philipr</name><uri>http://weblogs.asp.net/members/philipr.aspx</uri></author><category term=".net development" scheme="http://weblogs.asp.net/prieck/archive/tags/.net+development/default.aspx" /></entry></feed>