<?xml version="1.0"?>
<rss  version="2.0">
  <channel>
    <title>justnbusiness</title>
    <link>http://justnbusiness.com/Default.aspx</link>
    <description>A technical blog about NBusiness and everything else.</description>
    <language>en-us</language>
    <pubDate>Thu, 03 Jul 2008 08:06:13 GMT</pubDate>
    <item>
      <title>NVelocity Code Generation Tool for NBusiness</title>
      <link>http://justnbusiness.com/Blogs/NVelocity_Code_Generation_Tool_for_NBusiness.aspx</link>
      <description>&lt;p&gt;I&amp;rsquo;ve really been struggling with how to improve creating templates for NBusiness 3 so that it is much easier than it is now. I have been delayed by the prospect of actually creating any more templates with the CodeDom. It is just too painful and ugly.&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;On one hand I &lt;i&gt;really&lt;/i&gt; want templates to be classes because this allows me to search for them easily, they are either in the same assembly or in a referenced assembly. It also allows me to easily gather meta-data about templates (attributes) and actually run the templates. It also allows for the template developer to generate code however they way, it's very powerful. There also does not need to be some special path that you store templates in and there does not need to be a relative path specified in the entity. It&amp;rsquo;s a very light-weight and powerful way to do templates.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;Unfortunately the problem with this approach is that your templates are probably going to end up being done with the CodeDom, which as you probably know is a royal pain in the butt. If you try to use a template engine such as NVelocity then you&amp;rsquo;re stuck taking care of the path issues yourself, which is ok but is also sort of annoying.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;Well last night I finally figured out a great solution to this problem. I have decided to include an NBusinessTemplateCodeGenerator Custom Tool to the visual studio integration project. This custom tool will generate for you a template class, based on a template file it is applied to in your solution. Then your entities can reference that template and will use NVelocity to do the generation. I plan on making it extensible somehow so other template tools (such as codesmith?) could be used. Here are some screenshots of a working prototype.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;&lt;a href="http://www.justnbusiness.com/uploads/Images/template-codegeneration-s1.png"&gt;&lt;img alt="" src="http://www.justnbusiness.com/uploads/Images/template-codegeneration-s1.thumb.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;So in this example my simple NVelocity template has the following code:&lt;/div&gt;
