Requirements to Run ADO.NET Application

J

Jonathan Wood

Miha,
You have to understand that ado.net is *not a database engine*. It is an
abstraction layer *over database stuff*. No database engine is part of
.net.
It happens that jet is a part of MDAC and MDAC is installed with .net.
But let's get back to your problem. You want a database without need to
worry.
I would recomend SQL Server 2005 CE.
http://www.microsoft.com/sql/editions/compact/default.mspx
It is a subset of real SQL Server, it is free and it is deployed by simpy
including an assembly or two with your app (I haven't worked with it
yet) - no deployment hassles at all!

I seem to be having a horrible time communicating for reasons I just cannot
fathom.

That's what I want. And if I have to write routines from scratch to save and
load my data from disk, that's exactly what I'll do. (I've done it plenty of
times in the past.)

SQL Server 2005 CE would be additional software.

Jonathan
 
M

Miha Markic

Jonathan Wood said:
Miha,


I seem to be having a horrible time communicating for reasons I just
cannot fathom.


That's what I want. And if I have to write routines from scratch to save
and load my data from disk, that's exactly what I'll do. (I've done it
plenty of times in the past.)

Perhaps you should stop saying it in different ways:
"The bottom line for me is that I want my application to install painlessly
on customers' computers. When writing a Windows .NET application, I can
write my own code to save data to disk, or I can use the .NET database
stuff. If the database stuff either requires additional installations or is
not guaranteed to work on all computers with .NET, then I'll avoid it."

I really don't see any problem with using SQL Server 2005 CE as it doesn't
require any installation at all beside copying a couple of files along your
application.
But then again, if it is copying a couple of files too much for you, go
ahead, write some code and copy the file containing your code.
 
J

Jonathan Wood

Miha,
Perhaps you should stop saying it in different ways:

If I find a way that seems to work, I'll just use that one.
"The bottom line for me is that I want my application to install
painlessly
on customers' computers. When writing a Windows .NET application, I can
write my own code to save data to disk, or I can use the .NET database
stuff. If the database stuff either requires additional installations or
is
not guaranteed to work on all computers with .NET, then I'll avoid it."

Couldn't have said it better myself. :)
I really don't see any problem with using SQL Server 2005 CE as it doesn't
require any installation at all beside copying a couple of files along
your application.
But then again, if it is copying a couple of files too much for you, go
ahead, write some code and copy the file containing your code.

That would definitely be a plus if it was just a couple of extra files that
we are free to distribute with our programs. But the size becomes an
important issue then. I'm writing shareware that the user must download. If
I add a MB or two, that could have a major impact on the success of the app.
My experience tells me that most people in these forums look at this and say
"a couple of MB isn't a big deal" or maybe "so they have to wait a bit
longer." But this market consists of non-technical users and each user that
doesn't download and install it is a potential sale lost.

Maybe I can find out the rules on distribution for SQL Server 2005 CE, if
all that's needed is copying the files, and the sizes of those files. I'd be
surprised if it would really be painless for the end user but I could
certainly be wrong.

Thanks.

Jonathan
 
N

Norman Yuan

If you are to do web application, go with server based database. Jet
database (Access) can be used in web app in certain extent, but not
recommended. So, if you r web app needs database, learning SQL Server is the
easiest.

As for deploy your ADO.NET web app, you may or may not need to
deploy/install SQL Server on your web app host, depending on the host
services. If a host hosts thousands of web apps, all of which use SQL
Server, it is unlikely the host install thousands SQL Server instances on
its web server(s). There may be only one or two SQL Server instances, each
have hundreds or thousands database attached. In this case, you deploy your
database to the server, not SQL Server. There is many ways to deploy your
SQL Server database to an existing SQL Server.

So, if your web app uses database (sever based, such as SQL Server), you do
not need anything to run your app, as long as you can getthe database setup
correctly, which is not part of .NET and depending what type of database you
use.

