<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>31a2ba2a-b718-11dc-8314-0800200c9a66</title>
    <link>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/</link>
    <description>newtelligence powered</description>
    <language>en-us</language>
    <copyright>Your Name Here</copyright>
    <lastBuildDate>Mon, 30 Jun 2008 16:41:13 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>webmaster@31a2ba2a-b718-11dc-8314-0800200c9a66.com</managingEditor>
    <webMaster>webmaster@31a2ba2a-b718-11dc-8314-0800200c9a66.com</webMaster>
    <item>
      <trackback:ping>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/Trackback.aspx?guid=3da348b2-3abc-4af2-a95c-4c4db1780ce5</trackback:ping>
      <pingback:server>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,3da348b2-3abc-4af2-a95c-4c4db1780ce5.aspx</pingback:target>
      <dc:creator>Dina Berry</dc:creator>
      <wfw:comment>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,3da348b2-3abc-4af2-a95c-4c4db1780ce5.aspx</wfw:comment>
      <wfw:commentRss>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3da348b2-3abc-4af2-a95c-4c4db1780ce5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
My blackberry just threw an exception. The consumer in me thinks oh, $%^@#$. The programmer
in me thinks that's so cool, I wonder what did it. A hard boot got the thing going
again. 
</p>
        <img width="0" height="0" src="http://dina.berryintl.com/Blog/cptrk.ashx?id=0cf7f114-7113-4acb-a55c-45f7a6cbfe48" />
        <img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=3da348b2-3abc-4af2-a95c-4c4db1780ce5" />
      </body>
      <title>Blackberry thows exception</title>
      <guid isPermaLink="false">http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,3da348b2-3abc-4af2-a95c-4c4db1780ce5.aspx</guid>
      <link>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2008/06/30/BlackberryThowsException.aspx</link>
      <pubDate>Mon, 30 Jun 2008 16:41:13 GMT</pubDate>
      <description>&lt;p&gt;
My blackberry just threw an exception. The consumer in me thinks oh, $%^@#$. The programmer
in me thinks that's so cool, I wonder what did it. A hard boot got the thing going
again. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dina.berryintl.com/Blog/cptrk.ashx?id=0cf7f114-7113-4acb-a55c-45f7a6cbfe48"&gt;&lt;img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=3da348b2-3abc-4af2-a95c-4c4db1780ce5" /&gt;</description>
      <comments>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,3da348b2-3abc-4af2-a95c-4c4db1780ce5.aspx</comments>
      <category>Dina</category>
    </item>
    <item>
      <trackback:ping>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/Trackback.aspx?guid=dbeb3f9e-08df-4e92-9fa2-63c4e1838b47</trackback:ping>
      <pingback:server>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,dbeb3f9e-08df-4e92-9fa2-63c4e1838b47.aspx</pingback:target>
      <dc:creator>Dina Berry</dc:creator>
      <wfw:comment>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,dbeb3f9e-08df-4e92-9fa2-63c4e1838b47.aspx</wfw:comment>
      <wfw:commentRss>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/SyndicationService.asmx/GetEntryCommentsRss?guid=dbeb3f9e-08df-4e92-9fa2-63c4e1838b47</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The basics for the login pages are done. A few more tweaks and that will be done. 
</p>
        <p>
It might seem like I take forever but in truth, I don't have many hours a week to
give to this pet project right now. I hope to have more time this fall.
</p>
        <p>
 
</p>
        <img height="0" src="http://dina.berryintl.com/Blog/cptrk.ashx?id=48f27214-3df1-47da-8871-2ba16b4916b8" width="0" />
        <img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=dbeb3f9e-08df-4e92-9fa2-63c4e1838b47" />
      </body>
      <title>User Login, Create User, Send Password close to done</title>
      <guid isPermaLink="false">http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,dbeb3f9e-08df-4e92-9fa2-63c4e1838b47.aspx</guid>
      <link>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2008/06/25/UserLoginCreateUserSendPasswordCloseToDone.aspx</link>
      <pubDate>Wed, 25 Jun 2008 03:39:38 GMT</pubDate>
      <description>&lt;p&gt;
