<?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>Windark</title>
    <link>http://windark.net/blog/</link>
    <description />
    <language>en-us</language>
    <copyright>Eddy Recio</copyright>
    <lastBuildDate>Sat, 21 Apr 2007 23:05:10 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.8.5223.2</generator>
    <managingEditor>eddy@windark.net</managingEditor>
    <webMaster>eddy@windark.net</webMaster>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=3b507c5e-6739-4c56-9b8b-f3bcb7fde9fb</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,3b507c5e-6739-4c56-9b8b-f3bcb7fde9fb.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,3b507c5e-6739-4c56-9b8b-f3bcb7fde9fb.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3b507c5e-6739-4c56-9b8b-f3bcb7fde9fb</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <title>Script # Controls</title>
      <guid>http://windark.net/blog/PermaLink,guid,3b507c5e-6739-4c56-9b8b-f3bcb7fde9fb.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,3b507c5e-6739-4c56-9b8b-f3bcb7fde9fb.aspx</link>
      <pubDate>Sat, 21 Apr 2007 23:05:10 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
   &lt;font face=Calibri color=#000000 size=3&gt;I was never much of a JavaScript guy. There
   were probably lots of reasons why I never found the need or want to code in it. I’ll
   just mention a few here, chime in if they resonate with you too ;-).&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;
   &lt;font color=#000000&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face=Calibri size=3&gt;1.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face=Calibri size=3&gt;Tooling
   around JavaScript has always been comical at best&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;
   &lt;font color=#000000&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face=Calibri size=3&gt;2.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face=Calibri size=3&gt;Difficult
   to debug. (kinda like #1.)&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;
   &lt;font color=#000000&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face=Calibri size=3&gt;3.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face=Calibri size=3&gt;Difficult
   to maintain.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;
   &lt;font color=#000000&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face=Calibri size=3&gt;4.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face=Calibri&gt;&lt;font size=3&gt;Drank
   too much Koolaid &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;font size=3&gt;as
   a child (nuff said ay?).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;
   &lt;font color=#000000&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face=Calibri size=3&gt;5.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face=Calibri size=3&gt;Who
   understands this stuff any way; everyone copies online samples or does “View Source”
   on your favorite site?&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
   &lt;font face=Calibri color=#000000 size=3&gt;However, my biggest impedance with it may
   have been the fact that I always wanted the full power of the OS (machine) behind
   my code, so that I could do all those cool Computer Sciency things, like OO, compilation,
   type safety, etc.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
   &lt;font face=Calibri color=#000000 size=3&gt;In either case a while back (Dec or Jan I
   think)I decided to play around with this great (&lt;a href="http://projects.nikhilk.net/Projects/ScriptSharp.aspx"&gt;Script
   #) &lt;/a&gt;tool. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;I did have to learn a bit
   of HTML and CSS, but I was able to build a set of controls rather quickly. I believe
   I had it all in done in about 2 weeks (including getting up to speed with the HMTL
   and CSS and &lt;a href="http://www.w3.org/DOM/"&gt;DOM&lt;/a&gt;). Not bad for a newbie if I say
   so my self. I do however credit S# and &lt;a href="http://www.nikhilk.net/"&gt;Nikhil's&lt;/a&gt; API&amp;nbsp;for
   that ,&amp;nbsp;the ability to build browser client code quickly, especially since I was
   able to apply the techniques I have used for years.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
   &lt;font face=Calibri color=#000000 size=3&gt;Now a few months past that initial proof of
   concept I decided to share the controls with the community. Ok, brace for the BIG
   Disclaimer. The first control was the Tab and probably the worst in usability, some
   of the others are cleaner. I will eventually refactor the whole thing, but for now
   they are built around a pseudo Winforms &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;style. &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
   &lt;font face=Calibri color=#000000 size=3&gt;I put together a couple of pages demoing some
   of the controls, namely ComboBox,TreeView, GridView and TabControl. &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
   &lt;o:p&gt;
      &lt;font face=Calibri color=#000000 size=3&gt;&amp;nbsp;&lt;img src="http://windark.net/blog/content/binary/ControlsPage.jpg" border=0&gt;&lt;/font&gt;
   &lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
   &lt;font face=Calibri color=#000000 size=3&gt;I may add some more usage samples soon or
   if I ever blog again. I may also share more of my original proof of concept, in the
   mean time enjoy the controls. You can always just rip the JavaScript and use that
   directly (I am a realist) :-P, the code could be used as plain ol' vanilla Java Script
   Controls.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
   &lt;font face=Calibri color=#000000 size=3&gt;Eddy&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;img src="http://windark.net/blog/content/binary/TabPage.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://windark.net/blog/content/binary/Windark.Script.zip"&gt;Windark.Script.zip
   (420.66 KB)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font color=#ff0000&gt;Updated the link to Nikhil.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   PS. Added a link here or there.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=3b507c5e-6739-4c56-9b8b-f3bcb7fde9fb" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,3b507c5e-6739-4c56-9b8b-f3bcb7fde9fb.aspx</comments>
      <category>Programming</category>
    </item>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=f91ecb16-b2cc-48d7-b7e6-cba34bda7498</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,f91ecb16-b2cc-48d7-b7e6-cba34bda7498.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,f91ecb16-b2cc-48d7-b7e6-cba34bda7498.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f91ecb16-b2cc-48d7-b7e6-cba34bda7498</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      I think by now most developers that use MS tools are aware of the proverbial "Mort"
      persona Microsoft created around the VB user. In fact, there are some interesting
      links on the Internet regarding this issue.
   </p>
        <p>
      I'll just list 2 of my favorites here, but of course feel free to Google to your hearts
      content.
   </p>
        <ul>
          <li>
            <a href="http://wesnerm.blogs.com/net_undocumented/2003/09/mort_vs_elvis.html">Mort
         vs. Elvis</a>
          </li>
          <li>
            <a href="http://www.nikhilk.net/Personas.aspx">Applying personas</a>
          </li>
        </ul>
        <p>
      However, it never dawned on me to think of it this way until I saw this today.
   </p>
        <p>
          <a href="http://www.dilbert.com/comics/dilbert/archive/dilbert-20061106.html">Mort
      is Dead!</a>
        </p>
        <p>
      PS. After seeing that, which one is the real Mort? Bah, I should have used the clever
      line "Would the real Mort please stand up...:
   </p>
        <img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=f91ecb16-b2cc-48d7-b7e6-cba34bda7498" />
      </body>
      <title>Is Mort dead?</title>
      <guid>http://windark.net/blog/PermaLink,guid,f91ecb16-b2cc-48d7-b7e6-cba34bda7498.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,f91ecb16-b2cc-48d7-b7e6-cba34bda7498.aspx</link>
      <pubDate>Mon, 06 Nov 2006 19:56:22 GMT</pubDate>
      <description>&lt;p&gt;
   I think by now most developers that use MS tools are aware of the proverbial "Mort"
   persona Microsoft created around the VB user. In fact, there are some interesting
   links on the Internet regarding this issue.
&lt;/p&gt;
&lt;p&gt;
   I'll just list 2 of my favorites here, but of course feel free to Google to your hearts
   content.
&lt;/p&gt;
&lt;ul&gt;
   &lt;li&gt;
      &lt;a href="http://wesnerm.blogs.com/net_undocumented/2003/09/mort_vs_elvis.html"&gt;Mort
      vs. Elvis&lt;/a&gt;
   &lt;/li&gt;
   &lt;li&gt;
      &lt;a href="http://www.nikhilk.net/Personas.aspx"&gt;Applying personas&lt;/a&gt;
   &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
   However, it never dawned on me to think of it this way until I saw this today.
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.dilbert.com/comics/dilbert/archive/dilbert-20061106.html"&gt;Mort
   is Dead!&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   PS. After seeing that, which one is the real Mort? Bah, I should have used the clever
   line "Would the real Mort please stand up...:
&lt;/p&gt;
&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=f91ecb16-b2cc-48d7-b7e6-cba34bda7498" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,f91ecb16-b2cc-48d7-b7e6-cba34bda7498.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=8b0d36ce-e7cf-4334-b9d9-895d45a48dc3</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,8b0d36ce-e7cf-4334-b9d9-895d45a48dc3.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,8b0d36ce-e7cf-4334-b9d9-895d45a48dc3.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=8b0d36ce-e7cf-4334-b9d9-895d45a48dc3</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Watermarks seem to be all the rage these
   days for data entry input fields on websites.  In fact, even Vista seems to be
   jumping on the band wagon with the Search Box. 
   <p></p><p><a href="http://www.windark.net/downloads/images/Watermarkscometoawindownearyou_959C/SearchBox111.jpg" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="84" src="http://www.windark.net/downloads/images/Watermarkscometoawindownearyou_959C/SearchBox11.jpg" width="240" border="0" /></a></p><p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/UxGuide/UXGuide/Resources/WhatsNewInVista/SearchBox.asp">MSDN
      Search Box</a></p><p>
      Recently, the team and I did some UI work for the major project we've been working
      on. There are lots of neat Visio mockups we put together -- prototypes, etc.. I would
      add that the UI in general looks fairly slick, if I may say so myself. However out
      of all the things we did, we were missing this new cool watermark feature. 
   </p><p>
      One of course could fairly trivially achieve this in Windows Forms by overriding
      the Paint event, among perhaps several other implementations. The problem of course
      lies in that this must be done for all controls one would like to display a watermark. 
   </p><p>
      You may be asking yourself "how many could there be?". Well, lets see, of the top
      of my head I think of the following: 
   </p><ul><li><p>
            TextBox 
         </p></li><li><p>
            MaskedTextBox 
         </p></li><li><p>
            ComboBox 
         </p></li><li><p>
            ListBox (Perhaps?)
         </p></li></ul><p>
      Ok, five controls is not that bad right? Well let's consider that if you're using
      Menu and Toolbars, then we need to add at least 2 more, perhaps more if you do ToolStripControlHosting
      (see <a href="http://msdn2.microsoft.com/en-us/library/9k5etstz.aspx">How to: Wrap
      a Windows Forms Control with ToolStripControlHost</a> ). 
   </p><ul><li><p>
            ToolStripTextBox 
         </p></li><li><p>
            ToolStripComboBox
         </p></li></ul><p>
      Ah, so 7 controls, that implement basically the exact same logic. What about
      DataGridViews? Those have the TextBox cell. I think by now you get the point. 
   </p><p>
      Of course, I have left out the dependencies you're creating for such a simple feature,
      in case you already have existing controls and or replacing existing ones. 
   </p><h4>Solution
   </h4><p>
      My solution, instead of using inheritance and overriding, I thought this was a good
      case to use the <a href="http://msdn2.microsoft.com/en-us/library/system.componentmodel.iextenderprovider.aspx">IExtenderProvider</a> .
      This interface does not directly refer to the pseudo pattern Microsoft has been
      using as an extensibility point in much of the .NET 2.0 stack. 
   </p><p>
      Instead, the purpose of the IExtenderProvider is to let developers augment existing
      Components/Controls with additionally properties without using inheritance. This feature
      essentially adds properties to the design time on your control via the PropertyGrid.
      One of the most common used extender providers is the ToolTip component. 
   </p><p>
      This then begs the question since this interface adds properties, that still does
      not solve how to draw when there is no text in the control and use the default behavior
      otherwise. 
   </p><p>
      For this I decided to use an existing control to perform the rendering by superimposing
      it over the existing controls, namely the label control. To get the desired look,
      I simply set the background property to transparent and the forecolor to GrayText.
      That's all! 
   </p><p>
      Part of using this alternative solution to was to prevent the covered control from
      knowing any implementation details about the watermark, this is just good object oriented
      design. The label should subscribe to certain events like when the covered control
      gets focus, then the label should be hidden. Also, when the covered control is resize
      this should be taken into account so that perhaps the watermark can be centered. 
   </p><h4>Additional Notes
   </h4><p>
      I decided to use a separate label for each control that receives a watermark, however
      the <strong>WaterMarkColor</strong> property on the <strong>WaterMarkProvider</strong> sets
      the color for all. Keep in mind you can have multiple WaterMarkProviders on a given
      form. 
   </p><p>
      BTW, currently there seems to be a bug with the combo box support. I'll look at this
      later unless someone takes the initative ;-) 
   </p><p>
      Enjoy! 
   </p><p><a href="http://www.windark.net/downloads/images/Watermarkscometoawindownearyou_959C/TestForm8.png" atomicselection="true"><img height="191" src="http://www.windark.net/downloads/images/Watermarkscometoawindownearyou_959C/TestForm_thumb6.png" width="274" /></a></p><h3><a href="http://www.windark.net/Downloads/WaterMarkProvider.zip">Download</a></h3><img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=8b0d36ce-e7cf-4334-b9d9-895d45a48dc3" /></body>
      <title>Watermarks come to a window near you!</title>
      <guid>http://windark.net/blog/PermaLink,guid,8b0d36ce-e7cf-4334-b9d9-895d45a48dc3.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,8b0d36ce-e7cf-4334-b9d9-895d45a48dc3.aspx</link>
      <pubDate>Fri, 03 Nov 2006 15:40:05 GMT</pubDate>
      <description>Watermarks seem to be all the rage these days for data entry input fields on websites.&amp;nbsp; In fact, even Vista seems to be jumping on the band wagon with the Search Box.  &lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.windark.net/downloads/images/Watermarkscometoawindownearyou_959C/SearchBox111.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="84" src="http://www.windark.net/downloads/images/Watermarkscometoawindownearyou_959C/SearchBox11.jpg" width="240" border="0"&gt;&lt;/a&gt; 
