<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-15552376</id><updated>2012-02-16T09:15:27.162-05:00</updated><category term='VFP'/><title type='text'>Billy's Coding Blog</title><subtitle type='html'>This is mainly a place where I am putting stuff that I want to remember.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-15552376.post-7335549418791119694</id><published>2010-08-05T09:12:00.000-04:00</published><updated>2010-08-05T09:12:39.574-04:00</updated><title type='text'>New Blog - http://www.inmessment.com/</title><content type='html'>I have started a new Blog: &lt;a href="http://www.inmessment.com/"&gt;http://www.inmessment.com/&lt;/a&gt;.

Please follow me there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-7335549418791119694?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/7335549418791119694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=7335549418791119694&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/7335549418791119694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/7335549418791119694'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2010/08/new-blog-httpwwwinmessmentcom.html' title='New Blog - http://www.inmessment.com/'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-1078108663987292895</id><published>2007-03-30T22:38:00.000-04:00</published><updated>2007-03-30T22:38:32.667-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFP'/><title type='text'>Saying good bye to an old friend</title><content type='html'>Here is a quote from an eWeek articles titled, &lt;a href="http://www.eweek.com/article2/0,1895,2103695,00.asp"&gt;Microsoft Puts FoxPro Out to Pasture&lt;/a&gt;

&lt;blockquote&gt;Microsoft has announced that it will not be releasing any new versions of its Visual FoxPro development software past Version 9.0, but the company will continue to support the technology through 2015.&lt;br /&gt;
&lt;br /&gt;
Instead of releasing new versions of FoxPro, Microsoft will release core portions of the FoxPro software to its CodePlex community development site, said Alan Griver, a group manager within the Microsoft Visual Studio team, which leads the FoxPro team.&lt;/blockquote&gt;

FoxPro has been a very good friend to me over the last ten years.  My first job out of college I learned to program in FoxPro 2.5 for DOS.  That experience got me a great job with a big Telecom company where I made the jump to Visual FoxPro 3 and I have used it ever since.  FoxPro is what got me in the door with my current employer and we are now using version 9.&lt;br /&gt;
&lt;br /&gt;
Over the last several years I have been doing more and more development in .NET, mainly C#.  Whenever I have to go back and do work in FoxPro I find myself wishing they would add this or that to FoxPro, like they have it in .NET.  I guess that is probably a big reason they are giving it up.&lt;br /&gt;
&lt;br /&gt;
I think us FoxPro developers knew the end was coming but we kept hoping Microsoft would keep it going.  I am interested to see what will come from the "release [of] core portions of the FoxPro software."  Maybe some of the things that are better in FoxPro will make their way into the .NET tools.&lt;br /&gt;
&lt;br /&gt;
Good bye old friend.  It has been really good working with you.&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-1078108663987292895?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/1078108663987292895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=1078108663987292895&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/1078108663987292895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/1078108663987292895'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2007/03/saying-good-bye-to-old-friend.html' title='Saying good bye to an old friend'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-6131488751052859091</id><published>2007-03-26T13:57:00.000-04:00</published><updated>2007-03-26T14:01:11.537-04:00</updated><title type='text'>Useful sites</title><content type='html'>Use this site to ping your server from outside your network:&lt;br /&gt;
&lt;a href="http://www.fifi.org/services/ping"&gt;http://www.fifi.org/services/ping&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use this site to see if a port is open:&lt;br /&gt;
&lt;a href="http://www.canyouseeme.org/"&gt;http://www.canyouseeme.org/&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-6131488751052859091?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/6131488751052859091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=6131488751052859091&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/6131488751052859091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/6131488751052859091'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2007/03/useful-sites.html' title='Useful sites'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-114666671169203757</id><published>2006-05-03T10:30:00.000-04:00</published><updated>2006-05-03T10:50:24.563-04:00</updated><title type='text'>Outlook 2003 - Warn if subject line is empty</title><content type='html'>This is my adaptation of the code found at: &lt;a href="http://notepadexe.blogspot.com/2005/07/outlook-2003-warn-if-subject-line-is.html"&gt;http://notepadexe.blogspot.com/2005/07/outlook-2003-warn-if-subject-line-is.html&lt;/a&gt;