The basics for the login pages are done. A few more tweaks and that will be done. 
&lt;/p&gt;
&lt;p&gt;
It might seem like I take forever but in truth, I don't have many hours a week to
give to this pet project right now. I hope to have more time this fall.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img height=0 src="http://dina.berryintl.com/Blog/cptrk.ashx?id=48f27214-3df1-47da-8871-2ba16b4916b8" width=0&gt;&lt;img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=dbeb3f9e-08df-4e92-9fa2-63c4e1838b47" /&gt;</description>
      <comments>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,dbeb3f9e-08df-4e92-9fa2-63c4e1838b47.aspx</comments>
      <category>Dina</category>
      <category>Dina's Pet Project</category>
    </item>
    <item>
      <trackback:ping>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/Trackback.aspx?guid=fde4b553-b25e-42aa-b519-b03819de3c6b</trackback:ping>
      <pingback:server>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,fde4b553-b25e-42aa-b519-b03819de3c6b.aspx</pingback:target>
      <dc:creator>Will Asari</dc:creator>
      <wfw:comment>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,fde4b553-b25e-42aa-b519-b03819de3c6b.aspx</wfw:comment>
      <wfw:commentRss>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/SyndicationService.asmx/GetEntryCommentsRss?guid=fde4b553-b25e-42aa-b519-b03819de3c6b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In my quest to find a suitable generic update method for a generic LINQ Data
Access class I have found a decent amount of code and even more theories (sans
code).  Some good, some verbose, and a lot bad.  It seems that Extension
Methods are a fan favorite for just about everything nowadays and I wasn't suprised
to see Extension Methods being used for LINQ to SQL updates.
</p>
        <p>
In reading about Extension Methods I have heard good and bad feedback.  The good
usually involves the convenience of bypassing a utility class and the bad involving
code readability / maintability.  Forgive me for I am the William Hung of LINQ
as I have had no formal training in this arena, but IMHO Extension Methods are a pain-in-the-ass
when ExtensionMethodA returns the result of ExtensionMethodB which depends on
the output of ExtensionMethodC which ..... Here is an example of what I
am talking about in pseudo-code:
</p>
        <code>
          <p>
            <font color="#0000ff">public</font>
            <font color="#0000ff">static</font>
            <font color="#0000ff">bool</font> Update&lt;T&gt;(<font color="#0000ff">this</font><font color="#2b91af">Table</font>&lt;T&gt;
table, T instance) <font color="#0000ff">where</font> T: <font color="#0000ff">class<br /></font>{<br />
   <font color="#0000ff">try<br />
   </font>{<br />
      <font color="#008000">// do stuff here with parameters...<br />
      </font><font color="#0000ff">return</font> table.Foo()
&gt; 0;<br />
   }<br />
   <font color="#0000ff">catch</font> (<font color="#2b91af">Exception</font>)<br />
   {<br />
      <font color="#0000ff">return</font><font color="#0000ff">false</font>;<br />
   }<br />
}
</p>
          <p>
            <font color="#0000ff">public</font>
            <font color="#0000ff">static</font>
            <font color="#0000ff">int</font> Foo&lt;T&gt;(<font color="#0000ff">this</font><font color="#2b91af">Table</font>&lt;T&gt;
table) <font color="#0000ff">where</font> T: <font color="#0000ff">class<br /></font>{<br />
   <font color="#0000ff">return</font> table.GetEnumerator().Bar();<br />
}
</p>
          <p>
            <font color="#0000ff">public</font>
            <font color="#0000ff">static</font>
            <font color="#0000ff">int</font> Bar&lt;T&gt;(<font color="#0000ff">this</font><font color="#2b91af">IEnumerator</font>&lt;T&gt;
e) <font color="#0000ff">where</font> T : <font color="#0000ff">class<br /></font>{<br />
   <font color="#0000ff">return</font> 1;<br />
} 
</p>
        </code>
        <p>
Horrible example yes and for that I apologize.  Hopefully you see where I am
going with this and that if you are given a similar codebase it can be quite confusing. 
When I first heard of extension methods I though they were for simple utility tasks
such as outputting a decimal value as a dollar amount (again, doesn't <i>REALLY</i> warrant
an extension method but...):
</p>
        <code>
          <p>
            <font color="#0000ff">public</font>
            <font color="#0000ff">static</font>
            <font color="#0000ff">string</font> PrintWithDollarSign(<font color="#0000ff">this</font><font color="#0000ff">decimal</font> input)<br />
{<br />
   <font color="#0000ff">return</font> input.ToString(<font color="#a31515">"c"</font>);<br />
}
</p>
        </code>
        <p>
Simple. Effective. Here's how you would use:
</p>
        <code>
          <font color="#2b91af">
            <p>
Console
</p>
          </font>.WriteLine(instance.Price.PrintWithDollarSign());
