<feed xmlns:dc="http://purl.org/dc/elements/1.1/" 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="http://www.w3.org/2005/Atom" xml:lang="en-GB">
    <title>Lazy Developer</title>
    <link rel="self" type="application/xml" href="http://geekswithblogs.net/LazyDeveloper/Atom.aspx" />
    <subtitle type="html">The Art Of Being Lazy</subtitle>
    <id>http://geekswithblogs.net/LazyDeveloper/Default.aspx</id>
    <author>
        <name>Ziemowit 'Jimmy' Skowronski</name>
        <uri>http://geekswithblogs.net/LazyDeveloper/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 0.0.0.0">Subtext</generator>
    <updated>2006-09-25T20:45:00Z</updated>
    <entry>
        <title>I'm moving</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/09/25/92280.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/09/25/92280.aspx</id>
        <published>2006-09-25T20:45:00-05:00:00</published>
        <updated>2006-09-25T20:45:00Z</updated>
        <content type="html">&lt;P&gt;I would like to announce, that I've moved to a new site so, if there is anyone who have my blog in bookmarks, please update it. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://devlicio.us/blogs/ziemowit_skowronski/default.aspx"&gt;http://devlicio.us/blogs/ziemowit_skowronski/default.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/92280.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/92280.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/92280.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/92280.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Tips: Atlas and url rewriting</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/08/17/88247.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/08/17/88247.aspx</id>
        <published>2006-08-17T11:32:00-05:00:00</published>
        <updated>2006-08-17T11:32:00Z</updated>
        <content type="html">&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri&gt;A&amp;nbsp;few days ago, I found unexpected problem with using Atlas in one of applications. No matter what I've done, UpdatePanel gives me "Unknown Error" message. I had this before and thought it is problem somewhere deep in application, but this time was different. Atlas was working well unless I've added url rewriting feature to the application, so this time I knew where problem could be.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri&gt;After a few tests, I found a problem. As a part of url rewriting feature I have actionless form to keep nice url after postback and it seems that somehow the action in the form is required by Atlas. Removing url rewriting is not an acceptable solution, so I had to find another one - just replace the action attribute with rewritten nice url. Atlas works fine and postbacks are going to nice url too.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri&gt;HTH&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/88247.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/88247.aspx</wfw:comment>
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/88247.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/88247.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Geek in the Park, 27th August</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/08/02/86888.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/08/02/86888.aspx</id>
        <published>2006-08-02T06:54:00-05:00:00</published>
        <updated>2006-08-02T06:54:00Z</updated>
        <content type="html">&lt;P&gt;It's a long day picnic for all geeks and their families and discussion for anyone to do with the Internet. Location Royal Leamington Spa, Warwickshire, UK.&lt;/P&gt;
&lt;P&gt;Maybe some will be interested. More details on &lt;A href="http://www.geekinthepark.co.uk/"&gt;http://www.geekinthepark.co.uk/&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/86888.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/86888.aspx</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/86888.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/86888.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Web forms design matters</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/07/27/86404.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/07/27/86404.aspx</id>
        <published>2006-07-27T08:12:00-05:00:00</published>
        <updated>2006-07-28T13:17:00Z</updated>
        <content type="html">&lt;P&gt;Some time ago, I've started using the &lt;A href="http://blogmarks.net/"&gt;blogmarks&lt;/A&gt;. Not for any particular reason, I'm not using tag cloud anywhere (so far) but I found the &lt;A href="http://blogmarks.net/"&gt;blogmarks&lt;/A&gt; as nice source of interesting pages. From time to time, I'm just looking what interesting pages peoples are posting there. This way I've found, maybe for you well known already, two pages &lt;A href="http://cssmania.com/"&gt;css mania&lt;/A&gt; and &lt;A href="http://www.webdesignfromscratch.com/"&gt;web design from scratch&lt;/A&gt;, both dedicated to css and web design matters. &lt;/P&gt;
