<?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>Michiel van Otegem, IT Composer - ASP.NET</title>
    <link>http://michiel.vanotegem.nl/</link>
    <description />
    <language>en-us</language>
    <copyright>Michiel van Otegem</copyright>
    <lastBuildDate>Mon, 05 Jul 2010 10:25:18 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.1.8102.813</generator>
    <managingEditor>michiel@aspnl.com</managingEditor>
    <webMaster>michiel@aspnl.com</webMaster>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=c88e5ffd-0600-4bff-8c83-44b41265b345</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,c88e5ffd-0600-4bff-8c83-44b41265b345.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,c88e5ffd-0600-4bff-8c83-44b41265b345.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=c88e5ffd-0600-4bff-8c83-44b41265b345</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A recurring theme in web programming is calling a function periodically and/or at
a specific date and time. This has two aspects:
</p>
        <ul>
          <li>
Calling a function on a scheduled basis 
</li>
          <li>
Making sure time-outs don't interfere</li>
        </ul>
        <p>
          <strong>Calling a function on a scheduled basis</strong>
          <br />
To be able to call a function on your web app, you first need an endpoint (a URL)
that you can call to kick the function off. In ASP.NET you can do this in several
ways:
</p>
        <ol>
          <li>
Create a page that calls the function. 
</li>
          <li>
Create a handler (ASHX) that calls the function (more efficient than a page). 
</li>
          <li>
Create a WCF service that allows calls with HTTP GET, as discussed in <a href="http://sasibhushan.com/Blog/post/WCF-Using-HTTP-GET.aspx">this
blog post by Sasi Suryadevara</a>.</li>
        </ol>
        <p>
With your endpoint in place, you can use the Windows Task Scheduler to invoke
the function at any given time and at intervals as low as one minute. With the Windows
Task Scheduler you have several options again:
</p>
        <p>
Create a VB Script that calls the URL, as discussed in <a href="http://weblogs.asp.net/steveschofield/archive/2006/09/28/Schedule-a-task-to-call-a-webpage-using-Task-scheduler_2E00_.aspx">this
blog post by Steve Schofield</a>.
</p>
        <p>
Create a PowerShell script that calls the URL (same as option 1, but more modern).
</p>
        <p>
Have the Windows Task Scheduler open Internet Explorer and open the specified URL
(e.g. <font face="Courier New">C:\PROGRA~1\INTERN~1\iexplore.exe  -extoff http://www.google.com</font>,
which starts IE without extensions). If you do this, you also need to specify that
the Task Scheduler closes IE after 1 minute, which you can do in the Settings tab
of the task (Windows 2003), or in the Trigger configuration (Windows 2008), as
shown below.
</p>
        <p>
          <img border="0" src="http://michiel.vanotegem.nl/content/binary/task1minute.png" />
          <br />
          <em>Task Settings in Windows 2003</em>
        </p>
        <p>
          <img border="0" src="http://michiel.vanotegem.nl/content/binary/trigger.png" />
          <br />
          <em>Trigger configuration in Windows 2008</em>
        </p>
        <p>
Note: In Windows 2008 the dropdowns governing duration and interval show 30 minutes
as lowest value. You can in fact change this to 1 minute by editing the text.
</p>
        <p>
          <strong>Making sure time-outs don't interfere</strong>
          <br />
A web based call is bound to time-out after a few minutes. If you task takes longer
than that, this may abort the call depending on how you programmed it, and what webserver
settings are used with regards to disconnected clients. To ensure a time-out does
not interfere, you can spawn a new thread and have it call the function. That way
the thread handling the request can return a response to the client, and the function
is carried out regardless. One issue that may arise there is that the function itself
hangs or takes too long. You may want to add logic to ensure that it's aborted after
a certain time, and add logging to notify you of this, and possibly also ensure that
the function can only be run by one caller at a time.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=c88e5ffd-0600-4bff-8c83-44b41265b345" />
      </body>
      <title>Periodically calling a function in your web app</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,c88e5ffd-0600-4bff-8c83-44b41265b345.aspx</guid>
      <link>http://michiel.vanotegem.nl/2010/07/05/PeriodicallyCallingAFunctionInYourWebApp.aspx</link>
      <pubDate>Mon, 05 Jul 2010 10:25:18 GMT</pubDate>
      <description>&lt;p&gt;
A recurring theme in web programming is calling a function periodically and/or at
a specific date and time. This has two aspects:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Calling a function on a scheduled basis 
&lt;li&gt;
Making sure time-outs don't interfere&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Calling a function on a scheduled basis&lt;/strong&gt;
&lt;br&gt;
To be able to call a function on your web app, you first need an endpoint (a URL)
that you can call to kick the function off. In ASP.NET you can do this in several
ways:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Create a page that calls the function. 
&lt;li&gt;
Create a handler (ASHX) that calls the function (more efficient than a page). 
&lt;li&gt;
Create a WCF service that allows calls with HTTP GET, as discussed in &lt;a href="http://sasibhushan.com/Blog/post/WCF-Using-HTTP-GET.aspx"&gt;this
blog post by Sasi Suryadevara&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
With your endpoint in&amp;nbsp;place, you can use the Windows Task Scheduler to invoke
the function at any given time and at intervals as low as one minute. With the Windows
Task Scheduler you have several options again:
&lt;/p&gt;
&lt;p&gt;
Create a VB Script that calls the URL, as discussed in &lt;a href="http://weblogs.asp.net/steveschofield/archive/2006/09/28/Schedule-a-task-to-call-a-webpage-using-Task-scheduler_2E00_.aspx"&gt;this
blog post by Steve Schofield&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Create a PowerShell script that calls the URL (same as option 1, but more modern).
&lt;/p&gt;
&lt;p&gt;
Have the Windows Task Scheduler open Internet Explorer and open the specified URL
(e.g. &lt;font face="Courier New"&gt;C:\PROGRA~1\INTERN~1\iexplore.exe&amp;nbsp; -extoff http://www.google.com&lt;/font&gt;,
which starts IE without extensions). If you do this, you also need to specify that
the Task Scheduler closes IE after 1 minute, which you can do in the Settings tab
of the task (Windows 2003), or in the Trigger configuration&amp;nbsp;(Windows 2008), as
shown below.
&lt;/p&gt;
&lt;p&gt;
&lt;img border=0 src="http://michiel.vanotegem.nl/content/binary/task1minute.png"&gt;
&lt;br&gt;
&lt;em&gt;Task Settings in Windows 2003&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img border=0 src="http://michiel.vanotegem.nl/content/binary/trigger.png"&gt;
&lt;br&gt;
&lt;em&gt;Trigger configuration in Windows 2008&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Note: In Windows 2008 the dropdowns governing duration and interval show 30 minutes
as lowest value. You can in fact change this to 1 minute by editing the text.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Making sure time-outs don't interfere&lt;/strong&gt;
&lt;br&gt;
A web based call is bound to time-out after a few minutes. If you task takes longer
than that, this may abort the call depending on how you programmed it, and what webserver
settings are used with regards to disconnected clients. To ensure a time-out does
not interfere, you can spawn a new thread and have it call the function. That way
the thread handling the request can return a response to the client, and the function
is carried out regardless. One issue that may arise there is that the function itself
hangs or takes too long. You may want to add logic to ensure that it's aborted after
a certain time, and add logging to notify you of this, and possibly also ensure that
the function can only be&amp;nbsp;run&amp;nbsp;by one caller&amp;nbsp;at a time.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=c88e5ffd-0600-4bff-8c83-44b41265b345" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,c88e5ffd-0600-4bff-8c83-44b41265b345.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET</category>
      <category>Development</category>
      <category>English</category>
      <category>Services</category>
      <category>Windows</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=9a66392a-057f-4378-93d5-de1580e41bcd</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,9a66392a-057f-4378-93d5-de1580e41bcd.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,9a66392a-057f-4378-93d5-de1580e41bcd.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=9a66392a-057f-4378-93d5-de1580e41bcd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Sometimes we come across integration scenario's that look straighforward, but where
the devil is in the details. We needed to integrate our asp.net/silverlight application
in an existing ASP "classic" site (yes, the still exist). The catch was that we needed
to call the ASP "classic" site in a server to server call to get some information,
but we needed to do this under the context of the current user. You may be wondering
why we didn't go through a shared database or someting, but the problem is that there
is little knowledge left of the old app, so changing the existing app was a no go.
</p>
        <p>
So, in order to impersonate the user, you need your server-sided request look like
that user. This means forwarding the cookies the user sends, and sending back the
cookies the server sends to the user. Below is code that demonstrates that.
</p>
        <pre>
          <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: black; FONT-SIZE: 11px">HttpWebRequest
