<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Jelle Druyts - Blog|Programming|.NET|ASP.NET</title>
    <link>http://jelle.druyts.net/</link>
    <description>Reflection.Emit()</description>
    <language>en-us</language>
    <copyright>Jelle Druyts</copyright>
    <lastBuildDate>Wed, 25 Aug 2010 06:51:46 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>blog@druyts.net</managingEditor>
    <webMaster>blog@druyts.net</webMaster>
    <item>
      <trackback:ping>http://jelle.druyts.net/Trackback.aspx?guid=8346b4f0-1c03-4472-b1b8-f40e54970c7c</trackback:ping>
      <pingback:server>http://jelle.druyts.net/pingback.aspx</pingback:server>
      <pingback:target>http://jelle.druyts.net/PermaLink.aspx?guid=8346b4f0-1c03-4472-b1b8-f40e54970c7c</pingback:target>
      <dc:creator>Jelle Druyts</dc:creator>
      <wfw:comment>http://jelle.druyts.net/CommentView.aspx?guid=8346b4f0-1c03-4472-b1b8-f40e54970c7c</wfw:comment>
      <wfw:commentRss>http://jelle.druyts.net/SyndicationService.asmx/GetEntryCommentsRss?guid=8346b4f0-1c03-4472-b1b8-f40e54970c7c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ok maybe it's not <i>just</i> released but still I'm happy to finally put the word
out that you can now install Mayando v1.2 directly from the <a href="http://www.microsoft.com/web/gallery/Mayando.aspx">Microsoft
Web Application Gallery</a>!
</p>
        <p>
          <a href="http://www.microsoft.com/web/gallery/Mayando.aspx">
            <img src="http://www.microsoft.com/web/media/badge/install_using_webpi_btn.png" alt="Install Mayando using the Microsoft Web Platform Installer" />
          </a>
        </p>
        <p>
Mayando is a full-featured photo blogging application that you can use to showcase
your photos online.
</p>
        <p>
          <a href="http://mayando.codeplex.com/">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Mayando-Logo-Medium" border="0" alt="Mayando-Logo-Medium" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/MayandoLogoMedium.png" width="200" height="75" />
          </a>
        </p>
        <p>
What's new in this release: 
</p>
        <ul>
          <li>
Dates on photos are now hyperlinks to other photos taken or published on the same
date.</li>
          <li>
The Flickr photo provider no longer synchronizes machine tags (because they are not
intended to be displayed).</li>
          <li>
You can now configure the photo provider to synchronize automatically at regular intervals
(e.g. every 60 minutes).</li>
          <li>
You can also use a command-line client application (or if you're a developer, a client
API) to remotely trigger a photo provider synchronization through the use of a new
Service API.</li>
          <li>
You can now filter the event log by severity.</li>
          <li>
Mayando is now compatible with ASP.NET "medium trust" hosting providers.</li>
          <li>
You can now disable distributed transactions (in the AppSettings.config file) if your
hosting provider does not allow them. Note that this can cause data loss and/or corruption
so only change this if you accept the risks associated with disabling transactions.</li>
        </ul>
        <p>
If you want to see it running: check out the <a href="http://mayando.druyts.net/">Mayando
Demo Site</a> or of course <a href="http://photography.druyts.net/">my own photo blog</a>.
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=8346b4f0-1c03-4472-b1b8-f40e54970c7c" />
      </body>
      <title>Just Released: Mayando v1.2!</title>
      <guid isPermaLink="false">http://jelle.druyts.net/PermaLink.aspx?guid=8346b4f0-1c03-4472-b1b8-f40e54970c7c</guid>
      <link>http://jelle.druyts.net/2010/08/25/JustReleasedMayandoV12.aspx</link>
      <pubDate>Wed, 25 Aug 2010 06:51:46 GMT</pubDate>
      <description>&lt;p&gt;
Ok maybe it's not &lt;i&gt;just&lt;/i&gt; released but still I'm happy to finally put the word
out that you can now install Mayando v1.2 directly from the &lt;a href="http://www.microsoft.com/web/gallery/Mayando.aspx"&gt;Microsoft
Web Application Gallery&lt;/a&gt;!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/web/gallery/Mayando.aspx"&gt;&lt;img src="http://www.microsoft.com/web/media/badge/install_using_webpi_btn.png" alt="Install Mayando using the Microsoft Web Platform Installer"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Mayando is a full-featured photo blogging application that you can use to showcase
your photos online.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://mayando.codeplex.com/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Mayando-Logo-Medium" border="0" alt="Mayando-Logo-Medium" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/MayandoLogoMedium.png" width="200" height="75" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
What's new in this release: 
&lt;ul&gt;
&lt;li&gt;
Dates on photos are now hyperlinks to other photos taken or published on the same
date.&lt;/li&gt;
&lt;li&gt;
The Flickr photo provider no longer synchronizes machine tags (because they are not
intended to be displayed).&lt;/li&gt;
&lt;li&gt;
You can now configure the photo provider to synchronize automatically at regular intervals
(e.g. every 60 minutes).&lt;/li&gt;
&lt;li&gt;
You can also use a command-line client application (or if you're a developer, a client
API) to remotely trigger a photo provider synchronization through the use of a new
Service API.&lt;/li&gt;
&lt;li&gt;
You can now filter the event log by severity.&lt;/li&gt;
&lt;li&gt;
Mayando is now compatible with ASP.NET "medium trust" hosting providers.&lt;/li&gt;
&lt;li&gt;
You can now disable distributed transactions (in the AppSettings.config file) if your
hosting provider does not allow them. Note that this can cause data loss and/or corruption
so only change this if you accept the risks associated with disabling transactions.&lt;/li&gt;
&lt;/ul&gt;
&gt;
&lt;p&gt;
If you want to see it running: check out the &lt;a href="http://mayando.druyts.net/"&gt;Mayando
Demo Site&lt;/a&gt; or of course &lt;a href="http://photography.druyts.net/"&gt;my own photo blog&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=8346b4f0-1c03-4472-b1b8-f40e54970c7c" /&gt;</description>
      <comments>http://jelle.druyts.net/CommentView.aspx?guid=8346b4f0-1c03-4472-b1b8-f40e54970c7c</comments>
      <category>Blog</category>
      <category>Blog/General</category>
      <category>Blog/Photography</category>
      <category>Blog/Programming</category>
      <category>Blog/Programming/.NET</category>
      <category>Blog/Programming/.NET/ASP.NET</category>
      <category>Blog/Websites</category>
    </item>
    <item>
      <trackback:ping>http://jelle.druyts.net/Trackback.aspx?guid=c7ab80d0-eb2a-4565-bf1f-6003a09bab09</trackback:ping>
      <pingback:server>http://jelle.druyts.net/pingback.aspx</pingback:server>
      <pingback:target>http://jelle.druyts.net/PermaLink.aspx?guid=c7ab80d0-eb2a-4565-bf1f-6003a09bab09</pingback:target>
      <dc:creator>Jelle Druyts</dc:creator>
      <wfw:comment>http://jelle.druyts.net/CommentView.aspx?guid=c7ab80d0-eb2a-4565-bf1f-6003a09bab09</wfw:comment>
      <wfw:commentRss>http://jelle.druyts.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c7ab80d0-eb2a-4565-bf1f-6003a09bab09</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Since it’s been almost two years since my last blog post, I figured I owed the remaining
3 subscribers of my blog a short update on what I have been up to...
</p>
        <p>
          <strong>#1 – Maya</strong>
        </p>
        <p>
There have indeed been a couple of interesting things going on, and first and foremost,
that would include the birth of our amazingly beautiful and unbelievably cute daughter
Maya in June last year :-)
</p>
        <p>
          <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Prinses" border="0" alt="Prinses" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/Prinses.jpg" width="164" height="244" />  <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Koekjestijd" border="0" alt="Koekjestijd" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/Koekjestijd.jpg" width="164" height="244" /><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Verjaardagskroon" border="0" alt="Verjaardagskroon" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/Verjaardagskroon.jpg" width="165" height="244" /></p>
        <p>
She just turned one year old this week, so time flies indeed! If you would be interested
in seeing some more pictures, then I’m sure you can figure out where her own website
would be located if you studied the incredibly complicated naming pattern I used to
locate my own website :-)
</p>
        <p>
          <strong>#2 - Mayando</strong>
        </p>
        <p>
Because Project #1 called for a way to keep the family up to date and to regularly
show off <em>exactly how cute </em>Maya is, and (almost equally importantly) because
I was looking for an excuse to learn <a href="http://www.asp.net/mvc">ASP.NET MVC</a>,
I decided to write a photo blogging web application. <em>“What, another photo gallery
site”</em>, you might ask? Eh, yeah, exactly. But in my defense: I looked hard at
the existing ones and couldn’t find one that covered my requirements so this is one <em>I </em>built
to fit <em>my </em>needs :-)
</p>
        <p>
Nonetheless, I didn’t just want to build a one-off “baby web site for Maya”, but really
a generic application that I could also use later on use as the engine for <a href="http://photography.druyts.net">my
own photo blog</a> – and that you, dear reader, might also want to use if you want
to publish a collection of photos in a nice and user-friendly way. (For example, I
have an architect friend who is interested in using it as a portfolio site for the
houses he designed.)
</p>
        <p>
And so, <a href="http://mayando.codeplex.com/">Mayando</a> was born: a full-featured
photo blogging application that you can use to showcase your photos online.
</p>
        <p>
          <a href="http://mayando.codeplex.com/">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Mayando-Logo-Medium" border="0" alt="Mayando-Logo-Medium" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/MayandoLogoMedium.png" width="200" height="75" />
          </a>
        </p>
        <p>
Now I did <em>not </em>want to reinvent solutions to the problem of globally storing
and serving images on the web, so I figured that I should only build a rich front-end
on top of existing photo storage services such as <a href="http://www.flickr.com">Flickr</a>.
So I built a provider model where the URL’s of the photos and their details (and comments)
just get “sucked in” from a photo sharing site and you can work with them from your
own website. So basically, the photos get pulled in from a service such as Flickr
and then displayed through Mayando, using a lot of navigation possibilities (by creating
static pages and dynamic galleries, by browsing through photos, comments, tags, dates,
...).
</p>
        <p>
It also allows visitors to post new comments and obviously I needed to handle comment
spam so again I implemented a provider model for anti-spam services (such as <a href="http://mollom.com">Mollom</a>).
</p>
        <p>
