473,567 Members | 3,114 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Distributable Commercial Apps Access Vs Delphi

I am considering building some distributable commercial applications.
For about a year now, I have been using Access2000. This was my first
venture into object oriented database development. Having a
background in Pascal and some C++, I would have preferred those
languages, but VBA made do. The SQL was fine.

I believe that Security issues on the backend, and data integrity/
corruption complaints over the network may be a stumbling block to a
solid distributable application? I am also discouraged by the
inability to make a truly compiled executable .exe front end. I have
recently read a bit about Delphi, that seems to cover these issues,
but am sure that Delphi may have its own share of issues.

Should I build marketable apps with Access on Jet or SQL, or Delphi on
Jet or SQL, or some other animal that addresses my concerns???

(((The following comments are those of others I found while
researching my thoughts)))
Access is a great tool for knocking up quick simplistic applications.
But trying to get anything remotely complicated working is a pain. Any
time I've tried to do anything remotely complicated with Access I've
found myself working around its quirks or falling in reluctantly with
its limitations.

Delphi Vs Access

a) Deployment is easier - and cheaper - no
per seat licenses required on each system
you deploy to. You don't have to play
tricks with linked tables to separate
code/forms from the data.
b) Delphi doesn't tie you into the Access
runtime and its constraints.
- forms/controls more flexible
- threads
- access to Windows
You can control the whole application in
Delphi but with Access you're stuck with
its rules.
c) Code management in Delphi is simpler. You
choose how to break down code into separate
units/files. Access wants everything in
stuck in the database.
d) Object Pascal is a structured, higher level language
than the chimaera that is Access/VBA.
e) Delphi is rather better when it comes to
third party controls or rolling your on
controls.

Mar 29 '07 #1
14 3866
Comments interspersed...

Ap******@gmail. com wrote:
I am considering building some distributable commercial applications.
For about a year now, I have been using Access2000. This was my first
venture into object oriented database development. Having a
background in Pascal and some C++, I would have preferred those
languages, but VBA made do. The SQL was fine.

I believe that Security issues on the backend, and data integrity/
corruption complaints over the network may be a stumbling block to a
solid distributable application? I am also discouraged by the
inability to make a truly compiled executable .exe front end. I have
recently read a bit about Delphi, that seems to cover these issues,
but am sure that Delphi may have its own share of issues.
Delphi is a good solid development tool *for the front end*. You still need
a database and what will you use that is easy to distribute, free, and easy
to install that will not have the security issues that Access/Jet will?
Should I build marketable apps with Access on Jet or SQL, or Delphi on
Jet or SQL, or some other animal that addresses my concerns???
(((The following comments are those of others I found while
researching my thoughts)))

Access is a great tool for knocking up quick simplistic applications.
But trying to get anything remotely complicated working is a pain. Any
time I've tried to do anything remotely complicated with Access I've
found myself working around its quirks or falling in reluctantly with
its limitations.
Absolute rubbish. Bad carpenter blaming the tools here.
Delphi Vs Access

a) Deployment is easier - and cheaper - no
per seat licenses required on each system
you deploy to.
True, but the runtime would resolve that.
You don't have to play
tricks with linked tables to separate
code/forms from the data.
I have no idea what this means. Most any serious Access app has the data
separate from the rest of the application. This does not involve "playing
tricks" any more than connecting to any database engine does.
b) Delphi doesn't tie you into the Access
runtime and its constraints.
What constraints?
- forms/controls more flexible
- threads
- access to Windows
1 & 2 perhaps, but "access to Windows"? The full API is available from
Access.
You can control the whole application in
Delphi but with Access you're stuck with
its rules.
No idea what this means. Any time you want to create more work for yourself
and depart from how Access normally works you are completely free to do so
and when you do you shoudl be able to do anything you could do in any other
environment.
c) Code management in Delphi is simpler. You
choose how to break down code into separate
units/files. Access wants everything in
stuck in the database.
See above. You almost always separate the app portion from the data portion
and you can make use of external code libraries as well.
d) Object Pascal is a structured, higher level language
than the chimaera that is Access/VBA.
Largely a matter of opinion, but I'll concede the general point that Pascal
is more like a "real" programming langauage in those esoteric areas that
hard-line coders would care about. The more legitimate question though
would be "Can it do the job I need it to do?". I have never encountered
anything I wanted to do in VBA that I could not get done one way or another.
e) Delphi is rather better when it comes to
third party controls or rolling your on
controls.
For sure in this one. Again though, is this depriving me of something I
"need" or just bells and whistles stuff?