&lt;P&gt;A few days ago, when I was about starting a new project, I've started weigh up form design. My first steps were to these two pages but as far I was concerning design and usability these two were good source of links and inspiration. But other thing concerns me. How do I should code form? So far I was using tables to organise form, but maybe there is a better, modern and more &amp;#8220;standard&amp;#8221; way. &lt;/P&gt;
&lt;P&gt;Checking next pages and jumping from the one page to another I&amp;#8217;ve found a great source of web interface design&amp;nbsp;- &lt;A href="http://www.lukew.com/"&gt;LukeW Interface Design&lt;/A&gt; with great in depth analysis on web forms in &lt;A href="http://www.lukew.com/resources/articles/web_forms.html"&gt;Web Application Form Design&lt;/A&gt; article where &lt;A href="http://www.lukew.com/"&gt;Luke&lt;/A&gt; suggest using of the table. Question is how to layout forms. &lt;/P&gt;
&lt;P&gt;There are two common ways, horizontal where label and the field are in the same line or vertical where label is placed above the field in the same column. Moreover, in horizontal layout labels can be aligned to the left or to the right. So which one is better, more usable and friendly? In fact is hard to give one answer. As &lt;A href="http://www.lukew.com/"&gt;Luke&lt;/A&gt; wrote, all layouts have advantages and disadvantages. &lt;A href="http://www.uxmatters.com/MT/archives/000107.php"&gt;Mateo Penzo&lt;/A&gt; made great eye tracking for both cases and some other variations, such as bold and normal labels in vertical layout. The first conclusion, after reading all of these materials, can be that vertical layout is best. Yes and no. Yes, because as &lt;A href="http://www.uxmatters.com/MT/archives/000107.php"&gt;Mateo&lt;/A&gt; has proven, its fastest and most natural layout. No, because in our work, forms are usually higher then screen and pages needs to be scrolled. Vertical layout will make forms twice longer as horizontal. That can be serious problem. On 1024x768 screen with page that contains standard header about 60px we will fit only ten fields and 15 fields on 1280x1024 screen. If we assume that the form has also some headers, sections and there are&amp;nbsp;multiline textboxes&amp;nbsp;then finally we can fit at least six to ten fields on 1280x1024 screen.&amp;nbsp;There are some cases when it is too less and, when user has to scroll form, all advantages from fast readable layout are wasted. So I think, everyone should take his own decision but I think I will use horizontal but with labels aligned to left. It&amp;#8217;s fast to read and fits well on page.&lt;/P&gt;
&lt;P&gt;So in summary I&amp;#8217;ve found that using tables for forms is still on track. Some of the CSS geeks says that divs or paragraphs has to be used instead to create forms. &lt;/P&gt;
&lt;DIV style="FONT-SIZE: 8pt; BACKGROUND: white; COLOR: black; FONT-FAMILY: Consolas"&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;div&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;label&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;Label&lt;SPAN style="COLOR: blue"&gt;&lt;/&lt; SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;label&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;input&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;type&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="text"&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&lt;/&lt; SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;div&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;!--EndFragment--&gt;
&lt;P&gt;&lt;FONT color=#ffffff&gt;Seems to be quite interesting idea, maybe. I&amp;#8217;ve tried this a few times and had some problems with positioning and general layout organisation and don&amp;#8217;t like this way. Advantage is that html with that form is easier to read and maintain, so maybe it is worth to try again?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ffffff&gt;And the final note. No matter which technique you will use you should place label in &lt;/FONT&gt;&lt;LABEL&gt;&lt;FONT color=#ffffff&gt;tag. That&amp;#8217;s fact. ASP.NET renders Label control as &amp;#8230; span. Don&amp;#8217;t know why. Fortunately with only a few lines we can create our own label that will use correct tag. Here is code:&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV style="FONT-SIZE: 8pt; BACKGROUND: white; COLOR: black; FONT-FAMILY: Consolas"&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System.Collections.Generic;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System.Text;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System.Web;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System.Web.UI.WebControls;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System.Web.UI;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System.ComponentModel;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;namespace&lt;/SPAN&gt; LazyDeveloper.Web.UI.WebControls&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/SPAN&gt;&amp;nbsp;{&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; [&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;ToolboxData&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"&amp;lt;{0}:Label runat=\"server\" Text=\"Label\"&amp;gt;"&lt;/SPAN&gt;),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;Designer&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"System.Web.UI.Design.WebControls.LabelDesigner, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"&lt;/SPAN&gt;),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;DataBindingHandler&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"System.Web.UI.Design.TextDataBindingHandler, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"&lt;/SPAN&gt;),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;DefaultProperty&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"Text"&lt;/SPAN&gt;),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;ControlValueProperty&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"Text"&lt;/SPAN&gt;),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;17&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;ParseChildren&lt;/SPAN&gt;(&lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;18&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;ControlBuilder&lt;/SPAN&gt;(&lt;SPAN style="COLOR: blue"&gt;typeof&lt;/SPAN&gt;(&lt;SPAN style="COLOR: teal"&gt;LabelControlBuilder&lt;/SPAN&gt;)),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;19&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; ]&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;Label&lt;/SPAN&gt; : System.Web.UI.WebControls.&lt;SPAN style="COLOR: teal"&gt;Label&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;21&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;22&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; RenderBeginTag(System.Web.UI.&lt;SPAN style="COLOR: teal"&gt;HtmlTextWriter&lt;/SPAN&gt; writer)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;23&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;24&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; AddAttributesToRender(writer);&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;25&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; writer.RenderBeginTag(&lt;SPAN style="COLOR: maroon"&gt;"label"&lt;/SPAN&gt;);&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;26&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;27&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; RenderEndTag(System.Web.UI.&lt;SPAN style="COLOR: teal"&gt;HtmlTextWriter&lt;/SPAN&gt; writer)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;28&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;29&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; writer.RenderEndTag();&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;30&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;31&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;32&lt;/SPAN&gt;&amp;nbsp;}&lt;/P&gt;&lt;/DIV&gt;&lt;!--EndFragment--&gt;
&lt;P&gt;&lt;FONT color=#ffffff&gt;Hope it helps&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&lt;/LABEL&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/86404.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/86404.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/86404.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/86404.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Simple Label control</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/07/27/86442.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/07/27/86442.aspx</id>
        <published>2006-07-27T13:52:00-05:00:00</published>
        <updated>2006-07-27T14:00:00Z</updated>
        <content type="html">&lt;P&gt;In previous post I wrote about label control that will generate "true" label tag. Here is more code for that simple control. Now you can assign control (like TextBox) which label will be for. Also AccessKey is rendered as underlined character. Happy using.&lt;/P&gt;