&lt;p&gt;
   &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/UxGuide/UXGuide/Resources/WhatsNewInVista/SearchBox.asp"&gt;MSDN
   Search Box&lt;/a&gt; 
&lt;p&gt;
   Recently, the team and I&amp;nbsp;did some UI work for the major project we've been working
   on. There are lots of neat Visio mockups we put together -- prototypes, etc.. I would
   add that the UI in general looks fairly slick, if I may say so myself. However out
   of all the things we did, we were missing this new cool&amp;nbsp;watermark feature. 
&lt;p&gt;
   One of course could fairly trivially achieve this&amp;nbsp;in Windows Forms by overriding
   the Paint event, among perhaps several other implementations. The problem of course
   lies in that this must be done for all controls one would like to display a watermark. 
&lt;p&gt;
   You may be asking yourself "how many could there be?". Well, lets see, of the top
   of my head I think of the following: 
&lt;ul&gt;
   &lt;li&gt;
      &lt;p&gt;
         TextBox 
      &lt;/p&gt;
   &lt;li&gt;
      &lt;p&gt;
         MaskedTextBox 
      &lt;/p&gt;
   &lt;li&gt;
      &lt;p&gt;
         ComboBox 
      &lt;/p&gt;
   &lt;li&gt;
      &lt;p&gt;
         ListBox (Perhaps?)
      &lt;/p&gt;
   &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
   Ok, five controls is not that bad right? Well let's consider that if you're using
   Menu and Toolbars, then we need to add at least 2 more, perhaps more if you do ToolStripControlHosting
   (see &lt;a href="http://msdn2.microsoft.com/en-us/library/9k5etstz.aspx"&gt;How to: Wrap
   a Windows Forms Control with ToolStripControlHost&lt;/a&gt; ). 