</code>
        <p>
Cheap. No frills.  I <em>could </em>have just bypassed this extension method
altogether but it provides a very "Hello World"'y introduction to extension methods
for those of you not hip to them.  In my previous example if you had an object
with a <code>decimal</code> property and the value was 5.00 the output would be $5.00.
Easy.
</p>
        <p>
Anyone care to chime in on extension methods relying on other extension methods? I'd
love to get some feedback.
</p>
        <img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=fde4b553-b25e-42aa-b519-b03819de3c6b" />
      </body>
      <title>The Dark Side of Extension Methods</title>
      <guid isPermaLink="false">http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,fde4b553-b25e-42aa-b519-b03819de3c6b.aspx</guid>
      <link>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2008/06/06/TheDarkSideOfExtensionMethods.aspx</link>
      <pubDate>Fri, 06 Jun 2008 02:19:17 GMT</pubDate>
      <description>&lt;p&gt;
In my quest to find a suitable generic update method for a&amp;nbsp;generic&amp;nbsp;LINQ&amp;nbsp;Data
Access class&amp;nbsp;I have found a decent amount of code and even more theories (sans
code).&amp;nbsp; Some good, some verbose, and a lot bad.&amp;nbsp; It seems that Extension
Methods are a fan favorite for just about everything nowadays and I wasn't suprised
to see Extension Methods being used for LINQ to SQL updates.
&lt;/p&gt;
&lt;p&gt;
In reading about Extension Methods I have heard good and bad feedback.&amp;nbsp; The good
usually involves the convenience of bypassing a utility class and the bad involving
code readability / maintability.&amp;nbsp; Forgive me for I am the William Hung of LINQ
as I have had no formal training in this arena, but IMHO Extension Methods are a pain-in-the-ass
when ExtensionMethodA&amp;nbsp;returns the result of ExtensionMethodB which depends on
the output of ExtensionMethodC&amp;nbsp;which .....&amp;nbsp;Here is an example of what I
am talking about in pseudo-code:
&lt;/p&gt;
&lt;code&gt; 
&lt;p&gt;
&gt;&lt;font color=#0000ff&gt;public&lt;/font&gt; &gt;&lt;font color=#0000ff&gt;static&lt;/font&gt; &gt;&lt;font color=#0000ff&gt;bool&lt;/font&gt; Update&amp;lt;T&amp;gt;(&gt;&lt;font color=#0000ff&gt;this&lt;/font&gt; &gt;&lt;font color=#2b91af&gt;Table&lt;/font&gt;&amp;lt;T&amp;gt;
table, T instance) &gt;&lt;font color=#0000ff&gt;where&lt;/font&gt; T: &gt;&lt;font color=#0000ff&gt;class&lt;br&gt;
&lt;/font&gt;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&lt;font color=#0000ff&gt;try&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&lt;font color=#008000&gt;// do stuff here with parameters...&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color=#0000ff&gt;return&lt;/font&gt; table.Foo()
&amp;gt; 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&lt;font color=#0000ff&gt;catch&lt;/font&gt; (&gt;&lt;font color=#2b91af&gt;Exception&lt;/font&gt;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&lt;font color=#0000ff&gt;return&lt;/font&gt; &gt;&lt;font color=#0000ff&gt;false&lt;/font&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
}
&lt;/p&gt;
&lt;p&gt;
&gt;&lt;font color=#0000ff&gt;public&lt;/font&gt; &gt;&lt;font color=#0000ff&gt;static&lt;/font&gt; &gt;&lt;font color=#0000ff&gt;int&lt;/font&gt; Foo&amp;lt;T&amp;gt;(&gt;&lt;font color=#0000ff&gt;this&lt;/font&gt; &gt;&lt;font color=#2b91af&gt;Table&lt;/font&gt;&amp;lt;T&amp;gt;
table) &gt;&lt;font color=#0000ff&gt;where&lt;/font&gt; T: &gt;&lt;font color=#0000ff&gt;class&lt;br&gt;
&lt;/font&gt;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&lt;font color=#0000ff&gt;return&lt;/font&gt; table.GetEnumerator().Bar();&lt;br&gt;
}
&lt;/p&gt;
&lt;p&gt;
&gt;&lt;font color=#0000ff&gt;public&lt;/font&gt; &gt;&lt;font color=#0000ff&gt;static&lt;/font&gt; &gt;&lt;font color=#0000ff&gt;int&lt;/font&gt; Bar&amp;lt;T&amp;gt;(&lt;font color=#0000ff&gt;this&lt;/font&gt; &gt;&lt;font color=#2b91af&gt;IEnumerator&lt;/font&gt;&amp;lt;T&amp;gt;
e) &gt;&lt;font color=#0000ff&gt;where&lt;/font&gt; T : &gt;&lt;font color=#0000ff&gt;class&lt;br&gt;
&lt;/font&gt;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&lt;font color=#0000ff&gt;return&lt;/font&gt; 1;&lt;br&gt;
}&gt;&amp;nbsp;
&lt;/code&gt;&gt;
&lt;p&gt;
Horrible example yes and for that I apologize.&amp;nbsp; Hopefully you see where I am
going with this and that if you are given a similar codebase it can be quite confusing.&amp;nbsp;
When I first heard of extension methods I though they were for simple utility tasks
such as outputting a decimal value as a dollar amount (again, doesn't &lt;i&gt;REALLY&lt;/i&gt; warrant
an extension method but...):
&lt;/p&gt;
&lt;code&gt; 
&lt;p&gt;
&gt;&lt;font color=#0000ff&gt;public&lt;/font&gt; &gt;&lt;font color=#0000ff&gt;static&lt;/font&gt; &gt;&lt;font color=#0000ff&gt;string&lt;/font&gt; PrintWithDollarSign(&gt;&lt;font color=#0000ff&gt;this&lt;/font&gt; &gt;&lt;font color=#0000ff&gt;decimal&lt;/font&gt; input)&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&lt;font color=#0000ff&gt;return&lt;/font&gt; input.ToString(&gt;&lt;font color=#a31515&gt;"c"&lt;/font&gt;);&lt;br&gt;
}
&lt;/p&gt;
&gt;&lt;/code&gt; 
&lt;p&gt;
Simple. Effective. Here's how&amp;nbsp;you would use:
&lt;/p&gt;
&lt;code&gt;&lt;font color=#2b91af&gt; 
&lt;p&gt;
Console
&lt;/font&gt;.WriteLine(instance.Price.PrintWithDollarSign());&gt;
&gt;&lt;/code&gt; 
&lt;p&gt;
Cheap. No frills.&amp;nbsp; I &lt;em&gt;could &lt;/em&gt;have just bypassed this extension method
altogether but it provides a very "Hello World"'y introduction to extension methods
for those of you not hip to them.&amp;nbsp; In my previous example if you had an object
with a &lt;code&gt;decimal&lt;/code&gt; property and the value was 5.00 the output would be $5.00.
Easy.
&lt;/p&gt;
&lt;p&gt;
Anyone care to chime in on extension methods relying on other extension methods? I'd
love to get some feedback.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=fde4b553-b25e-42aa-b519-b03819de3c6b" /&gt;</description>
      <comments>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,fde4b553-b25e-42aa-b519-b03819de3c6b.aspx</comments>
      <category>C#</category>
      <category>Will</category>
    </item>
    <item>
      <trackback:ping>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/Trackback.aspx?guid=7e8f9d2f-09bb-40c2-ba80-ac42f0d6f9cc</trackback:ping>
      <pingback:server>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,7e8f9d2f-09bb-40c2-ba80-ac42f0d6f9cc.aspx</pingback:target>
      <dc:creator>Dina Berry</dc:creator>
      <wfw:comment>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,7e8f9d2f-09bb-40c2-ba80-ac42f0d6f9cc.aspx</wfw:comment>
      <wfw:commentRss>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/SyndicationService.asmx/GetEntryCommentsRss?guid=7e8f9d2f-09bb-40c2-ba80-ac42f0d6f9cc</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Now that I'm diggging a little deeper into my pet project web site, I'm learning how