Bottom line with these decisions is that ALL of the stuff you mention above
should account for 1% of the decision if you are already fluent in one of
the two environments and not in the other. The expenditure of learning the
one you are NOT familiar with will totally destroy all of the advantages
that might have been there.

--
Rick Brandt, Microsoft Access MVP
Email (as appropriate) to...
RBrandt at Hunter dot com
Mar 29 '07 #2
Greetings,

Access is a great desktop database tool - for small projects.

note: Access/VBA is/are not object oriented - Access/VBA was/were
created from objected oriented languages, but do not possess any OOP
capabilities like inheritance, polymorphism, overloading, overriding.

Delphi, Java, VB.Net, C#, are all object oriented and all multi-platform
(windows, Linux, Mac). The majority of my work is currently with
Microsoft Sql Server Access. The languages I have used are VB.Net2005,
C#, Java. For straight forward client/server frontend/backend
applications I find VB2005 the easiest language/platform to use because
it is fully OOP and retains the ease of use of Visual Basic. I have
never used Delphi, so I can't say anything about it, but .Net is a copy
of Java with a little more ease of use mixed in (that would be the
Microsoft part).

I favor .Net over Java because it is just easier to use. Of the many
big things .Net has done over VBA - one thing is reducing I/O. You can
do most of the data processing in memory, thus reducing disk
reads/writes by over 70%. This yields way more performance, way less
corruption of databases issues. And for every line of code you write
(in VB2005) it would take more lines of code in VBA - mostly for
workarounds - getting around stuff that in OOP would only take one line
of code.

Ex:
Here is a VB2005 sample for looping through a collection of textboxes:

Dim txtt() As TextBox = New TextBox(){txt1, txt2,txt3,txt4}
For Each txt As TextBox in txttt:Debug.Wri te(txt.Text):Ne xt

Here is the same thing in VBA (for Access)

Dim txtt As Variant, txt As Variant
txtt = Array(txt1,txt2 ,txt3,txt4)
For Each txt In txtt:Debug.Prin t txt: Next

The VB2005 sample took 2 lines of code and 1 variable (well the other
variable - txt - was declared inline). VBA took 3 lines of code and 2
Variable declarations. Where you get the real savings in coding in
VB.Net is that you can use delegates to assign functions to events:

For Each txt As TextBox in txtt
AddHandler txt.Click, AddressOf someFunction
Next

Say you have 20 textboxes on a form and you need something to happen on
the click event of each textbox. In VB.Net you assign the Click
function to all the textboxes in the one loop. In VBA you would have to
write out each textbox click event to do the same thing.

3 lines of code vs 60 lines of code. This is one of the big differences
between OOP coding and None-OOP coding.

Where Access is still the super champ is in small projects because you
don't have to load up Visual Studio and all its overhead. Access is a
self contained database programming platform for desktop database
systems.

I like .Net mostly because I am very familiar with it, and it is way
easier to use than VBA once you have a handle on OOP coding.

Rich

*** Sent via Developersdex http://www.developersdex.com ***
Mar 29 '07 #3

Thanks for the Great Feedback!
I believe that Security issues on the backend, and data integrity/
corruption complaints over the network may be a stumbling block to a
solid distributable application? I am also discouraged by the
inability to make a truly compiled executable .exe front end. I have
recently read a bit about Delphi, that seems to cover these issues,
but am sure that Delphi may have its own share of issues.
Should I build marketable apps with Access on Jet or SQL, or Delphi on
Jet or SQL, or some other animal that addresses my concerns???
>Delphi is a good solid development tool *for the front end*. You still need
a database and what will you use that is easy to distribute, free, and easy
to install that will not have the security issues that Access/Jet will?
That IS the Question ???


