<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>Daniel Fisher(lennybacon) - SOA, Data and the Web</title>
  <link rel="alternate" type="text/html" href="http://www.lennybacon.com/" />
  <link rel="self" href="http://www.lennybacon.com/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2007-11-21T12:55:11.7995+01:00</updated>
  <author>
    <name>Daniel Fisher(lennybacon)</name>
  </author>
  <subtitle>newtelligence powered</subtitle>
  <id>http://www.lennybacon.com/</id>
  <generator uri="http://www.dasblog.net" version="1.9.7174.0">DasBlog</generator>
  <entry>
    <title>Code separation not possible with ASP.NET AJAX ScriptManager</title>
    <link rel="alternate" type="text/html" href="http://www.lennybacon.com/CodeSeparationNotPossibleWithASPNETAJAXScriptManager.aspx" />
    <id>http://www.lennybacon.com/PermaLink,guid,1742b835-94fa-4ca5-bc3b-f4ba5c1697b1.aspx</id>
    <published>2007-11-21T12:55:11.7995+01:00</published>
    <updated>2007-11-21T12:55:11.7995+01:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <img width="0" height="0" src="http://www.lennybacon.com/aggbug.ashx?id=1742b835-94fa-4ca5-bc3b-f4ba5c1697b1" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Simplify LINQ code?</title>
    <link rel="alternate" type="text/html" href="http://www.lennybacon.com/SimplifyLINQCode.aspx" />
    <id>http://www.lennybacon.com/PermaLink,guid,20a85df8-559d-431b-810e-7487b5ef85c5.aspx</id>
    <published>2007-10-19T16:20:12.578125+02:00</published>
    <updated>2007-10-19T16:21:41.359375+02:00</updated>
    <category term="C#" label="C#" scheme="http://www.lennybacon.com/CategoryView,category,C%23.aspx" />
    <category term="Projects" label="Projects" scheme="http://www.lennybacon.com/CategoryView,category,Projects.aspx" />
    <content type="html">&lt;p&gt;