I really use the data. The Get() methods provided by .netTiers are great but I thought
I would have more. I started looking at my database starting with the aspnet_Membership
tables. I would expect unique indexes on something as obvious as the email column
but it is not there. Same goes for other obvious columns in these microsoft-provided
tables. So I add unique indexes to the membership tables. Of course, I do the same
for my own custom tables and find that some of the text or varchar(max) have to be
changed. No biggie but another step I have to take. 
</p>
        <p>
Now that the database is set, I need to regen the .netTiers templates, rerun the GrantUser
stored proc, build the .netTiers stuff and copy it into the /bin of my project. Not
hard work but just tedious to get each step completed and move on to the next one.
All this so my .Get methods are consistent with my usage of the library. 
</p>
        <p>
All this so I can get my validators working - I really hate validators. 
</p>
        <img width="0" height="0" src="http://dina.berryintl.com/Blog/cptrk.ashx?id=803b7e95-7370-46f0-a3dd-78e85b75b590" />
        <img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=7e8f9d2f-09bb-40c2-ba80-ac42f0d6f9cc" />
      </body>
      <title>Adding unique indexes to SQL Tables</title>
      <guid isPermaLink="false">http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,7e8f9d2f-09bb-40c2-ba80-ac42f0d6f9cc.aspx</guid>
      <link>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2008/06/05/AddingUniqueIndexesToSQLTables.aspx</link>
      <pubDate>Thu, 05 Jun 2008 04:35:07 GMT</pubDate>
      <description>&lt;p&gt;