>>I like .Net mostly because I am very familiar with it, and it is way
easier to use than VBA once you have a handle on OOP coding.
I know little of .Net. Would this resolve the issues I describe???

Mar 29 '07 #4
The logic goes like this:

Microsoft creates stuff that is supposed to be easy to use so that
everyone will buy it. VBA is easy to use, but since it is a high level
language (has lots of stuff prebuilt into it) you lose a lot of control.
So when projects become more complex and sophisticated, a high level
language like VBA will become inadequate. For what it is - VBA is quite
sophisticated, but it just can't compete with OOP based platforms.

The newer platform, .Net, also created by Microsoft, overcomes the
inadequacies of VBA by introducing OOP where it previously did not exist
(VB2005). So you still have the ease of use of VB with the robustness
and functionality of OOP. VB.Net is way easier to learn than Java (or
C# to some degree), but the beauty is that you still have (almost) pure
VB (almost no {} brackets to worry about, and there are no ; semicolons
at all to deal with). And VB.Net supports every object supported by C#.

C#
TextBox txt = TextBox1;
txt.Text = "Hello World";

VB.Net
Dim txt As TextBox = TextBox1
txt.Text = "Hello World"

For large scale/multi tiered projects, that are mostly windows based,
..Net is a definite contender.
Rich

*** Sent via Developersdex http://www.developersdex.com ***
Mar 29 '07 #5
rkc
Rich P wrote:
Greetings,

Access is a great desktop database tool - for small projects.

note: Access/VBA is/are not object oriented - Access/VBA was/were
created from objected oriented languages, but do not possess any OOP
capabilities like inheritance, polymorphism, overloading, overriding.
So you use a lot of inheritance, polymorphism, overloading, overriding
in your .net applications do you?

Like what for example?
Mar 29 '07 #6
dim txtt() As TextBox = New TextBox(){txt1, txt2, txt3}

inherits from winform.Textbox class

For Each txt As TextBox In txtt
AddHandler txt.Click, AddressOf somefunction
Next

the txtt array has inherited all the winform.TextBox class properties
and methods.

Rich

*** Sent via Developersdex http://www.developersdex.com ***
Mar 29 '07 #7
<Ap******@gmail .comwrote

Your question is like trying to compare Apples versus Oranges, Apex.

Access is a database development tool; Delphi is a general programming
language. If you are into object-oriented design, development, and
implementation, you ought to be comparing Delphi to other programming
languages, like C, C++, and the DotNet languages. Delphi is Pascal-based,
so in large part, your choice may be whether you prefer Pascal to the C++,
or other "paradigms" . You don't seem overly fond of Basic, but those who
are have an even wider range, because they can, in addition to the OO
languages, choose from software tools such as REALBasic and PowerBasic.

Even if you do use a general programming language, as Rick pointed out, you
still need _some_ database, because programming languages don't include one,
as Access includes Jet by default, but supports other database engines,
including servers, in various ways.

BTW, the Access 2007 runtime support (not yet available) will be free for
the download, so that's one issue that's solved if you move to Access 2007.

Larry Linson
Microsoft Access MVP
Mar 30 '07 #8
Ap******@gmail. com wrote:
I am considering building some distributable commercial applications.
For about a year now, I have been using Access2000. This was my first
venture into object oriented database development. Having a
background in Pascal and some C++, I would have preferred those
languages, but VBA made do. The SQL was fine.

I believe that Security issues on the backend, and data integrity/
corruption complaints over the network may be a stumbling block to a
solid distributable application? I am also discouraged by the
inability to make a truly compiled executable .exe front end. I have
recently read a bit about Delphi, that seems to cover these issues,
but am sure that Delphi may have its own share of issues.

Should I build marketable apps with Access on Jet or SQL, or Delphi on
Jet or SQL, or some other animal that addresses my concerns???
Apex - here's another opinion fwiw...

Someone mentioned that if you go with Delphi you'll still need a database and that's true.
The real question is do you want to use Access and VBA to design the UI.

Lot depends on your target audience. If you know they have Access installed then perhaps
Access/VBA is one possible solution. If the target PCs don't have Access then you'd need
to use the Runtime and I'd recommend that you avoid that.

Distribution using the Runtime is more complex although, if you have the $$, I hear
SageKey makes distributing the Runtime less support-intensive.

You could use an Access .mdb database to store the data without the need to distribute the
Runtime version to users who don't have Access installed (although you may need to include
the MDAC package in your installer to get the appropriate support code to use with the
..mdb from code). So the .mdb database is one way to store persistent data. If you don't
use Access you'll need to find another way to store the data. If you need to support a
large number of users or performance is crucial then SQL Server may be appropriate. If you
are developing "on the cheap" you could look into open source databases like mySQL or
PostgreSQL.