&lt;ol&gt;
  &lt;li&gt;Go to the menu &lt;span style="font-family:courier new;"&gt;Tools → Macro → Visual Basic Editor&lt;/span&gt;.&lt;/li&gt;
  &lt;li&gt;Now in the Visual Basic Editor, you should see Project1 in the tree menu on the left. Drill down the tree to &lt;span style="font-family:courier new;"&gt;Project1 → Microsoft Office Outlook → ThisOutlookSession&lt;/span&gt;.&lt;/li&gt;
  &lt;li&gt;In the code area (the big text area on the right) paste in the following code:&lt;/li&gt;
&lt;/ol&gt;

&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Application_ItemSend(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Item &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, Cancel &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt;)
  &lt;span class="kwrd"&gt;If&lt;/span&gt; TypeName(Item) &amp;lt;&amp;gt; &lt;span class="str"&gt;"MailItem"&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;
    &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
  &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
  &lt;span class="rem"&gt;'CHECK FOR BLANK SUBJECT LINE&lt;/span&gt;
  &lt;span class="kwrd"&gt;If&lt;/span&gt; Item.Subject = &lt;span class="str"&gt;""&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;
    Cancel = MsgBox(&lt;span class="str"&gt;"This message has no subject."&lt;/span&gt; &amp;amp; vbNewLine &amp;amp; _
                      &lt;span class="str"&gt;"Do you wish to send anyway?"&lt;/span&gt;, _
                      vbMsgBoxSetForeground + vbYesNo + vbExclamation, _
                      &lt;span class="str"&gt;"No Subject"&lt;/span&gt;) = vbNo
    &lt;span class="kwrd"&gt;If&lt;/span&gt; Cancel &lt;span class="kwrd"&gt;Then&lt;/span&gt;
      &lt;span class="kwrd"&gt;Dim&lt;/span&gt; myInspector &lt;span class="kwrd"&gt;As&lt;/span&gt; Outlook.Inspector
      &lt;span class="kwrd"&gt;Set&lt;/span&gt; myInspector = Item.GetInspector
      myInspector.Activate
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
  &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-114666671169203757?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/114666671169203757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=114666671169203757&amp;isPopup=true' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/114666671169203757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/114666671169203757'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2006/05/outlook-2003-warn-if-subject-line-is.html' title='Outlook 2003 - Warn if subject line is empty'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-114666651704448257</id><published>2006-05-03T10:28:00.000-04:00</published><updated>2006-05-03T10:28:37.090-04:00</updated><title type='text'>Notepad . exe: Outlook 2003 - Warn if subject line is empty</title><content type='html'>&lt;a href="http://notepadexe.blogspot.com/2005/07/outlook-2003-warn-if-subject-line-is.html"&gt;Notepad . exe: Outlook 2003 - Warn if subject line is empty&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-114666651704448257?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/114666651704448257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=114666651704448257&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/114666651704448257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/114666651704448257'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2006/05/notepad-exe-outlook-2003-warn-if.html' title='Notepad . exe: Outlook 2003 - Warn if subject line is empty'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-113587993641322545</id><published>2005-12-29T13:12:00.000-05:00</published><updated>2005-12-29T13:12:16.446-05:00</updated><title type='text'>Getting and Displaying Images from SQL Server with C#</title><content type='html'>Here is a great article:&lt;br&gt;&lt;br&gt;