&lt;p&gt;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" border="1" cellspacing="0" cellpadding="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-top: black 1pt solid; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="638"&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;using System;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;namespace $entity.Namespace&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;{&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public partial class $entity.Name&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;#foreach($field in $entity.Fields)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public $field.TypeName $field.Name { get; set; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;#end&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;}&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;The .nbt (NBusiness Template) file will create a Template class such as this:&lt;/div&gt;
&lt;p&gt;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" border="1" cellspacing="0" cellpadding="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-top: black 1pt solid; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="638"&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;[NBusiness.Templates.&lt;span style="color: #2b91af"&gt;CodeTemplateAttribute&lt;/span&gt;()]&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: blue"&gt;public&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; &lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;TestTemplate&lt;/span&gt; : NBusiness.Templates.&lt;span style="color: #2b91af"&gt;TemplateBase&lt;/span&gt; {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;protected&lt;/span&gt; &lt;span style="color: blue"&gt;override&lt;/span&gt; NBusiness.CodeDom.Compiler.&lt;span style="color: #2b91af"&gt;EntityFile&lt;/span&gt; Compile(NBusiness.CodeDom.&lt;span style="color: #2b91af"&gt;Entity&lt;/span&gt; entity, NBusiness.CodeDom.Compiler.&lt;span style="color: #2b91af"&gt;EntityCompileParameters&lt;/span&gt; parameters) {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NBusiness.Templates.&lt;span style="color: #2b91af"&gt;ICodeGeneratorEngine&lt;/span&gt; engine = NBusiness.Templates.&lt;span style="color: #2b91af"&gt;CodeGeneratorEngine&lt;/span&gt;.GetEngine();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;string&lt;/span&gt; template = System.Text.&lt;span style="color: #2b91af"&gt;Encoding&lt;/span&gt;.UTF8.GetString(System.&lt;span style="color: #2b91af"&gt;Convert&lt;/span&gt;.FromBase64String(&lt;span style="color: #a31515"&gt;@&amp;quot;IyoNCiAgICBTaW1wbGUgRW50aXR5SW5mbyBDb...you get the idea&amp;quot;&lt;/span&gt;));&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;byte&lt;/span&gt;[] generated = engine.Generate(entity, template, parameters);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue"&gt;return&lt;/span&gt; &lt;span style="color: blue"&gt;new&lt;/span&gt; NBusiness.CodeDom.Compiler.&lt;span style="color: #2b91af"&gt;EntityFile&lt;/span&gt;(entity.Name, generated);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;}&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;&amp;nbsp;&amp;hellip;Which is ugly, which is why this tool was created. It will convert your template code into a base64 string which will be converted back into code before getting passed into the NVelocity engine and merged with the incoming entity. This class will now be accessible by entities in the same project or referencing projects.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;Your entity file might look like this:&lt;/div&gt;
&lt;p&gt;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" border="1" cellspacing="0" cellpadding="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-top: black 1pt solid; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="638"&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; &lt;span style="color: teal"&gt;ClassLibrary1&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: blue"&gt;family&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; Test&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;{&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;entity&lt;/span&gt; &lt;span style="color: teal"&gt;A&lt;/span&gt; &lt;span style="color: purple"&gt;as&lt;/span&gt; TestTemplate&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;field&lt;/span&gt; &lt;span style="color: blue"&gt;auto&lt;/span&gt; &lt;span style="color: blue"&gt;id&lt;/span&gt; &lt;span style="color: blue"&gt;int&lt;/span&gt; &lt;span style="color: teal"&gt;aid&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;field&lt;/span&gt; &lt;span style="color: blue"&gt;nullable&lt;/span&gt; &lt;span style="color: blue"&gt;string&lt;/span&gt; &lt;span style="color: teal"&gt;data&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;field&lt;/span&gt; &lt;span style="color: blue"&gt;nullable&lt;/span&gt; &lt;span style="color: blue"&gt;double&lt;/span&gt; &lt;span style="color: teal"&gt;value&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;}&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;Which when run through the TestTemplate will produce code that looks like this:&lt;/div&gt;
&lt;p&gt;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" border="1" cellspacing="0" cellpadding="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-top: black 1pt solid; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="638"&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; System;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: blue"&gt;namespace&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; Test&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;{&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;partial&lt;/span&gt; &lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;int&lt;/span&gt; aid { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;string&lt;/span&gt; data { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt; System.&lt;span style="color: #2b91af"&gt;Nullable&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;double&lt;/span&gt;&amp;gt; value { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;}&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;So all you have to do to get NVelocity working with NBusiness entities and models will be to add a .nbt file to your project which (if done through the Add New Item dialog) will have the Custom Tool NBusinessTemplateCodeGenerator applied to it. Then author away!&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;I will be using this system to author the core templates that come with NBusiness from now on.&lt;/div&gt;</description>
      <guid>http://justnbusiness.com/Blogs/NVelocity_Code_Generation_Tool_for_NBusiness.aspx</guid>
      <pubDate>Thu, 03 Jul 2008 08:06:13 GMT</pubDate>
    </item>
    <item>
      <title>Twin Cities Developer Guild</title>
      <link>http://justnbusiness.com/Blogs/Twin_Cities_Developer_Guild.aspx</link>
      <description>&lt;p&gt;The &lt;a href="http://www.twincitiesdevelopersguild.com/"&gt;twin cities developers guild&lt;/a&gt; has recently formed as a way to help bring together and organize other special interest groups.&lt;/p&gt;
&lt;p&gt;Magenic is currently sponsoring an &lt;a href="http://www.twincitiesxnausergroup.com"&gt;XNA User Group&lt;/a&gt; as well as a &lt;a href="http://www.twincitieslanguagesusergroup.com"&gt;Languages User Group &lt;/a&gt;and now the Developers Guild is being formed. I'm happy to say that these groups are open for everyone and will encompass any relevant topic. Check out the respecitve websites and come to the meetings when you can!&lt;/p&gt;</description>
      <guid>http://justnbusiness.com/Blogs/Twin_Cities_Developer_Guild.aspx</guid>
      <pubDate>Mon, 30 Jun 2008 10:12:43 GMT</pubDate>
    </item>
    <item>
      <title>Twin Cities Languages User Group</title>
      <link>http://justnbusiness.com/Blogs/Twin_Cities_Languages_User_Group.aspx</link>
      <description>&lt;p&gt;A new user group has formed in the Twin Cities with a special focus on programming languages.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.twincitieslanguagesusergroup.com"&gt;http://www.twincitieslanguagesusergroup.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The first session will be held by Charles Nutter, who works for Sun Microsystems developing JRuby. He works right here in the Twin Cities and I've met him personally at the Lang.NET symposium this past January and found him to be very knowledgable and exciting to talk to.&lt;/p&gt;
&lt;p&gt;Getting a chance to talk with someone who is actively working on a professional programming language should be quite interesting. If you have any interest at all in programming languages you should definitely go to the link above and find out the logistics.&lt;/p&gt;</description>
      <guid>http://justnbusiness.com/Blogs/Twin_Cities_Languages_User_Group.aspx</guid>
      <pubDate>Tue, 24 Jun 2008 08:11:05 GMT</pubDate>
    </item>
    <item>
      <title>NBusiness 3 Updates</title>
      <link>http://justnbusiness.com/Blogs/NBusiness_3_Updates.aspx</link>
      <description>&lt;p&gt;I&amp;rsquo;ve been working on NBusiness a little bit over the weekend. I&amp;rsquo;ve decided to create a Curried API using extension methods for the CodeDom to speed along template creation. Here is an example of what I have so far.&lt;/p&gt;
&lt;p&gt;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" border="1" cellspacing="0" cellpadding="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-top: black 1pt solid; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="638"&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: #2b91af"&gt;CodeMethodReferenceExpression&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; onPropertyChanged = &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;CodeMethodReferenceExpression&lt;/span&gt;(&lt;span style="color: blue"&gt;null&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;OnPropertyChanged&amp;quot;&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: #2b91af"&gt;CodeMemberProperty&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; memberProperty = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;CodeMemberProperty&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;memberProperty.Name = field.Name.ToPascalCase();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;memberProperty.Type = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;CodeTypeReference&lt;/span&gt;(field.Type);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;memberProperty.Get()&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;.Return(memberField.Reference());&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;memberProperty.Set()&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;.If(&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; memberField.Reference().NotEqualTo(memberProperty.SetValue()))&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;.Then(&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memberField.Reference().Assign(&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;memberProperty.SetValue()), &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; onPropertyChanged.Invoke(memberProperty.Name));&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;&amp;nbsp;Trust me, as ugly as the above seems it&amp;rsquo;s still a million times better than doing it all the way it was originally written. Hopefully this will mature and get better over time as well. Here is an example of the code it produces.&lt;/div&gt;
&lt;p&gt;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" border="1" cellspacing="0" cellpadding="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-top: black 1pt solid; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="638"&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: blue"&gt;private&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; &lt;span style="color: blue"&gt;int&lt;/span&gt; Aid {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&lt;span style="color: blue"&gt;get&lt;/span&gt; {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue"&gt;return&lt;/span&gt; _aid;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&lt;span style="color: blue"&gt;set&lt;/span&gt; {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue"&gt;if&lt;/span&gt; ((_aid != &lt;span style="color: blue"&gt;value&lt;/span&gt;)) {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_aid = &lt;span style="color: blue"&gt;value&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OnPropertyChanged(&lt;span style="color: #a31515"&gt;&amp;quot;Aid&amp;quot;&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;}&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;&amp;nbsp;Secondly I have been polishing and simplifying the model framework that comes with NBusiness. I have been working to create an abstract DataAccess API that can easily produce any type of query. Here is an example of how you might insert a new model with the next version of NBusiness.&lt;/div&gt;
&lt;p&gt;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" border="1" cellspacing="0" cellpadding="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-top: black 1pt solid; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="638"&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: #2b91af"&gt;MockModel&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; model = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;MockModel&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;model.Name = &lt;span style="color: #a31515"&gt;&amp;quot;testinsert&amp;quot;&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;model.Save();&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;&amp;nbsp;This is as normal and will end up calling into MockModel&amp;rsquo;s &amp;ldquo;InsertModel&amp;rdquo; method which may be implemented like so&lt;/div&gt;
&lt;p&gt;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" border="1" cellspacing="0" cellpadding="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-top: black 1pt solid; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="638"&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: blue"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; &lt;span style="color: blue"&gt;override&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; InsertModel(&lt;span style="color: #2b91af"&gt;IQuery&lt;/span&gt; query)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;{&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;query.Insert().Into(&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;MockModel&lt;/span&gt;.&lt;span style="color: #2b91af"&gt;Database&lt;/span&gt;.Table, &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;MockModel&lt;/span&gt;.&lt;span style="color: #2b91af"&gt;Database&lt;/span&gt;.Name).Values(&lt;span style="color: #a31515"&gt;&amp;quot;@Name&amp;quot;&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;query.Go();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;query.Parameter(&lt;span style="color: #a31515"&gt;&amp;quot;@Id&amp;quot;&lt;/span&gt;).Direction = &lt;span style="color: #2b91af"&gt;ParameterValueDirection&lt;/span&gt;.Output;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;query.Parameter(&lt;span style="color: #a31515"&gt;&amp;quot;@Name&amp;quot;&lt;/span&gt;).Value = Name;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;query.Load += loader =&amp;gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;{&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Id = (&lt;span style="color: blue"&gt;int&lt;/span&gt;)query.Parameter(&lt;span style="color: #a31515"&gt;&amp;quot;@Id&amp;quot;&lt;/span&gt;).Value;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;};&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;}&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;&amp;nbsp;The DataBase.Table and DataBase.Name members are code generated, static ITable and IColumn fields based on your E# model definition.&amp;nbsp;The query object will be passed up to parent objects and down to child objects and will be passed into an abstract provider which will use it to generate SQL and call your database. The IQuery object actually comes from your IDatabaseProvider and may abstract it&amp;nbsp;to work with different databases. My theory at this point is that you could actually parse the query object anyway you like in the IDatabaseProvider and with a little manual work you could even get it working across a webservice.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;Here is my MockDatabaseProvider for my unit tests. The provider interface is much simpler with this new technique.&lt;/div&gt;
&lt;p&gt;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" border="1" cellspacing="0" cellpadding="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-top: black 1pt solid; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="638"&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: blue"&gt;class&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; &lt;span style="color: #2b91af"&gt;MockDatabaseProvider&lt;/span&gt; : &lt;span style="color: #2b91af"&gt;IDatabaseProvider&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;{&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: blue"&gt;&amp;nbsp;#region&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; IDatabaseProvider Members&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af"&gt;IQuery&lt;/span&gt; Query()&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;{&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;return&lt;/span&gt; &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;SqlQuery&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af"&gt;ITable&lt;/span&gt; Table(&lt;span style="color: blue"&gt;string&lt;/span&gt; name)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;{&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue"&gt;return&lt;/span&gt; &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;SqlTable&lt;/span&gt;(name);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; Execute(&lt;span style="color: #2b91af"&gt;IQuery&lt;/span&gt; query)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;{&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #2b91af"&gt;MethodCall&lt;/span&gt;.Calls.Add(&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;MethodCall&lt;/span&gt;(&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style="color: #a31515"&gt;&amp;quot;Execute&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;new&lt;/span&gt; { Name = &lt;span style="color: #a31515"&gt;&amp;quot;query&amp;quot;&lt;/span&gt;, Value = query }));&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #2b91af"&gt;SqlQuery&lt;/span&gt; sqlQuery = query &lt;span style="color: blue"&gt;as&lt;/span&gt; &lt;span style="color: #2b91af"&gt;SqlQuery&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green"&gt;// Simulate setting the identity parameter after an insert&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;IParameterValue&lt;/span&gt; id = sqlQuery.Parameters.FirstOrDefault(&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v =&amp;gt; v.Name == &lt;span style="color: #a31515"&gt;&amp;quot;@Id&amp;quot;&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; (id!=&lt;span style="color: blue"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; id.Direction == &lt;span style="color: #2b91af"&gt;ParameterValueDirection&lt;/span&gt;.Output)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;id.Value = 100;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlQuery.OnLoad(&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;MockLoader&lt;/span&gt;());&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: blue"&gt;&amp;nbsp;#endregion&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt"&gt;}&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;</description>
      <guid>http://justnbusiness.com/Blogs/NBusiness_3_Updates.aspx</guid>
      <pubDate>Tue, 24 Jun 2008 07:39:05 GMT</pubDate>
    </item>
    <item>
      <title>Creating Attribute Macros in Boo</title>
      <link>http://justnbusiness.com/Blogs/Creating_Attribute_Macros_in_Boo.aspx</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;Here is a simple example of writing an Attribute Macro in boo. I have created a macro that you can use to ensure that parameters are not null and raise a ArgumentNullException if they are. The interesting thing to note about this is that if you were to do this in C# you would need to use a factory method to inject these methods as aspects at runtime. With Boo macros you are actually changing the code at &lt;b&gt;build&lt;/b&gt; time, which has both positive runtime performance implications and positive architectural changes since you do not need a factory method.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;Here is an example of how you might use such an attribute:&lt;/div&gt;
&lt;p&gt;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" border="1" cellspacing="0" cellpadding="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-top: black 1pt solid; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="638"&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;namespace &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;MacroExample&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;System&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;Macros&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;class &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;Example:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;Ensure&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;example&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)]&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;def &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;DoSomething&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;example &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;string&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: purple"&gt;print &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;example&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;ToUpper&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;()&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;e &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;Example&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;()&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;e&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;DoSomething&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue"&gt;&amp;quot;testing!&amp;quot;&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;e&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;DoSomething&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: purple"&gt;print &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue"&gt;&amp;quot;Press any key to continue . . . &amp;quot;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;Console&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;ReadKey&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;true&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;I have declared a class called Example with a single method DoSomething. On that method we have attached an Attribute called Ensure. If you were using standard Aspect Oriented Programming techniques you would need some custom code to inspect this attribute at runtime and build a dynamic type and method to wrap the logic of the ensure attribute.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;In Boo, since my EnsureAttribute inherits from AbstractMacroAttribute the logic of the Attribute will actually be run at build time, not runtime. Note the parameter in the constructor, the &amp;lsquo;example&amp;rsquo;. There are no quotes around this because it is not a string. It actually comes into the constructor as a ReferenceExpression which I can use to match to the methods parameters.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;Here is the ensure Attribute code:&lt;/div&gt;
&lt;p&gt;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" border="1" cellspacing="0" cellpadding="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-top: black 1pt solid; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="638"&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;namespace &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;Macros&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;System&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;Boo&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Lang&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Compiler&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Ast&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;AttributeUsage&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;AttributeTargets&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Method&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)]&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;class &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;EnsureAttribute&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Boo&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Lang&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Compiler&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;AbstractAstAttribute&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;private &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;_parameter &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;ReferenceExpression&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;public &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;Parameter &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;ReferenceExpression:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: saddlebrown"&gt;get&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: navy"&gt;return &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;_parameter&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;def constructor&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;parameter &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;ReferenceExpression&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _parameter &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;parameter&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: brown"&gt;override &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;def &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;Apply&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;node &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;Node&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;: &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: #04abab"&gt;target &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;cast&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Boo&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Lang&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Compiler&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Ast&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Method&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;node&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;parameter &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;ParameterDeclaration&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;for &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;p &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;in &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;target&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Parameters:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;if &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;p&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Name &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;== &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;_parameter&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Name:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameter &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;p&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: navy"&gt;break&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: #04abab"&gt;code &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= [| &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;if &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;$&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;parameter&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;) &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: darkcyan"&gt;is &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: teal"&gt;raise &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;ArgumentNullException&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;$&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;parameter&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Name&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)) &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |]&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;target&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Body&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;Insert&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkblue"&gt;0&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;code&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;One of the most amazing parts about constructing macros in Boo is the built in code templating features. If you notice towards the bottom of the example where we are assigning to the variable &amp;lsquo;code&amp;rsquo; there is a special block wrapped in [| &amp;hellip; |]. This is a special type of operator that tells Boo that whatever is inside of this block is to be parsed and returned as an AST (abstract syntax tree) node. This is a helper for replacing reliance upon manually constructing Boo CodeDom objects. You can see on the following line that this compiled code is being inserted into the body of the method this attribute has been applied to.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;It is important to note that while we are affecting the body of the method that method knows about the class it is attached to and that class knows about all other classes in the assembly and so on. This is the difference in power between Boo macros and C++ macros.&lt;/div&gt;</description>
      <guid>http://justnbusiness.com/Blogs/Creating_Attribute_Macros_in_Boo.aspx</guid>
      <pubDate>Tue, 17 Jun 2008 07:23:23 GMT</pubDate>
    </item>
    <item>
      <title>Calling Member Methods on null References</title>
      <link>http://justnbusiness.com/Blogs/Calling_Member_Methods_on_null_References.aspx</link>
      <description>&lt;p&gt;I just learned about an interesting way to use extensions methods. It turns out that even though extension methods appear to be used like member methods they still are, actually, not. Here is an example:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0" border="1" style="border: medium none ; border-collapse: collapse;" class="MsoTableGrid"&gt;
    &lt;tbody&gt;
        &lt;tr style=""&gt;
            &lt;td width="638" valign="top" style="border: 1pt solid black; padding: 0in 5.4pt; width: 6.65in;"&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;class&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Program&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color: blue;"&gt;string&lt;/span&gt;[]   args)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;string&lt;/span&gt;   value = &lt;span style="color: blue;"&gt;null&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: rgb(163, 21, 21);"&gt;&amp;quot;IsNullOrEmpty: &amp;quot;&lt;/span&gt; +   value.IsNullOrEmpty());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Console&lt;/span&gt;.ReadKey();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Extensions&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;bool&lt;/span&gt;   IsNullOrEmpty(&lt;span style="color: blue;"&gt;this&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt;   value)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;   &lt;span style="color: blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(value);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;}&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;Which outputs:&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;IsNullOrEmpty: True&lt;br /&gt;
&lt;/o:p&gt;&lt;/p&gt;</description>
      <guid>http://justnbusiness.com/Blogs/Calling_Member_Methods_on_null_References.aspx</guid>
      <pubDate>Fri, 06 Jun 2008 13:38:09 GMT</pubDate>
    </item>
    <item>
      <title>Ayende Rahien on building DSLs for Boo</title>
      <link>http://justnbusiness.com/Blogs/Ayende_Rahien_on_building_DSLs_for_Boo.aspx</link>
      <description>&lt;p&gt;I just got done reaing a very intesting article about domain specific languages:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.infoq.com/articles/dsl-on-the-clr"&gt;http://www.infoq.com/articles/dsl-on-the-clr&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;His examples are in Boo, I would highly recommend at least looking through his code snippets, especially the one towards the end related to the &amp;quot;ensure&amp;quot; attribute.&lt;/p&gt;</description>
      <guid>http://justnbusiness.com/Blogs/Ayende_Rahien_on_building_DSLs_for_Boo.aspx</guid>
      <pubDate>Tue, 13 May 2008 07:41:37 GMT</pubDate>
    </item>
    <item>
      <title>Zune games with XNA</title>
      <link>http://justnbusiness.com/Blogs/Zune_games_with_XNA.aspx</link>
      <description>&lt;p&gt;The latest version of &lt;a href="http://creators.xna.com/"&gt;XNA&lt;/a&gt; comes with support for creating games for the Zune. I'm pretty excited about this and have embarked on an open source game with three coworkers called &lt;a href="http://www.codeplex.com/ZuDoKu"&gt;ZuDoKu&lt;/a&gt;. It will be a collaborative Sudoku variant for the zune.&lt;/p&gt;