&lt;ul&gt;
   &lt;li&gt;
      &lt;p&gt;
         ToolStripTextBox 
      &lt;/p&gt;
   &lt;li&gt;
      &lt;p&gt;
         ToolStripComboBox
      &lt;/p&gt;
   &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
   Ah, so&amp;nbsp;7 controls, that implement basically the exact same logic. What about
   DataGridViews? Those have the TextBox cell. I think by now&amp;nbsp;you get the point. 
&lt;p&gt;
   Of course, I have left out the dependencies you're creating for such a simple feature,
   in case you already have existing controls and or replacing existing ones. 
&lt;h4&gt;Solution
&lt;/h4&gt;
&lt;p&gt;
   My solution, instead of using inheritance and overriding, I thought this was a good
   case to use the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.componentmodel.iextenderprovider.aspx"&gt;IExtenderProvider&lt;/a&gt; .
   This interface does not directly refer to the pseudo pattern Microsoft has&amp;nbsp;been
   using&amp;nbsp;as an extensibility point in much of the .NET 2.0 stack. 
&lt;p&gt;
   Instead, the purpose of the IExtenderProvider is to let&amp;nbsp;developers augment existing
   Components/Controls with additionally properties without using inheritance. This feature
   essentially adds properties to the design time on your control via the PropertyGrid.
   One of the most common used extender providers is the ToolTip component. 
&lt;p&gt;
   This then begs the question since this interface adds properties, that still does
   not solve how to draw when there is no text in the control and use the default behavior
   otherwise. 
&lt;p&gt;
   For this I decided to use an existing control to perform the rendering by superimposing
   it over the existing controls, namely the label control. To get the desired look,
   I simply set the background property to transparent and the forecolor to GrayText.
   That's all! 
&lt;p&gt;
   Part of using this alternative solution to was to prevent the covered control from
   knowing any implementation details about the watermark, this is just good object oriented
   design. The label should subscribe to certain events like when the covered control
   gets focus, then the label should be hidden. Also, when the covered control is resize
   this should be taken into account so that perhaps the watermark can be centered. 
&lt;h4&gt;Additional Notes
&lt;/h4&gt;
&lt;p&gt;
   I decided to use a separate label for each control that receives a watermark, however
   the &lt;strong&gt;WaterMarkColor&lt;/strong&gt; property on the &lt;strong&gt;WaterMarkProvider&lt;/strong&gt; sets
   the color for all. Keep in mind you can have multiple WaterMarkProviders on a given
   form. 
&lt;p&gt;
   BTW, currently there seems to be a bug with the combo box support. I'll look at this
   later unless someone takes the initative ;-) 