&lt;DIV style="FONT-SIZE: 8pt; BACKGROUND: white; COLOR: black; FONT-FAMILY: Consolas"&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System.Web.UI;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System.Web.UI.WebControls;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System.ComponentModel;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System.Text.RegularExpressions;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/SPAN&gt;&amp;nbsp;[assembly: &lt;SPAN style="COLOR: teal"&gt;TagPrefix&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"LazyDeveloper.Web.UI.Webcontrols"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: maroon"&gt;"LazyDeveloper"&lt;/SPAN&gt;)]&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;namespace&lt;/SPAN&gt; LazyDeveloper.Web.UI.Webcontrols&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/SPAN&gt;&amp;nbsp;{&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; [&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;ToolboxData&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"&amp;lt;{0}:FormLabel runat=\"server\" Text=\"Label\"&amp;gt;"&lt;/SPAN&gt;),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;Designer&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"System.Web.UI.Design.WebControls.LabelDesigner, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"&lt;/SPAN&gt;),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;DataBindingHandler&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"System.Web.UI.Design.TextDataBindingHandler, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"&lt;/SPAN&gt;),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;DefaultProperty&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"Text"&lt;/SPAN&gt;),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;ControlValueProperty&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"Text"&lt;/SPAN&gt;),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;ParseChildren&lt;/SPAN&gt;(&lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;17&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;ControlBuilder&lt;/SPAN&gt;(&lt;SPAN style="COLOR: blue"&gt;typeof&lt;/SPAN&gt;(&lt;SPAN style="COLOR: teal"&gt;LabelControlBuilder&lt;/SPAN&gt;)),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;18&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; ]&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;19&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;FormLabel&lt;/SPAN&gt; : &lt;SPAN style="COLOR: teal"&gt;Label&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;21&lt;/SPAN&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; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; RenderContents(&lt;SPAN style="COLOR: teal"&gt;HtmlTextWriter&lt;/SPAN&gt; writer)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;22&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;23&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (AccessKey != &lt;SPAN style="COLOR: maroon"&gt;""&lt;/SPAN&gt;)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;24&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;25&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;Regex&lt;/SPAN&gt; re = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;Regex&lt;/SPAN&gt;(AccessKey, &lt;SPAN style="COLOR: teal"&gt;RegexOptions&lt;/SPAN&gt;.IgnoreCase | &lt;SPAN style="COLOR: teal"&gt;RegexOptions&lt;/SPAN&gt;.Multiline);&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;26&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;MatchCollection&lt;/SPAN&gt; matches = re.Matches(Text);&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;27&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (matches.Count &amp;gt; 0)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;28&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;29&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; aKey = matches[0].Value;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;30&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Text = re.Replace(Text, &lt;SPAN style="COLOR: maroon"&gt;"&lt;U&gt;"&lt;/SPAN&gt; + aKey + &lt;SPAN style="COLOR: maroon"&gt;"&lt;/U&gt;"&lt;/SPAN&gt;, 1);&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;31&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;32&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;33&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; writer.Write(Text);&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;34&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&lt;/SPAN&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; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; AddAttributesToRender(&lt;SPAN style="COLOR: teal"&gt;HtmlTextWriter&lt;/SPAN&gt; writer)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;36&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;37&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;base&lt;/SPAN&gt;.AddAttributesToRender(writer);&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;38&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (For != &lt;SPAN style="COLOR: maroon"&gt;""&lt;/SPAN&gt;)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;39&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;40&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writer.AddAttribute(&lt;SPAN style="COLOR: teal"&gt;HtmlTextWriterAttribute&lt;/SPAN&gt;.For, For);&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;41&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;42&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;43&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; RenderBeginTag(System.Web.UI.&lt;SPAN style="COLOR: teal"&gt;HtmlTextWriter&lt;/SPAN&gt; writer)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;44&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;45&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; AddAttributesToRender(writer);&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;46&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; writer.RenderBeginTag(&lt;SPAN style="COLOR: maroon"&gt;"label"&lt;/SPAN&gt;);&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;47&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;48&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; RenderEndTag(System.Web.UI.&lt;SPAN style="COLOR: teal"&gt;HtmlTextWriter&lt;/SPAN&gt; writer)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;49&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;50&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; writer.RenderEndTag();&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;51&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;52&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;53&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; [&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;54&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;TypeConverter&lt;/SPAN&gt;(&lt;SPAN style="COLOR: blue"&gt;typeof&lt;/SPAN&gt;(&lt;SPAN style="COLOR: teal"&gt;ControlIDConverter&lt;/SPAN&gt;)), &lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;55&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;IDReferenceProperty&lt;/SPAN&gt;,&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;56&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;Description&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"Label_For"&lt;/SPAN&gt;), &lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;57&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;DefaultValue&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;""&lt;/SPAN&gt;),&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;58&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;Category&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"Behavior"&lt;/SPAN&gt;), &lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;59&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;ThemeableAttribute&lt;/SPAN&gt; (&lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;60&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; ]&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;61&lt;/SPAN&gt;&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; For&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;62&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;63&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;get&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;64&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;65&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; forControl = (&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;)ViewState[&lt;SPAN style="COLOR: maroon"&gt;"For"&lt;/SPAN&gt;];&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;66&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (forControl != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;67&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;68&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; forControl;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;69&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;70&lt;/SPAN&gt;&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;string&lt;/SPAN&gt;.Empty;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;71&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;72&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;set&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;73&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;74&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ViewState[&lt;SPAN style="COLOR: maroon"&gt;"For"&lt;/SPAN&gt;] = &lt;SPAN style="COLOR: blue"&gt;value&lt;/SPAN&gt;;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;75&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;76&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;77&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;78&lt;/SPAN&gt;&amp;nbsp;}&lt;/P&gt;&lt;/DIV&gt;&lt;!--EndFragment--&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/86442.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/86442.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/86442.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/86442.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Debugging client JavaScript in Visual Studio 2005</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/07/10/84552.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/07/10/84552.aspx</id>
        <published>2006-07-10T10:07:00-05:00:00</published>
        <updated>2006-07-19T05:56:00Z</updated>
        <content type="html">&lt;P&gt;Client Java Script is one of the most important things in web development but not the best and easiest to develop. Building of bigger and more complicated scripts, especially using DOM model or form field values can cause a lot of frustration and head pain. Moreover, JavaScript debugging is not easy and obvious as should be. But there is a hope.&lt;/P&gt;