A few days ago a developer at a customer asked me how he could simplify the following
code as he identified a pattern: X tries and the error handling.
&lt;/p&gt;
&lt;!--
{\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Consolas;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red0\green0\blue0;\red43\green145\blue175;\red163\green21\blue21;}??\fs24 \cf1 public\cf0  PlanungsGruppenLesenA PlanungsGruppenLesen(PlanungsGruppenLesenF param)\par ??\{\par ??    PlanungsGruppenLesenA ret = \cf1 new\cf0  PlanungsGruppenLesenA();\par ??\par ??    \cf1 if\cf0  (ret.PlanungsGruppen == \cf1 null\cf0 )\par ??    \{\par ??        \cf1 throw\cf0  \cf1 new\cf0  \cf4 ArgumentNullException\cf0 (\cf5 "param.PlanungsGruppen"\cf0 );\par ??    \}\par ??    \cf1 int\cf0  nRetry = 0;\par ??    \cf1 while\cf0  (nRetry &amp;lt; DBWerkzeug.MaxWiederholungen)\par ??    \{\par ??        \cf1 try\par ??\cf0         \{\par ??            \cf1 using\cf0  (XXX_POC.JOMOSOFT_POC db = \par ??                \cf1 new\cf0  XXX_POC.JOMOSOFT_POC(DBWerkzeug.GetConnectionString()))\par ??            \{\par ??                \cf1 var\cf0  q = \par ??                    \cf1 from\cf0  p \cf1 in\cf0  db.Stammdaten_Planungsgruppe\par ??                    \cf1 orderby\cf0  p.Name.ToLower()\par ??                    \cf1 select\cf0  \cf1 new\cf0  PlanungsGruppeDM\par ??                    \{\par ??                        ID = p.Rowid,\par ??                        Name = p.Name\par ??                    \};\par ??                ret.PlanungsGruppen = q.ToList&amp;lt;PlanungsGruppeDM&amp;gt;();\par ??            \} \par ??        \}\par ??        \cf1 catch\cf0  (ChangeConflictException e)\par ??        \{\par ??            nRetry++;\par ??            \cf1 if\cf0  (nRetry &amp;gt;= DBWerkzeug.MaxWiederholungen)\par ??            \{\par ??                ret.FehlerText = e.Message;\par ??                ret.HatFehler = \cf1 true\cf0 ;\par ??                \cf1 throw\cf0 ;\par ??            \}\par ??        \}\par ??        \cf1 catch\cf0  (\cf4 Exception\cf0  e)\par ??        \{\par ??            ret.FehlerText = e.Message;\par ??            ret.HatFehler = \cf1 true\cf0 ;\par ??            \cf1 throw\cf0 ;\par ??        \}\par ??    \}\par ??    \cf1 return\cf0  ret;\par ??\}}
--&gt;
&lt;div style="font-family: consolas," white;?="white;?" background:="background:" black;="black;" color:="color:" 10pt;="10pt;" font-size:="font-size:" mono;="mono;" New,="New," Courier="Courier" sans?,="sans?," Lucida="Lucida"&gt;
&lt;p style="margin: 0px"&gt;
&lt;span style="color: blue"&gt;public&lt;/span&gt; PlanungsGruppenLesenA PlanungsGruppenLesen( 
&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; PlanungsGruppenLesenF param)
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
{
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; PlanungsGruppenLesenA ret = &lt;span style="color: blue"&gt;new&lt;/span&gt; PlanungsGruppenLesenA();
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;if&lt;/span&gt; (ret.PlanungsGruppen == &lt;span style="color: blue"&gt;null&lt;/span&gt;)
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;throw&lt;/span&gt; &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;ArgumentNullException&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;param.PlanungsGruppen&amp;quot;&lt;/span&gt;);
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; }
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;int&lt;/span&gt; nRetry = 0;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;while&lt;/span&gt; (nRetry &amp;lt; DBWerkzeug.MaxWiederholungen)
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;try&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;using&lt;/span&gt; (XXX_POC.POC
db = 
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;new&lt;/span&gt; XXX_POC.POC( 
&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
DBWerkzeug.GetConnectionString()))
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;var&lt;/span&gt; q
= 
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;from&lt;/span&gt; p &lt;span style="color: blue"&gt;in&lt;/span&gt; db.Stammdaten_Planungsgruppe
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;orderby&lt;/span&gt; p.Name.ToLower()
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;select&lt;/span&gt; &lt;span style="color: blue"&gt;new&lt;/span&gt; PlanungsGruppeDM
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
{
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
ID = p.Rowid,
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
Name = p.Name
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
};
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
ret.PlanungsGruppen = q.ToList&amp;lt;PlanungsGruppeDM&amp;gt;();
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; } 
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; }
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;catch&lt;/span&gt; (ChangeConflictException
e)
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; nRetry++;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;if&lt;/span&gt; (nRetry
&amp;gt;= DBWerkzeug.MaxWiederholungen)
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
ret.FehlerText = e.Message;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
ret.HatFehler = &lt;span style="color: blue"&gt;true&lt;/span&gt;;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;throw&lt;/span&gt;;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; }
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; }
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;catch&lt;/span&gt; (&lt;span style="color: #2b91af"&gt;Exception&lt;/span&gt; e)
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; ret.FehlerText
= e.Message;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; ret.HatFehler = &lt;span style="color: blue"&gt;true&lt;/span&gt;;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;throw&lt;/span&gt;;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; }
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; }
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;return&lt;/span&gt; ret;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
}
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
I ended up with this:
&lt;/p&gt;
&lt;!--
{\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Consolas;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red0\green0\blue0;\red43\green145\blue175;\red163\green21\blue21;}??\fs24 \cf1 public\cf0  PlanungsGruppenLesenA PlanungsGruppenLesen(PlanungsGruppenLesenF param)\par ??\{\par ??    PlanungsGruppenLesenA ret = \cf1 new\cf0  PlanungsGruppenLesenA();\par ??\par ??    \cf1 if\cf0  (ret.PlanungsGruppen == \cf1 null\cf0 )\par ??    \{\par ??        \cf1 throw\cf0  \cf1 new\cf0  \cf4 ArgumentNullException\cf0 (\cf5 "param.PlanungsGruppen"\cf0 );\par ??    \}\par ??    ret.PlanungsGruppen = CatchExceptions&amp;lt;PlanungsGruppeDM&amp;gt;(\par ??        \cf1 delegate\par ??\cf0         \{ \par ??            \cf1 using\cf0  (XXX_POC.JOMOSOFT_POC db = \par ??                \cf1 new\cf0  XXX_POC.JOMOSOFT_POC(DBWerkzeug.GetConnectionString()))\par ??            \{\par ??                \cf1 var\cf0  q = \par ??                    \cf1 from\cf0  p \cf1 in\cf0  db.Stammdaten_Planungsgruppe\par ??                    \cf1 orderby\cf0  p.Name.ToLower()\par ??                    \cf1 select\cf0  \cf1 new\cf0  PlanungsGruppeDM\par ??                    \{\par ??                        ID = p.Rowid,\par ??                        Name = p.Name\par ??                    \};\par ??                \cf1 return\cf0  q.ToList&amp;lt;PlanungsGruppeDM&amp;gt;();\par ??            \}\par ??        \},\par ??        ret);            \par ??    \cf1 return\cf0  ret;\par ??\}}
--&gt;
&lt;div style="font-family: consolas," white;?="white;?" background:="background:" black;="black;" color:="color:" 10pt;="10pt;" font-size:="font-size:" mono;="mono;" New,="New," Courier="Courier" sans?,="sans?," Lucida="Lucida"&gt;
&lt;p style="margin: 0px"&gt;
&lt;span style="color: blue"&gt;public&lt;/span&gt; PlanungsGruppenLesenA PlanungsGruppenLesen( 
&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; PlanungsGruppenLesenF param)
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
{
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; PlanungsGruppenLesenA ret = &lt;span style="color: blue"&gt;new&lt;/span&gt; PlanungsGruppenLesenA();
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;if&lt;/span&gt; (ret.PlanungsGruppen == &lt;span style="color: blue"&gt;null&lt;/span&gt;)
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;throw&lt;/span&gt; &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;ArgumentNullException&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;param.PlanungsGruppen&amp;quot;&lt;/span&gt;);
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; }
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; ret.PlanungsGruppen = CatchExceptions&amp;lt;PlanungsGruppeDM&amp;gt;(
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;delegate&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; { 
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;using&lt;/span&gt; (XXX_POC.POC
db = 
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;new&lt;/span&gt; XXX_POC.POC( 
&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
DBWerkzeug.GetConnectionString()))
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;var&lt;/span&gt; q
= 
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;from&lt;/span&gt; p &lt;span style="color: blue"&gt;in&lt;/span&gt; db.Stammdaten_Planungsgruppe
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;orderby&lt;/span&gt; p.Name.ToLower()
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;select&lt;/span&gt; &lt;span style="color: blue"&gt;new&lt;/span&gt; PlanungsGruppeDM
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
{
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
ID = p.Rowid,
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
Name = p.Name
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
};
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;return&lt;/span&gt; q.ToList&amp;lt;PlanungsGruppeDM&amp;gt;();
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; }
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; },
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; ret);&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; 
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;return&lt;/span&gt; ret;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
}
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
What calls the encapsulated X tries and the error handling:
&lt;/p&gt;
&lt;!--
{\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Consolas;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red0\green0\blue0;\red43\green145\blue175;}??\fs24 \cf1 public\cf0  \cf1 delegate\cf0  List&amp;lt;T&amp;gt; MachMal&amp;lt;T&amp;gt;();\par ??\par ??\cf1 public\cf0  \cf1 static\cf0  List&amp;lt;T&amp;gt; CatchExceptions&amp;lt;T&amp;gt;(MachMal&amp;lt;T&amp;gt; machMichFertig, BasisA ret)\par ??\{\par ??    \cf1 int\cf0  nRetry = 0;\par ??    \cf1 while\cf0  (nRetry &amp;lt; DBWerkzeug.MaxWiederholungen)\par ??    \{\par ??        \cf1 try\par ??\cf0         \{\par ??            \cf1 return\cf0  machMichFertig();\par ??        \}\par ??        \cf1 catch\cf0  (ChangeConflictException e)\par ??        \{\par ??            nRetry++;\par ??            \cf1 if\cf0  (nRetry &amp;gt;= DBWerkzeug.MaxWiederholungen)\par ??            \{\par ??                ret.FehlerText = e.Message;\par ??                ret.HatFehler = \cf1 true\cf0 ;\par ??                \cf1 throw\cf0 ;\par ??            \}\par ??        \}\par ??        \cf1 catch\cf0  (\cf4 Exception\cf0  e)\par ??        \{\par ??            ret.FehlerText = e.Message;\par ??            ret.HatFehler = \cf1 true\cf0 ;\par ??            \cf1 throw\cf0 ;\par ??        \}\par ??    \}\par ??    \cf1 return\cf0  \cf1 null\cf0 ;\par ??\}}
--&gt;
&lt;div style="font-family: consolas," white;?="white;?" background:="background:" black;="black;" color:="color:" 10pt;="10pt;" font-size:="font-size:" mono;="mono;" New,="New," Courier="Courier" sans?,="sans?," Lucida="Lucida"&gt;
&lt;p style="margin: 0px"&gt;
&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;delegate&lt;/span&gt; List&amp;lt;T&amp;gt;
MachMal&amp;lt;T&amp;gt;();
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;static&lt;/span&gt; List&amp;lt;T&amp;gt;
CatchExceptions&amp;lt;T&amp;gt;(MachMal&amp;lt;T&amp;gt; machMichFertig, BasisA ret)
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
{
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;int&lt;/span&gt; nRetry = 0;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;while&lt;/span&gt; (nRetry &amp;lt; DBWerkzeug.MaxWiederholungen)
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;try&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;return&lt;/span&gt; machMichFertig();
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; }
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;catch&lt;/span&gt; (ChangeConflictException
e)
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; nRetry++;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;if&lt;/span&gt; (nRetry
&amp;gt;= DBWerkzeug.MaxWiederholungen)
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
ret.FehlerText = e.Message;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;
ret.HatFehler = &lt;span style="color: blue"&gt;true&lt;/span&gt;;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;throw&lt;/span&gt;;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; }
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; }
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;catch&lt;/span&gt; (&lt;span style="color: #2b91af"&gt;Exception&lt;/span&gt; e)
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; {
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; ret.FehlerText
= e.Message;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; ret.HatFehler = &lt;span style="color: blue"&gt;true&lt;/span&gt;;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;throw&lt;/span&gt;;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; }
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; }
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: blue"&gt;return&lt;/span&gt; &lt;span style="color: blue"&gt;null&lt;/span&gt;;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
}
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
But I'm not quite sure If this made stuff really easier ;-)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lennybacon.com/aggbug.ashx?id=20a85df8-559d-431b-810e-7487b5ef85c5" /&gt;</content>
  </entry>
  <entry>
    <title>JSON support for IE</title>
    <link rel="alternate" type="text/html" href="http://www.lennybacon.com/JSONSupportForIE.aspx" />
    <id>http://www.lennybacon.com/PermaLink,guid,c66db687-2c5e-4857-b58d-6c268a08d755.aspx</id>
    <published>2007-10-06T23:59:18.0625+02:00</published>
    <updated>2007-10-06T23:59:18.0625+02:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Pretty helpful while working on WCF services with JSON serialization and AJAX: 
