Wednesday, January 31, 2007

Step right up! Get your fresh PowerShell!

PowerShell RTM is finally available for Vista RTM.  Now let's just hope it's faster than all the beta and RCs.

Friday, January 26, 2007

MySQL Tools for Visual Studio 1.1.0 Alpha released!

Today we have released the first build of MySQL Tools for Microsoft Visual Studio 1.1 -- a downloadable plug-in for Visual Studio 2005 that allows Windows developers to quickly build MySQL data-driven applications with Visual Studio. With this plug-in, developers will be able to create, modify and manage MySQL database objects with an easy-to-use interface from within the Visual Studio IDE.  This product is delivered as a package compatible with Visual Studio 2005 and delivers the following features:

This release builds on the original 1.0 plugin by adding support for using the DataSource wizard and the DataSet designer in Visual Studio 2005.  The Data Source wizard can be found by choosing Data|Add Data Source from the Visual Studio menu.  It provides a way to connect the generic data-handling capabilities of Visual Studio to our provider.  Once a data source is added then custom datasets can be created using the DataSet Designer.  Using this designer, you can drag and drop database tables onto the design surface and use the created TableAdapter classes to populate the tables.

MySQL will be presenting a webinar showing these new capabilities.  You can find the details of this webinar and register for the event at

MySQL Tools for Visual Studio binaries are currently available under a no-charge license.  We plan to release the source code and are currently determining what license the source code will be placed under.  The plug-in
can be downloaded from

Thank you for  your time and effort in checking out this product.  Please don't hesitate to use the following resources for posting your bug reports, questions, or concerns.

Bugs:   (use the Connector/Net category)

Thursday, January 25, 2007

Another reason by MSI is better than NSIS

I hate MSI authoring as much as the next man and still don't know why I can't use non-GUID IDs that I select to control my components.  I might have to use a GUID to identify the particular company and maybe even my particular product, but inside that product I shouldn't have to wrangle with GUIDs. But I digress...

Recently I've been looking at NSIS and wondering if it would be a better option for delivering my products.  It's simpler than WiX and has a nice community following complete with a healthy library of extensions and plugins.  The problem is that it's not MSI based and so there are things that MSI handles for you that you have to do manually with NSIS. 

One example is making sure that Add/Remove Programs doesn't show prior versions of your app.  With MSI a person simply needs to set a ProductCode and UpgradeCode (both GUIDs).  With NSIS you're left with scanning for registry keys or files from the prior install and then manually updating the Uninstall registry key.  Doable but just feels dirty.  And it's easy to forget to do this.  Here's a screenshot of my Add/Remove programs after installing Thunderbird 2.0 beta 1 and then upgrading to beta 2.

Vista annoyance number 87

Can someone please tell me why I have to suffer a UAC prompt elevation to set environment variables for myself?  And please don't try and justify it by telling me the UI for setting user environment variables is in the same place as system environment variables thus requiring an elevation.

Yet more evidence that Vista is simply half-baked.

Monday, January 22, 2007

Don't ask me how I know

Don't remove your normal Vista user account from the Administrators group and give the Administrator account a known password without also enabling the normally disabled Administrator account. 

Trust me.  And don't ask me how I know. 

Wednesday, January 17, 2007

Robocopy looks powerful

That's what I get for not reading Matt's blog more often.  I just noticed he posted an entry about Vista now including Robocopy.  I've heard about Robocopy for sometime now.  With features like job scheduling, monitoring folders for changes, and copying only changed files I wonder if I could use that for a simple network backup tool.  Hmm..

Now this is cool

Great to see Mono appearing in some commerical products.

Tuesday, January 16, 2007

Building MySQL using Orcas

I downloaded and setup the VPC image for the new January CTP "Orcas" of Visual Studio.  I plan to use these bits to better integrate our provider into the new Entity Framework.  But before that can happen, what is any self-respecting developer going to do with a fresh install of the next version of Visual Studio?  Why try to build MySQL with it!