&lt;P&gt;One of less known features of Visual Studio 2005 is Script Explorer, hidden in Debug menu where appears only when the debugger is running. This great tool allows easily debug JavaScripts.&lt;/P&gt;
&lt;P&gt;Before start, we should ensure that client script debugging is not disabled in IE as it is by default. Suitable options are located on Advanced tab of Internet Options where both script debugging checkboxes should be unchecked.&lt;/P&gt;
&lt;P&gt;&lt;IMG alt=0 src="/images/geekswithblogs_net/lazydeveloper/4731/r_2006-07-10_123847.png" border=0&gt;&lt;/P&gt;
&lt;P&gt;We can come back to Script Explorer. As it was written before, it appears only while the debugger is working. So after starting project we can go do Debug-&amp;gt;Windows where should be Script Explorer. Sometimes, don&amp;#8217;t know why, it doesn&amp;#8217;t so in this case we have to find it manually. Staying in debug mode right click on tool bar and go into Customize. Then select Debug in Categories on the left side of window and find Script Explorer on the right. Just drag it to Debugging toolbar. &lt;/P&gt;
&lt;P&gt;&lt;IMG alt=0 src="/images/geekswithblogs_net/lazydeveloper/4731/r_2006-07-10_100918.png" border=0&gt;&lt;/P&gt;
&lt;P&gt;After opening Script Explorer panel we will se the tree of active JavaScripts. At the first level are scripts that are imported from external sources or embedded in the page. There are also auto-generated scripts like postback scripts as well. By double-clicking on the selected script it will open in the main window.&lt;/P&gt;
&lt;P&gt;&lt;IMG alt=0 src="/images/geekswithblogs_net/lazydeveloper/4731/r_2006-07-10_101053.png" border=0&gt;&lt;/P&gt;
&lt;P&gt;At this moment, we can debug it in well known way using breakpoints, steps, Watch and QuickWatch, just like in the server side, including context browsing of a variable.&lt;/P&gt;
&lt;P&gt;&lt;IMG alt=0 src="/images/geekswithblogs_net/lazydeveloper/4731/r_2006-07-10_122214.png" border=0&gt;&lt;/P&gt;
&lt;P&gt;Breakpoints can also be set up in external *.js files before project will be loaded. Then, after loading project, the breakpoint will be activated by debugger. Note, that it is only possible to *.js files not for scripts embedded in pages. These scripts are available for debugging only after loading page.&lt;/P&gt;
&lt;P&gt;Hope it helps.&lt;/P&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/84552.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/84552.aspx</wfw:comment>
        <slash:comments>48</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/84552.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/84552.aspx</trackback:ping>
    </entry>
    <entry>
        <title>CSS-like Windows Forms</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/07/10/84545.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/07/10/84545.aspx</id>
        <published>2006-07-10T06:14:00-05:00:00</published>
        <updated>2006-07-10T06:13:00Z</updated>
        <content type="html">&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;I just noticed that &lt;A href="http://blogs.msdn.com/brada/archive/2006/07/09/660804.aspx"&gt;Brad Adams&lt;/A&gt; noticed that &lt;A href="http://blogs.msdn.com/mswanson/archive/2006/07/03/655682.aspx"&gt;Mike Swanson&lt;/A&gt; noticed &amp;#8230; oh whatever. Point is that &lt;A href="http://www.infragistics.com/"&gt;Infragistic&lt;/A&gt;, quite known .NET component designer company, have a quite interesting tool for styling Windows Forms applications. Personally, I&amp;#8217;m not using this tool and I&amp;#8217;m not event considering doing this. Moreover I&amp;#8217;m not even close to do any Windows Form application but this seems to be interesting enough to write about it here. The tool is called &lt;A href="http://www.infragistics.com/Products/NetAdvantage/WinForms/AppStyling/AppStylist.aspx"&gt;NetAdvantage AppStylist&lt;/A&gt; and allows creating CSS-like libraries for application. These &amp;#8220;stylesheets&amp;#8221; can be changed in-fly by the user and developer can also allow end user customisation. That&amp;#8217;s sounds really cool. Styles are cascading, so a top level style will be applied to all controls on a form.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt; &lt;/SPAN&gt;Like Brad, I would like to see anything that is using this feature. So if you gona use this, please send me a screen.&lt;/P&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/84545.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/84545.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/84545.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/84545.aspx</trackback:ping>
    </entry>
    <entry>
        <title>VSTSDBpro - the wall</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/06/27/83277.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/06/27/83277.aspx</id>
        <published>2006-06-27T12:13:00-05:00:00</published>
        <updated>2006-06-27T12:13:00Z</updated>
        <content type="html">&lt;P&gt;My previous post about VSTSDBpro was just the first step. Today&amp;#8217;s morning I&amp;#8217;ve sit down in my desk and started up with fresh power. Unfortunately after just a few steps I&amp;#8217;ve hit a wall which stopped me.&lt;/P&gt;
