RE/
I heard about the MSDE engine. Can someone give me some pointer if I
should consider using it instead of the Jet engine that comes default
with Access?
BTW the code in my app uses mainly DAO library.
Others have said that they've developed apps with C/S back ends successfully
using 100% DAO. Certainly thats the fastest and least-expensive way to get an
app up and running.
I've only done one major app with a SQL Server back end. For that one, I bit
the bullet and tried to push as much processing as I could back to the server
via stored procedures. I've still got some DAO in the "System"/"Table
Maintainence" screens because it just didn't seem right to burn up a lot of
billable hours on something that only one or two people would ever use...but the
part of the app that's exposed to Joe User is 100% stored procedure driven.
So far, I've found development of stored procedures to be a real time sink. My
take is that the development manhours increase by a good 30-50% when stored
procedures are used instead of DAO QueryDefs. Maybe I'll discover some tool
to speed it up and certainly my expertise will improve....but developing one of
those things will always take much, much, much longer than an MS Access
QueryDef.
I'm hoping for another opportunity to so an SQL Server or MSDE-based app just
for the practice. If I keep on doing it like I did with the first one - making
the client as thin as possible i.e. pushing as much processing as I can back to
the server - it seems like I'm positioning myself for a transition to N-tier
development if/when that time comes. I'm already looking forward to my current
contract expiring sometime this spring so I can spend a couple months rewriting
that first SQL Server app in .NET just to get a feel for it.
To stop rambling and address your question, I can see a few reasons to develop
with an MSDE back end:
1) IT Prejudice. A lot of IT orgs despise "Access Databases" - not realizing
the distinction between MS-Access-The-Front-End-Development-Tool and JET, the
file-based DB engine that is often used with it. Having an MSDE back end that
can be migrated to SQL Server probably makes some of them feel a little better.
2) Concurrent Users. Once something is developed in the MSDE, it can be
migrated transparently to SQL Server. People can argue about how many users
JET and/or MSDE can support - but SQL Server can support a *lot* of users while
I've never heard anybody claim that JET or MSDE can support over 50.
Personally, I think more like 10 for JET...although there are people who say
they run 30 or so...probably depends on what those users are doing.
3) Control-Type Security. By restricting access to stored procedures/views,
you can butten up a SQL Server DB really tight.
4) Security Administration: You can base SQL Server security on LAN UserIDs.
Much simpler to administer from the LAN guy's perspective.
5) Data-Safety Security. With JET, LAN and local hardware problems are always
hanging over your head. I've had one app run over 7 years, 6-10 concurrent
users every day and never had a corrupted back end. In fact the *only* time it
went down was when somebody yanked on the wrong cable in a LAN closet - and then
it was back up and running within the hour. OTOH I've had other apps that went
through episodes of repeated corruption. On one it went away when we finally
got The Powers That Be to let us move it to another server. A lot of smart
people tried to find the problem, but never did.
6) Recovery. With SQL Server you can have point-in-time recovery. OTOH, it's
not trivial compared to restoring a JET DB from last nite's backup. OTOOH, if
your JET DB goes down at 4:27 in the afternoon you've probably lost a day's
work.
7) Dialup. I've never tried it, but I wouldn't even *think* about running a
JET backend over a phone line. Citrix aside, it seems to me like - in spite of
what the users say today - that there's a pretty good chance they'll want some
applications available over a phone line sometime in the future.
8) Performance as load increases. JET is fast when things are light and then
bogs down as traffic increases. MSDE or SQL Server, while maybe not as fast
with a light load, can handle heavier loads without degrading. Also, since
it's all happening on the server, you have the option of upgrading the box to
improve performance.
9) Parochial Issues. Getting one's feet wet with MSDE or SQL Server can't hurt
your technical development....
--
PeteCresswell