Now that I'm diggging a little deeper into my pet project web site, I'm learning how
I really use the data. The Get() methods provided by .netTiers are great but I thought
I would have more. I started looking at my database starting with the aspnet_Membership
tables. I would expect unique indexes on something as obvious as the email column
but it is not there. Same goes for other obvious columns in these microsoft-provided
tables. So I add unique indexes to the membership tables. Of course, I do the same
for my own custom tables and find that some of the text or varchar(max) have to be
changed. No biggie but another step I have to take. 
&lt;/p&gt;
&lt;p&gt;
Now that the database is set, I need to regen the .netTiers templates, rerun the GrantUser
stored proc, build the .netTiers stuff and copy it into the /bin of my project. Not
hard work but just tedious to get each step completed and move on to the next one.
All this so my .Get methods are consistent with my usage of the library. 
&lt;/p&gt;
&lt;p&gt;
All this so I can get my validators working - I really hate validators. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dina.berryintl.com/Blog/cptrk.ashx?id=803b7e95-7370-46f0-a3dd-78e85b75b590"&gt;&lt;img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=7e8f9d2f-09bb-40c2-ba80-ac42f0d6f9cc" /&gt;</description>
      <comments>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,7e8f9d2f-09bb-40c2-ba80-ac42f0d6f9cc.aspx</comments>
      <category>Dina</category>
      <category>NetTiers</category>
    </item>
    <item>
      <trackback:ping>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/Trackback.aspx?guid=09db9bad-a19a-41f0-add9-93efdd68577c</trackback:ping>
      <pingback:server>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,09db9bad-a19a-41f0-add9-93efdd68577c.aspx</pingback:target>
      <dc:creator>Dina Berry</dc:creator>
      <wfw:comment>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,09db9bad-a19a-41f0-add9-93efdd68577c.aspx</wfw:comment>
      <wfw:commentRss>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/SyndicationService.asmx/GetEntryCommentsRss?guid=09db9bad-a19a-41f0-add9-93efdd68577c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yesterday, I was reading the MSDN FLASH email newsletter and saw a listing for another <a href="http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx">SQL
injection</a> article. Since one of Wayne's sites was recently hacked, I thought I
would read it. The article is clear and gives explicit steps to take. Since I had
only done one of the three things (SQL stored procs), I thought I would mess with
the last one: execute permissions only. 
</p>
        <p>
Wayne pointed me to a <a href="http://www.mssqltips.com/tip.asp?tip=1203">stored
proc</a> to grant permissions to a user. Since users and roles are one of those
areas that after you have them set up correctly, you don't mess with them, I stumbled
my way through creating a user. I ran the stored proc (which will have to be run after
every .netTiers generation), modified my sql connection in web.config and tried
my pet project site. I get an error about SELECT statements and permissions.
.netTiers was supposed to be configured in web.config to use stored procs but apparently
not. So I change the file, build, and still get the error. Someone, somewhere is caching
something. Close everything done. Reopen. Change web.config and checkin with comment.
Test again and it works. 
</p>
        <p>
This is a really bad way to find a problem. It's getting to the point that I need
someone to check my security changes so this type of thing isn't missed. 
</p>
        <img width="0" height="0" src="http://dina.berryintl.com/Blog/cptrk.ashx?id=902fe6b5-446c-4463-a17f-1212a16ade54" />
        <img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=09db9bad-a19a-41f0-add9-93efdd68577c" />
      </body>
      <title>New SQL security finds web.config hole</title>
      <guid isPermaLink="false">http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,09db9bad-a19a-41f0-add9-93efdd68577c.aspx</guid>
      <link>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2008/06/04/NewSQLSecurityFindsWebconfigHole.aspx</link>
      <pubDate>Wed, 04 Jun 2008 03:00:10 GMT</pubDate>
      <description>&lt;p&gt;