webRequestToServer <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px">=</span> (HttpWebRequest)HttpWebRequest.Create(<span style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px">"http://somedomain/somepage.asp"</span>);
webRequestToServer.CookieContainer <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px">=</span><span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px">new</span> CookieContainer(); <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px">foreach</span> (String
cookieKey <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px">in</span> Request.Cookies)
{ HttpCookie cookie <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px">=</span> Request.Cookies[cookieKey];
Cookie serverCookie <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px">=</span><span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px">new</span> Cookie(cookie.Name,
cookie.Value, <span style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px">"/"</span>, <span style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px">"somedomain"</span>);
webRequestToServer.CookieContainer.Add(serverCookie); } HttpWebResponse webResponseFromServer <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px">=</span> (HttpWebResponse)webRequestToServer.GetResponse(); <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px">foreach</span> (Cookie
serverCookie <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px">in</span> webResponseFromServer.Cookies)
{ HttpCookie clientCookie <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px">=</span> Response.Cookies[serverCookie.Name]; <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px">if</span> (clientCookie
== <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px">null</span>)
{ clientCookie <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px">=</span><span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px">new</span> HttpCookie(serverCookie.Name);
} clientCookie.Value <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px">=</span> serverCookie.Value;
clientCookie.Expires <span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px">=</span> serverCookie.Expires;
Response.Cookies.Add(clientCookie); } webResponseFromServer.Close();</span>
        </pre>
        <p>
This code works fine in a test environment, but there is a catch... in some cases
the domain of the server is not set in the cookie you get on the server side. The
problem with that is that when you set the domain, it doesn't correspond to what the
server expects. You can see this if you write out the cookies you send/receive (both
on the browser connection and te server-server connection) to a log or something (including
the domain. It took a while to figure out, but replacing "somedomain" with <font face="Courier New">Request.ServerVariables["LOCAL_ADDR"]</font> did
the trick. 
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=9a66392a-057f-4378-93d5-de1580e41bcd" />
      </body>
      <title>Forwarding cookies</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,9a66392a-057f-4378-93d5-de1580e41bcd.aspx</guid>
      <link>http://michiel.vanotegem.nl/2010/06/04/ForwardingCookies.aspx</link>
      <pubDate>Fri, 04 Jun 2010 20:23:31 GMT</pubDate>
      <description>&lt;p&gt;
Sometimes we come across integration scenario's that look straighforward, but where
the devil is in the details. We needed to integrate our asp.net/silverlight application
in an existing ASP "classic" site (yes, the still exist). The catch was that we needed
to call the ASP "classic" site in a server to server call to get some information,
but we needed to do this under the context of the current user. You may be wondering
why we didn't go through a shared database or someting, but the problem is that there
is little knowledge left of the old app, so changing the existing app was a no go.
&lt;/p&gt;
&lt;p&gt;
So, in order to impersonate the user, you need your server-sided request look like
that user. This means forwarding the cookies the user sends, and sending back the
cookies the server sends to the user. Below is code that demonstrates that.
&lt;/p&gt;
&lt;pre&gt;&lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: black; FONT-SIZE: 11px"&gt;HttpWebRequest
webRequestToServer &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/span&gt; (HttpWebRequest)HttpWebRequest.Create(&lt;span style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"http://somedomain/somepage.asp"&lt;/span&gt;);
webRequestToServer.CookieContainer &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/span&gt; &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;new&lt;/span&gt; CookieContainer(); &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;foreach&lt;/span&gt; (String
cookieKey &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;in&lt;/span&gt; Request.Cookies)
{ HttpCookie cookie &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/span&gt; Request.Cookies[cookieKey];
Cookie serverCookie &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/span&gt; &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;new&lt;/span&gt; Cookie(cookie.Name,
cookie.Value, &lt;span style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"/"&lt;/span&gt;, &lt;span style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"somedomain"&lt;/span&gt;);
webRequestToServer.CookieContainer.Add(serverCookie); } HttpWebResponse webResponseFromServer &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/span&gt; (HttpWebResponse)webRequestToServer.GetResponse(); &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;foreach&lt;/span&gt; (Cookie
serverCookie &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;in&lt;/span&gt; webResponseFromServer.Cookies)
{ HttpCookie clientCookie &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/span&gt; Response.Cookies[serverCookie.Name]; &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;if&lt;/span&gt; (clientCookie
== &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;null&lt;/span&gt;)
{ clientCookie &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/span&gt; &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;new&lt;/span&gt; HttpCookie(serverCookie.Name);
} clientCookie.Value &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/span&gt; serverCookie.Value;
clientCookie.Expires &lt;span style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/span&gt; serverCookie.Expires;
Response.Cookies.Add(clientCookie); } webResponseFromServer.Close();&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
This code works fine in a test environment, but there is a catch... in some cases
the domain of the server is not set in the cookie you get on the server side. The
problem with that is that when you set the domain, it doesn't correspond to what the
server expects. You can see this if you write out the cookies you send/receive (both
on the browser connection and te server-server connection) to a log or something (including
the domain. It took a while to figure out, but replacing "somedomain" with &lt;font face="Courier New"&gt;Request.ServerVariables["LOCAL_ADDR"]&lt;/font&gt; did
the trick. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=9a66392a-057f-4378-93d5-de1580e41bcd" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,9a66392a-057f-4378-93d5-de1580e41bcd.aspx</comments>
      <category>ASP.NET</category>
      <category>Development</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=cbe11e95-41b7-43f1-9939-f0fe3a814499</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,cbe11e95-41b7-43f1-9939-f0fe3a814499.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,cbe11e95-41b7-43f1-9939-f0fe3a814499.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=cbe11e95-41b7-43f1-9939-f0fe3a814499</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Two months ago I spoke at WDI 2010 in Warsaw, Poland on ASP.NET Web Forms vs. ASP.NET
MVC. I should have posted the slides for that session soon after, but just didn't
get around to it because of all the work thrown at me. Here they are... finally. <a href="http://michiel.vanotegem.nl/content/binary/WebForms%20vs%20MVC.pdf">Slides
(668.34 KB)</a></p>
        <p>
Thanks to the great folks organizing the conference. They took great care of me and
managed to get a good crowd together. Even though it was a pretty large audience,
the level of interaction was very good.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=cbe11e95-41b7-43f1-9939-f0fe3a814499" />
      </body>
      <title>WDI 2010 slides: ASP.NET WebForms vs. ASP.NET MVC</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,cbe11e95-41b7-43f1-9939-f0fe3a814499.aspx</guid>
      <link>http://michiel.vanotegem.nl/2010/05/28/WDI2010SlidesASPNETWebFormsVsASPNETMVC.aspx</link>
      <pubDate>Fri, 28 May 2010 13:36:20 GMT</pubDate>
      <description>&lt;p&gt;
Two months ago I spoke at WDI 2010 in Warsaw, Poland on ASP.NET Web Forms vs. ASP.NET
MVC. I should have posted the slides for that session soon after, but just didn't
get around to it because of all the work thrown at me. Here they are... finally. &lt;a href="http://michiel.vanotegem.nl/content/binary/WebForms%20vs%20MVC.pdf"&gt;Slides
(668.34 KB)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Thanks to the great folks organizing the conference. They took great care of me and
managed to get a good crowd together. Even though it was a pretty large audience,
the level of interaction was very good.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=cbe11e95-41b7-43f1-9939-f0fe3a814499" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,cbe11e95-41b7-43f1-9939-f0fe3a814499.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
      <category>Events</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=f76ca339-3d39-4e04-8925-a6743c2a4935</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,f76ca339-3d39-4e04-8925-a6743c2a4935.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,f76ca339-3d39-4e04-8925-a6743c2a4935.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=f76ca339-3d39-4e04-8925-a6743c2a4935</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Soms verandert de realiteit zo snel dat iets wat in een magazine bij mensen op de
deurmat valt alweer verkeerde informatie staat (tja, dat heb je als op de PDC weer
van alles aangekondigd wordt). In mijn artikel voor SDN Magazine 103 - <em>ASP.NET
onder de motorkap: ASP.NET op bezoek bij de browser</em> staat een link naar de ASP.NET
AJAX Library die inmiddels al verouderd is en een foutmelding oplevert. Je kunt nu
naar <a href="http://ajax.codeplex.com/">http://ajax.codeplex.com/</a>. Met dank aan
Leo Broos die me liet weten dat de oude link niet meer werkt.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=f76ca339-3d39-4e04-8925-a6743c2a4935" />
      </body>
      <title>Link in SDN artikel gewijzigd</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,f76ca339-3d39-4e04-8925-a6743c2a4935.aspx</guid>
      <link>http://michiel.vanotegem.nl/2009/11/24/LinkInSDNArtikelGewijzigd.aspx</link>
      <pubDate>Tue, 24 Nov 2009 11:48:37 GMT</pubDate>
      <description>&lt;p&gt;
Soms verandert de realiteit zo snel dat iets wat in een magazine bij mensen op de
deurmat valt alweer verkeerde informatie staat (tja, dat heb je als op de PDC weer
van alles aangekondigd wordt). In mijn artikel voor SDN Magazine 103 - &lt;em&gt;ASP.NET
onder de motorkap: ASP.NET op bezoek bij de browser&lt;/em&gt; staat een link naar de ASP.NET
AJAX Library die inmiddels al verouderd is en een foutmelding oplevert. Je kunt nu
naar &lt;a href="http://ajax.codeplex.com/"&gt;http://ajax.codeplex.com/&lt;/a&gt;. Met dank aan
Leo Broos die me liet weten dat de oude link niet meer werkt.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=f76ca339-3d39-4e04-8925-a6743c2a4935" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,f76ca339-3d39-4e04-8925-a6743c2a4935.aspx</comments>
      <category>ASP.NET</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=52a693f7-863d-41fa-a91a-f8b8cfa82d4a</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,52a693f7-863d-41fa-a91a-f8b8cfa82d4a.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,52a693f7-863d-41fa-a91a-f8b8cfa82d4a.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=52a693f7-863d-41fa-a91a-f8b8cfa82d4a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
My company regularly works on public facing websites, and as such it is imperative
we test the sites we create with most common browsers. Naturally that means at least
Internet Explorer, FireFox, Safari, and Opera. With the last three we just download
and install om some test (virtual) machine. With IE however this is somewhat more
complicated (although not impossible to run different versions of IE side by side.
However, Microsoft provides a set of Virtual PC images known as the <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef">Internet
Explorer Application Compatibility VPC Image</a>. These images enable you
to test different versions of IE on different versions of Windows. These images have
a limited lifetime (between 1-4 months), so you'll have to download a new set
on a regular basis, but other than that this is really handy. The following configurations
are available:
</p>
        <ul>
          <li>
Windows XP SP3 with IE6</li>
          <li>
Windows XP SP3 with IE7</li>
          <li>
Windows XP SP3 with IE8</li>
          <li>
Windows Vista with IE7</li>
          <li>
Windows Vista with IE8</li>
        </ul>
        <p>
Unfortunately these configurations are all en-US, so if you want to test with say
a Dutch version of Windows, you'll have to create your own images (which is what my
company has done, even for en-US).
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=52a693f7-863d-41fa-a91a-f8b8cfa82d4a" />
      </body>
      <title>Testing with different versions of IE</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,52a693f7-863d-41fa-a91a-f8b8cfa82d4a.aspx</guid>
      <link>http://michiel.vanotegem.nl/2009/11/11/TestingWithDifferentVersionsOfIE.aspx</link>
      <pubDate>Wed, 11 Nov 2009 00:20:59 GMT</pubDate>
      <description>&lt;p&gt;
My company regularly works on public facing websites, and as such it is imperative
we test the sites we create with most common browsers. Naturally that means at least
Internet Explorer, FireFox, Safari, and Opera. With the last three we just download
and install om some test (virtual) machine. With IE however this is somewhat more
complicated (although not impossible to run different versions of IE side by side.
However, Microsoft provides a set of Virtual PC images&amp;nbsp;known as the &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef"&gt;Internet
Explorer Application Compatibility VPC Image&lt;/a&gt;.&amp;nbsp;These images&amp;nbsp;enable you
to test different versions of IE on different versions of Windows. These images have
a limited lifetime (between&amp;nbsp;1-4 months), so you'll have to download a new set
on a regular basis, but other than that this is really handy. The following configurations
are available:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Windows XP SP3 with IE6&lt;/li&gt;
&lt;li&gt;
Windows XP SP3 with IE7&lt;/li&gt;
&lt;li&gt;
Windows XP SP3 with IE8&lt;/li&gt;
&lt;li&gt;
Windows Vista with IE7&lt;/li&gt;
&lt;li&gt;
Windows Vista with IE8&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Unfortunately these configurations are all en-US, so if you want to test with say
a Dutch version of Windows, you'll have to create your own images (which is what my
company has done, even for en-US).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=52a693f7-863d-41fa-a91a-f8b8cfa82d4a" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,52a693f7-863d-41fa-a91a-f8b8cfa82d4a.aspx</comments>
      <category>ASP.NET</category>
      <category>Development</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=443aa85b-f4ee-4cfb-9550-70a39b347977</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,443aa85b-f4ee-4cfb-9550-70a39b347977.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,443aa85b-f4ee-4cfb-9550-70a39b347977.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=443aa85b-f4ee-4cfb-9550-70a39b347977</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today <a href="http://orchard.codeplex.com/">http://orchard.codeplex.com/</a> went
live. Orchard is an open source Content Management System that the folks from Redmond
are working on together with the ASP.NET community, and which I've been following
with much interest. Orchard is based on ASP.NET MVC, which means I'd favor it over
something like Umbraco when it is mature enough. Why? Because this should mean that
it blends easier with your regular development efforts, rather than having to deal
with an entirely different templating technology. Umbraco for instance uses XSLT,
and even though I wrote<a href="http://www.amazon.com/exec/obidos/ASIN/0672323184/aspnlcom-20"> a
book a about XSLT</a> and my company is well versed in XSLT because we do a lot of
BizTalk, it is troublesome for plain ASP.NET developers.
</p>
        <p>
Keep in mind that Orchard is relatively new and a lot of scenario's are still not
supported. But at the pace the team is going, you'll soon see more advanced stuff
being possible. You can make yourself heard about what you'd like to see through CodePlex
or through one of the sessions at TechEd or PDC this month.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=443aa85b-f4ee-4cfb-9550-70a39b347977" />
      </body>
      <title>New ASP.NET Open Source CMS in the making</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,443aa85b-f4ee-4cfb-9550-70a39b347977.aspx</guid>
      <link>http://michiel.vanotegem.nl/2009/11/10/NewASPNETOpenSourceCMSInTheMaking.aspx</link>
      <pubDate>Tue, 10 Nov 2009 22:37:34 GMT</pubDate>
      <description>&lt;p&gt;
Today &lt;a href="http://orchard.codeplex.com/"&gt;http://orchard.codeplex.com/&lt;/a&gt;&amp;nbsp;went
live. Orchard is an open source Content Management System that the folks from Redmond
are working on together with the ASP.NET community, and which I've been following
with much interest. Orchard is based on ASP.NET MVC, which means I'd favor it over
something like Umbraco when it is mature enough. Why? Because this should mean that
it blends easier with your regular development efforts, rather than having to deal
with an entirely different templating technology. Umbraco for instance uses XSLT,
and even though I wrote&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0672323184/aspnlcom-20"&gt; a
book a about XSLT&lt;/a&gt; and my company is well versed in XSLT because we do a lot of
BizTalk, it is troublesome for plain ASP.NET developers.
&lt;/p&gt;
&lt;p&gt;
Keep in mind that Orchard is relatively new and a lot of scenario's are still not
supported. But at the pace the team is going, you'll soon see more advanced stuff
being possible. You can make yourself heard about what you'd like to see through CodePlex
or through one of the sessions at TechEd or PDC this month.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=443aa85b-f4ee-4cfb-9550-70a39b347977" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,443aa85b-f4ee-4cfb-9550-70a39b347977.aspx</comments>
      <category>ASP.NET</category>
      <category>Development</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=f75ad0b9-3734-4119-a167-2e8cf8e66ad9</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,f75ad0b9-3734-4119-a167-2e8cf8e66ad9.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,f75ad0b9-3734-4119-a167-2e8cf8e66ad9.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=f75ad0b9-3734-4119-a167-2e8cf8e66ad9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We have an ASP.NET application that we normally run under Forms Authentication using
the ASP.NET Membership API. For a particular client we changed this to using Windows
Authentication instead. On the production environment, we were running into the following
exception:
</p>
        <p>
          <em>
            <font color="#ff0000">A network-related or instance-specific error occurred while
establishing a connection to SQL Server. The server was not found or was not accessible.
Verify that the instance name is correct and that SQL Server is configured to allow
remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating
Server/Instance Specified)</font>
          </em>
        </p>
        <p>
We checked all the connection strings the app uses... all good. Finally, we figured
out what was wrong. We had removed the Membership section from web.config so it was
going back to the default in machine.config. That setting uses the LocalSqlServer
connection string, which we don't use. However, in the default machine.config, this
points to the App_Data folder using SQL Server Express. In most environments, this
wouldn't be an issue immediately, because SQL Server Express would just create the 
aspnet database and use that. However, in a hardened environment SQL Server Express
is either not there (our case) or has no rights to create the App_Data folder and/or
place create a new database. ASP.NET doesn't know this... it just can't access the
SQL Server instance it is looking for, hence the above exception.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=f75ad0b9-3734-4119-a167-2e8cf8e66ad9" />
      </body>
      <title>SQL Server error with ASP.NET Membership pointing to the local server</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,f75ad0b9-3734-4119-a167-2e8cf8e66ad9.aspx</guid>
      <link>http://michiel.vanotegem.nl/2009/04/12/SQLServerErrorWithASPNETMembershipPointingToTheLocalServer.aspx</link>
      <pubDate>Sun, 12 Apr 2009 15:09:23 GMT</pubDate>
      <description>&lt;p&gt;
We have an ASP.NET application that we normally run under Forms Authentication using
the ASP.NET Membership API. For a particular client we changed this to using Windows
Authentication instead. On the production environment, we were running into the following
exception:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#ff0000&gt;A network-related or instance-specific error occurred while
establishing a connection to SQL Server. The server was not found or was not accessible.
Verify that the instance name is correct and that SQL Server is configured to allow
remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating
Server/Instance Specified)&lt;/font&gt;&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
We checked all the connection strings the app uses... all good. Finally, we figured
out what was wrong. We had removed the Membership section from web.config so it was
going back to the default in machine.config. That setting uses the LocalSqlServer
connection string, which we don't use. However, in the default machine.config, this
points to the App_Data folder using SQL Server Express. In most environments, this
wouldn't be an issue immediately, because SQL Server Express would just create the&amp;nbsp;
aspnet database and use that. However, in a hardened environment SQL Server Express
is either not there (our case) or has no rights to create the App_Data folder and/or
place create a new database. ASP.NET doesn't know this... it just can't access the
SQL Server instance it is looking for, hence the above exception.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=f75ad0b9-3734-4119-a167-2e8cf8e66ad9" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,f75ad0b9-3734-4119-a167-2e8cf8e66ad9.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
      <category>SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=74d88112-d0f5-4374-be9d-15a5fbf6d4e4</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,74d88112-d0f5-4374-be9d-15a5fbf6d4e4.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,74d88112-d0f5-4374-be9d-15a5fbf6d4e4.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=74d88112-d0f5-4374-be9d-15a5fbf6d4e4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Iedereen die mijn sessie bezocht heeft tijdens de SDE van 30 maart bedankt voor het
luisteren. Hieronder vind je links naar de slides en voorbeeldcode.
</p>
        <p>
          <strong>Geavanceerde UI Technieken voor SharePoint</strong>
          <a href="http://michiel.vanotegem.nl/content/binary/SDE_SharePointSkinning.pdf">Slides
(126.2 KB)</a> | <a href="http://michiel.vanotegem.nl/content/binary/Skinning.zip">Samples
(447.66 KB)</a></p>
        <p>
De voorbeeldcode bevat ook een installer om de WebParts uit te rollen. Je moet wel
even <em>uploadskinfeature.bat</em> aanpassen om naar de juiste server te wijzen.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=74d88112-d0f5-4374-be9d-15a5fbf6d4e4" />
      </body>
      <title>SDE Slides &amp; Samples - Geavanceerde UI Technieken voor SharePoint</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,74d88112-d0f5-4374-be9d-15a5fbf6d4e4.aspx</guid>
      <link>http://michiel.vanotegem.nl/2009/04/01/SDESlidesSamplesGeavanceerdeUITechniekenVoorSharePoint.aspx</link>
      <pubDate>Wed, 01 Apr 2009 14:34:01 GMT</pubDate>
      <description>&lt;p&gt;
Iedereen die mijn sessie bezocht heeft tijdens de SDE van 30 maart bedankt voor het
luisteren. Hieronder vind je links naar de slides en voorbeeldcode.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Geavanceerde UI Technieken voor SharePoint&lt;/strong&gt; &lt;a href="http://michiel.vanotegem.nl/content/binary/SDE_SharePointSkinning.pdf"&gt;Slides
(126.2 KB)&lt;/a&gt; | &lt;a href="http://michiel.vanotegem.nl/content/binary/Skinning.zip"&gt;Samples
(447.66 KB)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
De voorbeeldcode bevat ook een installer om de WebParts uit te rollen. Je moet wel
even &lt;em&gt;uploadskinfeature.bat&lt;/em&gt; aanpassen om naar de juiste server te wijzen.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=74d88112-d0f5-4374-be9d-15a5fbf6d4e4" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,74d88112-d0f5-4374-be9d-15a5fbf6d4e4.aspx</comments>
      <category>ASP.NET</category>
      <category>Evenementen</category>
      <category>Nederlands</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=076ef433-1a6b-4f85-b21a-4daff33b7a39</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,076ef433-1a6b-4f85-b21a-4daff33b7a39.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,076ef433-1a6b-4f85-b21a-4daff33b7a39.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=076ef433-1a6b-4f85-b21a-4daff33b7a39</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Recently I encountered an exception related to System.Security.Permissions.FileIOPermission
while trying to send email from ASP.NET (dasBlog actually). This has <u>nothing</u> to
do with rights set on folders! It is a trust (code access permission) issue, and it
will happen if your application is running under Medium Trust. Elevating the trust
level will definitly help. From what I've read, defaulting to the system defined SMTP
settings (i.e. removing any SMTP settings form web.config) will also work, but I have
not tried this yet.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=076ef433-1a6b-4f85-b21a-4daff33b7a39" />
      </body>
      <title>FileIOPermission Error When Sending Email From ASP.NET </title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,076ef433-1a6b-4f85-b21a-4daff33b7a39.aspx</guid>
      <link>http://michiel.vanotegem.nl/2009/03/05/FileIOPermissionErrorWhenSendingEmailFromASPNET.aspx</link>
      <pubDate>Thu, 05 Mar 2009 15:38:27 GMT</pubDate>
      <description>&lt;p&gt;
Recently I encountered an exception related to&amp;nbsp;System.Security.Permissions.FileIOPermission
while trying to send email from ASP.NET (dasBlog actually). This has &lt;u&gt;nothing&lt;/u&gt; to
do with rights set on folders! It is a trust (code access permission) issue, and it
will happen if your application is running under Medium Trust. Elevating the trust
level will definitly help. From what I've read, defaulting to the system defined SMTP
settings (i.e. removing any SMTP settings form web.config) will also work, but I have
not tried this yet.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=076ef433-1a6b-4f85-b21a-4daff33b7a39" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,076ef433-1a6b-4f85-b21a-4daff33b7a39.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=4ec64bdd-85ac-49e2-b744-ee1b7ec7606f</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,4ec64bdd-85ac-49e2-b744-ee1b7ec7606f.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,4ec64bdd-85ac-49e2-b744-ee1b7ec7606f.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=4ec64bdd-85ac-49e2-b744-ee1b7ec7606f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Thank you for all who attended my sessions in San Francisco. Below are the slides
and samples for my sessions.
</p>
        <p>
          <strong>VTH4 - Understanding Transactions in WCF</strong>
          <a href="http://michiel.vanotegem.nl/content/binary/VTH4_Slides.zip">Slides
(561.73 KB)</a> | <a href="http://michiel.vanotegem.nl/content/binary/WCFTransactions.zip">Samples
(540.1 KB)</a></p>
        <p>
          <strong>VTH16 - Supporting POX/REST with WCF</strong>
          <a href="http://michiel.vanotegem.nl/content/binary/VTH16_Slides.zip">Slides
(369.58 KB)</a> | <a href="http://michiel.vanotegem.nl/content/binary/WCFPoxRest.zip">Samples
(302.82 KB)</a></p>
        <p>
          <strong>VTH25 - Simplify WebPart (and Control) Development with WebPart Skinning</strong>
          <a href="http://michiel.vanotegem.nl/content/binary/VTH25_Slides.zip">Slides
(359.85 KB)</a> | <a href="http://michiel.vanotegem.nl/content/binary/Skinning.zip">Samples
(447.66 KB)</a></p>
        <p>
The VTH25 samples include the full installer. However, be sure to change the <em>uploadskinfeature.bat</em> to
point to the correct server. You can read more about the VirtualPathProvider
I mentioned in VTH25 session <a href="http://michiel.vanotegem.nl/2008/08/30/ServingPartOfASiteFromEmbeddedResources.aspx">here</a>.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=4ec64bdd-85ac-49e2-b744-ee1b7ec7606f" />
      </body>
      <title>VSLive! 2009 San Francisco slides and samples</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,4ec64bdd-85ac-49e2-b744-ee1b7ec7606f.aspx</guid>
      <link>http://michiel.vanotegem.nl/2009/03/02/VSLive2009SanFranciscoSlidesAndSamples.aspx</link>
      <pubDate>Mon, 02 Mar 2009 22:25:30 GMT</pubDate>
      <description>&lt;p&gt;
Thank you for all who attended my sessions in San Francisco. Below are the slides
and samples for my sessions.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;VTH4 - Understanding Transactions in WCF&lt;/strong&gt; &lt;a href="http://michiel.vanotegem.nl/content/binary/VTH4_Slides.zip"&gt;Slides
(561.73 KB)&lt;/a&gt; | &lt;a href="http://michiel.vanotegem.nl/content/binary/WCFTransactions.zip"&gt;Samples
(540.1 KB)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;VTH16 - Supporting POX/REST with WCF&lt;/strong&gt; &lt;a href="http://michiel.vanotegem.nl/content/binary/VTH16_Slides.zip"&gt;Slides
(369.58 KB)&lt;/a&gt; | &lt;a href="http://michiel.vanotegem.nl/content/binary/WCFPoxRest.zip"&gt;Samples
(302.82 KB)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;VTH25 - Simplify WebPart (and Control) Development with WebPart Skinning&lt;/strong&gt; &lt;a href="http://michiel.vanotegem.nl/content/binary/VTH25_Slides.zip"&gt;Slides
(359.85 KB)&lt;/a&gt; | &lt;a href="http://michiel.vanotegem.nl/content/binary/Skinning.zip"&gt;Samples
(447.66 KB)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The VTH25 samples include the full installer. However, be sure to change the &lt;em&gt;uploadskinfeature.bat&lt;/em&gt; to
point to&amp;nbsp;the correct server.&amp;nbsp;You can read more about the VirtualPathProvider
I mentioned in VTH25 session &lt;a href="http://michiel.vanotegem.nl/2008/08/30/ServingPartOfASiteFromEmbeddedResources.aspx"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=4ec64bdd-85ac-49e2-b744-ee1b7ec7606f" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,4ec64bdd-85ac-49e2-b744-ee1b7ec7606f.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET</category>
      <category>English</category>
      <category>Events</category>
      <category>SharePoint</category>
      <category>WCF</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=8524414f-7de1-48d5-894a-25d62393c665</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,8524414f-7de1-48d5-894a-25d62393c665.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,8524414f-7de1-48d5-894a-25d62393c665.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=8524414f-7de1-48d5-894a-25d62393c665</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The wonderful folks at <a href="http://www.vslive.com">VSLive!</a> have invited
me again to do three sessions at their <a href="http://vslive.com/2009/sf/default.aspx?code=VS09SF">San
Francisco</a> event from February 23 to February 27, 2009. These are the sessions
I'll do (all on Thursday 26):
</p>
        <ul>
          <li>
Understanding Transactions in WCF</li>
          <li>
Supporting POX/REST with WCF</li>
          <li>
Simplify WebPart (and Control) Development with WepPart Skinning</li>
        </ul>
        <p>
The first two are obviously about WCF. The last talk is primarily about SharePoint,
but the discussed techniques will work with ASP.NET WebParts and WebControls as well.
</p>
        <p>
I really like VSLive! because they have some great content and top tier speakers. The
speakers (myself included of course) are also very accessible, because the
event is not as huge as some of the other conferences these days. So if you intend
to go to a conference this year, VSLive! is going to be worth your money.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=8524414f-7de1-48d5-894a-25d62393c665" />
      </body>
      <title>Speaking at VSLive San Francisco, February 23-27</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,8524414f-7de1-48d5-894a-25d62393c665.aspx</guid>
      <link>http://michiel.vanotegem.nl/2009/01/07/SpeakingAtVSLiveSanFranciscoFebruary2327.aspx</link>
      <pubDate>Wed, 07 Jan 2009 21:52:13 GMT</pubDate>
      <description>&lt;p&gt;
The&amp;nbsp;wonderful folks at &lt;a href="http://www.vslive.com"&gt;VSLive!&lt;/a&gt; have invited
me again to do three sessions at their&amp;nbsp;&lt;a href="http://vslive.com/2009/sf/default.aspx?code=VS09SF"&gt;San
Francisco&lt;/a&gt;&amp;nbsp;event from February 23 to February 27, 2009. These are the sessions
I'll do (all on Thursday 26):
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Understanding Transactions in WCF&lt;/li&gt;
&lt;li&gt;
Supporting POX/REST with WCF&lt;/li&gt;
&lt;li&gt;
Simplify WebPart (and Control) Development with WepPart Skinning&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The first two are obviously about WCF. The last talk is primarily about SharePoint,
but the discussed techniques will work with ASP.NET WebParts and WebControls as well.
&lt;/p&gt;
&lt;p&gt;
I really like VSLive! because they&amp;nbsp;have some great content and top tier speakers.&amp;nbsp;The
speakers (myself included of course)&amp;nbsp;are also&amp;nbsp;very accessible, because the
event is not as huge as some of the other conferences these days. So if you intend
to go to a conference this year, VSLive! is going to be worth your money.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=8524414f-7de1-48d5-894a-25d62393c665" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,8524414f-7de1-48d5-894a-25d62393c665.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET</category>
      <category>English</category>
      <category>Events</category>
      <category>SharePoint</category>
      <category>WCF</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=8f249e46-fc8c-4788-b995-2f10ab9dbac0</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,8f249e46-fc8c-4788-b995-2f10ab9dbac0.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,8f249e46-fc8c-4788-b995-2f10ab9dbac0.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=8f249e46-fc8c-4788-b995-2f10ab9dbac0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
At a session about ASP.NET DynamicData at VSLive in Dallas, one of the attendees asked
me about my thoughts of DynamicData becoming a part of ASP.NET MVC. I commented that
currently DynamicData is very much based on the current ASP.NET paradigm of pages
and controls, whereas ASP.NET MVC is not. ASP.NET MVC presents a new way of thinking
to the ASP.NET world and I find it hard to believe that millions of developers will
jump on the ASP.NET MVC bandwagon immediately after its release (let's face it,
it hasn't even been released yet) and leave their old coding styles behind. You
need to learn to think differently first. Also, if ASP.NET MVC becomes the primary
ASP.NET paradigm, there is a whole lot of code that is still using ASP.NET the way
most of us do at the moment. That said, ASP.NET MVC is <u>very</u> interesting.
</p>
        <p>
Ok, so back to the original question. If you look at Scott Guthrie's post about the <a href="http://weblogs.asp.net/scottgu/archive/2008/12/19/asp-net-mvc-design-gallery-and-upcoming-view-improvements-with-the-asp-net-mvc-release-candidate.aspx">ASP.NET
MVC Release Candidate</a>, you'll see that there is scaffolding support on based on
the model, instead of table based scaffolding using in ASP.NET DynamicData. The
model based scaffolding enables you to create different views of the model in no time.This
is very cool, because it provides you with way more control over what is happening
than in DynamicData. And because it is based on the model, you're not tied to database
objects, but rather to business objects. How you persist those is up to you.
</p>
        <p>
I still think ASP.NET DynamicData and ASP.NET MVC are going to live side-by-side for
quite a while, and that they will use concepts that were created for one or the other.
The main reason for this belief is based on my earlier comment: I think ASP.NET MVC
and ASP.NET "Classic" will run side-by-side for a loooooong time. I do feel that ASP.NET
MVC ultimately provides us with more flexibility and will at some point become the
more dominant paradigm.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=8f249e46-fc8c-4788-b995-2f10ab9dbac0" />
      </body>
      <title>Thoughts on ASP.NET DynamicData vs. ASP.NET MVC</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,8f249e46-fc8c-4788-b995-2f10ab9dbac0.aspx</guid>
      <link>http://michiel.vanotegem.nl/2008/12/19/ThoughtsOnASPNETDynamicDataVsASPNETMVC.aspx</link>
      <pubDate>Fri, 19 Dec 2008 09:43:14 GMT</pubDate>
      <description>&lt;p&gt;
At a session about ASP.NET DynamicData at VSLive in Dallas, one of the attendees asked
me about my thoughts of DynamicData becoming a part of ASP.NET MVC. I commented that
currently DynamicData is very much based on the current ASP.NET paradigm of pages
and controls, whereas ASP.NET MVC is not. ASP.NET MVC presents a new way of thinking
to the ASP.NET world and I find it hard to believe that millions of developers will
jump on the ASP.NET MVC bandwagon immediately after&amp;nbsp;its release (let's face it,
it hasn't even been released yet)&amp;nbsp;and leave their old coding styles behind. You
need to learn to think differently first. Also, if ASP.NET MVC becomes the primary
ASP.NET paradigm, there is a whole lot of code that is still using ASP.NET the way
most of us do at the moment. That said, ASP.NET MVC is &lt;u&gt;very&lt;/u&gt; interesting.
&lt;/p&gt;
&lt;p&gt;
Ok, so back to the original question. If you look at Scott Guthrie's post about the &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/12/19/asp-net-mvc-design-gallery-and-upcoming-view-improvements-with-the-asp-net-mvc-release-candidate.aspx"&gt;ASP.NET
MVC Release Candidate&lt;/a&gt;, you'll see that there is scaffolding support on based on
the model, instead of table based scaffolding using in&amp;nbsp;ASP.NET DynamicData. The
model based scaffolding enables you to create different views of the model in no time.This
is very cool, because it provides you with way more control over what is happening
than in DynamicData. And because it is based on the model, you're not tied to database
objects, but rather to business objects. How you persist those is up to you.
&lt;/p&gt;
&lt;p&gt;
I still think ASP.NET DynamicData and ASP.NET MVC are going to live side-by-side for
quite a while, and that they will use concepts that were created for one or the other.
The main reason for this belief is based on my earlier comment: I think ASP.NET MVC
and ASP.NET "Classic" will run side-by-side for a loooooong time. I do feel that ASP.NET
MVC ultimately provides us with more flexibility and will at some point become the
more dominant paradigm.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=8f249e46-fc8c-4788-b995-2f10ab9dbac0" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,8f249e46-fc8c-4788-b995-2f10ab9dbac0.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=770ec6f5-70b2-43c5-ae33-f87f4cb2c99c</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,770ec6f5-70b2-43c5-ae33-f87f4cb2c99c.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,770ec6f5-70b2-43c5-ae33-f87f4cb2c99c.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=770ec6f5-70b2-43c5-ae33-f87f4cb2c99c</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
At VSLive in Dallas last week I promised to follow up with a post about securing an
ASP.NET Dynamic Data application. Your first concern is not exposing all the
tables, so although it demo's well, <u>never</u> set ScaffoldAllTables to
true. That however, does still not solve how you can provide read-only access
to certain users, while providing edit access to others. The most elegant
way to do that is at the Data Model level, using a custom security attribute. There's
a great sample on how to do that on the <a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14473">Dynamic
Data Samples on Codeplex</a>. The specific sample you want is <a href="javascript:__doPostBack('ctl00$ctl00$MasterContent$Content$ReleasePanelOrderingContainer$ReleaseFilesCtrl$FileList$ctl07$FileNameLink','')">Secure
Dynamic Data</a>.
</p>
        <p>
If you don't want to spend the time to understand how security at the Data Model works,
you can also just use ASP.NET Roles to secure specific parts of your site. Since securing
folders/files that way has been around since ASP.NET 1.x, that should be easy enough
:). There is a gotcha though: you cannot secure dynamic folders. In other words, a
Dynamic Data path <font face="Courier New">/SomeTable/List.aspx</font> is not securable,
because SomeTable is not an actual folder. With three simple steps you can get around
this.
</p>
        <p>
Step 1: Create a folder corresponding to a specific role, for example "Readers".
</p>
        <p>
Step 2: Create a web.config in that folder limiting access to the role(s) you want
to give access.
</p>
        <p>
Step 3: In globas.asax, route the tables and actions that apply to the specific role
to that folder, like this:
</p>
        <p>
          <font face="Courier New">routes.Add(new DynamicDataRoute("<strong>Readers</strong>/{table}/{action}.aspx")<br />
{<br />
    Constraints = new RouteValueDictionary(<br />
        new<br />
        {<br />
            action = "List|Details",<br />
            table = "EvaluationSubjects|Reports",<br />
        }),<br />
        Model = model<br /></font>
          <font face="Courier New">});</font>
        </p>
        <p>
 
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=770ec6f5-70b2-43c5-ae33-f87f4cb2c99c" />
      </body>
      <title>Securing ASP.NET Dynamic Data</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,770ec6f5-70b2-43c5-ae33-f87f4cb2c99c.aspx</guid>
      <link>http://michiel.vanotegem.nl/2008/12/14/SecuringASPNETDynamicData.aspx</link>
      <pubDate>Sun, 14 Dec 2008 21:39:07 GMT</pubDate>
      <description>&lt;p&gt;
At VSLive in Dallas last week I promised to follow up with a post about securing an
ASP.NET Dynamic Data application.&amp;nbsp;Your first concern is not exposing all the
tables, so&amp;nbsp;although it demo's well,&amp;nbsp;&lt;u&gt;never&lt;/u&gt; set ScaffoldAllTables to
true.&amp;nbsp;That however, does still not solve how you&amp;nbsp;can provide read-only access
to&amp;nbsp;certain users, while providing edit access to others.&amp;nbsp;The most elegant
way to do that is at the Data Model level, using a custom security attribute. There's
a great sample on how to do that on the &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14473"&gt;Dynamic
Data Samples on Codeplex&lt;/a&gt;. The specific sample you want is &lt;a href="javascript:__doPostBack('ctl00$ctl00$MasterContent$Content$ReleasePanelOrderingContainer$ReleaseFilesCtrl$FileList$ctl07$FileNameLink','')"&gt;Secure
Dynamic Data&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
If you don't want to spend the time to understand how security at the Data Model works,
you can also just use ASP.NET Roles to secure specific parts of your site. Since securing
folders/files that way has been around since ASP.NET 1.x, that should be easy enough
:). There is a gotcha though: you cannot secure dynamic folders. In other words, a
Dynamic Data path &lt;font face="Courier New"&gt;/SomeTable/List.aspx&lt;/font&gt; is not securable,
because SomeTable is not an actual folder. With three simple steps you can get around
this.
&lt;/p&gt;
&lt;p&gt;
Step 1: Create a folder corresponding to a specific role, for example "Readers".
&lt;/p&gt;
&lt;p&gt;
Step 2: Create a web.config in that folder limiting access to the role(s) you want
to give access.
&lt;/p&gt;
&lt;p&gt;
Step 3: In globas.asax, route the tables and actions that apply to the specific role
to that folder, like this:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;routes.Add(new DynamicDataRoute("&lt;strong&gt;Readers&lt;/strong&gt;/{table}/{action}.aspx")&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Constraints = new RouteValueDictionary(&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; action = "List|Details",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; table = "EvaluationSubjects|Reports",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }),&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Model = model&lt;br&gt;
&lt;/font&gt;&lt;font face="Courier New"&gt;});&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=770ec6f5-70b2-43c5-ae33-f87f4cb2c99c" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,770ec6f5-70b2-43c5-ae33-f87f4cb2c99c.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=e5c9a250-efa2-45ae-a801-c7b2c066d81f</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,e5c9a250-efa2-45ae-a801-c7b2c066d81f.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,e5c9a250-efa2-45ae-a801-c7b2c066d81f.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=e5c9a250-efa2-45ae-a801-c7b2c066d81f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I will be speaking at <a href="http://vslive.com/2008/dallas/default.aspx">VSLive!</a> again,
this time in Dallas from 8 until 11 December. I'll be doing the following sessions:
</p>
        <ul>
          <li>