I haven't used Delphi; if you have experience with that then perhaps that's a better
choice. But it sounds like your VBA experience would make a move to VB.Net a better
choice. While substantially different from Access/VBA, it still has a lot of similarities
that will ensure your are developing solutions faster than a switch to a different
language. And, of course, you can create an executable file.

The vb.net compiler is part of the freely downloadable .Net framework so you can create
(simple) apps with that but the VB.Net 2005 IDE will make you much more productive.

But this is a generalization; a lot depends on your application requirements, your budget
and other factors. Good luck.

--
'---------------
'John Mishefske
'---------------
Mar 30 '07 #9
>
For Each txt As TextBox in txtt
AddHandler txt.Click, AddressOf someFunction
Next
In ms-access, you simply assign the function name as follows:

For Each txt in "some collection"
txt.Onclick = "=SomeFunctionN ame"
next
>
3 lines of code vs 60 lines of code. This is one of the big differences
between OOP coding and None-OOP coding.
Well, actually..it only 3 lines in ms-access also...

And, I should point out this feature/fact has nothing to do with a oo vs non
oo environment. The only
difference is that you have a syntax that lets you assign code to a event
for a control. As mentioned, in ms-access, you can assign the function name
as a expression to the on-click property..and you DO NOT have to open up
the code editor and enter code for each click event (as this example shows).
Where Access is still the super champ is in small projects because you
don't have to load up Visual Studio and all its overhead. Access is a
self contained database programming platform for desktop database
systems.

I like .Net mostly because I am very familiar with it, and it is way
easier to use than VBA once you have a handle on OOP coding.

Rich
It still takes a ton of MORE work to build things that edit and
display data. Take a look at these screens:

http://www.members.shaw.ca/AlbertKal...icles/Grid.htm

the .net is missing continues forms..and thus you have to resort to complex
coding as compared to simply drag and drop building of forms. (there is some
data repeater controls for .net..but, it takes code).

Further, there is no equivalent of sub-forms, and again that is a huge
design
advantage. For example, I can display related table data, and build a
re-useable form that I drop into ANY form that displays the related customer
data. This approach takes NO code. In the .net environment, again you have
no
equivalent. You can see some examples of sub-forms here as to what I mean:

http://www.members.shaw.ca/AlbertKal...000000005.html
And, data bound forms have huge number of events (for example, a form load
has two events - on-open, and on-load... (the first event allows the form
load to be cancelled based on information in the forms controls). And, if we
cancel, then form never displays. In .net, you only have the .load event,
and can't cancel a form load. You only ability is to pull the code out
of the form, and have the *calling* code test for cases in which the form
should not load..and that is a pain (the code that checks for a legal form
load
belongs with the form).

And, we have multiple updates events also (before update, after update),
for delete events...we have many more events (before del confirm, after del
confirm, on delete).

If you need to write a game, or need a rich interface, then .net is the way
to go. However, if you just need a line of business application, and need to
edit data...ms-access still run circles around vb.net.

And, you not mentioned the report writer...one of the best in the business.

And, if you look at the new forms designer in a2007, we have anchoring of
controls, and even the ribbon bar gives us "stacked", and "tabular"
arranging of our controls. These handy new features make the forms developer
much more productive then previous versions. And, we can use xml mark-up to
create custom ribbon bars now.

And, while we don't have a true OO environment, we can create class
objects....it not that bad....

Without question, I sure you can come up with some things in .net that are
simply better, and easier then ms-access to accomplish. The new data binding
abilities of the .net environment go a LONG way to helping developers.
However, for the majority of data management systems, ms-access is rather
impressive tool, and IMHO still top dog when it comes to productively and
rapid application design (RAD).

The .net environment is a greater development system, and allows one to
build a FAR more rich interface then ms-access. - no debate here. the
problem is that most applcaitons don't need that rich interface. (and, if
they do..then .net becomes a good choice).

