<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Mike In Madison</title>
	<atom:link href="http://mikeinmadison.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mikeinmadison.wordpress.com</link>
	<description>Look, a gradient!</description>
	<lastBuildDate>Tue, 31 May 2011 19:31:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mikeinmadison.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Mike In Madison</title>
		<link>http://mikeinmadison.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mikeinmadison.wordpress.com/osd.xml" title="Mike In Madison" />
	<atom:link rel='hub' href='http://mikeinmadison.wordpress.com/?pushpress=hub'/>
		<item>
		<title>New blog at mikecomstock.com</title>
		<link>http://mikeinmadison.wordpress.com/2009/01/12/new-blog-at-mikecomstockcom/</link>
		<comments>http://mikeinmadison.wordpress.com/2009/01/12/new-blog-at-mikecomstockcom/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 15:27:06 +0000</pubDate>
		<dc:creator>mikeinmadison</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mikeinmadison.wordpress.com/?p=31</guid>
		<description><![CDATA[I finally got BlogEngine.NET running (IIS permissions were a nightmare) and launched a new blog. Check it out at mikecomstock.com.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikeinmadison.wordpress.com&amp;blog=2325854&amp;post=31&amp;subd=mikeinmadison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I finally got <a href="http://www.dotnetblogengine.net/">BlogEngine.NET</a> running (IIS permissions were a nightmare) and launched a new blog. <a title="mikecomstock.com" href="http://www.mikecomstock.com">Check it out at mikecomstock.com.</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikeinmadison.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikeinmadison.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikeinmadison.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikeinmadison.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikeinmadison.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikeinmadison.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikeinmadison.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikeinmadison.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikeinmadison.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikeinmadison.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikeinmadison.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikeinmadison.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikeinmadison.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikeinmadison.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikeinmadison.wordpress.com&amp;blog=2325854&amp;post=31&amp;subd=mikeinmadison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikeinmadison.wordpress.com/2009/01/12/new-blog-at-mikecomstockcom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mikeinmadison</media:title>
		</media:content>
	</item>
		<item>
		<title>DateTime.Round extension method</title>
		<link>http://mikeinmadison.wordpress.com/2008/03/12/datetimeround/</link>
		<comments>http://mikeinmadison.wordpress.com/2008/03/12/datetimeround/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 03:36:27 +0000</pubDate>
		<dc:creator>mikeinmadison</dc:creator>
				<category><![CDATA[3.5]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Extensions]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[c# 3.0]]></category>
		<category><![CDATA[c# 3.5]]></category>
		<category><![CDATA[datetime]]></category>
		<category><![CDATA[extension methods]]></category>

		<guid isPermaLink="false">http://mikeinmadison.wordpress.com/?p=27</guid>
		<description><![CDATA[I recently needed to group by minutes (or seconds, or hours, or days) in a LINQ expression, and I found that there isn&#8217;t a round function built into the C# DateTime object. The following will round to the nearest second, minute, hour, or day. I stopped there because different months have different numbers of days [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikeinmadison.wordpress.com&amp;blog=2325854&amp;post=27&amp;subd=mikeinmadison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently needed to group by minutes (or seconds, or hours, or days) in a LINQ expression, and I found that there isn&#8217;t a round function built into the C# DateTime object. The following will round to the nearest second, minute, hour, or day. I stopped there because different months have different numbers of days (and I don&#8217;t need to group by months&#8230;) but it is easy enough to add months and years to the code.</p>
<p>Keep in mind that this doesn&#8217;t give you the <u>current</u> minute (or whatever) rather it gives you the <u>closest</u> minute (or whatever).</p>
<hr />
<pre>using System;

namespace MikeInMadison
{
    public static class Extensions
    {
        public static DateTime Round(this DateTime d, RoundTo rt)
        {
            DateTime dtRounded = new DateTime();

            switch (rt)
            {
                case RoundTo.Second:
                    dtRounded = new DateTime(d.Year, d.Month, d.Day, d.Hour, d.Minute, d.Second);
                    if (d.Millisecond &gt;= 500) dtRounded = dtRounded.AddSeconds(1);
                    break;
                case RoundTo.Minute:
                    dtRounded = new DateTime(d.Year, d.Month, d.Day, d.Hour, d.Minute, 0);
                    if (d.Second &gt;= 30) dtRounded = dtRounded.AddMinutes(1);
                    break;
                case RoundTo.Hour:
                    dtRounded = new DateTime(d.Year, d.Month, d.Day, d.Hour, 0, 0);
                    if (d.Minute &gt;= 30) dtRounded = dtRounded.AddHours(1);
                    break;
                case RoundTo.Day:
                    dtRounded = new DateTime(d.Year, d.Month, d.Day, 0, 0, 0);
                    if (d.Hour &gt;= 12) dtRounded = dtRounded.AddDays(1);
                    break;
            }

            return dtRounded;
        }

        public enum RoundTo
        {
            Second, Minute, Hour, Day
        }
    }
}</pre>
<hr />I&#8217;m using this extension method within LINQ to group RateItems by minutes. I&#8217;m getting the high, low, open, close, and begin time in a list of stock prices.</p>
<pre>
            var rates = from ri in RateItems
                        group ri by ri.Time.Round(Extensions.RoundTo.Hour) into g
                        select new
                        {
                            Time = g.First().Time.Round(Extensions.RoundTo.Hour),
                            High = g.Max(g2 =&gt; g2.Bid),
                            Low = g.Min(g2 =&gt; g2.Bid),
                            Open = g.First().Bid,
                            Close = g.Last().Bid
                        };</pre>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mikeinmadison.wordpress.com/27/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mikeinmadison.wordpress.com/27/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikeinmadison.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikeinmadison.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikeinmadison.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikeinmadison.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikeinmadison.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikeinmadison.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikeinmadison.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikeinmadison.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikeinmadison.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikeinmadison.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikeinmadison.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikeinmadison.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikeinmadison.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikeinmadison.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikeinmadison.wordpress.com&amp;blog=2325854&amp;post=27&amp;subd=mikeinmadison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikeinmadison.wordpress.com/2008/03/12/datetimeround/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mikeinmadison</media:title>
		</media:content>
	</item>
		<item>
		<title>Creating a shared web site library in Visual Studio</title>
		<link>http://mikeinmadison.wordpress.com/2008/01/15/creating-a-shared-web-site-library-in-visual-studio/</link>
		<comments>http://mikeinmadison.wordpress.com/2008/01/15/creating-a-shared-web-site-library-in-visual-studio/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 05:34:40 +0000</pubDate>
		<dc:creator>mikeinmadison</dc:creator>
				<category><![CDATA[2.0]]></category>
		<category><![CDATA[3.5]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Version Control]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[code library]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[revision control]]></category>
		<category><![CDATA[shared library]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn:externals]]></category>
		<category><![CDATA[team development]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[visualsvn]]></category>

		<guid isPermaLink="false">http://mikeinmadison.wordpress.com/2008/01/15/creating-a-shared-web-site-library-in-visual-studio/</guid>
		<description><![CDATA[There are many ways to create and consume code libraries for use in multiple web site projects within Visual Studio. One of the most popular options is to create a class library project and link to it from multiple web site solutions. A similar alternative is to place the binary dll files that are created [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikeinmadison.wordpress.com&amp;blog=2325854&amp;post=21&amp;subd=mikeinmadison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a class="DiggThisButton DiggMedium" href="http://digg.com/submit?url=http%3A%2F%2Fmikeinmadison.wordpress.com%2F2008%2F01%2F15%2Fcreating-a-shared-web-site-library-in-visual-studio%2F&amp;title=Creating+a+shared+web+site+library+in+Visual%26nbsp%3BStudio"></a>There are many ways to create and consume code libraries for use in multiple web site projects within Visual Studio. One of the most popular options is to create a class library project and link to it from multiple web site solutions. A similar alternative is to place the binary dll files that are created when compiling a class library project into the bin directory of each web site solution you want to use it in, and reference it directly. While both of these methods work well (the first generally being the most practical) there are a few things that they cannot easily accomplish.</p>
<p>Because of the way ASP.NET works, creating a code library that is easy to update and that can be used by multiple team members working on multiple distinct projects is challenging. You may want your code library to incorporate binary dll files from vendors or the open source community, web user controls (.ascx files), classes containing useful functions that are written in different languages, style sheets, web pages, images, etc.. The trick with ASP.NET is that often times certain types of files must go in specific places. For instance, dll files need to be placed in the bin directory, while your custom classes and server controls need to be placed in the App_Code directory. Web pages, web user controls, style sheets, and images can generally be placed in any directory.</p>
<h3><b>svn:externals </b></h3>
<p>The best solution that I have come up with this far is to use the &#8220;externals&#8221; function build into Subversion. To get up-to-speed on Subversion and the best way to use it from Visual Studio, read my previous posts <a href="http://mikeinmadison.wordpress.com/2007/12/19/getting-started-with-subversion/" title="Getting started with Subversion">here </a>and <a href="http://mikeinmadison.wordpress.com/2008/01/10/getting-started-with-visualsvn/" title="Getting started with VisualSVN">here</a>.</p>
<p>The Subversion externals property allows you to include a file or directory from one repository in another repository. For instance, Directory#1 in RepositoryA can be included in RepositoryB without RepositoryB actually containing or keeping track of Directory#1. This is done in such a way that the working copies of RepositoryB will contain Directory#1, but Subversion knows that Directory#1 is actually in RepositoryA instead of RepositoryB.  This is all somewhat confusing when we are starting out, so lets walk through actually creating everything.</p>
<h3><b>Creating the shared library</b></h3>
<p>Since it we can&#8217;t really create web user controls in class library projects, the code library that we are going to share is actually going to be a web site project. That way we can include everything that gets used in web sites. Set up a web site with something like the following structure:</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2008/01/solutionexplorer.png?w=544" alt="Solution Explorer" /></p>
<p>As you can see, the web site I&#8217;ve created doesn&#8217;t actually contain any web pages (.aspx files). I have only web user controls (.ascx files), dll files, and C# code files. I have items in folders in the App_Code folder, the Bin folder, and the root folder. I should note that this web site will not currently build &#8211; that is because Database.cs depends on the EntitySpaces libraries, which are not in the root of the Bin folder. We&#8217;ll get to the reason for this in a minute. The directories named &#8220;Shared&#8221; are the ones that are going to get copied into each web site that we want to use this library with, so place everything you want to use more than once in the appropriate &#8220;Shared&#8221; directory. You might want this solution and this solution only to contain unit tests (for instance) for the library, so you may want to place those outside of the &#8220;Shared&#8221; directories.</p>
<p>So now that the shared web site is set up, we need to get it into a Subversion repository. <a href="http://mikeinmadison.wordpress.com/2008/01/10/getting-started-with-visualsvn/" title="Getting started with VisualSVN">Follow the directions here</a>, from my previous post. We need to get the project into a repository so that we can use the svn:externals function in the web sites we want to include these files in.</p>
<h3><b>Using the shared library </b></h3>
<p>Now that we have our web site library in a repository and ready to go, we&#8217;ll need another web site that we actually want to use the shared library in. If you&#8217;ve been following my posts, you probably know the drill by now. Create a new web site <a href="http://mikeinmadison.wordpress.com/2008/01/10/getting-started-with-visualsvn/" title="Getting started with VisualSVN">following these directions</a> and put it in a repository.</p>
<p>To review, these are the steps we have done so far:</p>
<ul>
<li>Created a web site containing the files we want to go in our shared library (we&#8217;ll call it BShared)</li>
<li>Placed BShared in a repository (it got its own repository)</li>
<li>Created a web site that will use our shared web site (we&#8217;ll call it BTest)</li>
<li>Placed BTest in a repository (it also got its own repository)</li>
</ul>
<p>Next comes the easy part: linking the files from the BShared repository into the BTest repository. To do this, right click on &#8220;Solution &#8216;BTest&#8217; (1 project)&#8221; in the Visual Studio Solution Explorer, and select &#8220;Properties&#8230;&#8221; from the VisualSVN menu.</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2008/01/visualsvnproperties.png?w=544" alt="VisualSVN Properties" /></p>
<p>From the Properties window that opens, click &#8220;Add&#8230;&#8221;. For the property name select &#8220;svn:externals&#8221;. In the &#8220;Property value:&#8221; section, enter something that looks like the following, matched to your repository:</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2008/01/addproperties.png?w=544" alt="Add Properties" /></p>
<p>The settings above will place:</p>
<ol>
<li>BShared/Shared into BTest/SharedLibrary,</li>
<li>BShared/App_Code/Shared into BTest/App_Code/SharedLibrary, and</li>
<li>BShared/Bin/Shared into BTest/Bin/SharedLibrary.</li>
</ol>
<p>Note that the list above is abbreviated &#8211; the full paths are actually used, just like in the screenshot. Save the properties, and then run an Update from the VisualSVN menu. You should notice that the &#8220;Shared&#8221; directories get checked out of the BShared repository and placed in the corresponding SharedLibrary folders. After all of these steps, the web site I&#8217;m working on looks like this:</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2008/01/solutionafterexternal.png?w=544" alt="external" /></p>
<p>There is one problem that still needs to be taken care of. You need to select all of the files in Bin/SharedLibrary, and copy them directly into Bin. This has to be done because class libraries cannot be in subdirectories of Bin &#8211; they have to be in the Bin root. Make sure you copy and past them to Bin instead of moving them! Moving them would remove them from your shared library project.</p>
<h3><b>Summary</b></h3>
<p>So that is all you really need to do to get a shared library up and running. You can do the above steps for multiple projects on multiple computers using the same shared library, but there are some important things you should consider. When you Commit your solution from the VisualSVN menu, the external files will not be committed (assuming they are in separate repositories, like the way I set them up). To commit the external files and therefor make changes to the shared library, you have to right click on the &#8220;SharedLibrary&#8221; folder you want to commit and from there use &#8220;Commit&#8230;&#8221;. You&#8217;ll have to do this for each SharedLibrary folder that has changes to commit.</p>
<p>In my opinion the ability to update the shared library from any project that is using it is one of the most useful features of setting up a shared library this way. We don&#8217;t have to open up a new project, write code, test it, copy it over, and then finally use it &#8211; instead we can simply act as if the library is actually a part of the project we are working on. For instance, if we were to add a web user control in SharedLibrary/BCMS/Controls and then commit SharedLibrary, the new web user control would be seen by all of the projects using this shared library when they run an update on the solution!</p>
<p>A few extra notes:</p>
<ul>
<li>Remember that when using this method any change to the shared web site project is seen by all of the projects using it. This means that a file getting deleted in one project gets deleted in all projects. A solution to this is to use revision numbers in your svn:externals value. Example:
<pre>Web/SharedLibrary <b>-r5</b> file:///\seeker/TeamRepository/BShared/trunk/Web/Shared
Web/App_Code/SharedLibrary <b>-r5 </b>file:///\seeker/TeamRepository/BShared/trunk/Web/App_Code/Shared
Web/Bin/SharedLibrary <b>-r5</b> file:///\seeker/TeamRepository/BShared/trunk/Web/Bin/Shared</pre>
</li>
<li>When initially developing code to incorporate into the library, I suggest you do it outside of the SharedLibrary folders. That way you don&#8217;t have to worry about buggy code breaking others web sites. When you have it working, copy it over into the appropriate SharedLibrary folder and run a Commit on it. An alternative is to simply not run a Commit until you are sure the code is good.</li>
<li>For more information about svn:externals <a href="http://svnbook.red-bean.com/en/1.0/ch07s03.html" title="Externals Definitions">go here</a>.</li>
<li>This method will work perfectly in a team environment. The svn:externals property only needs to be set up once. After it is set up and the solution is committed once, other team members who check out the solution or update their working copies will automatically get the externals.</li>
</ul>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mikeinmadison.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mikeinmadison.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikeinmadison.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikeinmadison.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikeinmadison.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikeinmadison.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikeinmadison.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikeinmadison.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikeinmadison.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikeinmadison.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikeinmadison.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikeinmadison.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikeinmadison.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikeinmadison.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikeinmadison.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikeinmadison.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikeinmadison.wordpress.com&amp;blog=2325854&amp;post=21&amp;subd=mikeinmadison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikeinmadison.wordpress.com/2008/01/15/creating-a-shared-web-site-library-in-visual-studio/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mikeinmadison</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2008/01/solutionexplorer.png" medium="image">
			<media:title type="html">Solution Explorer</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2008/01/visualsvnproperties.png" medium="image">
			<media:title type="html">VisualSVN Properties</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2008/01/addproperties.png" medium="image">
			<media:title type="html">Add Properties</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2008/01/solutionafterexternal.png" medium="image">
			<media:title type="html">external</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting started with VisualSVN</title>
		<link>http://mikeinmadison.wordpress.com/2008/01/10/getting-started-with-visualsvn/</link>
		<comments>http://mikeinmadison.wordpress.com/2008/01/10/getting-started-with-visualsvn/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 04:42:50 +0000</pubDate>
		<dc:creator>mikeinmadison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Version Control]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[revision control]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[teams]]></category>
		<category><![CDATA[tortoisesvn]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[vb]]></category>
		<category><![CDATA[verson control]]></category>
		<category><![CDATA[visualsvn]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://mikeinmadison.wordpress.com/2008/01/10/getting-started-with-visualsvn/</guid>
		<description><![CDATA[The previous post explained the basics of using Subversion. We used TortoiseSVN from the Windows shell, and while this was really easy to do it isn&#8217;t always the most convenient. Luckily for us, there are ways to integrate Subversion with most of the popular IDEs. Since I primarily use Visual Studio, this post will explain [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikeinmadison.wordpress.com&amp;blog=2325854&amp;post=16&amp;subd=mikeinmadison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a class="DiggThisButton DiggMedium" href="http://digg.com/submit?url=http%3A%2F%2Fmikeinmadison.wordpress.com%2F2008%2F01%2F10%2Fgetting-started-with-visualsvn%2F&amp;title=Getting+started+with%26nbsp%3BVisualSVN"></a>The <a href="http://mikeinmadison.wordpress.com/2007/12/19/getting-started-with-subversion/">previous post</a> explained the basics of using Subversion. We used <a href="http://tortoisesvn.net/">TortoiseSVN</a> from the Windows shell, and while this was really easy to do it isn&#8217;t always the most convenient. Luckily for us, there are ways to integrate Subversion with most of the popular IDEs. Since I primarily use Visual Studio, this post will explain how to use a plugin called VisualSVN to manage your repository without having to leave Visual Studio.</p>
<p><a href="http://www.visualsvn.com/">VisualSVN</a> is simply a front-end for the command line Subversion functions, just like TortoiseSVN. The difference between the two is that TortoiseSVN is a &#8220;add-in&#8221; for Windows and VisualSVN is an add-in for Visual Studio. However, VisualSVN uses TortoiseSVN for its functions, so really VisualSVN is just another way to use TortoiseSVN. To explain: TortoiseSVN allows you to access Subversion functions from Windows with a nice GUI, and VisualSVN allows you to access TortoiseSVN from within Visual Studio.</p>
<p>There are a few other Subversion add-ins for Visual Studio out there, the most popular probably being <a href="http://ankhsvn.tigris.org/">AnkhSVN</a>. AnkhSVN is great, but in my experience it&#8217;s a little more complicated that what most people need.</p>
<h3><b>Installation</b></h3>
<p>To get started we&#8217;ll first need to <a href="http://www.visualsvn.com/download.html">download VisualSVN</a>. A 30-day full-featured trial is available, and if you participate in an open-source project you can get a license for free! Even if you don&#8217;t qualify for the free license, I would highly suggest checking out this great piece of software &#8211; once you get used to it you&#8217;ll love it.</p>
<p>I&#8217;ll brush over the actual installation, but note that if you have multiple versions of Visual Studio installed, VisualSVN will work with them all (except for the free <a href="http://www.microsoft.com/express/">Visual Studio Express Editions</a>). Just a quick review before we get into the details &#8211; the following programs are needed for everything to work:</p>
<ul>
<li><a href="http://msdn2.microsoft.com/en-us/vstudio/default.aspx">Visual Studio</a></li>
<li><a href="http://tortoisesvn.net/">TortoiseSVN</a></li>
<li><a href="http://subversion.tigris.org/">Subversion </a>(came with TortoiseSVN)</li>
<li><a href="http://www.visualsvn.com/">VisualSVN</a></li>
</ul>
<p>After you install VisualSVN and open Visual Studio, you&#8217;ll notice the VisualSVN menu. This menu will soon become one of your best friends, but first you&#8217;ll might have to fight with it a bit. To minimize this fighting, I&#8217;ll explain how to set up a new VisualSVN-enabled web site.</p>
<h3><b>A VisualSVN Enabled Web Site</b></h3>
<p>You&#8217;ll have to set up your directories a little differently than you are used to if you want to use VisualSVN with a web site project.  To begin, you need to create an empty Visual Studio solution. Usually web sites don&#8217;t need or use solution files, but to make the &#8220;Get Solution from Subversion&#8230;&#8221; function to work nicely we&#8217;ll need a solution file to get.</p>
<p>Select &#8220;File &gt;&gt; New Project&#8230;&#8221; in VS, and find the &#8220;Blank Solution&#8221; project type. This will create a solution that we can later add projects to. For this example I&#8217;ll name my solution &#8220;SVNWebSite&#8221;. I&#8217;m going to use C:\TeamProjects, which already contains a few solutions in subfolders. Before you hit OK, make sure the &#8220;Create directory for solution&#8221; checkbox is checked.</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2008/01/newproject.png?w=544" alt="New Project" /></p>
<p>Now we have an empty solution with a solution file located at C:\TeamProjects\SVNWebSite\SVNWebSite.sln. Next we need a web site, but it needs be located in a sub-directory of  C:\TeamProjects\SVNWebSite\. This has to be the case to make VisualSVN work nicely. You&#8217;ll find some other hacks around this issue, but from what I&#8217;ve seen a sub-directory is the easiest.</p>
<p>Right-click in the Solution Explorer and select &#8220;Add &gt;&gt; New Web Site&#8230;&#8221;. I&#8217;ll place the site in a directory called &#8220;Web&#8221;, the full path being C:\TeamProjects\SVNWebSite\Web, with &#8220;File System&#8221; selected for the location.</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2008/01/addnewwebsite.png?w=544" alt="Add New Web Site" /></p>
<p>Now we have a solution containing a web site, but nothing is yet in a Subversion repository. Note that we even haven&#8217;t used Subversion, TortoiseSVN, or VisualSVN yet! Well, now is the time. To import your solution into a Subversion repository, select &#8220;Add Solution to Subversion&#8230;&#8221; from the VisualSVN menu. I&#8217;m going to select &#8220;Add to a New Repository&#8221; and place it at C:\My Repositories\SVNWebSite. You can leave the &#8220;Working copy root folder:&#8221; setting alone.</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2008/01/addsolutiontosubversion.png?w=544" alt="Add Solution to Subversion" /></p>
<p>Our repository has been created and the working copy directory has been set, but we have one more step to complete before the files are actually added to the repository. Select &#8220;Commit&#8230;&#8221; from the VisualSVN menu, enter a comment, and press OK.</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2008/01/commit.png?w=544" alt="Commit" /></p>
<p>Now our files are finally in a repository! You can now to a commit at any time to take a snapshot of your solution. You can treat this just like any other solution &#8211; opening, closing, adding files, etc. all work the same.</p>
<p>A few extra notes:</p>
<ul>
<li> You can now work on a web site as a team. Once the previous steps have been done, anyone with access to the repository you created can simply use &#8220;Get Solution from Subversion&#8230;&#8221; from the VisualSVN menu. This will get a &#8220;working copy&#8221; of the solution so it can be developed locally. Once a team member makes a change, they do a Commit and the other team members run an Update, both of which can be accessed from the VisualSVN menu. This way each developer has their own local version of the site, but it stays up to date with other developers changes when Update is run.</li>
<li>You can delete the solution and project directory (but don&#8217;t delete the repository!) from your projects directory to archive old projects. To work on them again, simply use &#8220;Get Solution from Subversion&#8230;&#8221; from the VisualSVN menu.</li>
<li>You can have multiple versions of the same site. To do this, create a branch using the &#8220;Branch&#8230;&#8221; function and put it in a location like file:///C:/My Repositories/SVNWebSite/branches/, which was created automatically for you. You can then use &#8220;Get Solution from Subversion&#8230;&#8221; to check out the branch, or the trunk, or check them both out and place them in different locations.</li>
<li>You can still administer the repository using TortoiseSVN from the Windows shell.</li>
</ul>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mikeinmadison.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mikeinmadison.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikeinmadison.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikeinmadison.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikeinmadison.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikeinmadison.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikeinmadison.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikeinmadison.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikeinmadison.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikeinmadison.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikeinmadison.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikeinmadison.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikeinmadison.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikeinmadison.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikeinmadison.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikeinmadison.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikeinmadison.wordpress.com&amp;blog=2325854&amp;post=16&amp;subd=mikeinmadison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikeinmadison.wordpress.com/2008/01/10/getting-started-with-visualsvn/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mikeinmadison</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2008/01/newproject.png" medium="image">
			<media:title type="html">New Project</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2008/01/addnewwebsite.png" medium="image">
			<media:title type="html">Add New Web Site</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2008/01/addsolutiontosubversion.png" medium="image">
			<media:title type="html">Add Solution to Subversion</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2008/01/commit.png" medium="image">
			<media:title type="html">Commit</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting started with Subversion</title>
		<link>http://mikeinmadison.wordpress.com/2007/12/19/getting-started-with-subversion/</link>
		<comments>http://mikeinmadison.wordpress.com/2007/12/19/getting-started-with-subversion/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 06:26:45 +0000</pubDate>
		<dc:creator>mikeinmadison</dc:creator>
				<category><![CDATA[Version Control]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[revision control]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[teams]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[verson control]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://mikeinmadison.wordpress.com/2007/12/19/getting-started-with-subversion/</guid>
		<description><![CDATA[I&#8217;ve been using Subversion (&#8220;SVN&#8221;) for a year or two now and the other team members are starting to get interested about version control. Once you figure everything out and know what you are doing, Subversion is a breeze. Getting to that point can take a little while. This post will explain now to get [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikeinmadison.wordpress.com&amp;blog=2325854&amp;post=15&amp;subd=mikeinmadison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a class="DiggThisButton DiggMedium" href="http://digg.com/submit?url=http%3A%2F%2Fmikeinmadison.wordpress.com%2F2007%2F12%2F19%2Fgetting-started-with-subversion%2F&amp;title=Getting+started+with%26nbsp%3BSubversion"></a>I&#8217;ve been using <a href="http://subversion.tigris.org/">Subversion</a> (&#8220;SVN&#8221;) for a year or two now and the other team members are starting to get interested about version control. Once you figure everything out and know what you are doing, Subversion is a breeze. Getting to that point can take a little while. This post will explain now to get started. To learn more about revision control software in general check out <a href="http://en.wikipedia.org/wiki/Version_control">this Wikipedia article</a>.</p>
<p>Subversion can be used from either the command line or from a GUI. Most users don&#8217;t need to used the more advanced features and should use a GUI. I suggest <a href="http://tortoisesvn.net/" title="TortoiseSVN" target="_blank">TortoiseSVN</a>, the most popular Subversion interface for Windows. Subversion comes with TortoiseSVN, so all we need to install is TortoiseSVN.</p>
<p>Start by <a href="http://tortoisesvn.net/downloads">grabbing the latest version</a> and installing it. I use the default installation settings. You may need to restart after installation.</p>
<p>Now that Subversion and TortoiseSVN are installed we can create a new repository. This will be the location that the Subversion database, which will contain the version information for our files, will be stored. I suggest somewhere that is secure and that you are sure you won&#8217;t accidentally delete. I&#8217;m going to use C:\SVNRepository. If you plan to have multiple people using your repository, use a location on a network share.</p>
<p>So now we&#8217;ve created the SVNRepository directory and are ready to actually create the repository. Make sure the directory is empty. While navigated to the folder, right click and select &#8220;TortoiseSVN &gt;&gt; Create Repository Here&#8230;&#8221;.</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2007/12/createrepository.png?w=544" alt="CreateRepository" /></p>
<p>You&#8217;ll be asked to select the type of repository you want to create &#8211; &#8220;Native filesystem (FSFS)&#8221; or &#8220;Berkeley database (BDB)&#8221;. I always choose FSFS, but you can use BDB if you wish. If you are creating the repository on a network share, you MUST choose FSFS, for magical reasons.</p>
<p>After you select the repository type you should get a message saying that the repository was successfully created. You&#8217;ll now see a few folders and directories in the repository folder you selected. Don&#8217;t mess with them unless you know what you are doing. I don&#8217;t know what I&#8217;m doing, so I don&#8217;t mess with them.</p>
<p>Your repository is currently empty, so you&#8217;ll need to find some files to put in it. I&#8217;ll just use a singe blank text file for now, but you can use anything you wish. In my case, this would usually be a directory containing a Visual Studio project or a web site. Navigate to the folder you want to import, right click, and select &#8220;TortoiseSVN &gt;&gt; Import&#8230;&#8221;.</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2007/12/folderimport.png?w=544" alt="Folder Import" /></p>
<p>We&#8217;ll have to point Subversion to the repository we created earlier, and we can add an optional note.</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2007/12/folderimport2.png?w=544" alt="folderimport2.png" /></p>
<p>After you click &#8220;OK&#8221;, you should see a log of what was done. This screen tells us that &#8220;Some File.txt&#8221; was successfully added to the repository, and it is at revision 1.</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2007/12/folderimport3.png?w=544" alt="folderimport3.png" /></p>
<p>This part is confusing. Now that the folder is in the repository it can be checked out so that you can edit it. Whenever you edit the files you should be editing them in a &#8220;Working copy&#8221; of the repository. Although we have imported our folder into the repository, we don&#8217;t yet have a working copy! I&#8217;m going to create a new directory called &#8220;My Working Copy&#8221;, and then use &#8220;SVN Checkout&#8230;&#8221; from the right-click menu.</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2007/12/checkout1.png?w=544" alt="checkout1.png" /></p>
<p>One again navigate to your repository, and click OK. You should get a screen showing a log of the checkout, but I&#8217;m not displaying it here.</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2007/12/checkout2.png?w=544" alt="checkout2.png" /></p>
<p>The &#8220;My Working Copy&#8221; directory now contains &#8220;Some File.txt&#8221; along with a hidden folder called &#8220;_svn&#8221;. The &#8220;_svn&#8221; folder keeps track of the working copy, so make sure you don&#8217;t delete or edit it. Once you are sure your files were checked out properly, you can go ahead and delete the originals. (Note: You should probably back them up first, in case the repository gets corrupted.)</p>
<p>We are almost there. Let&#8217;s open up the &#8220;Some File.txt&#8221; in your working copy and add a line of text to it. I added the line &#8220;This is a new line of text.&#8221; and then saved the file. I&#8217;ve also added a new file called &#8220;New File.txt&#8221; to m working copy directory.</p>
<p>Lets say that we&#8217;ve made a few changes to our file and now want to commit our changes to the repository. Committing our changes will make a point-in-time backup and it will also allow others using the repository with their own working copies to stay up to date by running the &#8220;SVN Update&#8221; function after we do a commit.</p>
<p>I&#8217;ve clicked &#8220;SVN Commit&#8221; from the right-click menu, and now I can add another comment. In this screenshot I&#8217;ve also right-clicked on &#8220;New File.txt&#8221; and clicked &#8220;Add&#8221; to that Subversion starts keeping track of the file. You should do the same after deleting files by right clicking on them in the commit window and clicking Delete. Only the files that are checked will be committed. After we click OK, we&#8217;ll once again get a log of what was done.</p>
<p><img src="http://mikeinmadison.files.wordpress.com/2007/12/commit.png?w=544" alt="commit.png" /></p>
<p>That should be enough to get you going with Subversion!</p>
<p>A few extra notes:</p>
<ul>
<li>You can check out as many working copies as you like. Put each one its own directory and run &#8220;SVN Update&#8221; before editing each copy. This will make sure that the copy you are editing is up-to-date. Also, run &#8220;SVN Commit&#8221; after you are done editing each copy to make sure that your other working copies will get the most current version when you update them.</li>
<li>If you need to get a non-working copy, say to upload a web site to a production server without all of the &#8220;_svn&#8221; files use &#8220;TortoiseSVN &gt;&gt; Export&#8230;&#8221;. This will place a clean up-to-date revision of your repository in the folder you choose.</li>
</ul>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mikeinmadison.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mikeinmadison.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikeinmadison.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikeinmadison.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikeinmadison.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikeinmadison.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikeinmadison.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikeinmadison.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikeinmadison.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikeinmadison.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikeinmadison.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikeinmadison.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikeinmadison.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikeinmadison.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikeinmadison.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikeinmadison.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikeinmadison.wordpress.com&amp;blog=2325854&amp;post=15&amp;subd=mikeinmadison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikeinmadison.wordpress.com/2007/12/19/getting-started-with-subversion/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mikeinmadison</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2007/12/createrepository.png" medium="image">
			<media:title type="html">CreateRepository</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2007/12/folderimport.png" medium="image">
			<media:title type="html">Folder Import</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2007/12/folderimport2.png" medium="image">
			<media:title type="html">folderimport2.png</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2007/12/folderimport3.png" medium="image">
			<media:title type="html">folderimport3.png</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2007/12/checkout1.png" medium="image">
			<media:title type="html">checkout1.png</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2007/12/checkout2.png" medium="image">
			<media:title type="html">checkout2.png</media:title>
		</media:content>

		<media:content url="http://mikeinmadison.files.wordpress.com/2007/12/commit.png" medium="image">
			<media:title type="html">commit.png</media:title>
		</media:content>
	</item>
	</channel>
</rss>