Yesterday, I was reading the MSDN FLASH email newsletter and saw a listing for another &lt;a href="http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx"&gt;SQL
injection&lt;/a&gt; article. Since one of Wayne's sites was recently hacked, I thought I
would read it. The article is clear and gives explicit steps to take. Since I had
only done one of the three things (SQL stored procs), I thought I would mess with
the last one: execute permissions only. 
&lt;/p&gt;
&lt;p&gt;
Wayne&amp;nbsp;pointed me to a &lt;a href="http://www.mssqltips.com/tip.asp?tip=1203"&gt;stored
proc&lt;/a&gt; to grant permissions to a user.&amp;nbsp;Since users and roles are one of those
areas that after you have them set up correctly, you don't mess with them, I stumbled
my way through creating a user. I ran the stored proc (which will have to be run after
every .netTiers generation), modified my sql connection in web.config&amp;nbsp;and tried
my pet&amp;nbsp;project site. I get an error about SELECT statements and permissions.
.netTiers was supposed to be configured in web.config to use stored procs but apparently
not. So I change the file, build, and still get the error. Someone, somewhere is caching
something. Close everything done. Reopen. Change web.config and checkin with comment.
Test again and it works. 
&lt;/p&gt;
&lt;p&gt;
This is a really bad way to find a problem. It's getting to the point that I need
someone to check my security changes so this type of thing isn't missed. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dina.berryintl.com/Blog/cptrk.ashx?id=902fe6b5-446c-4463-a17f-1212a16ade54"&gt;&lt;img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=09db9bad-a19a-41f0-add9-93efdd68577c" /&gt;</description>
      <comments>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,09db9bad-a19a-41f0-add9-93efdd68577c.aspx</comments>
      <category>Dina</category>
      <category>Dina's Pet Project</category>
      <category>NetTiers</category>
    </item>
    <item>
      <trackback:ping>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/Trackback.aspx?guid=0a730fc1-6692-4a20-9f22-7855a6c73270</trackback:ping>
      <pingback:server>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,0a730fc1-6692-4a20-9f22-7855a6c73270.aspx</pingback:target>
      <dc:creator>Dina Berry</dc:creator>
      <wfw:comment>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,0a730fc1-6692-4a20-9f22-7855a6c73270.aspx</wfw:comment>
      <wfw:commentRss>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0a730fc1-6692-4a20-9f22-7855a6c73270</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Volume 14 of <a href="http://makezine.com/magazine/">Make Magazine</a> has an
interesting article on free web sites - web site builders that also host the end resulting
web site. 
</p>
        <img width="0" height="0" src="http://dina.berryintl.com/Blog/cptrk.ashx?id=3721f9ff-15c7-4504-a656-2fc6995df194" />
        <img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=0a730fc1-6692-4a20-9f22-7855a6c73270" />
      </body>
      <title>Free Personal Websites</title>
      <guid isPermaLink="false">http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,0a730fc1-6692-4a20-9f22-7855a6c73270.aspx</guid>
      <link>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2008/06/02/FreePersonalWebsites.aspx</link>
      <pubDate>Mon, 02 Jun 2008 02:52:45 GMT</pubDate>
      <description>&lt;p&gt;
Volume 14 of &lt;a href="http://makezine.com/magazine/"&gt;Make Magazine&lt;/a&gt;&amp;nbsp;has an
interesting article on free web sites - web site builders that also host the end resulting
web site. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dina.berryintl.com/Blog/cptrk.ashx?id=3721f9ff-15c7-4504-a656-2fc6995df194"&gt;&lt;img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=0a730fc1-6692-4a20-9f22-7855a6c73270" /&gt;</description>
      <comments>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,0a730fc1-6692-4a20-9f22-7855a6c73270.aspx</comments>
      <category>Dina</category>
    </item>
    <item>
      <trackback:ping>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/Trackback.aspx?guid=790fb36d-f7a4-489d-8393-e705c157496f</trackback:ping>
      <pingback:server>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,790fb36d-f7a4-489d-8393-e705c157496f.aspx</pingback:target>
      <dc:creator>Dina Berry</dc:creator>
      <wfw:comment>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,790fb36d-f7a4-489d-8393-e705c157496f.aspx</wfw:comment>
      <wfw:commentRss>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/SyndicationService.asmx/GetEntryCommentsRss?guid=790fb36d-f7a4-489d-8393-e705c157496f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Here is my latest article on 15seconds.com: <a href="http://www.15seconds.com/issue/080529.htm">http://www.15seconds.com/issue/080529.htm</a> titled
