Archive for September, 2007

It's 9/25. Do you have your Halo 3?

I knew the Halo 3 launch date had arrived last night when I look over and see my 1 1/2 year old putting on the headset and grabbing the controller.  I had to take a a few quick snap.  (never mind his dirty shirt — he had just finished eating without a bib!)

2007-09-25 001 035

Connector/Net 5.2 now supports batching

Just finished checking in initial support for batching in 5.2.  Even though MySQL doesn’t support batching in the protocol, the connector sends updates and deletes in multi-statement fashion (read: sent at the same time but separated by a semi-colon).  For inserts the connector tries to be a little smarter.  If the insert command is simple and uses a simple VALUES(…) block, then it will construct a multi-value INSERT statement of the form INSERT INTO <table> (col, col, ..) VALUES (…), (…), (…).  This is significantly faster for the server than sending the inserts in multi-statement mode.

For those not familiar with .NET, we have an object called a DataTable.  This object contains columns and rows and is what the user uses to insert, update, and delete data on the client side.  When the user wants to update the data on the server, this table (or a series of these tables) is passed to the MySqlDataAdapter.Update method.  A data adapter object holds references to at most 4 different commands, one each for select, update, insert, and delete.

For each changed row in a data table, the data adapter will choose the appropriate command and ask that command to execute giving it the values in that data row as parameters.  A user can set the data adapter’s UpdateBatchSize to tell the system how many commands should be sent at one time in a “batch”.  Setting it to 0 tells it to send as many as the server will allow.

Batching saves tons of time when you have many rows of the same operation in a data table.  For one it saves on network round trips.  To get an idea of how much faster batching is I ran a simple test.  I inserted 100,000 rows into a data table and then setup a data adapter to do the insert to a database running on Ubuntu in a virtual pc I was running (just so the network round trip wasn’t just to localhost).

Without batching:  1 minute 47 seconds

With batching:  4.5 seconds.

Yea.

NCover is now commercial, but friendly to open source

Unless you’ve been coding under a blogosphere rock  you’ve heard that NCover has now gone commercial.  NCover has become a staple in many developer toolboxes.  I can understand this move.  People are so busy today that it’s becoming increasingly hard to get people to contribute time to a good open source project.  And even fewer contribute money.  Unless you are functionally wealthy (read: actually wealthy or a nothing-better-to-do college kid), finding the time to significantly push projects forward can be daunting.

So the guys behind NCover and NCoverExplorer have banded together and formed a new organization named Gnoso.  Their first product is NCover 2.0 (now up to 2.0.1) and is available in x32 professional and x64 enterprise editions.

While the prices of these two products are fair, I really appreciate their friendliness to open source.  They are offering free pro licenses to developers who fall into one of three different categories:  prior donators, educational developers, or open source developers.  You can read all about it here.

I’ve got my license.  Have you?

Connector/Net working with Visual Studio 2008 beta 2? Oh yeah!

Microsoft says that Visual Studio packages are binary compatible from 2005 so any packages that loaded successfully into VS 2005 should work in VS 2008.  Err, no.  At least not with VS 2008 beta 2.  I admit it didn’t take much of a change to fix things, but it wasn’t seamless.

So, I just committed a patch to our trunk repository that enables Connector/Net in VS 2008 beta 2.  Here’s a shot of it running.

image

This trunk repository will eventually be our 5.2 release and you can grab a sneak peek by pulling a snapshot from here

MySQL Connector/Net 5.1.3 RC has been released

Hi,
MySQL Connector/Net 5.1.3 a new version of the all-managed .NET driver for MySQL has been released.

Connector/Net 5.1 represents a change in how we package our products. Until now, we’ve shipped our core provider and the Visual Studio integration bits as separate downloads. This has become a bit of a problem. Often we would fix a bug that involved changing code both in the VS package and in the core provider. This provided a versioning problem where users would need to upgrade both products to see the benefit of the bug fix. To solve this, we’ve decided to discontinue Tools for Visual Studio as a separate product and have, instead, integrated it into a new Connector/Net installer. We hope this provides a better “out of box” experience for our users.
All previous versions of Tools for Visual Studio should be uninstalled prior to installing this product.

Version 5.1.3 works with all versions of MySQL including MySQL-4.1,  MySQL-5.0, MySQL-5.1 beta or the MySQL-6.0 Falcon “Preview”.  Please be aware that this version is beta quality software and should not be used in production environments.

It is now available in source and binary form from [http://dev.mysql.com/downloads/connector/net/5.1.html] and mirror sites (note that not all mirror sites may be up to date at this point of time – if you can’t find this version on some mirror, please try again later or choose another download site.)

For a full list of changes, see the full announcement with change log here.