&lt;p&gt;I figured that in order to get this going I was going to have to update my Zune software finally. I haven't been able to update it since I first got it, it's not that I didn't want to but it was just bombing out during the update process every time. Well I spent two hours of my friday night trying to fix it and finally was able to! It was choking when trying to access certain registry keys and when trying to unregister an assembly called Flash9b.ocx. Well both problems were eventually resolved by navigating to the registry keys in question and giving myself the correct permissions to manually delete the problematic keys.&lt;/p&gt;
&lt;p&gt;It seems that Flash v9b was actually setting the &amp;quot;Everyone&amp;quot; user to be denied to delete some keys and their uninstallation process was not cleaning these keys up properly, which in turn was causing the Zune update software to choke. Well, after manually deleting all of the Flash related keys in HKLM\CLSID (after uninstalling flash of course) I got the update to finally work! I'm pretty excited... now of to game programming!&lt;/p&gt;</description>
      <guid>http://justnbusiness.com/Blogs/Zune_games_with_XNA.aspx</guid>
      <pubDate>Sat, 10 May 2008 08:38:56 GMT</pubDate>
    </item>
    <item>
      <title>The Illusion of Strong Typed Xml with Boo</title>
      <link>http://justnbusiness.com/Blogs/The_Illusion_of_Strong_Typed_Xml_with_Boo.aspx</link>
      <description>&lt;p&gt;One interesting feature of boo is the ability to do dynamic typing. To do dynamic typing in boo you simply have to declare a variable as type &amp;ldquo;duck&amp;rdquo;, which is a reference to Ruby&amp;rsquo;s duck typing concept (&amp;ldquo;if it walks like a duck and quacks like a duck&amp;hellip; then it must be a duck!&amp;rdquo;). The fact that they named the type &amp;ldquo;duck&amp;rdquo; in boo reveals the light hearted and humorous style that went into the creation of boo. I think it makes programming feel a little more casual and fun, boo is not a very self important language.&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;So while messing around with dynamic typing a bit I decided to come up with a simple example of how to use dynamic typing to read XML with a strongly typed style. Here is the main code for the example application I have written:&lt;/div&gt;