And finally, the whole thing had to be easily customizable so I made sure to allow
different themes for the photo blog’s look and feel, with customization options ranging
from simple (e.g. simply changing the CSS stylesheet) to advanced (completely changing
the entire site layout and/or individual pages). Thankfully, by now I know that the
ASP.NET MVC framework is so flexible it easily let me do all this with surprisingly
little effort. Anyway, I won’t go into the many details – if you’re interested in
how it works: it’s open source so feel free to look at the <a href="http://mayando.codeplex.com/SourceControl/ListDownloadableCommits.aspx">Mayando
source code</a> and let me know if you want to contribute!
</p>
        <p>
If you just want to see it running: check out the <a href="http://mayando.druyts.net/">Mayando
Demo Site</a> or of course <a href="http://photography.druyts.net/">my own photo blog</a> :-)
</p>
        <p>
          <strong>#3 – Flickr Schedulr v1.4 &amp; v2.0</strong>
        </p>
        <p>
Because Project #1 and Project #2 meant I would be using <a href="http://www.flickr.com">Flickr</a> more,
I figured it was also time to give my Flickr Schedulr application an update to incorporate
feedback from a number of users.
</p>
        <p>
In case you’re wondering what it is: Flickr Schedulr is a Windows desktop application
that automatically uploads pictures to Flickr based on a schedule (e.g. to post a
new picture every day at a certain time). It allows you to create a queue of pictures
to be uploaded, along with their titles, descriptions, tags, and the photosets and
groups into which they should end up.
</p>
        <p>
          <a href="http://schedulr.codeplex.com/">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Schedulr-Logo-Small" border="0" alt="Schedulr-Logo-Small" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/SchedulrLogoSmall.png" width="125" height="50" />
          </a>
        </p>
        <p>
I published v1.4 last January; new features include the possibility to upload multiple
pictures at a time in batch, better handling of multiple selected files and overall
UI improvements.
</p>
        <p>
I’ve also been working really hard on v2.0 which is a complete rewrite of the application
in <a href="http://msdn.microsoft.com/en-us/library/ms754130.aspx">Windows Presentation
Foundation</a> (WPF), and as such looks and feels so much nicer in many ways than
the previous version. It will also have a few new features of course. I’m still polishing
some things but you can expect to see a release in the next few weeks.
</p>
        <p>
Since I’ve been very happy with <a href="http://www.codeplex.com">CodePlex</a> for <a href="http://www.codeplex.com/site/users/view/jelled">my
other projects</a>, I decided to move the source code and work items there and lo
and behold: here is the new <a href="http://schedulr.codeplex.com/">Flickr Schedulr
homepage on CodePlex</a>!
</p>
        <p>
          <strong>#4 – Proxy Monitor</strong>
        </p>
        <p>
Last October, the <a href="http://jelle.druyts.net/2008/09/08/JustReleasedProxyMonitor12.aspx">trend</a> continued:
another release around a year after the last one. This time, I got the help from David
Huntley, who was kind enough to finally get something off my list I’ve been planning
to do for a while now: properly setting the proxy via the Win32 API’s instead of just
writing to the registry. This more robust way of setting the proxy came for free with
the new feature he implemented, which is support for multiple connections. This allows
you to specify proxy servers for other connections than the default LAN (such as dial-up
or VPN connections).
</p>
        <p>
To make it easier to work together, I decided to move this project to <a href="http://www.codeplex.com">CodePlex</a> as
well. So for all information, downloads, forums, etc. go to the new <a href="http://proxymonitor.codeplex.com">Proxy
Monitor homepage at CodePlex</a>!
</p>
        <p>
          <strong>#5 – The NOT Part</strong>
        </p>
        <p>
So after a small list of things that I <em>have </em>been up to the last two years
or so, it’s quite clear what I have <em>not </em>been up to: blogging. And that’s
probably going to stay that way. I either have too little to say (which is increasingly
the case), or too much (which would take too much time to write down). So honestly,
I expect this would be the last entry on my blog for quite a while – if not eternity.
</p>
        <p>
In case it becomes the latter: thanks for having followed my random thoughts for the
last 7 years, and if you want to keep up with what I’m doing on the technical side
of life, follow my projects on <a href="http://www.codeplex.com/">CodePlex</a>:
</p>
        <ul>
          <li>
            <a href="http://mayando.codeplex.com/">Mayando</a>
          </li>
          <li>
            <a href="http://schedulr.codeplex.com/">Flickr Schedulr</a>
          </li>
          <li>
            <a href="http://proxymonitor.codeplex.com/">Proxy Monitor</a>
          </li>
          <li>
            <a href="http://buildcop.codeplex.com/">BuildCop</a>
          </li>
          <li>
            <a href="http://csd.codeplex.com/">Configuration Section Designer</a>
          </li>
          <li>
            <a href="http://mollom.codeplex.com/">Mollom for .NET</a>
          </li>
        </ul>
        <p>
If you want to keep up with the non-technical side, check out my <a href="http://photography.druyts.net/">photography
site</a> - &lt;plug&gt;based on <a href="http://mayando.codeplex.com/">Mayando</a> of
course, and updated with the help of <a href="http://schedulr.codeplex.com/">Flickr
Schedulr</a>&lt;/plug&gt; :-)
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=c7ab80d0-eb2a-4565-bf1f-6003a09bab09" />
      </body>
      <title>What Has Jelle Been Up To (a.k.a. The Last Post)</title>
      <guid isPermaLink="false">http://jelle.druyts.net/PermaLink.aspx?guid=c7ab80d0-eb2a-4565-bf1f-6003a09bab09</guid>
      <link>http://jelle.druyts.net/2010/06/10/WhatHasJelleBeenUpToAkaTheLastPost.aspx</link>
      <pubDate>Thu, 10 Jun 2010 12:03:08 GMT</pubDate>
      <description>&lt;p&gt;