&lt;a href="http://www.samspublishing.com/articles/article.asp?p=377078"&gt;Getting and Displaying Images from SQL Server with C#&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-113587993641322545?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/113587993641322545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=113587993641322545&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/113587993641322545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/113587993641322545'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2005/12/getting-and-displaying-images-from-sql.html' title='Getting and Displaying Images from SQL Server with C#'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-113234979529266170</id><published>2005-11-18T16:36:00.000-05:00</published><updated>2005-11-18T16:36:35.313-05:00</updated><title type='text'>CopySourceAsHtml (CSAH)</title><content type='html'>&lt;a href="CopySourceAsHtml is a Visual Studio .NET add-in that allows you to copy source as HTML suitable for pasting into blogs. CSAH uses VS.NET's syntax highlighting and VS.NET's font and color settings automatically. If VS.NET can highlight it, CSAH can copy it, and your source should look the same in your browser as it does in your editor."&gt;CopySourceAsHtml (CSAH)&lt;/a&gt;: "CopySourceAsHtml is a Visual Studio .NET add-in that allows you to copy source as HTML suitable for pasting into blogs. CSAH uses VS.NET's syntax highlighting and VS.NET's font and color settings automatically. If VS.NET can highlight it, CSAH can copy it, and your source should look the same in your browser as it does in your editor."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-113234979529266170?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/113234979529266170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=113234979529266170&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/113234979529266170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/113234979529266170'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2005/11/copysourceashtml-csah.html' title='CopySourceAsHtml (CSAH)'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-113051245600801141</id><published>2005-10-28T11:14:00.000-04:00</published><updated>2005-10-28T11:14:16.063-04:00</updated><title type='text'>IDesign: WinFX Design and Process Solutions</title><content type='html'>In my continuing search 
for ways to make programming easier I came across the 
&lt;a title=http://www.idesign.net/ href="http://www.idesign.net/"&gt;IDesign&lt;/a&gt; 
web site.  IDesign is run by Juval Löwy who is Microsoft’s Regional Director for the 
Silicon Valley working on .NET and WinFx.  They have a download section that has 
a bunch of .NET sample code and helper classes for a lot of common tasks.
&lt;b&gt;And it’s all free!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Here is a link to the downloads: &amp;nbsp;&amp;nbsp;
&lt;a href="http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&amp;amp;tabid=11"&gt;IDesign: WinFX Design and Process Solutions&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-113051245600801141?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/113051245600801141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=113051245600801141&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/113051245600801141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/113051245600801141'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2005/10/idesign-winfx-design-and-process.html' title='IDesign: WinFX Design and Process Solutions'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-112852428583442511</id><published>2005-10-05T10:58:00.000-04:00</published><updated>2005-10-05T10:58:05.890-04:00</updated><title type='text'>Web Developemt - Nifty Corners </title><content type='html'>This page has code to round the corners on divisions and other HTML elements:&lt;br/&gt;
&lt;br/&gt;
&lt;a href="http://pro.html.it/articoli/id_599/idcat_31/pag_1/pag.html"&gt;More Nifty Corners | Web Design | PRO.HTML.IT&lt;/a&gt;: "Nifty Corners"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-112852428583442511?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/112852428583442511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=112852428583442511&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112852428583442511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112852428583442511'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2005/10/web-developemt-nifty-corners.html' title='Web Developemt - Nifty Corners '/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-112782683467921015</id><published>2005-09-27T09:13:00.000-04:00</published><updated>2005-09-27T09:16:31.430-04:00</updated><title type='text'>Excel Reader/Writer Tools</title><content type='html'>&lt;p&gt;
&lt;a href="http://www.carlosag.net/Tools/ExcelXmlWriter/Default.aspx"&gt;CarlosAg Excel Xml Writer Library&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.gemboxsoftware.com/ExcelLiteFree.htm"&gt;GemBox Software Products: ExcelLite Free&lt;/a&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-112782683467921015?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/112782683467921015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=112782683467921015&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112782683467921015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112782683467921015'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2005/09/excel-readerwriter-tools.html' title='Excel Reader/Writer Tools'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-112601023567026300</id><published>2005-09-06T08:37:00.000-04:00</published><updated>2005-09-06T08:37:15.676-04:00</updated><title type='text'>The Code Project - Generator-less! SQL Stored Procedure C# Wrapper - C# Database</title><content type='html'>This is an interesting article to researh further:&lt;br&gt;&lt;br&gt;
&lt;a href="http://www.codeproject.com/useritems/SqlSprocUtil.asp"&gt;The Code Project - Generator-less! SQL Stored Procedure C# Wrapper - C# Database&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-112601023567026300?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/112601023567026300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=112601023567026300&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112601023567026300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112601023567026300'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2005/09/code-project-generator-less-sql-stored.html' title='The Code Project - Generator-less! SQL Stored Procedure C# Wrapper - C# Database'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-112600865044977147</id><published>2005-09-06T08:10:00.000-04:00</published><updated>2005-09-06T08:17:32.043-04:00</updated><title type='text'>Concurrency: What Every Dev Must Know About Multithreaded Apps -- MSDN Magazine, August 2005</title><content type='html'>This is a good ariticle on multi-thread concurrency:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/08/Concurrency/default.aspx"&gt;Concurrency: What Every Dev Must Know About Multithreaded Apps -- MSDN Magazine, August 2005&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-112600865044977147?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/112600865044977147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=112600865044977147&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112600865044977147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112600865044977147'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2005/09/concurrency-what-every-dev-must-know.html' title='Concurrency: What Every Dev Must Know About Multithreaded Apps -- MSDN Magazine, August 2005'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-112498564271635978</id><published>2005-08-25T15:46:00.000-04:00</published><updated>2005-08-25T16:07:12.633-04:00</updated><title type='text'>Threding Pattern Template</title><content type='html'>Below is the code listing I use as a template when I want to handle basic multi-threading.&lt;br/&gt;
The Template uses the following Pattern:
&lt;ul&gt;
  &lt;li&gt;BeginProcess&lt;/li&gt;
  &lt;li&gt;Process&lt;/li&gt;
  &lt;li&gt;EndProcess&lt;/li&gt;