&lt;p&gt;
   Enjoy! 
&lt;p&gt;
   &lt;a href="http://www.windark.net/downloads/images/Watermarkscometoawindownearyou_959C/TestForm8.png" atomicselection="true"&gt;&lt;img height="191" src="http://www.windark.net/downloads/images/Watermarkscometoawindownearyou_959C/TestForm_thumb6.png" width="274"&gt;&lt;/a&gt; 
&lt;h3&gt;&lt;a href="http://www.windark.net/Downloads/WaterMarkProvider.zip"&gt;Download&lt;/a&gt;
&lt;/h3&gt;
&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=8b0d36ce-e7cf-4334-b9d9-895d45a48dc3" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,8b0d36ce-e7cf-4334-b9d9-895d45a48dc3.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=b7d9e296-ba46-4df4-b8c6-2b28ecfff0da</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,b7d9e296-ba46-4df4-b8c6-2b28ecfff0da.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,b7d9e296-ba46-4df4-b8c6-2b28ecfff0da.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b7d9e296-ba46-4df4-b8c6-2b28ecfff0da</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Pretty cool video. Although I think many people have seen some of these sample apps.
      It's still provides a good summary.
   </p>
        <p>
          <a href="http://go.microsoft.com/?linkid=5452295">http://go.microsoft.com/?linkid=5452295</a>
          <img height="1" src="http://blogs.msdn.com/aggbug.aspx?PostID=864909" width="1" />
        </p>
        <img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=b7d9e296-ba46-4df4-b8c6-2b28ecfff0da" />
      </body>
      <title>Cool WPF Video</title>
      <guid>http://windark.net/blog/PermaLink,guid,b7d9e296-ba46-4df4-b8c6-2b28ecfff0da.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,b7d9e296-ba46-4df4-b8c6-2b28ecfff0da.aspx</link>
      <pubDate>Tue, 24 Oct 2006 04:42:09 GMT</pubDate>
      <description>&lt;p&gt;
   Pretty cool video. Although I think many people have seen some of these sample apps.
   It's still provides a good summary.
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://go.microsoft.com/?linkid=5452295"&gt;http://go.microsoft.com/?linkid=5452295&lt;/a&gt;&lt;img height="1" src="http://blogs.msdn.com/aggbug.aspx?PostID=864909" width="1"&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=b7d9e296-ba46-4df4-b8c6-2b28ecfff0da" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,b7d9e296-ba46-4df4-b8c6-2b28ecfff0da.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=11ae111d-c8d4-4ace-9b34-7e5077c35a39</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,11ae111d-c8d4-4ace-9b34-7e5077c35a39.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,11ae111d-c8d4-4ace-9b34-7e5077c35a39.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=11ae111d-c8d4-4ace-9b34-7e5077c35a39</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      I am unsure if this is old and has been around already, but I recently received it
      via email. In either case I thought it was amusing.
   </p>
        <p>
          <span style="FONT-SIZE: 18pt; COLOR: red; FONT-FAMILY: 'Comic Sans MS'">How</span>
          <font face="Comic Sans MS" color="purple" size="5">
            <span style="FONT-SIZE: 18pt; COLOR: purple; FONT-FAMILY: 'Comic Sans MS'">
            </span>
          </font>
          <font face="Comic Sans MS" color="blue" size="5">
            <span style="FONT-SIZE: 18pt; COLOR: blue; FONT-FAMILY: 'Comic Sans MS'">to</span>
          </font>
          <font face="Comic Sans MS" color="purple" size="5">
            <span style="FONT-SIZE: 18pt; COLOR: purple; FONT-FAMILY: 'Comic Sans MS'">
            </span>
          </font>
          <font face="Comic Sans MS" color="red" size="5">
            <span style="FONT-SIZE: 18pt; COLOR: red; FONT-FAMILY: 'Comic Sans MS'">handle</span>
          </font>
          <font face="Comic Sans MS" color="purple" size="5">
            <span style="FONT-SIZE: 18pt; COLOR: purple; FONT-FAMILY: 'Comic Sans MS'">
            </span>
          </font>
          <font face="Comic Sans MS" color="blue" size="5">
            <span style="FONT-SIZE: 18pt; COLOR: blue; FONT-FAMILY: 'Comic Sans MS'">office</span>
          </font>
          <font face="Comic Sans MS" color="purple" size="5">
            <span style="FONT-SIZE: 18pt; COLOR: purple; FONT-FAMILY: 'Comic Sans MS'">
            </span>
          </font>
          <font face="Comic Sans MS" color="red" size="5">
            <span style="FONT-SIZE: 18pt; COLOR: red; FONT-FAMILY: 'Comic Sans MS'">conflicts</span>
          </font>
          <font face="Comic Sans MS" color="blue" size="5">
            <span style="FONT-SIZE: 18pt; COLOR: blue; FONT-FAMILY: 'Comic Sans MS'">.</span>
          </font>
          <font face="Arial" color="purple" size="2">
            <span style="FONT-SIZE: 10pt; COLOR: purple; FONT-FAMILY: Arial">
            </span>
          </font>
        </p>
        <p>
          <img alt="" hspace="0" src="C:\Documents and Settings\Erecio\Desktop\Office.gif" align="baseline" border="0" />
        </p>
        <img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=11ae111d-c8d4-4ace-9b34-7e5077c35a39" />
      </body>
      <title>How to handle office conflicts</title>
      <guid>http://windark.net/blog/PermaLink,guid,11ae111d-c8d4-4ace-9b34-7e5077c35a39.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,11ae111d-c8d4-4ace-9b34-7e5077c35a39.aspx</link>
      <pubDate>Wed, 30 Aug 2006 02:00:29 GMT</pubDate>
      <description>&lt;p&gt;
   I am unsure if this is old and has been around already, but I recently received it
   via email. In either case I thought it was amusing.
