PDA

View Full Version : Which is the best language for a ODBC application?


Banana
2006-07-12, 17:23
I finally bought a database I create in Access into beta stage and am very impressed with it overall. However, I'm encouraging my uppers to convert it to SQL server if they want to keep expanding the functionality. After reading up on upsizing, it looks like I should be able to keep the table designs, which works well for the purpose but it's very likely that the forms will get broken due to the difference in how SQL and JET (Access's engine) handles data.

While Access can work with SQL back-end, I would think that it could be better done wihtout Access. So therefore I'm considering developing a front-end GUI to the database. Hence my question-

I know only VBA, VB .NET, and SQL, and that is only because my work has MS Access and I took a class in VB and didn't have time/commitment to learn other language. With the proposed project in mind, that will be a good excuse to move away from VB and learn other language, as I'm sure there are language more suited to what I need.

Now, I'm hoping that someone here will point me down a language that is best suited for the purpose I stated above: to create a front end GUI to the SQL database using ODBC. This will be on Windows, of course :( as it's kind of hard to tell my company to go Mac. ;)

Three things I need out of this languages:

1) Rapid deployment - I'd rather not be sending months after months developing a application and cleaning up bugs and figuring out what the hell went wrong.

2) Documentation - One good thing about Access was there is a good community and resources on the web that I can access, read and ask to get my questions answered. If I'm using a language that is used by 100 people worldwide and has a forum that gets new posts once in ten years, I will be able to finish the project by time I head to nursing home. Think I will pass. :D

3) Robustness - Not sure if that is the term I want; my biggest gripe with Access/VBA was their crapacioius error handling and how easy you could create an error simply because you didn't case *all* bases, which is ridiculous. I ended up using a generic error handler which isn't always descriptive of what actually happened and just hope for best. :\ So I'd like to use a language that will enable me to actually do a full-assed job, as opposed to half-assed job.


If anyone think my criteria are off the base, I'm open to any suggestions.

Thanks for your feedback. :)

bassplayinMacFiend
2006-07-12, 20:14
Any of the .NET languages should work. Since you already know VB.NET I'd say you could start down that road, since VB.NET is more robust than VBA. If you want to learn a different language you might want to check out C#. As far as support goes, there's MSDN, MS sponsored dev forums and other sites like devshed and more. C# and Windows forms to create managed code running on the .NET CLR seems to be the popular way to go.

Banana
2006-07-12, 21:47
Okay that's a start.

Any particular strengths of C#? How is it different from VB?

bassplayinMacFiend
2006-07-13, 07:03
Here's a start from MS (http://www.microsoft.com/downloads/details.aspx?familyid=08e3d5f8-033d-420b-a3b1-3074505c03f3&displaylang=en).

To me, C# is really similar to Java. It has garbage collection so you don't have to malloc/free anything as that's handled by the CLR. It really is MS' version of Java, as at the time MS came up with C# they still weren't allowed to ship their Java runtime module or J++ due to a lawsuit started by Sun.

So if you're not familiar with Java/C/Obj-C type syntax there will be a learning curve. But, the OO principles that have been kludged into VB.NET have been in C# from the beginning (polymorphism, inheritence, method overloading, etc.) so the implementation within the language is cleaner, IMO.

For example, here is a for loop:

Dim Ctr As Integer

For Ctr = 1 To 100
' Do Something
' Do Something Else
Next Ctr

-----------

int Ctr;

for (Ctr = 1; Ctr < 101; Ctr++)
{
// Do Something
// Do Something Else
}

Banana
2006-07-13, 21:50
bassplayinMacFiend, thanks for your comments. :)

Anyone else have a comment?

chucker
2006-07-13, 21:57
The beauty of .NET, in a nutshell: write in whatever language you prefer. It won't make any difference whatsoever on the resulting bytecode.

If you're already familiar with VB, use VB.NET. If you want to learn C#, use that. And if you're some crazy Ruby guy like me, you could look into RubyDotNet as well. They all get access to the same vast .NET object model.

So, if you have already decided for your app to be written in .NET, don't waste your time asking people what language you should use. Use whichever syntax you like — the rest is the same!

azcoder
2006-07-13, 22:00
Just an idea- You could make a web-based front end.

This would work on all platforms. And be accesible from anywhere.

Best of all it really simplifies deployment. (I speak from painful experiences deploying fat-client gui ODBC and MDAC components in our enterprise over several years).

If you go web-based, you can still use odbc.

Although I would recommend using Java, J2EE, and JDBC - this keeps you platform agnostic. JDBC works with any database from access to SQL Server to Oracle to Mysql.

Good Luck

chucker
2006-07-13, 22:02
Just an idea- You could make a web-based front end.

RUBY ON RAILS!!!!!!!!!

Er, I'm just sayin'.

:D