<br /><br />
REGEDIT4 
</p>
        <p>
[HKEY_CURRENT_USER\Software\Classes\Mime\Database\Content Type\application/json] 
<br />
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}" 
<br />
"Extension"=".json"
</p>
        <img width="0" height="0" src="http://www.lennybacon.com/aggbug.ashx?id=c66db687-2c5e-4857-b58d-6c268a08d755" />
      </div>
    </content>
  </entry>
  <entry>
    <title>NRW07 - succeeded!</title>
    <link rel="alternate" type="text/html" href="http://www.lennybacon.com/NRW07Succeeded.aspx" />
    <id>http://www.lennybacon.com/PermaLink,guid,fcc354a1-fc21-4195-864b-f7f6339261da.aspx</id>
    <published>2007-08-31T22:24:31.6240805+02:00</published>
    <updated>2007-08-31T22:30:01.5459555+02:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Last friday <a href="http://www.justcommunity.de" target="_blank">we</a> (<a href="http://www.stephanon.net/" target="_blank">Stephan
Oetzel</a> and me - JustCommunity e.V.) held the <a href="http://www.nrw07.de/" target="_blank">NRW07</a> (Germany's
biggest software developer and IT professional community conference) in my hometown <a href="http://en.wikipedia.org/wiki/Wuppertal" target="_blank">Wuppertal</a> at <a href="http://dieboerse-wtal.de/cms/" target="_blank">die
Börse</a>. 
</p>
        <p>
