views:

110

answers:

7

The current application is a kind of CRM application built upon MS Access. The application is for internal use. My job is to migrate it to ASP.NET web-based application. Now boss requires to keep Access as database and develop ASP.NET code against it.

My question is, is there any disadvantages of using Access as database in ASP.NET application? (e.g. optimistic concurrency issue?) Should I persuade boss to upgrade Access to MS-SQL?

Many thanks!

+1  A: 

Simply put, go with MSSQL. Express edition is free, and will give you everything you need to migrate away from Access. These articles are talking about Access applications specifically, but the same issues will plague you.

http://resources.zdnet.co.uk/articles/features/0,1000002000,39285074,00.htm

http://techrepublic.com.com/5208-6230-0.html?forumID=102&threadID=205509&messageID=2136367

jvenema
+2  A: 

MS Access is notoriously unstable in multiuser environments. A WEB app is by definition heavily multi-user.

So IMHO leaving MS Access as underlying DB is a call for trouble. At least use SQL Express (it is free)

mfeingold
Why is a web app by by definition multi user? Not every ASP.NET app is a web site with a public URL :)
Andomar
This is simply not true.
Remou
Access is *not* "notoriously unstable in multiuser environments." It *is* "notoriously unstable" when used by the ignorant and incompetent. But so is just about any database you can think of (i.e., the problem is not with Access). The ultimate advice I agree with, but I'm downvoting for the stupidity/ignorance/bigotry in the first sentence.
David-W-Fenton
@David-W-Fenton fighting bigotry with even hotter bigotry - well well will see how far it will take us
mfeingold
@mfeingold: do you dispute that the first sentence is factually incorrect and worded in a needlessly combative and emotional form? If not, then why is my response improper? And if you *do* dispute it, then you really oughtn't be posting as you clearly don't know the facts.
David-W-Fenton
@David-W-Fenton Why it is improper? other than calling somebody stupid/ignorant/bigot for having an opinion different from yours? it is not
mfeingold
I didn't call anyone stupid or ignorant or a bigot. I said the first SENTENCE included those things by virtue of its wording and the fact that its' NOT TRUE. Criticizing someone's words is not the same as criticizing the person who wrote them. And you're still avoiding the actual issue, i.e., that the your answer is worthy of a downvote for propagating a falsehood.
David-W-Fenton
+2  A: 

The problem you are going to face in upgrading from Access to MS-SQL is that there is a major cost investment for the application. If your company already has the infrastructure in place(licensing, hardware...) then you won't have such a hard fight to pursuade your boss.

As for a technical answer:

I'd say you need to let you boss know that access databases aren't ideal for concurrent usage which a web application suggests is the intended goal of the application. My view is that Access is for database information that a SMALL set of users will be simply using for small data entry and querying. NEVER use Access to build an enterprise-level solution.

Achilles
I see your point, but the web application I'm going to build is for internal use. 10-20 people would use it concurrently. Do u think Access is capable of it?
Smallville
Access can probably handle that many users...the problem is that I've seen first hand what happens with apps like this. They start out for small groups and grow and grow in numbers of users. Build it with SqlServer and save yourself the pain of moving later.
Achilles
+2  A: 

If you are planning to upgrade a Microsoft Access database to SQL Server 2008, use the SQL Server Migration Assistant (SSMA) rather than the upsizing wizard built into MS

10+ tips for upsizing an Access database to SQL ServerAccess.

Mitch Wheat
Thanks. I've already tried this tool. But there're too many errors during the upgrade.
Smallville
@Smallville: could you give some examples of these errors; someone might be able to help you...
Mitch Wheat
The error I got was something like "See error log for more details". But I cannot find error log, and I don't know what caused the problem
Smallville
+3  A: 

We've used Access as a backend for web sites with good success. It's cheap, can be used effectively by moderately skilled programmers, and you can store the MDB on a document server so it gets backed up.

Most IT people dislike Access, but from a business perspective, Access can be very valuable.

Andomar
Nice to know your story. May I ask you on average how many visitors on you website and do u encounter any problems of using Aceess as back-end database?
Smallville
It works for up to five simultaneous users, like an hour writing application for like 100 people. I'll repeat that I'm saying Access has business value, not that it's pleasant to code in :)
Andomar
+1  A: 

Your boss probably likes to do ad-hoc stuff with access / excel. If you move the DB to SQL Server Express you can use Access and it's linked table feature to let your boss keep doing his ad-hoc needs through Access while keeping the data in SQL Server Express. If you keep the linked tables named the same as the old physical ones all his reports and queries will should keep working.

jms
+1  A: 

I'm an Access promoter, but not for use on websites because Jet/ACE is not threadsafe (though Michael Kaplan once said that is is threadsafe if you access it via ADO/OLEDB; I don't quite understand how a database abstraction layer can wash away a characteristic of the underlying database engine it's calling, but if MichKa said, it's 99% likely to be true).

Now, the exceptions would be if you're using it for prototyping something that will use a different database, or if it's read-only, or is read-write but will only ever have a very small number of users.

Michael Kaplan's website, trigeminal.com, used to use a Jet database as the back end (it may still -- I don't know that MichKa ever changed it), and when that was his main website he reported getting 100K hits a day. But it's a read-only site, so fits my restrictions.

There are so many different alternatives and they are mostly easy to use that I just don't see the point of trying to use Jet/ACE as back end for a website. I'd never do it myself (all the websites I'm responsible for use MySQL).

David-W-Fenton