&lt;/p&gt;
&lt;p&gt;
   &lt;span style="FONT-SIZE: 18pt; COLOR: red; FONT-FAMILY: 'Comic Sans MS'"&gt;How&lt;/span&gt;&lt;font face="Comic Sans MS" color=purple size=5&gt;&lt;span style="FONT-SIZE: 18pt; COLOR: purple; FONT-FAMILY: 'Comic Sans MS'"&gt; &lt;/span&gt;&lt;/font&gt;&lt;font face="Comic Sans MS" color=blue size=5&gt;&lt;span style="FONT-SIZE: 18pt; COLOR: blue; FONT-FAMILY: 'Comic Sans MS'"&gt;to&lt;/span&gt;&lt;/font&gt;&lt;font face="Comic Sans MS" color=purple size=5&gt;&lt;span style="FONT-SIZE: 18pt; COLOR: purple; FONT-FAMILY: 'Comic Sans MS'"&gt; &lt;/span&gt;&lt;/font&gt;&lt;font face="Comic Sans MS" color=red size=5&gt;&lt;span style="FONT-SIZE: 18pt; COLOR: red; FONT-FAMILY: 'Comic Sans MS'"&gt;handle&lt;/span&gt;&lt;/font&gt;&lt;font face="Comic Sans MS" color=purple size=5&gt;&lt;span style="FONT-SIZE: 18pt; COLOR: purple; FONT-FAMILY: 'Comic Sans MS'"&gt; &lt;/span&gt;&lt;/font&gt;&lt;font face="Comic Sans MS" color=blue size=5&gt;&lt;span style="FONT-SIZE: 18pt; COLOR: blue; FONT-FAMILY: 'Comic Sans MS'"&gt;office&lt;/span&gt;&lt;/font&gt;&lt;font face="Comic Sans MS" color=purple size=5&gt;&lt;span style="FONT-SIZE: 18pt; COLOR: purple; FONT-FAMILY: 'Comic Sans MS'"&gt; &lt;/span&gt;&lt;/font&gt;&lt;font face="Comic Sans MS" color=red size=5&gt;&lt;span style="FONT-SIZE: 18pt; COLOR: red; FONT-FAMILY: 'Comic Sans MS'"&gt;conflicts&lt;/span&gt;&lt;/font&gt;&lt;font face="Comic Sans MS" color=blue size=5&gt;&lt;span style="FONT-SIZE: 18pt; COLOR: blue; FONT-FAMILY: 'Comic Sans MS'"&gt;.&lt;/span&gt;&lt;/font&gt;&lt;font face=Arial color=purple size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: purple; FONT-FAMILY: Arial"&gt; &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;img alt="" hspace=0 src="C:\Documents and Settings\Erecio\Desktop\Office.gif" align=baseline border=0&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=11ae111d-c8d4-4ace-9b34-7e5077c35a39" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,11ae111d-c8d4-4ace-9b34-7e5077c35a39.aspx</comments>
      <category>Off Topic</category>
    </item>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=3941bf08-4194-46a4-99d5-1ef718c92785</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,3941bf08-4194-46a4-99d5-1ef718c92785.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,3941bf08-4194-46a4-99d5-1ef718c92785.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3941bf08-4194-46a4-99d5-1ef718c92785</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Really funny cartoon for anyone following the whole Kiko sale.
   </p>
        <p>
          <a href="http://jkanstyle.com/2006/08/29/e-true-hollywood-story-kiko/">http://jkanstyle.com/2006/08/29/e-true-hollywood-story-kiko/</a>
        </p>
        <img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=3941bf08-4194-46a4-99d5-1ef718c92785" />
      </body>
      <title>Kiko cartoon</title>
      <guid>http://windark.net/blog/PermaLink,guid,3941bf08-4194-46a4-99d5-1ef718c92785.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,3941bf08-4194-46a4-99d5-1ef718c92785.aspx</link>
      <pubDate>Wed, 30 Aug 2006 01:50:06 GMT</pubDate>
      <description>&lt;p&gt;
   Really funny cartoon for anyone following the whole Kiko sale.
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://jkanstyle.com/2006/08/29/e-true-hollywood-story-kiko/"&gt;http://jkanstyle.com/2006/08/29/e-true-hollywood-story-kiko/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=3941bf08-4194-46a4-99d5-1ef718c92785" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,3941bf08-4194-46a4-99d5-1ef718c92785.aspx</comments>
      <category>Off Topic</category>
    </item>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=290ffce3-8ed9-4f53-8686-de7bd21d1c61</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,290ffce3-8ed9-4f53-8686-de7bd21d1c61.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,290ffce3-8ed9-4f53-8686-de7bd21d1c61.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=290ffce3-8ed9-4f53-8686-de7bd21d1c61</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Ok I know that was a crazy title but you'll get it if you read this great post.
   </p>
        <p>
          <a href="http://wesnerm.blogs.com/net_undocumented/2006/08/powers_of_ten.html">http://wesnerm.blogs.com/net_undocumented/2006/08/powers_of_ten.html</a>
        </p>
        <p>
      I especially like the factor of 10 history and the original video is well simple
      remarkable.
   </p>
        <p>
          <a href="http://www.youtube.com/watch?v=qrUQboKx_KE">http://www.youtube.com/watch?v=qrUQboKx_KE</a>
        </p>
        <p>
      For giggles the Simpson one is neat.
   </p>
        <p>
          <a href="http://www.youtube.com/watch?v=yCfDRvDWid0">http://www.youtube.com/watch?v=yCfDRvDWid0</a>
        </p>
        <img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=290ffce3-8ed9-4f53-8686-de7bd21d1c61" />
      </body>
      <title>Macro to Micro using order of Magnitudes</title>
      <guid>http://windark.net/blog/PermaLink,guid,290ffce3-8ed9-4f53-8686-de7bd21d1c61.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,290ffce3-8ed9-4f53-8686-de7bd21d1c61.aspx</link>
      <pubDate>Thu, 17 Aug 2006 00:59:14 GMT</pubDate>
      <description>&lt;p&gt;
   Ok I know that was a crazy title but you'll get it if you read this great post.
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://wesnerm.blogs.com/net_undocumented/2006/08/powers_of_ten.html"&gt;http://wesnerm.blogs.com/net_undocumented/2006/08/powers_of_ten.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   I&amp;nbsp;especially like the factor of 10 history and the original video is well simple
   remarkable.
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.youtube.com/watch?v=qrUQboKx_KE"&gt;http://www.youtube.com/watch?v=qrUQboKx_KE&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   For giggles the Simpson one is neat.
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.youtube.com/watch?v=yCfDRvDWid0"&gt;http://www.youtube.com/watch?v=yCfDRvDWid0&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=290ffce3-8ed9-4f53-8686-de7bd21d1c61" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,290ffce3-8ed9-4f53-8686-de7bd21d1c61.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=eeaee575-4134-4c66-a5e0-46baf0a5e366</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,eeaee575-4134-4c66-a5e0-46baf0a5e366.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,eeaee575-4134-4c66-a5e0-46baf0a5e366.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=eeaee575-4134-4c66-a5e0-46baf0a5e366</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      So I am sure all the Microsoft watchers are all over this one. Well, what the heck!
      Windows Live Writer seems like a neat program so far and it beats using any of those
      html controls, no matter how much javascript they use.
   </p>
        <p>
      Here is the home page: <a href="http://windowslivewriter.spaces.live.com/">http://windowslivewriter.spaces.live.com/</a></p>
        <p>
      Download: <a href="http://download.microsoft.com/download/f/9/a/f9a19f2d-cec4-4a25-9b0b-eb9655ea7561/Writer.msi">Download
      Writer!</a></p>
        <p>
      PS. This was my first post using it.
   </p>
        <img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=eeaee575-4134-4c66-a5e0-46baf0a5e366" />
      </body>
      <title>Windows Live Writer</title>
      <guid>http://windark.net/blog/PermaLink,guid,eeaee575-4134-4c66-a5e0-46baf0a5e366.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,eeaee575-4134-4c66-a5e0-46baf0a5e366.aspx</link>
      <pubDate>Mon, 14 Aug 2006 17:31:36 GMT</pubDate>
      <description>&lt;p&gt;
   So I am sure all the Microsoft watchers are all over this one. Well, what the heck!
   Windows Live Writer seems like a neat program so far and it beats using any of those
   html controls, no matter how much javascript they use.
