<?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>Mitch Etter's Weblog</title>
	<atom:link href="http://mitchetter.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mitchetter.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Sat, 26 Feb 2011 05:49:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mitchetter.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Mitch Etter's Weblog</title>
		<link>http://mitchetter.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mitchetter.wordpress.com/osd.xml" title="Mitch Etter&#039;s Weblog" />
	<atom:link rel='hub' href='http://mitchetter.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Publishing Coverage in TFS 2008 and Visual Studio 2010</title>
		<link>http://mitchetter.wordpress.com/2011/02/26/publishing-coverage-in-tfs-2008-and-visual-studio-2010/</link>
		<comments>http://mitchetter.wordpress.com/2011/02/26/publishing-coverage-in-tfs-2008-and-visual-studio-2010/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 05:49:07 +0000</pubDate>
		<dc:creator>mitchetter</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://mitchetter.wordpress.com/?p=97</guid>
		<description><![CDATA[In my last post, I described the process I followed to build, run tests and produce coverage results with .NET 4 and TFS Build 2008. It fell short of showing coverage results in the build summary in Visual Studio (specifically Visual Studio 2010). I only got as far as copying the coverage report to the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=97&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my last <a title="TFS Build 2008 with .NET 4" href="http://mitchetter.wordpress.com/2011/02/19/tfs-build-2008-with-net-4/">post</a>, I described the process I followed to build, run tests and produce coverage results with .NET 4 and TFS Build 2008. It fell short of showing coverage results in the build summary in Visual Studio (specifically Visual Studio 2010). I only got as far as copying the coverage report to the build drop folder.</p>
<p>This isn&#8217;t good enough. Practically, another developer would view the build summary in Visual Studio, see the test results but not see any coverage report. This person would most likely assume that no coverage report has been generated, get frustrated and move on. For the coverage report to provide any value to the development team, it needs to not stay isolated in the build drop folder. It needs to be seen. I saw two places for the coverage results to go to make it&#8217;s integration with Visual Studio near seamless: in the build summary and with the test results.<span id="more-97"></span></p>
<p>1) The first place the coverage results need to go is on the build summary. Using TFS 2008, .NET 3.5 and Visual Studio 2008, a summary of coverage results are published in the build summary automatically. Since I&#8217;m dealing with TFS 2008, .NET 4 and Visual Studio 2010, it doesn&#8217;t happen automatically. I&#8217;m not sure whether TFS 2008 or Visual Studio 2010 is to blame for this breakdown, but that doesn&#8217;t seem important. The solution I&#8217;m using is to write an extension to the build process to explicitly write the coverage results to TFS. Visual Studio comes with the libraries needed to communicate to TFS. Here is how to accomplish that:</p>
<pre style="padding-left:30px;">//using Microsoft.TeamFoundation.Build.Client
//using Microsoft.TeamFoundation.Build.Common
//using Microsoft.TeamFoundation.Client
var tfs = TeamFoundationServerFactory.GetServer(teamFoundationServerUrl);
var buildServer = buildServer = (IBuildServer)tfs.GetService(typeof(IBuildServer));
var build = buildServer.QueryBuildsByUri(new[] { buildUri }, new[] { "*" }, QueryOptions.All)[0];
var configSummary = InformationNodeConverters.GetConfigurationSummaries(build)[0];
var coverageSummary = configSummary.AddCodeCoverageSummary();
coverageSummary.BlocksCovered = blocksCovered;
coverageSummary.BlocksNotCovered = blocksNotCovered;
coverageSummary.LinesCovered = linesCovered;
coverageSummary.LinesNotCovered = linesNotCovered;
coverageSummary.LinesPartiallyCovered = linesPartiallyCovered;
coverageSummary.Name = testRunName;
coverageSummary.RunId = testRunId;
coverageSummary.RunUser = runUser;

//workaround for MS assemblies not setting BuildInformationNode.Build
//otherwise there's a NullReferenceException during Save()
var coverageInfoNode = build.Information.GetNodesByType(InformationTypes.ConfigurationSummary)[0].Children.GetNodesByType(InformationTypes.CodeCoverageSummary)[0];
var buildPropertyInfo = coverageInfoNode.GetType().GetProperty("Build", BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.NonPublic);
buildPropertyInfo.SetValue(coverageInfoNode, build, null);

coverageSummary.Save();</pre>
<p>The example code includes a workaround for a NullReferenceException I kept seeing when trying to save coverage summary to TFS. There might be a cleaner way to do it, or there might be some other way to do it; but this works.</p>
<p>2) The second place the coverage results need to go to make the coverage results more tightly integrated with Visual Studio is attached to the test results. When someone clicks &#8220;View Test Results&#8221; from the build summary in Visual  Studio, the coverage results should open with the test results, but that didn&#8217;t happen. Instead there was an error displayed in Visual  Studio that it couldn&#8217;t find one of the reference assemblies similar to  how the .coverage file behaves when you open it remotely. Clicking on &#8220;View Test Results&#8221; opens a test results file (.trx) in the build drop. The first one I saw was &lt;build_drop_folder&gt;\TestResults\&lt;test_run_id&gt;.trx. In the TestResults directory, there is also a folder with the name of the test run ID. This folder contains all supporting files for the test results including the coverage results. The coverage results are typically found in the &lt;build_drop_folder&gt;\TestResults\&lt;test_run_id&gt;\In\&lt;machine_name&gt; directory. The original coverage file (data.coverage) is there, and I also already had the coverage xml (data.coveragexml) copied there.</p>
<p>I looked at the .trx file in notepad, and the first thought that came to mind was that the old coverage file is being opened because it&#8217;s referenced in the &lt;ResultFiles&gt; element. Yet when I changed the coverage file references multiple ways, there was no change in how the coverage was loaded. Thanks to the <a href="http://technet.microsoft.com/en-us/sysinternals/bb896645">Process Monitor</a>, I found out my assumptions were incorrect in two ways. One, &lt;build_drop_folder&gt;\TestResults\&lt;test_run_id&gt;.trx isn&#8217;t the file Visual Studio 2010 is opening; instead, it&#8217;s &lt;build_drop_folder&gt;\TestResults\&lt;test_run_id&gt;\&lt;test_run_id&gt;_vs10.trx. Two, Visual Studio pays no attention to the &lt;ResultFiles&gt; element in the .trx file to load the associated coverage. It just searches the sub-directories for coverage files. It finds the data.coverage file before data.coveragexml; so, it tries to load data.coverage and fails.</p>
<p>My solution to loading the coverage with the test results is ultra simplistic. I delete the old data.coverage file from the build drop folder. After that, data.coveragexml is loaded instead. As a result, the coverage results load with the test results when someone clicks &#8220;View Test Results&#8221; from the build summary without assembly reference errors.</p>
<p>I haven&#8217;t found any more places yet where I can integrate the coverage results with Visual Studio 2010. If anyone knows of any more places, please let me know.</p>
<p>Here are some links that have helped me immensely through the whole process:<br />
<a href="http://msdn.microsoft.com/en-us/library/aa337604%28v=VS.90%29.aspx"> http://msdn.microsoft.com/en-us/library/aa337604%28v=VS.90%29.aspx</a><br />
<a href="http://blogs.msdn.com/b/phuene/archive/2009/12/01/programmatic-coverage-analysis-in-visual-studio-2010.aspx"> http://blogs.msdn.com/b/phuene/archive/2009/12/01/programmatic-coverage-analysis-in-visual-studio-2010.aspx</a><br />
<a href="http://blogs.msdn.com/b/buckh/archive/2007/08/14/tfs-2008-a-basic-guide-to-team-build-2008.aspx"> http://blogs.msdn.com/b/buckh/archive/2007/08/14/tfs-2008-a-basic-guide-to-team-build-2008.aspx</a><br />
<a href="http://www.woodwardweb.com/dotnet/tfs_build_api_b.html"> http://www.woodwardweb.com/dotnet/tfs_build_api_b.html</a></p>
<div id="_mcePaste" class="mcePaste" style="position:absolute;left:-10000px;top:323px;width:1px;height:1px;overflow:hidden;"><a href="http://msdn.microsoft.com/en-us/library/aa337604%28v=VS.90%29.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/aa337604%28v=VS.90%29.aspx</a></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mitchetter.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mitchetter.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mitchetter.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mitchetter.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mitchetter.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mitchetter.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mitchetter.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mitchetter.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mitchetter.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mitchetter.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mitchetter.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mitchetter.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mitchetter.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mitchetter.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=97&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mitchetter.wordpress.com/2011/02/26/publishing-coverage-in-tfs-2008-and-visual-studio-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c73e76a0c66381265ce303b888dc12ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mitchetter</media:title>
		</media:content>
	</item>
		<item>
		<title>TFS Build 2008 with .NET 4</title>
		<link>http://mitchetter.wordpress.com/2011/02/19/tfs-build-2008-with-net-4/</link>
		<comments>http://mitchetter.wordpress.com/2011/02/19/tfs-build-2008-with-net-4/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 02:33:26 +0000</pubDate>
		<dc:creator>mitchetter</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://mitchetter.wordpress.com/?p=88</guid>
		<description><![CDATA[I had the recent experience of setting up builds with TFS 2008 that build .NET 4 projects. The requirements were that each build would 1) build the solution, 2) run the tests and 3) generate a coverage report. The process was very arduous because the TFS build process isn&#8217;t well documented and has limited customization. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=88&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I had the recent experience of setting up builds with TFS 2008 that build .NET 4 projects. The requirements were that each build would 1) build the solution, 2) run the tests and 3) generate a coverage report. The process was very arduous because the TFS build process isn&#8217;t well documented and has limited customization. One thing I had going for me, though, was that the tests are written on the MsTest framework, which plays nice with TFS builds.</p>