Jet Engine comes with all Windows OS. Before MDAC2.6, each new version MDAC
includes Jet Engine update. After MDAC2.6 (latest is MDAC2.8), Jet Engine
update is not included in MDAC any more, but Jet Engine still exists in your
Windows OS, you just need to download its latest update seperately (SP8,
available in year2001 or 2). If you use Vista, Win2003SP2, or have your
Windows Update active, you probably has the latest updated Jet Engine any
way. Even you use older Windows OS, it is for sure you have Jet Engine
available, just may not be in its latest update.
 
J

Jonathan Wood

Norman,
If you are to do web application, go with server based database. Jet
database (Access) can be used in web app in certain extent, but not
recommended. So, if you r web app needs database, learning SQL Server is
the easiest.

Installation is a non-issue for Web applications. As I indicated in my
original post (and several thereafter), this is related to a Windows
application. If I'm still being unclear, that means a desktop application to
me.
As for deploy your ADO.NET web app, you may or may not need to
deploy/install SQL Server on your web app host, depending on the host
services.

Again, deployment is a non-issue for Web apps. I can have someone install it
or do it myself. If I'm distributing desktop apps to non-technical users,
then I need to worry about what libraries are needed.
So, if your web app uses database (sever based, such as SQL Server), you
do not need anything to run your app, as long as you can getthe database
setup correctly, which is not part of .NET and depending what type of
database you use.

It's not a Web app. Deployment is absolutely not an issue for Web apps.
Jet Engine comes with all Windows OS. Before MDAC2.6, each new version
MDAC includes Jet Engine update. After MDAC2.6 (latest is MDAC2.8), Jet
Engine update is not included in MDAC any more, but Jet Engine still
exists in your Windows OS, you just need to download its latest update
seperately (SP8, available in year2001 or 2). If you use Vista,
Win2003SP2, or have your Windows Update active, you probably has the
latest updated Jet Engine any way. Even you use older Windows OS, it is
for sure you have Jet Engine available, just may not be in its latest
update.

Asking my end-users, many of whom are not technical, to download and install
additional software/drivers is out of the question. So it sounds like I
cannot take this approach.

Jonathan
 
C

Cor Ligthert[MVP]

Jonathan,

If you want to work without sold Databases, than build them yourself. In the
old days there were never databases used, just flat text files.

It is a little bit very much more work, however not without problems. If you
don't want that, than just follow the advices in this thread. I don't use
all for a long time Access anymore. If it works on Vista you can just try
yourself this tip.

http://www.vb-tips.com/CreateMDB.aspx

By the way, I don't go in discussion with you, nobody forces you to use
dotNet, SQL server or whatever who is active in this newsgroup, including
Microsoft MSFT's.

Cor
 
J

Jonathan Wood

Cor,
By the way, I don't go in discussion with you, nobody forces you to use
dotNet, SQL server or whatever who is active in this newsgroup, including
Microsoft MSFT's.

I'm sorry, I'm having a hard time understanding what you mean here.

You won't have a discussion with me because no one forces me to use
something?

I just don't understand that, or how it relates to anything I've said.

Jonathan
 
J

Jonathan Wood

BTW, that link is close to what I want. Unfortunately, based on the comments
here, I cannot assume the JET library will be available on all of my
customers machines. That's a concern for me for the reasons I've explained
in this thread.

Thanks.

Jonathan
 
M

Miha Markic

Couldn't have said it better myself. :)
lol.


That would definitely be a plus if it was just a couple of extra files
that we are free to distribute with our programs. But the size becomes an
important issue then. I'm writing shareware that the user must download.
If I add a MB or two, that could have a major impact on the success of the
app. My experience tells me that most people in these forums look at this
and say "a couple of MB isn't a big deal" or maybe "so they have to wait a
bit longer." But this market consists of non-technical users and each user
that doesn't download and install it is a potential sale lost.

You didn't mention the size problem before. Anyway, either I forgot or you
didn't tell, why do you need a database at all?
If you are dealing with small amount of data then you might use another
approach.
Maybe I can find out the rules on distribution for SQL Server 2005 CE, if
all that's needed is copying the files, and the sizes of those files. I'd
be surprised if it would really be painless for the end user but I could
certainly be wrong.