Introduction to ASP.NET Dynamic Data (Tuesday 9 December, 11:15 AM)</li>
          <li>
POX/REST Strategies with WCF (Thursday 11 December, 1:45 PM)</li>
          <li>
Understanding Transactions in WCF (Thursday 11 December, 4:45 PM)</li>
        </ul>
        <p>
          <a href="http://vslive.com/2008/dallas/default.aspx">VSLive!</a> is a very nice and
relaxed event with <a href="http://vslive.com/2008/dallas/agenda.aspx">great content</a>.
So it's a great opportunity to learn new stuff and new people. If you want to attend
the Dallas show and see me speak, you can get a $300 discount by entering the discount
code <strong>SPVAN</strong>. I hope to see you there.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=e5c9a250-efa2-45ae-a801-c7b2c066d81f" />
      </body>
      <title>Speaking at VSLive in Dallas 8-11 December</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,e5c9a250-efa2-45ae-a801-c7b2c066d81f.aspx</guid>
      <link>http://michiel.vanotegem.nl/2008/10/28/SpeakingAtVSLiveInDallas811December.aspx</link>
      <pubDate>Tue, 28 Oct 2008 20:19:07 GMT</pubDate>
      <description>&lt;p&gt;
I will be speaking at &lt;a href="http://vslive.com/2008/dallas/default.aspx"&gt;VSLive!&lt;/a&gt; again,
this time in Dallas from 8 until 11 December. I'll be doing the following sessions:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Introduction to ASP.NET Dynamic Data (Tuesday 9 December, 11:15 AM)&lt;/li&gt;
&lt;li&gt;
POX/REST Strategies with WCF (Thursday 11 December, 1:45 PM)&lt;/li&gt;
&lt;li&gt;
Understanding Transactions in WCF (Thursday 11 December, 4:45 PM)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a href="http://vslive.com/2008/dallas/default.aspx"&gt;VSLive!&lt;/a&gt; is a very nice and
relaxed event with &lt;a href="http://vslive.com/2008/dallas/agenda.aspx"&gt;great content&lt;/a&gt;.
So it's a great opportunity to learn new stuff and new people. If you want to attend
the Dallas show and see me speak, you can get a $300 discount by entering the discount
code &lt;strong&gt;SPVAN&lt;/strong&gt;. I hope to see you there.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=e5c9a250-efa2-45ae-a801-c7b2c066d81f" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,e5c9a250-efa2-45ae-a801-c7b2c066d81f.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET</category>
      <category>English</category>
      <category>Events</category>
      <category>LINQ</category>
      <category>Visual Studio</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=3274a348-a8c0-40dd-9b97-9ff7aff6325f</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,3274a348-a8c0-40dd-9b97-9ff7aff6325f.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,3274a348-a8c0-40dd-9b97-9ff7aff6325f.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=3274a348-a8c0-40dd-9b97-9ff7aff6325f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
I while ago I created the control shown below. It acts a multi-select ListBox from
the API perspective, but works by selecting items and moving them over. Pretty much
all elements can be styled, such as the headers, the ListBoxes and the buttons. I'd
love to have one with some JavaScript that allows drag-n-drop, but that's too much
work for me. Feel free to copy and extend the <a href="http://michiel.vanotegem.nl/content/binary/AddRemoveListBox.zip">source
code(3.15 KB)</a>.<br /><br /><img src="http://michiel.vanotegem.nl/content/binary/AddRemoveListBox.gif" border="0" /><img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=3274a348-a8c0-40dd-9b97-9ff7aff6325f" /></body>
      <title>AddRemoveListBox</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,3274a348-a8c0-40dd-9b97-9ff7aff6325f.aspx</guid>
      <link>http://michiel.vanotegem.nl/2008/10/20/AddRemoveListBox.aspx</link>
      <pubDate>Mon, 20 Oct 2008 20:38:33 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
I while ago I created the control shown below. It acts a multi-select ListBox from
the API perspective, but works by selecting items and moving them over. Pretty much
all elements can be styled, such as the headers, the ListBoxes and the buttons. I'd
love to have one with some JavaScript that allows drag-n-drop, but that's too much
work for me. Feel free to copy and extend the &lt;a href="http://michiel.vanotegem.nl/content/binary/AddRemoveListBox.zip"&gt;source
code(3.15 KB)&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://michiel.vanotegem.nl/content/binary/AddRemoveListBox.gif" border=0&gt;&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=3274a348-a8c0-40dd-9b97-9ff7aff6325f" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,3274a348-a8c0-40dd-9b97-9ff7aff6325f.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=aecc1fd4-795c-4178-8d35-8c90e7be80b6</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,aecc1fd4-795c-4178-8d35-8c90e7be80b6.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,aecc1fd4-795c-4178-8d35-8c90e7be80b6.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=aecc1fd4-795c-4178-8d35-8c90e7be80b6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Microsoft heeft ten aanzien van jQuery een opmerkelijke stap gemaakt. In plaats van
zelf iets jQuery-achtigs te maken, heeft Microsoft aangekondigd jQuery zelf te gaan
ondersteunen en nieuwe onderdelen van ASP.NET AJAX op jQuery te baseren. Dit is zowel
door <a href="http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia/">jQuery</a> als
door <a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx">Microsoft</a> bevestigd.
Ik ben hier persoonlijk zeer verheugd over en ik hoop dan ook van harte dat Microsoft
deze lijn doorzet. Ik heb veel liever dat Microsoft ondersteuning biedt voor (toonaangevende)
bibliotheken dan er zelf een (vaak minder goede) kopie van te maken. Overigens is
het niet alleen zo dat Visual Studio jQuery technisch gaat ondersteunen, maar ook
dat klanten van Microsoft support kunnen krijgen via Microsoft. Ik ben benieuwd of
er nog meer gaat volgen in deze richting.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=aecc1fd4-795c-4178-8d35-8c90e7be80b6" />
      </body>
      <title>If you can't beat them, join them: MS gaat jQuery ondersteunen</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,aecc1fd4-795c-4178-8d35-8c90e7be80b6.aspx</guid>
      <link>http://michiel.vanotegem.nl/2008/10/06/IfYouCantBeatThemJoinThemMSGaatJQueryOndersteunen.aspx</link>
      <pubDate>Mon, 06 Oct 2008 08:16:03 GMT</pubDate>
      <description>&lt;p&gt;
Microsoft heeft ten aanzien van jQuery een opmerkelijke stap gemaakt. In plaats van
zelf iets jQuery-achtigs te maken, heeft Microsoft aangekondigd jQuery zelf te gaan
ondersteunen en nieuwe onderdelen van ASP.NET AJAX op jQuery te baseren. Dit is zowel
door &lt;a href="http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia/"&gt;jQuery&lt;/a&gt; als
door &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx"&gt;Microsoft&lt;/a&gt; bevestigd.
Ik ben hier persoonlijk zeer verheugd over en ik hoop dan ook van harte dat Microsoft
deze lijn doorzet. Ik heb veel liever dat Microsoft ondersteuning biedt voor (toonaangevende)
bibliotheken dan er zelf een (vaak minder goede) kopie van te maken. Overigens is
het niet alleen zo dat Visual Studio jQuery technisch gaat ondersteunen, maar ook
dat klanten van Microsoft support kunnen krijgen via Microsoft. Ik ben benieuwd of
er nog meer gaat volgen in deze richting.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=aecc1fd4-795c-4178-8d35-8c90e7be80b6" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,aecc1fd4-795c-4178-8d35-8c90e7be80b6.aspx</comments>
      <category>ASP.NET</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=7e72357e-a635-4472-bc6a-8cbd65ce8ddf</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,7e72357e-a635-4472-bc6a-8cbd65ce8ddf.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,7e72357e-a635-4472-bc6a-8cbd65ce8ddf.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=7e72357e-a635-4472-bc6a-8cbd65ce8ddf</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I run a a development team and we're working on some functionality that we're likely
going to share between different projects. The problem is that part of the functionality
are some adminstration pages that we want to be able to develop separately, deploy
as part of customer's. The requirements we have are roughly the following
</p>
        <ol>
          <li>
We can version the pages separately, so that when we patch the shared functionality,
we don't have to rebuild/redploy the entire site. 
</li>
          <li>
We don't have to copy files from one project (the project with shared functuionality)
to another (the project that is customer specific). 
</li>
          <li>
In our source control the customer's website is really a separate project and not
a branch of the project with shared functionality. 
</li>
          <li>
The administration pages should be themed to the customer's site and additional admin
pages may be added custom for the customer's website.</li>
        </ol>
        <p>
The best way, we figured, was to deploy the shared functionality as a seprate assembly,
similar to a precompiled website. A precompiled website however is one thing, AFAIK
you can't dump two precompiled websites into the same application. I did figure out
a way to deploy the site as an assembly, by putting the admin pages inside an assembly
as an embedded resource. We then pull the pages out using a VirtualPathProvider. There
are great implementations out there using the VirtualPathProvider, such as serving
a website from a <a href="http://msdn.microsoft.com/en-us/library/aa479502.aspx">ZIP-file</a> and
from a <a href="http://support.microsoft.com/kb/910441">database</a> (which is what
SharePoint does).
</p>
        <p>
          <em>If you don't know what a VirtualPathProvider is, let me quickly fill you in. When
ASP.NET gets an aspx page for the first time, compiles that page and stores the result
in a system directory. Only when you change the file will ASP.NET recompile the page.
Now, the file system that ASP.NET gets the page from is virtualized, which means that
ASP.NET does not know how the underlying file system is implemented. By default this
is the normal Windows file system, but you can create a provider that uses another
storage mechanism. As long as it works just like the file system, this will work fine.
You can use a database, XML file, ZIP file, web service, or whatever as the underlying
file system. All you have to do is create a few classes, including an implementation
of the VirtualPathProvider, register the provider in global.asax, and you're off.
The great thing is that because you're supplying ASP.NET with the page, your page
benefits from ASP.NET (pre)compilation. This means that if you build a CMS with content
in a database, the database is only hit the first time the page is requested and the
content is compiled into the page.</em>
        </p>
        <p>
So, what we can do is put the aspx pages inside an assembly as an embedded resource
and serving the pages from there. Because the pages are inside a regular .NET
assembly, it can be linked into a project and be updated when there is a patch, without
affecting the application's it is contained in. All we have to do is redeploy the
assembly. It sounds a bit weird, but it actually works, as you can see in the attached <a href="http://michiel.vanotegem.nl/content/binary/EmbeddedVirtualPathProvider.zip">demo
(51.54 KB)</a>. Be aware that this is really just a demo. It is just meant to prove
it works. The logic to get directories is flawed (which has something to do with the
fact that directories are not preserved in embedded resources), and possibly more
is. However, you can access the following pages:
</p>
        <ul>
          <li>
\AdminHome.aspx 
</li>
          <li>
\Default.aspx 
</li>
          <li>
\NewFolder1\HTMLPage1.htm (only works in VS webserver or IIS7 in integrated mode)</li>
        </ul>
        <p>
Default.aspx is kind of funny, because the code behind class is compiled in the class
and the page itself embedded. Enjoy!
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=7e72357e-a635-4472-bc6a-8cbd65ce8ddf" />
      </body>
      <title>Serving (part of) a site from embedded resources</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,7e72357e-a635-4472-bc6a-8cbd65ce8ddf.aspx</guid>
      <link>http://michiel.vanotegem.nl/2008/08/30/ServingPartOfASiteFromEmbeddedResources.aspx</link>
      <pubDate>Sat, 30 Aug 2008 21:15:37 GMT</pubDate>
      <description>&lt;p&gt;
I run a a development team and we're working on some functionality that we're likely
going to share between different projects. The problem is that part of the functionality
are some adminstration pages that we want to be able to develop separately, deploy
as part of&amp;nbsp;customer's. The requirements we have are roughly the following
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
We can version the pages separately, so that when we patch the shared functionality,
we don't have to rebuild/redploy the entire site. 
&lt;li&gt;
We don't have to copy files from one project (the project with shared functuionality)
to another (the project that is customer specific). 
&lt;li&gt;
In our source control the customer's website is really a separate project and not
a branch of the project with shared functionality. 
&lt;li&gt;
The administration pages should be themed to the customer's site and additional admin
pages may be added custom for the customer's website.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
The best way, we figured, was to deploy the shared functionality as a seprate assembly,
similar to a precompiled website. A precompiled website however is one thing, AFAIK
you can't dump two precompiled websites into the same application. I did figure out
a way to deploy the site as an assembly, by putting the admin pages inside an assembly
as an embedded resource. We then pull the pages out using a VirtualPathProvider. There
are great implementations out there using the VirtualPathProvider, such as serving
a website from a &lt;a href="http://msdn.microsoft.com/en-us/library/aa479502.aspx"&gt;ZIP-file&lt;/a&gt; and
from a &lt;a href="http://support.microsoft.com/kb/910441"&gt;database&lt;/a&gt; (which is what
SharePoint does).
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;If you don't know what a VirtualPathProvider is, let me quickly fill you in. When
ASP.NET gets an aspx page for the first time, compiles that page and stores the result
in a system directory. Only when you change the file will ASP.NET recompile the page.
Now, the file system that ASP.NET gets the page from is virtualized, which means that
ASP.NET does not know how the underlying file system is implemented. By default this
is the normal Windows file system, but you can create a provider that uses another
storage mechanism. As long as it works just like the file system, this will work fine.
You can use a database, XML file, ZIP file, web service, or whatever as the underlying
file system. All you have to do is create a few classes, including an implementation
of the VirtualPathProvider, register the provider in global.asax, and you're off.
The great thing is that because you're supplying ASP.NET with the page, your page
benefits from ASP.NET (pre)compilation. This means that if you build a CMS with content
in a database, the database is only hit the first time the page is requested and the
content is compiled into the page.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
So, what we can do&amp;nbsp;is put the aspx pages inside an assembly as an embedded resource
and serving the pages from there. Because&amp;nbsp;the pages are inside a regular .NET
assembly, it can be linked into a project and be updated when there is a patch, without
affecting the application's it is contained in. All we have to do is redeploy the
assembly. It sounds a bit weird, but it actually works, as you can see in the attached &lt;a href="http://michiel.vanotegem.nl/content/binary/EmbeddedVirtualPathProvider.zip"&gt;demo
(51.54 KB)&lt;/a&gt;. Be aware that this is really just a demo. It is just meant to prove
it works. The logic to get directories is flawed (which has something to do with the
fact that directories are not preserved in embedded resources), and possibly more
is. However, you can access the following pages:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
\AdminHome.aspx 
&lt;li&gt;
\Default.aspx 
&lt;li&gt;
\NewFolder1\HTMLPage1.htm (only works in VS webserver or IIS7 in integrated mode)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Default.aspx is kind of funny, because the code behind class is compiled in the class
and the page itself embedded. Enjoy!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=7e72357e-a635-4472-bc6a-8cbd65ce8ddf" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,7e72357e-a635-4472-bc6a-8cbd65ce8ddf.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=7f938020-01c6-48ac-886d-a479c180a3ad</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,7f938020-01c6-48ac-886d-a479c180a3ad.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,7f938020-01c6-48ac-886d-a479c180a3ad.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=7f938020-01c6-48ac-886d-a479c180a3ad</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ik kan soms best vergeetachtig zijn. In dit geval wel schandelijk, want ik ben volkomen
vergeten te melden dat ik een nieuw boek uit heb: <a href="http://www.pearsoneducation.nl/produkt.asp?isbn=9789043016049&amp;cat=com">ASP.NET
3.5 - de basis</a>. Net als z'n voorganger <em>ASP.NET 2.0 - de basis</em> een boek
om te leren werken met ASP.NET. Het is gebaseerd op z'n voorganger, maar bevat behoorlijk
wat nieuw materiaal over o.a. ASP.NET AJAX en Language Integrated Query (LINQ). Uiteraard
komen ook de nieuwe ASP.NET server controls aan bod.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=7f938020-01c6-48ac-886d-a479c180a3ad" />
      </body>
      <title>Nieuw boek: ASP.NET 3.5 - de basis</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,7f938020-01c6-48ac-886d-a479c180a3ad.aspx</guid>
      <link>http://michiel.vanotegem.nl/2008/08/15/NieuwBoekASPNET35DeBasis.aspx</link>
      <pubDate>Fri, 15 Aug 2008 20:16:07 GMT</pubDate>
      <description>&lt;p&gt;