The organization of the event and founding the company <a href="http://www.devcoach.de/" target="_blank">devcoach</a> were
the reason why it was pretty quite around my blog the last months - so sorry for that.
</p>
        <p>
          <img height="287" src="http://www.lennybacon.com/images/events/nrw07/speakers.jpg" width="400" />
          <br />
          <em>Photo by </em>
          <a href="http://www.thomasfreudenberg.com/" target="_blank">
            <em>Thomas
Freudenberg</em>
          </a>
        </p>
        <p>
The event was a huge success. we had around 130 people (including speakers) - a great
audience from all over the country.
</p>
        <p>
We hat 4 tracks each filled up with 6 sessions including one dedicated IT-Pro track.
We were proud to host <a href="http://www.craigmurphy.com/" target="_blank">Craig
Murphy</a> and <a href="http://www.oliversturm.org/" target="_blank">Oliver Sturm</a> from
the UK community again. Thanks for puting the "tech" into the event to <a href="http://www.aviconet.de/" target="_blank">Sascha
Dietl</a>, <a href="http://www.thomasfreudenberg.com/" target="_blank">Thomas Freudenberg</a>, <a href="http://www.gnoth.net/" target="_blank">Marcel
Gnoth</a>, <a href="http://www.workstation.de/" target="_blank">Marcus Hoeltkemeier</a>, <a href="http://www.prodot.de/" target="_blank">Mischa
Hüschen</a>, <a href="http://blogs.dotnet-braunschweig.de/Lars/" target="_blank">Lars
Keller</a>, <a href="http://kostjaklein.wordpress.com/" target="_blank">Constantin
Klein</a>, Patrick Lauer, <a href="http://www.acocon.de/acocon/acocon.nsf" target="_blank">Nico
Lüdemann</a>, <a href="http://netviser.de/" target="_blank">Carsten Möhrke</a>, <a href="http://www.craigmurphy.com/" target="_blank">Craig
Murphy</a>, Sebastian Noack, <a href="http://jens-schaller.de/" target="_blank">Jens
Schaller</a>, <a href="http://blog.solinske.de/" target="_blank">Frank Solinske</a>, <a href="http://www.oliversturm.org/" target="_blank">Oliver
Sturm</a>, <a href="http://weblogs.asp.net/rweigelt/" target="_blank">Roland Weigelt</a>, <a href="http://www.abasketfulofpapayas.de/" target="_blank">Thomas
Weinert</a>, <a href="http://www.devcoach.de/" target="_blank">Michael Willers</a>.
</p>
        <p>