<p>These are the steps that I went through:<span id="more-88"></span></p>
<ol>
<li>Installed TFS 2008 Build on the build server. This included installing a limited version of Visual Studio 2008.</li>
<li>Installed Visual Studio 2008 on my local computer even though I primarily use 2010. I found out by trial that Visual Studio 2010 does not include many of the dialogs required to manage TFS 2008 builds because it&#8217;s designed for TFS 2010.</li>
<li>Added the build server to the list of build agents in TFS.</li>
<li>Created a build definition for the project. I did this through Visual Studio 2008 because, again, it has better dialogs for TFS 2008. For example, it created for me the skeleton MsBuild script required for the build.</li>
<li>For the build configuration, I decided not to use a .vsmdi to define what tests to run. Instead, I chose to run tests within testing assemblies selected by the TestContainer wildcard. The reasoning for this is that whenever someone would add a test to the test harness, he would have to both add the test and include the test in the .vsmdi file. I could foresee that .vsmdi file getting very out of date. With the TestContainer wildcard, the test would be automatically picked up.</li>
<li>Added a .testsettings file to the build definition. When you use a .vsmdi file, the .testsettings file is already registered. But since I wasn&#8217;t using that setup, I had to add the .testsettings file directly to the msbuild script (TFSBuild.proj). I did this by adding a RunConfigFile element with the name of the .testsettings file to the first PropertyGroup element.</li>
<li>When I started running the builds, I realized that VS2008 defaulted the TFSBuild.proj file to use .NET 3.5. This doesn&#8217;t work for a .NET 4 project. I promptly changed the tool version in the root element of the msbuild file from 3.5 to 4.</li>
<li>Changed one more thing to get the build server to build .NET 4. On the server, I configured the msbuild path to .NET 4 in the MsBuildPath setting in tsbuildservice.exe.config (C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies). Then after I restarted the service, it started building with .NET 4.</li>
<li>Since the solution uses mstest, I then installed Visual Studio 2010 on the build server to get the references to resolve.</li>
<li>As a result of installing VS2010 on the build server, the TFS build script (C:\Program Files (x86)\Msbuild\Microsoft\Visual Studio\Microsoft.TeamFoundation.Build.targets) was updated for TFS 2010. Of course, this caused the builds to fail. The builds started working again after the file was rolled back. At this point, the solution was building and tests were executing. It was time for requirement 3: test coverage.</li>
<li>Selected the assemblies to collect coverage statistics on. This is configured in the .testsettings file. VS2010 has a very nice dialog to configure the coverage settings, but it&#8217;s a little hidden.
<ol>
<li>Select &#8220;Data and Diagnostics&#8221; on the left.</li>
<li>Select &#8220;Code Coverage&#8221; in the list.</li>
<li>Click on the small Configure button that appears just above the list. This will show the list of assemblies to collect coverage on.</li>
</ol>
</li>
<li>Finally, the build started generating the coverage as a data.coverage file. But when I opened on the file on the build server, it couldn&#8217;t resolve the assembly references. I fixed this by unchecking the &#8220;Instrument Assemblies in Place&#8221; checkbox in the code coverage configuration dialog for the .testsettings file. This allowed the coverage results to be viewed on the build server.</li>
<li>The trouble I faced then is that I the coverage results couldn&#8217;t be viewed anywhere other than on the build server, which was unacceptable. The mstest coverage generates a binary report file with full path references to the dll&#8217;s (specific to the build server), and the file won&#8217;t load if the references don&#8217;t resolve. I figured out that if I loaded the coverage report into Visual Studio on the build server, I could then export the coverage report as an XML file, but that doesn&#8217;t help me in the build process. So, I looked for a command-line utility from Microsoft to do that because most things you can do in Visual Studio, you can do on the command line. No such luck!<br />
I finally found the API calls to export the coverage as XML, and I wrote my own command-line utility to do it. It comes down to three lines of code (shown below). It took me longer to find it than to write it. Next, I executed the utility in the TSFBuild.proj file to generate the XML.<br />
&nbsp;</p>
<blockquote><p>//reference Microsoft.VisualStudio.Coverage.Analysis<br />
// at C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies<br />
var coverageInfo = CoverageInfo.CreateFromFile(&#8220;foo.coverage&#8221;);<br />
var dataSet = coverageInfo.BuildDataSet(null);<br />
dataSet.ExportXml(&#8220;bar.coveragexml&#8221;);</p></blockquote>
</li>
<li>The last step was to publish the coverage XML file with the build drop. To do this, I included a copy in the TSFBuild.proj file. Finshed!!!</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mitchetter.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mitchetter.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mitchetter.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mitchetter.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mitchetter.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mitchetter.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mitchetter.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mitchetter.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mitchetter.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mitchetter.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mitchetter.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mitchetter.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mitchetter.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mitchetter.wordpress.com/88/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=88&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mitchetter.wordpress.com/2011/02/19/tfs-build-2008-with-net-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c73e76a0c66381265ce303b888dc12ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mitchetter</media:title>
		</media:content>
	</item>
		<item>
		<title>First Entity Framework Impressions</title>
		<link>http://mitchetter.wordpress.com/2011/02/02/first-entity-framework-impressions/</link>
		<comments>http://mitchetter.wordpress.com/2011/02/02/first-entity-framework-impressions/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 05:14:32 +0000</pubDate>
		<dc:creator>mitchetter</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://mitchetter.wordpress.com/?p=80</guid>
		<description><![CDATA[During the past couple weeks at work, I&#8217;ve been migrating a solution from NHibernate to Entity Framework. I&#8217;ve been learning a lot, and it&#8217;s been quite enjoyable. There are some things I like about Entity Framework, but there are some things that I&#8217;ll miss from NHibernate. There are also some issues with the Entity Framework [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=80&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>During the past couple weeks at work, I&#8217;ve been migrating a solution from NHibernate to Entity Framework. I&#8217;ve been learning a lot, and it&#8217;s been quite enjoyable. There are some things I like about Entity Framework, but there are some things that I&#8217;ll miss from NHibernate. There are also some issues with the Entity Framework that I&#8217;ve been having.</p>
<p>There are several bright spots I&#8217;ve been seeing from using the Entity Framework.</p>
<ol>
<li>I like how you can use a designer to create the entity classes and map them to table. It makes it so easy. It retrieves a lot of the schema from the database for you, which is nice.</li>
<li>The code generation is nice. It creates the classes for me. There&#8217;s also options to pre-compile queries to boost performance.</li>
<li>The entity framework can create self-tracking entities that keep track of changes as you make them. This is something I have wished for.</li>
</ol>
<p>I&#8217;ve gotten used to NHibernate over the past four years of using it; so naturally, I would miss it. True, there was a steep learning curve at the beginning. I learned things such as the mapping syntax, HQL and remembering to marking the .hbm.xml files as embedded resources (that last one gets me every time). But after all that, there&#8217;s practically no schema that NHibernate can&#8217;t handle. There are a couple features from NHibernate that I miss.</p>
<ol>
<li>I miss absolute control. NHibernate will let you configure it however, but it just may not work when you run it. On the other hand, the Entity Framework is very strict on what changes it will allow (especially in the designer), which is very much like Microsoft. For example, it insists that the schema is not configurable and should only come from the database.</li>
<li>I miss NHibernate&#8217;s relationship mapping. Once the relationship is set up in the mapping file correctly, it&#8217;ll work no matter what&#8217;s thrown at it (inserts, updates and cascading deletes). With entity framework, there a few extra steps involved (especially with the cascading deletes).</li>
</ol>
<p>Because entity framework is very new, there are still some big issues in using it. Some of it may be from using an Oracle database, but that shouldn&#8217;t matter.</p>
<ol>
<li>Every time you update the entity model from the database you have to close the designer and open it in XML to add the StoreGeneratedPattern=&#8221;Identity&#8221; to every primary key column reference. It&#8217;s very annoying. I&#8217;m guessing Microsoft will include a fix for this in the next Visual Studio service pack.</li>
<li>There&#8217;s a defect in the class generation template for self-tracking entities. There&#8217;s a scenario wherein the namespace (containing periods) of the child class is used as part of a method name, and it doesn&#8217;t compile. For this, I had to edit the template.</li>
<li>There&#8217;s not much configuration with how connections are used. By default, a new connection is used every time there&#8217;s a save to the database. This quickly consumes the connection pool. I&#8217;m not sure what to do for this yet. I wish there was smarter connection management out-of-the-box.</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mitchetter.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mitchetter.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mitchetter.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mitchetter.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mitchetter.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mitchetter.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mitchetter.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mitchetter.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mitchetter.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mitchetter.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mitchetter.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mitchetter.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mitchetter.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mitchetter.wordpress.com/80/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=80&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mitchetter.wordpress.com/2011/02/02/first-entity-framework-impressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c73e76a0c66381265ce303b888dc12ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mitchetter</media:title>
		</media:content>
	</item>
		<item>
		<title>Key File Opener</title>
		<link>http://mitchetter.wordpress.com/2010/11/30/key-file-opener/</link>
		<comments>http://mitchetter.wordpress.com/2010/11/30/key-file-opener/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 21:03:58 +0000</pubDate>
		<dc:creator>mitchetter</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mitchetter.wordpress.com/?p=72</guid>
		<description><![CDATA[I like using the Microsoft Enterprise Library cryptography framework for data encryption. It provides some dependency injection, support for protected keys and some very nice utilities. The problem I&#8217;ve found with it is that it has limited support for migrating the protected key files. Sure, you can use their configuration utility that opens the .config [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=72&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I like using the <a href="http://msdn.microsoft.com/en-us/library/ff648951.aspx">Microsoft Enterprise Library</a> cryptography framework for data encryption. It provides some dependency injection, support for protected keys and some very nice utilities. The problem I&#8217;ve found with it is that it has limited support for migrating the protected key files. Sure, you can use their configuration utility that opens the .config file, but it often reformats the configuration file to the point that it&#8217;s hard to read. I usually end up creating a dummy configuration file to use with the enterprise library configuration utility, and then I copy the changed elements over to the actual configuration file. Then once you create the key file, it&#8217;s difficult to recover the original encryption key (maybe on purpose).</p>
<p>Therefore, I created a windows desktop application that can open the keys in their various formats. The application can also save the key into the various formats. You can download the source <a title="KeyFile.zip (3,531 KB)" href="https://docs.google.com/uc?id=0BzLIyF3YLJN7OGM3OWYxNWMtOTczYS00YTQ4LWEyYjUtN2RlNWJlYmJmOGU2&amp;export=download&amp;hl=en_US&amp;authkey=CKiszzk">here</a>. I wrote it with version 5.0 of the Microsoft Enterprise Library, .NET 4.0 and Visual Studio 2010. I made the assumption that the user know a little about how Enterprise Library stores the keys. It&#8217;s still in development and a little rough; so, use it at your own risk.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mitchetter.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mitchetter.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mitchetter.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mitchetter.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mitchetter.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mitchetter.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mitchetter.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mitchetter.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mitchetter.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mitchetter.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mitchetter.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mitchetter.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mitchetter.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mitchetter.wordpress.com/72/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=72&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mitchetter.wordpress.com/2010/11/30/key-file-opener/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c73e76a0c66381265ce303b888dc12ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mitchetter</media:title>
		</media:content>
	</item>
		<item>
		<title>F# vs. C# lines metric</title>
		<link>http://mitchetter.wordpress.com/2010/11/05/f-vs-c-lines-metric/</link>
		<comments>http://mitchetter.wordpress.com/2010/11/05/f-vs-c-lines-metric/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 17:52:08 +0000</pubDate>
		<dc:creator>mitchetter</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://mitchetter.wordpress.com/?p=70</guid>
		<description><![CDATA[I&#8217;ve been reading documentation on F# lately. It sounds really cool, but it just rubs me the wrong way when people start comparing it with C#. I understand the differences that F# is a functional-orientated language and C# is object-orientated. Each have their own advantages and disadvantages in various situations. But what really gets my [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=70&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been reading documentation on F# lately. It sounds really cool, but it just rubs me the wrong way when people start comparing it with C#. I understand the differences that F# is a functional-orientated language and C# is object-orientated. Each have their own advantages and disadvantages in various situations.</p>
<p>But what really gets my goat is when people compare lines of code between the two because they inflate the C# line count. One, they introduce unnecessary methods, properties, etc. Two, braces on their own line are included in the line count. Three, they suddenly forget about anonymous delegates and lamda statements. Let&#8217;s look at this F# example (I got this one from http://2009.scandevconf.se/db/FSharp-Intro-v1.ppt):</p>
<p><span id="more-70"></span></p>
<pre>let data = (1, 2, 3)

let f(a, b, c) =
    let sum = a + b + c
    let g(x) = sum + x * x
    g(a), g(b), g(c)
</pre>
<p>Now, let&#8217;s write it in C#:</p>
<pre>var data = new[] { 1, 2, 3 };

static void F(int a, int b, int c) {
    var sum = a + b + c;
    var g = delegate(int x) { sum + x * x; };
    g(a); g(b); g(c);
}
</pre>
<p>F# does have the ability to be more concise than C# (I do have to admit that), but don&#8217;t try to skew the numbers!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mitchetter.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mitchetter.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mitchetter.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mitchetter.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mitchetter.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mitchetter.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mitchetter.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mitchetter.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mitchetter.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mitchetter.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mitchetter.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mitchetter.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mitchetter.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mitchetter.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=70&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mitchetter.wordpress.com/2010/11/05/f-vs-c-lines-metric/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c73e76a0c66381265ce303b888dc12ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mitchetter</media:title>
		</media:content>
	</item>
		<item>
		<title>Buyable Cars</title>
		<link>http://mitchetter.wordpress.com/2010/11/03/buyable-cars/</link>
		<comments>http://mitchetter.wordpress.com/2010/11/03/buyable-cars/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 03:51:18 +0000</pubDate>
		<dc:creator>mitchetter</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mitchetter.wordpress.com/?p=67</guid>
		<description><![CDATA[Below is a list of cars that I would not only oogle over but I might actually own at some point in time. Sure, there are many exotic cars that I would enjoy owning, but I have no means of acquiring them. These cars I could actually drive off the lot without having to get [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=67&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Below is a list of cars that I would not only oogle over but I might actually own at some point in time. Sure, there are many exotic cars that I would enjoy owning, but I have no means of acquiring them. These cars I could actually drive off the lot without having to get arrested.</p>
<ul>
<li><strong>Subaru WRX.</strong> This is the car I currently drive. You can call me biased, but I love it!</li>
<li><strong>Toyota Tacoma.</strong> Everyone needs a truck at some point. This is a versatile moving machine, but it doesn&#8217;t make you feel guilty for hauling just a lawn mower. This may be my next vehicle purchase.</li>
<li><strong>Inifiniti G37x Coupe.</strong> This is just an all-around sexy car. I don&#8217;t know how they get the exhaust note so spot-on. It&#8217;s purr-fect.</li>
<li><strong>Lexus IS 250</strong></li>
<li><strong>Acura TSX</strong></li>
<li><strong>Nissan Altima 2.5 Coupe.</strong> I like the lines on the back-end of the coupe better than the sedan.</li>
<li><strong>Honda Fit.</strong> Yes. I said the Fit. There is always elegance in simplicity and versatility, and it has both. Also, I really like that the front seats meet the back seat to create a set of easy chairs.</li>
<li><strong>Honda Crosstour or Acura ZDX.</strong> The curves on the hatch really catch my eye.</li>
<li><strong>Infiniti FX35</strong></li>
<li><strong>Acura RDX.</strong> Yay turbo!</li>
<li><strong>Nissan Xterra</strong></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mitchetter.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mitchetter.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mitchetter.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mitchetter.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mitchetter.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mitchetter.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mitchetter.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mitchetter.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mitchetter.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mitchetter.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mitchetter.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mitchetter.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mitchetter.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mitchetter.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=67&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mitchetter.wordpress.com/2010/11/03/buyable-cars/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c73e76a0c66381265ce303b888dc12ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mitchetter</media:title>
		</media:content>
	</item>
		<item>
		<title>Time Management</title>
		<link>http://mitchetter.wordpress.com/2010/09/04/time-management/</link>
		<comments>http://mitchetter.wordpress.com/2010/09/04/time-management/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 18:29:37 +0000</pubDate>
		<dc:creator>mitchetter</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mitchetter.wordpress.com/?p=61</guid>
		<description><![CDATA[I recently had a promotion at my job, and my new position requires me to do more and different things. This means that what time I had is even more scarce. Therefore, I need some sort of time management. The last .NET user group meeting that I attended inspired me to try a new method [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=61&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently had a promotion at my job, and my new position requires me to do more and different things. This means that what time I had is even more scarce. Therefore, I need some sort of time management.</p>
<p>The last .NET user group meeting that I attended inspired me to try a new method in time management. The presentation there was about how to be a good developer. One of the stories in that presentation was about development team who had a board of priorities with the tasks listed on sheets of paper. This inspired me to create my own board of priorities that I posted on my cubicle wall. I put it on my wall to let everyone know what my queue of tasks are. I put my tasks on note cards and place them into one of three categories: Doing, Need To and Want To. I think these categories are pretty self-explanatory. I&#8217;ve tried it for couple weeks now, and it&#8217;s been working out. Nobody has tried to mess with it yet, and it&#8217;s a constant reminder of what I have on my plate. I think I&#8217;ll keep doing it.</p>
<p>Another point about time management that I wanted to mention is something one of my co-workers mentioned to me. He boiled time management down to a &#8220;Punnett Square&#8221;. Do you remember doing that in Jr. High science class when you were learning about genetics? Though, this doesn&#8217;t have do with genetics. My co-worker said that the one axis is importance (important and not important) and the other is urgency (urgent and not urgent). You would then classify your task in one of four squares. My own personal twist on this idea is as follows. First of all, the tasks in the not important and not urgent square practically don&#8217;t exist. They shouldn&#8217;t receive any of my attention. Secondly, the tasks in the important and urgent square are what I should be doing presently. Thirdly, my effort for the tasks in the important and not urgent square should be spent trying to make them more urgent. This means that I&#8217;m trying to see whether they would eventually be important and urgent enough to be what I&#8217;m working on. Then for the tasks in the final square (not important and urgent), my effort should be spent trying to make them less urgent meaning they would eventually go away.</p>
<p><a href="http://mitchetter.files.wordpress.com/2010/09/punnett.gif"><img class="aligncenter size-full wp-image-64" title="Punnett" src="http://mitchetter.files.wordpress.com/2010/09/punnett.gif" alt="Punnett of Priorities" width="262" height="164" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mitchetter.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mitchetter.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mitchetter.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mitchetter.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mitchetter.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mitchetter.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mitchetter.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mitchetter.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mitchetter.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mitchetter.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mitchetter.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mitchetter.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mitchetter.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mitchetter.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=61&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mitchetter.wordpress.com/2010/09/04/time-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c73e76a0c66381265ce303b888dc12ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mitchetter</media:title>
		</media:content>

		<media:content url="http://mitchetter.files.wordpress.com/2010/09/punnett.gif" medium="image">
			<media:title type="html">Punnett</media:title>
		</media:content>
	</item>
		<item>
		<title>My Firefox Add-Ons</title>
		<link>http://mitchetter.wordpress.com/2010/06/08/my-firefox-add-ons/</link>
		<comments>http://mitchetter.wordpress.com/2010/06/08/my-firefox-add-ons/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 18:13:43 +0000</pubDate>
		<dc:creator>mitchetter</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mitchetter.wordpress.com/?p=50</guid>
		<description><![CDATA[I&#8217;ve always loved Firefox. It&#8217;s been the spear-head to the browser revolution giving rich features to the end-user. With its market share growing above 20%, it&#8217;s putting the Internet Explorer leviathan in its place. But the thing that I love the most about Firefox is the multitude of add-ons you can get for it. Here [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=50&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always loved Firefox. It&#8217;s been the spear-head to the browser revolution giving rich features to the end-user. With its market share growing above 20%, it&#8217;s putting the Internet Explorer leviathan in its place. But the thing that I love the most about Firefox is the multitude of add-ons you can get for it.</p>
<p>Here are the extensions that I have currently installed in Firefox. Most of them tend to be very techie. I have them somewhat ordered from most frequently used to least frequently used.</p>
<p><span id="more-50"></span></p>
<ol>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/1843/">Firebug</a><br />
This is a web developer&#8217;s dream come true. It tells you anything you would want to know about how a web page works in a way that&#8217;s most convenient. I don&#8217;t know of anyone in my line of work who hasn&#8217;t used it.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/60/">Web Developer</a><br />
This is a toolbar that simply makes my job easier. Together with Firebug, they form a dynamic duo that really kick some butt! Sure, Batman (Firebug) can do the job on his own, but Robin makes things easier.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/2489/">CacheViewer</a><br />
Firefox doesn&#8217;t have the windows explorer integration for the browser cache like Internet Explorer has. Although you can enter &#8220;about:cache&#8221; in the address bar in Firefox to view the cache, this can get cumbersome when looking for certain items. This add-on makes things more intuitive.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/539/">MeasureIt</a><br />
Although Firebug gives you the dimensions of any one element in the page, sometimes you want to know the approximate measurement across multiple elements. I often use this in conjunction with the built-in Windows magnifier.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/271/">ColorZilla</a><br />
ColorZilla makes it easy to find the color of an element, just point and click. It saves you from having to dig through the style sheets to find the associated color. I actually use this add-on most to find a color within an image created by one of our designers. If you open the image with Firefox, you can use ColorZilla with it.</li>
<li><a href="http://www.fiddler2.com/fiddler2/">FiddlerHook</a><br />
This add-on comes with Fiddler2 (a robust web traffic interception utility). By default, Fiddler2 intercepts Internet Explorer traffic, but you have to have this extension to intercept Firefox requests. Yet, not intercepting Firefox traffic help if you&#8217;re debugging web services.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/966/">Tamper Data</a><br />
This is another extension that intercepts Firefox web requests. It&#8217;s not as full-featured as Fiddler2. I use this one when I don&#8217;t feel like starting up Fiddler2.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/5648/">FireShot</a><br />
This add-on is the most recent addition to my collection. If you use the [Alt]+[PrtScn] key combination in Windows, it&#8217;ll put the screen shot of the current window in the clipboard. This works for most cases, but there are some cases when you want to grab a screen shot of an entire scrolling page. The built-in windows screen shot functionality makes things hard in this case because you have to past the individual screen shot images together. FireShot makes this a one-click operation, and it has a bunch more features I still have to explore.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/684/">FireFTP</a><br />
Firefox doesn&#8217;t come with an FTP client out-of-the-box which makes ftp links unnavigable. FireFTP fixes that.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/5369/">YSlow</a><br />
This is an add-on to Firebug that diagnoses client-side performance problems. It tells you &#8220;whY your page is SLOW&#8221;. It&#8217;s another tool in Batman&#8217;s utility belt.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/3818/">Resizeable Textarea</a><br />
A feature available in Safari that I&#8217;ve always envied is the ability to resize text areas. This add-on promises to give me that. I&#8217;m still trying it out.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/748/">Greasemonkey</a><br />
This allows users to install customizing scripts to change around pages. The first time I saw this I said, &#8220;Oh cool!&#8221; I installed the extension, tried it out, and ever since I&#8217;ve been trying to figure out how to make use of it. I might have been able to use it once. It stays turned off most of the time.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/10909/">IE Tab Plus</a><br />
This allows loading pages with the IE rending engine within Firefox. This is handy when I find some legacy pages that only load right in Internet Explorer, and I don&#8217;t feel like opening IE. Most web pages anymore are built to be cross-browser compatible.</li>
<li><a href="http://groups.csail.mit.edu/uid/chickenfoot/">Chickenfoot</a><br />
This is like Greasemonkey on steroids. Once again, I downloaded it because of the wow-factor, and I don&#8217;t know what to do with it.</li>
</ol>
<p>If anyone knows of a useful Firefox add-on, please let me know.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mitchetter.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mitchetter.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mitchetter.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mitchetter.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mitchetter.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mitchetter.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mitchetter.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mitchetter.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mitchetter.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mitchetter.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mitchetter.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mitchetter.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mitchetter.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mitchetter.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=50&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mitchetter.wordpress.com/2010/06/08/my-firefox-add-ons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c73e76a0c66381265ce303b888dc12ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mitchetter</media:title>
		</media:content>
	</item>
		<item>
		<title>soapUI</title>
		<link>http://mitchetter.wordpress.com/2010/02/26/soapui/</link>
		<comments>http://mitchetter.wordpress.com/2010/02/26/soapui/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 19:39:19 +0000</pubDate>
		<dc:creator>mitchetter</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mitchetter.wordpress.com/?p=47</guid>
		<description><![CDATA[It&#8217;s annoying sometimes when there is only a live version of a web service and no test versions. It inhibits the testing of code that integrates with the web service because your best option, many times, is to test connected to the live service, and you don&#8217;t want to mess too much with live data [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=47&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s annoying sometimes when there is only a live version of a web service and no test versions. It inhibits the testing of code that integrates with the web service because your best option, many times, is to test connected to the live service, and you don&#8217;t want to mess too much with live data (especially if it belongs to a client). I found a tool today that helps with this issue. It simulates a web service given a wsdl. It&#8217;s called soapUI (http://www.soapui.org/). I found it fairly easy to use, and it can be used on the command-line (http://www.soapui.org/userguide/commandline/mockrunner.html). The only down-side to it so far is that it requires java to be installed.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mitchetter.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mitchetter.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mitchetter.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mitchetter.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mitchetter.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mitchetter.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mitchetter.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mitchetter.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mitchetter.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mitchetter.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mitchetter.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mitchetter.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mitchetter.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mitchetter.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=47&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mitchetter.wordpress.com/2010/02/26/soapui/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c73e76a0c66381265ce303b888dc12ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mitchetter</media:title>
		</media:content>
	</item>
		<item>
		<title>Windows 7</title>
		<link>http://mitchetter.wordpress.com/2010/02/01/windows-7/</link>
		<comments>http://mitchetter.wordpress.com/2010/02/01/windows-7/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 17:55:44 +0000</pubDate>
		<dc:creator>mitchetter</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mitchetter.wordpress.com/?p=45</guid>
		<description><![CDATA[I recently got a new laptop at work with Windows 7. At first, I was skeptical about running a new operating system from Microsoft. Any operating system fresh out the doors from Microsoft has always had problems with security, stability and performance. But I&#8217;ve been refreshingly surprised. I haven&#8217;t had any problems with stability or [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=45&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently got a new laptop at work with Windows 7. At first, I was skeptical about running a new operating system from Microsoft. Any operating system fresh out the doors from Microsoft has always had problems with security, stability and performance. But I&#8217;ve been refreshingly surprised. I haven&#8217;t had any problems with stability or performance (security is yet to be seen), and the new layout is growing on me. I really like the new task bar. I like how you can pin programs to it (as a replacement of the quick launch area). It seems that every time I start to miss how something is done in Windows XP, I find some new better way to do it in Windows 7.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mitchetter.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mitchetter.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mitchetter.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mitchetter.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mitchetter.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mitchetter.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mitchetter.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mitchetter.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mitchetter.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mitchetter.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mitchetter.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mitchetter.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mitchetter.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mitchetter.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mitchetter.wordpress.com&amp;blog=1764665&amp;post=45&amp;subd=mitchetter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mitchetter.wordpress.com/2010/02/01/windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c73e76a0c66381265ce303b888dc12ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mitchetter</media:title>
		</media:content>
	</item>
	</channel>
</rss>
