<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Mark Brown</title><subtitle type="html">Nota Bene</subtitle><id>http://weblogs.asp.net/markbrown/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/markbrown/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2004-06-10T13:08:00Z</updated><entry><title>SP2 Compatibility Problem </title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/08/11/213089.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/08/11/213089.aspx</id><published>2004-08-11T23:20:00Z</published><updated>2004-08-11T23:20:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&lt;em&gt;Microsoft has warned its customer base that SQL Server 2000, Microsoft CRM 1.2 and a few other Microsoft applications are not currently compatible with SP2. &lt;/em&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://story.news.yahoo.com/news?tmpl=story&amp;amp;cid=1738&amp;amp;ncid=1209&amp;amp;e=6&amp;amp;u=/zd/20040811/tc_zd/133299"&gt;&lt;font face="Verdana" size="2"&gt;http://story.news.yahoo.com/news?tmpl=story&amp;amp;cid=1738&amp;amp;ncid=1209&amp;amp;e=6&amp;amp;u=/zd/20040811/tc_zd/133299&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=213089" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author></entry><entry><title>Comment Spam and Blacklisting</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/07/27/199010.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/07/27/199010.aspx</id><published>2004-07-27T20:34:00Z</published><updated>2004-07-27T20:34:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Eric's “&lt;a href="http://blogs.msdn.com/ericgu/archive/2004/07/18/186824.aspx"&gt;Killing Comment Spam&lt;/a&gt;“ post and Luke Hutteman's &lt;a href="http://blogs.msdn.com/ericgu/archive/2004/07/18/186824.aspx#188767"&gt;comment&lt;/a&gt; sparked a little adventure for me.&amp;nbsp;Of course, it's not complete or very functional. It's more of a motivation piece to get something started.&amp;nbsp;I might have to jump into the&amp;nbsp;.Text source to see&amp;nbsp;about implementing some sort of plugin. I know&amp;nbsp;.Text (&lt;a href="http://www.telligentsystems.com/Solutions/Blogs/"&gt;Community Server :: Blogs&lt;/a&gt;)&amp;nbsp;is provider based so it might&amp;nbsp;be fairly easy to implement this into&amp;nbsp;the Comment Provider... if there is such a beast. Here's&amp;nbsp;a little bit&amp;nbsp;of test code that grabs the MT-BlackList from the &lt;a href="http://www.jayallen.org/comment_spam/"&gt;Comment Spam ClearingHouse&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;namespace BlackList&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class Check&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void Main(string[] args)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ArrayList expressions = new ArrayList();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expressions = BuildBlackList();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( expressions.Count &amp;gt; 0 )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (string expression in expressions)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Regex pattern = new Regex(expression, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RegexOptions.Multiline|RegexOptions.IgnoreCase);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pattern.IsMatch("01-logo.com"))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Found A Match");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pattern = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch {}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.ReadLine();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static ArrayList BuildBlackList()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // In reality this file would be local and downloaded once a &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // day. Or, if we were in a web environment we could cache it. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // But, hey, its just a demo to spark some thought.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string url = "&lt;a href="http://www.jayallen.org/comment_spam/blacklist.txt"&gt;http://www.jayallen.org/comment_spam/blacklist.txt&lt;/a&gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ArrayList expressions = new ArrayList();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WebResponse response = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WebRequest request = WebRequest.Create(url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (request != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response = request.GetResponse();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (StreamReader sr = &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;new StreamReader(response.GetResponseStream())) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String line;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((line = sr.ReadLine()) != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (line.Substring(0,1) != "#" )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expressions.Add(line);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch(Exception) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return expressions;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=199010" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author></entry><entry><title>Searching Outlook</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/07/27/198447.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/07/27/198447.aspx</id><published>2004-07-27T14:40:00Z</published><updated>2004-07-27T14:40:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I finally got around to installing &lt;/FONT&gt;&lt;A href="http://www.lookoutsoft.com/Lookout/download.html"&gt;&lt;FONT face=Verdana size=2&gt;Lookout&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;. Wow! What an amazing search tool. I don't know how I ever got&amp;nbsp;along without this killer Outlook plugin.&amp;nbsp;Looks like it uses the open source &lt;/FONT&gt;&lt;A href="http://sourceforge.net/projects/lucenedotnet/"&gt;&lt;FONT face=Verdana size=2&gt;Lucene.Net&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; search engine too.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=198447" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author><category term="Tools" scheme="http://weblogs.asp.net/markbrown/archive/tags/Tools/default.aspx" /><category term="Open Source" scheme="http://weblogs.asp.net/markbrown/archive/tags/Open+Source/default.aspx" /></entry><entry><title>Telligent Open Source Products </title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/07/16/185484.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/07/16/185484.aspx</id><published>2004-07-16T18:04:00Z</published><updated>2004-07-16T18:04:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Wow!. I have the feeling we are going to see some really cool stuff now that &lt;/FONT&gt;&lt;A href="http://www.telligentsystems.com/Solutions/OpenSource.aspx"&gt;&lt;FONT face=Verdana size=2&gt;these products&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; are under one roof.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=185484" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author></entry><entry><title>Virtual Server 2005</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/07/15/184161.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/07/15/184161.aspx</id><published>2004-07-15T15:26:00Z</published><updated>2004-07-15T15:26:00Z</updated><content type="html">&lt;P&gt;&lt;A href="http://www.microsoft.com/windowsserversystem/virtualserver/default.mspx"&gt;&lt;FONT face=Verdana size=2&gt;Virtual Server 2005&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; is in the release candidate development stage. Virtual Server allows you to run&amp;nbsp;multiple&amp;nbsp;x86-based operating systems concurrently on a single physical server.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;VM technology serves a variety of purposes. It enables hardware consolidation, because multiple operating systems can run on one computer. Key applications for VM technology include cross-platform integration as well as the following:&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;Legacy application migration. Legacy operating systems and applications can run on new hardware along with more recent operating systems and applications.&lt;/EM&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;Server consolidation. If several servers run applications that consume only a fraction of the available resources, VM technology can be used to enable them to run side by side on a single server, even if they require different versions of the operating system or middleware.&lt;/EM&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;Isolation for development, testing and technical support. Each VM acts as a separate environment, which reduces risk and enables developers to quickly recreate different operating system configurations or compare versions of applications designed for different operating systems. In addition, a developer can test an early version of an application in a VM without fear of destabilizing the system for other users.&lt;/EM&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;Software demonstrations: VM technology allows users to recreate a clean operating system environment or system configuration quickly.&lt;/EM&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;Courseware delivery and training. Organizations can configure and deploy a variety of training scenarios quickly.&lt;/EM&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;Software distribution. IT groups can deliver prevalidated configurations for complex software solutions for fast deployment.&lt;/EM&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=184161" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author></entry><entry><title>What will break?</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/07/01/171528.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/07/01/171528.aspx</id><published>2004-07-02T04:46:00Z</published><updated>2004-07-02T04:46:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Information on the&amp;nbsp;2.0 Framework Beta is everywhere. My &lt;A href="http://www.sharpreader.com"&gt;RSS reader&lt;/A&gt; is going nuts with all&amp;nbsp;the excitement. Take a look at &lt;/FONT&gt;&lt;A href="http://www.gotdotnet.com/team/changeinfo/Backwards1.1to2.0/default.aspx#00000073"&gt;&lt;FONT face=Verdana size=2&gt;Backwards Breaking Changes from version 1.1 to 2.0&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;as you start to migrate.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;FONT color=#ff0000&gt;Update&lt;/FONT&gt;: An overview of the changes can be found &lt;A href="http://www.gotdotnet.com/team/changeinfo/default.aspx"&gt;here&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=171528" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author><category term="Whidbey" scheme="http://weblogs.asp.net/markbrown/archive/tags/Whidbey/default.aspx" /></entry><entry><title>Framework 1.1 Gets a Refresh</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/07/01/171522.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/07/01/171522.aspx</id><published>2004-07-02T04:32:00Z</published><updated>2004-07-02T04:32:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&amp;#8220;Tech Previews&amp;#8220;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;NET 1.1 SP1 - A flavor for&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=da1c20ad-35ae-4cea-8451-730fcd603383&amp;amp;displaylang=en"&gt;&lt;FONT face=Verdana size=2&gt;Win2K3&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;and another for&amp;nbsp;&lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=12721880-cb9f-4481-9610-987de96532e7&amp;amp;displaylang=en"&gt;&lt;FONT face=Verdana size=2&gt;other OSes&lt;/FONT&gt;&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=171522" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author></entry><entry><title>Mono 1.0 Released</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/07/01/170826.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/07/01/170826.aspx</id><published>2004-07-01T13:13:00Z</published><updated>2004-07-01T13:13:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I need to take a&amp;nbsp;break more often...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;~~~&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;Mono includes a compiler for the C# language, an ECMA-compatible runtime engine (the Common Language Runtime, or CLR),and class libraries. The libraries include Microsoft .NET compatibility libraries (including &lt;/EM&gt;&lt;/FONT&gt;&lt;A href="http://www.mono-project.com/contributing/ado-net.html"&gt;&lt;FONT face=Verdana color=#002c99 size=2&gt;&lt;EM&gt;ADO.NET&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt; and &lt;/EM&gt;&lt;/FONT&gt;&lt;A href="http://www.mono-project.com/contributing/asp-net.html"&gt;&lt;FONT face=Verdana color=#002c99 size=2&gt;&lt;EM&gt;ASP.NET&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;EM&gt;&lt;FONT face=Verdana size=2&gt;), Mono's own and third party class libraries. Mono's runtime can be embedded into applications for simplified packaging and shipping. In addition, the Mono project offers an IDE, debugger, and documentation browser.&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;EM&gt;&lt;FONT face=Verdana size=2&gt;If you have questions about the project, read &lt;/FONT&gt;&lt;/EM&gt;&lt;A href="http://www.mono-project.com/about/rationale.html"&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;the project launch statement&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt; or visit our list of &lt;/EM&gt;&lt;/FONT&gt;&lt;A href="http://www.mono-project.com/about/faq.html"&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;Frequently Asked Questions&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;For details on the project's future direction, read the &lt;/EM&gt;&lt;/FONT&gt;&lt;A href="http://www.mono-project.com/about/mono-roadmap.html"&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;roadmap&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;, and &lt;/EM&gt;&lt;/FONT&gt;&lt;A href="http://www.mono-project.com/downloads/index.html"&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;download&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt; Mono 1.0.&lt;BR&gt;~~~&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The way &lt;A href="http://www.mono-project.com/contributing/hall.html"&gt;these guys&lt;/A&gt; move we'll have &lt;A href="http://www.mono-project.com/about/mono-roadmap.html#mono12"&gt;2.0 features&lt;/A&gt; by the end of the year. Amazing.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=170826" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author></entry><entry><title>Spying on spyware</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/06/18/159650.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/06/18/159650.aspx</id><published>2004-06-18T20:53:00Z</published><updated>2004-06-18T20:53:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Sheesh,&amp;nbsp;1 in 3 machines are infected.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&amp;#8220;Internet access provider EarthLink and security software maker &lt;/FONT&gt;&lt;A href="http://dw.com.com/redir?destUrl=http%3A%2F%2Fwww.webroot.com&amp;amp;siteId=3&amp;amp;oId=2100-7343-5236735&amp;amp;ontId=7343&amp;amp;lop=nl_ex"&gt;&lt;FONT face=Verdana size=2&gt;Webroot&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; scanned nearly 421,000 computers for their April &lt;/FONT&gt;&lt;A href="http://dw.com.com/redir?destUrl=http%3A%2F%2Fwww.earthlink.net%2Fspyaudit%2Fpress&amp;amp;siteId=3&amp;amp;oId=2100-7343-5236735&amp;amp;ontId=7343&amp;amp;lop=nl_ex"&gt;&lt;FONT face=Verdana size=2&gt;Spy Audit report&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;. Trojan horses and system monitors accounted for 133,715 pieces of the spyware found on those computers--representing almost one in three machines.&amp;#8220;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=159650" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author></entry><entry><title>Mono Beta 3 Released</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/06/16/157429.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/06/16/157429.aspx</id><published>2004-06-16T19:26:00Z</published><updated>2004-06-16T19:26:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Ug. Novell has gone ahead and released&amp;nbsp;&lt;A href="http://www.go-mono.com/Download.html"&gt;Beta 3&lt;/A&gt;&amp;nbsp;of &lt;A href="http://www.go-mono.com"&gt;mono&lt;/A&gt;. I just got&amp;nbsp;Beta&amp;nbsp;2 installed a week ago.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=157429" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author><category term="Open Source" scheme="http://weblogs.asp.net/markbrown/archive/tags/Open+Source/default.aspx" /></entry><entry><title>Scripting the XP IIS single site limitation</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/06/16/157145.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/06/16/157145.aspx</id><published>2004-06-16T14:48:00Z</published><updated>2004-06-16T14:48:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The single site limitation in&amp;nbsp;IIS on XP is frustrating.&amp;nbsp;Since I can't have more then one site on the box, I needed a way to quickly change the Home Directory of the root web. To satisfy my need I came up with this little script.&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face="Courier New"&gt;' setw3.vbs&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;Dim objArgs&lt;BR&gt;Set objArgs = WScript.Arguments&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face="Courier New"&gt;If objArgs.Length = 0 Then&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp; ' Use the current patch&lt;BR&gt;&amp;nbsp; Set WshShell=WScript.CreateObject("WScript.Shell")&lt;BR&gt;&amp;nbsp; Set fs = CreateObject("Scripting.FileSystemObject")&lt;BR&gt;&amp;nbsp; currentPath = fs.GetAbsolutePathName(".\")&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face="Courier New"&gt;Else&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp; currentPath = objArgs.Item(0)&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;End If&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face="Courier New"&gt;Set IISObject = GetObject("IIS://LocalHost/w3svc/1/Root")&lt;BR&gt;IISObject.Path = currentPath&lt;BR&gt;IISObject.Setinfo&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I put this script in my path and can call it from the command line or a batch file.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;For example:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;FONT face="Courier New"&gt;w3set &amp;#8220;e:\dev\project1&amp;#8220;&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;or a batch file sitting on my Desktop&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;cd /D e:\dev\project1&lt;BR&gt;w3set&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=157145" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author><category term="Tools" scheme="http://weblogs.asp.net/markbrown/archive/tags/Tools/default.aspx" /></entry><entry><title>Unit Testing in all VS 2005 Versions</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/06/14/155234.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/06/14/155234.aspx</id><published>2004-06-14T16:54:00Z</published><updated>2004-06-14T16:54:00Z</updated><content type="html">&lt;P&gt;&lt;A href="http://scottwater.com/blog/archive/2004/06/13/VS2005UnitTestingForAll.aspx"&gt;&lt;FONT face=Verdana size=2&gt;I agree with Scott&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;&amp;#8220;Unit Testing support should be included with all versions of Visual Studio 2005 and not just with Team System.&amp;#8220;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I've been&amp;nbsp;wondering why this was only available in the Team System.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Here's &lt;/FONT&gt;&lt;A href="http://www.peterprovost.org/"&gt;&lt;FONT face=Verdana color=#002c99 size=2&gt;Peter Provost's&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;A href="http://www.peterprovost.org/archive/2004/06/12/1379.aspx"&gt;&lt;FONT face=Verdana color=#002c99 size=2&gt;origianl post&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=155234" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author><category term="Whidbey" scheme="http://weblogs.asp.net/markbrown/archive/tags/Whidbey/default.aspx" /></entry><entry><title>Integrate NUnit into the IDE</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/06/11/153645.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/06/11/153645.aspx</id><published>2004-06-11T16:33:00Z</published><updated>2004-06-11T16:33:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;As I've mentioned before I've been jumping into NUnit more and more lately. I just found this little gem to integrate NUnit&amp;nbsp;and the IDE.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&amp;#8220;TestRunner seamlessly integrates NUnit testing and debugging into a compact Visual Studio .NET 2003 add-in.&amp;#8220;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.mailframe.net/Products/TestRunner.htm"&gt;&lt;FONT face=Verdana size=2&gt;http://www.mailframe.net/Products/TestRunner.htm&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;PRE style="COLOR: #000000"&gt;&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;1&lt;/SPAN&gt;&lt;FONT color=#0000ff&gt;using&lt;/FONT&gt; System;
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;2&lt;/SPAN&gt;&lt;FONT color=#0000ff&gt;using&lt;/FONT&gt; NUnit.Framework;
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;3&lt;/SPAN&gt;
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;4&lt;/SPAN&gt;&lt;FONT color=#0000ff&gt;namespace&lt;/FONT&gt; TestRunner
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;5&lt;/SPAN&gt;{
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;6&lt;/SPAN&gt; &lt;FONT color=#0000ff&gt;public&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;class&lt;/FONT&gt; Library
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;7&lt;/SPAN&gt; {
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;8&lt;/SPAN&gt;  &lt;FONT color=#0000ff&gt;public&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;static&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;string&lt;/FONT&gt; HelloWorld()
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;9&lt;/SPAN&gt;  {
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;10&lt;/SPAN&gt;   &lt;FONT color=#0000ff&gt;return&lt;/FONT&gt; &lt;FONT color=#004884&gt;"Hello World!"&lt;/FONT&gt;;
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;11&lt;/SPAN&gt;  }
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;12&lt;/SPAN&gt; }
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;13&lt;/SPAN&gt;
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;14&lt;/SPAN&gt; [TestFixture]
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;15&lt;/SPAN&gt; &lt;FONT color=#0000ff&gt;public&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;class&lt;/FONT&gt; UnitTest
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;16&lt;/SPAN&gt; {
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;17&lt;/SPAN&gt;  [Test]
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;18&lt;/SPAN&gt;  &lt;FONT color=#0000ff&gt;public&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;void&lt;/FONT&gt; TestEqual()
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;19&lt;/SPAN&gt;  {
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;20&lt;/SPAN&gt;   &lt;FONT color=#0000ff&gt;string&lt;/FONT&gt; TestString = Library.HelloWorld();
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;21&lt;/SPAN&gt;   Assert.AreEqual(&lt;FONT color=#004884&gt;"Hello World!"&lt;/FONT&gt;, TestString );
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;22&lt;/SPAN&gt;  }
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;23&lt;/SPAN&gt; }
&lt;BR&gt;&lt;SPAN style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right"&gt;24&lt;/SPAN&gt;}
&lt;BR&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=153645" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author><category term="Tools" scheme="http://weblogs.asp.net/markbrown/archive/tags/Tools/default.aspx" /></entry><entry><title>Microsoft Security Updates via RSS</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/06/10/152715.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/06/10/152715.aspx</id><published>2004-06-10T22:05:00Z</published><updated>2004-06-10T22:05:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;"&lt;A 
href="http://www.microsoft.com/technet/security/bulletin/secrssinfo.mspx"&gt;TechNet&lt;/A&gt; 
is now providing an RSS (Really Simple Syndication) Feed for its Security 
Bulletins, with more RSS content for IT pros on the way in the months ahead. RSS 
feeds deliver new content to you on the topics you are interested 
in."&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A 
href="http://www.microsoft.com/technet/security/bulletin/secrss.aspx"&gt;&lt;FONT 
face=Verdana 
size=2&gt;http://www.microsoft.com/technet/security/bulletin/secrss.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=152715" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author></entry><entry><title>Windows XP Service Pack 2</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/markbrown/archive/2004/06/10/152618.aspx" /><id>http://weblogs.asp.net/markbrown/archive/2004/06/10/152618.aspx</id><published>2004-06-10T20:08:00Z</published><updated>2004-06-10T20:08:00Z</updated><content type="html">&lt;FONT face=Verdana size=2&gt;
&lt;DIV&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;SPAN class=576390314-10062004&gt;Everyone who develops applications for the web needs to start thinking about the upcoming release of&amp;nbsp;this service pack. Read &amp;nbsp;&lt;A href="http://msdn.microsoft.com/asp.net/using/understanding/security/default.aspx?pull=/library/en-us/dnwxp/html/xpsp2websites.asp"&gt;How to Make Your Web Site Work with Windows XP Service Pack 2&lt;/A&gt;.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=152618" width="1" height="1"&gt;</content><author><name>markbrown</name><uri>http://weblogs.asp.net/members/markbrown.aspx</uri></author></entry></feed>
