Groups | Blog | Home
all groups > dotnet ado.net > december 2005 >

dotnet ado.net : Jet vs. Sql Server Express


kcamhi
12/30/2005 3:04:02 PM
Greetings -

I'm working on a new application and need to select a database for it. I
was wondering if anyone had any views on tradeoffs between going with
Jet/Access vs. SQL Server 2005 Express.

The database is going to sit on a server. I'm planning to implement .net
remoting from my client objects to a wrapper around the database, so the
database will be transparent to the distributed client apps.

I'll also access the database for ad hoc reporting and data manipulation.

I'm experienced with Access but haven't used SQL Server, so I would tend to
lean toward using Access/Jet. However, it seems most of the attention is on
SQL Server in everything I see about VS 2005.

Is Jet still getting attention?

What are the pros/cons of SQL Server vs. Jet?

Thanks for any help

William (Bill) Vaughn
12/30/2005 6:35:00 PM
SQL Server Express Edition has come a long way since the first versions of
MSDE. It has a real team at MS working on its functionality and usability. I
think the choice becomes more "why use JET" when it's been found unsuitable
for databases that contain healthcare or other data that must be secure.
It's not designed to be used in a server--it never was. It is best accessed
through its native interface (DAO)--not ADO, ODBC or OLEDB or ADO.NET. It's
COM-based and dependent on the MDAC stack which is of itself problematic.
No, SQL Server Express is not as simple to use as JET. Deployment is more
difficult, connecting is more difficult, management is more difficult.
However, given the more stringent requirements of today's secure and
high-performance systems where customers actually expect their data to be
secure and accessible by the right people, using SQL Server is a given.

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
INETA Speaker
www.betav.com/blog/billva
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________

[quoted text, click to view]

David Browne
12/30/2005 7:59:49 PM

[quoted text, click to view]

I didn't even read the rest of your post. If the database is on a server,
use SQL Server. Not Jet.

David

john smith
12/30/2005 8:27:00 PM
You definately want to go for SQL Server. It's a FAR better system in every
aspect, it's faster, more powerful, scales FAR better (although scaling
better than Access is hardly an accomplishment), you get real RDBMS features
(sprocs, triggers, a real security model, etc, etc), you get to use the
"full-featured" SqlClient which is great, etc, etc. Jet is pretty much the
very last DB I ever would use (well after Oracle, SQL Server of any flavor,
DB2, PostgreSQL, Sybase, etc etc). The answer isn't so much "use SQL Server"
as much as "anything BUT Jet"! The 2 don't even compare, one is a
office-worker/end-user type toy-ish DB, and the other is a serious,
high-quality/reliability, powerful, scalable, enterprise-grade RDBMS system
with support, an upgrade path, good tools, etc, etc.

Hope that helps :)

[quoted text, click to view]

