﻿<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
	<channel>
		<title>Visual Basic Notebook For .NET</title>
		<link>http://vbnotebookfor.net/index.htm</link>
		<description>Articles on VB.NET and General Programming</description>
		<language>en-US</language>
		<item>
			<title>
				Code Example: MDI PDF File Viewer with Tabbed Header
			</title>
			<link>http://vbnotebookfor.net/vbnb_tabbedpdfviewer.htm</link>
			<pubDate>Sat, 23 Jun 2007 23:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_tabbedpdfviewer.htm</guid>
				<description>
					This code example attempts to answer two common questions. First, how can I load PDF files into my VB.NET application for viewing? And, second, how can I create a MDI application that has tabbed browsing like Visual Studio, MSDN, and IE7? While there are more complex, and perhaps more elegant, ways to accomplish these tasks, this example offers a simple, easy-to-use way to implement these features. Plus it shows how to deal with some quirks you might encounter.
				</description>
		</item>
		<item>
			<title>VB6 to VB.NET: Enlarge Combobox Dropdown Area</title>
			<link>http://vbnotebookfor.net/vbnb_enlargecomboboxdropdownarea.htm</link>
			<pubDate>Tue, 5 Jun 2007 23:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_enlargecomboboxdropdownarea.htm</guid>
			<description>
				In this second part of my series revisiting functions I wrote for VB6 I decided to see how one might implement a
				VB.NET routine to enlarge a combobox's dropdown area to the size of the largest string that's loaded into it. In VB6, as you can
				see in my original article, <a href="http://www.jfrankcarr.com/vbnb_archive/vbnb_function_enlargedropdownarea.htm">Enlarge Dropdown Area</a>, it required a few API calls to pull it off. Has this gotten any easier to do in VB.NET?
			</description>
		</item>
		<item>
			<title>VB6 to VB.NET: Select Text Upon Entry</title>
			<link>http://vbnotebookfor.net/vbnb_selecttextuponentry.htm</link>
			<pubDate>Mon, 4 Jun 2007 23:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_selecttextuponentry.htm</guid>
			<description>
				On my <a href="http://vbnotebookfor.net/vb6archive/vbnb_main.htm">VB6 Notebook Archive Site</a> I have several code examples that were part of my standard library of routines that I used in many places. I thought it would be an interesting exercise to revisit these functions to see how they would be implemented in VB.NET. The first one we'll take a look at is the <a href="http://www.jfrankcarr.com/vbnb_archive/vbnb_function_selecttext.htm">Select Text Upon Entry routine</a>. In VB6 we used the SelStart and SelLength properties of the textbox in the GotFocus event to select all the text when the user enters it. How would you do this in VB.NET?
			</description>
		</item>
		<item>
			<title>Tip Sheet: Free VB.NET Resources From Microsoft</title>
			<link>http://vbnotebookfor.net/vbnb_freems.htm</link>
			<pubDate>Sun, 3 Jun 2007 21:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_freems.htm</guid>
			<description>
				Microsoft often makes books, videos, code example and other media available online to developers in the MSDN library. Here are a few you should take advantage of if you're making the move from VB6 to VB.NET or if you just want to improve your knowledge and productivity. It's surprising that many developers simply don't bother to check out all the freebies Microsoft makes available to us.
			</description>
		</item>		
		<item>
			<title>Tip Sheet: The Continue Statement</title>
			<link>http://vbnotebookfor.net/vbnb_continue.htm</link>
			<pubDate>Thu, 31 May 2007 23:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_continue.htm</guid>
			<description>
				Before VS 2005 there was a missing piece of the puzzle in VB when it came to flow control in For...Next and Do loops, there was no good way to continue processing in a loop. This led to some programmers using crazy coding techniques, like huge If...ElseIf...Else blocks, or even the dreaded GoTo to implement it. Now, we have the Continue statement that allows us to skip to the next iteration of a loop with minimal code or heavy indenting. Here's how we can put it to work.
			</description>
		</item>		
		<item>
			<title>Code Example: Base64 Encoding</title>
			<link>http://vbnotebookfor.net/vbnb_base64encoding.htm</link>
			<pubDate>Tue, 29 May 2007 23:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_base64encoding.htm</guid>
			<description>
				Often a requirement is given to store binary information, such as a bitmap, inside an XML file or other text file. One way to do this is to encode the file information using Base64 encoding. This code example covers how to encode and decode file data using this method.
			</description>
		</item>
		<item>
			<title>Tip Sheet: Property Accessibility</title>
			<link>http://vbnotebookfor.net/vbnb_propertyaccessibility.htm</link>
			<pubDate>Tue, 29 May 2007 23:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_propertyaccessibility.htm</guid>
			<description>
				Often when we're designing a class we will notice that one or more properties should be Read-Only to the outside world but Read-Write at a tighter scope. A common way to do this in the past was to simply use the underlying property variable to set the variable internally. This worked but it could get complicated if there was processing logic in the property routine that needed to be called or if you needed to create a subclass. Now, however, in VS 2005 you can set the access level of the Property Get and Set separately.
			</description>
		</item>
		<item>
			<title>Tip Sheet: Partial Classes</title>
			<link>http://vbnotebookfor.net/vbnb_partialclasses.htm</link>
			<pubDate>Tue, 29 May 2007 23:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_partialclasses.htm</guid>
			<description>
				The .NET Framework 2.0 added the ability to split your class definition into multiple physical files. To the compiler, it doesn't make any difference, it simply brings the parts together and treats them as one. But what can partial classes do to improve your projects and when should you use them?         
			</description>
		</item>
		<item>
			<title>Tip Sheet: When to Rewrite?</title>
			<link>http://vbnotebookfor.net/vbnb_whentorewrite.htm</link>
			<pubDate>Sun, 27 May 2007 12:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_whentorewrite.htm</guid>
			<description>
				A common question is, "When should I update a working, deployed, VB6 app to VB.NET?"
				The answer, in part, depends on how well the VB6 app is doing its job and if it
				is showing warning signs that indicate that it is nearing the end of its lifecycle.
				In this article, I'll cover some of these warning signs.
			</description>
		</item>
		<item>
			<title>Tip Sheet: Encourage Creativity</title>
			<link>http://vbnotebookfor.net/vbnb_creativity.htm</link>
			<pubDate>Sun, 27 May 2007 12:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_creativity.htm</guid>
			<description>
				Software development is often seen as a purely analytical, linear, left
					brain, exercise. Many organizations manage software development projects
				this way and have a culture that rejects creativity by individual developers. However,
				many development projects also require a lot of "right brain", fuzzy, non-linear,
				thinking to be their best or, in some cases, successful at all.
			</description>
		</item>
		<item>
			<title>Code Example: System.Net.Mail How To</title>
			<link>http://vbnotebookfor.net/vbnb_netmail.htm</link>
			<pubDate>Wed, 23 May 2007 23:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_netmail.htm</guid>
			<description>
				VS 2005 / Framework 2.0 adds a new way to email, the System.Net.Mail Namespace that uses SMTP (Simple Mail Transfer Protocol) to deliver messages. In this article, I'll provide a simple example of how to use it and go over a couple of quirks that people get hung up on.
			</description>
		</item>
		<item>
  		    <title>Tip Sheet: Beware of the Byte Order Mark</title>
			<link>http://vbnotebookfor.net/vbnb_byte_order_mark.htm</link>
			<pubDate>Tue, 22 May 2007 23:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_byte_order_mark.htm</guid>
			<description>
				VS 2005 includes several new file management wrappers in the My.Computer.FileSystem namespace, including WriteAllText. This method is a quick and handy way to write small sized strings to disk but this method has a 'gotcha' in it. It uses UTF-8 encoding with a Byte Order Mark by default. This mark can easily confuse programs that aren't expecting it.
			</description>
		</item>
		<item>
			<title>BIO: Who Am I</title>
			<link>http://vbnotebookfor.net/vbnb_bio.htm</link>
			<pubDate>Tue, 22 May 2007 23:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_bio.htm</guid>
			<description>
				Simply put, I'm a programmer, probably like you are. I've been programming professionally for almost 20 years now and I've been working in one capacity or another with PC's since 1985.
			</description>
		</item>
		<item>
			<title>Code Example: Using Binary Serialization</title>
			<link>http://vbnotebookfor.net/vbnb_binaryserialization.htm</link>
			<pubDate>Mon, 21 May 2007 23:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_binaryserialization.htm</guid>
			<description>
				Binary Serialization is the process of storing the state of an object in a binary stream. The public and private members of the object as well as the name of the class are converted to a stream of bytes. This data can be written to disk, transmitted, or other managed in other ways that are applicable to data streams. When the object is deserialized, an exact clone of the original object is created. Think of it as a Star Trek style transporter for your objects.
			</description>
		</item>
		<item>
			<title>Tip Sheet: Avoid Using Dynamic SQL Statements</title>
			<link>http://vbnotebookfor.net/vbnb_sqlinjection.htm</link>
			<pubDate>Mon, 21 May 2007 23:42:16 EST</pubDate>
			<guid>http://vbnotebookfor.net/vbnb_sqlinjection.htm</guid>
			<description>
				Most programmers who've developed Web-centric database applications know about SQL injections attacks where a malicious hacker can insert commands into your dynamically built queries to retrieve passwords, infiltrate systems, drop tables or do other harm. However, desktop application developers should also be aware of the security risks and complications involved when you use dynamically built SQL statements in your applications.
			</description>
		</item>
	</channel>
</rss>