There was a very interesting discussion in the Enterprise Architecture group of my old company. (The fact that this kind of discussion was the only thing that group did was why I moved to another job after two years, but that's a different story....)
There was a camp that claimed the single biggest standardization gap in the IT industry was the lack of a standardized stored procedure programming language. Sure there are vendor-neutral dynamic SQL standards (i.e. ANSI-92), but since so many other disciplines agree that dynamic SQL is best minimized in favor of compiled stored procedures, that doesn't help much. There is no RDBMS platform to my knowledge that can let you actually build stored procedures using nothing but ANSI-92, and even if they could, many of the features that make a given RDBMS desirable over another require proprietary language extensions. Hence, even though "they're both SQL," T-SQL and PL/SQL are vastly different in both syntax and paradigm. So, the recommendation of this camp was that applications should simply stop using stored procedures, and do all RDBMS interactions with ANSI-92 SQL only. That standardized RDBMS syntax but not wire protocol. For this, they recommended that every database instance be fronted by a lightweight XML-over-HTTP translation layer. The benefits of this were that if you wanted to switch RDBMSes, you could be GUARANTEED of NO code changes -- just literally configure a new endpoint and the bits would start flowing. I never quite decided how I felt about this proposal, but it certainly struck me as being ballsy enough to merit further discussion. -----Original Message----- From: Unmoderated discussion of advanced .NET topics. [mailto:[EMAIL PROTECTED] On Behalf Of Chip Dunning Sent: Wednesday, September 14, 2005 10:33 AM To: [email protected] Subject: Re: [ADVANCED-DOTNET] Business logic I do not understand why so many thing database independence is a fallacy? A good design is flexible enough to absorb the redesign of any one component without failing. If you cannot rip out your database and put in a new one then you are too tightly coupled. It would be like being so dependent upon IIS that you could not roll out a solution using Apache. Neither would be considered a good design. It does not matter what component of the system it is (Web Server, Compiler, libraries, or database) if you cannot pull it out and replace it without disrupting the system - it is a bad design. I have been on 3 database changes. The first moved from Access to Oracle. The second moved from Poet (OODB) to Oracle. The last moved from Oracle to SQL Server. The first one was an abject failure because our DBA was a ID-10-T. The second went faily smoothly because all database calls were encapsulated in libraries. Each GUI application had to be re-compiled since they had static links to these libraries, but not a single line was changed. The third was ongoing when I moved to a new job, but it was going very positive. Chip On 9/13/05, Shawn Wildermuth <[EMAIL PROTECTED]> wrote: > > Yes and no. I would probably not put it in the database, but that > doesn't mean its wrong. The fact of the matter is that even outside > the database (ours was entirely outside the database), it still > required a major re-write. Database independence is a falicy. Keeping > your logic outside the DB doesn't buy you much unless you are doing > strict SQL '92/95...which no one does because it performs like a dog. > But DB Independence is an entirely different topic that I don't want > to get caught walking the tangent gangplank ;) > > Thanks, > > Shawn Wildermuth > http://adoguy.com > C# MVP, MCSD.NET <http://MCSD.NET>, Author and Speaker > > ->-----Original Message----- > ->From: Unmoderated discussion of advanced .NET topics. > ->[mailto:[EMAIL PROTECTED] On Behalf Of Franklin > ->Gray > ->Sent: Tuesday, September 13, 2005 6:10 PM > ->To: [email protected] > ->Subject: Re: [ADVANCED-DOTNET] Business logic > -> > ->""No technical or functional requirement, just a business one. This > ->is the very nature of how business gets done and ends up with a > ->myriad of different architectures" > -> > ->Wouldn't this be an example as to why not to put the BL in the DB? > ->Never know when somebody is going to say "lets switch". > -> > ->=================================== > ->This list is hosted by DevelopMentor. http://www.develop.com > -> > ->View archives and manage your subscription(s) at > ->http://discuss.develop.com > 09/13/2005 06:15:13 PM > > =================================== > This list is hosted by DevelopMentor(r) http://www.develop.com > > View archives and manage your subscription(s) at > http://discuss.develop.com > -- "The reason the mainstream is considered a stream is because it's so shallow" --George Carlin =================================== This list is hosted by DevelopMentor(r) http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com