&lt;P&gt;I regret to have to say it, but VSTSDBpro in CTP3 version is useless. The origin of errors, that I mention yesterday, is the database schema import and there is nothing that can be done with this. In my case it was about all user defined functions, but as I&amp;#8217;ve read on forum it also happen in other cases. Moreover, charming "unexpected token" error appears in place where error can not exist and makes this entire situation even worse. The reason is the same &amp;#8211; schema import and parsing. What was worse, after saving the project and closing VS, the project didn&amp;#8217;t want open anymore. The "Null reference" error jumps out and that&amp;#8217;s everything we can do. That&amp;#8217;s a pity because everything promises to be so beautiful. Nevertheless I could taste what it has to be finally and this makes me hungrier.&lt;/P&gt;
&lt;P&gt;So, only I can do is waiting for the next version. I promise to write about my next tests. &lt;/P&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/83277.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/83277.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/83277.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/83277.aspx</trackback:ping>
    </entry>
    <entry>
        <title>First steps into VSTSDBpro</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/06/26/83114.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/06/26/83114.aspx</id>
        <published>2006-06-26T19:43:00-05:00:00</published>
        <updated>2006-06-26T19:46:00Z</updated>
        <content type="html">&lt;P&gt;&lt;A href="http://geekswithblogs.net/images/geekswithblogs_net/lazydeveloper/4731/o_vstedbpro_1.png" target=_blank&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; FLOAT: left; BORDER-LEFT: 0px; MARGIN-RIGHT: 5px; BORDER-BOTTOM: 0px; margin-borrom: 5px" src="/images/geekswithblogs_net/lazydeveloper/4731/t_vstedbpro_1.png"&gt;&lt;/A&gt; Finally installed. There was the SQL 2005 Express necessary before, but according to what I&amp;#8217;ve read should work well with any SQL Server 2005 edition. After install we have the new branch of projects ready to use. Unluckily projects for SQL Server 2005 aren&amp;#8217;t working well in the CTP3, so we are limited to the 2000 version. It&amp;#8217;s fortunate that I&amp;#8217;m just working on project with SQL 2000 database. Without needless reflection I&amp;#8217;ve decided to test the new CTP in real life.&lt;/P&gt;