I also gotta shout out many thanks to our sponsors (especially <a href="http://www.hp.com/" target="_blank">Christian
Schütz from HP</a>, platinum sponsor) and the organization team for making <a href="http://www.nrw07.de/" target="_blank">NRW07</a> happen.
Upfront <a href="http://www.sylviamarx.com/" target="_blank">Sylvia Marx</a> (Ping
her If you need design stuff like a blog &amp; web design!) who filled the role of
our Art Director and managed most of the merchandising stuff (look at the cool shirts!!!). 
</p>
        <p>
The day was filled with amazing things. Night before we had a fabolous geek dinner
and <a href="http://www.craigmurphy.com/blog/?p=673" target="_blank">Craig podcasted
me</a>. In the morning I really enjoied the audience in my talk about SOA
on the client and User Interface Patterns. We had tasty Subway catering. And
last but not least a unforgettable after event party that ended up early early next
morning.
</p>
        <p>
          <a href="http://www.craigmurphy.com/" target="_blank">Craig</a> and <a href="http://www.thomasfreudenberg.com/" target="_blank">Thomas</a> pointed
me to <a href="http://www.facebook.com/" target="_blank">facebook.com</a> where a
lot of post-NRW07 things (photos etc.) happen - so have a look over there and at <a href="http://blogs.dotnet-braunschweig.de/Karim/PermaLink,guid,254f3b98-e748-483c-97f2-d40995c44cca.aspx" target="_blank">Karim's</a> and <a href="http://blog.veloursnebel.de/PermaLink,guid,ae8d952c-07ae-460e-a5eb-0e67448d4c19.aspx" target="_blank">Kai's</a> blog, <a href="http://soapbox.msn.com/video.aspx?vid=f36786ce-8a7b-4a7e-affb-3e740d89d631" target="_blank">saopbox</a>!
</p>
        <p>
Hope you liked it as well - if you haven't had the chance to make up your own mind...
2008 is near.
</p>
        <p>
off for vacation
</p>
        <p>