It is supposed to be completely transparent to user.
 
M

Miha Markic

Asking my end-users, many of whom are not technical, to download and
install
additional software/drivers is out of the question. So it sounds like I
cannot take this approach.

A well build installer cuild download & install required components
automatically. Actually, a .net app installation can download framework
automatically (if not present on the machine). That said am I not saying
that you should go this route with your application - a jet-less approach is
better.
 
J

Jonathan Wood

Miha,
You didn't mention the size problem before. Anyway, either I forgot or you
didn't tell, why do you need a database at all?
If you are dealing with small amount of data then you might use another
approach.

Exactly. That's what I'm saying: I'm trying to decide if I should write the
data to disk directly or use a database. In fact, the previous version of
this software (written in C++) did not use a database engine.

However, due to the requirements, the code that saved the data was pretty
sophisticated, and the new version needs to be even more so. If .NET
included database libraries, I was just looking into if it made sense to use
them instead.

Right now, it looks like the answer is "no."
It is supposed to be completely transparent to user.

Looks like the distributables are about 1MB. I'm not sure.

Thanks.

Jonathan
 
C

Cor Ligthert[MVP]

The answer is Yes, as SQL server express is a complete part of the software
supplied by Visual Studio Net. It is as well free for other people.

Cor
 
W

William Vaughn

Jonathan.
We can tell that you don't have a lot of experience with .NET. If you
expect to create a commercially viable application you it's unwise to choose
a data access paradigm simply by asking questions in a public
newsgroup--it's like cruising the web to learn how to do an appendectomy on
the kitchen table. The choice of a database engine (if you use one) needs to
consider cost per installation, deployment strategy, stability, query and
update performance, developer productivity, ease of use, and not least of
all security. I (and I expect most here would agree) think you should take a
course, read a book (or two) or otherwise do a bit more study before you
venture off and try to build an application that will handle data for paying
customers.
Case in point: The MDAC stack and JET have been mentioned here a number
of times. Unless I missed it, nowhere was it mentioned that Microsoft is
doing what it can to get developers to stop using JET--its architecture has
security, reliability and performance problems. While widely (too widely)
used, IMHO, JET is a dead-end technology. If you are just learning (as it
appears you are), I suggest investing in newer, more stable technology that
has a future and is better suited to .NET. JET does not have a native
managed provider--you must access it via a one-size-fits-all OLE DB
interface. In contrast, SQL Server Compact Edition (as I recommended before)
has been adapted for Windows Forms (desktop applications) and .NET--it does
have a native .NET interface. It is one of the free JET replacements I have
recommended many times. SQLCe is a lightweight single-user engine which make
it ideal for many applications (especially Windows desktop applications) as
the one you describe. For multi-user requirements, I recommend SQL Server
Express or better. You can start with the Express edition (free) and grow
into the other (paid license) editions when your application needs require
more features and scalability.
I think you would benefit from reading my eBook on SQL Server Compact
edition or my Hitchhiker's Guide. And yes, there are other books out there
on data access application design but most are not written for those just
getting started with .NET. Mine is.

I hope this helps.

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant, Dad, Grandpa
Microsoft MVP
INETA Speaker
www.betav.com
www.betav.com/blog/billva
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________
Visit www.hitchhikerguides.net to get more information on my latest book:
Hitchhiker's Guide to Visual Studio and SQL Server (7th Edition)
and Hitchhiker's Guide to SQL Server 2005 Compact Edition (EBook)
-----------------------------------------------------------------------------------------------------------------------
 
J

Jonathan Wood

William,
We can tell that you don't have a lot of experience with .NET. If you
expect to create a commercially viable application you it's unwise to
choose a data access paradigm simply by asking questions in a public
newsgroup--it's like cruising the web to learn how to do an appendectomy
on the kitchen table.