&lt;/p&gt;
&lt;p&gt;
   Here is the home page: &lt;a href="http://windowslivewriter.spaces.live.com/"&gt;http://windowslivewriter.spaces.live.com/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   Download: &lt;a href="http://download.microsoft.com/download/f/9/a/f9a19f2d-cec4-4a25-9b0b-eb9655ea7561/Writer.msi"&gt;Download
   Writer!&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   PS. This was my first post using it.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=eeaee575-4134-4c66-a5e0-46baf0a5e366" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,eeaee575-4134-4c66-a5e0-46baf0a5e366.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=96975a8a-320b-4335-89b7-22c2ee7d10fc</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,96975a8a-320b-4335-89b7-22c2ee7d10fc.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,96975a8a-320b-4335-89b7-22c2ee7d10fc.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=96975a8a-320b-4335-89b7-22c2ee7d10fc</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      So everyone thinks concurrency will be super important in the years to come. And who
      would disagree? I recently found this link on the <a href="http://research.microsoft.com/research/">MS
      Research page.</a> Of course everyone's heard about C Omega, since it was the prototype
      for the implementation of generics, but did you know about the concurrency lib? 
   </p>
        <p>
          <a href="http://research.microsoft.com/research/downloads/#Joins+-+A+Concurrency+Library" name="Joins+-+A+Concurrency+Library">
          </a>
          <a href="http://research.microsoft.com/research/downloads/#Joins+-+A+Concurrency+Library">Joins
      - A Concurrency Library </a>
        </p>
        <tr>
        </tr>
        <p>
      Comega promised C# programmers a more pleasant world of concurrent programming. Comega
      had a simple, declarative, and powerful model of concurrency—Join Patterns—applicable
      both to multithreaded applications and to the orchestration of asynchronous, event-based
      distributed applications. By exploiting Generics in the Common Language Runtime, we
      can provide join patterns as a library rather than as a language feature. Offering
      a library has advantages: The library is language neutral, supporting C#, Visual Basic,
      and other languages; and the library's join patterns are dynamic, supporting solutions
      difficult to express with the static join patterns of Comega. The Joins library is
      efficient and has a simple interface that makes it easy to translate Comega programs
      to C#. The installer includes a tutorial, documentation, samples, and demos.
   </p>
        <img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=96975a8a-320b-4335-89b7-22c2ee7d10fc" />
      </body>
      <title>Concurrency will be worth it's weight in Gold.</title>
      <guid>http://windark.net/blog/PermaLink,guid,96975a8a-320b-4335-89b7-22c2ee7d10fc.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,96975a8a-320b-4335-89b7-22c2ee7d10fc.aspx</link>
      <pubDate>Fri, 11 Aug 2006 13:58:50 GMT</pubDate>
      <description>&lt;p&gt;
   So everyone thinks concurrency will be super important in the years to come. And who
   would disagree? I recently found this link on the &lt;a href="http://research.microsoft.com/research/"&gt;MS
   Research page.&lt;/a&gt; Of course everyone's heard about C Omega, since it was the prototype
   for the implementation of generics, but did you know about the concurrency lib? 
&lt;p&gt;
   &lt;a href="http://research.microsoft.com/research/downloads/#Joins+-+A+Concurrency+Library" name=Joins+-+A+Concurrency+Library&gt;&lt;/a&gt;&lt;a href="http://research.microsoft.com/research/downloads/#Joins+-+A+Concurrency+Library"&gt;Joins
   - A Concurrency Library &lt;/a&gt;