We use CMake as our project file generation tool and so the first step was to install it and a couple other items into the VPC.  That done, I tried to generate the project files.  CMake errored out saying that it could not find Visual Studio 8.  A quick edit of the VS8 template file for CMake and that was fixed. 

Ten minutes after booting the VPC for the first time, I'm happy to report that I have MySQL 5.1 happily compiling inside of Visual Studio "Orcas".  I'll work through fixing a couple of bugs using it and report back on it's C++ stability.  [Not that I really care.  I'm here for the entity framework and LINQ]

Thursday, January 4, 2007

MySQL Connector/Net 5.0.3 GA has been released

MySQL Connector/Net 5.0.3 GA has been released. MySQL Connector/Net is an all-managed ADO.Net provider for MySQL. This release is suitable for production use with MySQL versions 4 and higher.

It is now available in source and binary form from the Connector/Net download pages at [] 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.)

Changes since 5.0.2

Bugs fixed
Bug #23687 Deleting a connection to a disconnected server causes a failed assertion
Bug #24565 Inferring DbType fails when reusing commands and the first time the value is null
Bug #24661 mysql-connector-net-5.0.2-beta Driver.IsTooOld() Error....
Bug #23905 Stored procedure usages is not thread safe
Bug #25033 Exception raised/ HANG if no SELECT privileges granted for stored procedure call
[this is a correction; a previous change log entry indicated that Connector/Net
no longer required select privs on mysql database. This is not true and select privs
are required. This will be fixed when the server exposes procedure parameters via
information schema.]
Bug #25013 Return Value parameter not found
Bug #25151 Reading from the stream has failed Exception in MySQL Connector 5.0.2
Bug #22400 Nested transactions

Other changes
SSL now working. [Thanks Alessandro Muzzetta]
Fixed ViewColumns GetSchema collection
Improved CommandBuilder.DeriveParameters to use the procedure cache if possible

We have added a new connection string option named 'Ignore Prepare'. It is
a boolean option and its default value is true. This option, when true,
instructs the provider to ignore any calls to MySqlCommand.Prepare(). We
decided to do this because we have discovered some inconsistencies with
server side prepared statements which can lead to incorrect or damaging
results. If you are sure you want to use server-side prepared statements,
then you can add 'ignore prepare=false' to your connection string and it
will behave as before.

Highlights of the 5.0.x Connector/Net releases: 

  • Support for ADO.Net 2.0 interfaces and subclasses
  • Re-architected to improve speed and flexibility
    The internals of the provider have been improved to allow column values to
    be retrieved without boxing in many cases. Also, the internal changes have
    enabled the future inclusion of embedded and client library support. 
  • Implemented Usage Advisor
    The Usage Advisor first appeared in Connector/J. We have now implemented
    that feature in Connector/Net. Enabling it causes the provider to check
    both your queries and how you read the results and report to you if it
    thinks you are using the provider in an inefficient manner. It checks such
    things as using a query without an index, not reading all the columns or
    rows from a resultset, etc. 
  • Implemented asynchronous query methods
    The MySqlCommand object now supports asynchronous queries. This is
    implemented using the BeginExecuteNonQuery and EndExecuteNonQuery methods.
    BeginExecuteReader and EndExecuteReader are now included. 
  • Implemented stored procedure metadata caching
    We now cache the metadata that is retrieved during stored procedure and
    stored function execution. This cache data is used for subsequent
    executions of that stored routine. 
  • Added PerfMon hooks
    This release includes PerfMon hooks to monitor stored procedure cache hits
    and misses. We are looking at adding additional hooks in the first beta
  • Removed use of SharpZipLib library
    We have replaced use of the SharpZipLib library with the deflate support
    available with .NET 2.0.

Support for embedded server and client library has been removed
For those of you that have seen my presentations on 5.0, we decided to
remove these features to help get 5.0 out the door more quickly. These
features will reappear in a later version of the product.