Since it’s been almost two years since my last blog post, I figured I owed the remaining
3 subscribers of my blog a short update on what I have been up to...
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;#1 – Maya&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
There have indeed been a couple of interesting things going on, and first and foremost,
that would include the birth of our amazingly beautiful and unbelievably cute daughter
Maya in June last year :-)
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Prinses" border="0" alt="Prinses" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/Prinses.jpg" width="164" height="244" /&gt;&amp;#160; &lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Koekjestijd" border="0" alt="Koekjestijd" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/Koekjestijd.jpg" width="164" height="244" /&gt; &lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Verjaardagskroon" border="0" alt="Verjaardagskroon" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/Verjaardagskroon.jpg" width="165" height="244" /&gt; 
&lt;/p&gt;
&lt;p&gt;
She just turned one year old this week, so time flies indeed! If you would be interested
in seeing some more pictures, then I’m sure you can figure out where her own website
would be located if you studied the incredibly complicated naming pattern I used to
locate my own website :-)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;#2 - Mayando&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Because Project #1 called for a way to keep the family up to date and to regularly
show off &lt;em&gt;exactly how cute &lt;/em&gt;Maya is, and (almost equally importantly) because
I was looking for an excuse to learn &lt;a href="http://www.asp.net/mvc"&gt;ASP.NET MVC&lt;/a&gt;,
I decided to write a photo blogging web application. &lt;em&gt;“What, another photo gallery
site”&lt;/em&gt;, you might ask? Eh, yeah, exactly. But in my defense: I looked hard at
the existing ones and couldn’t find one that covered my requirements so this is one &lt;em&gt;I &lt;/em&gt;built
to fit &lt;em&gt;my &lt;/em&gt;needs :-)
&lt;/p&gt;
&lt;p&gt;
Nonetheless, I didn’t just want to build a one-off “baby web site for Maya”, but really
a generic application that I could also use later on use as the engine for &lt;a href="http://photography.druyts.net"&gt;my
own photo blog&lt;/a&gt; – and that you, dear reader, might also want to use if you want
to publish a collection of photos in a nice and user-friendly way. (For example, I
have an architect friend who is interested in using it as a portfolio site for the
houses he designed.)
&lt;/p&gt;
&lt;p&gt;
And so, &lt;a href="http://mayando.codeplex.com/"&gt;Mayando&lt;/a&gt; was born: a full-featured
photo blogging application that you can use to showcase your photos online.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://mayando.codeplex.com/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Mayando-Logo-Medium" border="0" alt="Mayando-Logo-Medium" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/MayandoLogoMedium.png" width="200" height="75" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Now I did &lt;em&gt;not &lt;/em&gt;want to reinvent solutions to the problem of globally storing
and serving images on the web, so I figured that I should only build a rich front-end
on top of existing photo storage services such as &lt;a href="http://www.flickr.com"&gt;Flickr&lt;/a&gt;.
So I built a provider model where the URL’s of the photos and their details (and comments)
just get “sucked in” from a photo sharing site and you can work with them from your
own website. So basically, the photos get pulled in from a service such as Flickr
and then displayed through Mayando, using a lot of navigation possibilities (by creating
static pages and dynamic galleries, by browsing through photos, comments, tags, dates,
...).
&lt;/p&gt;
&lt;p&gt;
It also allows visitors to post new comments and obviously I needed to handle comment
spam so again I implemented a provider model for anti-spam services (such as &lt;a href="http://mollom.com"&gt;Mollom&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
And finally, the whole thing had to be easily customizable so I made sure to allow
different themes for the photo blog’s look and feel, with customization options ranging
from simple (e.g. simply changing the CSS stylesheet) to advanced (completely changing
the entire site layout and/or individual pages). Thankfully, by now I know that the
ASP.NET MVC framework is so flexible it easily let me do all this with surprisingly
little effort. Anyway, I won’t go into the many details – if you’re interested in
how it works: it’s open source so feel free to look at the &lt;a href="http://mayando.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;Mayando
source code&lt;/a&gt; and let me know if you want to contribute!
&lt;/p&gt;
&lt;p&gt;
If you just want to see it running: check out the &lt;a href="http://mayando.druyts.net/"&gt;Mayando
Demo Site&lt;/a&gt; or of course &lt;a href="http://photography.druyts.net/"&gt;my own photo blog&lt;/a&gt; :-)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;#3 – Flickr Schedulr v1.4 &amp;amp; v2.0&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Because Project #1 and Project #2 meant I would be using &lt;a href="http://www.flickr.com"&gt;Flickr&lt;/a&gt; more,
I figured it was also time to give my Flickr Schedulr application an update to incorporate
feedback from a number of users.
&lt;/p&gt;
&lt;p&gt;
In case you’re wondering what it is: Flickr Schedulr is a Windows desktop application
that automatically uploads pictures to Flickr based on a schedule (e.g. to post a
new picture every day at a certain time). It allows you to create a queue of pictures
to be uploaded, along with their titles, descriptions, tags, and the photosets and
groups into which they should end up.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://schedulr.codeplex.com/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Schedulr-Logo-Small" border="0" alt="Schedulr-Logo-Small" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/SchedulrLogoSmall.png" width="125" height="50" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
I published v1.4 last January; new features include the possibility to upload multiple
pictures at a time in batch, better handling of multiple selected files and overall
UI improvements.
&lt;/p&gt;
&lt;p&gt;
I’ve also been working really hard on v2.0 which is a complete rewrite of the application
in &lt;a href="http://msdn.microsoft.com/en-us/library/ms754130.aspx"&gt;Windows Presentation
Foundation&lt;/a&gt; (WPF), and as such looks and feels so much nicer in many ways than
the previous version. It will also have a few new features of course. I’m still polishing
some things but you can expect to see a release in the next few weeks.
&lt;/p&gt;
&lt;p&gt;
Since I’ve been very happy with &lt;a href="http://www.codeplex.com"&gt;CodePlex&lt;/a&gt; for &lt;a href="http://www.codeplex.com/site/users/view/jelled"&gt;my
other projects&lt;/a&gt;, I decided to move the source code and work items there and lo
and behold: here is the new &lt;a href="http://schedulr.codeplex.com/"&gt;Flickr Schedulr
homepage on CodePlex&lt;/a&gt;!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;#4 – Proxy Monitor&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Last October, the &lt;a href="http://jelle.druyts.net/2008/09/08/JustReleasedProxyMonitor12.aspx"&gt;trend&lt;/a&gt; continued:
another release around a year after the last one. This time, I got the help from David
Huntley, who was kind enough to finally get something off my list I’ve been planning
to do for a while now: properly setting the proxy via the Win32 API’s instead of just
writing to the registry. This more robust way of setting the proxy came for free with
the new feature he implemented, which is support for multiple connections. This allows
you to specify proxy servers for other connections than the default LAN (such as dial-up
or VPN connections).
&lt;/p&gt;
&lt;p&gt;
To make it easier to work together, I decided to move this project to &lt;a href="http://www.codeplex.com"&gt;CodePlex&lt;/a&gt; as
well. So for all information, downloads, forums, etc. go to the new &lt;a href="http://proxymonitor.codeplex.com"&gt;Proxy
Monitor homepage at CodePlex&lt;/a&gt;!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;#5 – The NOT Part&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
So after a small list of things that I &lt;em&gt;have &lt;/em&gt;been up to the last two years
or so, it’s quite clear what I have &lt;em&gt;not &lt;/em&gt;been up to: blogging. And that’s
probably going to stay that way. I either have too little to say (which is increasingly
the case), or too much (which would take too much time to write down). So honestly,
I expect this would be the last entry on my blog for quite a while – if not eternity.
&lt;/p&gt;
&lt;p&gt;
In case it becomes the latter: thanks for having followed my random thoughts for the
last 7 years, and if you want to keep up with what I’m doing on the technical side
of life, follow my projects on &lt;a href="http://www.codeplex.com/"&gt;CodePlex&lt;/a&gt;:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://mayando.codeplex.com/"&gt;Mayando&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://schedulr.codeplex.com/"&gt;Flickr Schedulr&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://proxymonitor.codeplex.com/"&gt;Proxy Monitor&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://buildcop.codeplex.com/"&gt;BuildCop&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://csd.codeplex.com/"&gt;Configuration Section Designer&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://mollom.codeplex.com/"&gt;Mollom for .NET&lt;/a&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
If you want to keep up with the non-technical side, check out my &lt;a href="http://photography.druyts.net/"&gt;photography
site&lt;/a&gt; - &amp;lt;plug&amp;gt;based on &lt;a href="http://mayando.codeplex.com/"&gt;Mayando&lt;/a&gt; of
course, and updated with the help of &lt;a href="http://schedulr.codeplex.com/"&gt;Flickr
Schedulr&lt;/a&gt;&amp;lt;/plug&amp;gt; :-)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=c7ab80d0-eb2a-4565-bf1f-6003a09bab09" /&gt;</description>
      <comments>http://jelle.druyts.net/CommentView.aspx?guid=c7ab80d0-eb2a-4565-bf1f-6003a09bab09</comments>
      <category>Blog</category>
      <category>Blog/General</category>
      <category>Blog/Photography</category>
      <category>Blog/Programming</category>
      <category>Blog/Programming/.NET</category>
      <category>Blog/Programming/.NET/ASP.NET</category>
      <category>Blog/Programming/.NET/WPF</category>
      <category>Blog/Websites</category>
      <category>Blog/Windows</category>
    </item>
    <item>
      <trackback:ping>http://jelle.druyts.net/Trackback.aspx?guid=c9d742d9-c1a9-4c54-97f9-709e9c651422</trackback:ping>
      <pingback:server>http://jelle.druyts.net/pingback.aspx</pingback:server>
      <pingback:target>http://jelle.druyts.net/PermaLink.aspx?guid=c9d742d9-c1a9-4c54-97f9-709e9c651422</pingback:target>
      <dc:creator>Jelle Druyts</dc:creator>
      <wfw:comment>http://jelle.druyts.net/CommentView.aspx?guid=c9d742d9-c1a9-4c54-97f9-709e9c651422</wfw:comment>
      <wfw:commentRss>http://jelle.druyts.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c9d742d9-c1a9-4c54-97f9-709e9c651422</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Just a quick note to mention a little quirk in Internet Information Services (IIS)
I discovered recently: when you have a virtual <em>directory</em> name that ends in
a registered <em>file</em> extension, you'll get an HTTP 404 error when browsing to
that directory.
</p>
        <p>
We were using http://localhost/MyCompany.MyProject.Svc/MyService.asmx as our web service
endpoint, but that kept giving us HTTP 404's. At first, we thought it had to do with
the dots in the name (causing us to change our guidelines and drop part of our naming
consistency) but I later found out it has to do with the .svc file extension being
mapped to the ASP.NET isapi dll. So even though it's clearly a directory name and
not a file, we still got the 404.
</p>
        <p>
So we changed our guidelines (once more) to MyCompany.MyProject.Svc.WebServices and
all was fine again...
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=c9d742d9-c1a9-4c54-97f9-709e9c651422" />
      </body>
      <title>IIS virtual directory names and mapped file extensions</title>
      <guid isPermaLink="false">http://jelle.druyts.net/PermaLink.aspx?guid=c9d742d9-c1a9-4c54-97f9-709e9c651422</guid>
      <link>http://jelle.druyts.net/2006/06/25/IISVirtualDirectoryNamesAndMappedFileExtensions.aspx</link>
      <pubDate>Sun, 25 Jun 2006 09:45:29 GMT</pubDate>
      <description>&lt;p&gt;
Just a quick note to mention a little quirk in Internet Information Services (IIS)
I discovered recently: when you have a virtual &lt;em&gt;directory&lt;/em&gt; name that ends in
a registered &lt;em&gt;file&lt;/em&gt; extension, you'll get an HTTP 404 error when browsing to
that directory.
&lt;/p&gt;
&lt;p&gt;
We were using http://localhost/MyCompany.MyProject.Svc/MyService.asmx as our web service
endpoint, but that kept giving us HTTP 404's. At first, we thought it had to do with
the dots in the name (causing us to change our guidelines and drop part of our naming
consistency) but I later found out it has to do with the .svc file extension being
mapped to the ASP.NET isapi dll. So even though it's clearly a directory name and
not a file, we still got the 404.
&lt;/p&gt;
&lt;p&gt;
So we changed our guidelines (once more) to MyCompany.MyProject.Svc.WebServices and
all was fine again...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=c9d742d9-c1a9-4c54-97f9-709e9c651422" /&gt;</description>
      <comments>http://jelle.druyts.net/CommentView.aspx?guid=c9d742d9-c1a9-4c54-97f9-709e9c651422</comments>
      <category>Blog</category>
      <category>Blog/Programming</category>
      <category>Blog/Programming/.NET</category>
      <category>Blog/Programming/.NET/ASP.NET</category>
      <category>Blog/Programming/.NET/Quirks</category>
    </item>
    <item>
      <trackback:ping>http://jelle.druyts.net/Trackback.aspx?guid=4ff76800-5936-4684-b004-ae4e9a74916c</trackback:ping>
      <pingback:server>http://jelle.druyts.net/pingback.aspx</pingback:server>
      <pingback:target>http://jelle.druyts.net/PermaLink.aspx?guid=4ff76800-5936-4684-b004-ae4e9a74916c</pingback:target>
      <dc:creator>Jelle Druyts</dc:creator>
      <wfw:comment>http://jelle.druyts.net/CommentView.aspx?guid=4ff76800-5936-4684-b004-ae4e9a74916c</wfw:comment>
      <wfw:commentRss>http://jelle.druyts.net/SyndicationService.asmx/GetEntryCommentsRss?guid=4ff76800-5936-4684-b004-ae4e9a74916c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I don't know about you, but I've never been very fond of the <a href="http://weblogs.asp.net/scottgu/archive/2005/08/21/423201.aspx">new
Web Project System in ASP.NET 2.0</a>. I'm sure it has its advantages for some types
of users but I've definitely had more than my share of problems with it. Specifically
the way that it sometimes (and randomly) starts checking in binaries in Source Control
has shortened my life with at least 4 months. Furthermore, having each page compile
into its own assembly (by default anyway) and therefore not having a nice place to
put assembly-level attributes or define strong naming that work on the entire website
has surprised me (in a negative way, that is). What I don't get is that Microsoft
had abandoned a familiar and working concept (the Web Application model used in the
previous versions of Visual Studio) and replaced it entirely without supporting the
old way of working. To me this has always been a major breaking change, and a cause
of much frustration.
</p>
        <p>
Well, the pain has now officially ended: the <a href="http://weblogs.asp.net/scottgu/archive/2006/05/08/445742.aspx">Visual
Studio 2005 Web Application Projects has been released</a>, meaning that the old model
is back with a vengeance. With a <a href="http://msdn.microsoft.com/asp.net/reference/infrastructure/wap/default.aspx">free
download from Microsoft</a>, you can get your familiar working environment back in
Visual Studio 2005, but with lots and lots of improvements over the previous versions
of course (not even mentioning the fact that it's now ASP.NET 2.0 with all its goodness
around it).
</p>
        <p>