&lt;/ul&gt;

&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ComponentModel;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Forms;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Threading;

&lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;span class="rem"&gt;/// Represents a threading template class.&lt;/span&gt;
&lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ThreadProcessor : System.Windows.Forms.Form
{
    &lt;span class="kwrd"&gt;private&lt;/span&gt; System.Threading.Thread processingThread;
    
    &lt;span class="rem"&gt;// &lt;/span&gt;
    &lt;span class="rem"&gt;// Note: Windows Form Designer generated code has been removed &lt;/span&gt;
    &lt;span class="rem"&gt;// to simplify this example.&lt;/span&gt;
    &lt;span class="rem"&gt;// &lt;/span&gt;
    
    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;/// Begins the Thread process.&lt;/span&gt;
    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; BeginProcess()
    {
        &lt;span class="rem"&gt;// Check if the thread is currently processiing.&lt;/span&gt;
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.IsBusy)
        {
            &lt;span class="rem"&gt;// You could display a message here.&lt;/span&gt;
            &lt;span class="kwrd"&gt;this&lt;/span&gt;.CancelProcessing();
        }
        
        &lt;span class="rem"&gt;// Execute CopyColumns().&lt;/span&gt;
        &lt;span class="kwrd"&gt;this&lt;/span&gt;.processingThread = &lt;span class="kwrd"&gt;new&lt;/span&gt; Thread(&lt;span class="kwrd"&gt;new&lt;/span&gt; ThreadStart(&lt;span class="kwrd"&gt;this&lt;/span&gt;.Process));
        &lt;span class="kwrd"&gt;this&lt;/span&gt;.processingThread.IsBackground = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
        &lt;span class="kwrd"&gt;this&lt;/span&gt;.processingThread.Start();
        
    }
    
    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;/// The method that does the work.&lt;/span&gt;
    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Process()
    {
        &lt;span class="kwrd"&gt;try&lt;/span&gt;
        {
            &lt;span class="rem"&gt;// TODO: Add processing logic here.&lt;/span&gt;
        }
        &lt;span class="kwrd"&gt;catch&lt;/span&gt; (ThreadAbortException)
        {
            &lt;span class="rem"&gt;// This catch allows EndProcess() to be &lt;/span&gt;
            &lt;span class="rem"&gt;// called even if the thread is aborted.&lt;/span&gt;
            &lt;span class="rem"&gt;// TODO: Optionally add cancel logic here.&lt;/span&gt;
        }
        &lt;span class="kwrd"&gt;finally&lt;/span&gt;
        {
            &lt;span class="rem"&gt;// TODO: Optionally add cleanup logic here.&lt;/span&gt;
            
            &lt;span class="rem"&gt;// Invoke EndProcess() on the Form's thread.&lt;/span&gt;
            Delegate endDelegate = &lt;span class="kwrd"&gt;new&lt;/span&gt; EndProcessDelegate(&lt;span class="kwrd"&gt;this&lt;/span&gt;.EndProcess);
            &lt;span class="kwrd"&gt;this&lt;/span&gt;.BeginInvoke(endDelegate);
        }
    }
    
    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;/// Aborts the processing thread.&lt;/span&gt;
    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CancelProcess()
    {
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.IsBusy)
        {
            &lt;span class="kwrd"&gt;this&lt;/span&gt;.processingThread.Abort();
        }
    }
    
    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;/// Completes the Thread process.&lt;/span&gt;
    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; EndProcess()
    {
        &lt;span class="rem"&gt;// TODO: Add end process logic here.&lt;/span&gt;
    }
        
    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;/// Returns true if the processingThread is active.&lt;/span&gt;
    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; IsBusy
    {
        get {&lt;span class="kwrd"&gt;return&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.processingThread != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; &lt;span class="kwrd"&gt;this&lt;/span&gt;.processingThread.IsAlive);}
    }
}

&lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;span class="rem"&gt;/// Represents the EndProcess method.&lt;/span&gt;
&lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;delegate&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; EndProcessDelegate();


&lt;/pre&gt;
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-112498564271635978?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/112498564271635978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=112498564271635978&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112498564271635978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112498564271635978'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2005/08/threding-pattern-template.html' title='Threding Pattern Template'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-112499355331962017</id><published>2005-08-25T14:12:00.000-04:00</published><updated>2005-08-25T14:12:33.320-04:00</updated><title type='text'>c# code format</title><content type='html'>&lt;a href="http://www.manoli.net/csharpformat/"&gt;c# code format&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-112499355331962017?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/112499355331962017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=112499355331962017&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112499355331962017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112499355331962017'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2005/08/c-code-format.html' title='c# code format'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-112439035926449556</id><published>2005-08-24T08:40:00.000-04:00</published><updated>2005-08-25T13:47:03.133-04:00</updated><title type='text'>The docking Panel is my friend</title><content type='html'>For formatting in .Net Windows Forms I have found the System.Windows.Forms.Panel to be especially helpful. Users expect to be able to resize their forms however they want. Panels and the docking of Controls in Windows.Forms make this task simple.&lt;br/&gt;
&lt;br/&gt;
Usually my first step when creating a new Form is to add docked Panels to frame the separate areas of the form. Then I dock each Control within each Panel and Windows.Forms handles all the resizing for me.&lt;br/&gt;
&lt;br/&gt;
In the example below I use a Panel docked at the top of the form to make it seem like the Client ComboBox is part of the ToolBar. In fact the Client Label and ComboBox are docked to the left in the top Panel and then the ToolBar is docked to the left of the ComboBox (because there is not a ComboBox ToolBar control yet).&lt;br/&gt;
&lt;br/&gt;
&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/6241/1443/400/client_utility2.jpg" border="0" /&gt;
&lt;br/&gt;
Also in the Edit TabPage I use Panels to frame the expanding TextBox Controls and their Labels.  Each Label is docked to the left of the panel and each TextBox is docked to Fill the remaining space.  As the Form sizes or the text in the TextBox changes I resize the Panel and the TextBox automatically expands to Fill the space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-112439035926449556?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/112439035926449556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=112439035926449556&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112439035926449556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112439035926449556'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2005/08/docking-panel-is-my-friend.html' title='The docking Panel is my friend'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15552376.post-112438560715256820</id><published>2005-08-18T13:15:00.000-04:00</published><updated>2005-08-18T13:20:07.153-04:00</updated><title type='text'>Opening</title><content type='html'>This is my first blog.  I have wanted to share my thoughts on coding and hey! Google is going to make it easy for me.  I plan for this blog to be where I share what I learn as I live the life of a full time programmer working with mainly with .Net, C# and SQL Server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15552376-112438560715256820?l=bhartcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhartcode.blogspot.com/feeds/112438560715256820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15552376&amp;postID=112438560715256820&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112438560715256820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15552376/posts/default/112438560715256820'/><link rel='alternate' type='text/html' href='http://bhartcode.blogspot.com/2005/08/opening.html' title='Opening'/><author><name>Billy</name><uri>http://www.blogger.com/profile/12656985297495043707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y_04zJqx4xM/SwmHGDywkgI/AAAAAAAAAHA/nIe0y_QMi6I/S220/ProfileGIF2.gif'/></author><thr:total>0</thr:total></entry></feed>
