<?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>Chris McKenzie&amp;#39;s Blog</title><link>http://weblogs.asp.net/taganov/default.aspx</link><description>Adventures in .NET</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Wiki's as Help documentation.</title><link>http://weblogs.asp.net/taganov/archive/2006/09/12/Wiki_2700_s-as-Help-documentation_2E00_.aspx</link><pubDate>Tue, 12 Sep 2006 22:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:538523</guid><dc:creator>taganov</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=538523</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2006/09/12/Wiki_2700_s-as-Help-documentation_2E00_.aspx#comments</comments><description>A friend of mine showed me &lt;a href="http://weblogs.asp.net/controlpanel/blogs/www.tiddlywiki.com" target="_blank" title="tiddlywiki"&gt;tiddlywiki&lt;/a&gt; last night, which is a light-weight wiki application written in html, javascript, and css. It&amp;#39;s surprisingly full-featured given its small size. I played around with it a little today to see what I could do with it and was very pleased. It got me thinking about using something like tiddlywiki as a help file. The problem I have with help-files today is that they are difficult to cross-reference, or to see to related but separate topics together in one place. Tiddlywiki solves both of those problems. You can have any number of topics related by whatever synaptic connections you fancy pulled together on one page. Another advantage of using a wiki as a help document is editing: the user could add their own comments and notes to existing topics. I haven&amp;#39;t seen any other help documentation that allows that.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=538523" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>I'm not a DBA</title><link>http://weblogs.asp.net/taganov/archive/2006/04/25/443972.aspx</link><pubDate>Tue, 25 Apr 2006 19:36:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:443972</guid><dc:creator>taganov</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=443972</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2006/04/25/443972.aspx#comments</comments><description>&lt;p&gt;But in my job I have to wear the DBA hat quite often. I was having a problem today where a query that returns 200 rows was taking 16 seconds to return to my application. The same query run in Query Analyzer came back in .47 seconds. Huh?&lt;/p&gt; &lt;p&gt;One of my co-workers suggested that I run a stored procedure "sp_updateStats" against my database. That fixed the problem. I'm putting this here for future reference, and in case anyone else runs into the same issue. I also added a DBMaintenance object to my application class so that I can update statistics whenever the need arises.&lt;/p&gt; &lt;p&gt;Cheers!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=443972" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/ASP+.NET/default.aspx">ASP .NET</category><category domain="http://weblogs.asp.net/taganov/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://weblogs.asp.net/taganov/archive/tags/SQL+Server+2000/default.aspx">SQL Server 2000</category><category domain="http://weblogs.asp.net/taganov/archive/tags/Windows+Forms/default.aspx">Windows Forms</category></item><item><title>Here's a question</title><link>http://weblogs.asp.net/taganov/archive/2006/04/17/443128.aspx</link><pubDate>Mon, 17 Apr 2006 21:09:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:443128</guid><dc:creator>taganov</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=443128</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2006/04/17/443128.aspx#comments</comments><description>&lt;p&gt;I've been practicting Test Driven Development pretty religiously for about a year now. That and the reading I've done on design patterns and software architecture have dramatically improved my software design and quality. I've got an automated build server set up as well.&lt;/p&gt; &lt;p&gt;That said, I need to print a Reporting Services report directly to the printer. I have code that works, but I haven't been able to figure out how to write a unit test for this that can be executed by the build server. I don't want the build server to send the report to an in-house printer everytime it runs. I'd much rather print it to a file, but a file printer asks for user input (the file name).&lt;/p&gt; &lt;p&gt;Any ideas?&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=443128" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/Visual+Studio+Tools+for+Office+_2800_VSTO_2900_/default.aspx">Visual Studio Tools for Office (VSTO)</category><category domain="http://weblogs.asp.net/taganov/archive/tags/Test+Driven+Development+_2800_TDD_2900_/default.aspx">Test Driven Development (TDD)</category></item><item><title>Interesting article from Joel on Software</title><link>http://weblogs.asp.net/taganov/archive/2006/04/12/442641.aspx</link><pubDate>Wed, 12 Apr 2006 12:08:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:442641</guid><dc:creator>taganov</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=442641</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2006/04/12/442641.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://www.joelonsoftware.com/articles/DevelopmentAbstraction.html"&gt;http://www.joelonsoftware.com/articles/DevelopmentAbstraction.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I"ll blog more about this later. For the past few months I've been immersed in the project I'm working on. (Deep breath) Guess I should get back to it now :-)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=442641" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category></item><item><title>Humor for Agile Developers</title><link>http://weblogs.asp.net/taganov/archive/2006/02/06/437543.aspx</link><pubDate>Mon, 06 Feb 2006 19:19:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:437543</guid><dc:creator>taganov</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=437543</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2006/02/06/437543.aspx#comments</comments><description>&lt;p&gt;Especially funny to me is wordUnit!&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.waterfall2006.com/"&gt;http://www.waterfall2006.com/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=437543" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://weblogs.asp.net/taganov/archive/tags/Design+Patterns/default.aspx">Design Patterns</category><category domain="http://weblogs.asp.net/taganov/archive/tags/Test+Driven+Development+_2800_TDD_2900_/default.aspx">Test Driven Development (TDD)</category></item><item><title>Accounting Patterns From Martin Fowler</title><link>http://weblogs.asp.net/taganov/archive/2006/01/26/436512.aspx</link><pubDate>Thu, 26 Jan 2006 13:23:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:436512</guid><dc:creator>taganov</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=436512</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2006/01/26/436512.aspx#comments</comments><description>&lt;p&gt;I had been looking for some accounting patterns about 5 months ago for a project I've nearly completed now. This morning I came accross Martin Fowler's &lt;a href="http://martinfowler.com/eaaDev/"&gt;Development of Further Patterns of Enterprise Application Architecture&lt;/a&gt;. I was delighted to find that the solution I came up with for entry, account, and transaction was very similar to the patterns described here. I can say from experience now that these solutions are good. I'd like to recommend them to anyone else needing to provide accounting solutions.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=436512" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/Design+Patterns/default.aspx">Design Patterns</category></item><item><title>Visual Studio 2005 Launch Event</title><link>http://weblogs.asp.net/taganov/archive/2005/11/28/431686.aspx</link><pubDate>Mon, 28 Nov 2005 13:30:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:431686</guid><dc:creator>taganov</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=431686</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2005/11/28/431686.aspx#comments</comments><description>&lt;p&gt;I'm off tomorrow to the VS 2005 Launch Event in Atlanta!&amp;nbsp; I've got a buddy that would like to go, but registration's closed. Does anyone have a ticket that they're not going to use?&lt;/p&gt; &lt;p&gt;I haven't had much time to delve into VS 2005 yet, so I'm really looking forward to the presentations!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=431686" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/ASP+.NET/default.aspx">ASP .NET</category><category domain="http://weblogs.asp.net/taganov/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://weblogs.asp.net/taganov/archive/tags/Visual+Studio+.NET+IDE/default.aspx">Visual Studio .NET IDE</category></item><item><title>A Visual Studio Bug</title><link>http://weblogs.asp.net/taganov/archive/2005/10/11/427247.aspx</link><pubDate>Tue, 11 Oct 2005 16:18:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:427247</guid><dc:creator>taganov</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=427247</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2005/10/11/427247.aspx#comments</comments><description>&lt;p&gt;I found a weird bug related to attempting to add an inherited control to a VS .NET project. Here are the steps to reproduce:&lt;/p&gt; &lt;p&gt;&lt;br /&gt;Here's how to recreate it in Visual Studion .NET 2003 using VB .NET:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Create a new solution. &lt;li&gt;Add a ClassLibrary project called ClassLibrary1. &lt;li&gt;Add a ClassLibrary project called ClassLibrary2 &lt;li&gt;Add a WIndows Control project called WindowsControlLibrary1. &lt;li&gt;In ClassLibrary2, add an interface called IParameter. &lt;li&gt;In ClassLibrary1, add an interface called ITest. &lt;li&gt;Add a single method to ITest: "Sub TestRoutine(obj as IParameter)" &lt;li&gt;In the WindowsControlLibrary1 project, add a usercontrol called UserControl1. &lt;li&gt;Go ahead and compile the program, and prove that you can "add an inherited control" and that the inheritance picker successfully findes UserControl1 and adds it to the dialog. &lt;li&gt;In UserControl1, implement ITest. You don't need any code in the method; just include the stub. &lt;li&gt;Now, recompile, and try to "add an inherited control" again. &lt;li&gt;See the error: &lt;li&gt;---------------------------&lt;br /&gt;Assembly Load Error&lt;br /&gt;---------------------------&lt;br /&gt;Unable to load assembly '&amp;lt;path&amp;gt;\WindowsControlLibrary1.dll'.&amp;nbsp; Ensure that the file is a valid .Net Framework assembly.&lt;br /&gt;---------------------------&lt;br /&gt;OK&amp;nbsp;&amp;nbsp; &lt;br /&gt;---------------------------&lt;br /&gt; &lt;li&gt;Now, if you move ITest to the Control Library or to ClassLibrary2, it will succeed again :-) &lt;li&gt;Interestingly enough, if you change ITest.TestRoutine(obj as IParameter) to ITest.TestRoutine(), the inheritance picker will work again.&amp;nbsp; &lt;li&gt;Also, if ITest.TestRoutine() is a function that returns type IParameter, the same problem will occur.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&amp;lt;Code&amp;gt;&lt;/p&gt; &lt;p&gt;ClassLibrary1&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;Public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Interface&lt;/font&gt;&lt;font size="2"&gt; ITest&lt;/p&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Function&lt;/font&gt;&lt;font size="2"&gt; Test() &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; ClassLibrary2.IParameter&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;'Sub TestRoutine(ByVal&amp;nbsp;obj As ClassLibrary2.IParameter) ' Fails&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;'Sub TestRoutine() ' Passes&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Interface&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000" size="3"&gt;ClassLibrary2&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000" size="3"&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;Public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Interface&lt;/font&gt;&lt;font size="2"&gt; IParameter&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Interface&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000" size="3"&gt;WindowsControlLibrary1&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000" size="3"&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;Public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Class&lt;/font&gt;&lt;font size="2"&gt; UserControl1&lt;/p&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Inherits&lt;/font&gt;&lt;font size="2"&gt; UserControl&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Implements&lt;/font&gt;&lt;font size="2"&gt; ITest&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;'WINDOWS FORMS DESIGNER GENERATED CODE&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;'Public Sub TestRoutine(ByVal&amp;nbsp;obj As ClassLibrary2.IParameter) Implements ITest.TestRoutine&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' ' fails&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;'End Sub&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Function&lt;/font&gt;&lt;font size="2"&gt; Test() &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; IParameter &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Implements&lt;/font&gt;&lt;font size="2"&gt; ITest.Test&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' fails&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Function&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;'Public Sub TestRoutine() Implements ClassLibrary1.ITest.TestRoutine&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' ' Passes&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;'End Sub&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Class&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&amp;lt;/Code&amp;gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=427247" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category></item><item><title>Visual Studio 2005 Launch Event</title><link>http://weblogs.asp.net/taganov/archive/2005/09/22/425786.aspx</link><pubDate>Thu, 22 Sep 2005 12:46:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:425786</guid><dc:creator>taganov</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=425786</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2005/09/22/425786.aspx#comments</comments><description>Hat's off to &lt;A href="http://weblogs.asp.net/christoc/archive/2005/09/21/425741.aspx"&gt;Chris Hammond&lt;/a&gt; for making public the Visual Studio 2005 Launch Event. I'll be going to the one in Atlanta.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=425786" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/ASP+.NET/default.aspx">ASP .NET</category><category domain="http://weblogs.asp.net/taganov/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://weblogs.asp.net/taganov/archive/tags/SQL+Server+2000/default.aspx">SQL Server 2000</category><category domain="http://weblogs.asp.net/taganov/archive/tags/Visual+Studio+.NET+IDE/default.aspx">Visual Studio .NET IDE</category></item><item><title>Solution to strange "Trusted Connection" error.</title><link>http://weblogs.asp.net/taganov/archive/2005/09/14/425193.aspx</link><pubDate>Wed, 14 Sep 2005 15:49:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:425193</guid><dc:creator>taganov</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=425193</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2005/09/14/425193.aspx#comments</comments><description>&lt;p&gt;I was having trouble connecting to a remote SQL Server instance using Windows Authentication. I was getting the apparently famous "Not a Trusted Connection" error, (apparently famous because of the number of results google turned up) but none of the standard solutions such as allowing mixed-mode authentication in SQL Server were the culprit.&lt;/p&gt; &lt;p&gt;My problem was further compounded by the fact that I could log in to this server using NT Authentication from &lt;em&gt;any other machine in the domain&lt;/em&gt;.&amp;nbsp; The issue was specific to my development computer--not my domain account or any other setup issue with SQL Server.&lt;/p&gt; &lt;p&gt;My network admin did some research on the problem and discovered a that Windows XP (my development OS) stores some login credentials in a local cache, and that that cache can sometimes be corrupted, or out of sync with the rest of the domain. A quick search of the event viewer revealed that I was getting Kerberos exceptions when attempting a connection to that server. The Event Viewer showed the following message:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;"There were password errors using the Credential Manager. To remedy, launch the Stored User Names and Passwords control panel applet, and reenter the password for the credential ********."&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;A quick perusal of the control panel revealed no such tool (not sure why it wasn't there--but it wasn't).&lt;/p&gt; &lt;p&gt;I found &lt;a href="http://www.tweakxp.com/article37352.aspx"&gt;this article&lt;/a&gt; to tell how to run the tool. I modified the password stored in XP, and then I was able to access the server from my development machine.&lt;/p&gt; &lt;p&gt;Kudos to my network admin who found this obscure networking issue!&lt;/p&gt;&lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=425193" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://weblogs.asp.net/taganov/archive/tags/SQL+Server+2000/default.aspx">SQL Server 2000</category></item><item><title>I found this one by accident.</title><link>http://weblogs.asp.net/taganov/archive/2005/08/24/423560.aspx</link><pubDate>Wed, 24 Aug 2005 13:32:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:423560</guid><dc:creator>taganov</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=423560</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2005/08/24/423560.aspx#comments</comments><description>&lt;p&gt;I was illustrating TextBox Extender component that I had developed that automatically validates any TextBox on a form. I enterd "123" the TextBox and all was right with the world. I added ".-" in an attempt to make it non-numeric, when I got an application exception. Investigation revealed the following:&lt;/p&gt; &lt;p&gt;IsNumeric("123.-") ' Returns True&lt;/p&gt; &lt;p&gt;IsNumeric("123.+") ' Returns True&lt;/p&gt; &lt;p&gt;IsNumeric("123.*") ' Returns False&lt;/p&gt; &lt;p&gt;IsNumeric("123./") ' Returns False&lt;/p&gt; &lt;p&gt;Double.Parse("[Any of the above Combinations]") ' Returns System.FormatException&lt;/p&gt; &lt;p&gt;Is this a bug in the Framework? Or is there something I'm missing? &lt;/p&gt; &lt;p&gt; &lt;hr id="null" /&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;CDbl("123.-") ' Returns -123.0&lt;/p&gt; &lt;p&gt;CType("123.-", Double) ' Returns -123.0&lt;/p&gt; &lt;p&gt;This is really interesting. The default implementation of Double.Parse() is not the same as simply casting the string to a double.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=423560" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/ASP+.NET/default.aspx">ASP .NET</category><category domain="http://weblogs.asp.net/taganov/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category></item><item><title>Nested Triggers</title><link>http://weblogs.asp.net/taganov/archive/2005/08/24/423551.aspx</link><pubDate>Wed, 24 Aug 2005 12:26:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:423551</guid><dc:creator>taganov</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=423551</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2005/08/24/423551.aspx#comments</comments><description>&lt;p&gt;Yesterday a co-worker and I were having a SQL problem. We were in a circumstance where we wanted two distinct UPDATE triggers to fire on the same table. We could have put all of the trigger code into a single trigger, but the exisiting SQL was already lengthy and complex enough. We thought we'd achieve some clarity by putting the new (unrelated) SQL in a separate trigger.&lt;/p&gt; &lt;p&gt;We encountered an issue though where an UPDATE caused Trigger1 to fire, which in turn caused Trigger2 to fire. When Trigger1 returned, then Trigger2 fired again. After trying all manner of different ways of trying to prevent this cascade effect, I found &lt;a href="http://www.sqlservercentral.com/columnists/bkelley/triggers_1.asp"&gt;this article&lt;/a&gt; (requires sqlservercentral.com membership) and this SQL:&lt;/p&gt; &lt;p&gt;EXEC sp_configure 'nested triggers', 0&lt;br /&gt;GO&lt;/p&gt; &lt;p&gt;RECONFIGURE&lt;br /&gt;GO&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=423551" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/SQL+Server+2000/default.aspx">SQL Server 2000</category></item><item><title>Issue with Adobe</title><link>http://weblogs.asp.net/taganov/archive/2005/08/11/422283.aspx</link><pubDate>Thu, 11 Aug 2005 18:17:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:422283</guid><dc:creator>taganov</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=422283</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2005/08/11/422283.aspx#comments</comments><description>&lt;p&gt;I was trying to test the PDF export generated by Sql Server Reporting Services, but I couldn't get the pdf documents to open. It wasn't just the pdf documents generated by reporting services--I couldn't open any pdf at all.&amp;nbsp; I tried the uninstall/reinstall of Adobe route, but to no avail. This in fact exacerbated my problems. Now everytime I attempted to open Acrobat, Adobe started using 95% of my processor power and wouldn't let go. It still wouldn't open my document&lt;/p&gt; &lt;p&gt;A quick google didn't really bring anything up. Most tips I found involved reading large files (my pdf file was 57kb in size). I tried to go to the Adobe site itself, but something on their site seems to start the Adobe browser plug-in--which of course started eating 95-100% of my processing power right away. I had to uninstall adobe just to use the Adobe web site to find out what my problem was.&lt;/p&gt; &lt;p&gt;I found the solution, albeit in an oblique way. Apparently Adobe generates a lot of temp files and doesn't always clean them up.&amp;nbsp;I found an article on the Adobe Forums that suggested navigating to the root directory and running "del Acr*.tmp /s".&amp;nbsp; Boy was I in for a surprise. Almost immediately the command-line staring filling up with messages that Acr0000.tmp was deleted--and it went all the way up to AcrFFFF.tmp. Wow. So, after deleting the more than 65000 temp files that Adobe had created, I was finally able to open my pdf files.&lt;/p&gt; &lt;p&gt;Hopefully this blog will help the next person that has this problem.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=422283" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/Reporting/default.aspx">Reporting</category><category domain="http://weblogs.asp.net/taganov/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://weblogs.asp.net/taganov/archive/tags/SQL+Server+2000/default.aspx">SQL Server 2000</category></item><item><title>Problem Solved</title><link>http://weblogs.asp.net/taganov/archive/2005/08/01/421236.aspx</link><pubDate>Mon, 01 Aug 2005 21:06:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:421236</guid><dc:creator>taganov</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=421236</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2005/08/01/421236.aspx#comments</comments><description>&lt;p&gt;Last week I blogged about a &lt;A href="http://weblogs.asp.net/taganov/archive/2005/07/29/421043.aspx"&gt;problem I was having &lt;/a&gt;finding common ground between the DataReader object, and the Datarow object. I complained of having to write two different constructors that were identical in nature except for the type of object received. Why the solution didn't occur to me before now I can't say, but the answer is the GoF Adapter pattern.&lt;/p&gt; &lt;p&gt;I just wrote an object that adapts the DataRow to the IDataRecord Interface. Problem solved. Simple.&lt;/p&gt; &lt;p&gt;There were some methods that I couldn't completely implement, such as the one that referenced the parent IDataReader object (there isn't one in this scenario), but it should work find for my purposes.&lt;/p&gt; &lt;p&gt;&amp;lt;source&amp;gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;Public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Class&lt;/font&gt;&lt;font size="2"&gt; DataRowAdapter&lt;/font&gt;&lt;/p&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;Implements&lt;/font&gt;&lt;font size="2"&gt; System.Data.IDataRecord&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; _row &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; DataRow&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Protected&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ReadOnly&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Property&lt;/font&gt;&lt;font size="2"&gt; Row() &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; DataRow&lt;/p&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Get&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Return&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Me&lt;/font&gt;&lt;font size="2"&gt;._row&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Get&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Property&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;#&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Region&lt;/font&gt;&lt;font size="2"&gt; "IDataRecord"&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;... snipped&lt;/p&gt; &lt;p&gt;&lt;/font&gt; &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Default&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Overloads&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ReadOnly&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Property&lt;/font&gt;&lt;font size="2"&gt; Item(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; i &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Integer&lt;/font&gt;&lt;font size="2"&gt;) &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Object&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Implements&lt;/font&gt;&lt;font size="2"&gt; System.Data.IDataRecord.Item&lt;/p&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Get&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Return&lt;/font&gt;&lt;font size="2"&gt; Row(i)&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Get&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Property&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Default&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Overloads&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ReadOnly&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Property&lt;/font&gt;&lt;font size="2"&gt; Item(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; name &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;String&lt;/font&gt;&lt;font size="2"&gt;) &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Object&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Implements&lt;/font&gt;&lt;font size="2"&gt; System.Data.IDataRecord.Item&lt;/p&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Get&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Return&lt;/font&gt;&lt;font size="2"&gt; Row(name)&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Get&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Property&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;#&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Region&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Sub&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;New&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; row &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; DataRow)&lt;/p&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Me&lt;/font&gt;&lt;font size="2"&gt;._row = row&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Sub&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Class&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/source&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=421236" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/Design+Patterns/default.aspx">Design Patterns</category></item><item><title>Do you have the solution?</title><link>http://weblogs.asp.net/taganov/archive/2005/07/29/421043.aspx</link><pubDate>Fri, 29 Jul 2005 18:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:421043</guid><dc:creator>taganov</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/taganov/rsscomments.aspx?PostID=421043</wfw:commentRss><comments>http://weblogs.asp.net/taganov/archive/2005/07/29/421043.aspx#comments</comments><description>&lt;p&gt;Given that System.Data.IDataRecord and System.Data.DataRow both share the following accessors:&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;IDataRecord Interface&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt; &lt;font color="#0000ff"&gt;this&lt;/font&gt;[ &lt;font color="#0000ff"&gt;string&lt;/font&gt; name ] { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; }&lt;br /&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt; &lt;font color="#0000ff"&gt;this&lt;/font&gt;[ &lt;font color="#0000ff"&gt;int&lt;/font&gt; i ] { &lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;font size="1"&gt;&lt;font size="3"&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="1"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;DataRow&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;public object&lt;/font&gt; &lt;font color="#0000ff"&gt;this&lt;/font&gt;[ &lt;font color="#0000ff"&gt;int&lt;/font&gt; columnIndex ] { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;; }&lt;br /&gt;&lt;font color="#0000ff"&gt;public object&lt;/font&gt; &lt;font color="#0000ff"&gt;this&lt;/font&gt;[ &lt;font color="#0000ff"&gt;string&lt;/font&gt; columnName ] { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;font size="1"&gt;&lt;font size="3"&gt;; }&lt;/font&gt;&lt;/p&gt;&lt;/font&gt; &lt;p&gt;When I'm building my DAL objects, I invariably have to build two constructors for my objects--one which takes the IDataRecord interface, and another which takes the DataRow object.&amp;nbsp; The constructors are usually identical except for the type of the argument being passed to it. If a common interface could be extracted and shared between the DataReader and DataRow I'd only have to use one constructor.&lt;/p&gt; &lt;p&gt;I can see that the primary problem facing interface extraction is the fact that the DataReader is readonly, and the DataRow is read/write. The only way I see around this problem is if the compiler treated a read/write property as satisfying the Readonly condition of the interface.&amp;nbsp; Or maybe we need a new scope term for Interfaces, such as "CanRead" and "CanWrite". A standard read/write property and a readonly property would satisfy the CanRead scope modifier. Likewise for the CanWrite portion. In other words, the Interface that whatever access level is given to the property, it must be Read-able, or Write-able, or both even.&lt;/p&gt; &lt;p&gt;Has anyone found a way around my core problem? What do you think the best way to solve it in future versions of the framework would be?&lt;font size="1"&gt;&lt;/p&gt;&lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=421043" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/taganov/archive/tags/ASP+.NET/default.aspx">ASP .NET</category></item></channel></rss>