"Implementing the .netTiers Template Library as a .NET Website's Data Layer - Part
I"<br />
 
</p>
        <img height="0" src="http://dina.berryintl.com/Blog/cptrk.ashx?id=f9ad87eb-7db8-4266-bea5-5776bc3e4554" width="0" />
        <img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=790fb36d-f7a4-489d-8393-e705c157496f" />
      </body>
      <title>15seconds.com article: netTiers</title>
      <guid isPermaLink="false">http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,790fb36d-f7a4-489d-8393-e705c157496f.aspx</guid>
      <link>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2008/05/30/15secondscomArticleNetTiers.aspx</link>
      <pubDate>Fri, 30 May 2008 02:22:45 GMT</pubDate>
      <description>&lt;p&gt;
Here is my latest article on 15seconds.com: &lt;a href="http://www.15seconds.com/issue/080529.htm"&gt;http://www.15seconds.com/issue/080529.htm&lt;/a&gt;&amp;nbsp;titled
"Implementing the .netTiers Template Library as a .NET Website's Data Layer - Part
I"&lt;br&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img height=0 src="http://dina.berryintl.com/Blog/cptrk.ashx?id=f9ad87eb-7db8-4266-bea5-5776bc3e4554" width=0&gt;&lt;img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=790fb36d-f7a4-489d-8393-e705c157496f" /&gt;</description>
      <comments>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,790fb36d-f7a4-489d-8393-e705c157496f.aspx</comments>
      <category>Dina</category>
      <category>NetTiers</category>
    </item>
    <item>
      <trackback:ping>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/Trackback.aspx?guid=c03a1415-b1a6-4313-855b-5335daa4b5ea</trackback:ping>
      <pingback:server>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,c03a1415-b1a6-4313-855b-5335daa4b5ea.aspx</pingback:target>
      <dc:creator>Dina Berry</dc:creator>
      <wfw:comment>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,c03a1415-b1a6-4313-855b-5335daa4b5ea.aspx</wfw:comment>
      <wfw:commentRss>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c03a1415-b1a6-4313-855b-5335daa4b5ea</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Now I'm trying to get all my blogs tied together. Most are DasBlog so no big deal <strong>only
what is the endpoint? </strong>The documentation lists blogger.aspx off the root but
the file isn't there. Apparently from the forums I'm not the only one with the issue.
However, I thought I bet it is there virtual. So I enter that in the address bar and
I get a response of web service methods available. Nice - why doesn't the documentation
say the page isn't there but the dll will respond.
</p>
        <img width="0" height="0" src="http://dina.berryintl.com/Blog/cptrk.ashx?id=78ed3c66-b66b-4607-9235-fc4afc4aa798" />
        <img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=c03a1415-b1a6-4313-855b-5335daa4b5ea" />
      </body>
      <title>Crosspost from DasBlog to DasBlog</title>
      <guid isPermaLink="false">http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,c03a1415-b1a6-4313-855b-5335daa4b5ea.aspx</guid>
      <link>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2008/05/29/CrosspostFromDasBlogToDasBlog.aspx</link>
      <pubDate>Thu, 29 May 2008 04:46:55 GMT</pubDate>
      <description>&lt;p&gt;
Now I'm trying to get all my blogs tied together. Most are DasBlog so no big deal &lt;strong&gt;only
what is the endpoint? &lt;/strong&gt;The documentation lists blogger.aspx off the root but
the file isn't there. Apparently from the forums I'm not the only one with the issue.
However, I thought I bet it is there virtual. So I enter that in the address bar and
I get a response of web service methods available. Nice - why doesn't the documentation
say the page isn't there but the dll will respond.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dina.berryintl.com/Blog/cptrk.ashx?id=78ed3c66-b66b-4607-9235-fc4afc4aa798"&gt;&lt;img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=c03a1415-b1a6-4313-855b-5335daa4b5ea" /&gt;</description>
      <comments>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,c03a1415-b1a6-4313-855b-5335daa4b5ea.aspx</comments>
      <category>Dina</category>
    </item>
    <item>
      <trackback:ping>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/Trackback.aspx?guid=83ed6bb9-6eeb-4a86-bf90-b265609bdab6</trackback:ping>
      <pingback:server>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,83ed6bb9-6eeb-4a86-bf90-b265609bdab6.aspx</pingback:target>
      <dc:creator>Dina Berry</dc:creator>
      <wfw:comment>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,83ed6bb9-6eeb-4a86-bf90-b265609bdab6.aspx</wfw:comment>
      <wfw:commentRss>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/SyndicationService.asmx/GetEntryCommentsRss?guid=83ed6bb9-6eeb-4a86-bf90-b265609bdab6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I get an email every friday about the new events for families on the weekend on <a href="http://www.neighborhood-kids.com">www.neighborhood-kids.com</a>.
