<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Dave Webster's WebLog : ASP.Net 2.0</title><link>http://blogs.msdn.com/davewebster/archive/tags/ASP.Net+2.0/default.aspx</link><description>Tags: ASP.Net 2.0</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>A simple Org chart app</title><link>http://blogs.msdn.com/davewebster/archive/2007/09/25/a-simple-org-chart-app.aspx</link><pubDate>Tue, 25 Sep 2007 11:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5116129</guid><dc:creator>davewebster</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/davewebster/comments/5116129.aspx</comments><wfw:commentRss>http://blogs.msdn.com/davewebster/commentrss.aspx?PostID=5116129</wfw:commentRss><description>A couple of years ago at Teched South Africa I presented a session originally done by the great Jeff Prosise around the provider model in ASP.Net. I remember suggesting that this was not only a neat way to handle membership, roles and whatever in ASP.Net...(&lt;a href="http://blogs.msdn.com/davewebster/archive/2007/09/25/a-simple-org-chart-app.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5116129" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/davewebster/archive/tags/ASP.Net+2.0/default.aspx">ASP.Net 2.0</category><category domain="http://blogs.msdn.com/davewebster/archive/tags/Provider+Model/default.aspx">Provider Model</category><category domain="http://blogs.msdn.com/davewebster/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category></item><item><title>slides and demos for the ASP .Net 2.0 tour</title><link>http://blogs.msdn.com/davewebster/archive/2005/08/02/446548.aspx</link><pubDate>Tue, 02 Aug 2005 13:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:446548</guid><dc:creator>davewebster</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/davewebster/comments/446548.aspx</comments><wfw:commentRss>http://blogs.msdn.com/davewebster/commentrss.aspx?PostID=446548</wfw:commentRss><description>Links to ASP tour slides and demos...(&lt;a href="http://blogs.msdn.com/davewebster/archive/2005/08/02/446548.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=446548" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/davewebster/archive/tags/ASP.Net+2.0/default.aspx">ASP.Net 2.0</category></item><item><title>More on migrating to ASP.Net 2.0 - a picture data object </title><link>http://blogs.msdn.com/davewebster/archive/2005/07/25/443054.aspx</link><pubDate>Mon, 25 Jul 2005 20:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:443054</guid><dc:creator>davewebster</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/davewebster/comments/443054.aspx</comments><wfw:commentRss>http://blogs.msdn.com/davewebster/commentrss.aspx?PostID=443054</wfw:commentRss><description>&lt;P&gt;This video shows how to create a simple (everything I do is simple) data object to retrieve a generic list of pictures in&amp;nbsp;the ProductImages folder.&amp;nbsp; I use this data object to bind a datalist where we can see the picture itself and its name.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://davewebster.members.winisp.net/picturemanager/picturemanager.html"&gt;http://davewebster.members.winisp.net/picturemanager/picturemanager.html&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=443054" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/davewebster/archive/tags/ASP.Net+2.0/default.aspx">ASP.Net 2.0</category></item><item><title>Migrating to ASP.Net 2.0 - the default page</title><link>http://blogs.msdn.com/davewebster/archive/2005/07/25/443047.aspx</link><pubDate>Mon, 25 Jul 2005 20:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:443047</guid><dc:creator>davewebster</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/davewebster/comments/443047.aspx</comments><wfw:commentRss>http://blogs.msdn.com/davewebster/commentrss.aspx?PostID=443047</wfw:commentRss><description>&lt;P&gt;Hi Folks here is a link to a video of migrating the opening page of &lt;A href="http://www.giftbaskets4u.co.uk"&gt;www.giftbaskets4u.co.uk&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;In this video I show how to do custom databinding. I create an initial page&amp;nbsp;using a &amp;nbsp;masterpage file.&lt;/P&gt;
&lt;P&gt;Let me know if&amp;nbsp;there are other&amp;nbsp;things you would like to see.&lt;/P&gt;
&lt;P&gt;BTW the running site is still on asp.net 1.1 but that will change&amp;nbsp;probably next weekend.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://davewebster.members.winisp.net/the%20defualt%20page/the%20defualt%20page.html"&gt;http://davewebster.members.winisp.net/the%20defualt%20page/the%20defualt%20page.html&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=443047" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/davewebster/archive/tags/ASP.Net+2.0/default.aspx">ASP.Net 2.0</category></item><item><title>More on migrating to ASP.Net 2.0</title><link>http://blogs.msdn.com/davewebster/archive/2005/07/18/439919.aspx</link><pubDate>Mon, 18 Jul 2005 15:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:439919</guid><dc:creator>davewebster</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/davewebster/comments/439919.aspx</comments><wfw:commentRss>http://blogs.msdn.com/davewebster/commentrss.aspx?PostID=439919</wfw:commentRss><description>&lt;OL&gt;
&lt;LI&gt;Hi again folks.&amp;nbsp; Well I have spent some of my convalescence migrating my wifes web site to ASP.Net 2.0.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;On the whole it was pretty easy to get the migration done however some issues needed addressing.&amp;nbsp; These were nearly all to do with badly formed HTML markup in the aspx pages such as using MSO schemas without referencing them correctly. So I probably spent about an hour fixing all my bad markup.&lt;/P&gt;
&lt;P&gt;I then decided to migrate from the Access database to SQL server 2005.&amp;nbsp; I only have a few tables in the original database, including a user/customer table that I can delete and use the provider stuff for SQL instead.&amp;nbsp; So I am left with :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;a Products table, 
&lt;LI&gt;a Categories table and 
&lt;LI&gt;a linking table CategoryProduct that manages the many many relationship between products and categories. (Janine wanted the products to be in more than one category).&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Migrating the schema was done by hand and I also took the opportunity to add some admin pages to enter descriptions and managed the product-category relationship.&lt;/P&gt;
&lt;P&gt;The main things I have noticed so far are that if you&amp;nbsp; are happy with 2-tier programming you really dont have to write any code at all.&amp;nbsp; The wizards will even write your stored procedures for you.&amp;nbsp; And if you want to use three tier data access with middle tier business objects then that is still trivial.&lt;/P&gt;
&lt;P&gt;I spend most of the time now configuring data stores or middle tier objects in fact. One thing I wanted to do was to allow an admin page to list all the pictures in the ProductImages folder in the site.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I wrote a simple peice of code&amp;nbsp;for my App_Code folder...&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;Imports&lt;/FONT&gt;&lt;FONT size=2&gt; Microsoft.VisualBasic&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;Imports&lt;/FONT&gt;&lt;FONT size=2&gt; System.Collections.Generic&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;Public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Class&lt;/FONT&gt;&lt;FONT size=2&gt; PictureInfo&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;FONT size=2&gt; _ImageUrl &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;FONT size=2&gt; PictureInfo()&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;''' &amp;lt;summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;''' url for the two images&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;''' &amp;lt;/summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Property&lt;/FONT&gt;&lt;FONT size=2&gt; ImageURL() &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Get&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Me&lt;/FONT&gt;&lt;FONT size=2&gt;._ImageUrl&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Get&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Set&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;FONT size=2&gt; value &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Me&lt;/FONT&gt;&lt;FONT size=2&gt;._ImageUrl = value&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Set&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Property&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Class&lt;/P&gt;
&lt;P&gt;Public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Class&lt;/FONT&gt;&lt;FONT size=2&gt; PictureHelper&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Shared&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/FONT&gt;&lt;FONT size=2&gt; GetProductImages() &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; List(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Of&lt;/FONT&gt;&lt;FONT size=2&gt; PictureInfo)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; ret &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; List(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Of&lt;/FONT&gt;&lt;FONT size=2&gt; PictureInfo)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; fullpath &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt; = System.Web.HttpContext.Current.Server.MapPath(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"..\ProductImages"&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; files() &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt; = System.IO.Directory.GetFiles(fullpath, &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"*.jpg"&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;For&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Each&lt;/FONT&gt;&lt;FONT size=2&gt; file &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;In&lt;/FONT&gt;&lt;FONT size=2&gt; files&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; info &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; PictureInfo&lt;/P&gt;
&lt;P&gt;info.ImageURL = StripFileName(file)&lt;/P&gt;
&lt;P&gt;ret.Add(info)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Next&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;files = System.IO.Directory.GetFiles(fullpath, &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"*.gif"&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;For&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Each&lt;/FONT&gt;&lt;FONT size=2&gt; file &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;In&lt;/FONT&gt;&lt;FONT size=2&gt; files&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; info &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; PictureInfo&lt;/P&gt;
&lt;P&gt;info.ImageURL = StripFileName(file)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ret.Add(info)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Next&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;FONT size=2&gt; ret&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Shared&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/FONT&gt;&lt;FONT size=2&gt; StripFileName(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;FONT size=2&gt; fullname &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt;) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; sep &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"/\"&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; segments() &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt; = fullname.Split(sep.ToCharArray)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;FONT size=2&gt; segments(segments.GetLength(0) - 1)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/P&gt;
&lt;P&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Class&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So I have a helper class that looks in the file system and generates&amp;nbsp; generic List(Of ProductInfo).&amp;nbsp; I will add some more stuff to the productinfo class in due course such as the size of the image and so forth.&amp;nbsp; But for now its useful enough.&lt;/P&gt;
&lt;P&gt;Next I created a page that used the PictureHelper class as a data source, and used the GetProductImages() shared function to return the list of ProductInfo.&lt;/P&gt;
&lt;P&gt;Copy it over and give it a try.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now many people have asked me about this data access stuff, especially using a middle tier object.&amp;nbsp; Here are the rules.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;It is preferable to have a shared/static method on the helper class although you can use an instance method if you wish and the framework will create an instance. 
&lt;LI&gt;For the class that you return in&amp;nbsp; a list make sure that you have ACCESSOR METHODS not just public fields.&amp;nbsp; It wont work if you only use fields. 
&lt;LI&gt;Have an update method that takes the elements of the object not an object itself ie&amp;nbsp; Update(productID as integer, categoryID as integer, description as string) rather than Update(stuff as myClass)&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have also ripped out most of the code behind for the regular pages for customers to view the products.&amp;nbsp; With templates on the data controls I really dont need to write any code.&amp;nbsp; The only real code left in the project is specific data access wrappers in app_code and also fragments of code to embedded into the aspx pages. I will give an example of that in my next post.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=439919" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/davewebster/archive/tags/ASP.Net+2.0/default.aspx">ASP.Net 2.0</category></item><item><title>Teched Europe - Limping around Amsterdam.</title><link>http://blogs.msdn.com/davewebster/archive/2005/07/01/Teched-Europe.aspx</link><pubDate>Fri, 01 Jul 2005 14:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:434612</guid><dc:creator>davewebster</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/davewebster/comments/434612.aspx</comments><wfw:commentRss>http://blogs.msdn.com/davewebster/commentrss.aspx?PostID=434612</wfw:commentRss><description>&lt;P&gt;Well I am still in some discomfort after the back injury.&amp;nbsp; There are three things going on:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Shooting pains down the left leg. 
&lt;LI&gt;A limp in the left leg 
&lt;LI&gt;Numbness in parts of the foot and leg&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;My physio told me that this is most likely to be because of compression of the nerve that although is now clear can take several months to heal.&amp;nbsp; I had another MRI scan a couple of days ago and it looks like the op went fine.&lt;/P&gt;
&lt;P&gt;My question is now whether I will make it to Teched Europe next week, - the hotels are full now and I cannot really walk across town each day, I can also only sit for 20 mins at a time.&amp;nbsp; I am the technical track owner for Dev tools and Web development.&amp;nbsp; Although I am not talking next week anymore there are still some speakers that I would really like to meet, either again or for the first time.&amp;nbsp; Here are some suggestions for you:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Hacked! by Jeff Prosise. Yes security can be fun you just need to present it right, and Jeff will do just that.&amp;nbsp; The bad guys already know this stuff but the good guys don't.&amp;nbsp; Go if you get the chance. 
&lt;LI&gt;Regular Expressions by Roy Osherove.&amp;nbsp; This is about what you can do with regular expressions in .Net.&amp;nbsp; Lets face it we all parse stuff and hand write the code again and again. 
&lt;LI&gt;Dave Platt.&amp;nbsp; &lt;A href="http://www.rollthunder.com"&gt;www.rollthunder.com&lt;/A&gt; will be there.&amp;nbsp; I have asked Dave to present on whats new in the framework and also a nice technical talk on Exception handling.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Ok if I get a nice hotel near the venue then I will see you there.&amp;nbsp; I am the tall guy with white hair and a limp.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=434612" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/davewebster/archive/tags/ASP.Net+2.0/default.aspx">ASP.Net 2.0</category><category domain="http://blogs.msdn.com/davewebster/archive/tags/Back+Injury/default.aspx">Back Injury</category></item><item><title>Migrating to ASP.Net 2.0</title><link>http://blogs.msdn.com/davewebster/archive/2005/06/23/431838.aspx</link><pubDate>Thu, 23 Jun 2005 04:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:431838</guid><dc:creator>davewebster</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/davewebster/comments/431838.aspx</comments><wfw:commentRss>http://blogs.msdn.com/davewebster/commentrss.aspx?PostID=431838</wfw:commentRss><description>&lt;P&gt;Well Janine has stepped out for a while so I can break convalesence and do some of the migration and of course blog about it.&amp;nbsp; At this point Janines &lt;A href="http://www.giftbaskets4u.co.uk/" target=_blank&gt;Gift Basket Business&lt;/A&gt;&amp;nbsp;is as much a hobby for me as anything else - it certainly isn't making much money!&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;I installed ASP.Net 2.0 on my media PC.&amp;nbsp; NB there is no IIS on this OS. 
&lt;LI&gt;I copied the entire ASP.Net 1.1 app for giftbaskets4u onto a compact flash card from the working machine, and transferred it to a folder on the Media PC. 
&lt;LI&gt;Opened Visual Studio 2005 beta 2&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Then I located the solution file in directory I just created and dragged it onto VS.&amp;nbsp; The conversion wizard kicked in but when it was all done I could not find or load the converted project.&amp;nbsp;It must have been my back pain meds that made me&amp;nbsp;try this (voices in the head).&amp;nbsp; Don't do it this way people! Instead...&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;In VS I opened a web project from the file system, and located the folder where my project had been copied 
&lt;LI&gt;The convesion wizard kicked in, made a backup and TRALA! loaded the project. 
&lt;LI&gt;There was a lengthy conversion report mostly about the new partial classes. 
&lt;LI&gt;There was one warning about a missing global.asax file but I don't have one in any case. 
&lt;LI&gt;All my utility classes were placed in the App_Code folder. 
&lt;LI&gt;My Access database file was not moved to App_Data.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Well thats it, its loaded on the machine, it compiles but there are still some things to do.&amp;nbsp; &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;I need to create the ODBC system name for the access database. 
&lt;LI&gt;When I have replicated functionality I will&amp;nbsp;migrate the Accces Database to&amp;nbsp;a SQL Server Express 2005 MDF file and drop it into the App_Data folder. 
&lt;LI&gt;I will remove the login tables from the database and use the SQL 2005 provider.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I am still looking for a host for the business that will support ASP.Net 2.0 and let me call Web Services and give me some latitude&amp;nbsp;&amp;nbsp; BCentral does not do this as it is not geared to more (ahem) experimental customers like me.&amp;nbsp;&amp;nbsp;I know I can find a hoster one but I would love to hear about your recommendation.&amp;nbsp;When I have moved to the new host I will give you guys a login that will show you more information about the running of the app and the business.&amp;nbsp; And of course I will zip up the source code and let you have it to play with.&amp;nbsp; Currently btw it is based on IBuySpy which&amp;nbsp; was ported to Access - the 1.1 code has been around the block a bit so to speak.&lt;/P&gt;
&lt;P&gt;Still I had better turn off the Fathers Day campagne now I am out of hospital.&amp;nbsp; Check it out &lt;A href="http://www.giftbaskets4u.co.uk"&gt;http://www.giftbaskets4u.co.uk&lt;/A&gt;&amp;nbsp;at the date of posting it is still the ASP1.1 app.&lt;/P&gt;
&lt;P&gt;Cheers&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=431838" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/davewebster/archive/tags/ASP.Net+2.0/default.aspx">ASP.Net 2.0</category></item><item><title>My Wifes Gift Basket business</title><link>http://blogs.msdn.com/davewebster/archive/2005/06/09/427193.aspx</link><pubDate>Thu, 09 Jun 2005 06:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:427193</guid><dc:creator>davewebster</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/davewebster/comments/427193.aspx</comments><wfw:commentRss>http://blogs.msdn.com/davewebster/commentrss.aspx?PostID=427193</wfw:commentRss><description>&lt;P&gt;I mentioned on the ASP.Net 2.0 tour that I was working on an ecommerce site for my good wife Janine.&amp;nbsp; Janine who is american noticed a gap in the market when we moved back to the UK - selling gift baskets to the great british public from her site &lt;A href="http://www.giftbaskets4u.co.uk"&gt;www.giftbaskets4u.co.uk&lt;/A&gt;.&amp;nbsp; So as I said in my tour I can come home after a week on the road and do some more work at the weekend!&lt;/P&gt;
&lt;P&gt;Anyway its been a very interesting experience.&amp;nbsp; In Microsoft we tend to think big company thoughts and do big company things so its interesting to see how a small company works.&amp;nbsp; And believe me Janines company is small.&amp;nbsp; She is hosting the site on &lt;A href="http://www.bcentral.com"&gt;www.bcentral.com&lt;/A&gt; which is Microsofts small business service.&amp;nbsp; Like most hosting companies they restrict what you can do and what you get.&amp;nbsp; Janine has an access database, email, storage and support for ASP.Net.1.1. However she cannot call external DLLs or call or provide web services.&amp;nbsp; And of course there is no ASP.Net 2.0 yet which for me is most frustrating.&lt;/P&gt;
&lt;P&gt;So I am now looking for a hosting company that will allow her to use ASP.Net 2.0 so I can go through the migration&amp;nbsp; process and report to you here.&amp;nbsp;If anyone would like to recommend one please let me know. It would be great to do some web services and I also will write a click once app to handle the client side of the fullfilment process.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;So here are the key things I really want to do to &lt;A href="http://www.giftbaskets4u.co.uk"&gt;www.giftbaskets4u.co.uk&lt;/A&gt; when I migrate:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Use the SQL 2005 membship provider so I can separate off the admin functions from the rest of the site and create a community. 
&lt;LI&gt;Use Master Pages (please oh please let me do this!).&amp;nbsp; I have spent hours at the weekend making all the pages have the same look and feel. 
&lt;LI&gt;Migrate from the Access database to SQL Server Express 2005.&amp;nbsp; Those MDF files are just like MDB's but more powerful.&amp;nbsp; Then use the cool new caching features. 
&lt;LI&gt;Rewrite the admin pages that use the master-details reports.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Of course I am having way too much fun with this but it beats having to mow the lawn on a saturday.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=427193" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/davewebster/archive/tags/ASP.Net+2.0/default.aspx">ASP.Net 2.0</category></item><item><title>Back from the ASP.Net 2.0 tour</title><link>http://blogs.msdn.com/davewebster/archive/2005/06/09/427189.aspx</link><pubDate>Thu, 09 Jun 2005 06:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:427189</guid><dc:creator>davewebster</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/davewebster/comments/427189.aspx</comments><wfw:commentRss>http://blogs.msdn.com/davewebster/commentrss.aspx?PostID=427189</wfw:commentRss><description>&lt;P&gt;Well I am back in the UK after a terrific few months tourning Europe Middle East and Africa telling people about ASP.Net 2.0.&amp;nbsp; Here is the list of cities:&lt;/P&gt;
&lt;P&gt;February Vienna, Tel Aviv (Ramat Gan), Lisbon, Zurich, Warsaw, Olso, Copenhagen, Brussels, Dublin.&lt;/P&gt;
&lt;P&gt;I had help from my good friend David Platt &lt;A href="http://www.rollthunder.com"&gt;http://www.rollthunder.com&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Then it was off to Ljubliana in Slovenia. Then Rejkyavik and to crown it all Cape Town, Johannesburg and Durban.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I would like to thank all the thousands of you who turned up to hear me talk.&amp;nbsp; You were a great audience.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Its amazing that although we all live far apart and in different cultures we all share the interests of getting our web sites to work.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=427189" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/davewebster/archive/tags/ASP.Net+2.0/default.aspx">ASP.Net 2.0</category></item></channel></rss>