john smith
12/30/2005 11:00:09 PM
Forgot to add that link with some more infos about JET's limitations:
http://www.aspfaq.com/show.asp?id=2195 I think that page alone will convince
you to never use JET ever again ;) There are tons of MS KB articles
recommending SQL Server over JET one could link to as well... Keep in mind
SQL Server Express is MUCH better than MSDE too (and less limited). I
personally have many gripes over JET (from excessive network traffic,
ridiculously slow, files' security goes broken once you try "compact and
repair", etc etc). I find the amount of people still using/putting up with
JET nowadays pretty amazing...

[quoted text, click to view]

mablejune NO[at]SPAM otismukinfus.com
12/31/2005 8:48:04 AM
On Fri, 30 Dec 2005 15:04:02 -0800, kcamhi
[quoted text, click to view]

[snip]
[quoted text, click to view]

If you are experienced with Access, then you won't have much trouble
learning MS SQL Server 2005. After you begin to understand stored
procedures you will only use Access for single user stand alone
applications. Go ahead and make the switch. You'll have much more
pleasure than pain...
[snip]
Mark Rae
12/31/2005 9:15:00 AM
[quoted text, click to view]

Yes indeed, but only for development purposes. SQL Server Reporting Services
can import Access reports cleanly, so there's still no reason to use Access
for anything more than prototyping.

[quoted text, click to view]

Sorry, much as I have tried, I *really* can't decipher that...

Cor Ligthert [MVP]
12/31/2005 9:57:15 AM
Kcamhi,

Completely agreeing with the text from William Vaughn, do I want to add the
aspect of reports to it.

If your user is a good Office MS Access user and you want to let him make
his own reports with that. Than that can be a reason to do it in MS Access.

And you understand it than of course, if you want to isolate that, than
..........................

I hope this helps,

Cor

Cor Ligthert [MVP]
12/31/2005 11:12:25 AM
Mark,

[quoted text, click to view]
Does a good (expirienced) Office MS Access user direct know how to handle
the SQL Server Reporting Tool, AFAIK not, howeve maybe I make a mistake in
that?

[quoted text, click to view]
If you want an expirienced MS Office Accer user isolate from making reports
with your data, than you should not start to give him a database with a Jet
engine

Cor

Cyril Gupta
1/2/2006 8:11:48 AM
Hello,

I have worked a lot on Jet and a little on SQL Server and MySQL. In my book
the choices are really simple. If it's an app that you need to redistribute
to a lot of people (read packaged applicatin) use Jet, if it's something
that will rest on one PC or is made with a server architecture in mind use
SQL.

I don't why so many guys dislike Jet, but I think it is a pretty nice data
storage paradigm, specially for packaged applications. Of course that
doesn't mean it gives users the performance or functionality of SQL Server,
but you can't pack SQL Server in your app's setup either.

Cheers
Cyril Gupta

Miha Markic [MVP C#]
1/2/2006 11:30:09 AM

[quoted text, click to view]

I am not sure if I agree on deployment and management. It might be true but
only if everything works fine.
And with Access it can go wrong, very wrong as it is very much affected by
dll hell.

--
Miha Markic [MVP C#]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/

Cindy Winegarden
1/2/2006 11:43:38 AM
Hi KC,

Just to add, if you use SQL Express then upgrading to a full version of SQL
Server is simple. Also, if the user wants to use Access for reports, it's
easy enough to connect to SQL Server.


--
Cindy Winegarden MCSD, Microsoft Visual FoxPro MVP
cindy_winegarden@msn.com www.cindywinegarden.com


[quoted text, click to view]

William (Bill) Vaughn
1/2/2006 1:40:44 PM
Ah, while it's a compact DBMS engine, it's not secure. Most of the companies
I work with require a secure paradigm--one that the IT department can manage
when necessary. JET does not fall into that category. I would choose SQL
Mobile over JET any day.

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
INETA Speaker
www.betav.com/blog/billva
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________

[quoted text, click to view]

Otis Mukinfus
1/2/2006 5:28:49 PM
On Mon, 02 Jan 2006 22:48:21 GMT, George Gomez <news@greengalaxy.com>
[quoted text, click to view]

[snip]
[quoted text, click to view]

You're right about SQL Server Express, George.

However, if you know that your application will be used by only one
user and you can't be sure about his/her ability to understand
maintaining a SQL Server database, then I believe Access is a good
solution. In fact you can even compact and repair one when the user
closes the application and they will never know you did it for them.

Naturally I'm not talking about even the smallest enterprise
application ;-).

Otis Mukinfus
http://www.otismukinfus.com
Cor Ligthert [MVP]
1/2/2006 5:54:58 PM
Cindy,

[quoted text, click to view]

True, stupid me, thanks for making a correction on my message.

Lol

Happy NewYear,

Cor

William (Bill) Vaughn
1/2/2006 7:17:40 PM
Sure. But why compact/repair when the user turns off the system or it loses
power? This is not required in SQL Server. SQL Express is designed for this
kind of application too. Sure, it has more power than you need, but it also
has a lot more stability, security and less worries than any JET rig. Still
think it's too much? Consider the SQL Mobile edition. It's light, fast and
small and does not share JET's litany of issues.

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
INETA Speaker
www.betav.com/blog/billva
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________

[quoted text, click to view]

Otis Mukinfus
1/2/2006 10:03:49 PM
On Mon, 2 Jan 2006 19:17:40 -0800, "William \(Bill\) Vaughn"
[quoted text, click to view]

You raise some good points Bill. I hadn't thought of SQL Mobile,
although I did build an app that used it once for the PPC.

Thanks for the input.

Otis Mukinfus
http://www.otismukinfus.com
George Gomez
1/2/2006 10:48:21 PM
[quoted text, click to view]

SQL Server Express 2005 is redistributable. You can also check out the
Microsoft SQL Server Management Studio Express - Community Technology
Preview to manage the database.

As far as Access versus SQL server go with SQL server because it will be
a served database.

David Browne
1/3/2006 12:44:19 AM

[quoted text, click to view]

I think you mean SQL Server Express Edition, not SQL Server Mobile Edition.
Mobile is only available for

Microsoft Windows CE 5.0,
Microsoft Windows XP Tablet PC Edition,
Windows Mobile 2003 Software for Pocket PC,
and Windows Mobile 5.0
http://www.microsoft.com/sql/editions/sqlmobile/sysreqs.mspx

In particular not Windows XP Home or Professional and not Windows Server
2003.

David

William (Bill) Vaughn
1/3/2006 11:27:43 AM
Ah no. SQL Mobile is being expanded to work on all Windows platforms. Try
it... let me know if it fails.

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
INETA Speaker
www.betav.com/blog/billva
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________

"David Browne" <davidbaxterbrowne no potted meat@hotmail.com> wrote in
message news:eyvZhEDEGHA.3920@tk2msftngp13.phx.gbl...
[quoted text, click to view]

Paul Clement
1/3/2006 12:03:45 PM
[quoted text, click to view]

¤ Greetings -
¤
¤ I'm working on a new application and need to select a database for it. I
¤ was wondering if anyone had any views on tradeoffs between going with
¤ Jet/Access vs. SQL Server 2005 Express.
¤
¤ The database is going to sit on a server. I'm planning to implement .net
¤ remoting from my client objects to a wrapper around the database, so the
¤ database will be transparent to the distributed client apps.
¤
¤ I'll also access the database for ad hoc reporting and data manipulation.
¤
¤ I'm experienced with Access but haven't used SQL Server, so I would tend to
¤ lean toward using Access/Jet. However, it seems most of the attention is on
¤ SQL Server in everything I see about VS 2005.
¤
¤ Is Jet still getting attention?
¤
¤ What are the pros/cons of SQL Server vs. Jet?
¤
¤ Thanks for any help

Given the fact that you're working in a distributed environment and don't require database features
other than a data store, I would recommend using SQL Server.

An Access database is typically high maintenance and requires a fair amount of attention when used
in a multi-user or distributed environment. It wasn't designed to be used in a distributed
environment and does not scale well.

If this was a simple client/server web or desktop app with a limited number of users then Access
might be a suitable solution. But that doesn't sound like what you're describing.


Paul
~~~~
StepUP
1/8/2006 10:50:03 AM
Wow...I haven't seen this much Access bashing since I attended a FoxPro UG
back in '98 :)

I've been developing Access apps since 1.0 days and still use it extensively
today. Access is a great database for local apps, and its really hard to beat
for its RAD capabilities. And anyone who says its pokey just hasn't used it
extensively...or correctly.

Try loading a 800,000 record table into a .Net datareader and see what
happens! In Access, its a no brainer..and FAST.

Sure...its not scalable, and security doesn't compare to SQL.

But for local apps of up to 20 users, it can really be a great tool. And the
new Office 12 version looks like its going to have some great new features.

I say don't just judge by the tool..look at the application requiremnets.
William (Bill) Vaughn
1/8/2006 11:15:25 AM
Ah, I don't think we were bashing Access. We were attempting to make
developers just getting started aware that JET (the default DBMS engine in
Access) is problematic for ANY business application. Access can, in fact be
a front-end to SQL Server as well and yes, I agree it's a nice, easy
development tool. We've seen companies large and small create applications
with Access/JET or VS/JET only to regret the decision years down the road
when they discover that the application by its very design is not scalable
and that JET is incapable of protecting their data. We've seen companies
that have 10,000 or more JET/Access databases (and Excel spreadsheets)
managing critical data. Once HIPA and other federal laws forced these
companies to protect private customer data, these databases became a
nightmare for the company to purge. How many companies large and small can
say that the data they manage is not sensitive in some way, is not important
to the success of the business in some way and can be wantonly accessed as
if the information it contains doesn't matter? As far as performance and
architectural differences, loading 800,000 rows into any "client-side" data
structure is a challenged way to approach any data query problem. If that's
the way an application is designed, I don't wonder that it doesn't scale--it
certainly won't support 20 users.

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
INETA Speaker
www.betav.com/blog/billva
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________

[quoted text, click to view]

StepUP
1/8/2006 11:20:01 AM
[quoted text, click to view]

Really...not for multiple users? I currently have a production app running
(for the last 6 years) with up to 30 users (mostly inputs and edits) banging
on it all day long. Runs liike a champ, very rarely crashes, and we put its
data up on the company web site, where there can be up to 10 users querying
the data via ASP.

StepUP
1/8/2006 11:26:02 AM
Hi Bill,

I agree with much of what you say. And..BTW...the app doesnt try to read in
800,000 records in the user interface. I was just trying to make a point
about how capable Access can be.

And if a company has 10000 Access MDB's with important data floating around
in the first place..someone in IT should be fired! :)

Otis Mukinfus
1/8/2006 1:06:18 PM
On Sun, 8 Jan 2006 10:50:03 -0800, StepUP
[quoted text, click to view]

I agree that Access is a good solution for local applications (with a
single user), but not for multiple users. I have also been using it
since Version 1.0.

Otis Mukinfus
http://www.otismukinfus.com
William (Bill) Vaughn
1/8/2006 6:39:36 PM
The problem is that these databases were all too often created by
"paradevelopers"--non-professionals that don't know how to build a safe,
scalable application. Someone walks by and says "Hey, that's cool, can I
have a copy of that?" and they walk off with a copy of the program with none
of the understanding of the impact. The IT departments are doing what they
can to purge these rogue databases. I no longer recommend JET databases for
businesses--large or small.

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
INETA Speaker
www.betav.com/blog/billva
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________

[quoted text, click to view]

Paul Clement
1/9/2006 8:26:58 AM
[quoted text, click to view]

¤ Wow...I haven't seen this much Access bashing since I attended a FoxPro UG
¤ back in '98 :)
¤
¤ I've been developing Access apps since 1.0 days and still use it extensively
¤ today. Access is a great database for local apps, and its really hard to beat
¤ for its RAD capabilities. And anyone who says its pokey just hasn't used it
¤ extensively...or correctly.
¤
¤ Try loading a 800,000 record table into a .Net datareader and see what
¤ happens! In Access, its a no brainer..and FAST.
¤
¤ Sure...its not scalable, and security doesn't compare to SQL.
¤
¤ But for local apps of up to 20 users, it can really be a great tool. And the
¤ new Office 12 version looks like its going to have some great new features.
¤
¤ I say don't just judge by the tool..look at the application requiremnets.
¤ Sometimes Access can really be the best fit.

Echo what Bill said.

Actually my company uses Access frequently in multi-user environments and we have a number of
applications that depend upon it. However, none of those are distributed environments where Access
has a significant tendency to fall over. It simply wasn't designed for this type of environment.


Paul
~~~~
AddThis Social Bookmark Button