Some highlights:
</p>
        <ul>
          <li>
A project file (which I don't consider a feature, more a bugfix over the previous
model)! This fixes the problems with the references getting checked in, and lots of
other things. 
</li>
          <li>
Because of the project file, you also have pre- and post-build events again (the new
Web Project System doesn't support them). 
</li>
          <li>
You can create working Web Setup projects again, containing the content and primary
output of the project. With the new Web Project System, you have to download and install
a separate update (the <a href="http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx">Visual
Studio 2005 Web Deployment Projects</a>). 
</li>
          <li>
It builds one assembly by default. This fixes the problem with the assembly-level
attributes and strong naming. 
</li>
          <li>
The Global.asax file isn't ugly inline script anymore but a proper class in a code-behind
file. The "Application_Start" and similar methods are still "magic" though, discovered
through reflection I assume, in stead of properly overriding them from the base class
or something. 
</li>
          <li>
No more Frontpage Extensions required. Be gone, _vti_*! 
</li>
          <li>
Built-in Development Web Server. Be gone, IIS! Well, not for enterprise scenarios
of course, but it's still a very nice feature :-) 
</li>
          <li>
MSBuild support. 
</li>
          <li>
Better web publishing options. 
</li>
          <li>
...</li>
        </ul>
        <p>
I've immediately installed and tried it and it works great! One specific detail that
I think is a very nice feature (just to show that it's not a quick fix of the old
model to run on Visual Studio 2005 but a real full-blown upgrade) is the "Create Virtual
Directory" button in the project settings, which allows you to setup a virtual directory
in IIS without having to go to the IIS console:
</p>
        <p>
          <img src="content/binary/WebApplicationProjectSettings.png" border="0" />
        </p>
        <p>
Great!
</p>
        <p>
Anyway, this add-on has made me very happy with ASP.NET 2.0 again. It's the little
things that make the difference, but the big things in this case made my day :-)
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=4ff76800-5936-4684-b004-ae4e9a74916c" />
      </body>
      <title>Visual Studio 2005 Web Application Projects Released!</title>
      <guid isPermaLink="false">http://jelle.druyts.net/PermaLink.aspx?guid=4ff76800-5936-4684-b004-ae4e9a74916c</guid>
      <link>http://jelle.druyts.net/2006/05/11/VisualStudio2005WebApplicationProjectsReleased.aspx</link>
      <pubDate>Thu, 11 May 2006 07:30:11 GMT</pubDate>
      <description>&lt;p&gt;
I don't know about you, but I've never been very fond of the &lt;a href="http://weblogs.asp.net/scottgu/archive/2005/08/21/423201.aspx"&gt;new
Web Project System in ASP.NET 2.0&lt;/a&gt;. I'm sure it has its advantages for some types
of users but I've definitely had more than my share of problems with it. Specifically
the way that it sometimes (and randomly) starts checking in binaries in Source Control
has shortened my life with at least 4 months. Furthermore, having each page compile
into its own assembly (by default anyway) and therefore not having a nice place to
put assembly-level attributes or define strong naming that work on the entire website
has surprised me (in a negative way, that is). What I don't get is that Microsoft
had abandoned a familiar and working concept (the Web Application model used in the
previous versions of Visual Studio) and replaced it entirely without supporting the
old way of working. To me this has always been a major breaking change, and a cause
of much frustration.
&lt;/p&gt;
&lt;p&gt;
Well, the pain has now officially ended: the &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/05/08/445742.aspx"&gt;Visual
Studio 2005 Web Application Projects has been released&lt;/a&gt;, meaning that the old model
is back with a vengeance. With a &lt;a href="http://msdn.microsoft.com/asp.net/reference/infrastructure/wap/default.aspx"&gt;free
download from Microsoft&lt;/a&gt;, you can get your familiar working environment back in
Visual Studio 2005, but with lots and lots of improvements over the previous versions
of course (not even mentioning the fact that it's now ASP.NET 2.0 with all its goodness
around it).
&lt;/p&gt;
&lt;p&gt;
Some highlights:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
A project file (which I don't consider a feature, more a bugfix over the previous
model)! This fixes the problems with the references getting checked in, and lots of
other things. 
&lt;li&gt;
Because of the project file, you also have pre- and post-build events again (the new
Web Project System doesn't support them). 
&lt;li&gt;
You can create working Web Setup projects again, containing the content and primary
output of the project. With the new Web Project System, you have to download and install
a separate update (the &lt;a href="http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx"&gt;Visual
Studio 2005 Web Deployment Projects&lt;/a&gt;). 
&lt;li&gt;
It builds one assembly by default. This fixes the problem with the assembly-level
attributes and strong naming. 
&lt;li&gt;
The Global.asax file isn't ugly inline script anymore but a proper class in a code-behind
file. The "Application_Start" and similar methods are still "magic" though, discovered
through reflection I assume, in stead of properly overriding them from the base class
or something. 
&lt;li&gt;
No more Frontpage Extensions required. Be gone, _vti_*! 
&lt;li&gt;
Built-in Development Web Server. Be gone, IIS! Well, not for enterprise scenarios
of course, but it's still a very nice feature :-) 
&lt;li&gt;
MSBuild support. 
&lt;li&gt;
Better web publishing options. 
&lt;li&gt;
...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I've immediately installed and tried it and it works great! One specific detail that
I think is a very nice feature (just to show that it's not a quick fix of the old
model to run on Visual Studio 2005 but a real full-blown upgrade) is the "Create Virtual
Directory" button in the project settings, which allows you to setup a virtual directory
in IIS without having to go to the IIS console:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="content/binary/WebApplicationProjectSettings.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Great!
&lt;/p&gt;
&lt;p&gt;
Anyway, this add-on has made me very happy with ASP.NET 2.0 again. It's the little
things that make the difference, but the big things in this case made my day :-)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=4ff76800-5936-4684-b004-ae4e9a74916c" /&gt;</description>
      <comments>http://jelle.druyts.net/CommentView.aspx?guid=4ff76800-5936-4684-b004-ae4e9a74916c</comments>
      <category>Blog</category>
      <category>Blog/Programming</category>
      <category>Blog/Programming/.NET</category>
      <category>Blog/Programming/.NET/ASP.NET</category>
      <category>Blog/Programming/.NET/VS.NET</category>
    </item>
    <item>
      <trackback:ping>http://jelle.druyts.net/Trackback.aspx?guid=fbaa3d35-5aea-42ff-b6f7-57f6300c817c</trackback:ping>
      <pingback:server>http://jelle.druyts.net/pingback.aspx</pingback:server>
      <pingback:target>http://jelle.druyts.net/PermaLink.aspx?guid=fbaa3d35-5aea-42ff-b6f7-57f6300c817c</pingback:target>
      <dc:creator>Jelle Druyts</dc:creator>
      <wfw:comment>http://jelle.druyts.net/CommentView.aspx?guid=fbaa3d35-5aea-42ff-b6f7-57f6300c817c</wfw:comment>
      <wfw:commentRss>http://jelle.druyts.net/SyndicationService.asmx/GetEntryCommentsRss?guid=fbaa3d35-5aea-42ff-b6f7-57f6300c817c</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was recently looking for a way to unit test a piece of security code that would
retrieve the User principal from the current <code>HttpContext</code> in an ASP.NET
scenario. Now it was just a plain unit test, not a web test, so I didn't actually <em>have</em> an <code>HttpContext</code>.
But how hard could it be to cook one up, right?
</p>
        <p>
So I first tried to set the <code>HttpContext.Current</code> property, but IntelliSense
popped up to say: <em>"Gets the HttpContext object for the current HTTP request". </em>So
I figure it's a read-only property (because the phrase starts with "Gets...", where
read-write properties typically start with "Gets or sets...") and I can't do it directly.
</p>
        <p>
Then I found a post by <a href="http://hyperthink.net/blog/default.aspx">Steve Maine</a> that
seemed to allow <a href="http://hyperthink.net/blog/2003/08/07/Hosting+ASPNET+Outside+Of+IIS.aspx">setting
the current HttpContext by injecting it into the messaging CallContext of .NET Remoting</a>.
While that looks like a bit of black magic, I'm never too shy to throw in some snake
blood and salamander eyes if it makes my code compile so I tried that, but it didn't
seem to work right away. It did, however, provide me with a good way of creating a
dummy <code>HttpContext</code> in the first place, which I also needed to do:
</p>
        <pre>SimpleWorkerRequest request = new SimpleWorkerRequest("/dummy", @"c:\inetpub\wwwroot\dummy", "dummy.html", null, new StringWriter());
HttpContext context = new HttpContext(request);</pre>
        <p>
So we just create a dummy worker request that the <code>HttpContext</code> requires
and we pass it into the constructor.
</p>
        <p>
Because the black magic wasn't working for me, I looked at the <code>HttpContext</code> class
in <a href="http://www.aisto.com/roeder/dotnet/">my favorite .NET tool of all time</a>,
and quickly realized that the property was settable anyway <sup>[<a href="#HttpContextComment1">1</a>]</sup>.
So I guess that salamander had a lucky day:
</p>
        <pre>HttpContext.Current = context;</pre>
        <p>
And we're done. A valid current <code>HttpContext</code> for use in unit tests.
</p>
        <p>
          <em>
            <a name="HttpContextComment1">[1]</a> Side comment: property documentation that
doesn't follow the "Gets..." versus "Gets or sets..." pattern is pretty frustrating.
It could have saved me quite some time if the documentation would just say "Gets <strong>or
sets</strong> the HttpContext object for the current HTTP request"...</em>
        </p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=fbaa3d35-5aea-42ff-b6f7-57f6300c817c" />
      </body>
      <title>Faking a current HttpContext</title>
      <guid isPermaLink="false">http://jelle.druyts.net/PermaLink.aspx?guid=fbaa3d35-5aea-42ff-b6f7-57f6300c817c</guid>
      <link>http://jelle.druyts.net/2006/04/05/FakingACurrentHttpContext.aspx</link>
      <pubDate>Wed, 05 Apr 2006 09:07:31 GMT</pubDate>
      <description>&lt;p&gt;