&lt;P&gt;After loading the solution and removing current database project I&amp;#8217;ve tried to add the new database project. Unfortunately it was a vain attempt as I&amp;#8217;ve got "Incorrect syntax near: 'ENABLE_BROKER'" error message that crashed my dreams into pieces. Luckily after a short search on forum I&amp;#8217;ve found the solution. Important is to set up default database in VS options to SQL Server Express. In my case it was the default instance and it was SQL Server 2000. What is most interesting, when I&amp;#8217;ve tried to use the SQL Server 2005 instance (Developers Edition) I&amp;#8217;ve got a message that this instance isn&amp;#8217;t installed, weird.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://geekswithblogs.net/images/geekswithblogs_net/lazydeveloper/4731/o_vstedbpro_2.png" target=_blank&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; FLOAT: left; BORDER-LEFT: 0px; MARGIN-RIGHT: 5px; BORDER-BOTTOM: 0px; margin-borrom: 5px" src="/images/geekswithblogs_net/lazydeveloper/4731/t_vstedbpro_2.png"&gt;&lt;/A&gt;After successful adding the project to the solution I&amp;#8217;ve made database schema import. It locked VS for a dozen minutes and next few for source control update. After all of this I&amp;#8217;ve got beautiful database error log. Most of them were about unrecognised "dbo." in function calls. In spite of my astonishment I&amp;#8217;ve decide to deal with this issue later. Very positive impression gave me errors founded in stored procedures. Just before installing VSTSDBpro I&amp;#8217;ve made slight changes in one of the tables, column name and type, and VSTSDBpro found this as an error. Nice. I will play more with this great tool tomorrow so you can expect more.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/83114.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/83114.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/83114.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/83114.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Visual Studio 2005 Team Edition for Database Professionals</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/06/26/83038.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/06/26/83038.aspx</id>
        <published>2006-06-26T07:40:00-05:00:00</published>
        <updated>2006-06-26T07:40:00Z</updated>
        <content type="html">&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;The Big Brother (Microsoft) recently published CTP of &lt;A href="http://msdn.microsoft.com/vstudio/teamsystem/products/dbpro/"&gt;Visual Studio 2005 Team Edition for Database Professionals&lt;/A&gt; for download. According to the webpage this will be great tool for team work with database. It have such cool features like change control or automatic tests. Unfortunately, it works now only on SQL 2000, but for install require new version of SQL Express 2005 (with SP1 and additional tools). Weird. I'm just installing it so more will come.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt; &lt;/P&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/83038.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/83038.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/83038.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/83038.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Changing web.config on install</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/06/09/81351.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/06/09/81351.aspx</id>
        <published>2006-06-09T21:51:00-05:00:00</published>
        <updated>2006-06-09T21:51:00Z</updated>
        <content type="html">&lt;P&gt;The install project for a web application is very easy to create and quite effective. There are a lot of options that allows creating directories, shortcuts, registry keys and more, but there are also a few issues that could be important but are not included in project setup. In this and next two or three posts I will show some simple pieces of code that can make delivery of a web application easier.&lt;/P&gt;
&lt;P&gt;In the first approach we will take the web.config file on board. The web.config is extremely useful configuration container as everyone probably already knows. Usually in out development and/or test environment we are using different settings that are used in production. Moreover, very often we want to allow our customers to set some settings or even read these settings from their environment. No matter what is applicable in your case, you probably need to change the web.config file during install.&lt;/P&gt;
&lt;P&gt;I assume in this moment, that you already have an install project added to your solution and configured according to needs. To get access to files after install process you can override Install method and then by using Context parameters you can get the directory where the application is installed in. Further part is easy than. Using standard I/O methods you can access to any file in the freshly installed application and do everything what you want with them. As you can see in snippet below, after reading the install directory install is loading the web.config file as an XML and then modifying connection string.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Install(System.Collections.IDictionary stateSaver)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.Install(stateSaver);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string installPath = Context.Parameters["dir"];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; installPath += "web.config";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetWebConfig(installPath);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void SetWebConfig(string path)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlReaderSettings rSet = new XmlReaderSettings();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rSet.CloseInput = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlReader reader = XmlReader.Create(path, rSet);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string contents = reader.ReadOuterXml();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlDocument cnf = new XmlDocument();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnf.Load(reader);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reader.Close();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (XmlNode confNode in cnf.DocumentElement.ChildNodes)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (confNode.Name == "connectionStrings")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (XmlNode cnNode in confNode.ChildNodes)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (cnNode.Name == "add" &amp;amp;&amp;amp; cnNode.Attributes["connectionString"] != null)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string connStr = cnNode.Attributes["connectionString"].Value.ToString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string newConnStr = "Data Source=ProdServer;Initial Catalog=ProdDatabase;Integrated Security=True;";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnNode.Attributes["connectionString"].Value = newConnStr;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlWriterSettings wSet = new XmlWriterSettings();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wSet.Indent = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wSet.CloseOutput = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlWriter writer = XmlWriter.Create(path, wSet);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnf.Save(writer);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.Close();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;Cheers&lt;/P&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/81351.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/81351.aspx</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/81351.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/81351.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Why I don't like ReSharper</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/06/08/81186.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/06/08/81186.aspx</id>
        <published>2006-06-08T13:27:00-05:00:00</published>
        <updated>2006-06-08T13:27:00Z</updated>
        <content type="html">&lt;P&gt;Some time ago, one of my friends wrote about the upcoming ReSharper edition for the VS 2005. I&amp;#8217;ve checked, downloaded and installed. I could compare this to famous sentence said by Caesar, but not really. I&amp;#8217;ve added on more &amp;#8211; uninstalled.&lt;/P&gt;
