A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.
Microsoft is planning to provide a default database instance name of SQLEXPRESS for SQL Server 2005 Express edition. The other editions of SQL Server 2005 will default to the unnamed database instance name, as is the case with SQL Server 2000 and MSDE 2000.
I’ve blogged about some of the technical details here:
SQL Server 2005 Express is the successor to MSDE 2000. Microsoft’s case is that with MSDE 2000, it often resulted in a variety of instance names being used. A machine might end up with three or four instances of MSDE 2000 running at the same time. Microsoft believes that this problem will be overcome with SQL Server 2005 Express by providing a default common instance name that application developers can target.
I’m not convinced that this will solve the problem and I think it will lead to confusion. This is because developers/users will need to understand the SQL Server instance name environment. This is something that they don’t have to do if the default unnamed instance is used.
For example, it will not be possible to connect to the default SQL Server 2005 Express instance by specifying “(local)” or just the computer name. Instead you will always have to specify ComputerName\SQLEXPRESS.
Are you one of the developers who target MSDE 2000 and require a named instance? If so, will the SQL Server 2005 Express strategy alter your way of thinking?
What do you think? Will it solve a problem or will it cause confusion?
Friday, March 04, 2005
I think the \NetSDK instance name you're seeing is an example of a product (The .Net SDK) choosing an explicit instance name for a demonstration MSDE database that it installs. I still think the default instance name for MSDE 2000 is the unnamed instance.
The 'problem' for installers is that they might treat SQL Server 2005 Express like any other edition of SQL Server and simply install it. Then they will not be able to connect to the database until they have understood how the named instances work. I know it is not a major issue for technical people but its just something else designed to confuse the normal person for no benefit.
The 'problem' for application developers is that they can't treat SQL Server 2005 Express edition just like any other edition with respect to instance names. They have to code and/or document for SQL Server 2005 Express differently. Again, this isn't major but it is something that will be unnecessarily more complex for no benefit.
By the way, I have some feedback directed to my blog that suggests this might be a deliberate strategy by Microsoft to confuse people. If they can't get the free SQL Server 2005 Express edition working easily then they might opt for a chargeable edition instead. Interesting theory.
Saturday, March 05, 2005
Wow. This is a real pain in the ass for me. Good to know.
The real issue for me is that now I need to know what DB they have installed. Today I don't care if it is SQL Server pr MSDE; (local) just works.
Also, the only products I've seen install crazy MSDE instances from hell are Microsoft. .NET, Small Biz Server, etc. all install their own instance.
Seems to me that could have just solved this with a memo from Mr. Gates. :)
Mike, yes, you are in fact correct, the NetSDK is the .net framework, WSS does a similar thing with its MSDE instance...
To address your points:
>The 'problem' for installers is that they might treat SQL >Server 2005 Express like any other edition of SQL Server >and simply install it. Then they will not be able to >connect to the database until they have understood how >the named instances work. I know it is not a major issue >for technical people but its just something else designed >to confuse the normal person for no benefit.
The target audience for something like SQL Server is a technical audience. I can't see a great deal of novices attempting to install this. and if they do and can't figure it out, well Usenet will have the answer for them I'm sure. SQL Express, for my mind, replaces SQL Dev edition - so I don't think of it as end user oriented software
>The 'problem' for application developers is that they >can't treat SQL Server 2005 Express edition just like any >other edition with respect to instance names. They have >to code and/or document for SQL Server 2005 Express >differently. Again, this isn't major but it is something >that will be unnecessarily more complex for no benefit.
The only thing they should have to "code" differently should be the db connection string and this should be documented in the same place the names of the servers are documented. So your server config document, instead of saying SQL Server at xxxx, would say SQL Server at xxxx\instancename or similar
I'm looking at this topic from the perspective of an ISV that provides an application that uses SQL Server. I've either got to provide a setup procedure that installs and configures SQL Server for the customer or provide sufficient documentation for the customer to do it himself. The customer can choose which version and which edition of SQL Server he uses. He may or may not have an instance of SQL Server already installed.
A customer will choose SQL Server 2005 Express and install it but might not appreciate that a default installation results in a named instance. He will then come back to me for a solution if the application I've supplied doesn't appear to work with the database instance. I've already had this happen. I wouldn't have that support problem if Express was like all other versions and editions of SQL Server.
As Marc has pointed out, to work seamlessly with Express, an application will need to determine whether the installation is an Express or a non-Express installation. You are right about the solution but that pre-supposes that we know whether the customer is going to use a default Express installation or a default non-Express installation. Again, we wouldn't have this development/support problem if Express was like all other versions and editions of SQL Server.
My purpose in highlighting this here is twofold:
1) To make ISVs aware so that they can plan accordingly for Express.
2) In case anyone felt this was a big problem for them, to encourage them to lobby Microsoft as part of the SQL Server 2005 beta program. Enough feedback could get Microsoft to make Express work like the other editions. Alternatively, it could at least make "(local)" resolve to the default Express instance if no other editions of SQL Server are installed.
SQL Server 2005 is of course still in beta and so it is possible that Microsoft will take a different final approach for default instance naming with Express. However, I have to say that the feedback I've received suggests that Microsoft is likely to continue with the strategy in SQL Server 2005 Express Beta 2 through into the production version.
I guess only then will we see whether this issue is a real problem or not.
Wednesday, March 09, 2005
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz