Click here to Skip to main content
15,897,891 members

The Weird and The Wonderful

   

The Weird and The Wonderful forum is a place to post Coding Horrors, Worst Practices, and the occasional flash of brilliance.

We all come across code that simply boggles the mind. Lazy kludges, embarrassing mistakes, horrid workarounds and developers just not quite getting it. And then somedays we come across - or write - the truly sublime.

Post your Best, your worst, and your most interesting. But please - no programming questions . This forum is purely for amusement and discussions on code snippets. All actual programming questions will be removed.

 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
Richard A. Dalton20-Oct-10 3:26
Richard A. Dalton20-Oct-10 3:26 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
richard_k26-Oct-10 22:09
richard_k26-Oct-10 22:09 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
JasonPSage20-Oct-10 3:31
JasonPSage20-Oct-10 3:31 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
Richard A. Dalton20-Oct-10 4:24
Richard A. Dalton20-Oct-10 4:24 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
richard_k26-Oct-10 22:11
richard_k26-Oct-10 22:11 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
YSLGuru20-Oct-10 10:20
YSLGuru20-Oct-10 10:20 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
Richard A. Dalton20-Oct-10 23:32
Richard A. Dalton20-Oct-10 23:32 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
wout de zeeuw20-Oct-10 11:42
wout de zeeuw20-Oct-10 11:42 
Ok, although I'm primarily a .NET developer, I'm gonna try to swing the religious discussion the other direction. It does sound you ran into some bad SQL code from a bad developer. Like others said, there are bad .NET developers as well, and there are plenty of programmers that don't store their .NET source code under version control. But you can very easily just export your db's DDL to a text file and put those under version control. It's so easy there's no excuse to not do it (people who don't should be fired). Furthermore, it's a _lot_ easier writing SQL code in e.g. SSMS where you have code completion, and where you can debug your SQL code. How are you going to debug your SQL that you wrote in strings in C#? There are good arguments for having all DB access go through sprocs (e.g. security is easier to manage). SQL injection is mostly not an argument (either way), as you can do parameterized queries in ADO just fine.

Having a insulation layer of sprocs can handle the core of business rules to keep the data mostly consistent. As far as I know you can't namespace your SQL code unfortunately, so it isn't really suitable to build huge frameworks in your SQL layer. It should just be the first line of defense keeping the integrity of the data. There will also be business logic in the C# layers on top of that, and possibly on the web layers (javascript an d such) as well. There's no way of putting business logic 100% in one neat layer (although you can apparently generate javascript to do some validation apparantly).

So things are not black and white, but they are shades of gray, and it takes years to judge the shades right and to judge how much weight should be put into which layer. The way I look at it, in a database centric application, there should be considerable weight on the database design and SQL code (sprocs) surrounding it, and it should not be regarded as just a dumb store of data for your super duper OO designed architecture. To put a number on it, I'd say around 30-40% of effort should be database related. If you're thinking too OO, then sooner or later you'll run into the impedance mismatch with the relational world. You'll build a much better system if you know _and_ how to design a database and write decent SQL code _and_ how to build the multi-tier business app on top of that. People that really don't want to know about the database, but are still gonna mess around with it, are most likely going to build a crappy system.
Wout

GeneralRe: Stored Procs, Packages, Views...Pah! Pin
Richard A. Dalton20-Oct-10 23:42
Richard A. Dalton20-Oct-10 23:42 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
wout de zeeuw21-Oct-10 0:45
wout de zeeuw21-Oct-10 0:45 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
Richard A. Dalton21-Oct-10 1:21
Richard A. Dalton21-Oct-10 1:21 
GeneralEmbrace the dark side - use an ORM Pin
Dale Margel20-Oct-10 15:31
professionalDale Margel20-Oct-10 15:31 
GeneralRe: Embrace the dark side - use an ORM Pin
AspDotNetDev20-Oct-10 15:45
protectorAspDotNetDev20-Oct-10 15:45 
GeneralRe: Embrace the dark side - use an ORM Pin
Dale Margel20-Oct-10 16:00
professionalDale Margel20-Oct-10 16:00 
GeneralRe: Embrace the dark side - use an ORM Pin
AspDotNetDev20-Oct-10 16:55
protectorAspDotNetDev20-Oct-10 16:55 
GeneralRe: Embrace the dark side - use an ORM Pin
fjdiewornncalwe21-Oct-10 3:34
professionalfjdiewornncalwe21-Oct-10 3:34 
GeneralRe: Embrace the dark side - use an ORM Pin
Richard A. Dalton20-Oct-10 23:28
Richard A. Dalton20-Oct-10 23:28 
GeneralRe: Embrace the dark side - use an ORM Pin
AspDotNetDev21-Oct-10 7:14
protectorAspDotNetDev21-Oct-10 7:14 
GeneralRe: Embrace the dark side - use an ORM Pin
Stryder_121-Oct-10 3:26
Stryder_121-Oct-10 3:26 
GeneralRe: Embrace the dark side - use an ORM Pin
AspDotNetDev21-Oct-10 7:16
protectorAspDotNetDev21-Oct-10 7:16 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
ohmyletmein21-Oct-10 12:47
ohmyletmein21-Oct-10 12:47 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
Richard A. Dalton21-Oct-10 23:28
Richard A. Dalton21-Oct-10 23:28 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
fjdiewornncalwe22-Oct-10 2:25
professionalfjdiewornncalwe22-Oct-10 2:25 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
Schmuli23-Oct-10 22:19
Schmuli23-Oct-10 22:19 
GeneralRe: Stored Procs, Packages, Views...Pah! Pin
richard_k26-Oct-10 21:48
richard_k26-Oct-10 21:48 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.