&lt;P&gt;At the beginnings everything looks brilliant. My PC didn&amp;#8217;t crash. That&amp;#8217;s success. Moreover, the Visual Studio started also. That&amp;#8217;s even more success, especially because I&amp;#8217;m in 64-bit environment. Well, I will pass over in silence that it was started so long, that I&amp;#8217;ve started suspecting that someone swaps my CPU to 386. But we can&amp;#8217;t be so negative, right? So, after a short checkout if my CPU is till the same (it was, little dusty) I&amp;#8217;ve sit down again. Meantime VS has started up. Loading of a project allows me to make a coffee and buy a lunch from a sandwich van. VS was about finishing when I&amp;#8217;ve came back (strange transparent window in corner).&lt;/P&gt;
&lt;P&gt;Ok, it&amp;#8217;s working. I&amp;#8217;ve checked a settings, adjusted the code preferences to correct these parts that ReSharper is changing in compare to VS settings, looked for other options and being not sure what to do with them I&amp;#8217;ve started working. First, my attention has been turned on small red lines (a lot of them) and orange (a few). I&amp;#8217;ve made using optimisation, starting from the top, removed a few &amp;#8220;this&amp;#8221; and in this way I&amp;#8217;ve reached to the first red line. Symbol not found message confused me. A quick scan to .aspx file made me sure &amp;#8211; control exists, I was right but ReSharper stubbornly ways no. Hmm&amp;#8230; I&amp;#8217;ve decided that I&amp;#8217;ve lost so many time so far that I can lost a little more and I&amp;#8217;ve opened producers webpage. After short search I&amp;#8217;ve found solution &amp;#8211; error in plugin, will be corrected &amp;#8230; shortly. All right, will be pretending that these red lines doesn&amp;#8217;t exist if of course I will know which one are from error in plugin and which one from my own bugs.&lt;/P&gt;
&lt;P&gt;A little disappointed I&amp;#8217;ve started coding. Intellisense didn&amp;#8217;t impressed me so much. Supposedly more info but looks strange and works even more. Interesting was, that Shift+Ctrl+Space which should show me the list of parameters with all overloads stopped working. What the hell. I don&amp;#8217;t remember all overloads for a lot of methods I&amp;#8217;m using, I&amp;#8217;m using VS to haven&amp;#8217;t remember. Ok, that&amp;#8217;s not a big problem, I can use MSDN. Automatic brackets, quotations, formatting &amp;#8230; everything works perfect. Just great .. wait, I want this if in single line, don&amp;#8217;t expand it. Hey, come back&amp;#8230; Without any reason cursor has jumped a few lines down. Well. Just give him a chance.&lt;/P&gt;
&lt;P&gt;I was giving him a chance a few days but how long I can? The great tool instead of making my work easier required instant focus on code and makes my work slower in general. That&amp;#8217;s enough and I&amp;#8217;ve uninstalled it.&lt;/P&gt;
&lt;P&gt;Conclusions? ReSharper is the great tool but ... .why duplicate intellisense (even if it is &amp;#8220;smart&amp;#8221; and &amp;#8220;super hiper&amp;#8221;) when existing one in VS is good enough. The new one should be more useful but rather turns off very useful feature which I&amp;#8217;m habited to, by using &amp;#8220;naked&amp;#8221; VS. Why duplicate code formatting while existing works well. For adding new options &amp;#8211; welcome, but why duplicate existing with changing settings to new default? Because our is better? I don&amp;#8217;t like it. I don&amp;#8217;t like ReSharper, I will not buy it, not use it. Blah. Going to buy some ice-creams. Bye.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/81186.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/81186.aspx</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/81186.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/81186.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Two great tools for web developers</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/06/06/80903.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/06/06/80903.aspx</id>
        <published>2006-06-06T08:28:00-05:00:00</published>
        <updated>2006-06-06T09:58:00Z</updated>
        <content type="html">&lt;P&gt;&lt;IMG style="FLOAT: left; MARGIN: 0px 5px 5px 0px" src="/images/geekswithblogs_net/lazydeveloper/4731/r_2006-06-06_110724_t.png" border=0&gt;It&amp;#8217;s Strange, but I&amp;#8217;ve never realized that these tolls exist. Shame on me, I know.&lt;BR&gt;First, &lt;A href="http://www.nikhilk.net/Project.WebDevHelper.aspx"&gt;Web Devloper Helper&lt;/A&gt; by &lt;A href="http://www.nikhilk.net"&gt;Nikhil Kothari&lt;/A&gt; is plugin for Internet Explorer. It allows tracking HTTP traffic, debugging script, displaying ViewState, exploring DOM and more. It opens as a tab inside IE.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="FLOAT: right; MARGIN: 0px 0px 5px 5px" src="/images/geekswithblogs_net/lazydeveloper/4731/r_2006-06-06_110826_t.png" border=0&gt;Second tool is named &lt;A href="http://www.fiddlertool.com"&gt;Fiddler&lt;/A&gt; and according to information in About option is made by Microsoft Corporation. Don&amp;#8217;t know why this tool is not located on Microsoft website. Is this another Microsoft Corporation? This is advanced HTTP traffic tracking tool. You view very detailed content information or event set breakpoints. What is interesting, Fiddler is working in higher (or lower) level and track all HTTP traffic, even if it is not made by IE. For example, I&amp;#8217;m using &lt;A href="http://www.maxthon.com/"&gt;Maxthon&lt;/A&gt; browser and Fiddler is able to track its HTTP traffic. Number of information served by this tool is impressive. &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Cheers&lt;/P&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/80903.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/80903.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/80903.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/80903.aspx</trackback:ping>
    </entry>
    <entry>
        <title>DeveloperDeveloperDeveloper</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/06/04/80665.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/06/04/80665.aspx</id>
        <published>2006-06-04T09:12:00-05:00:00</published>
        <updated>2006-06-04T09:16:00Z</updated>
        <content type="html">&lt;P&gt;I&amp;#8217;ve just come back from third DeveloperDeveloperDeveloper UK Community event. In fact I&amp;#8217;ve come back yesterday, but I was too tired to write anything. It was my very first community event in UK since I&amp;#8217;m here and I have to say that &amp;#8211; it was great. I had an opportunity to meet a lot of peoples and start living in community, thats cool.&amp;nbsp;There is couple of photos &lt;A href="http://www.flickr.com/photos/plip/sets/72157594154434387/"&gt;&lt;SPAN&gt;http://www.flickr.com/photos/plip/sets/72157594154434387/&lt;/SPAN&gt;&lt;/A&gt; by Plip.&lt;/P&gt;
&lt;P&gt;Nothing more to say, who was there he know, who wasn&amp;#8217;t &amp;#8211; sorry. &lt;/P&gt;
&lt;P&gt;I&amp;#8217;m waiting for a next time.&lt;/P&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/80665.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/80665.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/80665.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/80665.aspx</trackback:ping>
    </entry>
    <entry>
        <title>3...2...1...Fire</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/LazyDeveloper/archive/2006/06/02/80446.aspx" />
        <id>http://geekswithblogs.net/LazyDeveloper/archive/2006/06/02/80446.aspx</id>
        <published>2006-06-02T12:09:00-05:00:00</published>
        <updated>2006-06-02T12:30:00Z</updated>
        <content type="html">&lt;P&gt;There it is, my second blog, &lt;A href="http://developers.pl/blogs/ziemowit/default.aspx"&gt;first one &lt;/A&gt;is in Polish&amp;nbsp;on the best community site in Poland - &lt;A href="http://developers.pl/default.aspx"&gt;developers.pl&lt;/A&gt;. I don't know if I will have enough a time to maintain two blogs, but will see.&amp;nbsp;In most cases, probably&amp;nbsp;posts on both sites will be the same, but not always. I want to establish my blog on UK's developers community. Wills so how it's gonna finish.&lt;/P&gt;
&lt;P&gt;A few words about me.&amp;nbsp;I'm web developer focused on&amp;nbsp;ASP.NET and all related topics.&amp;nbsp;I've came to England, Gloucestershire&amp;nbsp;in October 2005 where I'm working as Lead Developer in small training company. I'm involved in development of web-based LMS (Learning Management System) and TMS (Training Management System). After work I'm climbing and working on my own projects. I'm actively supporting .NET developers community in Poland. Hopefully I will try establish that kind of community in my area.&lt;/P&gt;
&lt;P&gt;Enjoy.&lt;/P&gt;&lt;img src="http://geekswithblogs.net/LazyDeveloper/aggbug/80446.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/LazyDeveloper/comments/80446.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/LazyDeveloper/comments/commentRss/80446.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/LazyDeveloper/services/trackbacks/80446.aspx</trackback:ping>
    </entry>
</feed>