&lt;/p&gt;
&lt;tr&gt;
&lt;p&gt;
   Comega promised C# programmers a more pleasant world of concurrent programming. Comega
   had a simple, declarative, and powerful model of concurrency—Join Patterns—applicable
   both to multithreaded applications and to the orchestration of asynchronous, event-based
   distributed applications. By exploiting Generics in the Common Language Runtime, we
   can provide join patterns as a library rather than as a language feature. Offering
   a library has advantages: The library is language neutral, supporting C#, Visual Basic,
   and other languages; and the library's join patterns are dynamic, supporting solutions
   difficult to express with the static join patterns of Comega. The Joins library is
   efficient and has a simple interface that makes it easy to translate Comega programs
   to C#. The installer includes a tutorial, documentation, samples, and demos.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=96975a8a-320b-4335-89b7-22c2ee7d10fc" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,96975a8a-320b-4335-89b7-22c2ee7d10fc.aspx</comments>
      <category>.NET;Programming</category>
    </item>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=e5614fb8-6267-44d5-af82-8fde485c9c3d</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,e5614fb8-6267-44d5-af82-8fde485c9c3d.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,e5614fb8-6267-44d5-af82-8fde485c9c3d.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e5614fb8-6267-44d5-af82-8fde485c9c3d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font color="#000000">Wow! Even if you're not into music, you have to appreciate this
      video.</font>
        </p>
        <p>
          <a href="http://www.youtube.com/watch?v=QjA5faZF1A8&amp;feature=Favorites&amp;page=1&amp;t=t&amp;f=b">
            <font color="#0000ff">http://www.youtube.com/watch?v=QjA5faZF1A8&amp;feature=Favorites&amp;page=1&amp;t=t&amp;f=b</font>
          </a>
        </p>
        <p>
       
   </p>
        <p>
       
   </p>
        <img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=e5614fb8-6267-44d5-af82-8fde485c9c3d" />
      </body>
      <title>Got Solo?</title>
      <guid>http://windark.net/blog/PermaLink,guid,e5614fb8-6267-44d5-af82-8fde485c9c3d.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,e5614fb8-6267-44d5-af82-8fde485c9c3d.aspx</link>
      <pubDate>Fri, 11 Aug 2006 02:37:56 GMT</pubDate>
      <description>&lt;p&gt;
   &lt;font color=#000000&gt;Wow! Even if you're not into music, you have to appreciate this
   video.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.youtube.com/watch?v=QjA5faZF1A8&amp;amp;feature=Favorites&amp;amp;page=1&amp;amp;t=t&amp;amp;f=b"&gt;&lt;font color=#0000ff&gt;http://www.youtube.com/watch?v=QjA5faZF1A8&amp;amp;feature=Favorites&amp;amp;page=1&amp;amp;t=t&amp;amp;f=b&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=e5614fb8-6267-44d5-af82-8fde485c9c3d" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,e5614fb8-6267-44d5-af82-8fde485c9c3d.aspx</comments>
      <category>Off Topic</category>
    </item>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=4bfadd1b-fddd-4cc0-b7cf-97456a06798c</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,4bfadd1b-fddd-4cc0-b7cf-97456a06798c.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,4bfadd1b-fddd-4cc0-b7cf-97456a06798c.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=4bfadd1b-fddd-4cc0-b7cf-97456a06798c</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.windwardreports.com/film.htm">http://www.windwardreports.com/film.htm</a>
        </p>
        <p>
      Luckily at BNY (Bank of New York), we use rubber bands and hacky sacks instead of
      beach balls. And the most offending pranks are t'ping each other's white boards.
   </p>
        <p>
      Enjoy!
   </p>
        <img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=4bfadd1b-fddd-4cc0-b7cf-97456a06798c" />
      </body>
      <title>A must see video</title>
      <guid>http://windark.net/blog/PermaLink,guid,4bfadd1b-fddd-4cc0-b7cf-97456a06798c.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,4bfadd1b-fddd-4cc0-b7cf-97456a06798c.aspx</link>
      <pubDate>Fri, 11 Aug 2006 01:10:29 GMT</pubDate>
      <description>&lt;p&gt;
   &lt;a href="http://www.windwardreports.com/film.htm"&gt;http://www.windwardreports.com/film.htm&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   Luckily at BNY (Bank of New York), we use rubber bands and hacky sacks instead of
   beach balls. And the most offending pranks are t'ping each other's white boards.
&lt;/p&gt;
&lt;p&gt;
   Enjoy!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=4bfadd1b-fddd-4cc0-b7cf-97456a06798c" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,4bfadd1b-fddd-4cc0-b7cf-97456a06798c.aspx</comments>
      <category>Off Topic</category>
    </item>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=29a59ee0-9007-4a67-9bcb-6a907e6c2f6f</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,29a59ee0-9007-4a67-9bcb-6a907e6c2f6f.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,29a59ee0-9007-4a67-9bcb-6a907e6c2f6f.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=29a59ee0-9007-4a67-9bcb-6a907e6c2f6f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      So I came across this site (<a href="http://www.infoq.com/">http://www.infoq.com/</a>)
      recently. It has lots of industry news, but more importantly has a free eBook "Visual
      Studio Tips and Tricks" <a href="http://www.infoq.com/minibooks/vsnettt">http://www.infoq.com/minibooks/vsnettt</a>.
      You have to sign up to download, so spam might be a small price to pay ;-)
   </p>
        <p>
      I pride myself in knowing lots of VS shortcuts and the like, but I have to admit I
      have already picked up quite a few new ones.
   </p>
        <img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=29a59ee0-9007-4a67-9bcb-6a907e6c2f6f" />
      </body>
      <title>Visual Studio Tips and Tricks Book</title>
      <guid>http://windark.net/blog/PermaLink,guid,29a59ee0-9007-4a67-9bcb-6a907e6c2f6f.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,29a59ee0-9007-4a67-9bcb-6a907e6c2f6f.aspx</link>
      <pubDate>Thu, 03 Aug 2006 03:07:08 GMT</pubDate>
      <description>&lt;p&gt;
   So I came across this site (&lt;a href="http://www.infoq.com/"&gt;http://www.infoq.com/&lt;/a&gt;)
   recently. It has lots of industry news, but more importantly has a free eBook "Visual
   Studio Tips and Tricks" &lt;a href="http://www.infoq.com/minibooks/vsnettt"&gt;http://www.infoq.com/minibooks/vsnettt&lt;/a&gt;.
   You have to sign up to download, so&amp;nbsp;spam might be a small price to pay ;-)
