MSSQL 2005 Finally Released
mnovotny writes "Computerworld reports that Microsoft is finally set to release their belated SQL Server 2005. From the article: 'Despite a two-year delay, several users who have tested the software cited the improved performance and new functionality it brings as positive developments that likely will convince them to upgrade soon.' The free version can be downloaded directly from Microsoft."
Before the Anti-Microsoft redirect gets out. Please take into accounts. Most People who choose MS SQL Server already have a windows network, Oracle is to expensive for their needs, MySQL 5 just was released with most of the functionality that was in MS SQL 2000, Not many good tools for PostGreSQL, Easier to integrate with .NET, and gives PHB the warm and fuzzies. I have been working with MS SQL 2000 and I must say I was surprising pleased with it, other then the POS that is called DTS, I never had any problems with SQL server, with it crashing or problems handling a lot of data, or configuring security. My only Fear with MS SQL 2005 is that it will break so much compatibility that we well need to redo a lot of stored procedures and all our working around for DTS.
MS SQL Server Yes it is closed sources, I don't know what type of security holes they will find in it, It is defiantly bloated because it will not fit 5 1/2 single density floppy disk with enough rooms for a 2000 record table. If you already have MS SQL 2000 and in a year or so you need to upgrade it will probably be easer to go to 2005 them migrating to the others.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Here's hoping it went through more testing than VS2005 did...
Well, at least they had the foresight to call it MSSQL 2005.
You can download 'web installers' I believe, but ISO images are here
The limited stored proc language that SQL server had before was actually a good thing; you could do some limited stuff in the DB. Thus, you weren't often able to give in to the tendency to stick application logic in the database tier.
And this quote pretty much says it all: Raichura said the support for Microsoft's Common Language Runtime technology via Visual Studio will let him avoid having to go to multiple developers with different specialties. "I can natively write stored procedures straight into software," he said. "This increases my resource pool because it reduces the distinction between software developers and architects."
Read: Now, I can pay people less to create a complete fucking pigsty that will perform well enough that the app will appear largely stable.
I received a call from Microsoft today to remind me of the Technet and MSDN events this Thursday in Charlotte, NC.
Near the end of the message the lady said that attendees receive a free copy of MS SQL 2005 and Visual Studio 2005 standard editions.
I called one of my friends to tell him but they had closed registration when he went to the website.
I was under the (apparently mistaken) impression that this was already out.. our system admin called our software supplier today and the person on the other end of the line basically said that they have the prices for the product but Microsoft has told them not to actually divulge the pricing information until the end of the month! Excuse me??
So what gives. The product is apparently out.. we want to buy it.. Microsoft have set the prices out.. so can we buy it or what?!
The favourable (p)reviews for SQL 2005 seem to be in stark contrast to those for Visual Studio 2005.. bloated, resource hungry, and bug laden.. apparently.
"Hey! Unless this is a nude love-in, get the hell off my property!!"
We were talking about this today. We have a need to cluster our main Intranet server and our current SQL 2000 Standard license doesn't allow clustering. With Enterprise, you can cluster up to four. That all changes with SQL 2005 - you can have a two node cluster with the standard edition, which is far cheaper.
The catch is whether or not we want to be one of the first servers to adopt SQL 2005. New releases scare the hell out of me, but we've also had some recent downtimes that a clustered server might have helped with.
Decisions, decisions . . .
This is really MSSQL 2003?
I installed SQL Server 2005 Enterprise downloaded from the MSDN last week.
The Management Studio Interface is pretty good, although not as responsive as I would like on a 2.8 GHz P4. Thankfully stored procedures can be edited in a non-modal window (in tabs).
SQL server also comes with MSXML 6 and SQLXML4. The upgrade analysis tool is very neat.
Microsoft Visual Studio 2005 Professional is much more CPU intensive than the Management Studio. They do look rather similar.
Microsoft Visual SourceSafe 2005 has an updated inteface, however many screens still look the same.
Free? Only if you buy their other products.
Get your own free personal location tracker
Clearly, this (as well as news of Oracle's "free/lite" version of 10g), are good news... that Open Source projects like MySQL, PHP, PostgreSQL, etc are forcing the "cathedral" software shops to re-examine their ways, since they (Microsoft & others) can't rely on piracy anymore (due to impacted profits) to keep the "pipeline full" and "mindshare". It's good for the closed source developers, and ultimately it will be good for OSS developers, as OSS entries in these fields mature. Competition is good, and the developers benefit.
Make sure everyone's vote counts: Verified Voting
And paint them even further into a corner such that migration to another DB is next to impossible.
From the at-least-it’s-not-December-31-yet dept.
Quantum materiae materietur marmota monax si marmota monax materiam possit materiari?
The only time I really get annoyed with the limits of standard SQL stored procedures is when I need an array of values to be passed into it. For instance, there are many times where a stored procedure that uses an "IN" statement could really benefit from passing in an array of values for the "IN". To get around this, you basically have to write a data access layer that creates SQL on the fly.
I'm all about separating "logic" from the data access layer, but simple things like that are probably possible using the C# stored procs.
Also, correct me if I'm wrong, but this approach is not too dissimilar from what Oracle has done with Java.
One of the most exciting features in SQL Server 2005 for me is the new Report Builder. SQL Server 2005 includes a new ClickOnce WinForms app called Report Builder that allows end-users to design their own reports from a business-user friendly data model. It is very similar to Business Object's WebIntelligence for those of you familiar with that product, but with an apparently more affordable licensing arrangement.
Essentially, the data architect takes the OLTP or data warehouse and abstracts it via metadata into Business entities with which end users are familiar. In Business Objects, this semantic layer is called a Business Universe and in SQLServer Reporting Services it's called the Data Model. Because this semantic layer understands how the data should be put together, it writes the underlying SQL necessary to give the user the answer they want. In principle and demos, it is very slick. We'll soon see how the two stack up in reality at my place of business, as we're setting up both this week to play with.
How I love those new toys :) been playing with them for a week or so now. The SQL Server Management Studio is less Access like, with is good :)
-Mark
So nice that Microsoft is embracing free software. Where's the SourceForge repository?
With spending like this, exactly what are "conservatives" conserving?
http://developers.slashdot.org/comments.pl?sid=166 851&cid=13914395
Clearly, this (as well as news of Oracle's "free/lite" version of 10g), are good news... that Open Source projects like MySQL, PHP....
MS HAS ALWAYS OFFERED A FREE DATABASE ENGINE, its no secret. SQl Server 2005 Express is just the new version of this product which has been available for years. Because of its easy transition to Sql Server its used a lot as a started Database for companies trying to sell in the SBM market. A lot of software application make use of MSDE (which is what the engine was called before Express edition)
For more information here http://www.microsoft.com/sql/msde/default.mspx
Now as for the Express editions being free... They are not (someone let me know if I am wrong here). They cost like 40 bucks or so, I had the beta installed on my system, once beta was over it prompted me to register/pay for it within 30 days..etc the usual MS registration.
Go to your room!
If you didn't have stored procedures or functions, you couldn't do any of the following:
-user defined type
-functional index
-user defined aggregate
-trigger
-complex constraint
If it's code that maintains your data integrity, and is fundamental to the meaning of the data, put it in the database. Else put in application.
Social scientists are inspired by theories; scientists are humbled by facts.
SQL Server 2005 Free Version release you!
I've used both SQL Server 2000 & MySQL 5.0.15 (and some others). Unless you want to make pretty pictures with DTS why wouldn't you decouple yourself from Bill Gates's teat and use MySQL 5? The major difference: limited support for triggers (which are generally a bad idea anyways as they hide code from lower-level developers).
i got ball this is my adress 108 20 37 av corona come n do it iam give u the sidekick so I can hit you wit it
Amen, brother. C# device drivers are next, followed by a kernel C# interpreter :(
Keeping the business logic out of the database may be good for you if the only thing your database ever talks to is a web app, but lots of us have databases that talk to a LOT of different applications. Rather than reinvent the wheel implementing the buisness logic in a million apps, we keep it in the database, where it keeps everthing consistant, no matter what app is talking to the database, and where it can run fast.
It appears that MS has done some interesting feature shuffling in their various free editions.
m pare-features.mspx
http://www.microsoft.com/sql/prodinfo/features/co
Has anyone out their tested out what is available in SQL express as far as job scheduling , DTS (now ETL) and replication?
Does anyone want to flame me for unashamedly using MS SQL?
As best as I can tell from their spec sheet, the following features of MSDE 2000 are not available in SQL Express:
* No job scheduler in SQL express. SQLAgent worked fine in MSDE 2000.
* Replication: MSDE for SQL could public and subscribe (as far as I understand), while SQL Express 2005 can only subscribe.
* They've changed the name of DTS to "Enterprise ETL Platform" or SSIS or something. While I haven't tested it out yet, it appears that DTS functionality is limited to basic import and export. For the really useful stuff (DTS to web services, for example) you need the pro edition.
Added:
* A user interface. MSDE 2000 basically had none. If you didn't have visual studio, or a developer's license to MSSQL, or some 3rd party administration and query tool, you basically had to use osql (command line).
* You get 4GB instead of 2GB.
Now, I have access to a few large corporate MS SQL servers, so this shouldn't really be a problem. However, large corporate servers have complex change-control processes.
Consequently, I rely on the desktop editions for all my ad-hoc stuff, development, and stuff that hasn't quite made it to production. I also run a database for a non-profit on MSDE, and was hoping to keep the replication features while moving up to SQL Express.
My motto: "A cat is no trade for integrity."
After oracle 8 its possible to pass in arrays in your PL/SQL using the varray type. Here's a link that shows it in action.
This must be in satire, or ignorance.
a ger
a ger
/ powerdesigner
Q L%20GUI%20Tools/document_view
Postgresql has a great variety of tools, both OSS and commercial that work great. I've been working on an updated list of all the tools. Here are a few of the most popular admin tools:
PGadminIII
http://www.sqlmanager.net/products/postgresql/man
DBvisualizer
http://www.minq.se/products/dbvis/
EMS Postgresql Manager
http://www.sqlmanager.net/products/postgresql/man
PHPpgadmin
http://sourceforge.net/projects/phppgadmin
Sybase Power Designer
http://www.sybase.com/products/enterprisemodeling
ERWIN data modeller
http://www3.ca.com/Solutions/Product.asp?ID=260
CASE Studio 2
http://www.casestudio.com/enu/default.aspx
Postgresql has a vibrant tool community. If you want more info on Postgresql tools see
http://techdocs.postgresql.org/v2/Guides/PostgreS
1) 1GB of RAM usage maximum.
2) 1 Processor usabe maximum (unlimited cores though).
3) 4GB total DB size maximum.
There are other limits too, like it can't do some enterprise things like a DB cluster, but the major ones are the size and processing limitation. So it would probably work as a web backend, but wouldn't scale without buying a bigger version.
I can see the value in anti-biotics, but LSD?
Get your own free personal location tracker
This is a good thing! Now your app people can talk one to one with your DB people, since they're talking the same language.
To me, this was one of the promises of Java for web apps over MS at the time back in the day. Use Java in JSPs talking to Java objects in the backend, with knowledge sharing happening across developers, etc.
With ASP it was ASP VBScript talking to COM objects written in VB or C++, and VBScript != VB, so even then the VB scripters couldn't talk one to one with backend VB developers. You'd get "we do this" followed by "Yea, that doesn't work for us".
With Java, the whole team is in the same boat, able to share code and expertise easily. That's a WIN in my book.
Obviously, this is less of an issue today with ASP.NET.
VC++ Express is awesome, the only gripe I have with it is the fact that you can't explicitly add include/link paths using a find box... to add universal include/link paths you need to edit an xml file, and to add include/link paths to a particular project you have to type the path_to_file... its a nitpick I know but otherwise its a great product for free.
-everphilski-
For the days when you want to see a rainbow but there just isnt one in the sky :)
Free MSSQL?? MySQL... beware ;) :D
I find it funny that company name products with years/dates when it is rule #2 that doing something will always take two times longer than your worst estimates
"From the moment I could talk, I was ordered to listen" - Cat Stevens
I for one have no plans to use C# for stored procs ;-) Lets remember this is just a new OPTION. Standard SQL (or I should say T-SQL) is still there and is what I plan to use. But hey, who knows perhaps there'll be something I need which just cannot be done with T-SQL (assuming I for some reason need it done in a stored proc), then having the ability to write procs with any .NET language and leverage the .NET framework could be a nice option to have.
"reality has a well-known liberal bias" - Steven Colbert
> and where it can run fast.
Until you want to scale and realize you can no longer just farm data logic servers, or web servers, and instead have to invest in large scale databaes clustering. Oops.
It's used as the eternal carrot... to keep the CTO from moving to a competetor's product that's already there and better. As long as 'real soon now' continues to inch ever closer, you can keep this up for an incredible length of time.
The mantra is: It's easier to stay with our junky product for X months than to go through the pain of migrating to their superior product. -- then, 6 months later, it's X-2 months.
If it finally comes out missing a couple of promised features (cut because 'we had to finally ship something!'), that's OK because it'll be in the next release ((due in X months).
Rinse-repeat.
Free Software: Like love, it grows best when given away.
Let's see, cluster a few machines vs rewriting the business logic in a couple dozen different apps, where a misstep in one screws the data for them all. I think I'll just cluster, thanks.
From the FAQ http://msdn.microsoft.com/vstudio/express/support/ faq/default.aspx#pricing
/ install/
10. How much will these products cost?
We are announcing a pricing promotion for Visual Studio Express - for the first year after the products launch on November 7th, 2005, customers will be able to visit MSDN to download their copy of Visual Studio Express for free!**
Our customers are very excited about the release of these products, so this limited-time download is our gift to the hobbyist, student, and novice community - we're excited to see the amazing applications they'll build!
Note that SQL Server 2005 Express Edition is also a free download. The free pricing for SQL Server Express is not limited to the same one-year promotional period as Visual Studio Express.
[**We plan to launch the non-English versions of the Express products sometime within 2-3 months after the English version launches on November 7th. The same pricing promotion will apply to these products, and will remain in effect for one full year after their respective availabilities.]
When did they change that?
Better get the full setup ISOs now:
http://msdn.microsoft.com/vstudio/express/support
A database release especially a MS database is about as interesting as somebody releasing a new ftp client.
Got Code?
You must not be into Object Oriented programming where you separate out the logic into tiers: Persistence Layer, Biz Logic Layer and Presentation Layer. Also, you must have been a DB admin before you were an app developer. Or maybe you've never been an app developer.
Please read the FAQ.
Oh, no! You have walked into the slavering fangs of a lurking grue!
but with an apparently more affordable licensing arrangement.
;-) Free with your SQL Server license.
Yes, MUCH more affordable
"reality has a well-known liberal bias" - Steven Colbert
But will it run under wine...
Use libraries to implement common business logic across multiple applications; an application serves is also a possibility. This might also be a place to use an SOA-type service for more complex logic that needs centralization. Don't shove crap in the database.
I do understand that it helps to centralize things, and it keeps idiots from writing mostrously fat clients that treat the database as little more than flat storage. I have recurring nightmares about a VB6 app that weighed in at >100MB with some of the most pessimized database access strategies ever. But sticking all that crap into stored procedures is just moving the mess elsewhere.
great. Microsoft to deprecate t-sql for C# stored procedures. As a bonus they encourage you to not write orr understand SQL at all, well visual studio writes it for you. Well guess what, they want to obscure and redefine what a database is and what it is supposed to be. t-sql is a great language, queries are first class and it is designed from top to bottom to perform quickly and well.
What problem are they trying to solve...I'll tell you what. SQL works well and is defiened by a standards committe outside their control...why don't we all do everything in vb instead. I betcha one of the reasons it took so long to get out was they couldn't make it run anywhere as fast as 2000 without tons of tweaking.
I'm well aware of the different layers. I'm also aware that a lot of times places need to have applications that they didn't write inhouse plug into the database. If the only things you are ever going to have interact with the database are apps you write in-house it's one thing. Not all of us are working in that situation.
Cluster what? Or perhaps you mean making it highly available. Unless somebody sneaked it by me windows cannot do real clustering.
Got Code?
LSD is like taking a squeegee to your third eye. Seriously, though, acid is an incredible tool in the right hands.
The irony of this is that your cookie-cutter comment is even more prevalent and uninformed than the posts you complain about..
personally, I don't see why that's such a big deal. who sells or markets their product as 'easy to ditch for someone else's product'? Hell, you can still use PHP to connect to an MSSQL 2005 server and run that SP which is written in C#
Reason, free market capitalism, and individualism
"Stored procedures" written in C# should really be thought of in the same way as the extended procedures from SQL Server 2000. In otherwords, you probably will never use that feature, and if you do find that you need it you must really scrutinize why and the security implications of doing so. In most cases, you're better off with straight T-SQL procedures, and that hasn't changed for SQL Server 2005.
Personally, I haven't yet found a good reason to use C# stored procedures, but I'm also not using SQL Server 2005 yet. When my team migrates in the coming months, I might change my tune, but for now I'm more interested in other feature enhancements like try/catch error handling semantics and the snapshot isolation levels (allows for better concurrency without having to risk dirty reads by using (nolock) or setting a "read uncommitted" isolation level).
Do you have examples of procedures gone horribly wrong? Preferably not something completely obvious, like a proc that takes a varchar(8000) as input and just passes that to exec (completely stupid, negates all of the benefits of using stored procs). From my experience, you're better off using stored procedures than dynamic SQL in your code, so long as a few sanity check requirements are in place -- limit the amount of dynamic SQL in your procedures, prefer table variables over temp tables (to prevent recompilations), and general T-SQL best practices: limit your use of cursors and looping since SQL is a set-based language, keep your transactions as short as possible, avoid forcing index hints, count() on an indexed column or better yet * (allows the plan engine to pick the best column to count on), etc.
Depends on what you mean by "application logic". If you meant to say "business logic", then I must vehemently disagree -- business logic should live close to the data, in a reusable form so it need not be implemented in each app that wants to use the data. Ideally that means stored procedures. If you can't implement your business logic in T-SQL, then you need to re-think your logic requirements and your schema. If it still can't be done, then you can go ahead and start moving it into external libraries, but you should try your best to keep your logic as close to your data as possible.
It's a huge day for MS today - it's not only SQL Server 2005 but also Visual Studio 2005 and BizTalk 2006. They are releasing it as a full development platform, not just a SQL server. And it's just the beginning of products that MS is going to release within next year or so: new xbox, office, windows, just name it. Not to mention upcoming 'live' services. So it will be an interesting year.
Oracle is to expensive for their needs,
The Oracle license program itself requires about a day or two of study to understand. This is not the job of the end user mind you, but the consultant and/or reseller. I've actually gone through this exercise for several clients.
To be sure, you can buy a license Oracles in ways that are eye-poppingly expensive, but you don't need to. You can also license all kinds of add-ons that you don't need. But, once you get down to realistic situations with reasonable choices, you can always configure an Oracle license that will do everyhing MSSQL will do, and quite a bit more, for the same amount of money plus or minus meaningless spitting distance.
This isn't because the Oracle corporation are nice guys. It's because they're too smart to compete against Microsoft on their own platform with a product that's more expensive.
One aspect of Oracle's rather recherche licensing scheme is that you can sometimes, in special cases, license Oracle cheaper. Granted, these options are of mainly academic interest to most projects, because Oracle standard one or two processor on x86 is, at the end of the day, pretty cheap license wise. If you go that way, you may as well future proof your license because once you have it, Oracle is not going to go out of its way to be nice to you if you want to change your license model.
Of course now that Postgres is supported on Win32, there's not much reason to use MSSQL unless you are a 100% MS platform and tools shop. You still might go Oracle because certain features, such as workspace management (which you can think of as a kind of version control and branching system for database tables), but I can't see any reason to go with MSSQL otherwise.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
Why choose a database like Postgresql? Freedom. How many times do you have to get burned by a license to learn? How many times do you have to discover some problem that is fixed in the next version, and then have to pay for the next version just for a bug fix? How many times will the license be changed to extract more money out of you, or features removed and placed in the more expensive version?
So that means that because you have apps that aren't written in house, the business logic for the apps that *are* written in house must therefore be completely in the DB. That sucks in my opinion.
It is pretty easy to scale most things in a big n-tier system. Just buy more servers. The database however is really hard to scale. You quickly get to a point where twice the money will buy you only very little extra performance.
Therefore I treat the database as the "sacred resource". This almost always means that business logic is kept outside the database.
Your approach was right in the 80's when client/server was the norm. Today you should have an n-tier system and have the business logic in an application server.
You can still have lots of different applications while using centralized code. Only, now you call the application server instead of the database.
The Internet is full. Go Away!!!
Not really. The way .NET (C# anc vb.net) stored procs work is you basically write you logic just like you would for a regular application and upload it to the database with a few extra decorating tags. From what I've seen it should be trivial to rip this code out and put it back in your application should you wish to do so.
That said, you'll still have to make some changes to make it talk to something other than sql server, but if you've written your code with that in mind that also should be trivial.
So in short, C# stored procs are little more than a gimmick. I've actually heard that Oracle is implementing the same system.
They who would give up an essential liberty for temporary security, deserve neither liberty nor security
What kind of crack are you smoking... a flat file program??? Sure, maybe that was "faster" for 8 records you had...
Please... what a TROLL!!
What's worse is that you have upload your assemblies into SQL server for that to work. How much you want to bet they don't replicate? Can you even imagine what will happen if you break the current assemblies?
Sounds like a nightmare waiting to happen.
I should say though that this is great for MS. They charge per CPU for the database, the more they can chew up your CPU with non database related code the more likely you will add CPUs and pay the additional licenses.
I would prefer to have my business logic in a middle tier where I am not paying per CPU and leave the database alone to enforce integrity.
evil is as evil does
Postgres already does this.
evil is as evil does
Thats one way of looking at it. But many of the older db sql languages had very limited capabilities. Something that has prevented developers from truly exploiting the database engines to their fullest. Unless written as add-on modules in C/C++. BTW sql server has always allowed developers to add stored procedures using C/C++ just like oracle (pro-C). The good thing about enabling dot net languages or even java for that matter is that code written would be "managed code" bringing in the safety of those environments
The name to google for the free limited SQL 2000 engine is MSDE - which stands for MS Data Engine, I think. Note that the limitations have changed between MSDE and the new Express db - overall it's generally similar, i.e it's the same great engine but with limits on size and speed (i.e. processors/clusters). The biggest new "freebie" for me is that the max database size is now 4GB instead of 2GB.
I agree with you, I'm learning to get along with Postgresql now. thanks for all the admin tools links.
Microsoft to deprecate t-sql for C# stored procedures.
No they are not. They have made great enhancements to T-SQL in 2005 and every message I've heard is that T-SQL is the primary language for interacting with the database. C# sprocs exist for edge cases that used to required unmanaged extended stored procedures, as well as some other small use cases such as intense data manipulation using complex logic that is not suited for T-SQL. However the vast majority (I recall a manager stating "about 90%" at PDC 2003) of your code should still be T-SQL.
There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
LSD is like taking a squeegee to your third eye. Seriously, though, acid is an incredible tool in the right hands.
OUCH!! I don't know about you, but I try to avoid sticking sqeegees in any of my eyes.
Amen brother!
.net. Not just stored procedures. ODBC supports arrays as input parameters, so the problem isn't in SQL Server. I think the problem is that ADO.net doesn't support it. One would presume that they will sooner or later. Who know's they might even support it with the version that was released today? I don't really know.
I believe this is true for any SQL statement in
The Internet is full. Go Away!!!
Here's hoping it went through more testing than VS2005 did...
Did you actually use VC2005, or did you just read a crappy blog entry and assume it fact >.<
Here's the scoop: I've used the VC2005 betas for about two months now. They work fine. No, seriously. Never once did I have a crash. Never once did it corrupt my hard drive. And never once did it kill a penguin. Guys, seerisnah.
Granted, it takes a teensy bit longer to boot than EMACS, but it has a lot of nice features. Like the oft-maligned "intellisense" - it's nice having the function/method/class prototypes at your fingertips as you fill in a function. Or the new, secure versions of strcpy(), memcpy(), and others. It can compile code for a wide variety of applications, such as:
It also supports a wide variety of CPUs:
Fairly impressive, all considering. Although I don't write multi-threaded apps, it does have some nice debugging tools for creating them, a nice GUI for those too lazy to write their own resource scripts, and a nifty-as-all-hell IDE. Contrary to popular opinion, it's stable as all hell, has more features than a nerd's Swiss Army Knife and creates fast code. Quite frankly, for those who actually program, it's a dream - and Microsoft released a beta that any of you could have download from http://msdn.microsoft.com/ (The free and fully-functional Beta is closed now. What, you don't regularly check Microsoft Developer's Network here? :-D)
So... All the VC2005 bashing seems to come from a blind hatred of Microsoft (remember, Bill Gates created his empire coding from his garage, like any proper geek would) and a blind belief in anything that will bash Microsoft. If you actually use VC2005, it's wonderful.
But wait, you can! You can download the "Express Edition" free (as in beer) from here. I don't know how much the "Express Edition" differs from the full product, but if you guys are going to whine about something, at least use it first
DATABASE WOW WOW
Microsoft has historically used it's monopoly to crush rivals. What this illustrates is they don't understand (like Sun, interestingly) how to compete against open source. They are trying, but they still don't get it. No doubt their SQL is limited also. No dice, most people will stick with their MySQL (in fact when I first read the headline I thought it was MYSQL 2005 finall ships!) and PostgreSQL, etc.
However you are quite correct in your post respect to the parent's claims.
We are Turing O-Machines. The Oracle is out there.
Egads. Either this is a troll (good job - had me fooled), or yet another example of the bizarre lengths folks go when using .NET and don't know any better. Hey! Since you've got all your business logic in you db, simply switch to J2EE!
where you separate out the logic into tiers: Persistence Layer, Biz Logic Layer and Presentation Layer.
.NET.
Which works great only if you are willing to completely standardize on one enviornment like J2EE or DCOM or
I don't particularlly like business logic in the DB either, but for certain environments it's the the easiest solution to the problem.
Business. Numbers. Money. People. Computer World.
You've always been able to write extended stored procedures in C, so why not extend that to a managed lanaguage?
-1 Uncomfortable Truth
This must be done front-end and back-end (admin), from the site, from the order servers, and so on. There's no way I want my database box spinning its wheels and wasting its time trying to connect to mail servers and the like.
As the only access to the data (from any application) is through a service, I can let the business layer/service box do its thing, organize the data access, and let the database worry strictly about the data. Should the application box get bogged down, it's MUCH easier to fan out and add another relatively-inexpensive app server to take up the load.
Nor do I want a bunch of SPs knowing too much about the "world" they live in. If, for efficiency, I need to move a certain database to its own box, I don't want to run through and recode a batch of SPs that "ass-ume" the membership database and the order database are on the same box.
I paid good money to have my database server serve data, and that's ALL I want it doing.
Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
Visual studio 2000, windows 2000, sql 2000, office 2000....
Most of microsoft's 2000-version products were the epitome of their abilities. Everything since have been polish+constricting rights. There isnt really a lot that runs on XP and not 2000 (except for things that microsoft actually blocked support for, to sell more of XP like directx). Somewhere along the line in 2000, they figured they already had 95% of the market, why try to innovate at all? Better just squeeze out more cash and spend development funds on marketing. We've been seeing more of user rights restricted since 2000 while the TV has been showing nicer ads for the past 5 years.
Someone oughtta really steal windows 2000 source code and distribute it on P2P networks. Projects like ReactOS can really benefit, and will overall force Microsoft to get back on the innovation track.
Otherwise we'll have to wait till Linux is better for the desktop (or OSX runs on commodity intel hardware) to see microsoft get straightened up.
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
Where would you point a young engineer with a BS in CS for a good introduction to SQL? Something that explains things from the ground up but not in a way that would insult the intelligence of someone who has been working for a while on non-database CS technologies, with the eventual goal of adding SQL to that big toolbox we all carry around when we get asked to Do The Impossible By Next Tuesday.
Help poke pirates in the eyepatch, arr.
From Microsoft's page;
SQL Server Express is supported on x64 and EMT64 systems in Windows On Windows (WOW). SQL Server Express is not supported on IA64 systems.
Very interesting....
The way I do this in a proc is to pass in a comma-delimited list which then gets converted into a table variable using a UDF. Then I use the table variable in a join. That way the only limitation is the length of the varchar with your list (8000 characters).
What I really don't like in SQL Server 2000 is not being able to use a parameter for order by and not being able to do automatic paging (LIMIT X Y). These are standard requirements for web apps and back-end consoles and reports.
Have you ever tried to use relational integrity with PostgreSQL and Erwin? Or is this new with PostgreSQL 8? Because it certainly doesn't work with PG 7.x and the latest Erwin SP.
Laissez lire, et laissez danser; ces deux amusements ne feront jamais de mal au monde. - Voltaire
Sometimes you just need the best tool for the job at hand.
Actually, if I recall correctly, Limit X Y isn't in the SQL standard. It's an amazing feature though. I can't believe they didn't write it in when networks were slow. Now that networks are fast, it's not so much of a hassel to fetch 100 rows from the DB when you only need 10, but when networks were slow, it was a major slowdown. Of course, now you only need 10 rows out of 10000, so I guess it's still quite an issue. Another thing I would like to see is Insert .... On Duplicate Key Update. That would save a lot of frustration when you may or may not know/care if records already exist. Both these things are possible other ways, but it's nice to have easy syntax, that knows what's actually going on so it can be optimized.
Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
it writes the underlying SQL necessary to give the user the answer they want.
Wow, revolutionary stuff, generating answers I want...and SQL statements! I'll bet corporate DBAs will just love it to bits.
-- Free software on every PC on every desk
I can talk to .Net libs from DCOM and to DCOM libs from .Net. I've never tried Java libs either way, but it wouldn't suprise me if someone had a wrapper for it.
And even then, what's wrong with standardizing? You can have employees who can easily cross train and review eachothers code. You can use common libraries. You can have a sent documentation of standards.
I agree that in some situations, mostly legacy systems, it could be easiest to leave it there but I can't see any clear reason why at this point in time you would put it there
-Rick
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
hmmm, I've found that particular form of reporting to get quickly unmanageable - with an explosion of hundreds of almost identical reports created, but not maintained by users. At one shop I visited they had so many that we could only test a sample of them - and found almost 50% to give incorrect results.
Since most reports of this type are created by users looking for answers to simple questions, i've found that creating dashboards with great navigation & drilling between graphs, charts, and tables to be a better option. This can then be managed by the warehouse or transactional database owners with its accuracy ensured.
Sigh, i've got one database that needs an upgrade right now and the only obstacle is the brio users with their reports that will break. I can't fix their reports, so I will have to give them some terribly-long transition time.
Looks like we have a definition of terms problem. Most of what you mentioned is what you previously called "Application logic". My question was whether or not you really meant "Application logic" or "Business logic", where "Business logic" is "actions applied to your data" and "Application logic" is "actions using your data" (yes, "Business logic" isn't really a good name for this, but it's what we've got). The only piece of business logic in what you mentioned is the insert into the database. In this case, it's extremely trivial business logic, but it's still business logic. As such, I'd say it merits a stored procedure, for the obvious reasons (you may have some logic around how you insert into the database, including relations and such) and the not so obvious reasons (stored procedures, when implemented and called correctly, protect against SQL injection attacks, increase performance, abstract your data layer by providing a consistent interface even when the underlying structure may change, keep your data logic close to the data, allow you to make updates to said logic without affecting your client apps, and simplify permissions by allowing you to grant EXECUTE access to only the procedures needed by an app rather than figuring our your SELECT, INSERT, UPDATE, and DELETE permission chains).
Then you got ripped off. A database engine can be much more than an alternative file system. Maybe you don't really have any complex data needs, but that doesn't negate the ability of a database engine to do real work.
yeah but "out of the box" I think he meant. PowerDesigner works with any DBMS...not PostGre specific
Postgresql have a lot of information on there site about tools and interfaces that can be used with postgresql.
http://www.postgresql.org/docs/interfaces
I myself have also written a reporting and forms component for postgresql.
Forms: http://www.treshna.com/bond
Reporting: http://www.treshna.com/papyrus
In time postgrseql will have as rich a toolset as mysql as more developers make there software support multiple SQL databases.
So do prepared statements.
"...abstract your data layer by providing a consistent interface even when the underlying structure may change."
Really? I thought that's what my application layer interface did. Let's say my boss decides I need to fetch XML data from a new CMS-based application server, instead directly from the old content database. Tell me again how to convert all of my stored procedures to do that? Tell me how many of my direct calls to SPs I now need to rip out and replace?
Sorry. Data types? Yes. Constraints? Yes. Insert/delete triggers? Yes. Some data-intensive cursor-based manipulations? Okay.
Abstraction? Consistent interface? Application logic? Business processes and procedures? Sorry. That's the app server's duty.
Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
Bill Gates did not create his empire by coding. He created it first by copyright infringement and then by marketing
Hahaha... *sigh*. I assume you're referring to DOS, which he bought from an independent programmer. After heavy modifications, he released it as MS-DOS. If you're not referring to DOS, I'm sorry Gates raped you when you were young or whatever.
empire has since been built on further copyright infringement and marketing
Uh.... what industry today doesn't market? I mean, have you noticed slashdot has an ad banner? Do you own a TV? 'Nuff said.
You'll also note in the sidelines that the express edition of VS is ... no-cost for a 12 month period. What happens in 12 months time is anyone's guess, but with Microsoft's known track record...
It's like activating your (*cough* legally purchased *cough*) copy of Windows XP. After the 30 days, if you don't activate it, it doesn't work. "Express Editions" are great - I've used the Express Edition of VC6 until right about a month ago. They didn't eat my soul, or take my firstborn, or charge me $19.95 a month last time I checked. Still have.... yup.... both testicles.
I'm no Microsoft shill, but, c'mon... I'm now taking bets that your tinfoil hat has more than seven layers at 3:1 odds. Any takers?
DATABASE WOW WOW
Seriously, what in the HELL is wrong with their developers?
The solution to their paging problem - an extra numeric column from 1 to whatever.
There needs to be a SELECT statement very similar to MySQLs LIMIT function. No fiddling with numbers BS - just give us the chunk of data we need.
Honest to god - the most BASIC things required in a DB and they can't even put it in there. It's 2005. How long have we had this problem now?
Ridiculous.
We have secretly replaced these Slashdot mods' sense of humor with a rusty nail. Let's see if they notice!!
The persistence layer is nice for separating the logic in the app, but it doesn't mean you have to sacrifice the database server's built-in power & functionality. Persistence layers can map to stored procedures, views, etc.
Also, like the man says, sometimes there's other types of apps connecting to your DB, maybe not all within your control. If you're responsible for the health of the data and the system, you may not be able to trust that every developer or system is playing nice.
TODO: come up with a clever sig
Yeah OK. You suck!
you had me at #!
Without too much of a headache I wrote a single dll that provides the same user defined function/ extended stored procedure in both mysql and sql server.
If you are smart about your design then you'll encapsulate the actual functionality and simply wrap the appropriate database interface around it.
Has anyone assessed the multi-versioned data that MS built into this version of SQL Server? This has always been the single feature that has left certain databases (mysql, sql server) incapable of scaling up to large numbers of transactions, while others (oracle, postgresql) have no such issues.
Essentially, each sql statement (or transaction) gets its own point-in-time image of the data constructed for it. In Oracle and PG this "consistent" image of the data is constructed by reference to the transaction logs. My statements starts when the transaction counter (SCN on Oracle) is 12345 -- I will only get images of the data with a transaction counter of 12345. This means that my debits & credits always match as long as they're entered in the same transaction. This means that I can include dozens of small dml statements in my transaction because I'm not blocking anybody -- they all have consistent images of the data too.
Oracle does this in a blazingly fast manner -- and so scales in a manner that occasionally makes grown men weap. So I ask again, y'all looked at this one, key new feature?
Cheers,
Scott
Someone didnt like hearing the truth.
emt 377 emt 4
Well and I guess we should just take your work for it, don't we? I've actually used C# Express Edition Beta that was available a few month ago and it was unusable. Which means it crashed every five minutes for no apparent reason
.NET api, e.g. layout managers for Windows Forms and custom controls in DataGrid.
.NET comunity, I'll be happy to stick to the freedom and quality of Eclipse and Java for now.
at all. Granted, this was the beta, but you insist that even the betas were great.
I don't know about 2005, but when I set myself to use 2003 to develop a small accounting application I was amazed to discover the lack of basic things in the
Basic UI components were not available except as petty 15 dollars packages or stupid shareware.
Also the project and IDE configuration is cumbersome, things that should have been straightforward were hidden in obscure menus and so on.
Have fun with your crappy Visual Studio and
See:r esultsets_in_sql_2000_and_sql_2005.htm
http://jdixon.dotnetdevelopersjournal.com/paging_
which has a good comparison between the two techniques: one for sqlserver 2000 and one for sqlserver 2005. You'll notice the 'with' statement and row_number, which are used together as a common table expression (CTE) which is an in-scope temp table without needing the temptable. It's incredibly powerful.
Never underestimate the relief of true separation of Religion and State.
OO is useful to a degree when it comes to database applications. However, there are a myriad of reasons hey you should push business logic into the database layer.
.Net, etc. - you cannot guarantee that libraries (if they exist/are comprehensive enough/are general in implementation) are reusable, much less properly reused. In this case it is best to plan for a single/manageable interface set based on views + stored procs you know you can maintain to abstract database schema changes from applications.
But before I get to these there is something to be said for implementing abstaction layers by providing interfaces and hiding implementations behind interfaces. You can thing of stored procedures and views in a database as just an interface layer between application components. When you do that, it becomes clear that stored procs and views are just another tool in the arsenal of a well rounded developer.
Back to why you might use views/stored procs. Let's start with complex applications environments. When you're dealing with multiple applications - some legacy, some new, written across a set of technologies - COM, JAVA,
In database land you must have consistent, repeatable, up to date data. By housing business logic in the database, you expose to users standard views and procedures that ensure that consistency is maintained between inserts, updates, and deletes. Often these same mechanisms are used to prevent too much access to data. For example, you can preven value that are out of bounds based on expectations of business processes/relationships existing in your database.
Since databases house complex relationships (not uncommon to have to join across 5 tables to get the result you want), to think that the application layer should contain this complexity is to build a fragile system open to errors made by developers who do not fully understand the system, or if so make assumptions about what can/will change in future that are not property grounded.
Continuing, maintainability/business agility is increased with proper use of views/stored procs. If only code is used to access database information, it is much more difficult to update all the destops in your company when a database schema changes than it is to update the innards of a stored procedure with a well known interface. As such any logic that pertains specifically to reading/updating/deleting content from the database should at least be evaluated against a similar implementation that is in the database itself.
So with that you need to take C# in the database for what it is worth - it allows you more easily to define complex business logic (types, behaviors, interfaces) than the comparative T-SQL. As such it speeds development of database applications. It makes database maintenance easier by making the code more easily read/updated. It also lowers the bar to having good database logic by reducing the need for highly complex T-SQL. For these benefits there are drawbacks - portability, perf, etc.
As a professional developer/DBA it is up to you to be able to make these tradeoffs. It is not as simple as saying OO is the right way to go always - that's a purist's approach. Purists have issues in business environments where tradeoffs are required to achieve the expected objectives in the given amount of time and with the given set of resources.
Or you look at it another way arround. Your Persistence Layer is the DB tables and your Biz Logic is the stored procedures.
Abstraction? Consistent interface? Application logic? Business processes and procedures? Sorry. That's the app server's duty.
Then I will disagree with you. How many layers you want in your application/data model may vary. Not all apps are written to be n-tier and über-scalable enterprise applications, simply because it's not always needed and in those cases considered a waste of time, effort and resources.
For some tasks and business needs using stored procedures to provide a concise interface to the data is sufficient, even though there may be several different kind of client-apps. Why waste your time implementing a application server if you dont need one? Also most quality databases do some form of query optimization that's beyond anything you will ever do in your application-server code, so by using an application server when not needed, you are probably just throwing away performance in the name of politics.
I see you have a grudge against stored procedures and actually letting the database to what it was designed to do, namely manage the data, but I don't understand why.
Not Buzzword 2.0 compliant. Please speak english.
Sorry about the threadjacking, but I'd just thuoght I'd offer this public service announcement.
A summery of the following discussion:
That's about it really.
Not Buzzword 2.0 compliant. Please speak english.
If you have a distinction between software developers and architects stored procedures are the *least* of your problems.
I haven't been using Erwin myself, I just know that the community in #postgresql irc.freenode.net listed it as one of the higher end tools.
In the future, I hope to create a comprehensive, unbiased review of the different administration tools for PG, so potential adopters can identfy tools that meet their requirements best.
dbvis is a nice bit of software and works with any db that has Java drivers, i.e. most of them. See here.
The URL for pgAdmin III would be http://www.pgadmin.org/ :-)
So, "WinForms" is marketing-speak for a Windows application, but "ClickOnce" is marketing-speak for... what exactly? It might surprise you to know that many Slashdot readers do not keep up with the latest Microsoft neologisms. :-)
But does it run on linux?
I admit that SQL Server 2005 looks pretty good. On the analysis side they've fixed a lot of really nasty conceptual problems from SQL Server 2000. The integration services looks like a Datastage killer. The database engine is becoming more like Oracle every day! The only big difference I see is that SQL Server wants short transactions yet Oracle likes long running transactions. MSDTC is still a pain!
I do expect people will find upgrade costs though. Dot-Net-2 is quite different to Dot-Net-1. The analysis server model is completely different and has some interesting conceptual subtleties. The systems seems to be aimed at a more secure configuration which means that admins are going to have to become more familliar with concepts such as minimum privelage accounts - which are actually very complex on Windows.
A big issue is the cost of the thing. The prices I'd heard were on a par with Oracle. You start getting the Oracle like functionality, and start paying for it.
SQL Server is tieing even closer into the Windows Active Directory model. It looks like if you have Active Directory it will fit in. If not, then I wouldn't be surprised if before long you're forced into it - which also means Microsoft servers everywhere else.
> Keeping the business logic out of the database may be good for you if the only thing your database ever talks
> to is a web app, but lots of us have databases that talk to a LOT of different applications.
This is why you create a shared library or module.
The other poster is right, though: putting application logic into the database will become a source of many headaches, not the least of them being that the developers have to fork off a copy of the entire test database every time they want to create or test a new feature in the application, or if they don't it messes up the application for all the other developers until they finish the new feature. To solve that you end up giving each developer his own server with his own copy of the test database, and then you end up with bugs that one developer can reproduce and the others cannot, or vice versa, and then you have to figure out how to merge all the developers' work periodically. (Oh, sure, they're *supposed* to keep in sync constantly, putting every change they make into the central database once they check that it works as intended. Nice theory; too bad source control systems don't support stored procedures in the database.)
Stored procedures are okay for stuff that closely relates to the database substructure anyway, e.g., construct me a temp table that has these columns from this table and those columns from that one, or something along those sorts of lines. However, when you start getting 500+ line stored procedures that do things you have buttons for at the application level, you are cruisin' down a highway that leads to suffering.
Cut that out, or I will ship you to Norilsk in a box.
"...several users who have tested the software cited the improved performance and new functionality it brings as positive..."
Did the users upgrade their hardware at the same time, per chance?
What technology was being used for this and what kinds of errors? One of our hopes for using Business Universes or Data Models is that they can be used to shield users from common mistakes that would lead to incorrect reports.
For example, one common problem we run into is aggregation of quantities in hierarchical one-to-many relationships, AKA fan traps. Essentially, when you have table A -= table B -= table C (where '-=' represents a one-to-many relationship) and you need to be able to sum on a measure in table B and see fields in table C, you will end up getting incorrect sums. This is due to the fact that the measure from B is repeated for each related row in C, which throws off the sum. Business Universes can (supposedly) prevent users from getting themselves into trouble with fan traps if you set them up properly.
Another way of transferring a list of information to a sproc is to send in xml, prepare it with sp_xml_preparedocument and then query it using openxml(...)
Task Mangler
On behalf of the non-heterosexual people I know who are not in any way useless, failures, bad, irritating, enfuriating, or a let down: gay isn't an appropriate word to insult a crap computer program. My friends are cool and using 'gay' as a derogatory term is either an illustration of a prejudice or the lack of a vocabulary on your part.
You are the Man/Woman! I've really been digging into what place stored procedures have in modern development. Your post was very helpful and insightful. It's this kind of stuff that gets me so excited that I want to go back and rewrite all of the apps I've ever written. That'll never happen. But boy wouldn't it be nice if we could pause time to go back to update all of our code with all of the latest lessons we've learned?
> What technology was being used for this and what kinds of errors? One of our hopes for using Business Universes or Data Models is that
> they can be used to shield users from common mistakes that would lead to incorrect reports.
good question - this was financial analysts using sas. which would lead to more errors than users with metadata-driven reports.
but even when using microstrategy, business objects, etc I've seen some of the same thing. Since warehousing is usually an iterative effort, the data architecture changes over time. These changes can require users to make changes to old reports - such as adding new filters to old reports to continue to get the same meaning that they had before.
Regarding fan traps - that's great if the tool can prevent it. But why are you seeing it in the first place? Is this a measure in a fact table that is repeated across many rows and requires complete grouping to be additive? Is it a measure in a snowflake dimension(rare)? Or is it a column in a relational (not dimensional) model that is also supporting reporting? If the latter case then, I wonder if a better solution is a reporting model that would potentially solve this as well as dozens of different performance problems at the same time?
Great post (no mod points to give you, unfortunately). However, the "modern breed" of application programmer doesn't know why/how/when transactions are a good thing (and thus, doesn't use them and will actively post about how they aren't needed) so, most likely, your great post will be ignored by them.
Regarding fan traps - that's great if the tool can prevent it. But why are you seeing it in the first place? Is this a measure in a fact table that is repeated across many rows and requires complete grouping to be additive? Is it a measure in a snowflake dimension(rare)? Or is it a column in a relational (not dimensional) model that is also supporting reporting? If the latter case then, I wonder if a better solution is a reporting model that would potentially solve this as well as dozens of different performance problems at the same time?
We're not quite that sophisticated yet. We're reporting from an offline copy of an OLTP updated nightly that has some pre-joined optimization. We are looking at using more data warehousing techniques, but this is perceived as enough of a challenge for us in training, time and money that it is a project for later on.
The reason we worry about fan traps is that we know our end-users would get themselves into trouble with them if they had to report off of the relational schema directly and this in itself would stop us from rolling out tools to let them make their own reports. With a semantic layer in between the relational schema and the user and with neat graphical tools for them to use, allowing them direct access to the data becomes feasible. We hope.
Ah sweet!
Well that's definitely a much better solution than the traditional workarounds, which I absolutely loathe.
See, I had looked at other whitepapers for 2005 and they never elaborated much on paging result sets! They simply had a sentence or two about row_number and had nothing else to say.
That link though - good stuff. Thanks!
We have secretly replaced these Slashdot mods' sense of humor with a rusty nail. Let's see if they notice!!
Let's examine your post. Instead of addressing the crashing and bugs mentioned in Mini's blog you:
1.) List the types of applications VS can compile, as if that has anything to do with anything
2.) List the architectures it can compile, as if that has anything to do with anything
3.) Breathlessly declare that we can try it free with the crippled Express Editions
4.) Decide all the criticism is just "blind hatred" without addressing any of it
And this gets upmodded to +5? My theory that militant Microsoft defenders are invading Slashdot is proven correct.
VS2005 is getting a service pack. Face it, you were fucking WRONG. You're a tool listing marketing talking points.
"Sufferin' succotash."
Did you actually use VC2005, or did you just read a crappy blog entry and assume it fact >.
I actually used it, moron. "Crappy blog entry?" You do know that Mini-MSFT is a Microsoft employee who uses VS every day?
It can compile code for a wide variety of applications, such as:
What the hell does this have to do with all the crashing bugs in VS2005? Besides, that's the compiler, not the IDE, which is the problem.
It also supports a wide variety of CPUs:
Again, what does this have to do with the crashing bugs in VS2005? Do you think the longer you fill your post with marketing stuff, the less bugs VS2005 will have?
How sad is it that someone can raise valid complaints about VS2005 and point them out, and all someone on Slashdot has to do is say, "Looky, VS2005 can compile the following CPUs!" and get modded +5? As if any of the criticism regarding the crashing IDE was refuted or addressed here.
*sigh*
The tools may be good; the huge problem preventing me from moving to PostgreSQL is the last of Master/Master replication. I looked about a month ago and the best I could find were a few projects that look like they had been abandoned.
> The reason we worry about fan traps is that we know our end-users would get themselves into trouble
> with them if they had to report off of the relational schema directly and this in itself would stop us
> from rolling out tools to let them make their own reports. With a semantic layer in between the
> relational schema and the user and with neat graphical tools for them to use, allowing them direct
> access to the data becomes feasible. We hope.
cool - anything that can help you get there iteratively is probably a good thing.
good luck,
ken
Those layers have nothing to do with object orientation, and everything to do with a school of thinking in systems architecture. Object oriented databases comingled persistence and business into the same layer. Was that not OO?
-Stu
The only problem with TPC-C, which is why they keep the results in a split-list, is that it doesn't really test cluster nodes uniformly, i.e. something like 80% of transactions can be co-located on a cluster node. This makes shared-nothing approaches look much more scalable and performing than they actually are with many real world cases.
-Stu
I've actually used C# Express Edition Beta that was available a few month ago and it was unusable.
I don't use C# - the best way to write a Windows program (at least for me) seems to be using the Windows API (not MFC) with C++. As for the betas, I didn't (and can't) speak for all of them. Of the ones that I've actually used (betas 1 and 2 of VC2005 and the Microsoft Anti-Spyware beta) they have been perfectly stable. As for Visual Studio 2003, I hated it because it was incredibly slow compared to my then-favorite VC6. But "hate" is kind of a strong word for using it for only a half hour.
So far, I've avoided C# and .NET like the plague, simply because I believe rather strongly in the importance of writing native code. I want the control writing for a "real" processor gives you. I want to be able to bust out machine language right in the middle of my code if it helps to alleviate a bottleneck. Granted, "virtual machines" and Intermediate Language(s) have come a long ways - but competently written interpreted code will never be as fast as competently written native code. Granted, native code is worthless on multiple platforms, and granted, there are more processors than t3h x86 nowadays. But, from one compiler on one architecture (I'm too lazy to copy my list from my previous post) you can write native code for a royal crapload of architectures - and apply your own optimizations for each one as you please.
So, long story short, I can't help you with C#. Have you tried #include <windows.h>? Start from there, and let the HWND magic flow...
DATABASE WOW WOW
Just one more bloatware from microsoft. First it asks dot net 2.0, then MDAC 2.8, then it won't intall. On W2k at least.
Do you like the Query Analyzer? So you will have to purchase SQL Server to have it.
Most of those were not around back in 2000 when I rolled out my MSSQL server. Plus, you either had to muck with cygwin (not always a pleasant beast) or wait until recently for PostGreSQL to run on a MS-Windows server.
The tools have improved a lot in the past few years. Having a native Win32 version of PostGreSQL makes a big difference to those of us who *want* to leave MS behind but can't do it in one fell swoop. There's only so many things you can change per annum in a working system before you drive yourself crazy. (Plus, we've already bought and paid for that copy of MSSQL, so it's sunk cost.)
Our next migration will definitely be to move our databases off of MSSQL and onto a PostGreSQL platform. Saves us a few grand in licensing/upgrade fees. That's worth the time to retrain the few folks who have to work directly with the database.
Besides... I get final say in which product we use.
Wolde you bothe eate your cake, and have your cake?
I chose to. What would the GGP do if I was homosexual and offended by his use of that word? What would you do if the GGP had used 'black', 'chinese', 'arabic' or 'muslim'? These are adjectives that describe a group of people, and disparaging people based upon ethnicity or religion has been socially unacceptable for years. Disparaging people because of their natural sexual preferences is also unacceptable, and I chose to make that point in support of this minority.