Banana
2006-07-13, 23:11
Interesting- didn't realize that .NET wasn't just a multi-language IDE in same sense that Adium is multi-client platform, but is capable of producing the same result. Good to know. To be honest, I was really looking for a good excuse to learn another language. :D

As for web-based front end, I'm aware that such solution exists, but not sure if this is what I want; am I mistaken in thinking that web interface has less control than a traditional front end? However I'm intrigued that you say web interface is faster to develop, so I'd like to hear more.

chucker
2006-07-13, 23:25
.NET isn't an IDE; Visual Studio is. .NET is an object-oriented framework much in the same vein as Cocoa. They're both very powerful; .NET has the edge in some areas and Cocoa in others.

chucker
2006-07-13, 23:26
However I'm intrigued that you say web interface is faster to develop, so I'd like to hear more.

By "faster to develop", azcoder likely meant "users tend to be more forgiving of atrocious UI design".

azcoder
2006-07-14, 19:03
Development is not necessarily faster - I was speaking of deployment.

The action of deploying your application to your users can be quite problematic. Historically, our IT division built and deployed fat-client(VB/SQLServer) apps to our enterprise.

This resulted in a variation of the well known dependency problems commonly referred to as dll-hell. E.g. one app required one version of the mdac(Microsoft Data Access Components) while another required a different incompatible version. Thus, deploying one app to the client broke another app.

With Web-based applications, this problem vanishes entriely as the client only needs a browser. Nothing is deployed. All version dependencies are on the server.

From an Enterprise standpoint, this savings is substantial.

As far as atrocious UI design - that is definitely something to consider with web-based apps. ;-)

Ajax is helping alot in this regard though.

spotcatbug
2006-07-14, 21:59
This is precisely the reason that we're moving one of our in-house apps to a web-based front end.

JayReding
2006-07-17, 14:18
If you want a desktop application, you're just fine with VB.NET. The .NET framework helps with the whole "dependency hell" issue because of the way in which frameworks and libraries are versioned. (Something that Microsoft incidentally "borrowed" from UNIX.)

If you're doing a web-based application, Ruby on Rails is by far the best framework out there, and worthwhile to learn. Once you get used to the Rails way of doing things, the level of programmer productivity is amazing.

chucker
2006-07-17, 14:21
(Something that Microsoft incidentally "borrowed" from UNIX.)

I don't think that's a valid argument any more. Many complain Windows isn't Unix-like enough, yet many also complain Windows "steals" from Unix. :rolleyes:

thuh Freak
2006-07-17, 15:43
I don't think that's a valid argument any more. Many complain Windows isn't Unix-like enough, yet many also complain Windows "steals" from Unix. :rolleyes:
ms steals plenty, just not enough.

chucker
2006-07-17, 15:52
I think the term "stealing ideas" is heavily abused and overused. There's only so many ways you can solve a technological problem, and you'll always have an inventor (someone who comes up with a solution), an innovator (someone who comes up with a well-implemented solution) and several followers (those who simply "steal" the innovator's implementation). Nothing particularly bad about that.

JayReding
2006-07-17, 15:55
I think the term "stealing ideas" is heavily abused and overused. There's only so many ways you can solve a technological problem, and you'll always have an inventor (someone who comes up with a solution), an innovator (someone who comes up with a well-implemented solution) and several followers (those who simply "steal" the innovator's implementation). Nothing particularly bad about that.

There's nothing wrong with borrowing a design concept, especially one that is very deliberately made open. What's quite shocking is that it took Microsoft years to do so, when the basic design dates back to some of the very early beginnings of UNIX.

chucker
2006-07-17, 15:57
There's nothing wrong with borrowing a design concept, especially one that is very deliberately made open. What's quite shocking is that it took Microsoft years to do so, when the basic design dates back to some of the very early beginnings of UNIX.

If you're going to go down that route, you might as well accuse Apple of the same, seeing as they didn't have a Unix until '88 (and let's face it, A/UX wasn't exactly widespread), and no desktop Unix until 2001.

JayReding
2006-07-18, 08:09
If you're going to go down that route, you might as well accuse Apple of the same, seeing as they didn't have a Unix until '88 (and let's face it, A/UX wasn't exactly widespread), and no desktop Unix until 2001.

Believe me, I'm no fan of "Classic" Mac OS by any means... I only switched to Mac as a platform after OS X.

Banana
2006-07-18, 08:17
and all I wanted was the right tool for the job.... :p

JayReding
2006-07-18, 12:12
I should also mention that if you don't have Visual Studio .NET and don't want to shell out all the cash for it, SharpDevelop (http://www.icsharpcode.net/OpenSource/SD/) is quite capable, and also free. I've done a few .NET projects with it, and while it certainly isn't quite as polished as VS.NET, it's more than enough to get the job done.