Yes, and this has come across in many of your posts to me. Frankly, I don't
get it. I'm working through a stack of books that involves many technologies
and SQL is just one of them. It is not easy, and on some issues I just want
to know which direction I should be going. If you have an issue with that,
you can safely ignore my posts. But, as I've mentioned before, I've been
helping people in various programming newsgroups for many years, and I've
never avoided helping someone because it seemed like they were just getting
started.
Case in point: The MDAC stack and JET have been mentioned here a number
of times. Unless I missed it, nowhere was it mentioned that Microsoft is
doing what it can to get developers to stop using JET--its architecture
has security, reliability and performance problems. While widely (too
widely) used, IMHO, JET is a dead-end technology. If you are just learning
(as it appears you are), I suggest investing in newer, more stable
technology that has a future and is better suited to .NET.

You lost me on the comment about MS trying to get developers to stop using
JET. I don't recall anything about that.

But my plan is to use ADO.NET--for certain tasks. But for the purpose of
this particular thread, using no database library at all is an option, in
fact, it's the option I used in the previous version of the software in
question. All I'm asking are high-level questions to try and determine if a
database engine would meet my particular needs. If I can determine that,
then I can better determine which books I should read next.
JET does not have a native managed provider--you must access it via a
one-size-fits-all OLE DB interface. In contrast, SQL Server Compact
Edition (as I recommended before) has been adapted for Windows Forms
(desktop applications) and .NET--it does have a native .NET interface. It
is one of the free JET replacements I have recommended many times. SQLCe
is a lightweight single-user engine which make it ideal for many
applications (especially Windows desktop applications) as the one you
describe. For multi-user requirements, I recommend SQL Server Express or
better. You can start with the Express edition (free) and grow into the
other (paid license) editions when your application needs require more
features and scalability.

I'm weighing the pros and cons of SQL Server Compact Edition. Right now, my
main concern is that it requires an additional 1MB in my distributables and
that is a concern. Perhaps, I will try and find your eBook on it to further
clarify my thinking. Thanks for that.
I think you would benefit from reading my eBook on SQL Server Compact
edition or my Hitchhiker's Guide. And yes, there are other books out there
on data access application design but most are not written for those just
getting started with .NET. Mine is.

Yes, and I've purchased your book. But I've got other books ahead of it and,
when I'm done with those, I'll try and make a determination if your book
makes sense for me. Hopefully, by then, I'll have a better idea of the
direction I'm going in some of these fundamental issues.

Jonathan
 
J

Jonathan Wood

Thanks for the input but I don't really understand. Being part of VS.NET
does not help me when it comes to distributing my apps. And that really is
the main point of this thread. Please let me know if I'm missing your point.

Jonathan
 
W

William Vaughn

Okay, AFA SQLCe, consider that the functionality you get for that 1MB
database engine might be just what you need. Of course, you might need far
less but 1MB is a drop in the bucket by today's standards.

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant, Dad, Grandpa
Microsoft MVP
INETA Speaker
www.betav.com
www.betav.com/blog/billva
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________
Visit www.hitchhikerguides.net to get more information on my latest book:
Hitchhiker's Guide to Visual Studio and SQL Server (7th Edition)
and Hitchhiker's Guide to SQL Server 2005 Compact Edition (EBook)
-----------------------------------------------------------------------------------------------------------------------
 
C

Cor Ligthert[MVP]

You started this message thread, you have got more than one answer on the
question you ask again and again, do you know what is the name for somebody
who does this?

However to do it again:

SQL express is free for everybody, you can deploy it as many times as you
want.

Cor
 
J

Jonathan Wood

Cor,
You started this message thread, you have got more than one answer on the
question you ask again and again, do you know what is the name for
somebody who does this?

I've received conflicting information in this thread and I think it is
unfair to criticize me for asking the question again. Although William does
not understand my customers as well as I do, he has demonstrated he
understood the question.
SQL express is free for everybody, you can deploy it as many times as you
want.

The issue is one of deployment. SQL Server Express is out of the question
for the reasons I have explained repeatedly in this thread.

At any rate, while I find SQL Server Compact Edition intriguing, I'm
concluding that I will writing my own data routines for the project in
question.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top