PDA

View Full Version : Developing web applications


Cron
29th Dec 2009, 22:24
This is a rambling question so would be grateful if you could bear with me.

I’m looking for advice regarding the development environment of choice for developing web applications. Now, I’m no web programmer. My history is in-depth Delphi for Win 32 apps, some VB and a smattering of other languages plus a pretty good knowledge of SQL.

But, it’s time to drag myself into the 21st Century and get to grips with developing web applications. I do not want to go the VB route if I can avoid it. I’m too much steeped in the style of Borland products. (Not the products themselves, the style of the products as a complete development environment)

So, the question is: which development environments (Open source hopefully) would anyone recommend which have a decent design GUI, good help systems for the coding side and a very good connectivity to open source multi-user databases (e.g. Firebird)?

I realise I’m being a bit prescriptive here so any general comments appreciated.

Regards

Cron

bnt
29th Dec 2009, 22:50
Well, if you're talking Open Source, then the closest to "standard" is LAMP (http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29):
Linux - optional, I supposed, since there are Windows versions of the other bits.
Apache web server
MySQL database
PHP, Perl, and/or Python

The P's are probably the more awkward: PHP is the standard, while many like Perl, though I much prefer Python. Since you're used to Delphi, the P could be made to stand for Pascal: FreePascal (http://www.freepascal.org/), which (they say) "has excellent compatibility with TP 7.0 as well as with most versions of Delphi (classes, rtti, exceptions, ansistrings, widestrings, interfaces)".

Liftboy
30th Dec 2009, 06:43
Hi,

I develop my applications with the Wampserver --> PHP Apache MySQL avec WampServer 2 : installation PHP MySQL Apache (http://www.wampserver.com), it's open source/freeware. For scripting I use Notepad++ and phpDesigner (~85$)

W(indows)
A(pache)
M(ySQL)
P(HP)

Very easy to handle, low performace required...

For the GUI design you should work with images and css-style-sheets but there are some tools like EXTJS with which you can design your GUI.

Regards,
Simon

batninth
30th Dec 2009, 10:31
Cron,

It depends on what you want the web applications to do & what skills you want to pick up & why.

There is a lot of development around on LAMP as suggested by bnt & liftboy above, but if you want to be building skills to use elsewhere then it may be worth looking at Mono (http://www.mono-project.com/Main_Page) which is an open source implementation of some of the Microsoft stack including ASP.NET. By it's nature it's not the latest & greatest of the .NET stacks, but it is a useful tool if you ever wanted to transfer skills back to the Microsoft world (and it has VB.NET if you want it, I know you said "Delphi" but...). Mono is a little more difficult to set up on Linux than out of the box LAMP but it's swings & roundabouts.

The other way to look is if you simply want to do pure Web development for your own use, then Oracle Application Express (http://www.oracle.com/technology/products/database/application_express/index.html) is available free for personal use but you also have to get their free version of Oracle RDBMS as well. Again they run on Linux but need to be set up. There are quite a few commercial Oracle APEX sites out there so again it's something to think of if you are trying to skills build.

Whatever you do, have fun with it

batninth

Cron
30th Dec 2009, 18:20
Many thanks Chaps, I now have an informed starting point and plenty of reading.

A very good new year to you all.

Regards

Cron.

Jofm5
1st Jan 2010, 15:32
Cron,

It all depends what you want to accomplish, what hardware you want to target on the server side and also which browsers you want to target on the client side.

Also a big question is whether you want to hand write your website from scratch or are happy with generated content.

If you wish to connect to a database backend you will need to decide which one fairly early on as you will need to make sure your chosen language has the appropriate drivers for it.

One final consideration is once you have developed your website where are you going to host it ? - Last time I looked hosting on Windows based webservers was slightly more expensive due to the licennsing costs involved - so if this is actually going to be a 24/7 website make sure you check out the cost of hosting as part of making your decision.

For home based projects the open source options are usually preferred due to startup costs....

e.g.

WebServer: Apache
Pre-Processor: PHP
Database: MySQL

The above have versions for both Windows and Linux, so you can develop on your home machine and then host on a cheaper linux hosting platform.

Things to be weary about is that PHP has gone through itterations that are not backward compatible so there is no guarantee you wont be stuck with that as a platform should they alter sytnax again. PHP is based upon PERL so if you have any knowledge of this it may help.

In a commercial environment is use MS Internet Information Server (IIS) and ASP.Net, this is typically dictated to me by the fact that it is the clients preference as there is lots of development resource out there etc...

If you wish to look at IIS then you probably have it already, go to control panel/programs and settings or Add/Remove Programs and select the windows features option and turn on IIS.

You can then download free versions of Microsofts development tools e.g. Visual Web Developer 2008 Express Edition (http://www.microsoft.com/express/vwd/) and as a database you can get SQLServer Express Edition free.

These all have constraints but are a good way of playing about and learning.

It is worth noting you can get IIS to run PHP as a processor also, so you dont have to have apache and you can have PHP and ASP.Net exist side by side etc...

If you do use ASP.Net you will be restricted to the Windows Platform.

Without knowing what your trying to achieve its pretty hard to give some specific advice, but the above are some considerations.

Cheers

Cron
1st Jan 2010, 18:43
Thanks J, you seem to have explained well the the fix I'm in - all those choices!

Good comment about what am I trying to achieve, which database and which browser.

Well, I can be more specific on that score.

1. I definitely want to target the Firebird open source database - I have experience with it and know the tools.

2. I.E will be the browser - if it runs in others it will be a bonus.

3. The application is a timetabling program (currently written in Delphi for Win 32): it is very graphics intensive (not video) with drag and drop of shapes, right click pop up menus etc - in fact all the things that Windoes apps have aplenty and seem very clunky in browsers.

Many thanks for the advice.

Cron

mixture
6th Jan 2010, 17:29
which browsers you want to target on the client side

You know what, I've got to bite on that one.

One of the most annoying things I come accross on the web is sites written by "browser blind" developers who only ever look at the world through IE and use all sorts of IE specific hacks on their website.

Cron, if you are only developing this website for yourself, then fine, IE it is. But if there's going to ever be any remote chance you are going to let someone else use your application, then do yourself a favour and write for cross browser compatability .... it's not difficult !!!!

n a commercial environment is use MS Internet Information Server (IIS) and ASP.Net,

Avoid the security risks like the plague.....real commercial environments use J2EE :cool:

Cron
6th Jan 2010, 19:31
Thanks Mixture - sounds like sense.

Cron

Jofm5
7th Jan 2010, 06:11
Avoid the security risks like the plague.....real commercial environments use J2EE


Feel free to have your say but I am wholly surprised you recommend the java enterprise environment as a solution as its not browser specific, it works in most - and as such the weakneses are equally exposed.

Not only is it that J2EE is not suited to the discussion but it requires development skills way above what has been discussed.

You may be peeved by browser blind developers, but I would say I am peeved by a browser blinded users who do not understand the differences. - Just cause its J2EE does not mean MS browsers are excluded or exempt from any flaws in it.

Like I said, I use what is dictated, it does not mean by default it is flawed. Many banks do and we dont have a small problem let alone a huge one - if you have personal preference then fine, just dont try pass it off as a technical reason.

The day you rely on your non MS website being secure is the day you get bit in the ass as it has already happened many times.

If you think j2ee is secure, then lets compare notes.

mad_jock
7th Jan 2010, 10:17
I will state now that I am no a developer I am mearly a grunt that used to keep the servers ticking over.

Persoanlly I wouldn't go for the java option either purely because its a hog on the CPU's and its a pain in the arse to admin. In the brief time we had one to play with it wasn't very stable and needed patching almost weekly and seemed to throw a syntax fit daily.

Apache never had a problem with it.

Our guys used to use pearl and a sysbase DB (which you can get for free for development)

It was predominately for document control and software testing recording and software build control, and involved a distributed moving DB enterprise.

Apart from bandwidth issues when it was time for the live DB to move to another country the whole thing was impressively stable.

The web servers were on a intel platform with redhat linux installed and the sysbase was on a solaris box. And one intel test platform with both sysbase and apache on it.

From a sys admin point of view it was brillant the solaris box needed no special attention the linux boxs needed a visit every 2 weeks, ours was the master and the replication to the local ones worked a treat. The apache was taken care of by the web master, and the sysbase was done remotely.

I don't know how this setup limits your development options but from my point of view it was a stable solution which just kept working away with minimal admin.

mixture
7th Jan 2010, 11:42
Morning Jofm5,

Alright, let's first clear up my stance on security :

I don't care what platform you are running, I don't care whether your developers have coded in Ruby, PHP, .NET, Java or C++.

Nothing beats a propper battery by a suitably experienced pentest team. Given your average development project, a good team will pick up a number of things you or your ops team missed !

Now, back to your questions/points :

I'm surprised that you say a J2EE platform is browser specific. I don't seem to have any problem conducting online banking on a Mac or PC, using whatever browser .... the apps I've used behave and looks the same.

Ref. MS development ..... how much work does it take to harden a MS environment vs a *nix/*nux one ? It requires a lot of work during setup and a lot of work to keep it all patched up ! Sure MS are taking steps to address this in newer OSs etc., but there's still a long way to go .... still a lot of legacy code and dependencies lurking behind the fancy new GUI......

Also, I'm no .NET guru, but I do believe .NET provides an easier ability to run unmanaged code by calling OS APIs. In Java you can only call sytem resources and native code when using trusted signed code. Futher authentication tends to be more flexible in J2EE.

J2EE probably still remains far more widespread than .NET and Java JVM has been around a lot longer and hence benefits from extra maturity.

"Early" .NET adopters are having their fair share of teething troubles, some quite serious and high profile (LSE :cool:) .... there are still many things I would have a lot of sleepness nights on if I signed-off a MS stack based solution.

Both architectures have their strengths and weaknesses ..... but its the severity and risks associated with the potential and inherent weaknesses of .NET and its associated infrastructure that worry me at the present time.


Finally, coming back to Cron's original post ....

By the sounds of things, both .NET and J2EE would be overkill for him (plus too much of a learning curve). A higher level scripting language such as ColdFusion or PHP would probably suit his immediate needs much better.

Cron
27th Dec 2010, 18:12
I took your advice Mixture and we looked at PHP and AJAX and we are back to where we started.

However, along the way Flash has reared its head and so has Javascript. Now we are sitting around scratching our heads again.

May I have another go at defining our requirements (much simplified now)?

Any input gratefully received.

1. We want a server side script to draw shapes in a browser.
2. We want the user to be able to move and resize these shapes with the mouse (no screen redraw)
3. Most importantly we want the coordinates of the shapes stored in a database server side.

Thanks

Cron