<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Lance Ahlberg's WebLog</title><link>http://weblogs.asp.net/lancea/default.aspx</link><description>Reflection on reason</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Binding the GridView control to a complex (deep) business object </title><link>http://weblogs.asp.net/lancea/archive/2004/08/04/207770.aspx</link><pubDate>Wed, 04 Aug 2004 08:10:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:207770</guid><dc:creator>lancea</dc:creator><author>lancea</author><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lancea/rsscomments.aspx?PostID=207770</wfw:commentRss><comments>http://weblogs.asp.net/lancea/archive/2004/08/04/207770.aspx#comments</comments><description>&lt;P&gt;MSDN Magazine features a new ASP.NET 2.0 Grid control called GridView.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/msdnmag/issues/04/08/GridView/default.aspx"&gt;http://msdn.microsoft.com/msdnmag/issues/04/08/GridView/default.aspx&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;I have been working with this control in conjunction with an ObjectDataSource in order to display data directly from a domain object.&amp;nbsp; The GridView in combination with the DataObjectSource allows me to pursue an object driven design in my applications.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;I&amp;nbsp;initially setup the GridView in design mode with Bound Fields.&amp;nbsp;&amp;nbsp;To add the bound fields,&amp;nbsp;I used the field dialog, accessible by clicking on the expand button on the Columns&amp;nbsp;property of the gridView.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;This worked fine so long as the domain object that was linked to the ObjectDataSource was &amp;#8220;flat&amp;#8221;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;So if I had a class...&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public OrderItem&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;private string productName;&lt;BR&gt;&amp;nbsp;public string ProductName&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;get&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return productName;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;set&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;productName = value;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;}&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;private int orderQuantity;&lt;BR&gt;&amp;nbsp;public int OrderQuantity;&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;get&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return orderQuantity;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;set&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;orderQuantity = value;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;}&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;private decimal productPrice;&lt;BR&gt;&amp;nbsp;public decimal ProductPrice;&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;get&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return productPrice;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;set&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;productPrice = value;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;public OrderItem()&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;productName ="";&lt;BR&gt;&amp;nbsp;&amp;nbsp;orderQuantity = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;productPrice = 0.00M;&lt;BR&gt;&amp;nbsp;}&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;}&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;I can then set the BoundFields DataField property to the OrderItem object properties&amp;nbsp;&amp;nbsp;ie ProductName, OrderQuantity, or ProductPrice.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;But what happens when I have a domain object that is composed of other referenced objects...&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public Product&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;private string name;&lt;BR&gt;&amp;nbsp;public string Name&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;get&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return name;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;set&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;name = value;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;}&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;private decimal price;&lt;BR&gt;&amp;nbsp;public decimal Price;&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;get&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return price;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;set&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;price = value;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;public Product()&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;name ="";&lt;BR&gt;&amp;nbsp;&amp;nbsp;price = 0.00M;&lt;BR&gt;&amp;nbsp;}&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;}&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public OrderItem&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;private Product associatedProduct;&lt;BR&gt;&amp;nbsp;public Product AssociatedProduct&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;get&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return associatedProduct;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;set&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;associatedProduct= value;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;}&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;private int orderQuantity;&lt;BR&gt;&amp;nbsp;public int OrderQuantity;&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;get&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return orderQuantity;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;set&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;orderQuantity = value;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;}&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;public OrderItem()&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;associatedProduct=null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;orderQuantity = 0;&lt;BR&gt;&amp;nbsp;}&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;}&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;Now when I set the BoundFields DataField property to the Products properties via the OrderItems AssociatedProduct property ie AssociatedProduct.Name or AssociatedProduct.Price the bound field displays a nothing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;In order to get this to work I had to use a TemplateField instead of a BoundField.&amp;nbsp;The field dialog&amp;nbsp;has a nifty link button that can be used to convert the BoundField to a TemplateField.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;All I had to do was create a bound field with a DataField property of AssociatedProduct.Name and then press the &amp;#8220;Convert this field into a Template Field&amp;#8220; button and presto the product name was now displaying.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;Magic I say..&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=207770" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lancea/archive/tags/Visual+Studio+.Net/default.aspx">Visual Studio .Net</category></item><item><title>Reflecting on generic types</title><link>http://weblogs.asp.net/lancea/archive/2004/06/01/146202.aspx</link><pubDate>Wed, 02 Jun 2004 01:29:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:146202</guid><dc:creator>lancea</dc:creator><author>lancea</author><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lancea/rsscomments.aspx?PostID=146202</wfw:commentRss><comments>http://weblogs.asp.net/lancea/archive/2004/06/01/146202.aspx#comments</comments><description>&lt;P&gt;I've recently been having fun trying to get the type of a generic list&amp;nbsp;using reflection.&lt;/P&gt;
&lt;P&gt;The VS2005 MSDN doco suggests trying something like..&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;Type&amp;nbsp;classType = Type.GetType(&amp;#8220;System.Collections.Generic.List[[System.String,Mscorlib]],Mscorlib&amp;#8220;,true);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;I kept getting a a TypeLoadException : Could not load type 'System.Collections.Generic.List' from assembly mscorlib.&lt;/P&gt;
&lt;P&gt;After a bit of deliberating, I decided to try the following..&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;System.Collections.Generic.List&amp;lt;String&amp;gt; stringList = new System.Collections.Generic.List&amp;lt;String&amp;gt;();&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;Type&amp;nbsp;classType = stringList.GetType();&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;Console.WriteLine(classType.ToString());&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;Guess what I got...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000080&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;System.Collections.Generic.List`1[System.String]&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;So what is this `1 about, it seems to be added to generic classes.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;From a bit more investigation it seems to represent the number of generic parameters (dimensions) associated with the class, so Dictionary is Dictionary`2.&amp;nbsp; While a generic class like MyGeneric&amp;lt;A,B,C,D,E&amp;gt; is actual MyGeneric`5.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=146202" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lancea/archive/tags/Visual+Studio+.Net/default.aspx">Visual Studio .Net</category></item><item><title>Argument Exception - Absolute path information required with NUnit</title><link>http://weblogs.asp.net/lancea/archive/2004/05/28/143645.aspx</link><pubDate>Fri, 28 May 2004 08:08:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:143645</guid><dc:creator>lancea</dc:creator><author>lancea</author><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lancea/rsscomments.aspx?PostID=143645</wfw:commentRss><comments>http://weblogs.asp.net/lancea/archive/2004/05/28/143645.aspx#comments</comments><description>&lt;P&gt;I have been getting an argument exception with details &amp;#8220;Absolute path information required&amp;#8221;, this exception was happening when I was running Tests with Nunit.&lt;/P&gt;
&lt;P&gt;After almost pulling my hair out the problem was found, Environment variables....&lt;/P&gt;
&lt;P&gt;Nunit caches the assemblies that are being tested in the temp directory, and uses the TEMP environment variable.&amp;nbsp; Of course my TEMP environment variable was a relative path.&lt;/P&gt;
&lt;P&gt;So the moral is, if you see Absolute path information is required take a look at your environment variables and ensure that they are absolute.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=143645" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lancea/archive/tags/Software+development+Methodology/default.aspx">Software development Methodology</category></item><item><title>More on getting NUnitAsp LinkButtonTester to work with VS2005</title><link>http://weblogs.asp.net/lancea/archive/2004/05/12/130250.aspx</link><pubDate>Wed, 12 May 2004 04:55:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:130250</guid><dc:creator>lancea</dc:creator><author>lancea</author><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lancea/rsscomments.aspx?PostID=130250</wfw:commentRss><comments>http://weblogs.asp.net/lancea/archive/2004/05/12/130250.aspx#comments</comments><description>&lt;P&gt;More on getting Nunitasp working with VS2005.&amp;nbsp; I have been having a problem with the LinkButtonTester, and it turns out that ASP.NET 2.0 doesn't like having &amp;#8220;NunitAsp&amp;#8221; as the Http Request UserAgent setting.&amp;nbsp;&amp;nbsp; When I set the UserAgent to be Mozilla/4.0 the page was rendered correctly.&lt;/P&gt;
&lt;P&gt;So if you are have problems with LinkButtonTester make sure you include the following in your test or test fixture setup..&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;Browser.UserAgent = "Mozilla/4.0";&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;
&lt;HR id=null&gt;
I have recently encountered another issue with the LinkButtonTester.&amp;nbsp;I had a page with a LinkButton, TextBox, and Field Validator.&amp;nbsp; The rendered page used a different javascript function called &lt;/P&gt;
&lt;P&gt;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&amp;#8220;test&amp;#8220;,&amp;#8220;&amp;#8220;,true,))&lt;BR&gt;&lt;BR&gt;The LinkButtonTester didn't like this at all raising&amp;nbsp;a parse exception.&lt;/P&gt;
&lt;P&gt;It turns out that in ASP.NET 2.0 validation is also&amp;nbsp;performed client side using various javascripts, and when a linkbutton is clicked it triggers the client side validation to occur.&lt;/P&gt;
&lt;P&gt;So in order to turn off this behaviour and return to the old __doPostBack function I set the LinkButton's CausesValidation property to false.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=130250" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lancea/archive/tags/Software+development+Methodology/default.aspx">Software development Methodology</category><category domain="http://weblogs.asp.net/lancea/archive/tags/Visual+Studio+.Net/default.aspx">Visual Studio .Net</category></item><item><title>Getting NunitAsp LinkButtonTester working with ASP.NET 2.0 (Whidbey Alpha Community Edition)</title><link>http://weblogs.asp.net/lancea/archive/2004/05/06/126991.aspx</link><pubDate>Thu, 06 May 2004 06:31:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:126991</guid><dc:creator>lancea</dc:creator><author>lancea</author><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lancea/rsscomments.aspx?PostID=126991</wfw:commentRss><comments>http://weblogs.asp.net/lancea/archive/2004/05/06/126991.aspx#comments</comments><description>&lt;P&gt;I have recently been investigating a exception raised when I call the click method of the LinkButtonTester within NunitASP.&lt;/P&gt;
&lt;P&gt;This wasn working fine with ASP.NET 1.1 but is now broken with ASP.NET 2.0.&lt;/P&gt;
&lt;P&gt;I debugged the operation of Nunit to see what was causing the exception and used a simple scenario with a aspx page with a link button.&lt;/P&gt;
&lt;P&gt;It turns out that the server was not emitting the __EVENTTARGET and __EVENTARGUMENT fields or the __doPostBack script, even though the anchor was still referencing the script.&lt;/P&gt;
&lt;P&gt;When I call the page via Internet Explorer, the page was emitting correctly.&lt;/P&gt;
&lt;P&gt;I can only assume that ASP.NET 2.0&amp;nbsp;is expecting something in the HTTP Request that NunitAsp is not currently providing.&lt;/P&gt;
&lt;P&gt;Does anyone have an ideas on this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=126991" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lancea/archive/tags/Software+development+Methodology/default.aspx">Software development Methodology</category><category domain="http://weblogs.asp.net/lancea/archive/tags/Visual+Studio+.Net/default.aspx">Visual Studio .Net</category></item><item><title>My presentation on CVS</title><link>http://weblogs.asp.net/lancea/archive/2004/03/28/100804.aspx</link><pubDate>Sun, 28 Mar 2004 22:58:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:100804</guid><dc:creator>lancea</dc:creator><author>lancea</author><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lancea/rsscomments.aspx?PostID=100804</wfw:commentRss><comments>http://weblogs.asp.net/lancea/archive/2004/03/28/100804.aspx#comments</comments><description>&lt;P&gt;I was lucky enough to have the opportunity to conduct a presentation on CVS at the Melbourne Dot net user group.&lt;/P&gt;
&lt;P&gt;This experience has given me alot of valuable experience, I have decided to keep jumping in head first a get involved in more of this community activity. &lt;/P&gt;
&lt;P&gt;If I had the opportunity to another presentation on CVS, I would start with a clean system and demonstrate how easy it is to setup a CVS server, Client, and then add a repository.&lt;/P&gt;
&lt;P&gt;The other thing I found was that my knowledge of CVS was increased from audience questions and comments.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=100804" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lancea/archive/tags/Team+Environment/default.aspx">Team Environment</category></item><item><title>Instant gratification</title><link>http://weblogs.asp.net/lancea/archive/2004/03/15/90156.aspx</link><pubDate>Tue, 16 Mar 2004 01:49:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:90156</guid><dc:creator>lancea</dc:creator><author>lancea</author><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lancea/rsscomments.aspx?PostID=90156</wfw:commentRss><comments>http://weblogs.asp.net/lancea/archive/2004/03/15/90156.aspx#comments</comments><description>&lt;P&gt;My first post to this&amp;nbsp;great blog framework (thanks Scott for all the effort behind this) is really to get that instant&amp;nbsp;gratification of getting something working.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=90156" width="1" height="1"&gt;</description></item></channel></rss>