Scott Hanselman

Calling NUnit from NAnt Pragmatically

January 26, 2006 Comment on this post [2] Posted in Learning .NET | ASP.NET | NUnit | Nant | Tools
Sponsored By

Often times when calling NUnit tests from NAnt scripts we use the nunit2 NAnt task. However, as NAnt version march on and NUnit versions do as well, one gets into assembly binding problems. You might using NUnit 2.2.6.0 and NAnt's compiled with 2.2.0.0. This can be solved with assembly binding redirects but, eh. Poo.  This week on the XP Mailing List Charlie Poole said this:

If it's not too much trouble, revise your testing target to use <exec> rather than <nunit2> Since my copy of NUnit itself is continually evolving, I use <exec> for testing NUnit. You could also keep both targets in the script, since the task will most likely be upgraded soon. - Charlie Poole

I'd been avoiding having to call NUnitConsole.exe from the exec task just because it felt "icky." However, seeing that Charlie and he has +1 Charisma when attacking with NUnit, I am rethinking my objections. Then he added:

One bit of good news: we're working on creating a stable interface for tools
like Nant to use across NUnit versions. - Charlie Poole

Yay! I await it eagerly. While you're reading this, go get TestDriven.NET and start reading Jamie Cansdale's Blog. I'm surprised more people aren't impressed that his stuff supports the Express SKUs considering that Add-Ins aren't supported (explicitly locked out) with Express.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Hanselminutes Podcast 3

January 25, 2006 Comment on this post [4] Posted in Podcast | ASP.NET | XML | Tools
Sponsored By

HanselminutesMy third Podcast is up. We talk about geotagging, ubuntu, Macs on Windows, XSLT Performance amongst other things and share some new tools.

We're listed in the iTunes Podcast Directory, so I encourage you to subscribe with a single click (two in Firefox) with the button below. For those of you on slower connections there are lo-fi and torrent-based versions as well. We're looking into a .zip version for folks who have audio extensions blocked at work.

Subscribe to my Podcast in iTunes

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

  • Each show will include a number of links, and all those links will be posted along with the show on the site. There were 15 sites mentioned in this third episode, some planned, some not. We're trying Shrinkster.com on this show.
  • The basic MP3 feed is here, and the iPod friendly one is here. There's a number of other ways you can get it (streaming, straight download, etc) that are all up on the site just below the fold. I use iTunes, myself, to listen to most podcasts, but I also use FeedDemon and it's built in support. IPodder is also a nice, free, client.
  • Note that for now, because of bandwidth constraints, the feeds always have just the current show. If you want to get an old show (and because many Podcasting Clients aren't smart enough to not download the file more than once) you can always find them at http://www.hanselminutes.com.
  • I have, and will, also include the enclosures to this feed you're reading, so if you're already subscribed to ComputerZen and you're not interested in cluttering your life with another feed, you have the choice to get the 'cast as well.
  • If there's a topic you'd like to hear, perhaps one that is better spoken than presented on a blog, or a great tool you can't live without, contact me and I'll get it in the queue!

Enjoy. Next show I think we'll get deep technical on a topic or two, so there will likely be fewer links and a single longer discussion, probably about how we do Continuous Integration.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Maintaining PermaLinks when moving from .Text to DasBlog

January 25, 2006 Comment on this post [6] Posted in DasBlog
Sponsored By

I believe very strongly in the concept of the PermaLink. They aren't TempLinks, they are meant to be as permanent as possible. When people want their hair done, they get perms, not temps.

When I moved this blog from Radio Userland back in September of 2003, I was worried that my 17 readers at the time wouldn't find the new blog. So, using Clemens' schema, I maintained my permalinks (mostly) via a funky redirect mechanism. If you should still find some old Radio urls and schmutz from my old blog, you'll be redirected to the old content that was imported here.

I've seen a number of folks migrate their content from .Text to DasBlog and there's a half-dozen utilities to do it, it's not too hard. What is more difficult/tricky is maintaining your old permalinks. Joshua Flanagan has contributed some stuff to the DasBlog project recently (that we'll make public later) but he also made some changes to the default web.config that can help folks maintain their URLs.

DasBlog has a very flexible RegularExpression-based URL Mapper (again, there's lots out there, not just DasBlog's) that will allow you to add matches, take them apart, and reassemble the results. Here's two for mapping .Text URLs to DasBlog. The end result is that requests for your old (non-existent) .Text pages are redirected to DasBlog.

This one should be used if you didn't use the old .Text PostID as the permalink GUID in DasBlog, so it's date-based. This is what Joshua added. Note that you'll likely already have the "<newtelligence.DasBlog.UrlMapper>" section, so just add the <add> element. Note also that I've split the regex up for formatting purposes, but the matchExpression should have NO whitespace.

  <!-- Translates
    FROM: /blog/archive/2004/07/27/194.aspx
    TO: /blog/default.aspx?date=2004-07-27
  -->
  <newtelligence.DasBlog.UrlMapper>
    <add matchExpression="(?&lt;basedir&gt;.*?)/archive/
                (?&lt;year&gt;\d{4})/(?&lt;month&gt;\d{2})/(?&lt;day&gt;\d{2})/
                (?&lt;postid&gt;\d+)\.aspx"
         mapTo="{basedir}/default.aspx?date={year}-{month}-{day}" />        
  </newtelligence.DasBlog.UrlMapper>

This one should be used if you DID use the old .Text PostID as the permalink GUID in DasBlog, which is my preferred mechanism. The GUIDs in DasBlog just need to be unique, and in this case we can toss the date info in the URL. 

   <!-- Translates
     FROM: /blog/archive/2004/07/27/194.aspx
     TO: /blog/permalink.aspx?guid=194
   -->
  <newtelligence.DasBlog.UrlMapper>
    <add matchExpression="(?&lt;basedir&gt;.*?)/archive/
                (?&lt;year&gt;\d{4})/(?&lt;month&gt;\d{2})/(?&lt;day&gt;\d{2})/
                (?&lt;postid&gt;\d+)\.aspx"
         mapTo="{basedir}/permalink.aspx?guid={postid}" />        
  </newtelligence.DasBlog.UrlMapper>

You can shape you URLs anyway you like. Maybe you brought your Radio content over like Jeff Sandquist, or if you've migrated content from other (homegrown) blogs to DasBlog.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Microsoft Expression Graphic Designer and Microsoft Expression Interactive Designer - Whew!

January 25, 2006 Comment on this post [1] Posted in Musings
Sponsored By

Noticed via MikeG that Microsoft Expression Graphic Designer (CTP) and Microsoft Expression Interactive Designer  (CTP) were out today. I was a smidge confused about which was which and for what, so I asked a smartie involved with the project what was the difference. Here's (paraphrased) what he said if you're confused as well.

Interactive Designer Sparkle New 100% managed WPF (Avalon) codebase for making XAM & animations UI Design
Graphic Designer Acrylic 100% unmanaged and acquired codebase for doing vector/bitmap graphics and export to xaml Graphics

You'll likely remember that Microsoft bought Creature House Expression 3 back in 2003 and that was code-named Acrylic and that is the father of the Expression Graphic Designer. Vector-based art is tantamount to voodoo if you ask me. I can barely make icons.

There's some nice videos and demos to check out.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Vista-style Task Switching on XP

January 24, 2006 Comment on this post [5] Posted in Musings
Sponsored By

Coming very soon to a Windows XP desktop near you...

Sshot-1

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.