Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
241 views
in Technique[技术] by (71.8m points)

c# - Do I have to install sql server on each client if my software uses it?

If we develop some software in c# (or basically .Net), we don't install visual studio to any client. The client just have to have required .Net framework (1.0, 1.1, 2.0, 3.0 etc) installed and we are good to go.

Same way, if we are making making an app in VC2008, he just needs to have Visual C++ 2008 runtime (available from MS site free, about 4-5Mb). So, basically, we just need runtime environment. but there isn't any SQL server 2008 runtime (or I am not aware of it?).

So, my question is if my software is using SQL Server 2008, what runtime (or anything else) will be required on client side for it to work?

Also, one more thing, I see there is an SQL Server express edition, which I can supposedly use in deployment, but it seems kinda heavy knowing that if my software if just 5, 10 or 20Mb I need to install about a gig just so user can run it.

Lastly, if I am using SQL Server 2008 Developer Edition (which I am, or enterprise one not sure) and I installed SQL Server express on client, wouldn't it cause some problem if my software uses some features that are not supported in express edition? (say number of database, or concurrent connection, or anything).

So? What runtime is required for it? And if installing sql server express is the only option, what if I am using some features that are not supported in express edition? Surely, I can't go on doing a full install of developer edition on each client!

EDIT: In case this is of any help, my current project is a library management system, and it will be installed the client (the computer of the librarian for whom I am making this), so there is no case of server-client here. So should I install sql express on his computer? Also, as YvesR pointed out in his answer, that link only shows three editions (main ones), but http://msdn.microsoft.com/en-us/library/cc645993%28v=SQL.110%29.aspx shows more detailed comparison. So, in this particular scenario that I just described, would it be sufficient if I just deployed and express edition on client's machine?

Now, about what I said about some functions not being available in express edition, http://msdn.microsoft.com/en-us/library/cc645993(v=SQL.110).aspx#CrossBoxScale shows that express edition is limited to a database of size 10Gb, now I know that is more than enough in the scenario I described above, but what if in some other case I need more than that? Than express edition won't do it, than how should I deploy?

Finally, http://www.microsoft.com/sqlserver/en/us/get-sql-server/how-to-buy.aspx shows two more edition, Compact and Developer, I know about developer but what is this compact edition? And more importantly, why are these not comared or listed here?

Edit 2: Its 4Gb, the limit, not 10Gb. 10Gb is in SQL Server 2008 R2 Express and above, 4Gb in SQL Server 2008 Express.
marc_s: Thanks for that!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

If you use a SQL Server database to persist your data in your application you need

a. client-server infrastructure where your client connect to a central SQL Server via LAN

b. or use a client installed sql server edition (which is what you want I guess). For this you can use SQL Server Express edition or just a MSDE (Desktop Edition).

See for more details e.g. this blog post http://searchsqlserver.techtarget.com/tip/SQL-Server-2005-Express-vs-Desktop-Engine-MSDE or google for it, plenty of information from MS itself about MSDE.

EDIT: Since 2012 there is no more MSDE, but SQL Server 2012 Express brings a mode like MSDE did. See here: http://www.microsoft.com/sqlserver/en/us/editions/2012-editions/express.aspx

And as you can see here: http://www.microsoft.com/sqlserver/en/us/editions.aspx, there shouldn't be a function that you use that isn't available for a desktop application imho.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...