I was recently looking for a way to unit test a piece of security code that would
retrieve the User principal from the current &lt;code&gt;HttpContext&lt;/code&gt; in an ASP.NET
scenario. Now it was just a plain unit test, not a web test, so I didn't actually &lt;em&gt;have&lt;/em&gt; an &lt;code&gt;HttpContext&lt;/code&gt;.
But how hard could it be to cook one up, right?
&lt;/p&gt;
&lt;p&gt;
So I first tried to set the &lt;code&gt;HttpContext.Current&lt;/code&gt; property, but IntelliSense
popped up to say: &lt;em&gt;"Gets the HttpContext object for the current HTTP request". &lt;/em&gt;So
I figure it's a read-only property (because the phrase starts with "Gets...", where
read-write properties typically start with "Gets or sets...") and I can't do it directly.
&lt;/p&gt;
&lt;p&gt;
Then I found a post by &lt;a href="http://hyperthink.net/blog/default.aspx"&gt;Steve Maine&lt;/a&gt; that
seemed to allow &lt;a href="http://hyperthink.net/blog/2003/08/07/Hosting+ASPNET+Outside+Of+IIS.aspx"&gt;setting
the current HttpContext by injecting it into the messaging CallContext of .NET Remoting&lt;/a&gt;.
While that looks like a bit of black magic, I'm never too shy to throw in some snake
blood and salamander eyes if it makes my code compile so I tried that, but it didn't
seem to work right away. It did, however, provide me with a good way of creating a
dummy &lt;code&gt;HttpContext&lt;/code&gt; in the first place, which I also needed to do:
&lt;/p&gt;
&lt;pre&gt;SimpleWorkerRequest request = new SimpleWorkerRequest("/dummy", @"c:\inetpub\wwwroot\dummy", "dummy.html", null, new StringWriter());
HttpContext context = new HttpContext(request);&lt;/pre&gt;
&lt;p&gt;
So we just create a dummy worker request that the &lt;code&gt;HttpContext&lt;/code&gt; requires
and we pass it into the constructor.
&lt;/p&gt;
&lt;p&gt;
Because the black magic wasn't working for me, I looked at the &lt;code&gt;HttpContext&lt;/code&gt; class
in &lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;my favorite .NET tool of all time&lt;/a&gt;,
and quickly realized that the property was settable anyway &lt;sup&gt;[&lt;a href="#HttpContextComment1"&gt;1&lt;/a&gt;]&lt;/sup&gt;.
So I guess that salamander had a lucky day:
&lt;/p&gt;
&lt;pre&gt;HttpContext.Current = context;&lt;/pre&gt;
&lt;p&gt;
And we're done. A valid current &lt;code&gt;HttpContext&lt;/code&gt; for use in unit tests.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;a name=HttpContextComment1&gt;[1]&lt;/a&gt; Side comment: property documentation that
doesn't follow the "Gets..." versus "Gets or sets..." pattern is pretty frustrating.
It could have saved me quite some time if the documentation would just say "Gets &lt;strong&gt;or
sets&lt;/strong&gt; the HttpContext object for the current HTTP request"...&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=fbaa3d35-5aea-42ff-b6f7-57f6300c817c" /&gt;</description>
      <comments>http://jelle.druyts.net/CommentView.aspx?guid=fbaa3d35-5aea-42ff-b6f7-57f6300c817c</comments>
      <category>Blog</category>
      <category>Blog/Programming</category>
      <category>Blog/Programming/.NET</category>
      <category>Blog/Programming/.NET/ASP.NET</category>
      <category>Blog/Programming/Samples</category>
    </item>
    <item>
      <trackback:ping>http://jelle.druyts.net/Trackback.aspx?guid=1ec96f95-02d3-41f1-8884-1fd0bffcadc6</trackback:ping>
      <pingback:server>http://jelle.druyts.net/pingback.aspx</pingback:server>
      <pingback:target>http://jelle.druyts.net/PermaLink.aspx?guid=1ec96f95-02d3-41f1-8884-1fd0bffcadc6</pingback:target>
      <dc:creator>Jelle Druyts</dc:creator>
      <wfw:comment>http://jelle.druyts.net/CommentView.aspx?guid=1ec96f95-02d3-41f1-8884-1fd0bffcadc6</wfw:comment>
      <wfw:commentRss>http://jelle.druyts.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1ec96f95-02d3-41f1-8884-1fd0bffcadc6</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've been using the Release Candidate of <a href="http://lab.msdn.microsoft.com/vs2005/">Visual
Studio 2005</a> lately, and I'm very pleased with the overall look and feel of the
application. There are still some issues left to work out (I get the occasional crash
and burn), so I hope they'll all be gone by the time they RTM in the week of November
7th...
</p>
        <p>
One of the things I <em>really</em> wished they would have fixed, though, is the way
references are handled in ASP.NET 2.0 websites or WebService projects. This is what
I had to say about <a href="2004/05/04/RandomVisualStudioWhidbeyAnnoyances.aspx">references
in June 2004</a>, and it still holds true:
</p>
        <p>
          <em>Although certainly not always possible, the ultimate solution to problems with
references has always been using Project References. So that's what I'm doing now,
but in ASP.NET they <strong>tend to switch from project references to fixed binary
references</strong> that don't get updated anymore. And you wonder why you get runtime
errors... So you need to check those references regularly and reset them to project
references. Joy! What's even funnier is that an ASP.NET site doesn't have a project
file anymore, which would be fine if there was nothing to remember for an ASP.NET
project. <strong>But what about these references? I'm sorry to have noticed that,
but they're stored in the solution file</strong>. Bad, bad, bad... If you have multiple
solutions with the same ASP.NET project in them, it would depend on the solution file
which kind of references the project would use. If you really need project-settings,
revive the project file guys and recall the "no project file needed"-hype. What's
one file extra going to do anyway?</em>
        </p>
        <p>
Apart from the project references randomly becoming binary references (I've seen it
happen again in the RC!) I still think it's an even bigger problem that project
properties are put into the solution file. If you want proof, this is a part of a
solution file that contains a WebService project:
</p>
        <pre>Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = http://localhost/TestWebService/,<br />
"http://localhost/TestWebService", "{F7389224-931A-4652-A0E2-3A932D1B40C6}"<br />
 ProjectSection(WebsiteProperties) = preProject<br /><strong>  ProjectReferences = "{BC53180F-394F-4F31-A61E-BFBC4DBF9B32}|BusinessLayer.dll;"<br /></strong>  Debug.AspNetCompiler.VirtualPath = "/TestWebService"<br />
  Debug.AspNetCompiler.PhysicalPath = "..\..\..\..\POC\TestWebService\"<br />
  Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\TestWebService\"<br />
  Debug.AspNetCompiler.Updateable = "true"<br />
  Debug.AspNetCompiler.ForceOverwrite = "true"<br />
  Debug.AspNetCompiler.FixedNames = "false"<br />
  Debug.AspNetCompiler.Debug = "True"<br />
  Release.AspNetCompiler.VirtualPath = "/TestWebService"<br />
  Release.AspNetCompiler.PhysicalPath = "..\..\..\..\POC\TestWebService\"<br />
  Release.AspNetCompiler.TargetPath = "PrecompiledWeb\TestWebService\"<br />
  Release.AspNetCompiler.Updateable = "true"<br />
  Release.AspNetCompiler.ForceOverwrite = "true"<br />
  Release.AspNetCompiler.FixedNames = "false"<br />
  Release.AspNetCompiler.Debug = "False"<br />
  SlnRelativePath = "..\..\..\..\POC\TestWebService\"<br />
 EndProjectSection<br />
EndProject</pre>
        <p>
The rest of the settings are also project-specific (hence the ProjectSection) so I
think it's all unacceptable. But I guess it's too late to change any of this...?
</p>
        <p>
          <strong>Update:</strong> I did some thinking and some of this might actually make
sense... As the line in the solution file above actually states, it's a Project Reference.
Since project references refer to other projects within the same solution file by
definition, this is actually quite logical. I tried to do the same thing with a non-project
reference (i.e. a binary reference) and it's not stored in the solution file. But
before you start cheering, be aware that the reference isn't stored <em>anywhere at
all</em>. The assembly is just copied over to the website and you'll have to update
it manually if the reference changed. Not too brilliant either... The fact that project
references tend to switch to binary references might have something to do with adding
the website to a new solution which doesn't contain the referenced project, but I'm
not so sure the reason is that simple.
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=1ec96f95-02d3-41f1-8884-1fd0bffcadc6" />
      </body>
      <title>ASP.NET 2.0 References</title>
      <guid isPermaLink="false">http://jelle.druyts.net/PermaLink.aspx?guid=1ec96f95-02d3-41f1-8884-1fd0bffcadc6</guid>
      <link>http://jelle.druyts.net/2005/10/13/ASPNET20References.aspx</link>
      <pubDate>Thu, 13 Oct 2005 19:23:50 GMT</pubDate>
      <description>&lt;p&gt;
I've been using the Release Candidate of &lt;a href="http://lab.msdn.microsoft.com/vs2005/"&gt;Visual
Studio 2005&lt;/a&gt; lately, and I'm very pleased with the overall look and feel of the
application. There are still some issues left to work out (I get the occasional crash
and burn), so I hope they'll all be gone by the time they RTM in the week of November
7th...
&lt;/p&gt;
&lt;p&gt;
One of the things I &lt;em&gt;really&lt;/em&gt; wished they would have fixed, though, is the way
references are handled in ASP.NET 2.0 websites or WebService projects. This is what
I had to say about &lt;a href="2004/05/04/RandomVisualStudioWhidbeyAnnoyances.aspx"&gt;references
in June 2004&lt;/a&gt;, and it still holds true:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Although certainly not always possible, the ultimate solution to problems with
references has always been using Project References. So that's what I'm doing now,
but in ASP.NET they &lt;strong&gt;tend to switch from project references to fixed binary
references&lt;/strong&gt; that don't get updated anymore. And you wonder why you get runtime
errors... So you need to check those references regularly and reset them to project
references. Joy! What's even funnier is that an ASP.NET site doesn't have a project
file anymore, which would be fine if there was nothing to remember for an ASP.NET
project. &lt;strong&gt;But what about these references? I'm sorry to have noticed that,
but they're stored in the solution file&lt;/strong&gt;. Bad, bad, bad... If you have multiple
solutions with the same ASP.NET project in them, it would depend on the solution file
which kind of references the project would use. If you really need project-settings,
revive the project file guys and recall the "no project file needed"-hype. What's
one file extra going to do anyway?&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Apart from the project references randomly becoming binary references (I've seen it
happen again in the RC!) I still think it's an even&amp;nbsp;bigger problem that project
properties are put into the solution file. If you want proof, this is a part of a
solution file that contains a WebService project:
&lt;/p&gt;
&lt;pre&gt;Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = http://localhost/TestWebService/,&lt;br&gt;
"http://localhost/TestWebService", "{F7389224-931A-4652-A0E2-3A932D1B40C6}"&lt;br&gt;
&amp;nbsp;ProjectSection(WebsiteProperties) = preProject&lt;br&gt;
&lt;strong&gt;&amp;nbsp; ProjectReferences = "{BC53180F-394F-4F31-A61E-BFBC4DBF9B32}|BusinessLayer.dll;"&lt;br&gt;
&lt;/strong&gt;&amp;nbsp; Debug.AspNetCompiler.VirtualPath = "/TestWebService"&lt;br&gt;
&amp;nbsp; Debug.AspNetCompiler.PhysicalPath = "..\..\..\..\POC\TestWebService\"&lt;br&gt;
&amp;nbsp; Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\TestWebService\"&lt;br&gt;
&amp;nbsp; Debug.AspNetCompiler.Updateable = "true"&lt;br&gt;
&amp;nbsp; Debug.AspNetCompiler.ForceOverwrite = "true"&lt;br&gt;
&amp;nbsp; Debug.AspNetCompiler.FixedNames = "false"&lt;br&gt;
&amp;nbsp; Debug.AspNetCompiler.Debug = "True"&lt;br&gt;
&amp;nbsp; Release.AspNetCompiler.VirtualPath = "/TestWebService"&lt;br&gt;
&amp;nbsp; Release.AspNetCompiler.PhysicalPath = "..\..\..\..\POC\TestWebService\"&lt;br&gt;
&amp;nbsp; Release.AspNetCompiler.TargetPath = "PrecompiledWeb\TestWebService\"&lt;br&gt;
&amp;nbsp; Release.AspNetCompiler.Updateable = "true"&lt;br&gt;
&amp;nbsp; Release.AspNetCompiler.ForceOverwrite = "true"&lt;br&gt;
&amp;nbsp; Release.AspNetCompiler.FixedNames = "false"&lt;br&gt;
&amp;nbsp; Release.AspNetCompiler.Debug = "False"&lt;br&gt;
&amp;nbsp; SlnRelativePath = "..\..\..\..\POC\TestWebService\"&lt;br&gt;
&amp;nbsp;EndProjectSection&lt;br&gt;
EndProject&lt;/pre&gt;
&lt;p&gt;
The rest of the settings are also project-specific (hence the ProjectSection) so I
think it's all unacceptable. But I guess it's too late to change any of this...?
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update:&lt;/strong&gt; I did some thinking and some of this might actually make
sense... As the line in the solution file above actually states, it's a Project Reference.
Since project references refer to other projects within the same solution file by
definition, this is actually quite logical. I tried to do the same thing with a non-project
reference (i.e. a binary reference) and it's not stored in the solution file. But
before you start cheering, be aware that the reference isn't stored &lt;em&gt;anywhere at
all&lt;/em&gt;. The assembly is just copied over to the website and you'll have to update
it manually if the reference changed. Not too brilliant either... The fact that project
references tend to switch to binary references might have something to do with adding
the website to a new solution which doesn't contain the referenced project, but I'm
not so sure the reason is that simple.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=1ec96f95-02d3-41f1-8884-1fd0bffcadc6" /&gt;</description>
      <comments>http://jelle.druyts.net/CommentView.aspx?guid=1ec96f95-02d3-41f1-8884-1fd0bffcadc6</comments>
      <category>Blog</category>
      <category>Blog/Programming</category>
      <category>Blog/Programming/.NET</category>
      <category>Blog/Programming/.NET/ASP.NET</category>
      <category>Blog/Programming/.NET/VS.NET</category>
      <category>Blog/Programming/.NET/Whidbey</category>
    </item>
    <item>
      <trackback:ping>http://jelle.druyts.net/Trackback.aspx?guid=bba8d165-603b-47f4-839e-01d4a8175b73</trackback:ping>
      <pingback:server>http://jelle.druyts.net/pingback.aspx</pingback:server>
      <pingback:target>http://jelle.druyts.net/PermaLink.aspx?guid=bba8d165-603b-47f4-839e-01d4a8175b73</pingback:target>
      <dc:creator>Jelle Druyts</dc:creator>
      <wfw:comment>http://jelle.druyts.net/CommentView.aspx?guid=bba8d165-603b-47f4-839e-01d4a8175b73</wfw:comment>
      <wfw:commentRss>http://jelle.druyts.net/SyndicationService.asmx/GetEntryCommentsRss?guid=bba8d165-603b-47f4-839e-01d4a8175b73</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you're getting curious HTTP 404 errors in your ASP.NET 2.0 application, be sure
to check for a zero-length "magic file" called app_offline.htm and delete that. If
this file is present in your web site, then the entire application will be considered
offline by the ASP.NET runtime.
</p>
        <p>
While certainly useful as such to quickly disable an entire site, it's not so great
that the "magic file" can also "magically appear", especially since there's no indication
as to <em>why</em> you're getting the 404, so you can spend quite some time chasing
bugs that aren't there. Fortunately, post-beta 2 builds <em>will</em> be providing
a proper explanation.
</p>
        <p>
The reason it can appear by itself is that it's used to "take the application offline"
when copying a web site. If this operation crashes somewhere in the middle for some
reason, the file doesn't get deleted (while we wait for a <a href="http://pluralsight.com/blogs/jimjohn/archive/2005/04/27/7811.aspx">transactional
filesystem</a> anyway) and bite you in your, errr, isapi filter.
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=bba8d165-603b-47f4-839e-01d4a8175b73" />
      </body>
      <title>When ASP.NET 2.0 throws 404's at you...</title>
      <guid isPermaLink="false">http://jelle.druyts.net/PermaLink.aspx?guid=bba8d165-603b-47f4-839e-01d4a8175b73</guid>
      <link>http://jelle.druyts.net/2005/05/23/WhenASPNET20Throws404sAtYou.aspx</link>
      <pubDate>Mon, 23 May 2005 22:10:53 GMT</pubDate>
      <description>&lt;p&gt;
If you're getting curious HTTP 404 errors in your ASP.NET 2.0 application, be sure
to check for a zero-length "magic file" called app_offline.htm and delete that. If
this file is present in your web site, then the entire application will be considered
offline by the ASP.NET runtime.
&lt;/p&gt;
&lt;p&gt;
While certainly useful as such to quickly disable an entire site, it's not so great
that the "magic file" can also "magically appear", especially since there's no indication
as to &lt;em&gt;why&lt;/em&gt; you're getting the 404, so you can spend quite some time chasing
bugs that aren't there. Fortunately, post-beta 2 builds &lt;em&gt;will&lt;/em&gt; be providing
a proper explanation.
&lt;/p&gt;
&lt;p&gt;
The reason it can appear by itself is that it's used to "take the application offline"
when copying a web site. If this operation crashes somewhere in the middle for some
reason, the file doesn't get deleted (while we wait for a &lt;a href="http://pluralsight.com/blogs/jimjohn/archive/2005/04/27/7811.aspx"&gt;transactional
filesystem&lt;/a&gt; anyway) and bite you in your, errr, isapi filter.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=bba8d165-603b-47f4-839e-01d4a8175b73" /&gt;</description>
      <comments>http://jelle.druyts.net/CommentView.aspx?guid=bba8d165-603b-47f4-839e-01d4a8175b73</comments>
      <category>Blog</category>
      <category>Blog/Programming</category>
      <category>Blog/Programming/.NET</category>
      <category>Blog/Programming/.NET/ASP.NET</category>
      <category>Blog/Programming/.NET/Whidbey</category>
    </item>
    <item>
      <trackback:ping>http://jelle.druyts.net/Trackback.aspx?guid=b79490a4-4aaa-422b-bd1c-85a2278fd174</trackback:ping>
      <pingback:server>http://jelle.druyts.net/pingback.aspx</pingback:server>
      <pingback:target>http://jelle.druyts.net/PermaLink.aspx?guid=b79490a4-4aaa-422b-bd1c-85a2278fd174</pingback:target>
      <dc:creator>Jelle Druyts</dc:creator>
      <wfw:comment>http://jelle.druyts.net/CommentView.aspx?guid=b79490a4-4aaa-422b-bd1c-85a2278fd174</wfw:comment>
      <wfw:commentRss>http://jelle.druyts.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b79490a4-4aaa-422b-bd1c-85a2278fd174</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yesterday, <a href="http://dotnetjunkies.com/WebLog/davidb/">David Boschmans</a> blogged
about <a href="http://dotnetjunkies.com/WebLog/davidb/archive/2005/03/09/59829.aspx">a
problem with .NET Remoting and customErrors</a> we noticed at the customer's site
earlier this week. It basically boils down to the fact that the <code>customErrors</code> tag
in the &lt;system.web&gt; part of the web.config file is being read by the remoting
infrastructure (if you're hosting in IIS anyway) to determine whether or not to flow
remote exceptions to the caller. I find this very bizarre, as does David. <a href="http://www.thinktecture.com/staff/ingo">Ingo
Rammer</a> left a little note in the <a href="http://dotnetjunkies.com/WebLog/davidb/archive/2005/03/09/59829.aspx#FeedBack">comments</a> about
the way <a href="http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx">Indigo</a> will
handle this situation, and I'd simply like to add my opinion to the matter here.
</p>
        <p>
I think some confusion lies in the fact that .NET Remoting was designed to be as transparent
as possible. I think of it this way: exceptions are part of the contract of a class;
.NET Remoting is "only" a means to provide location transparency, so the remoting
stack should <em>always</em> ensure that the exception is transferred to the client.
There shouldn't even <em>be</em> a setting that influences this, as far as I'm concerned.
Especially if that setting lives in the &lt;system.web&gt; section, since I expect
that section to only affect ASP.NET sites. Up until now, that wasn't a section I would
typically associate with the remoting stack.
</p>
        <p>
The same configuration setting does exist in the &lt;system.runtime.remoting&gt; section
as well though, where I can somewhat accept its existance, but certainly not its default
value ("<code>remoteOnly</code>") since that can effectively change the behaviour
if you scale to multiple servers as David states. That means that if you host your
client (e.g. a web app) and server (remoting backend) on the same physical machine,
everything will appear to work correctly since the exceptions are transferred locally.
If you decide to scale out and move your remoting layer to another server, you'll
see an unexpected <code>RemotingException</code> where your own application exception
used to be and your app won't work as it used to do (if you're using structured exception
handling anyway).
</p>
        <p>
