ADO.NET 2.0 - The latest update.

Published Thu, Jul 1 2004 22:59 | William

I had the pleasure of speaking with Angel Saenz-Badillos of the ADO.NET team this evening and it was way cool.  He's got to be one of the coolest guys I've chatted with in a long time.  Anyway, I'm tired as heck so I'll write up a  bunch of notes this weekend when I have some time but it was very enlightening.  Objectspaces and ResultSets  are off the table as is Paging.  There's no official word but I didn't get the vibe that Objectspaces were on the list at all - not even in a future service pack as has widely been reported.  Ok, so that's the bad news, what's the good news?

Well, MARS is still going to be implemented and IF used correctly, there's a huge potential for some serious performance increases.  BulkCopy is another feature that's definitely on the Cool Feature list.  I ran a loop while I was at the gym to pump my SQL Server with dummy data so I could test it out.  I figured 10 million records ought to be a good enough test for now.  So got back, did  a DataAdapter fill, (which took FOREVER), then in on line, tried a Bulk Update.  It was UNREAL.  Unreal is not even the word for it because, well, it was real.  But don't take my word for it, if you have the new framework, try it out for yourself.  You can shove 50,000 records into a db so fast you won't believe it actually worked.  I'm still in shock over this.  The Batch Update feature is pretty darned cool too.  I can't do it justice now, but there's  a lot to write here and it's ALL GOOD.  Two other really cool features...SqlConnectionStringBuilder - I know it sounds dorky and useless but it's precisely the opposite.  And there's the TransactionScope in the System.Transactions namespace (you need to add a reference to System.Transactions if you want to try it).  Works with SqlClient, OracleClient and MSMQ.  It's another thing I'm still in shock over b/c it works and so far, it works perfectly.  If you are familiar with Distributed Transactions and what a pain they USED TO BE (or could be), you'll fall in love with this immediatley.  Again I can't do it justice without a full write up so I'll have to defer.  I promise though, I'll get it out this weekend.

ADO.NET 2.0 is so damned cool.

Comments

# William said on July 2, 2004 9:49 AM:

Remember my Mr. Certs story? The bcp API from that story is what you are talking about. I was using it via ODBC in raw C. Apparently they must have wrapped that API for ADO.NET now. Remember how I was saying I can now push 500,000 to 1,000,000 records into the database across the network in around 20 seconds? That is because of that API. I think the bcp API has to be one of the coolest features in Sql Server it's nice to see they wrapped it for .Net now too. I wonder if they fixed the permissions issue. When I was first doing it you had to connect as a datbase owner or it would give you an error saying the bcp API was only available to be run by owner level connections. Can you do it in ADO.NET with permissions less than owner? If you can that means they changed the underlying API and I can reconfigure my connection protocols. I hate having apps that run as owner, to much bad sh!t can happen if you f#ck something up. But then again I can understand the logic behind that setting though. Do you really want somebody pushing a million+ records into your database if they aren't an owner?

# William said on July 2, 2004 11:17 AM:

Yes, definitely remember that. I think he interviewed here yesterday ;-). I haven't played with the permissions b/c I was doing it at home and just using ADMIN. I'll have to tinker when I get home. It's definitely got the potential to wreak havoc in an idiots hands - no doubt about it - and for that matter - SO DOES ALL OF THE NEW STUFF.

Literally, all of it with very few exceptions.. YOu get some SERIOUS new power and a LOT Of rreally cool functionality - but put it in the hands of a dipshit that thinks he can just wing it without understanding how it works, and KABOOM. MARS seems like the best candidate as does notification services but there's plenty more. About the only thing they won't get in trouble with if they use wrong is the BinarySerialization of Datasets ;-)

# TrackBack said on July 7, 2004 1:24 PM:

Search

This Blog

Tags

Community

Archives

News

My other sites

Cool Stuff

Book Stuff

Security

ORM

Data Access

Funny Stuff

Compact Framework Stuff

Web Casts

My KnowledgeBase Articles

My MVP Profile

Design Patterns

Performance

Debugging

Remoting

My Fellow Authors

My Books

LINQ

Misc

Speech

Syndication

Email Notifications