&lt;/p&gt;
&lt;p&gt;
   I pride myself in knowing lots of VS shortcuts and the like, but I have to admit I
   have already picked up quite a few new ones.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=29a59ee0-9007-4a67-9bcb-6a907e6c2f6f" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,29a59ee0-9007-4a67-9bcb-6a907e6c2f6f.aspx</comments>
      <category>.NET;Programming</category>
    </item>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=79920164-4f26-4109-b719-05ba97031c9b</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,79920164-4f26-4109-b719-05ba97031c9b.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,79920164-4f26-4109-b719-05ba97031c9b.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=79920164-4f26-4109-b719-05ba97031c9b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Probably good advice for anyone starting out.
   </p>
        <p>
          <a href="http://samizdat.mines.edu/howto/HowToBeAProgrammer.html#id2791515">http://samizdat.mines.edu/howto/HowToBeAProgrammer.html#id2791515</a>
        </p>
        <img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=79920164-4f26-4109-b719-05ba97031c9b" />
      </body>
      <title>How to be a programmer</title>
      <guid>http://windark.net/blog/PermaLink,guid,79920164-4f26-4109-b719-05ba97031c9b.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,79920164-4f26-4109-b719-05ba97031c9b.aspx</link>
      <pubDate>Thu, 03 Aug 2006 02:58:39 GMT</pubDate>
      <description>&lt;p&gt;
   Probably good advice for anyone starting out.
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://samizdat.mines.edu/howto/HowToBeAProgrammer.html#id2791515"&gt;http://samizdat.mines.edu/howto/HowToBeAProgrammer.html#id2791515&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=79920164-4f26-4109-b719-05ba97031c9b" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,79920164-4f26-4109-b719-05ba97031c9b.aspx</comments>
      <category>General;Programming</category>
    </item>
    <item>
      <trackback:ping>http://windark.net/blog/Trackback.aspx?guid=b98fd64a-3e97-4a8e-8b5d-5e6b705ddb8a</trackback:ping>
      <pingback:server>http://windark.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://windark.net/blog/PermaLink,guid,b98fd64a-3e97-4a8e-8b5d-5e6b705ddb8a.aspx</pingback:target>
      <dc:creator>eddy@windark.net (Windark!)</dc:creator>
      <wfw:comment>http://windark.net/blog/CommentView,guid,b98fd64a-3e97-4a8e-8b5d-5e6b705ddb8a.aspx</wfw:comment>
      <wfw:commentRss>http://windark.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b98fd64a-3e97-4a8e-8b5d-5e6b705ddb8a</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Well not exactly available any time soon, but at least it's good to know we will eventually
      get a new version of Windows on a new architecture.
   </p>
        <p>
      Excerpt from the "Winfo ShortTakes" email newsletter.
   </p>
        <font size="2">
          <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
            <p>
              <font size="1">Microsoft Talks Up Future Windows OSs, Sort Of</font>
            </p>
            <p>
              <font size="1">Admitting that the current Windows architecture is getting long in
      the tooth, Microsoft is now finally in the early stages of creating a new OS based
      on an entirely new foundation. This new OS would eventually replace Windows. This
      news shouldn't come as a surprise, per se. But what's interesting is that Microsoft
      is actually talking about it for the first time. A future OS with a new foundation
      would better leverage the power of multicore microprocessors, the company says, but
      would require software-development tools that don't yet exist. Replacing Windows won't
      be easy, of course, and Microsoft is only at the first, tentative stages. But given
      how deftly the company handled the transitions to technologies such as the Intel 286,
      Windows NT, and x64 architecture, I can state with some certainty that we should be
      free of Windows by 2050, at the latest.</font>
            </p>
          </blockquote>
        </font>
        <img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=b98fd64a-3e97-4a8e-8b5d-5e6b705ddb8a" />
      </body>
      <title>New Microsoft OS</title>
      <guid>http://windark.net/blog/PermaLink,guid,b98fd64a-3e97-4a8e-8b5d-5e6b705ddb8a.aspx</guid>
      <link>http://windark.net/blog/PermaLink,guid,b98fd64a-3e97-4a8e-8b5d-5e6b705ddb8a.aspx</link>
      <pubDate>Wed, 26 Jul 2006 22:34:34 GMT</pubDate>
      <description>&lt;p&gt;
   Well not exactly available any time soon, but at least it's good to know we will eventually
   get a new version of Windows on a new architecture.
&lt;/p&gt;
&lt;p&gt;
   Excerpt from the "Winfo ShortTakes" email newsletter.
&lt;/p&gt;
&lt;font size=2&gt; &lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
   &lt;font size=1&gt;Microsoft Talks Up Future Windows OSs, Sort Of&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font size=1&gt;Admitting that the current Windows architecture is getting long in the
   tooth, Microsoft is now finally in the early stages of creating a new OS based on
   an entirely new foundation. This new OS would eventually replace Windows. This news
   shouldn't come as a surprise, per se. But what's interesting is that Microsoft is
   actually talking about it for the first time. A future OS with a new foundation would
   better leverage the power of multicore microprocessors, the company says, but would
   require software-development tools that don't yet exist. Replacing Windows won't be
   easy, of course, and Microsoft is only at the first, tentative stages. But given how
   deftly the company handled the transitions to technologies such as the Intel 286,
   Windows NT, and x64 architecture, I can state with some certainty that we should be
   free of Windows by 2050, at the latest.&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt;&lt;/font&gt;&lt;img width="0" height="0" src="http://windark.net/blog/aggbug.ashx?id=b98fd64a-3e97-4a8e-8b5d-5e6b705ddb8a" /&gt;</description>
      <comments>http://windark.net/blog/CommentView,guid,b98fd64a-3e97-4a8e-8b5d-5e6b705ddb8a.aspx</comments>
      <category>General</category>
    </item>
  </channel>
</rss>