Now, concerning Ingo's comment... Indigo is different. I would actually <em>expect</em> Indigo
to have a means to specify the way server-side exception information is exposed, because
Indigo was never <em>meant</em> to be transparent - quite the opposite actually: "Boundaries
Are Explicit", remember. And with Indigo, you don't typically "trust" the client,
whereas with remoting you tend to have a lot more control over the caller so you would
allow more trust about the exceptions being transferred. Anyway, I'm looking forward
to seeing the new Indigo model in action, and how the [FaultContract] will interact
with the various .NET and non-Microsoft clients out there...
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=b79490a4-4aaa-422b-bd1c-85a2278fd174" />
      </body>
      <title>More on .NET Remoting and customErrors</title>
      <guid isPermaLink="false">http://jelle.druyts.net/PermaLink.aspx?guid=b79490a4-4aaa-422b-bd1c-85a2278fd174</guid>
      <link>http://jelle.druyts.net/2005/03/10/MoreOnNETRemotingAndCustomErrors.aspx</link>
      <pubDate>Thu, 10 Mar 2005 20:24:55 GMT</pubDate>
      <description>&lt;p&gt;
Yesterday, &lt;a href="http://dotnetjunkies.com/WebLog/davidb/"&gt;David Boschmans&lt;/a&gt; blogged
about &lt;a href="http://dotnetjunkies.com/WebLog/davidb/archive/2005/03/09/59829.aspx"&gt;a
problem with .NET Remoting and customErrors&lt;/a&gt; we noticed at the customer's site
earlier this week. It basically boils down to the fact that the &lt;code&gt;customErrors&lt;/code&gt; tag
in the &amp;lt;system.web&amp;gt; part of the web.config file is being read by the remoting
infrastructure (if you're hosting in IIS anyway) to determine whether or not to flow
remote exceptions to the caller. I find this very bizarre, as does David. &lt;a href="http://www.thinktecture.com/staff/ingo"&gt;Ingo
Rammer&lt;/a&gt; left a little note in the &lt;a href="http://dotnetjunkies.com/WebLog/davidb/archive/2005/03/09/59829.aspx#FeedBack"&gt;comments&lt;/a&gt; about
the way &lt;a href="http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx"&gt;Indigo&lt;/a&gt; will
handle this situation, and I'd simply like to add my opinion to the matter here.
&lt;/p&gt;
&lt;p&gt;
I think some confusion lies in the fact that .NET Remoting was designed to be as transparent
as possible. I think of it this way: exceptions are part of the contract of a class;
.NET Remoting is "only" a means to provide location transparency, so the remoting
stack should &lt;em&gt;always&lt;/em&gt; ensure that the exception is transferred to the client.
There shouldn't even &lt;em&gt;be&lt;/em&gt; a setting that influences this, as far as I'm concerned.
Especially if that setting lives in the &amp;lt;system.web&amp;gt; section, since I expect
that section to only affect ASP.NET sites. Up until now, that wasn't a section I would
typically associate with the remoting stack.
&lt;/p&gt;
&lt;p&gt;
The same configuration setting does exist in the &amp;lt;system.runtime.remoting&amp;gt; section
as well though, where I can somewhat accept its existance, but certainly not its default
value ("&lt;code&gt;remoteOnly&lt;/code&gt;") since that can effectively change the behaviour
if you scale to multiple servers as David states. That means that if you host your
client (e.g. a web app) and server (remoting backend) on the same physical machine,
everything will appear to work correctly since the exceptions are transferred locally.
If you decide to scale out and move your remoting layer to another server, you'll
see an unexpected &lt;code&gt;RemotingException&lt;/code&gt; where your own application exception
used to be and your app won't work as it used to do (if you're using structured exception
handling anyway).
&lt;/p&gt;
&lt;p&gt;
Now, concerning Ingo's comment... Indigo is different. I would actually &lt;em&gt;expect&lt;/em&gt; Indigo
to have a means to specify the way server-side exception information is exposed, because
Indigo was never &lt;em&gt;meant&lt;/em&gt; to be transparent - quite the opposite actually: "Boundaries
Are Explicit", remember. And with Indigo, you don't typically "trust" the client,
whereas with remoting you tend to have a lot more control over the caller so you would
allow more trust about the exceptions being transferred. Anyway, I'm looking forward
to seeing the new Indigo model in action, and how the [FaultContract] will interact
with the various .NET and non-Microsoft clients out there...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=b79490a4-4aaa-422b-bd1c-85a2278fd174" /&gt;</description>
      <comments>http://jelle.druyts.net/CommentView.aspx?guid=b79490a4-4aaa-422b-bd1c-85a2278fd174</comments>
      <category>Blog</category>
      <category>Blog/Programming</category>
      <category>Blog/Programming/.NET</category>
      <category>Blog/Programming/.NET/ASP.NET</category>
      <category>Blog/Programming/.NET/Quirks</category>
      <category>Blog/Programming/Samples</category>
      <category>Blog/Programming/.NET/Indigo</category>
    </item>
    <item>
      <trackback:ping>http://jelle.druyts.net/Trackback.aspx?guid=d80c5154-85c8-4f52-80b7-222070f7ee92</trackback:ping>
      <pingback:server>http://jelle.druyts.net/pingback.aspx</pingback:server>
      <pingback:target>http://jelle.druyts.net/PermaLink.aspx?guid=d80c5154-85c8-4f52-80b7-222070f7ee92</pingback:target>
      <dc:creator>Jelle Druyts</dc:creator>
      <wfw:comment>http://jelle.druyts.net/CommentView.aspx?guid=d80c5154-85c8-4f52-80b7-222070f7ee92</wfw:comment>
      <wfw:commentRss>http://jelle.druyts.net/SyndicationService.asmx/GetEntryCommentsRss?guid=d80c5154-85c8-4f52-80b7-222070f7ee92</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've just expressed <a href="CommentView.aspx?guid=b75699ca-59d1-4ef0-8c46-3edaec20ee9e">my
love for comments</a> (which generated some <a href="CommentView.aspx?guid=b75699ca-59d1-4ef0-8c46-3edaec20ee9e">interesting
discussion</a> as well) and a while ago <a href="SearchView.aspx?q=&quot;asp.net%202.0&quot;">I've
been quite active in ASP.NET 2.0</a>; so let me take the opportunity to raise a personal
concern of mine when combining the two.
</p>
        <p>
Remember that <a href="http://www.ftponline.com/vsm/2004_04/magazine/columns/aspnet/">one
goal of ASP.NET 2.0 was to reduce the code needed for typical scenarios by 70%</a>.
That's a lot and I don't have any metrics yet, but they've certainly managed to eliminate
a lot of keypresses that I hope I will never need to break my fingers on again. They've
also <a href="PermaLink.aspx?guid=633a2fbe-16d6-4c41-b8d8-10329b86336e">overhauled
the databinding system</a> (just look at the <a href="PermaLink.aspx?guid=e39be099-ac40-49d8-8b64-7b3dc23a6794">ObjectDataSource</a>)
to reduce code and you can even use the Web.config file to <a href="PermaLink.aspx?guid=4714ebdf-1dc6-49d9-9f4b-7f4c21cd9834">declaratively
create a strongly-typed Profile</a>, or <a href="PermaLink.aspx?guid=22608bb8-cc79-4b82-9962-6667ba7638ce">couple
all your pages to a common basepage</a> to include boilerplate code.
</p>
        <p>
So great! With all this, ASPX has definitely become a <a href="http://radio.weblogs.com/0117167/2003/10/28.html#a507">double-JITted
programming language</a> of its own - as <a href="http://radio.weblogs.com/0117167/">Early
&amp; Adopter</a> so beautifully put it during the last PDC.
</p>
        <p>
The only problem I have with it, is that when hiding more and more code behind markup,
where do we document what we're doing? We <em>don't</em>. Do you? Thought so... So
come on, be nice: comment your markup when it gets anywhere near semi-complex.
</p>
        <p>
And don't just write &lt;!-- html comments --&gt; either, but be sure to use the &lt;%-- <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconserver-sidecomments.asp">server-side
comments</a> --%&gt; in ASP.NET, since they don't get sent out to the browser (which
would increase your final page size and possibly even leak information about your
business logic to the browser for everyone to see).
</p>
        <p>
Still, this doesn't <em>do</em> anything to promote itself as metadata (that can be
used by tools) like the <a href="CommentView.aspx?guid=b75699ca-59d1-4ef0-8c46-3edaec20ee9e">well-known
XML comments</a>, so it's still fairly useless apart from serving as in-line documentation.
But then again, if you're writing structured code that needs structured comments,
you should really put it in code anyway, and not in markup.
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=d80c5154-85c8-4f52-80b7-222070f7ee92" />
      </body>
      <title>ASP.NET Comments</title>
      <guid isPermaLink="false">http://jelle.druyts.net/PermaLink.aspx?guid=d80c5154-85c8-4f52-80b7-222070f7ee92</guid>
      <link>http://jelle.druyts.net/2005/01/24/ASPNETComments.aspx</link>
      <pubDate>Mon, 24 Jan 2005 19:04:35 GMT</pubDate>
      <description>&lt;p&gt;
