This .NET-2.0 project is reorganized for future enhancement. These are the new and improved separation of concerns:
IXPathNavigable input.System.Data.Common). This “strange” design is possible based on the research documented in my note: “SQL Server 2005 PROBLEM: Using the ADO.NET DbCommand.ExecuteScalar() Method Truncates at 2033 Characters.”All of these areas of concern are mediated by a façade, the CommandHandler class. Because it implements the Songhay.Data.ICommandHandler interface, it expects to return XPathDocument messages to an external caller.
My commitment to XPathDocument messages dates back to .NET 2.0. In our brave new LINQ-based world, we have the XDocument. Before these latest improvements, my “old” code was not in a position to easily move into this new world.
By taking the time (many hours over many days in a very hot summer room) to loosen up the coupling, I have more options:
System.Data.Common stuff.System.Data.Common.System.Data.Common stuff—but I can insinuate LINQ to Entities where it is super-obviously appropriate (for example wherever I might be using ancient ADO.NET DataSet objects for procedures that require an in-memory database).My previous note about LINQ to SQL takes some of the polish off the DBMS-access aspects of LINQ. So I am no longer peer-pressured (most of this pressure is imagined) into getting rid of System.Data.Common stuff because LINQ to SQL is “obviously” better. No, the real question is, ‘Does XDocument completely replace XPathDocument?’ Sadly, I can only trust me to answer this question.
A few random notes:
ICommandHandler for a façade and a mediator looks like it can be replaced by a WCF service using named pipes. The problem with this is that I do not want to lose compatibility with Mono. Yes, kids… Mono.TODO items.This entry was posted on Tuesday, September 8th, 2009 at 8:33 am and is filed under .NET related, Data Management Solutions, Design Diary, Digital Media Production, root. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
[...] the “View Data” definition—these define what will be sent as strongly typed data to the View. A previous post records how I divide the data layer conceptually: Procedures, Data Transfer Contracts, Input [...]