And, .net really shines when you start to include web services and
connectivity. the .net environment is "the" killer development system...but,
it just depends on the type of application you are building. for example, if
you have a "team" working on large project, then the OO desing approach is
going to yeild dividends. (we have souce code contorl for ms-access...but,
really, if your project is larger then one person to deveop..then you have
to question if ms-access is the right tool).

Further, when you start involving a server into this mix..then again .net
start to shine even more. I can honestly say that I *really* did wait for 10
years to see the day when the sql server can consume CLR (assemblies) from
..net. This one of controversial features of the new sql server, but I love
the concept!!!

Without question, some projects overlap in terms of what tool to use. In
those cases, I likely use ms-access, and you use .net...because that is what
you know best....

This much comes down to the right horse for the right course..and also what
tools you know best...

--
Albert D. Kallal (Access MVP)
Edmonton, Alberta Canada
pl************* ****@msn.com
Mar 30 '07 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

15
3101
by: Polerio Babao Jr.II | last post by:
Please correct me if im wrong. I have depended much on python and wxpython gui apps. After a year of using python apps I was able to do good application written entirely in python. One big problem came into my attention. The printing support. Yes, there was reportlab. But what if your client wanted to simulate the customized excel output and...
17
2112
by: Rich S. | last post by:
Hello Just like everyone else, I am excited about how easily one can create Windows applications with the .NET platform, but for shareware, I have some serious reservations 1. Your code can be easily decompiled. This would make it very difficult to implement any sort of license restrictions on your app, because anything you write can be...
25
2419
by: mad NAT'er | last post by:
Can any one give me a few examples of commercially available apps written in C#?
9
1493
by: Jim | last post by:
With .net having been around for a while now, does anyone know what the uptake of major software houses is in using .net for Windows Application development? e.g. have the likes of Adobe, MS, Corel, etc actually released any applications that use the framework? Jim
20
2002
by: Vincent Delporte | last post by:
Hello I'm about to write a prototype for a business application, but since this my first real web application, I'm looking for a good book or article that sums up the different issues web developers will encounter when coming from the world of dedicated applications (VB, Delphi, etc.) I'm thinking of issues specific to web apps like the...
6
4338
by: Internet User | last post by:
Can anyone point me to examples of commercial software packages (i.e. sold through VARs or retail channels) that were programmed in VB.net? Thanks in advance.
11
4268
by: JB | last post by:
I'm writing a data driven app, its all just about finished but i havent decided how to store the data. I'm looking at some form of database. Requirements: Easy to Distribute, hopefully just some hard disk files. Relatively quick to query. I think in this case, speed is secondary to ease of use for the end user. Although speed is always...
15
2563
by: Gilles Ganault | last post by:
Hello Since Python is such a productive language, I'd really like to be able to use it to write GUI apps for Windows, but business apps require rich widgets like (DB)grids, calendars, etc. The ones available in wxWidgets looked a bit too basic compared to what's available for eg. Delphi or .Net, and don't seem to be under active...
19
1829
by: Dotan Cohen | last post by:
I often see mention of SMBs that either want to upgrade their Windows installations, or move to Linux, but cannot because of inhouse VB apps. Are there any Python experts who I can reference them to for porting? I have nothing on hand at the moment, but I see this as a need without an obvious answer. -- Dotan Cohen ...
0
7588
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language...
0
7903
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
0
8115
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
0
7959
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
1
5488
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
5216
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3648
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in...
0
3630
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
930
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.