--Daniel
</p>
        <img width="0" height="0" src="http://www.lennybacon.com/aggbug.ashx?id=fcc354a1-fc21-4195-864b-f7f6339261da" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Running ReSharper 3.0 with VS 2008 (Beta 2)</title>
    <link rel="alternate" type="text/html" href="http://www.lennybacon.com/RunningReSharper30WithVS2008Beta2.aspx" />
    <id>http://www.lennybacon.com/PermaLink,guid,05fd8b20-5ede-4e12-a5d8-66980d7489ab.aspx</id>
    <published>2007-07-30T20:41:27.030125+02:00</published>
    <updated>2007-07-30T20:47:30.92075+02:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
This morning I downloaded Visual Studio 2008 Beta 2.0 and installed it over the day.
As always when a new version is out I'm looking forward to use the new features, but...
As always I start missing the Add-Ins I usually use in the old version of the IDE
- especially this is the case with <a href="http://www.jetbrains.com/resharper/">ReSharper</a>.
So I tried out a few things and finally got it to run. 
</p>
        <p>
1) Add the path to <a href="http://www.jetbrains.com/resharper/">ReSharper</a>'s Bin
directory to the "Add-In File Paths" (Tools |Options | Environment | Add-in/Macro
Security) 
</p>
        <p>
2) Import the following text as *.reg file to your registry (modify path to ReSharper
to fit you setup if necessary).  
</p>
        <p>
  
</p>
        <p>
REGEDIT4 
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Menues]<br />
"{0c6e6407-13fc-4878-869a-c8b4016c57fe}"=",2007,5" 
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\InstalledProducts\Resharper]<br />
"Package"="{0c6e6407-13fc-4878-869a-c8b4016c57fe}"<br />
"UseInterface"=dword:00000001 
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Packages\{0c6e6407-13fc-4878-869a-c8b4016c57fe}]<br />
@="JetBrains.ReSharper.VS, Version=3.0.471.2, Culture=neutral, PublicKeyToken=null"<br />
"Class"="JetBrains.ReSharper.VS.Customization.ReSharperPkg"<br />
"Assembly"="JetBrains.ReSharper.VS"<br />
"InprocServer32"="C:\\Windows\\system32\\\\mscoree.dll"<br />
"CodeBase"="C:\\Program Files\\JetBrains\\ReSharper\\v3.0\\vs8.0\\\\Bin\\JetBrains.ReSharper.VS.dll"<br />
"CompanyName"="JetBrains s.r.o."<br />
"ProductName"="ReSharper"<br />
"ProductVersion"="3.0"<br />
"MinEdition"="standard"<br />
"ID"=dword:0000029a 
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\ToolWindows\{0024BEE0-BCE9-484F-AFA7-B5647916C26B}]<br />
@="{0C6E6407-13FC-4878-869A-C8B4016C57FE}"<br />
"Name"="ReSharper StackTraceManager"<br />
"DefaultCaption"="Stack Trace Explorer" 
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\ToolWindows\{04612F0D-0B03-4D82-8726-14E6D4143E6C}]<br />
@="{0C6E6407-13FC-4878-869A-C8B4016C57FE}"<br />
"Name"="ReSharper FileStructureView"<br />
"DefaultCaption"="File Structure" 
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\ToolWindows\{1EA986C6-340F-42C8-892E-F5779818D569}]<br />
@="{0C6E6407-13FC-4878-869A-C8B4016C57FE}"<br />
"Name"="ReSharper SearchResultsWindow"<br />
"DefaultCaption"="Find Results" 
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\ToolWindows\{1EA986C6-340F-42C8-892E-F5779818D569}]<br />
@="{0C6E6407-13FC-4878-869A-C8B4016C57FE}"<br />
"Name"="ReSharper SearchResultsWindow"<br />
"DefaultCaption"="Find Results" 
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\ToolWindows\{532DDD98-F6A6-4A76-A84E-4AEA5211F733}]<br />
@="{0C6E6407-13FC-4878-869A-C8B4016C57FE}"<br />
"Name"="ReSharper UnitTestExplorerWindow"<br />
"DefaultCaption"="Unit Test Explorer" 
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\ToolWindows\{7DD08AD7-93B2-491F-A0E8-EE2BB4E78240}]<br />
@="{0C6E6407-13FC-4878-869A-C8B4016C57FE}"<br />
"Name"="ReSharper ErrorsView"<br />
"DefaultCaption"="Errors" 
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\ToolWindows\{AB97F511-6AF2-4D27-B468-E4048600093E}]<br />
@="{0C6E6407-13FC-4878-869A-C8B4016C57FE}"<br />
"Name"="ReSharper HierarchyResultsWindow"<br />
"DefaultCaption"="Type Hierarchy" 
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\ToolWindows\{AE42D903-E5A3-417D-BA25-3CE77B315EED}]<br />
@="{0C6E6407-13FC-4878-869A-C8B4016C57FE}"<br />
"Name"="ReSharper TodoExplorerWindow"<br />
"DefaultCaption"="To-do Explorer" 
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\ToolWindows\{B2BC9916-E3E6-43A8-AD5F-3BDB95F53DB5}]<br />
@="{0C6E6407-13FC-4878-869A-C8B4016C57FE}"<br />
"Name"="ReSharper UnitTestSessionsWindow"<br />
"DefaultCaption"="Unit Test Sessions" 
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\ToolWindows\{BE8B4DEB-7D8A-454D-91A8-31C32BE2BD94}]<br />
@="{0C6E6407-13FC-4878-869A-C8B4016C57FE}"<br />
"Name"="ReSharper Resharper.CodeBehindToolwindow"<br />
"DefaultCaption"="Code Behind"
</p>
        <p>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\ToolWindows\{1067D97D-D956-4E91-849C-07DE62F0E620}]<br />