Ik kan soms best vergeetachtig zijn. In dit geval wel schandelijk, want ik ben volkomen
vergeten te melden dat ik een nieuw boek uit heb: &lt;a href="http://www.pearsoneducation.nl/produkt.asp?isbn=9789043016049&amp;amp;cat=com"&gt;ASP.NET
3.5 - de basis&lt;/a&gt;. Net als z'n voorganger &lt;em&gt;ASP.NET 2.0 - de basis&lt;/em&gt; een boek
om te leren werken met ASP.NET. Het is gebaseerd op z'n voorganger, maar bevat behoorlijk
wat nieuw materiaal over o.a. ASP.NET AJAX en Language Integrated Query (LINQ). Uiteraard
komen ook de nieuwe ASP.NET server controls aan bod.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=7f938020-01c6-48ac-886d-a479c180a3ad" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,7f938020-01c6-48ac-886d-a479c180a3ad.aspx</comments>
      <category>ASP.NET</category>
      <category>LINQ</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=07f1bb7e-049d-4641-990a-90f6df7ae014</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,07f1bb7e-049d-4641-990a-90f6df7ae014.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,07f1bb7e-049d-4641-990a-90f6df7ae014.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=07f1bb7e-049d-4641-990a-90f6df7ae014</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
JavaScript Intellisense in Visual Studio 2008 is een prachtig stukje demoware. Het
lijkt op het eerste gezicht allemaal heel aardig te werken... totdat je er zelf echt
mee aan de slag gaat. En met "echt" bedoel ik voor productie, niet die leuke demotjes.
Dan loop je tegen zoveel problemen aan dat je wat mij betreft moet concluderen dat het
(op z'n zachts gezegd) "nog niet biedt wat je ervan zou verwachten". Ik heb al heel
wat tijd verspijkerd om de comments van mijn scripts goed te krijgen, zodat VS ermee
overweg kan. Niet zelden zonder het gewenste resultaat. <a href="http://www.opensourceconnections.com/2007/09/01/javascript-intellisense-documentation-visual-studio-2008-orcas/">Deze
blogpost van OpenSource Connections</a> geeft een goede opsomming van wat ik
bedoel.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=07f1bb7e-049d-4641-990a-90f6df7ae014" />
      </body>
      <title>JavaScript Intellisense in Visual Studio 2008? Te veel moeite</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,07f1bb7e-049d-4641-990a-90f6df7ae014.aspx</guid>
      <link>http://michiel.vanotegem.nl/2008/05/07/JavaScriptIntellisenseInVisualStudio2008TeVeelMoeite.aspx</link>
      <pubDate>Wed, 07 May 2008 10:40:54 GMT</pubDate>
      <description>&lt;p&gt;
JavaScript Intellisense in Visual Studio 2008 is een prachtig stukje demoware. Het
lijkt op het eerste gezicht allemaal heel aardig te werken... totdat je er zelf echt
mee aan de slag gaat. En met "echt" bedoel ik voor productie, niet die leuke demotjes.
Dan loop je tegen zoveel problemen aan dat je wat mij betreft moet concluderen dat&amp;nbsp;het
(op z'n zachts gezegd) "nog niet biedt wat je ervan zou verwachten". Ik heb al heel
wat tijd verspijkerd om de comments van mijn scripts goed te krijgen, zodat VS ermee
overweg kan. Niet zelden zonder het gewenste resultaat. &lt;a href="http://www.opensourceconnections.com/2007/09/01/javascript-intellisense-documentation-visual-studio-2008-orcas/"&gt;Deze
blogpost van OpenSource Connections&lt;/a&gt;&amp;nbsp;geeft een goede opsomming van wat ik
bedoel.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=07f1bb7e-049d-4641-990a-90f6df7ae014" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,07f1bb7e-049d-4641-990a-90f6df7ae014.aspx</comments>
      <category>ASP.NET</category>
      <category>Nederlands</category>
      <category>Visual Studio</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=ee4da394-fa10-43fd-8188-f8f7834b99f2</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,ee4da394-fa10-43fd-8188-f8f7834b99f2.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,ee4da394-fa10-43fd-8188-f8f7834b99f2.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=ee4da394-fa10-43fd-8188-f8f7834b99f2</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Jeff Prosise made a nice blog entry about <a href="http://www.wintellect.com/cs/blogs/jprosise/archive/2006/06/22/hiding-the-root-node-from-sitemappath.aspx">hiding
the root node in the SiteMapPath-control</a>. Some people, like myself, experienced
an issue when the current node and the root node ar actually the same. Somehow the
check that should avoid that issue fails. I believe because the current node is in
fact a clone of the current node, and as such not equal to the current node (i.e.
root node) itself. To get around this, I have changed the code somewhat to do the
check on the actual nodes. The body of the HideRootNode-method is now as follows:
</p>
        <p>
          <font face="Courier New" color="#008000">// Return root node in case this is
the root.<br /></font>
          <font face="Courier New" color="#008000">if(SiteMap.RootNode == SiteMap.CurrentNode)
return SiteMap.CurrentNode;<br /><br />
// This is not the root node, so rebuild path without root.<br /></font>
          <font face="Courier New" color="#008000">SiteMapNode node = SiteMap.CurrentNode.Clone();<br />
SiteMapNode current = node;</font>
          <font face="Courier New" color="#008000" size="2">
            <br />
while (node.ParentNode != SiteMapNode.RootNode)<br />
{<br />
    node.ParentNode = node.ParentNode.Clone();<br />
    node = node.ParentNode;<br />
}<br />
node.ParentNode = null;<br />
return current;</font>
        </p>
        <p>
Thanks to Jeff for his original insight. It saved me a lot of time.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=ee4da394-fa10-43fd-8188-f8f7834b99f2" />
      </body>
      <title>Hiding the Root Node from SiteMapPath</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,ee4da394-fa10-43fd-8188-f8f7834b99f2.aspx</guid>
      <link>http://michiel.vanotegem.nl/2008/04/29/HidingTheRootNodeFromSiteMapPath.aspx</link>
      <pubDate>Tue, 29 Apr 2008 15:19:51 GMT</pubDate>
      <description>&lt;p&gt;
Jeff Prosise made a nice blog entry about &lt;a href="http://www.wintellect.com/cs/blogs/jprosise/archive/2006/06/22/hiding-the-root-node-from-sitemappath.aspx"&gt;hiding
the root node in the SiteMapPath-control&lt;/a&gt;. Some people, like myself, experienced
an issue when the current node and the root node ar actually the same. Somehow the
check that should avoid that issue fails. I believe because the current node is in
fact a clone of the current node, and as such not equal to the current node (i.e.
root node) itself. To get around this, I have changed the code somewhat to do the
check on the actual nodes. The body of the HideRootNode-method is now as follows:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#008000&gt;//&amp;nbsp;Return root node in case this is the
root.&lt;br&gt;
&lt;/font&gt;&lt;font face="Courier New" color=#008000&gt;if(SiteMap.RootNode == SiteMap.CurrentNode)
return SiteMap.CurrentNode;&lt;br&gt;
&lt;br&gt;
// This is not the root node, so rebuild path without root.&lt;br&gt;
&lt;/font&gt;&lt;font face="Courier New" color=#008000&gt;SiteMapNode node = SiteMap.CurrentNode.Clone();&lt;br&gt;
SiteMapNode current = node;&lt;/font&gt;&lt;font face="Courier New" color=#008000 size=2&gt;
&lt;br&gt;
while (node.ParentNode != SiteMapNode.RootNode)&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; node.ParentNode = node.ParentNode.Clone();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; node = node.ParentNode;&lt;br&gt;
}&lt;br&gt;
node.ParentNode = null;&lt;br&gt;
return current;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Thanks to Jeff for his original insight. It saved me a lot of time.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=ee4da394-fa10-43fd-8188-f8f7834b99f2" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,ee4da394-fa10-43fd-8188-f8f7834b99f2.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=b6536b76-09ae-43d3-8db7-0c93d20db360</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,b6536b76-09ae-43d3-8db7-0c93d20db360.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,b6536b76-09ae-43d3-8db7-0c93d20db360.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=b6536b76-09ae-43d3-8db7-0c93d20db360</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Visual Web Developer 2005 has a great feature for graphically impaired people
like myself. In a page you could go to the <strong>Layout</strong> menu and select <strong>Insert
Table</strong>. The dialog then had all sorts of table templates (see picture). In
the 2008 version this dialog (in fact the entire Layout menu) is gone and replaced
by a run-of-the-mill insert table dialog. Why on earth did Microsoft take this out?
</p>
        <p>
          <img alt="Insert Table dialog" hspace="0" src="file://\\server01\users\Shared Files\aspnl\Archief\Boeken Michiel\ASP.NET 3.5 - de basis\Hoofdstuk 8\Afb-0803.gif" align="baseline" border="0" />
        </p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=b6536b76-09ae-43d3-8db7-0c93d20db360" />
      </body>
      <title>What happened to the cool Insert Table dialog in Visual Web Developer 2008?</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,b6536b76-09ae-43d3-8db7-0c93d20db360.aspx</guid>
      <link>http://michiel.vanotegem.nl/2008/02/14/WhatHappenedToTheCoolInsertTableDialogInVisualWebDeveloper2008.aspx</link>
      <pubDate>Thu, 14 Feb 2008 00:18:19 GMT</pubDate>
      <description>&lt;p&gt;
Visual Web Developer 2005&amp;nbsp;has a great feature for&amp;nbsp;graphically impaired people
like myself. In a page you could go to the &lt;strong&gt;Layout&lt;/strong&gt; menu and select &lt;strong&gt;Insert
Table&lt;/strong&gt;. The dialog then had all sorts of table templates (see picture). In
the 2008 version this dialog (in fact the entire Layout menu) is gone and replaced
by a run-of-the-mill insert table dialog. Why on earth did Microsoft take this out?
&lt;/p&gt;
&lt;p&gt;
&lt;img alt="Insert Table dialog" hspace=0 src="file://\\server01\users\Shared Files\aspnl\Archief\Boeken Michiel\ASP.NET 3.5 - de basis\Hoofdstuk 8\Afb-0803.gif" align=baseline border=0&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=b6536b76-09ae-43d3-8db7-0c93d20db360" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,b6536b76-09ae-43d3-8db7-0c93d20db360.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=c76db4ae-be0e-4233-9701-028d0ea6fb92</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,c76db4ae-be0e-4233-9701-028d0ea6fb92.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,c76db4ae-be0e-4233-9701-028d0ea6fb92.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=c76db4ae-be0e-4233-9701-028d0ea6fb92</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
For those interested in the demo of <em>Using Windows Workflow Foundation in ASP.NET</em>,
you can <a href="/content/binary/VSLiveORL_WFinASPNET.zip">download it here (269 kb)</a>.
Note: this is the demo with the "double bookkeeping". The request/response inside
a workflow isn't stable enough yet for release.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=c76db4ae-be0e-4233-9701-028d0ea6fb92" />
      </body>
      <title>Windows Workflow in ASP.NET demo from VSLive! Las Vegas</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,c76db4ae-be0e-4233-9701-028d0ea6fb92.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/10/18/WindowsWorkflowInASPNETDemoFromVSLiveLasVegas.aspx</link>
      <pubDate>Thu, 18 Oct 2007 23:52:27 GMT</pubDate>
      <description>&lt;p&gt;
For those interested in the demo of &lt;em&gt;Using Windows Workflow Foundation in ASP.NET&lt;/em&gt;,
you can &lt;a href="/content/binary/VSLiveORL_WFinASPNET.zip"&gt;download it here (269 kb)&lt;/a&gt;.
Note: this is the demo with the "double bookkeeping". The request/response inside
a workflow isn't stable enough yet for release.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=c76db4ae-be0e-4233-9701-028d0ea6fb92" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,c76db4ae-be0e-4233-9701-028d0ea6fb92.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET</category>
      <category>English</category>
      <category>Events</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=9befaa27-6c8a-48df-9d60-3d7000bb4b45</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,9befaa27-6c8a-48df-9d60-3d7000bb4b45.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,9befaa27-6c8a-48df-9d60-3d7000bb4b45.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=9befaa27-6c8a-48df-9d60-3d7000bb4b45</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
For those people interested in the demo's I did in the session <i>Create Scalable
Apps with Async Processing</i> at VSLive! this week, you can <a href="/content/binary/AsyncPages_VSLiveVegas2007.zip">download
here (600 KB)</a>. To "install" the demo's, create a Visual Studio solution with two
websites (one for each folder in the zip file). Run the web service to get a port
number, then update web.config in the AsyncPages folder so that web services reference
that port number (or take the port number currently in web.config and set the web
service to run on the specified port). Enjoy!
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=9befaa27-6c8a-48df-9d60-3d7000bb4b45" />
      </body>
      <title>Async Pages demo's from VSLIve! Las Vegas</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,9befaa27-6c8a-48df-9d60-3d7000bb4b45.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/10/18/AsyncPagesDemosFromVSLIveLasVegas.aspx</link>
      <pubDate>Thu, 18 Oct 2007 23:02:25 GMT</pubDate>
      <description>&lt;p&gt;
For those people interested in the demo's I did in the session &lt;i&gt;Create Scalable
Apps with Async Processing&lt;/i&gt; at VSLive! this week, you can &lt;a href="/content/binary/AsyncPages_VSLiveVegas2007.zip"&gt;download
here (600 KB)&lt;/a&gt;. To "install" the demo's, create a Visual Studio solution with two
websites (one for each folder in the zip file). Run the web service to get a port
number, then update web.config in the AsyncPages folder so that web services reference
that port number (or take the port number currently in web.config and set the web
service to run on the specified port). Enjoy!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=9befaa27-6c8a-48df-9d60-3d7000bb4b45" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,9befaa27-6c8a-48df-9d60-3d7000bb4b45.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
      <category>Events</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=fbe3e0c7-7088-4905-8777-07c15f6a2a3d</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,fbe3e0c7-7088-4905-8777-07c15f6a2a3d.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,fbe3e0c7-7088-4905-8777-07c15f6a2a3d.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=fbe3e0c7-7088-4905-8777-07c15f6a2a3d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'll be at <a href="http://www.ftponline.com/conferences/vslive/2007/lasvegas/asplive.aspx">VSLive!</a> in
Las Vegas next month. On Tuesday, October 16th, I'll be speaking about two topics:
</p>
        <ul>
          <li>
Using Windows Workflow Foundation in ASP.NET 
</li>
          <li>
Create Scalable Apps with Asynchronous Processing</li>
        </ul>
        <p>
The first is an introductory session about Windows Workflow Foundation (WF) and
adresses how to deal with WF in ASP.NET. Because WF is not request-response by
nature, this is more challenging than you would think. The second session discusses
ASP.NET 2.0 Async Pages and Handlers and shows you how to use this with web services
and databases.
</p>
        <p>
Hope to see you there!
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=fbe3e0c7-7088-4905-8777-07c15f6a2a3d" />
      </body>
      <title>Speaking at VSLive! in Vegas on October 16th</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,fbe3e0c7-7088-4905-8777-07c15f6a2a3d.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/09/20/SpeakingAtVSLiveInVegasOnOctober16th.aspx</link>
      <pubDate>Thu, 20 Sep 2007 07:46:02 GMT</pubDate>
      <description>&lt;p&gt;
I'll be at &lt;a href="http://www.ftponline.com/conferences/vslive/2007/lasvegas/asplive.aspx"&gt;VSLive!&lt;/a&gt; in
Las Vegas next month. On Tuesday, October 16th, I'll be speaking about two topics:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Using Windows Workflow Foundation in ASP.NET 
&lt;li&gt;
Create Scalable Apps with Asynchronous Processing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The first is an introductory session about Windows Workflow Foundation (WF)&amp;nbsp;and
adresses how to&amp;nbsp;deal with WF&amp;nbsp;in&amp;nbsp;ASP.NET. Because WF is not request-response&amp;nbsp;by
nature, this is more challenging than you would think. The second session discusses
ASP.NET 2.0 Async Pages and Handlers and shows you how to use this with web services
and databases.
&lt;/p&gt;
&lt;p&gt;
Hope to see you there!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=fbe3e0c7-7088-4905-8777-07c15f6a2a3d" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,fbe3e0c7-7088-4905-8777-07c15f6a2a3d.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET</category>
      <category>English</category>
      <category>Events</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=5ac6e7e4-e7c0-452a-beb4-f6ec5f7b59cf</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,5ac6e7e4-e7c0-452a-beb4-f6ec5f7b59cf.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,5ac6e7e4-e7c0-452a-beb4-f6ec5f7b59cf.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=5ac6e7e4-e7c0-452a-beb4-f6ec5f7b59cf</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
MOSS 2007 has it's own theming engine, separate from the ASP.NET theming engine. A
downside of the MOSS approach is that you require an IIS reset to change a theme.
Not very nice, so we wanted to use ASP.NET theming instead. This however causes problems
with all pages in the _layouts folder, because they don't have <font face="Courier New">&lt;header
runat="server" /&gt;</font>. That tag is necessary, because ASP.NET needs to add CSS
references and such to the &lt;head&gt; tag. Without that tag you receive the following
error message:
</p>
        <p>
          <font color="#ff0000">Using themed css files requires a header control on the page</font>
        </p>
        <p>
The solution is to define no theme for the pages in the _layouts folder. Since the
pages in that folder are mainly dialog-type screens for SharePoint operations, this
is not a problem from a look &amp; feel perspective. That said, there are situations
where you create your own pages and put the in the _layouts folder. For those pages
you can apply a theme, providing there are no (MOSS) webparts and such on the
page. In web.config this would look something like this:
</p>
        <pre face="Courier New">&lt;location path="_layouts"&gt;
  &lt;system.web&gt;
    &lt;pages theme="" /&gt;
  &lt;/system.web&gt;
&lt;/location&gt;
&lt;location path="_layouts/MyCustomPage.aspx"&gt;
  &lt;system.web&gt;
    &lt;pages theme="MyTheme" /&gt;
  &lt;/system.web&gt;
&lt;/location&gt;
</pre>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=5ac6e7e4-e7c0-452a-beb4-f6ec5f7b59cf" />
      </body>
      <title>Using ASP.NET Theme's in MOSS 2007</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,5ac6e7e4-e7c0-452a-beb4-f6ec5f7b59cf.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/09/20/UsingASPNETThemesInMOSS2007.aspx</link>
      <pubDate>Thu, 20 Sep 2007 07:33:17 GMT</pubDate>
      <description>&lt;p&gt;
MOSS 2007 has it's own theming engine, separate from the ASP.NET theming engine. A
downside of the MOSS approach is that you require an IIS reset to change a theme.
Not very nice, so we wanted to use ASP.NET theming instead. This however causes problems
with all pages in the _layouts folder, because they don't have &lt;font face="Courier New"&gt;&amp;lt;header
runat="server" /&amp;gt;&lt;/font&gt;. That tag is necessary, because ASP.NET needs to add CSS
references and such to the &amp;lt;head&amp;gt; tag. Without that tag you receive the following
error message:
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;Using themed css files requires a header control on the page&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
The solution is to define no theme for the pages in the _layouts folder. Since the
pages in that folder are mainly dialog-type screens for SharePoint operations, this
is not a problem from a look &amp;amp; feel perspective. That said, there are situations
where you create your own pages and put the in the _layouts folder. For those pages
you can apply a theme, providing there are no&amp;nbsp;(MOSS) webparts and such on the
page. In web.config this would look something like this:
&lt;/p&gt;
&lt;pre face="Courier New"&gt;&amp;lt;location path="_layouts"&amp;gt;
&amp;nbsp; &amp;lt;system.web&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pages theme="" /&amp;gt;
&amp;nbsp; &amp;lt;/system.web&amp;gt;
&amp;lt;/location&amp;gt;
&amp;lt;location path="_layouts/MyCustomPage.aspx"&amp;gt;
&amp;nbsp; &amp;lt;system.web&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pages theme="MyTheme" /&amp;gt;
&amp;nbsp; &amp;lt;/system.web&amp;gt;
&amp;lt;/location&amp;gt;
&lt;/pre&gt;&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=5ac6e7e4-e7c0-452a-beb4-f6ec5f7b59cf" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,5ac6e7e4-e7c0-452a-beb4-f6ec5f7b59cf.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=d9826145-408c-4fb9-8939-79d7e6a19218</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,d9826145-408c-4fb9-8939-79d7e6a19218.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,d9826145-408c-4fb9-8939-79d7e6a19218.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=d9826145-408c-4fb9-8939-79d7e6a19218</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Last year I wrote a book (in Dutch) about ASP.NET 2.0. For that book I did an interview
with Scott Guthrie, General Manager of the .NET Developer Platform group at Microsoft.
In the book the interview is of course translated and also edited to fit the book.
Below is the original unedited version.
</p>
        <p>
          <strong>Who are you?</strong>
          <br />
My name is Scott Guthrie. I am the General Manager of .NET Developer Platform group
within Microsoft, which means I run the development teams that build the CLR, .NET
Compact Framework, ASP.NET / Atlas, Windows Presentation Foundation (aka Avalon),
Windows Forms, IIS 7.0, Commerce Server, and the Visual Studio development tools for
ASP.NET and WPF.
</p>
        <p>
          <strong>How long have you worked for Microsoft, and in what did you do up to becoming
General Manager?</strong>
          <br />
I’ve been at Microsoft for 9 years.  I’ve been focusing on frameworks, tools
and servers for developers pretty much the entire time.  Prior to my current
role, I ran the teams that built ASP.NET, IIS 7.0, and Visual Web Developer.
</p>
        <p>
          <strong>You are generally seen as the (co-)creator of ASP.NET. How was ASP.NET conceived
and where did you get the ideas from?</strong>
          <br />
We actually started the ASP.NET project in late 1997 and early 1998.  At the
time ASP was still relatively new, and we initially weren’t sure whether there was
anything left to-do in the web space (little did we know)!  We then spent a lot
of time talking with developers and customers using ASP and quickly realized that
there were a lot of things left to resolve.  
</p>
        <p>
Some specific issues/requests that came up again and again from customers: provide
the ability to write much cleaner code that provided good code/content separation
(rather than mixing code up in the HTML), provide the ability to write applications
using a variety of coding languages (and not just VBScript and Jscript), deliver a
more robust execution environment (avoiding memory leaks and crashes that could bring
down the server), provide a much cleaner configuration/code deployment model, deliver
a built-in security architecture, enable built-in output caching support to improve
scalability, and more.
</p>
        <p>
A colleague of mine (Mark Anders) and I spent about 2 months brainstorming ideas about
how we could build a programming model that delivered all of this.  Eventually
we decided we needed to put together a prototype to try out the concepts, and I ended
up coding it up over the Christmas and New Year’s holiday in 1997/98 (I was a hardcore
geek then &lt;g&gt;).   We showed off the prototype to a lot of people within
the company, built a lot of excitement, and got the go ahead to build a team to deliver
it.
</p>
        <p>
          <strong>What are the main differences between ASP.NET 1.x and ASP.NET 2.0?</strong>
          <br />
We spent a lot of time working with customers to identify where they spend their time
writing code today within web applications, and then worked to add new features in
ASP.NET 2.0 to help simplify these tasks dramatically.  Some examples: Master
Pages allow you to easily define a consistent layout across your site/application,
the new Membership/Roles API provides an easy way to manage users/passwords/roles
and allows you to build flexible secure application in only a few minutes, the new
GridView/DetailsView/DataSource controls enable you to easily provide data entry and
editing views on top of data (including 3-tier data access support), Web Parts provide
the ability to enable portal-style layout within any page and enable drag/drop end-user
customization that works both in regular ASP.NET applications and SharePoint solutions,
Localization support has been added to make it much easier to build multi-lingual
applications that can adjust at runtime depending on the culture/language of the incoming
user, SQL Output Caching enables developers to output cache any content within a site
and have it automatically be invalidated and re-generated when backend data changes
on a site (dramatically improving performance), Site Navigation and Menu controls
make it much easier to build menu structures and navigation across your sites, Health
Monitoring makes it easier to monitor how your application is doing once it is deployed,
and there are many more features I could keep calling out.
</p>
        <p>
          <strong>If you could give one tip to people learning ASP.NET 2.0, what would it be?</strong>
          <br />
I’d recommend spending time on the new <a href="http://www.asp.net">http://www.asp.net</a> web-site
in the “Getting Started” and the “Learn” sections.  We are putting out several
new videos and tutorials each week on the site that help show how you can take best
advantage of new features with ASP.NET.  These can make it significantly easier
to take full advantage of the platform and build great applications.  I’d also
recommend subscribing to my blog: <a href="http://weblogs.asp.net/scottgu">http://weblogs.asp.net/scottgu</a>. 
I try and post 1-2 tips/tricks a week that you can use.
</p>
        <p>
          <strong>What do you (personally) think is the coolest feature of ASP.NET 2.0?</strong>
          <br />
Master Pages is probably the most popular feature that virtually everyone takes immediate
use of – so in terms of popularity that is probably the coolest.
</p>
        <p>
I think the new ASP.NET 2.0 AJAX Extensions product we are shipping later this year
is also really, really cool (note: this was formerly codenamed “Atlas”).  This
will provide a free, fully-supported AJAX library with suite of ASP.NET 2.0 server
controls that enable you to easily add AJAX functionality to your ASP.NET 2.0 sites.  
</p>
        <p>
          <strong>What are the long term goals for ASP.NET, and what will we see of that in
the coming years?</strong>
          <br />
The next release of ASP.NET will have a lot of great additions.  You will see
even richer support for the AJAX Extensions built-into the next release, as well as
much richer support for building more interactive user experiences that take full
advantage of the browser.
</p>
        <p>
You’ll also see ASP.NET take advantage of the new LINQ technologies that are coming
out with .NET, and which will enable really rich data modeling and mapping support
with code which will dramatically improve the productivity of working with data. 
When LINQ is combined with the ASP.NET 2.0 GridView, DetailsView and other data controls,
you have a tremendously easy and powerful programming model for building AJAX enabled
data applications.  I’m really excited to see the applications people build with
it.  It is going to be a very exciting future!<br /></p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=d9826145-408c-4fb9-8939-79d7e6a19218" />
      </body>
      <title>Interview with Scott Guthrie, creator of ASP.NET</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,d9826145-408c-4fb9-8939-79d7e6a19218.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/07/23/InterviewWithScottGuthrieCreatorOfASPNET.aspx</link>
      <pubDate>Mon, 23 Jul 2007 23:05:53 GMT</pubDate>
      <description>&lt;p&gt;
Last year I wrote a book (in Dutch) about ASP.NET 2.0. For that book I did an interview
with Scott Guthrie, General Manager of the .NET Developer Platform group at Microsoft.
In the book the interview is of course translated and also edited to fit the book.
Below is the original unedited version.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Who are you?&lt;/strong&gt;
&lt;br&gt;
My name is Scott Guthrie. I am the General Manager of .NET Developer Platform group
within Microsoft, which means I run the development teams that build the CLR, .NET
Compact Framework, ASP.NET / Atlas, Windows Presentation Foundation (aka Avalon),
Windows Forms, IIS 7.0, Commerce Server, and the Visual Studio development tools for
ASP.NET and WPF.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;How long have you worked for Microsoft, and in what did you do up to becoming
General Manager?&lt;/strong&gt;
&lt;br&gt;
I’ve been at Microsoft for 9 years.&amp;nbsp; I’ve been focusing on frameworks, tools
and servers for developers pretty much the entire time.&amp;nbsp; Prior to my current
role, I ran the teams that built ASP.NET, IIS 7.0, and Visual Web Developer.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;You are generally seen as the (co-)creator of ASP.NET. How was ASP.NET conceived
and where did you get the ideas from?&lt;/strong&gt;
&lt;br&gt;
We actually started the ASP.NET project in late 1997 and early 1998.&amp;nbsp; At the
time ASP was still relatively new, and we initially weren’t sure whether there was
anything left to-do in the web space (little did we know)!&amp;nbsp; We then spent a lot
of time talking with developers and customers using ASP and quickly realized that
there were a lot of things left to resolve.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Some specific issues/requests that came up again and again from customers: provide
the ability to write much cleaner code that provided good code/content separation
(rather than mixing code up in the HTML), provide the ability to write applications
using a variety of coding languages (and not just VBScript and Jscript), deliver a
more robust execution environment (avoiding memory leaks and crashes that could bring
down the server), provide a much cleaner configuration/code deployment model, deliver
a built-in security architecture, enable built-in output caching support to improve
scalability, and more.
&lt;/p&gt;
&lt;p&gt;
A colleague of mine (Mark Anders) and I spent about 2 months brainstorming ideas about
how we could build a programming model that delivered all of this.&amp;nbsp; Eventually
we decided we needed to put together a prototype to try out the concepts, and I ended
up coding it up over the Christmas and New Year’s holiday in 1997/98 (I was a hardcore
geek then &amp;lt;g&amp;gt;).&amp;nbsp;&amp;nbsp; We showed off the prototype to a lot of people within
the company, built a lot of excitement, and got the go ahead to build a team to deliver
it.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What are the main differences between ASP.NET 1.x and ASP.NET 2.0?&lt;/strong&gt;
&lt;br&gt;
We spent a lot of time working with customers to identify where they spend their time
writing code today within web applications, and then worked to add new features in
ASP.NET 2.0 to help simplify these tasks dramatically.&amp;nbsp; Some examples: Master
Pages allow you to easily define a consistent layout across your site/application,
the new Membership/Roles API provides an easy way to manage users/passwords/roles
and allows you to build flexible secure application in only a few minutes, the new
GridView/DetailsView/DataSource controls enable you to easily provide data entry and
editing views on top of data (including 3-tier data access support), Web Parts provide
the ability to enable portal-style layout within any page and enable drag/drop end-user
customization that works both in regular ASP.NET applications and SharePoint solutions,
Localization support has been added to make it much easier to build multi-lingual
applications that can adjust at runtime depending on the culture/language of the incoming
user, SQL Output Caching enables developers to output cache any content within a site
and have it automatically be invalidated and re-generated when backend data changes
on a site (dramatically improving performance), Site Navigation and Menu controls
make it much easier to build menu structures and navigation across your sites, Health
Monitoring makes it easier to monitor how your application is doing once it is deployed,
and there are many more features I could keep calling out.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;If you could give one tip to people learning ASP.NET 2.0, what would it be?&lt;/strong&gt;
&lt;br&gt;
I’d recommend spending time on the new &lt;a href="http://www.asp.net"&gt;http://www.asp.net&lt;/a&gt; web-site
in the “Getting Started” and the “Learn” sections.&amp;nbsp; We are putting out several
new videos and tutorials each week on the site that help show how you can take best
advantage of new features with ASP.NET.&amp;nbsp; These can make it significantly easier
to take full advantage of the platform and build great applications.&amp;nbsp; I’d also
recommend subscribing to my blog: &lt;a href="http://weblogs.asp.net/scottgu"&gt;http://weblogs.asp.net/scottgu&lt;/a&gt;.&amp;nbsp;
I try and post 1-2 tips/tricks a week that you can use.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What do you (personally) think is the coolest feature of ASP.NET 2.0?&lt;/strong&gt;
&lt;br&gt;
Master Pages is probably the most popular feature that virtually everyone takes immediate
use of – so in terms of popularity that is probably the coolest.
&lt;/p&gt;
&lt;p&gt;
I think the new ASP.NET 2.0 AJAX Extensions product we are shipping later this year
is also really, really cool (note: this was formerly codenamed “Atlas”).&amp;nbsp; This
will provide a free, fully-supported AJAX library with suite of ASP.NET 2.0 server
controls that enable you to easily add AJAX functionality to your ASP.NET 2.0 sites.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What are the long term goals for ASP.NET, and what will we see of that in
the coming years?&lt;/strong&gt;
&lt;br&gt;
The next release of ASP.NET will have a lot of great additions.&amp;nbsp; You will see
even richer support for the AJAX Extensions built-into the next release, as well as
much richer support for building more interactive user experiences that take full
advantage of the browser.
&lt;/p&gt;
&lt;p&gt;
You’ll also see ASP.NET take advantage of the new LINQ technologies that are coming
out with .NET, and which will enable really rich data modeling and mapping support
with code which will dramatically improve the productivity of working with data.&amp;nbsp;
When LINQ is combined with the ASP.NET 2.0 GridView, DetailsView and other data controls,
you have a tremendously easy and powerful programming model for building AJAX enabled
data applications.&amp;nbsp; I’m really excited to see the applications people build with
it.&amp;nbsp; It is going to be a very exciting future!&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=d9826145-408c-4fb9-8939-79d7e6a19218" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,d9826145-408c-4fb9-8939-79d7e6a19218.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=87959c2c-cd37-4189-b292-785b0ade1344</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,87959c2c-cd37-4189-b292-785b0ade1344.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,87959c2c-cd37-4189-b292-785b0ade1344.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=87959c2c-cd37-4189-b292-785b0ade1344</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Dino Esposito gaf vanmorgen een sessie over Async Pages in ASP.NET. Toevallig heb
ik op <a href="http://www.vslive.com/">VSLive</a> een vergelijkbare sessie gedaan
en Dino wist dat ik daar een demo in heb zitten die laat zien wat de schaalbaarheids
voordelen zijn van Async Pages. Dino is een goede bekende van me en hij nodigde me
uit om mijn demo aan het eind van zijn sessie te doen. Het was leuk om weer eens met
Dino op het podium te staan en wat toe te kunnen voegen aan zijn verhaal. De demo
code is te vinden bij de <a href="http://www.vanotegem.nl/PermaLink,guid,67b9f2c7-235c-4291-a9da-1e033f517421.aspx">demo's
van VSLive</a>. De tool die ik gebruikte was Application Center Test van Visual Studio
2003. Ik vind die tool handiger voor dit soort tests dan de tools in VS2005.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=87959c2c-cd37-4189-b292-785b0ade1344" />
      </body>
      <title>Demo tijdens ASP.NET AJAX sessie van Dino Esposito op DevDays</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,87959c2c-cd37-4189-b292-785b0ade1344.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/06/14/DemoTijdensASPNETAJAXSessieVanDinoEspositoOpDevDays.aspx</link>
      <pubDate>Thu, 14 Jun 2007 22:01:35 GMT</pubDate>
      <description>&lt;p&gt;
Dino Esposito gaf vanmorgen een sessie over Async Pages in ASP.NET. Toevallig heb
ik op &lt;a href="http://www.vslive.com/"&gt;VSLive&lt;/a&gt; een vergelijkbare sessie gedaan
en Dino wist dat ik daar een demo in heb zitten die laat zien wat de schaalbaarheids
voordelen zijn van Async Pages. Dino is een goede bekende van me en hij nodigde me
uit om mijn demo aan het eind van zijn sessie te doen. Het was leuk om weer eens met
Dino op het podium te staan en wat toe te kunnen voegen aan zijn verhaal. De demo
code is te vinden bij de &lt;a href="http://www.vanotegem.nl/PermaLink,guid,67b9f2c7-235c-4291-a9da-1e033f517421.aspx"&gt;demo's
van VSLive&lt;/a&gt;. De tool die ik gebruikte was Application Center Test van Visual Studio
2003. Ik vind die tool handiger voor dit soort tests dan de tools in VS2005.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=87959c2c-cd37-4189-b292-785b0ade1344" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,87959c2c-cd37-4189-b292-785b0ade1344.aspx</comments>
      <category>ASP.NET</category>
      <category>Evenementen</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=f40ed563-0c45-4323-ac6f-69889b41b992</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,f40ed563-0c45-4323-ac6f-69889b41b992.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,f40ed563-0c45-4323-ac6f-69889b41b992.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=f40ed563-0c45-4323-ac6f-69889b41b992</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
De dag na DevDays organiseert DevConnections twee workshops:
</p>
        <ul>
          <li>
            <em>ASP.NET AJAX Extensions Inside Out</em> door Dino Esposito</li>
          <li>
            <em>Optimising and best practices for all SQL Server 2005 features</em> door
Bob Beauchemin</li>
        </ul>
        <p>
Als je nog wat wilt leren na DevDays, dan is dit een hele goede kans. Beide sprekers
kennen het onderwerp van haver tot gort, dus het is zeker de moeite waard. Nog niet
helemaal overtuigd? Bob en Dino spreken allebei op DevDays, dus als je daar bent kun
je eerst even een kijkje nemen. Je kunt je op de DevDays eventueel ook inschrijven
voor een van de workshops.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=f40ed563-0c45-4323-ac6f-69889b41b992" />
      </body>
      <title>DevConnections workshop na DevDays</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,f40ed563-0c45-4323-ac6f-69889b41b992.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/06/13/DevConnectionsWorkshopNaDevDays.aspx</link>
      <pubDate>Wed, 13 Jun 2007 19:53:56 GMT</pubDate>
      <description>&lt;p&gt;
De dag na DevDays organiseert DevConnections twee workshops:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;ASP.NET AJAX Extensions Inside Out&lt;/em&gt; door Dino Esposito&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Optimising and best practices for all SQL Server 2005 features&lt;/em&gt;&amp;nbsp;door
Bob Beauchemin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Als je nog wat wilt leren na DevDays, dan is dit een hele goede kans. Beide sprekers
kennen het onderwerp van haver tot gort, dus het is zeker de moeite waard. Nog niet
helemaal overtuigd? Bob en Dino spreken allebei op DevDays, dus als je daar bent kun
je eerst even een kijkje nemen. Je kunt je op de DevDays eventueel ook inschrijven
voor een van de workshops.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=f40ed563-0c45-4323-ac6f-69889b41b992" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,f40ed563-0c45-4323-ac6f-69889b41b992.aspx</comments>
      <category>ASP.NET</category>
      <category>Evenementen</category>
      <category>Nederlands</category>
      <category>SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=45be6ae4-7212-4161-a6b0-3bbeade86821</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,45be6ae4-7212-4161-a6b0-3bbeade86821.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,45be6ae4-7212-4161-a6b0-3bbeade86821.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=45be6ae4-7212-4161-a6b0-3bbeade86821</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've been working with ASP.NET 2.0 for a long time now and I thought I'd seen most
of it. Today I found something that must have flown under my radar all this time: the
Health Monitoring API. Functionally this API is similar to l<a href="http://logging.apache.org/log4net/">og4net</a> and
the <a href="http://www.codeplex.com/entlib">Enterprise Library</a> logging
Application Block. Although both of these work well I prefer functionality that comes "out-of-the-box",
because you don't have to do anything to get it, it works, and your pretty sure it'll
be kept up to date by the folks in the product team(s). So even if you're using
another logging mechanism, be sure to check out the Health Monitoring API. <a href="http://msdn2.microsoft.com/en-us/library/ms998306.aspx">How
To: Use Health Monitoring in ASP.NET 2.0</a> from the  Pattern &amp; Practices
group is a good starting piont.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=45be6ae4-7212-4161-a6b0-3bbeade86821" />
      </body>
      <title>Logging in ASP.NET? Use the Health Monitoring API</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,45be6ae4-7212-4161-a6b0-3bbeade86821.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/05/18/LoggingInASPNETUseTheHealthMonitoringAPI.aspx</link>
      <pubDate>Fri, 18 May 2007 10:49:37 GMT</pubDate>
      <description>&lt;p&gt;
I've been working with ASP.NET 2.0 for a long time now and I thought I'd seen most
of it. Today I found something that must&amp;nbsp;have flown under my radar all this time:&amp;nbsp;the
Health Monitoring API. Functionally this&amp;nbsp;API is&amp;nbsp;similar to&amp;nbsp;l&lt;a href="http://logging.apache.org/log4net/"&gt;og4net&lt;/a&gt;&amp;nbsp;and
the&amp;nbsp;&lt;a href="http://www.codeplex.com/entlib"&gt;Enterprise Library&lt;/a&gt;&amp;nbsp;logging
Application Block. Although both of these work well I prefer functionality that comes&amp;nbsp;"out-of-the-box",
because you don't have to do anything to get it, it works, and your pretty sure it'll
be kept up to date by the folks in the product team(s).&amp;nbsp;So even if you're using
another logging mechanism, be sure to check&amp;nbsp;out the Health Monitoring API.&amp;nbsp;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms998306.aspx"&gt;How
To: Use Health Monitoring in ASP.NET 2.0&lt;/a&gt; from the&amp;nbsp; Pattern &amp;amp; Practices
group is a good starting piont.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=45be6ae4-7212-4161-a6b0-3bbeade86821" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,45be6ae4-7212-4161-a6b0-3bbeade86821.aspx</comments>
      <category>ASP.NET</category>
      <category>Development</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=52bc41f0-b331-42f5-8094-610c17d2dbdd</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,52bc41f0-b331-42f5-8094-610c17d2dbdd.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,52bc41f0-b331-42f5-8094-610c17d2dbdd.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=52bc41f0-b331-42f5-8094-610c17d2dbdd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ik werk al zo lang met ASP.NET 2.0 dat ik dacht alles wel een keer gezien te hebben,
maar nu blijkt er toch iets aan mijn aandacht ontsnapt te zijn: de Health Monitoring
API. Deze API is qua functionaliteit vergelijkbaar met l<a href="http://logging.apache.org/log4net/">og4net</a> en
het logging Application Block van <a href="http://www.codeplex.com/entlib">Enterprise
Library</a>. Hoewel dat beide goede logging biedt ben ik toch altijd wel een voorstander
van functionaliteit die "out-of-the-box" beschikbaar is, omdat je daarmee zekerder
bent van de levensduur en bugfixes. Ook als je een ander loggingmechanisme gebruikt
is het dus zeker de moeite waard om even naar de Health Monitoring API te kijken.
Een goed startpunt is <a href="http://msdn2.microsoft.com/en-us/library/ms998306.aspx">How
To: Use Health Monitoring in ASP.NET 2.0</a> van de Pattern &amp; Practices groep.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=52bc41f0-b331-42f5-8094-610c17d2dbdd" />
      </body>
      <title>Logging in ASP.NET? Gebruik de Health Monitoring API</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,52bc41f0-b331-42f5-8094-610c17d2dbdd.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/05/18/LoggingInASPNETGebruikDeHealthMonitoringAPI.aspx</link>
      <pubDate>Fri, 18 May 2007 10:43:39 GMT</pubDate>
      <description>&lt;p&gt;
Ik werk al zo lang met ASP.NET 2.0 dat ik dacht alles wel een keer gezien te hebben,
maar nu blijkt er toch iets aan mijn aandacht ontsnapt te zijn: de Health Monitoring
API. Deze API is qua functionaliteit vergelijkbaar met l&lt;a href="http://logging.apache.org/log4net/"&gt;og4net&lt;/a&gt; en
het logging Application Block van &lt;a href="http://www.codeplex.com/entlib"&gt;Enterprise
Library&lt;/a&gt;. Hoewel dat beide goede logging biedt ben ik toch altijd wel een voorstander
van functionaliteit die "out-of-the-box" beschikbaar is, omdat je daarmee zekerder
bent van de levensduur en bugfixes. Ook als je een ander loggingmechanisme gebruikt
is het dus zeker de moeite waard om even naar de Health Monitoring API te kijken.
Een goed startpunt is &lt;a href="http://msdn2.microsoft.com/en-us/library/ms998306.aspx"&gt;How
To: Use Health Monitoring in ASP.NET 2.0&lt;/a&gt; van de Pattern &amp;amp; Practices groep.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=52bc41f0-b331-42f5-8094-610c17d2dbdd" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,52bc41f0-b331-42f5-8094-610c17d2dbdd.aspx</comments>
      <category>ASP.NET</category>
      <category>Development</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=67b9f2c7-235c-4291-a9da-1e033f517421</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,67b9f2c7-235c-4291-a9da-1e033f517421.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,67b9f2c7-235c-4291-a9da-1e033f517421.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=67b9f2c7-235c-4291-a9da-1e033f517421</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
Thanks to all that came to my sessions at VSLive in Orlando on Tuesday, and thanks
for the great feedback. Below are the demo's for the two sessions. Updated slides
decks will be made available on the attendee website.
</p>
        <ul>
          <li>
            <a href="http://www.vanotegem.nl/content/binary/VSLiveORL_Async.zip">Creating Scalable
Apps With Asynchronous Processing (66,94 KB)</a>
          </li>
          <li>
            <a href="http://www.vanotegem.nl/content/binary/VSLiveORL_WFinASPNET.zip">Using Windows
Workflow Foundation in ASP.NET (268,41 KB)</a>
          </li>
        </ul>
        <p>
Some of you asked which tool I used to demo the perf difference between sync and async
(demo 1). Although you could use perf tools that come with VS2005 I used Application
Center Test (ACT) that comes with Visual Studio 2003, because it is very easy
to setup and shows nice graphics (which was most important for this demo). You can
also use the free <a href="http://www.microsoft.com/downloads/details.aspx?familyid=e2c0585a-062a-439e-a67d-75a89aa36495&amp;displaylang=en">Web
Application Stress Tool</a>. The ACT script I used was (substitute "slow.aspx" with
"slowasync.aspx" for the async test), with 50 browser connections:
</p>
        <p>
          <font face="Courier New">Randomize()<br />
If Rnd(10) &lt; 5 Then<br />
    Test.SendRequest("</font>
          <a href="http://testserver/Demo01/Fast.aspx">
            <font face="Courier New">http://testserver/Demo01/Fast.aspx</font>
          </a>
          <font face="Courier New">")<br />
End If<br />
Test.SendRequest("</font>
          <a href="http://testserver/Demo01/Slow.aspx">
            <font face="Courier New">http://testserver/Demo01/Slow.aspx</font>
          </a>
          <font face="Courier New">")<br />
Test.SendRequest("</font>
          <a href="http://testserver/Demo01/Fast.aspx">
            <font face="Courier New">http://testserver/Demo01/Fast.aspx</font>
          </a>
          <font face="Courier New">")</font>
        </p>
        <p>
Note: I've run this test in several setups with different hardware. In my Orlando
session I showed numbers from ACT on the host to the web in a VPC. In my San Francisco
session ACT was on a Dell D600 with the web running in a VPC on my Dell D800, which
is a better way to test (in the Orlando setup ACT is drawing perf from the same CPU).
The async perf is much better (even in percentages) with the SF setup. Be aware that
there are a lot of variables: CPU capacity, memory, and last but not least... network
interface. In another test setup I hardly saw any difference between sync and async.
Why? Because the network was the bottleneck :(.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=67b9f2c7-235c-4291-a9da-1e033f517421" />
      </body>
      <title>VSLive Orlando demo's</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,67b9f2c7-235c-4291-a9da-1e033f517421.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/05/11/VSLiveOrlandoDemos.aspx</link>
      <pubDate>Fri, 11 May 2007 12:48:13 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Thanks to all that came to my sessions at VSLive in Orlando on Tuesday, and thanks
for the great feedback. Below are the demo's for the two sessions. Updated slides
decks will be made available on the attendee website.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.vanotegem.nl/content/binary/VSLiveORL_Async.zip"&gt;Creating Scalable
Apps With Asynchronous Processing (66,94 KB)&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.vanotegem.nl/content/binary/VSLiveORL_WFinASPNET.zip"&gt;Using Windows
Workflow Foundation in ASP.NET (268,41 KB)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Some of you asked which tool I used to demo the perf difference between sync and async
(demo 1). Although you could use perf tools that come with VS2005 I used Application
Center Test (ACT)&amp;nbsp;that comes with Visual Studio 2003, because it is very easy
to setup and shows nice graphics (which was most important for this demo). You can
also use the&amp;nbsp;free &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=e2c0585a-062a-439e-a67d-75a89aa36495&amp;amp;displaylang=en"&gt;Web
Application Stress Tool&lt;/a&gt;. The ACT script I used was (substitute "slow.aspx" with
"slowasync.aspx" for the async test), with 50 browser connections:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;Randomize()&lt;br&gt;
If Rnd(10) &amp;lt; 5 Then&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Test.SendRequest("&lt;/font&gt;&lt;a href="http://testserver/Demo01/Fast.aspx"&gt;&lt;font face="Courier New"&gt;http://testserver/Demo01/Fast.aspx&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt;")&lt;br&gt;
End If&lt;br&gt;
Test.SendRequest("&lt;/font&gt;&lt;a href="http://testserver/Demo01/Slow.aspx"&gt;&lt;font face="Courier New"&gt;http://testserver/Demo01/Slow.aspx&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt;")&lt;br&gt;
Test.SendRequest("&lt;/font&gt;&lt;a href="http://testserver/Demo01/Fast.aspx"&gt;&lt;font face="Courier New"&gt;http://testserver/Demo01/Fast.aspx&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt;")&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Note: I've run this test in several setups with different hardware. In my Orlando
session I showed numbers from ACT on the host to the web in a VPC. In my San Francisco
session ACT was on a Dell D600 with the web running in a VPC on my Dell D800, which
is a better way to test (in the Orlando setup ACT is drawing perf from the same CPU).
The async perf is much better (even in percentages) with the SF setup. Be aware that
there are a lot of variables: CPU capacity, memory, and last but not least... network
interface. In another test setup I hardly saw any difference between sync and async.
Why? Because the network was the bottleneck :(.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=67b9f2c7-235c-4291-a9da-1e033f517421" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,67b9f2c7-235c-4291-a9da-1e033f517421.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
      <category>Events</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=bbab74b0-4776-4a87-993d-3d19a23ec9b3</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,bbab74b0-4776-4a87-993d-3d19a23ec9b3.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,bbab74b0-4776-4a87-993d-3d19a23ec9b3.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=bbab74b0-4776-4a87-993d-3d19a23ec9b3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Wil je meer weten over Silverlight? Dan is <a href="http://silverlight.net">silverlight.net</a> een
goed startpunt, met onder andere een aantal video tutorials. Een aantal sessies van
de MIX conference en meer informatie over Sliverlight kun je vinden in <a href="http://weblogs.asp.net/scottgu/archive/2007/05/07/silverlight.aspx">deze
blogpost</a> van Scott Guthrie. Scott Hanselman heeft daarnaast een lijst met voorbeelden
verzameld in zijn post <a href="http://feeds.feedburner.com/~r/ScottHanselman/~3/115460480/SilverlightSamples.aspx">Silverlight
samples</a>.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=bbab74b0-4776-4a87-993d-3d19a23ec9b3" />
      </body>
      <title>Silverlight videos en demos</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,bbab74b0-4776-4a87-993d-3d19a23ec9b3.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/05/11/SilverlightVideosEnDemos.aspx</link>
      <pubDate>Fri, 11 May 2007 10:02:24 GMT</pubDate>
      <description>&lt;p&gt;
Wil je meer weten over Silverlight? Dan is &lt;a href="http://silverlight.net"&gt;silverlight.net&lt;/a&gt; een
goed startpunt, met onder andere een aantal video tutorials. Een aantal sessies van
de MIX conference en meer informatie over Sliverlight kun je vinden in &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/05/07/silverlight.aspx"&gt;deze
blogpost&lt;/a&gt; van Scott Guthrie. Scott Hanselman heeft daarnaast een lijst met voorbeelden
verzameld in zijn post &lt;a href="http://feeds.feedburner.com/~r/ScottHanselman/~3/115460480/SilverlightSamples.aspx"&gt;Silverlight
samples&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=bbab74b0-4776-4a87-993d-3d19a23ec9b3" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,bbab74b0-4776-4a87-993d-3d19a23ec9b3.aspx</comments>
      <category>ASP.NET</category>
      <category>Nederlands</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=4bffcf38-091f-415f-b468-8fa043084a6e</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,4bffcf38-091f-415f-b468-8fa043084a6e.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,4bffcf38-091f-415f-b468-8fa043084a6e.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=4bffcf38-091f-415f-b468-8fa043084a6e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Wil je weten hoe Microsoft Silverlight (aka WPF/Everywhere, WPF in de browser a la
Flash) er qua architectuur uit gaat zien? <a href="http://download.microsoft.com/download/f/2/e/f2ecc2ad-c498-4538-8a2c-15eb157c00a7/SL_Map_FinalNET.png">Deze
plaat</a> geeft het overzicht. <a href="http://www.hanselman.com/">Scott Hanselman</a> geeft
een zeer uitgebreid overzicht in zijn blogpost <a href="http://www.hanselman.com/blog/PuttingMixSilverlightTheCoreCLRAndTheDLRIntoContext.aspx">Putting
Mix, Silverlight, the CoreCLR and the DLR into context</a>.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=4bffcf38-091f-415f-b468-8fa043084a6e" />
      </body>
      <title>Microsoft Silverlight overzicht</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,4bffcf38-091f-415f-b468-8fa043084a6e.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/05/04/MicrosoftSilverlightOverzicht.aspx</link>
      <pubDate>Fri, 04 May 2007 08:53:31 GMT</pubDate>
      <description>&lt;p&gt;
Wil je weten hoe Microsoft Silverlight (aka WPF/Everywhere, WPF in de browser a la
Flash)&amp;nbsp;er qua architectuur uit gaat zien? &lt;a href="http://download.microsoft.com/download/f/2/e/f2ecc2ad-c498-4538-8a2c-15eb157c00a7/SL_Map_FinalNET.png"&gt;Deze
plaat&lt;/a&gt; geeft het overzicht. &lt;a href="http://www.hanselman.com/"&gt;Scott Hanselman&lt;/a&gt; geeft
een zeer uitgebreid overzicht in zijn blogpost &lt;a href="http://www.hanselman.com/blog/PuttingMixSilverlightTheCoreCLRAndTheDLRIntoContext.aspx"&gt;Putting
Mix, Silverlight, the CoreCLR and the DLR into context&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=4bffcf38-091f-415f-b468-8fa043084a6e" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,4bffcf38-091f-415f-b468-8fa043084a6e.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET</category>
      <category>Nederlands</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=b7b1eabf-1ca5-4840-991d-e52de0adcafb</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,b7b1eabf-1ca5-4840-991d-e52de0adcafb.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,b7b1eabf-1ca5-4840-991d-e52de0adcafb.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=b7b1eabf-1ca5-4840-991d-e52de0adcafb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Windows "Longhorn" Server Beta 3 is te downloaden van het <a href="http://msdn2.microsoft.com/en-us/evalcenter/bb383571.aspx">MSDN
Evaluation Center</a>. Onderdeel van deze release is ook IIS7 die te gebruiken is
met een Go Live License. Dat betekent dat je er mee in productie mag gaan, maar wel
voor eigen risico. Meer over de mogelijkheden van IIS7 is te lezen in <a href="http://weblogs.asp.net/scottgu/archive/2007/04/28/iis-7-0-beta3-ships-with-a-go-live-license.aspx">deze
blogpost </a>of op <a href="http://www.iis.net">www.iis.net</a>.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=b7b1eabf-1ca5-4840-991d-e52de0adcafb" />
      </body>
      <title>Windows "Longhorn" Server Beta 3 beschikbaar, met Go Live license</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,b7b1eabf-1ca5-4840-991d-e52de0adcafb.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/04/30/WindowsLonghornServerBeta3BeschikbaarMetGoLiveLicense.aspx</link>
      <pubDate>Mon, 30 Apr 2007 14:50:15 GMT</pubDate>
      <description>&lt;p&gt;
Windows "Longhorn" Server Beta 3 is te downloaden van het &lt;a href="http://msdn2.microsoft.com/en-us/evalcenter/bb383571.aspx"&gt;MSDN
Evaluation Center&lt;/a&gt;. Onderdeel van deze release is ook IIS7 die te gebruiken is
met een Go Live License. Dat betekent dat je er mee in productie mag gaan, maar wel
voor eigen risico. Meer over de mogelijkheden van IIS7 is te lezen in &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/04/28/iis-7-0-beta3-ships-with-a-go-live-license.aspx"&gt;deze
blogpost &lt;/a&gt;of op &lt;a href="http://www.iis.net"&gt;www.iis.net&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=b7b1eabf-1ca5-4840-991d-e52de0adcafb" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,b7b1eabf-1ca5-4840-991d-e52de0adcafb.aspx</comments>
      <category>ASP.NET</category>
      <category>Nederlands</category>
      <category>Windows</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=975c4f78-ee5e-448e-b9c3-d6795be887a2</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,975c4f78-ee5e-448e-b9c3-d6795be887a2.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,975c4f78-ee5e-448e-b9c3-d6795be887a2.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=975c4f78-ee5e-448e-b9c3-d6795be887a2</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="/content/binary/VSLiveSF_Async.zip">Download the demo's here (34.39
KB)</a>
        </p>
        <p>
During the session I promised to give put a sample here about using delegates for
asynchronous processing, but what's the use if you can just read it on MSDN: <a href="http://msdn2.microsoft.com/en-us/library/2e08f6yc.aspx">Calling
Synchronous Methods Asynchronously</a>. Again, be aware that you shouldn't use this
in ASP.NET!!! This is for console, desktop, and Windows Services only! In ASP.NET
this would exhaust the thread pool pretty fast.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=975c4f78-ee5e-448e-b9c3-d6795be887a2" />
      </body>
      <title>VSLive! "Create Scalable Apps With Asynchronous Processing" demo's</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,975c4f78-ee5e-448e-b9c3-d6795be887a2.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/03/28/VSLiveCreateScalableAppsWithAsynchronousProcessingDemos.aspx</link>
      <pubDate>Wed, 28 Mar 2007 22:37:31 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="/content/binary/VSLiveSF_Async.zip"&gt;Download the demo's here&amp;nbsp;(34.39
KB)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
During the session I promised to give put a sample here about using delegates for
asynchronous processing, but what's the use if you can just read it on MSDN: &lt;a href="http://msdn2.microsoft.com/en-us/library/2e08f6yc.aspx"&gt;Calling
Synchronous Methods Asynchronously&lt;/a&gt;. Again, be aware that you shouldn't use this
in ASP.NET!!! This is for console, desktop, and Windows Services only! In ASP.NET
this would exhaust the thread pool pretty fast.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=975c4f78-ee5e-448e-b9c3-d6795be887a2" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,975c4f78-ee5e-448e-b9c3-d6795be887a2.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
      <category>Events</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=d67ad3a3-cbdb-42af-ab01-027e544efed4</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,d67ad3a3-cbdb-42af-ab01-027e544efed4.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,d67ad3a3-cbdb-42af-ab01-027e544efed4.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=d67ad3a3-cbdb-42af-ab01-027e544efed4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="/content/binary/VSLiveSF_MultiThreading.zip">Download the demo's here (85.85
KB)</a>. If you want the slides, send me an email.
</p>
        <p>
If you want to do the AspCompat demo, don't forget to register the VB6 component from
the command line with <font face="Courier New">regsvr32</font>.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=d67ad3a3-cbdb-42af-ab01-027e544efed4" />
      </body>
      <title>VSLive! "Understanding Multi-Threading (in ASP.NET)" demo's</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,d67ad3a3-cbdb-42af-ab01-027e544efed4.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/03/28/VSLiveUnderstandingMultiThreadingInASPNETDemos.aspx</link>
      <pubDate>Wed, 28 Mar 2007 21:53:24 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="/content/binary/VSLiveSF_MultiThreading.zip"&gt;Download the demo's here (85.85
KB)&lt;/a&gt;. If you want the slides, send me an email.
&lt;/p&gt;
&lt;p&gt;
If you want to do the AspCompat demo, don't forget to register the VB6 component from
the command line with &lt;font face="Courier New"&gt;regsvr32&lt;/font&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=d67ad3a3-cbdb-42af-ab01-027e544efed4" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,d67ad3a3-cbdb-42af-ab01-027e544efed4.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
      <category>Events</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=9ae4453d-575e-4479-bc55-59d8cca99d13</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,9ae4453d-575e-4479-bc55-59d8cca99d13.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,9ae4453d-575e-4479-bc55-59d8cca99d13.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=9ae4453d-575e-4479-bc55-59d8cca99d13</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Zie <a href="http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3">deze</a> zeer
uitgebreide uitleg over hoe je het moet installeren en wat wel en niet kan: <a href="http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3">Integrating
ASP.NET AJAX with SharePoint</a></p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=9ae4453d-575e-4479-bc55-59d8cca99d13" />
      </body>
      <title>ASP.NET AJAX gebruiken met Sharepoint 2007? Dat kan!</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,9ae4453d-575e-4479-bc55-59d8cca99d13.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/02/21/ASPNETAJAXGebruikenMetSharepoint2007DatKan.aspx</link>
      <pubDate>Wed, 21 Feb 2007 14:35:39 GMT</pubDate>
      <description>&lt;p&gt;
Zie &lt;a href="http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3"&gt;deze&lt;/a&gt; zeer
uitgebreide uitleg over hoe je het moet installeren en wat wel en niet kan: &lt;a href="http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3"&gt;Integrating
ASP.NET AJAX with SharePoint&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=9ae4453d-575e-4479-bc55-59d8cca99d13" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,9ae4453d-575e-4479-bc55-59d8cca99d13.aspx</comments>
      <category>ASP.NET</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=bcaf8021-98e5-49f2-a104-cfa54b844971</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,bcaf8021-98e5-49f2-a104-cfa54b844971.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,bcaf8021-98e5-49f2-a104-cfa54b844971.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=bcaf8021-98e5-49f2-a104-cfa54b844971</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ik zie in code geregeld dat het Session object op allerlei plaatsen gebruikt wordt,
met name in pagina's en controls, als volgt:
</p>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">public</span>
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">void</span> Page_Load(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">object</span> sender,
EventArgs e)<br />
{<br />
    Session[<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"MySessionVar"</span>]
+= 1;<br />
}<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">public</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">void</span> Page_PreRender(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">object</span> sender,
EventArgs e)<br />
{<br />
    Label1.Text <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> Session[<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"MySessionVar"</span>].ToString();<br />
}<br /></span>
        </p>
        <p>
Dit is om meerdere redenen niet aan te raden:
</p>
        <ol>
          <li>
Omdat de collectie loosely typed is, is er geen compile-time check bij het benaderen
van de elementen in de collectie. Het is daarom heel makkelijk om een typfoutje te
maken, waardoor je tegen het verkeerde object aan praat.</li>
          <li>
Door elementen in het Session object te stoppen in de pagina, is er geen centrale
administratie van de namen (keys) die in gebruik zijn.</li>
        </ol>
        <p>
Je kunt beide zaken oplossen door een centraal object te maken waarmee je de elementen
in het Session-object benaderd, als volgt:
</p>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">///
&lt;summary&gt;</span>
            <br />
            <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">///
Strongly typed toegang tot Session-object.</span>
            <br />
            <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">///
&lt;/summary&gt;</span>
            <br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">internal</span>
            <font color="#0000ff"> static </font>
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">class</span> TypedSession<br />
{<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">  
public</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">static</span><font color="#0000ff">int</font> MySessionVar<br />
   {<br />
      get<br />
      {</span>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">        
object o = </span>
          </span>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">HttpContext.Current.Session[<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"MySessionVar"</span>];</span>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <br />
         <font color="#0000ff">if</font>(o
== <font color="#0000ff">null</font>) <font color="#0000ff">return</font> 0;</span>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <br />
         <font color="#0000ff">return</font> (<font color="#0000ff">int</font>)o;<br />
      }<br />
      set<br />
      {<br />
         HttpContext.Current.Session[<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"MySessionVar"</span>] <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> value;<br />
      }<br />
   }<br />
}</span>
        </p>
        <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
          <p>
            <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
              <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">public</span>
              <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">void</span> Page_Load(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">object</span> sender,
EventArgs e)<br />
{<br />
TypedSession.MySessionVar += 1;<br />
}<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">public</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">void</span> Page_PreRender(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">object</span> sender,
EventArgs e)<br />
{<br />
Label1.Text <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> TypedSession.MySessionVar.ToString();<br />
}</span>
          </p>
        </span>
        <p>
Merk op dat bij de get-accessor eerst gekeken wordt of het object null is. Dit is
nodig omdat een int niet null mag zijn. Voor objecten waarvoor dat wel mag kun je
desondanks besluiten dat er een standaardwaarde moet zijn, bijvoorbeeld een nieuw
object.
</p>
        <p>
Deze methodiek werkt ook uitstekend voor de Request.QueryString collectie en meer
van dat soort collecties die je normaal gezien loosely typed gebruikt. Die zal je
niet zo snel centraliseren, omdat het juist op een bepaalde pagina van toepassing
is, maar daarmee strongly typed kunnen werken is nog steeds minder foutgevoelig. Bovendien
hoeft de ontwikkelaar niet te weten waar de data vandaan komt.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=bcaf8021-98e5-49f2-a104-cfa54b844971" />
      </body>
      <title>TIP: Centraliseer sessiedata</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,bcaf8021-98e5-49f2-a104-cfa54b844971.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/02/12/TIPCentraliseerSessiedata.aspx</link>
      <pubDate>Mon, 12 Feb 2007 10:40:18 GMT</pubDate>
      <description>&lt;p&gt;
Ik zie in code geregeld dat het Session object op allerlei plaatsen gebruikt wordt,
met name in pagina's en controls, als volgt:
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;public&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;void&lt;/span&gt; Page_Load(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;object&lt;/span&gt; sender,
EventArgs e)&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Session[&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"MySessionVar"&lt;/span&gt;]
+= 1;&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;public&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;void&lt;/span&gt; Page_PreRender(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;object&lt;/span&gt; sender,
EventArgs e)&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Label1.Text &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; Session[&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"MySessionVar"&lt;/span&gt;].ToString();&lt;br&gt;
}&lt;br&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
Dit is om meerdere redenen niet aan te raden:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Omdat de collectie loosely typed is, is er geen compile-time check bij het benaderen
van de elementen in de collectie. Het is daarom heel makkelijk om een typfoutje te
maken, waardoor je tegen het verkeerde object aan praat.&lt;/li&gt;
&lt;li&gt;
Door elementen in het Session object te stoppen in de pagina, is er geen centrale
administratie van de namen (keys) die in gebruik zijn.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Je kunt beide zaken oplossen door een centraal object te maken waarmee je de elementen
in het Session-object benaderd, als volgt:
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;///
&amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;///
Strongly typed toegang tot Session-object.&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;///
&amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;internal&lt;/span&gt;&lt;font color=#0000ff&gt; static &lt;/font&gt;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;class&lt;/span&gt; TypedSession&lt;br&gt;
{&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;
public&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;static&lt;/span&gt; &lt;font color=#0000ff&gt;int&lt;/font&gt;&amp;nbsp;MySessionVar&lt;br&gt;
&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
object o =&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;HttpContext.Current.Session[&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"MySessionVar"&lt;/span&gt;];&lt;/span&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=#0000ff&gt;if&lt;/font&gt;(o == &lt;font color=#0000ff&gt;null&lt;/font&gt;) &lt;font color=#0000ff&gt;return&lt;/font&gt; 0;&lt;/span&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=#0000ff&gt;return&lt;/font&gt; (&lt;font color=#0000ff&gt;int&lt;/font&gt;)o;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpContext.Current.Session[&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"MySessionVar"&lt;/span&gt;] &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; value;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp; }&lt;br&gt;
}&lt;/span&gt;
&lt;/p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt; 
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;public&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;void&lt;/span&gt; Page_Load(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;object&lt;/span&gt; sender,
EventArgs e)&lt;br&gt;
{&lt;br&gt;
TypedSession.MySessionVar += 1;&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;public&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;void&lt;/span&gt; Page_PreRender(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;object&lt;/span&gt; sender,
EventArgs e)&lt;br&gt;
{&lt;br&gt;
Label1.Text &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; TypedSession.MySessionVar.ToString();&lt;br&gt;
}&lt;/span&gt;
&lt;/p&gt;
&lt;/span&gt; 
&lt;p&gt;
Merk op dat bij de get-accessor eerst gekeken wordt of het object null is. Dit is
nodig omdat een int niet null mag zijn. Voor objecten waarvoor dat wel mag kun je
desondanks besluiten dat er een standaardwaarde moet zijn, bijvoorbeeld een nieuw
object.
&lt;/p&gt;
&lt;p&gt;
Deze methodiek werkt ook uitstekend voor de Request.QueryString collectie en meer
van dat soort collecties die je normaal gezien loosely typed gebruikt. Die zal je
niet zo snel centraliseren, omdat het juist op een bepaalde pagina van toepassing
is, maar daarmee strongly typed kunnen werken is nog steeds minder foutgevoelig. Bovendien
hoeft de ontwikkelaar niet te weten waar de data vandaan komt.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=bcaf8021-98e5-49f2-a104-cfa54b844971" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,bcaf8021-98e5-49f2-a104-cfa54b844971.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=643745ea-076e-444d-9143-ceb9e1524c4d</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,643745ea-076e-444d-9143-ceb9e1524c4d.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,643745ea-076e-444d-9143-ceb9e1524c4d.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=643745ea-076e-444d-9143-ceb9e1524c4d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Onlangs kreeg ik de volgende melding in Visual Studio 2005: <em>The project file '
' has been renamed or is no longer in the solution</em>. Hierdoor was het niet
meer mogelijk om ook maar iets van het project te bouwen. Het vervelende aan dit probleem
is dat je geen idee hebt wat er nu eigenlijk aan de hand is. Na enige tijd vond ik
uit dat dit gebeurt als een Web Project referenties bevat naar assemblies of projecten
die het niet kan vinden. Je lost dit als volgt op:
</p>
        <ol>
          <li>
Rechts-klik op het Web project en kies Property Pages. 
</li>
          <li>
Er verschijnt een venster met alle referenties, zowel naar de bin-map, GAC of andere
projecten in de solution. 
</li>
          <li>
Verwijderer de referenties gemarkeerd met <em>(unavailable)</em>. 
</li>
          <li>
Waarschijnlijk kun je nu niet bouwen omdat je assemblies mist. Als je de referenties
daar naartoe maakt zou alles moeten werken.</li>
        </ol>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=643745ea-076e-444d-9143-ceb9e1524c4d" />
      </body>
      <title>VS2005 probleem "The project file ' ' has been renamed or is no longer in the solution" oplossen</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,643745ea-076e-444d-9143-ceb9e1524c4d.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/01/31/VS2005ProbleemTheProjectFileHasBeenRenamedOrIsNoLongerInTheSolutionOplossen.aspx</link>
      <pubDate>Wed, 31 Jan 2007 15:42:56 GMT</pubDate>
      <description>&lt;p&gt;
Onlangs kreeg ik de volgende melding in Visual Studio 2005: &lt;em&gt;The project file '
' has been renamed or is no longer in the solution&lt;/em&gt;.&amp;nbsp;Hierdoor was het niet
meer mogelijk om ook maar iets van het project te bouwen. Het vervelende aan dit probleem
is dat je geen idee hebt wat er nu eigenlijk aan de hand is. Na enige tijd vond ik
uit dat dit gebeurt als een Web Project referenties bevat naar assemblies of projecten
die het niet kan vinden. Je lost dit als volgt op:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Rechts-klik op het Web project en kies Property Pages. 
&lt;li&gt;
Er verschijnt een venster met alle referenties, zowel naar de bin-map, GAC of andere
projecten in de solution. 
&lt;li&gt;
Verwijderer de referenties gemarkeerd met &lt;em&gt;(unavailable)&lt;/em&gt;. 
&lt;li&gt;
Waarschijnlijk kun je nu niet bouwen omdat je assemblies mist. Als je de referenties
daar naartoe maakt zou alles moeten werken.&lt;/li&gt;
&lt;/ol&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=643745ea-076e-444d-9143-ceb9e1524c4d" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,643745ea-076e-444d-9143-ceb9e1524c4d.aspx</comments>
      <category>ASP.NET</category>
      <category>Development</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=5edafacd-a2a9-4666-92b9-48c39ab939fa</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,5edafacd-a2a9-4666-92b9-48c39ab939fa.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,5edafacd-a2a9-4666-92b9-48c39ab939fa.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=5edafacd-a2a9-4666-92b9-48c39ab939fa</wfw:commentRss>
      <slash:comments>9</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We were recently faced with the error message <em>The project file ' ' has been renamed
or is no longer in the solution</em> in Visual Studio 2005. The problem
is that from this message you have no idea what is actually the matter. We finally
figured out that this happens when a Web Project contains references to assemblies
or projects it can't find. Here's how you solve this:
</p>
        <ol>
          <li>
Right click the Web project and select Property Pages. 
</li>
          <li>
A window will open which lists all the references, either to the bin-folder, GAC or
other projects in the solution.</li>
          <li>
Remove those that show <em>(unavailable)</em> behind it.</li>
          <li>
Chances are that now you can't build because the reference is not there. Simply add
the reference again and you should be OK.</li>
        </ol>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=5edafacd-a2a9-4666-92b9-48c39ab939fa" />
      </body>
      <title>Solving "The project file ' ' has been renamed or is no longer in the solution"</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,5edafacd-a2a9-4666-92b9-48c39ab939fa.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/01/31/SolvingTheProjectFileHasBeenRenamedOrIsNoLongerInTheSolution.aspx</link>
      <pubDate>Wed, 31 Jan 2007 15:36:21 GMT</pubDate>
      <description>&lt;p&gt;
We were recently faced with the error message &lt;em&gt;The project file ' ' has been renamed
or is no longer in the solution&lt;/em&gt;&amp;nbsp;in Visual Studio 2005.&amp;nbsp;The problem
is that from this message you have no idea what is actually the matter. We finally
figured out that this happens when a Web Project contains references to assemblies
or projects it can't find. Here's how you solve this:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Right click the Web project and select Property Pages. 
&lt;/li&gt;
&lt;li&gt;
A window will open which lists all the references, either to the bin-folder, GAC or
other projects in the solution.&lt;/li&gt;
&lt;li&gt;
Remove those that&amp;nbsp;show &lt;em&gt;(unavailable)&lt;/em&gt; behind it.&lt;/li&gt;
&lt;li&gt;
Chances are that now you can't build because the reference is not there. Simply add
the reference again and you should be OK.&lt;/li&gt;
&lt;/ol&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=5edafacd-a2a9-4666-92b9-48c39ab939fa" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,5edafacd-a2a9-4666-92b9-48c39ab939fa.aspx</comments>
      <category>ASP.NET</category>
      <category>Development</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=55731c9b-7bd1-40d8-8804-a94248c0abd8</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,55731c9b-7bd1-40d8-8804-a94248c0abd8.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,55731c9b-7bd1-40d8-8804-a94248c0abd8.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=55731c9b-7bd1-40d8-8804-a94248c0abd8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hoera! <a href="http://ajax.asp.net/">ASP.NET Ajax 1.0</a> is beschikbaar. Met ASP.NET
Ajax kun je pagina's maken die alleen die delen van de pagina verversen die ook daadwerkelijk
gewijzigd moeten worden. Dat scheelt netwerkverkeer, maar maakt bovendien de gebruikerssinterface
veel mooier.
</p>
        <p>
Maar, het is nog beter. Microsoft geeft ook de source code vrij van ASP.NET Ajax!
Je kunt de source code <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ef2c1acc-051a-4fe6-ad72-f3bed8623b43&amp;DisplayLang=en">hier</a> downloaden.
De source code wordt uitgegeven onder de <a href="http://www.microsoft.com/resources/sharedsource/licensingbasics/permissivelicense.mspx">Microsoft
Permissive License (Ms-Pl)</a>, die het toestaat om de broncode aan te passen en in
aangepast vorm te gebruiken en te verspreiden. Dat smaakt dus min of meer als open
source.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=55731c9b-7bd1-40d8-8804-a94248c0abd8" />
      </body>
      <title>ASP.NET Ajax 1.0 beschikbaar met source code</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,55731c9b-7bd1-40d8-8804-a94248c0abd8.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/01/31/ASPNETAjax10BeschikbaarMetSourceCode.aspx</link>
      <pubDate>Wed, 31 Jan 2007 08:04:04 GMT</pubDate>
      <description>&lt;p&gt;
Hoera! &lt;a href="http://ajax.asp.net/"&gt;ASP.NET Ajax 1.0&lt;/a&gt; is beschikbaar. Met ASP.NET
Ajax kun je pagina's maken die alleen die delen van de pagina verversen die ook daadwerkelijk
gewijzigd moeten worden. Dat scheelt netwerkverkeer, maar maakt bovendien de gebruikerssinterface
veel mooier.
&lt;/p&gt;
&lt;p&gt;
Maar, het is nog beter. Microsoft geeft ook de source code vrij van ASP.NET Ajax!
Je kunt de source code &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ef2c1acc-051a-4fe6-ad72-f3bed8623b43&amp;amp;DisplayLang=en"&gt;hier&lt;/a&gt; downloaden.
De source code wordt uitgegeven onder de &lt;a href="http://www.microsoft.com/resources/sharedsource/licensingbasics/permissivelicense.mspx"&gt;Microsoft
Permissive License (Ms-Pl)&lt;/a&gt;, die het toestaat om de broncode aan te passen en in
aangepast vorm te gebruiken en te verspreiden. Dat smaakt dus min of meer als open
source.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=55731c9b-7bd1-40d8-8804-a94248c0abd8" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,55731c9b-7bd1-40d8-8804-a94248c0abd8.aspx</comments>
      <category>ASP.NET</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=dfc60eb4-4f4c-428c-a961-ed44cdc69a1b</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,dfc60eb4-4f4c-428c-a961-ed44cdc69a1b.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,dfc60eb4-4f4c-428c-a961-ed44cdc69a1b.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=dfc60eb4-4f4c-428c-a961-ed44cdc69a1b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Van 25 t/m 29 maart is in San Fransisco <a href="http://www.ftponline.com/conferences/vslive/2007/sf/">VSLive</a> (<a href="http://www.ftponline.com/conferences/vslive/2007/sf/asplive.aspx">ASPLive</a>) waar
ik twee sessie ga doen over ASP.NET:
</p>
        <ul>
          <li>
Understanding Multi-Threading (in ASP.NET)</li>
          <li>
Creating Scalable Apps with Asynchronous Processing</li>
        </ul>
        <p>
De eerste sessie gaat in op het feit dat ASP.NET een multi-threaded omgeving is en bekijkt
wanneer en hoe dat relevant is voor ons als (web) ontwikkelaars. De tweede sessie bespreekt
asynchronous pages, handlers en modules, waarmee je de schallbaarheid van je
applicatie kunt verbeteren zonder extra hardware. Zie voor meer informatie de <a href="http://www.ftponline.com/conferences/vslive/2007/sf/asp_sessions.aspx">sessieomschrijvingen</a> op
de site van VSLive.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=dfc60eb4-4f4c-428c-a961-ed44cdc69a1b" />
      </body>
      <title>Spreker op VSLive (ASPLive) in San Fransisco van 25 t/m 29 maart</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,dfc60eb4-4f4c-428c-a961-ed44cdc69a1b.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/01/30/SprekerOpVSLiveASPLiveInSanFransiscoVan25Tm29Maart.aspx</link>
      <pubDate>Tue, 30 Jan 2007 10:52:13 GMT</pubDate>
      <description>&lt;p&gt;
Van 25 t/m 29 maart is in San Fransisco &lt;a href="http://www.ftponline.com/conferences/vslive/2007/sf/"&gt;VSLive&lt;/a&gt; (&lt;a href="http://www.ftponline.com/conferences/vslive/2007/sf/asplive.aspx"&gt;ASPLive&lt;/a&gt;)&amp;nbsp;waar
ik twee sessie ga doen over&amp;nbsp;ASP.NET:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Understanding Multi-Threading (in ASP.NET)&lt;/li&gt;
&lt;li&gt;
Creating Scalable Apps with Asynchronous Processing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
De eerste sessie gaat in op het feit dat ASP.NET een multi-threaded omgeving is en&amp;nbsp;bekijkt
wanneer en hoe dat relevant is voor ons als (web) ontwikkelaars. De tweede sessie&amp;nbsp;bespreekt
asynchronous pages, handlers&amp;nbsp;en modules, waarmee je de schallbaarheid van je
applicatie kunt verbeteren zonder extra hardware.&amp;nbsp;Zie voor meer informatie de &lt;a href="http://www.ftponline.com/conferences/vslive/2007/sf/asp_sessions.aspx"&gt;sessieomschrijvingen&lt;/a&gt; op
de site van VSLive.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=dfc60eb4-4f4c-428c-a961-ed44cdc69a1b" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,dfc60eb4-4f4c-428c-a961-ed44cdc69a1b.aspx</comments>
      <category>ASP.NET</category>
      <category>Evenementen</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=7017f9c7-4e3f-4cb9-904a-3052c7dc7d23</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,7017f9c7-4e3f-4cb9-904a-3052c7dc7d23.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,7017f9c7-4e3f-4cb9-904a-3052c7dc7d23.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=7017f9c7-4e3f-4cb9-904a-3052c7dc7d23</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've been invited to speak at <a href="http://www.ftponline.com/conferences/vslive/2007/sf/">VSLive</a> in
San Fransisco <a href="http://www.ftponline.com/conferences/vslive/2007/sf/asplive.aspx">ASPLive</a> from
March 25 to March 29. I will be doing two sessions on ASP.NET:
</p>
        <ul>
          <li>
Understanding Multi-Threading (in ASP.NET) 
</li>
          <li>
Creating Scalable Apps with Asynchronous Processing</li>
        </ul>
        <p>
The first session takes a closer look at the fact that ASP.NET is a multi-threaded
environment and what that means for us (web )developers. The second session looks
at asynchronous pages, handlers and modules, to increase the scalability of our apps
without adding new hardware. For more information checkout the <a href="http://www.ftponline.com/conferences/vslive/2007/sf/asp_sessions.aspx">session
abstracts</a> on the VSLive site.
</p>
        <p>
I hope to see you there.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=7017f9c7-4e3f-4cb9-904a-3052c7dc7d23" />
      </body>
      <title>Speaking at VSLive (ASPLive), San Fransisco March 25-29</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,7017f9c7-4e3f-4cb9-904a-3052c7dc7d23.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/01/30/SpeakingAtVSLiveASPLiveSanFransiscoMarch2529.aspx</link>
      <pubDate>Tue, 30 Jan 2007 10:45:51 GMT</pubDate>
      <description>&lt;p&gt;
I've been invited to speak at &lt;a href="http://www.ftponline.com/conferences/vslive/2007/sf/"&gt;VSLive&lt;/a&gt; in
San Fransisco &lt;a href="http://www.ftponline.com/conferences/vslive/2007/sf/asplive.aspx"&gt;ASPLive&lt;/a&gt; from
March 25 to March 29. I will be doing two&amp;nbsp;sessions on ASP.NET:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Understanding Multi-Threading (in ASP.NET) 
&lt;li&gt;
Creating Scalable Apps with Asynchronous Processing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The first session takes a closer look at the fact that ASP.NET is a multi-threaded
environment and&amp;nbsp;what that means for us (web )developers. The second session looks
at asynchronous pages, handlers and modules, to increase the scalability of our apps
without adding new hardware. For more information checkout the &lt;a href="http://www.ftponline.com/conferences/vslive/2007/sf/asp_sessions.aspx"&gt;session
abstracts&lt;/a&gt; on the VSLive site.
&lt;/p&gt;
&lt;p&gt;
I hope to see you there.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=7017f9c7-4e3f-4cb9-904a-3052c7dc7d23" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,7017f9c7-4e3f-4cb9-904a-3052c7dc7d23.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
      <category>Events</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=60268290-3cec-444f-852f-b5f2b45653eb</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,60268290-3cec-444f-852f-b5f2b45653eb.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,60268290-3cec-444f-852f-b5f2b45653eb.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=60268290-3cec-444f-852f-b5f2b45653eb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Since January 1st Slovenia is using the Euro, so all e-commerce need
to change to the euro. More accurately, the culture settings for Slovenia in Windows
need to be changed. Unfortunately there is no patch available yet for Windows and
you can't change the settings through the Configuration Panel (it'll change back automatically). Until
the patch arrives, the following code can remedy the situation:
</p>
        <font color="#008080" size="2">
          <p>
CultureInfo
</p>
        </font>
        <font color="#000000" size="2"> culture = (</font>
        <font color="#008080" size="2">CultureInfo</font>
        <font color="#000000" size="2">)</font>
        <font color="#008080" size="2">Thread</font>
        <font color="#000000" size="2">.CurrentThread.CurrentCulture.Clone();<br />
culture.NumberFormat.CurrencySymbol = </font>
        <font color="#800000" size="2">"€"</font>
        <font color="#000000" size="2">;<br />
culture.NumberFormat.CurrencyPositivePattern = 2; </font>
        <font color="#008000" size="2">//
€ 19.95<br /></font>
        <font color="#000000" size="2">culture.NumberFormat.CurrencyNegativePattern
= 12; </font>
        <font color="#008000" size="2">// € -19.85<br /></font>
        <font color="#008080" size="2">Thread</font>
        <font color="#000000" size="2">.CurrentThread.CurrentCulture
= culture;</font>
        <p>
          <font size="2">This changes the culture settings at thread level. Adding this to Application_BeginRequest in
global.asax works like a charm, but don't forget to check the initial culture first...
</font>
        </p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=60268290-3cec-444f-852f-b5f2b45653eb" />
      </body>
      <title>Slovenia and the euro</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,60268290-3cec-444f-852f-b5f2b45653eb.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/01/08/SloveniaAndTheEuro.aspx</link>
      <pubDate>Mon, 08 Jan 2007 14:50:22 GMT</pubDate>
      <description>&lt;p&gt;
Since January 1st Slovenia is using the&amp;nbsp;Euro, so all&amp;nbsp;e-commerce&amp;nbsp;need
to change to the&amp;nbsp;euro. More accurately,&amp;nbsp;the culture settings&amp;nbsp;for Slovenia&amp;nbsp;in&amp;nbsp;Windows
need to be changed. Unfortunately there is no patch available yet for Windows and
you can't change the settings through the Configuration Panel (it'll change back automatically).&amp;nbsp;Until
the patch arrives, the following code can remedy the situation:
&lt;/p&gt;
&lt;font color=#008080 size=2&gt; 
&lt;p&gt;
CultureInfo
&lt;/font&gt;&lt;font color=#000000 size=2&gt; culture = (&lt;/font&gt;&lt;font color=#008080 size=2&gt;CultureInfo&lt;/font&gt;&lt;font color=#000000 size=2&gt;)&lt;/font&gt;&lt;font color=#008080 size=2&gt;Thread&lt;/font&gt;&lt;font color=#000000 size=2&gt;.CurrentThread.CurrentCulture.Clone();&lt;br&gt;
culture.NumberFormat.CurrencySymbol = &lt;/font&gt;&lt;font color=#800000 size=2&gt;"€"&lt;/font&gt;&lt;font color=#000000 size=2&gt;;&lt;br&gt;
culture.NumberFormat.CurrencyPositivePattern = 2; &lt;/font&gt;&lt;font color=#008000 size=2&gt;//
€ 19.95&lt;br&gt;
&lt;/font&gt;&lt;font color=#000000 size=2&gt;culture.NumberFormat.CurrencyNegativePattern = 12; &lt;/font&gt;&lt;font color=#008000 size=2&gt;//
€ -19.85&lt;br&gt;
&lt;/font&gt;&lt;font color=#008080 size=2&gt;Thread&lt;/font&gt;&lt;font color=#000000 size=2&gt;.CurrentThread.CurrentCulture
= culture;&lt;/font&gt;&gt;
&lt;p&gt;
&lt;font size=2&gt;This changes the culture settings at thread level. Adding this to&amp;nbsp;Application_BeginRequest&amp;nbsp;in
global.asax works like a charm, but don't forget to check the initial culture first...
&lt;/p&gt;
&gt;&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=60268290-3cec-444f-852f-b5f2b45653eb" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,60268290-3cec-444f-852f-b5f2b45653eb.aspx</comments>
      <category>ASP.NET</category>
      <category>English</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=e9440ca8-3ccf-45bd-af2a-f7123835de4f</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,e9440ca8-3ccf-45bd-af2a-f7123835de4f.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,e9440ca8-3ccf-45bd-af2a-f7123835de4f.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=e9440ca8-3ccf-45bd-af2a-f7123835de4f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Sinds 1 januari gebruikt slovenie de euro en dus moeten alle e-commerce sites over
op de euro. Of eigenlijk beter gezegd, de culture settings van Windows moeten nu gebruik
maken van de euro voor Slovenie. Helaas is dit niet aan te passen (verandert automatisch
terug) en zou er dus een Windows update moeten komen. Zolang die er niet is, moet
je de standaardinstellingen overschrijven. Dit kan met de volgende code:
</p>
        <font color="#008080" size="2">
          <p>
CultureInfo
</p>
        </font>
        <font color="#000000" size="2"> culture = (</font>
        <font color="#008080" size="2">CultureInfo</font>
        <font color="#000000" size="2">)</font>
        <font color="#008080" size="2">Thread</font>
        <font size="2">
          <font color="#000000">.CurrentThread.CurrentCulture.Clone();<br /></font>culture.NumberFormat.CurrencySymbol = </font>
        <font color="#800000" size="2">"€"</font>
        <font size="2">;<br />
culture.NumberFormat.CurrencyPositivePattern = 2; </font>
        <font color="#008000" size="2">//
€ 19.95<br /></font>
        <font size="2">culture.NumberFormat.CurrencyNegativePattern = 12; </font>
        <font color="#008000" size="2">//
€ -19.85<br /></font>
        <font color="#008080" size="2">Thread</font>
        <font size="2">.CurrentThread.CurrentCulture
= culture;</font>
        <p>
          <font size="2">Hiermee wordt op thread niveau de CultureInfo aangepast. Deze zet je
tijdelijk in Application_BeginRequest van global.asax en dan werkt het prima. Overigens
niet vergeten of the thread wel Sloveens is om mee te beginnen...
</font>
        </p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=e9440ca8-3ccf-45bd-af2a-f7123835de4f" />
      </body>
      <title>Slovenie en de euro</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,e9440ca8-3ccf-45bd-af2a-f7123835de4f.aspx</guid>
      <link>http://michiel.vanotegem.nl/2007/01/08/SlovenieEnDeEuro.aspx</link>
      <pubDate>Mon, 08 Jan 2007 14:45:47 GMT</pubDate>
      <description>&lt;p&gt;
Sinds 1 januari gebruikt slovenie de euro en dus moeten alle e-commerce sites over
op de euro. Of eigenlijk beter gezegd, de culture settings van Windows moeten nu gebruik
maken van de euro voor Slovenie. Helaas is dit niet aan te passen (verandert automatisch
terug) en zou er dus een Windows update moeten komen. Zolang die er niet is, moet
je de standaardinstellingen overschrijven. Dit kan met de volgende code:
&lt;/p&gt;
&lt;font color=#008080 size=2&gt; 
&lt;p&gt;
CultureInfo
&lt;/font&gt;&lt;font color=#000000 size=2&gt; culture = (&lt;/font&gt;&lt;font color=#008080 size=2&gt;CultureInfo&lt;/font&gt;&lt;font color=#000000 size=2&gt;)&lt;/font&gt;&lt;font color=#008080 size=2&gt;Thread&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt;.CurrentThread.CurrentCulture.Clone();&lt;br&gt;
&lt;/font&gt;culture.NumberFormat.CurrencySymbol = &lt;/font&gt;&lt;font color=#800000 size=2&gt;"€"&lt;/font&gt;&lt;font size=2&gt;;&lt;br&gt;
culture.NumberFormat.CurrencyPositivePattern = 2; &lt;/font&gt;&lt;font color=#008000 size=2&gt;//
€ 19.95&lt;br&gt;
&lt;/font&gt;&lt;font size=2&gt;culture.NumberFormat.CurrencyNegativePattern = 12; &lt;/font&gt;&lt;font color=#008000 size=2&gt;//
€ -19.85&lt;br&gt;
&lt;/font&gt;&lt;font color=#008080 size=2&gt;Thread&lt;/font&gt;&lt;font size=2&gt;.CurrentThread.CurrentCulture
= culture;&lt;/font&gt;&gt;
&lt;p&gt;
&lt;font size=2&gt;Hiermee wordt op thread niveau de CultureInfo aangepast. Deze zet je
tijdelijk in Application_BeginRequest van global.asax en dan werkt het prima. Overigens
niet vergeten of the thread wel Sloveens is om mee te beginnen...
&lt;/p&gt;
&gt;&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=e9440ca8-3ccf-45bd-af2a-f7123835de4f" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,e9440ca8-3ccf-45bd-af2a-f7123835de4f.aspx</comments>
      <category>ASP.NET</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=897c85bc-63ea-43e0-9cdf-de1c79fbf3b0</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,897c85bc-63ea-43e0-9cdf-de1c79fbf3b0.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,897c85bc-63ea-43e0-9cdf-de1c79fbf3b0.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=897c85bc-63ea-43e0-9cdf-de1c79fbf3b0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Visual Studio 2005 SP1 is beschikbaar.
Het lost allerlei bugs op en biedt een aantal verbeteringen, waaronder<br /><span style="color: rgb(0, 0, 0);"><ul><li>
Nieuwe project types voor ASP.NET<br /></li><li>
Ondersteuning voor nieuwe processor types voor code generatie en profiling</li><li>
Integratie van Excel 2007 en Project 2007 met Team Foundation Server</li><li>
Ondersteuning voor Windows Embedded 6.0 platform en tools</li></ul>
Meer informatie is te vinden op de MSDN pagina <a href="http://msdn.microsoft.com/vstudio/support/vs2005sp1/default.aspx">Visual
Studio 2005 Service Pack 1 (SP1)</a>.</span><img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=897c85bc-63ea-43e0-9cdf-de1c79fbf3b0" /></body>
      <title>Visual Studio 2005 SP1 beschikbaar</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,897c85bc-63ea-43e0-9cdf-de1c79fbf3b0.aspx</guid>
      <link>http://michiel.vanotegem.nl/2006/12/18/VisualStudio2005SP1Beschikbaar.aspx</link>
      <pubDate>Mon, 18 Dec 2006 12:05:13 GMT</pubDate>
      <description>Visual Studio 2005 SP1 is beschikbaar. Het lost allerlei bugs op en biedt een aantal verbeteringen, waaronder&lt;br&gt;
&lt;span style="color: rgb(0, 0, 0);"&gt;
&lt;ul&gt;
&lt;li&gt;
Nieuwe project types voor ASP.NET&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Ondersteuning voor nieuwe processor types voor code generatie en profiling&lt;/li&gt;
&lt;li&gt;
Integratie van Excel 2007 en Project 2007 met Team Foundation Server&lt;/li&gt;
&lt;li&gt;
Ondersteuning voor Windows Embedded 6.0 platform en tools&lt;/li&gt;
&lt;/ul&gt;
Meer informatie is te vinden op de MSDN pagina &lt;a href="http://msdn.microsoft.com/vstudio/support/vs2005sp1/default.aspx"&gt;Visual
Studio 2005 Service Pack 1 (SP1)&lt;/a&gt;.&lt;/span&gt;&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=897c85bc-63ea-43e0-9cdf-de1c79fbf3b0" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,897c85bc-63ea-43e0-9cdf-de1c79fbf3b0.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET</category>
      <category>Development</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=007a2b73-236d-4381-ba7b-91707903a8b4</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,007a2b73-236d-4381-ba7b-91707903a8b4.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,007a2b73-236d-4381-ba7b-91707903a8b4.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=007a2b73-236d-4381-ba7b-91707903a8b4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Microsoft heeft een security patch uitgebracht voor Visual Studio. Het "gat" in VS2005
wordt als kritiek beschouwd, dus is het heeeel verstandig de patch te installeren.
Zie voor meer informatie en download Microsoft <a href="http://www.microsoft.com/technet/security/Bulletin/MS06-073.mspx">Security
Bulletin MS06-073</a>.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=007a2b73-236d-4381-ba7b-91707903a8b4" />
      </body>
      <title>Critical Security Patch voor Visual Studio 2005</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,007a2b73-236d-4381-ba7b-91707903a8b4.aspx</guid>
      <link>http://michiel.vanotegem.nl/2006/12/13/CriticalSecurityPatchVoorVisualStudio2005.aspx</link>
      <pubDate>Wed, 13 Dec 2006 12:05:09 GMT</pubDate>
      <description>&lt;p&gt;
Microsoft heeft een security patch uitgebracht voor Visual Studio. Het "gat" in VS2005
wordt als kritiek beschouwd, dus is het heeeel verstandig de patch te installeren.
Zie voor meer informatie en download Microsoft &lt;a href="http://www.microsoft.com/technet/security/Bulletin/MS06-073.mspx"&gt;Security
Bulletin MS06-073&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=007a2b73-236d-4381-ba7b-91707903a8b4" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,007a2b73-236d-4381-ba7b-91707903a8b4.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET</category>
      <category>Development</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=c26cecba-c5e9-4d60-aa11-fb78b4f1a733</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,c26cecba-c5e9-4d60-aa11-fb78b4f1a733.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,c26cecba-c5e9-4d60-aa11-fb78b4f1a733.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=c26cecba-c5e9-4d60-aa11-fb78b4f1a733</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Nu Internet Explorer 7 uitgerold wordt op de meeste computers ontstaat de situatie
dat sites zowel met IE6 als IE7 goed moeten werken. Dit testen vanaf 1 machine is
lastig omdat IE7 over IE6 heen gezet wordt. Maar geen nood, je kunt altijd nog gebruik
maken van Virtual PC om in een virtuele machine met IE6 te testen (of IE7 natuurlijk
als IE6 op je eigen machine staat). Microsoft biedt hiervoor een kant-en-klare
Virtual PC. Meer informatie en de nodige download links vind je op het <a href="IE6 and IE7 Running on a Single Machine">IEBlog</a>.
Bij The Vision Web werken we al tijden met Virtual PC voor het ontwikkelen en testen
van applicaties, dus waren we zelf ook al op deze oplossing gekomen. Het is echter
wel erg handig dat Microsoft een standaard Virtual PC aanbiedit hiervoor.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=c26cecba-c5e9-4d60-aa11-fb78b4f1a733" />
      </body>
      <title>Testen met IE6 en IE7</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,c26cecba-c5e9-4d60-aa11-fb78b4f1a733.aspx</guid>
      <link>http://michiel.vanotegem.nl/2006/12/11/TestenMetIE6EnIE7.aspx</link>
      <pubDate>Mon, 11 Dec 2006 13:43:29 GMT</pubDate>
      <description>&lt;p&gt;
Nu Internet Explorer 7 uitgerold wordt op de meeste computers ontstaat de situatie
dat sites zowel met IE6 als IE7 goed moeten werken. Dit testen vanaf 1 machine is
lastig omdat IE7 over IE6 heen gezet wordt. Maar geen nood, je kunt altijd nog gebruik
maken van Virtual PC om in een virtuele machine met IE6 te testen (of IE7 natuurlijk
als IE6 op je eigen machine staat). Microsoft&amp;nbsp;biedt hiervoor een kant-en-klare
Virtual PC. Meer informatie en de nodige download links vind je op het &lt;a href="IE6 and IE7 Running on a Single Machine"&gt;IEBlog&lt;/a&gt;.
Bij The Vision Web werken we al tijden met Virtual PC voor het ontwikkelen en testen
van applicaties, dus waren we zelf ook al op deze oplossing gekomen. Het is echter
wel erg handig dat Microsoft een standaard Virtual PC aanbiedit hiervoor.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=c26cecba-c5e9-4d60-aa11-fb78b4f1a733" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,c26cecba-c5e9-4d60-aa11-fb78b4f1a733.aspx</comments>
      <category>ASP.NET</category>
      <category>Development</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=0bd76de2-9910-4e0b-8c5b-47aef39def4e</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,0bd76de2-9910-4e0b-8c5b-47aef39def4e.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,0bd76de2-9910-4e0b-8c5b-47aef39def4e.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=0bd76de2-9910-4e0b-8c5b-47aef39def4e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.pearsoneducation.nl/com/boek1com.asp?isbn=9043013250">
          <img alt="" hspace="0" src="http://www.pearsoneducation.nl/images1/9043013250.jpg" align="right" border="0" />
        </a>
        <p>
Vandaag ontving ik met de post het eerste exemplaar van mijn nieuwe boek <a href="http://www.pearsoneducation.nl/com/boek1com.asp?isbn=9043013250">ASP.NET
2.0 - de basis</a>. Het ziet er mooi uit en ik ben er dan ook trots op. Het behandelt
de beginselen van ASP.NET 2.0 op zo'n manier dat je na het lezen van het boek ook
echt wesites kunt maken met beveiliging, gegevens in een database, gebruikersprofielen
en nog meer. Het boek is uiteraard verkrijgbaar via de boekhandel en diverse websites,
maar kan ook <a href="http://www.pearsoneducation.nl/com/boek1com.asp?isbn=9043013250Vandaag">besteld
worden bij uitgever Pearson Education</a>.
</p>
        <p>
Ik wil bij deze alle mensen die meegewerkt hebben aan het boek hartelijk bedanken.
John Numan die mij gevraagd heeft het boek te schrijven, Sandra Wouters die alles
in goede banen geleid heeft en Cynthia van Heusden voor de tekstcorrectie. Tenslotte
ben ik een enorme dank verschuldigd aan mijn vrouw Annette. Niet alleen voor haar
tekstcorrectie en suggesties om het boek beter te maken, maar ook voor ruimte die
ze me gegeven heeft om het boek te schrijven.
</p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=0bd76de2-9910-4e0b-8c5b-47aef39def4e" />
      </body>
      <title>M'n boek is uit!</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,0bd76de2-9910-4e0b-8c5b-47aef39def4e.aspx</guid>
      <link>http://michiel.vanotegem.nl/2006/12/02/MnBoekIsUit.aspx</link>
      <pubDate>Sat, 02 Dec 2006 21:57:16 GMT</pubDate>
      <description>&lt;a href="http://www.pearsoneducation.nl/com/boek1com.asp?isbn=9043013250"&gt;&lt;img alt="" hspace=0 src="http://www.pearsoneducation.nl/images1/9043013250.jpg" align=right border=0&gt;&lt;/a&gt; 
&lt;p&gt;
Vandaag ontving ik met de post het eerste exemplaar van mijn nieuwe boek &lt;a href="http://www.pearsoneducation.nl/com/boek1com.asp?isbn=9043013250"&gt;ASP.NET
2.0 - de basis&lt;/a&gt;. Het ziet er mooi uit en ik ben er dan ook trots op. Het behandelt
de beginselen van ASP.NET 2.0 op zo'n manier dat je na het lezen van het boek ook
echt wesites kunt maken met beveiliging, gegevens in een database, gebruikersprofielen
en nog meer. Het boek is uiteraard verkrijgbaar via de boekhandel en diverse websites,
maar kan ook &lt;a href="http://www.pearsoneducation.nl/com/boek1com.asp?isbn=9043013250Vandaag"&gt;besteld
worden bij&amp;nbsp;uitgever Pearson Education&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Ik wil bij deze alle mensen die meegewerkt hebben aan het boek hartelijk bedanken.
John Numan die mij gevraagd heeft het boek te schrijven, Sandra Wouters die alles
in goede banen geleid heeft en Cynthia van Heusden voor de tekstcorrectie. Tenslotte
ben ik een enorme dank verschuldigd aan mijn vrouw Annette. Niet alleen voor haar
tekstcorrectie en suggesties om het boek beter te maken, maar ook voor ruimte die
ze me gegeven heeft om het boek te schrijven.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=0bd76de2-9910-4e0b-8c5b-47aef39def4e" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,0bd76de2-9910-4e0b-8c5b-47aef39def4e.aspx</comments>
      <category>ASP.NET</category>
      <category>Nederlands</category>
    </item>
    <item>
      <trackback:ping>http://michiel.vanotegem.nl/Trackback.aspx?guid=5dc4c484-3c62-44ab-989a-e0f686db44b0</trackback:ping>
      <pingback:server>http://michiel.vanotegem.nl/pingback.aspx</pingback:server>
      <pingback:target>http://michiel.vanotegem.nl/PermaLink,guid,5dc4c484-3c62-44ab-989a-e0f686db44b0.aspx</pingback:target>
      <dc:creator>Michiel van Otegem</dc:creator>
      <wfw:comment>http://michiel.vanotegem.nl/CommentView,guid,5dc4c484-3c62-44ab-989a-e0f686db44b0.aspx</wfw:comment>
      <wfw:commentRss>http://michiel.vanotegem.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=5dc4c484-3c62-44ab-989a-e0f686db44b0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Commerce Server is een van die producten die altijd net buiten m'n gezichtsveld
ligt. Binnen The Vision Web hebben we een aantal experts op het gebied, dus het is
niet echt nodig om me daar mee te bemoeien. Nu CS2007 gebaseerd is op ASP.NET 2.0
weet ik echter ineens veel meer van de algemene werking dan voorheen. Door het baseren
op ASP.NET 2.0 is CS2007 overigens niet meer bruikbaar met ASP, omdat er geen COM
interfaces meer zijn. Die zou je wel weer kunnen maken door de Web Services interface
te wrappen, maar dat moet je niet willen.
</p>
        <p>
De spreker (Ryan Dononvan) weet waar hij het over heeft, maar dat mag ook wel
als je onderdeel bent van het team dat het maakt. Wel lopen z'n demo's nog redelijk
stroef. Dat een <em>iisreset</em> nodig is om een nieuw thema (look &amp; feel) toe
te passen vind ik wel dubieus. Een half uur in de sessie heb ik alleen nog maar ASP.NET
2.0 dingen gezien, met uitzondering van de standaard globalization zaken.
</p>
        <p>
Wat me vooral opvalt is dat CS2007 niet een beetje, maar echt veeeeel beter doordacht
is dan z'n voorloper. Het is niet meer een verzameling losse handige tools, maar veel
meer gericht op het proces. Zo kunnen allerlei business rules gedeeld worden tussen
verschillende onderdelen, zodat je niet meer op meerdere plaatsen dezelfde rules moet
implementeren. De BizDesk is ook weg en vevangen door een Windows SmartClient applicatie
die communiceert via de Web Services interface. De code van de SmartClient is beschikbaar
in de Partner SDK en je kunt 'm daarom aanpassen aan eigen wensen. Dat geldt ook voor
de rapportage, omdat die gedaan wordt via Reporting Services. Gek genoeg voor zowel
SQL 2000 als SQL 2005, terwijl CS2007 alleen draait op SQL 2005 (althans dat zei Ryan
eerder in z'n presentatie).
</p>
        <p>
          <em>Tip voor de spreker (demo's geven les 1): zorg dat je alle updates geinstalleerd
hebt en zet auto update daarna uit! Nu moest hij wachten tot zijn VPC opnieuw opgestart
was na het installeren van updates.</em>
        </p>
        <img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=5dc4c484-3c62-44ab-989a-e0f686db44b0" />
      </body>
      <title>TechEd Developers 2006: DEV234 - Commerce Server 2007</title>
      <guid isPermaLink="false">http://michiel.vanotegem.nl/PermaLink,guid,5dc4c484-3c62-44ab-989a-e0f686db44b0.aspx</guid>
      <link>http://michiel.vanotegem.nl/2006/11/07/TechEdDevelopers2006DEV234CommerceServer2007.aspx</link>
      <pubDate>Tue, 07 Nov 2006 11:02:21 GMT</pubDate>
      <description>&lt;p&gt;
Commerce&amp;nbsp;Server is een van die producten die altijd net buiten m'n gezichtsveld
ligt. Binnen The Vision Web hebben we een aantal experts op het gebied, dus het is
niet echt nodig om me daar mee te bemoeien. Nu CS2007 gebaseerd is op ASP.NET 2.0
weet ik echter ineens veel meer van de algemene werking dan voorheen. Door het baseren
op ASP.NET 2.0 is CS2007 overigens niet meer bruikbaar met ASP, omdat er geen COM
interfaces meer zijn. Die zou je wel weer kunnen maken door de Web Services interface
te wrappen, maar dat moet je niet willen.
&lt;/p&gt;
&lt;p&gt;
De spreker (Ryan Dononvan)&amp;nbsp;weet waar hij het over heeft, maar dat mag ook wel
als je onderdeel bent van het team dat het maakt. Wel lopen z'n demo's nog redelijk
stroef. Dat een &lt;em&gt;iisreset&lt;/em&gt; nodig is om een nieuw thema (look &amp;amp; feel) toe
te passen vind ik wel dubieus. Een half uur in de sessie heb ik alleen nog maar ASP.NET
2.0 dingen gezien, met uitzondering van de standaard globalization zaken.
&lt;/p&gt;
&lt;p&gt;
Wat me vooral opvalt is dat CS2007 niet een beetje, maar echt veeeeel beter doordacht
is dan z'n voorloper. Het is niet meer een verzameling losse handige tools, maar veel
meer gericht op het proces. Zo kunnen allerlei business rules gedeeld worden&amp;nbsp;tussen
verschillende onderdelen, zodat je niet meer op meerdere plaatsen dezelfde rules moet
implementeren. De BizDesk is ook weg en vevangen door een Windows SmartClient applicatie
die communiceert via de Web Services interface. De code van de SmartClient is beschikbaar
in de Partner SDK en je kunt 'm daarom aanpassen aan eigen wensen. Dat geldt ook voor
de rapportage, omdat die gedaan wordt via Reporting Services. Gek genoeg voor zowel
SQL 2000 als SQL 2005, terwijl CS2007 alleen draait op SQL 2005 (althans dat zei Ryan
eerder in z'n presentatie).
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Tip voor de spreker (demo's geven les 1): zorg dat je alle updates geinstalleerd
hebt en zet auto update daarna uit! Nu moest hij wachten tot zijn VPC opnieuw opgestart
was na het installeren van updates.&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://michiel.vanotegem.nl/aggbug.ashx?id=5dc4c484-3c62-44ab-989a-e0f686db44b0" /&gt;</description>
      <comments>http://michiel.vanotegem.nl/CommentView,guid,5dc4c484-3c62-44ab-989a-e0f686db44b0.aspx</comments>
      <category>ASP.NET</category>
      <category>Evenementen</category>
      <category>Nederlands</category>
      <category>Review</category>
    </item>
  </channel>
</rss>