I've just expressed &lt;a href="CommentView.aspx?guid=b75699ca-59d1-4ef0-8c46-3edaec20ee9e"&gt;my
love for comments&lt;/a&gt; (which generated some &lt;a href="CommentView.aspx?guid=b75699ca-59d1-4ef0-8c46-3edaec20ee9e"&gt;interesting
discussion&lt;/a&gt; as well) and a while ago &lt;a href='SearchView.aspx?q="asp.net%202.0"'&gt;I've
been quite active in ASP.NET 2.0&lt;/a&gt;; so let me take the opportunity to raise a personal
concern of mine when combining the two.
&lt;/p&gt;
&lt;p&gt;
Remember that &lt;a href="http://www.ftponline.com/vsm/2004_04/magazine/columns/aspnet/"&gt;one
goal of ASP.NET 2.0 was to reduce the code needed for typical scenarios by 70%&lt;/a&gt;.
That's a lot and I don't have any metrics yet, but they've certainly managed to eliminate
a lot of keypresses that I hope I will never need to break my fingers on again. They've
also &lt;a href="PermaLink.aspx?guid=633a2fbe-16d6-4c41-b8d8-10329b86336e"&gt;overhauled
the databinding system&lt;/a&gt; (just look at the &lt;a href="PermaLink.aspx?guid=e39be099-ac40-49d8-8b64-7b3dc23a6794"&gt;ObjectDataSource&lt;/a&gt;)
to reduce code and you can even use the Web.config file to &lt;a href="PermaLink.aspx?guid=4714ebdf-1dc6-49d9-9f4b-7f4c21cd9834"&gt;declaratively
create a strongly-typed Profile&lt;/a&gt;, or &lt;a href="PermaLink.aspx?guid=22608bb8-cc79-4b82-9962-6667ba7638ce"&gt;couple
all your pages to a common basepage&lt;/a&gt; to include boilerplate code.
&lt;/p&gt;
&lt;p&gt;
So great! With all this, ASPX has definitely become a &lt;a href="http://radio.weblogs.com/0117167/2003/10/28.html#a507"&gt;double-JITted
programming language&lt;/a&gt; of its own - as &lt;a href="http://radio.weblogs.com/0117167/"&gt;Early
&amp;amp; Adopter&lt;/a&gt; so beautifully put it during the last PDC.
&lt;/p&gt;
&lt;p&gt;
The only problem I have with it, is that when hiding more and more code behind markup,
where do we document what we're doing? We &lt;em&gt;don't&lt;/em&gt;. Do you? Thought so... So
come on, be nice: comment your markup when it gets anywhere near semi-complex.
&lt;/p&gt;
&lt;p&gt;
And don't just write &amp;lt;!-- html comments --&amp;gt; either, but be sure to use the &amp;lt;%-- &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconserver-sidecomments.asp"&gt;server-side
comments&lt;/a&gt; --%&amp;gt; in ASP.NET, since they don't get sent out to the browser (which
would increase your final page size and possibly even leak information about your
business logic to the browser for everyone to see).
&lt;/p&gt;
&lt;p&gt;
Still, this doesn't &lt;em&gt;do&lt;/em&gt; anything to promote itself as metadata (that can be
used by tools) like the &lt;a href="CommentView.aspx?guid=b75699ca-59d1-4ef0-8c46-3edaec20ee9e"&gt;well-known
XML comments&lt;/a&gt;, so it's still fairly useless apart from serving as in-line documentation.
But then again, if you're writing structured code that needs structured comments,
you should really put it in code anyway, and not in markup.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=d80c5154-85c8-4f52-80b7-222070f7ee92" /&gt;</description>
      <comments>http://jelle.druyts.net/CommentView.aspx?guid=d80c5154-85c8-4f52-80b7-222070f7ee92</comments>
      <category>Blog</category>
      <category>Blog/Programming</category>
      <category>Blog/Programming/.NET</category>
      <category>Blog/Programming/.NET/ASP.NET</category>
      <category>Blog/Programming/.NET/Whidbey</category>
    </item>
    <item>
      <trackback:ping>http://jelle.druyts.net/Trackback.aspx?guid=6f1029ca-b696-4a2d-80e1-17d048cad09e</trackback:ping>
      <pingback:server>http://jelle.druyts.net/pingback.aspx</pingback:server>
      <pingback:target>http://jelle.druyts.net/PermaLink.aspx?guid=6f1029ca-b696-4a2d-80e1-17d048cad09e</pingback:target>
      <dc:creator>Jelle Druyts</dc:creator>
      <wfw:comment>http://jelle.druyts.net/CommentView.aspx?guid=6f1029ca-b696-4a2d-80e1-17d048cad09e</wfw:comment>
      <wfw:commentRss>http://jelle.druyts.net/SyndicationService.asmx/GetEntryCommentsRss?guid=6f1029ca-b696-4a2d-80e1-17d048cad09e</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I couldn't wait to upgrade to the <a href="http://sourceforge.net/project/showfiles.php?group_id=127624&amp;package_id=139759&amp;release_id=297505">new
1.7 version</a> of <a href="http://sourceforge.net/projects/dasblogce/">dasBlog Community
Edition</a> (as it's called nowadays) because of all the <a href="http://wiki.shahine.com/default.aspx/DasBlog.VersionHistory">great
new features</a>: far better performance, anti-spam measures, drafts (finally!), and
lots more. Three cheers to <a href="http://www.shahine.com/omar/">Omar Shahine</a>, <a href="http://www.computerzen.com/">Scott
Hanselman</a>, and everybody else who dedicated some precious time to it!
</p>
        <p>
          <strike>Unfortunately, there seems to be a small bug in the drafts functionality,
since posts that aren't marked as Public (i.e. drafts) still show up in the RSS feed.
Whoops ;-) I'll be keeping an eye on </strike>
          <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1107787&amp;group_id=127624&amp;atid=709018">
            <strike>the
bug I submitted to the SourceForge tracker</strike>
          </a>
          <strike> because I really want
to start using drafts...</strike>
          <strong> Update:</strong> My eyes must be deceiving
me, the draft version of this post worked perfectly without showing up in the RSS
feed... It did fail on my test machine though... Anyway, I'm sure it was my fault
then.
</p>
        <p>
If you're planning on upgrading too, you'll notice that you have to run an upgrade
tool against your contents directory. The fix for the "Comments may disappear when
moving content across GMT timezone boundary" bug I <a href="PermaLink.aspx?guid=af3d799b-66de-418f-bfe1-0c24cb37fa86">briefly
mentioned before</a> and submitted to <a href="http://www.shahine.com/omar/">Omar
Shahine</a> may have something to do with that since I believe that triggered the
filename changes, sorry about that ;-)
</p>
        <p>
Still, I had a little problem upgrading my content, and I believe it's related to
that bug. I pulled the content from my server (which is on time zone GMT-7) to my
machine (GMT+2) and ran the upgrade tool. Everything seemed fine on my test machine,
but I noticed that the comments on some (what appeared to be) random posts had disappeared.
I dug a little deeper and noticed these posts were submitted quite early in the night
so I suspected a time zone issue again. I <a href="http://www.aisto.com/roeder/dotnet/">reflectored</a> (uhm,
yes, that's a word) the upgrader exe to see what it was doing and I noticed it was
using the local time zone for some date-time calculations. So on a hunch I switched
my local timezone to the one of my server and everything worked just fine. Whew :-)
</p>
        <p>
So here's a word of advice: <strong>if you upgrade your content directory, be sure
to temporarily set your local machine to the same time zone as the server the blog
will be running on</strong>!
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=6f1029ca-b696-4a2d-80e1-17d048cad09e" />
      </body>
      <title>Upgraded to dasBlog 1.7!</title>
      <guid isPermaLink="false">http://jelle.druyts.net/PermaLink.aspx?guid=6f1029ca-b696-4a2d-80e1-17d048cad09e</guid>
      <link>http://jelle.druyts.net/2005/01/23/UpgradedToDasBlog17.aspx</link>
      <pubDate>Sun, 23 Jan 2005 15:25:38 GMT</pubDate>
      <description>&lt;p&gt;
I couldn't wait to upgrade to the &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=127624&amp;amp;package_id=139759&amp;amp;release_id=297505"&gt;new
1.7 version&lt;/a&gt; of &lt;a href="http://sourceforge.net/projects/dasblogce/"&gt;dasBlog Community
Edition&lt;/a&gt; (as it's called nowadays) because of all the &lt;a href="http://wiki.shahine.com/default.aspx/DasBlog.VersionHistory"&gt;great
new features&lt;/a&gt;: far better performance, anti-spam measures, drafts (finally!), and
lots more. Three cheers to &lt;a href="http://www.shahine.com/omar/"&gt;Omar Shahine&lt;/a&gt;, &lt;a href="http://www.computerzen.com/"&gt;Scott
Hanselman&lt;/a&gt;, and everybody else who dedicated some precious time to it!
&lt;/p&gt;
&lt;p&gt;
&lt;strike&gt;Unfortunately, there seems to be a small bug in the drafts functionality,
since posts that aren't marked as Public (i.e. drafts) still show up in the RSS feed.
Whoops ;-) I'll be keeping an eye on &lt;/strike&gt;&lt;a href="http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1107787&amp;amp;group_id=127624&amp;amp;atid=709018"&gt;&lt;strike&gt;the
bug I submitted to the SourceForge tracker&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt; because I really want
to start using drafts...&lt;/strike&gt;&lt;strong&gt; Update:&lt;/strong&gt; My eyes must be deceiving
me, the draft version of this post worked perfectly without showing up in the RSS
feed... It did fail on my test machine though... Anyway, I'm sure it was my fault
then.
&lt;/p&gt;
&lt;p&gt;
If you're planning on upgrading too, you'll notice that you have to run an upgrade
tool against your contents directory. The fix for the "Comments may disappear when
moving content across GMT timezone boundary" bug I &lt;a href="PermaLink.aspx?guid=af3d799b-66de-418f-bfe1-0c24cb37fa86"&gt;briefly
mentioned before&lt;/a&gt; and submitted to &lt;a href="http://www.shahine.com/omar/"&gt;Omar
Shahine&lt;/a&gt; may have something to do with that since I believe that triggered the
filename changes, sorry about that ;-)
&lt;/p&gt;
&lt;p&gt;
Still, I had a little problem upgrading my content, and I believe it's related to
that bug. I pulled the content from my server (which is on time zone GMT-7) to my
machine (GMT+2) and ran the upgrade tool. Everything seemed fine on my test machine,
but I noticed that the comments on some (what appeared to be) random posts had disappeared.
I dug a little deeper and noticed these posts were submitted quite early in the night
so I suspected a time zone issue again. I &lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;reflectored&lt;/a&gt; (uhm,
yes, that's a word) the upgrader exe to see what it was doing and I noticed it was
using the local time zone for some date-time calculations. So on a hunch I switched
my local timezone to the one of my server and everything worked just fine. Whew :-)
&lt;/p&gt;
&lt;p&gt;
So here's a word of advice: &lt;strong&gt;if you upgrade your content directory, be sure
to temporarily set your local machine to the same time zone as the server the blog
will be running on&lt;/strong&gt;!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=6f1029ca-b696-4a2d-80e1-17d048cad09e" /&gt;</description>
      <comments>http://jelle.druyts.net/CommentView.aspx?guid=6f1029ca-b696-4a2d-80e1-17d048cad09e</comments>
      <category>Blog</category>
      <category>Blog/General</category>
      <category>Blog/Programming</category>
      <category>Blog/Programming/.NET</category>
      <category>Blog/Programming/.NET/ASP.NET</category>
    </item>
  </channel>
</rss>