@="{0C6E6407-13FC-4878-869A-C8B4016C57FE}"<br />
"Name"="ReSharper BuildOutput"<br />
"DefaultCaption"="Build Output"
</p>
        <img width="0" height="0" src="http://www.lennybacon.com/aggbug.ashx?id=05fd8b20-5ede-4e12-a5d8-66980d7489ab" />
      </div>
    </content>
  </entry>
  <entry>
    <title>My shopping list for today :-)</title>
    <link rel="alternate" type="text/html" href="http://www.lennybacon.com/MyShoppingListForToday.aspx" />
    <id>http://www.lennybacon.com/PermaLink,guid,e4635f5f-4522-459a-b4d8-aa425c6500ee.aspx</id>
    <published>2007-07-23T20:32:54.057375+02:00</published>
    <updated>2007-07-23T20:32:54.057375+02:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
1 x Intel Core 2 Duo E6850 (4096Kb/2x3Ghz) 64bit (Conroe)<br />
1 x Arctic Freezer 7 Pro 
<br />
4 x 2048MB DDR2<br />
1 x Chieftec "Bravo-Series" Tower (400W) Black<br />
3 x HITACHI DeskStar 250GB (SATA II)<br />
1 x ABIT IN9 32X-MAX WiFi "Beast"<br />
1 x DVD-RW SATA<br />
1 x NVIDIA Geforce Club3D 8600GT (512MB)
</p>
        <img width="0" height="0" src="http://www.lennybacon.com/aggbug.ashx?id=e4635f5f-4522-459a-b4d8-aa425c6500ee" />
      </div>
    </content>
  </entry>
  <entry>
    <title>IKEA Page Flow</title>
    <link rel="alternate" type="text/html" href="http://www.lennybacon.com/IKEAPageFlow.aspx" />
    <id>http://www.lennybacon.com/PermaLink,guid,0da6322a-4005-47cd-ac19-8429b698d9a5.aspx</id>
    <published>2007-07-21T14:03:02.0087271+02:00</published>
    <updated>2007-07-22T21:29:46.97925+02:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.copyblogger.com">copyblogger</a> has a nice story on "<a href="http://www.copyblogger.com/relevant-engaging-content/">IKEA
content</a>"...
</p>
        <p>
After a discussion with my colleague Michael Willers (his famous security blog
is down moving and will be up again soon...) I'd like to push it further/see
it from a different point of view: (Especially in the web) <strong>Applications are
content</strong> or at least provide content (That is the was HTTP, REST, etc. work). 
</p>
        <p>
I think also <a href="http://www.useit.com/">Jacob Nielson</a> would agree that forcing
the user to use a path instead of allowing the user to decide is <strong>wrong</strong>. 
</p>
        <p>
 
</p>
        <p>
Keep that in mind when you think of using page flow/task concepts in your applications.
</p>
        <p>
 
</p>
        <p>