&lt;p&gt;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="638"&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;namespace &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;Boo1&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;System&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;System&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Collections&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;System&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Xml&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;doc &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;XmlDocument &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;XmlDocument&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;()&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;doc&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;LoadXml&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue"&gt;&amp;quot;&amp;lt;root&amp;gt;&amp;lt;child1 att=\&amp;quot;hello\&amp;quot; /&amp;gt;&amp;lt;child2 att=\&amp;quot;world!\&amp;quot; /&amp;gt;&amp;lt;/root&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;xml &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;duck &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;XmlDocumentFu&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;doc&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;hello &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;xml&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;root&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;child1&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;att&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;Value&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;world &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;xml&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;root&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;child2&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;att&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;Value&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: purple"&gt;print &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #993366"&gt;${hello} ${world}&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue"&gt;&amp;quot;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: purple"&gt;print &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue"&gt;&amp;quot;Press any key to continue . . . &amp;quot;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;Console&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;ReadKey&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;true&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt 0.5in; text-indent: -0.25in"&gt;&lt;span&gt;&amp;middot;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Download: &lt;a href="http://www.justnbusiness.com/uploads/Code/StrongTypedXmlWithBoo.rar"&gt;&lt;font color="#0000ff"&gt;Source Code&lt;/font&gt;&lt;/a&gt; [rar]&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;Below you can see I have passed the XmlDocument into a class called XmlDocumentFu. This is a custom class I have created that implements the interface IQuackFu. In boo if you make a call to a method or property on an object that implements IQuackFu that does not exist, it will allow you to intercept the failed call and handle it yourself. In this case our XmlDocumentFu object will intercept failed calls to the root property first and attempt to translate that call into a one that iterates through the ChildNodes and finds a node of the name of the property instead.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;This allows us to access elements in our XML as if they were properties on a strongly typed object! Pretty sweet! You should note however that in order to do this I had to declare my xml object as type &amp;ldquo;duck&amp;rdquo;. This enables duck typing for that object and as a result you do not get any intellisense support at design time. So it&amp;rsquo;s a bit of a tradeoff, what is more important to you explicit intellisense supported code or brevity? With this style you can kiss goodbye all of the various looping you might have done otherwise and encapsulate it in a few simple classes.&lt;/div&gt;
&lt;p&gt;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="638"&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;namespace &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;Boo1&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;System&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;System&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Reflection&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;Boo&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Lang&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: green"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;System&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Xml&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&amp;nbsp;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;class &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;XmlDocumentFu&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;IQuackFu&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _document &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;XmlDocument&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;def constructor&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;document &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;XmlDocument&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _document &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;document&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;def &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;QuackInvoke&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;name &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;string&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;o &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;object&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)) &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;object&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: navy"&gt;return &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;def &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;QuackGet&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;name &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;string&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;params &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;object&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)) &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;object&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;XmlNode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;for &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;child &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;XmlNode &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;in &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;_document&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;ChildNodes:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;if &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;child&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Name &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;== &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;name:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;child&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: navy"&gt;break&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;if &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;node &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: darkcyan"&gt;is not &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: navy"&gt;return &lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;XmlNodeFu&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;node&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;ret &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;duck &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: gray"&gt;#this is type duck so you can call indexers optionally below&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: gray"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;prop &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;PropertyInfo &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;_document&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;GetType&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;().&lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;GetProperty&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;name&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;BindingFlags&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Instance &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;| &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;BindingFlags&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Public&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;if &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;prop &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: darkcyan"&gt;is not &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;prop&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;GetValue&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;_document&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;, &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;if &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;params &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: darkcyan"&gt;is not &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;for &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;p &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;in &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;params:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;ret&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;p&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;]&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: navy"&gt;return &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;ret&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;def &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;QuackSet&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;name &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;string&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;o &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;object&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;), &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;value &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;object&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;) &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;object&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: navy"&gt;return &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;class &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;XmlNodeFu&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;IQuackFu&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _node &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;XmlNode&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;def constructor&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;node &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;XmlNode&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _node &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;node&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;def &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;QuackInvoke&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;name &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;string&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;o &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;object&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)) &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;object&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: navy"&gt;return &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;def &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;QuackGet&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;name &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;string&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;params &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;object&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)) &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;object&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;XmlNode&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;for &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;child &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;XmlNode &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;in &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;_node&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;ChildNodes:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;if &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;child&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Name &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;== &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;name:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;child&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: navy"&gt;break&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;if &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;node &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: darkcyan"&gt;is not &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: navy"&gt;return &lt;/span&gt;&lt;span style="font-size: 10pt; color: midnightblue"&gt;XmlNodeFu&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;node&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;attribute &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;XmlAttribute&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;for &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;att &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;XmlAttribute &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;in &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;_node&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Attributes:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;if &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;att&lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;Name &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;== &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;name:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; attribute &lt;/span&gt;&lt;span style="font-size: 10pt; color: darkgreen"&gt;= &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;att&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: navy"&gt;break&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;if &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;attribute &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: darkcyan"&gt;is not &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: black"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: black"&gt;:&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; color: navy"&gt;return &lt;/span&gt;&lt;span style="font-size: 10pt; color: black"&gt;attribute&lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="margin: 0in 0in 0pt; line-height: normal"&gt;&lt;span style="font-size: 10pt; color: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: blue"&gt;as &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: purple"&gt;duck&lt;/s