The design is great. I love it, but my eyes and mind do skip over things in the page
just assuming they are pretty but useless. Then I noticed the clock at the top of
the page was right about the time. Wow, that is cool. I'm going to have to pay closer
attention to what is technically happening on web sites. 
</p>
        <img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=83ed6bb9-6eeb-4a86-bf90-b265609bdab6" />
      </body>
      <title>Cool clock on neighborhood-kids.com</title>
      <guid isPermaLink="false">http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,83ed6bb9-6eeb-4a86-bf90-b265609bdab6.aspx</guid>
      <link>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2008/05/09/CoolClockOnNeighborhoodkidscom.aspx</link>
      <pubDate>Fri, 09 May 2008 04:14:25 GMT</pubDate>
      <description>&lt;p&gt;
I get an email every friday about the new events for families on the weekend on &lt;a href="http://www.neighborhood-kids.com"&gt;www.neighborhood-kids.com&lt;/a&gt;.
The design is great. I love it, but my eyes and mind do skip over things in the page
just assuming they are pretty but useless. Then I noticed the clock at the top of
the page was right about the time. Wow, that is cool. I'm going to have to pay closer
attention to what is technically happening on web sites. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=83ed6bb9-6eeb-4a86-bf90-b265609bdab6" /&gt;</description>
      <comments>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,83ed6bb9-6eeb-4a86-bf90-b265609bdab6.aspx</comments>
      <category>Dina</category>
    </item>
    <item>
      <trackback:ping>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/Trackback.aspx?guid=fe1fd904-66c5-4351-8ac8-982cbf6c3605</trackback:ping>
      <pingback:server>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,fe1fd904-66c5-4351-8ac8-982cbf6c3605.aspx</pingback:target>
      <dc:creator>Dina Berry</dc:creator>
      <wfw:comment>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,fe1fd904-66c5-4351-8ac8-982cbf6c3605.aspx</wfw:comment>
      <wfw:commentRss>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/SyndicationService.asmx/GetEntryCommentsRss?guid=fe1fd904-66c5-4351-8ac8-982cbf6c3605</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Living in the northwest is wonderful but when spring and summer start to show up (meaning
the sun makes a regular appearance), I totally loose all motivation. My brother from
England worked a summer for Boeing in Seattle a few years ago. He was shocked that
people didn't do any work in the summer. I was always luck at Microsoft to not have
a summer ship date. That would have totally sucked. 
</p>
        <p>
How can I think about writing code and the project when the sun is out just laughing
at me, taunting me to come out. 
</p>
        <img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=fe1fd904-66c5-4351-8ac8-982cbf6c3605" />
      </body>
      <title>The sun is out</title>
      <guid isPermaLink="false">http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/PermaLink,guid,fe1fd904-66c5-4351-8ac8-982cbf6c3605.aspx</guid>
      <link>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2008/05/03/TheSunIsOut.aspx</link>
      <pubDate>Sat, 03 May 2008 04:08:07 GMT</pubDate>
      <description>&lt;p&gt;
Living in the northwest is wonderful but when spring and summer start to show up (meaning
the sun makes a regular appearance), I totally loose all motivation. My brother from
England worked a summer for Boeing in Seattle a few years ago. He was shocked that
people didn't do any work in the summer. I was always luck at Microsoft to not have
a summer ship date. That would have totally sucked. 
&lt;/p&gt;
&lt;p&gt;
How can I think about writing code and the project when the sun is out just laughing
at me, taunting me to come out. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/aggbug.ashx?id=fe1fd904-66c5-4351-8ac8-982cbf6c3605" /&gt;</description>
      <comments>http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/CommentView,guid,fe1fd904-66c5-4351-8ac8-982cbf6c3605.aspx</comments>
      <category>Dina</category>
    </item>
  </channel>
</rss>