P.S.: I got to admit that I like some of the IKEA furniture :-)
</p>
        <img width="0" height="0" src="http://www.lennybacon.com/aggbug.ashx?id=0da6322a-4005-47cd-ac19-8429b698d9a5" />
      </div>
    </content>
  </entry>
  <entry>
    <title>IE Active Content Update</title>
    <link rel="alternate" type="text/html" href="http://www.lennybacon.com/IEActiveContentUpdate.aspx" />
    <id>http://www.lennybacon.com/PermaLink,guid,7764de66-3ba8-4e90-af20-739e80f1fc35.aspx</id>
    <published>2007-04-23T16:50:17.14+02:00</published>
    <updated>2007-04-23T16:50:52.0153148+02:00</updated>
    <category term="ASP.NET" label="ASP.NET" scheme="http://www.lennybacon.com/CategoryView,category,ASP.NET.aspx" />
    <category term="Projects" label="Projects" scheme="http://www.lennybacon.com/CategoryView,category,Projects.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm back on ASP.NET (at least more than last year :-)) - And it feels great (again)
digging deep into some interesting areas around user interfaces (also WPF!!!), processes
and tasks, state management, async stuff (multi threading/AJAX &amp; JSON) and so
on... 
</p>
        <p>
Personal Ref.: 
</p>
        <p>
          <a href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/activating_activex.asp">Activating
ActiveX Controls</a>
          <br />
          <a href="http://www.adobe.com/devnet/activecontent/articles/devletter.html">Adobe's
comments on the topic...</a>
          <br />
          <br />
          <a href="http://msdn.microsoft.com/workshop/author/persistence/overview.asp">IE Persistence
Behaviour</a>
          <br />
          <a href="http://msdn.microsoft.com/workshop/author/dhtml/overview/tab_impact.asp">Tabbed
Browsing for Developers</a>
          <br />
          <a href="http://msdn.microsoft.com/workshop/browser/external/overview/ie7_opensearch_ext.asp">Search
Provider Extensibility in Internet Explorer</a>
        </p>
        <img width="0" height="0" src="http://www.lennybacon.com/aggbug.ashx?id=7764de66-3ba8-4e90-af20-739e80f1fc35" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Sergey and the cards</title>
    <link rel="alternate" type="text/html" href="http://www.lennybacon.com/SergeyAndTheCards.aspx" />
    <id>http://www.lennybacon.com/PermaLink,guid,a3f07b16-5c65-4bb8-bc40-70212243cc27.aspx</id>
    <published>2007-04-04T09:44:26.8125+02:00</published>
    <updated>2007-04-04T09:44:26.8125+02:00</updated>
    <category term="C#" label="C#" scheme="http://www.lennybacon.com/CategoryView,category,C%23.aspx" />
    <category term="Misc" label="Misc" scheme="http://www.lennybacon.com/CategoryView,category,Misc.aspx" />
    <category term="Projects" label="Projects" scheme="http://www.lennybacon.com/CategoryView,category,Projects.aspx" />
    <category term="Security" label="Security" scheme="http://www.lennybacon.com/CategoryView,category,Security.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
My colleague <a href="http://staff.newtelligence.com/sergeys/default.aspx">Sergey</a> is
working on a really nice package around CardSpaces. Watch his blog for updates... 
</p>
        <img width="0" height="0" src="http://www.lennybacon.com/aggbug.ashx?id=a3f07b16-5c65-4bb8-bc40-70212243cc27" />
      </div>
    </content>
  </entry>
  <entry>
    <title>finally 0x1B</title>
    <link rel="alternate" type="text/html" href="http://www.lennybacon.com/finally0x1B.aspx" />
    <id>http://www.lennybacon.com/PermaLink,guid,ac41e110-4426-49fb-8b0f-b52c3e20143c.aspx</id>
    <published>2007-03-25T13:43:35.011375+02:00</published>
    <updated>2007-03-25T13:43:35.011375+02:00</updated>
    <category term="Life" label="Life" scheme="http://www.lennybacon.com/CategoryView,category,Life.aspx" />
    <category term="Misc" label="Misc" scheme="http://www.lennybacon.com/CategoryView,category,Misc.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <tt>this.Age++;</tt>
        </p>
        <img width="0" height="0" src="http://www.lennybacon.com/aggbug.ashx?id=ac41e110-4426-49fb-8b0f-b52c3e20143c" />
      </div>
    </content>
  </entry>
</feed>