Fog Creek Software
Discussion Board




Cross-platform options?

I thought i'd post this here, since we seem to have intelligent people reading :)

First the groan:

We've just spent a good 6 months on the lastest upgrade to our web based application, using Microsoft IIS and ASP to deliver an application in Microsoft Visual Foxpro.

Now marketing tells us that is great, but could we convert it to run on Apache as well - by which I suspect they mean Apache on Linux...

Now the question:

I really don't want to have to have 2 totally different applications. I'd like a common application (at least at source level)  to maintain all the business rules etc.

What are the real options for building cross-platform web based applications?

What languages exist that I can build a rock-solid application in and then compile it to run on Win2000 and Unix (Linux) boxes and serve them up on IIS or Apache or whatever? Has anyone actually tried doing this?

All (sensible) opinions welcomed.

LC
Thursday, March 13, 2003

Java

Canuck
Thursday, March 13, 2003

Is ChilliSoft ASP still around? I think Sun bought them, but essentially it is supposed to allow ASP pages to run on *nix servers (possibly as an Apache plug-in).

I'm only aware of the product, so I can't comment on how well it performs.

Walter Rumsby
Thursday, March 13, 2003

It's Chillisoft is still around but it's called "Sun ONE Active Server Pages" now

http://wwws.sun.com/software/chilisoft/

Matthew Lock
Thursday, March 13, 2003

We build all our web applications in Perl, and they will run unmodified on Apache (linux and windows) and IIS.

Matthew Lock
Thursday, March 13, 2003

Actually, in answer to your actual question... Java is the answer... although I'm surprised that this even needs to be said.

Walter Rumsby
Thursday, March 13, 2003

Macromedia Cold Fusion runs on Windows, Linux, Solaris, and HPUX and works with many databases. Cold Fusion is built on J2EE, so you can use your existing J2EE or the bundled JRUN server.

You can also integrate Cold Fusion with whatever web server you use, such as IIS, Apache, Netscape, or Sun ONE. If you don't already have a web server, there is a bundled web server built on JRUN.

http://www.macromedia.com/software/coldfusion/productinfo/system_reqs/

runtime
Thursday, March 13, 2003

perl works, but I dont' think i'm the only one who feels uncomfortable running perl on IIS. 

We're currently developing a web application that will run on a linux farm, but we develop right off our own laptops.  We're using jboss, which is a free j2ee server. I've been pretty impressed so far.  Took a while to set it up, but now that its up, everything seems to be running smoothly.

Vincent Marquez
Thursday, March 13, 2003

I'm surprised you didn't anticipate this.

Apart from Java there is also the trusty stalwart, C++ which I have used for my cross platform web applications since 95.

Now however I am looking forward to when http://www.go-mono.net/c-sharp.html  finish their C# compiler for Linux, then we can use C# for cross platform web apps as well....

Frank
Thursday, March 13, 2003

> perl works, but I dont' think i'm the only one who feels
> uncomfortable running perl on IIS. 

Who feels uncomfortable about it?

Activestate's Windows port of Perl is a great fit with Windows and IIS. It has plug ins for ISAPI, ASP etc. I ahve used it for years in production and it's totally stable.

http://www.activeperl.com/Products/ActivePerl/

Matthew Lock
Thursday, March 13, 2003

...don't just take my word for it

http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=392342eb_2%40excalibur.gbmtech.net

Matthew Lock
Thursday, March 13, 2003

The replies thus far have missed out a popular and perhaps obvious candidate, PHP
Yahoo uses it (but you shouldnt necessarily use it because they do), its simple to learn and get up to speed on.. and regardless of what the Perl enthusiasts say, I somehow feel more comfortable installing PHP on an IIS server than ActivePerl.. besides, the addons cost money for Perl, but the accelerator for PHP is available for free
It runs wonderfully on Apache of course, just check Netcraft for the most popular apache module.. its not mod_perl, its mod_php
Of course, if its a very large project, you may have problems maintaining the codebase (I program in both Perl and PHP, so I think I know what I'm talking about) and you may also be slightly turned off by having to mix HTML with PHP.. sometimes that can be hard to read (but of course, you're used to ASP, so its much the same thing)

Joe Random Webprogrammer
Thursday, March 13, 2003

I'm still thinking I've missed something in the original post - and yes all of the options mentioned above are worthwhile options (there are many cross-platform options as long as your provider is not called "Microsoft") - it just seems so surprising that someone needs to ask "what are my cross-platform options" for a web app in 2003.

Walter Rumsby
Thursday, March 13, 2003

You can get Apache to work on both platforms, but only on windows can you plug in ASP.dll.. To get asp.net going you can use the in-development mono on the linux side or what Microsoft provides you on the Windows side. On Apache.. there's mod_gnomebasic or something like that.. as a language engine it is discontinued and no longer particularly pushed by the Ximian development team.. but as a ASP substitution it can almost there but not quite ASP 2.0. Chilisoft or Sun ONE is a little pricy but basically you get all you ever want out of ASP except an environment where you can access COM objects.. I am not sure you can run every com object you want on Linux.. as they are not exactly platform agnostic. The Sun ONE/Chilisoft answer has been either DCOM or rewrite all your com objects and Java-based components. All of the free and commercial ASP solutions on Linux can use the ODBC-substitutions provided by the driver geeks who do it for fun..so you can still connect to a separate SQL Server on Windows NT/2K from Linux.. but your biggest problem is learning how to use a subset of ASP (safe subset) and trying to make do without COM.

Li-fan Chen
Thursday, March 13, 2003

Sun One probably provides a proxy that let's you run out-of-process COM objects on a separate Windows BOX (or VMWare..that's always an option for running Windows in Linux).. and tunnel the responses and requests back to the Unix side of things.

There is also an effort to clone ASP .. you write the ASP script.. the tool would compile it to java bytecodes.. and you have access to all the java business logic you can come up with.. and most of the asp code you write acts the same way. I think this is either free or commercial. Don't know the name off the top of my head.

All of these solutions are pretty poorly supported (which to me means the number of articles written on using them according to Google) compared to good ol asp 3.0 and the new asp.net. But that doesn't mean you aren't competent enough to reap the benefits of going "free" or "near free".

ASP is at the end a very simple wrapper.. you should be able to make the transition as long as you know how to tell whether your projects are using very complex ASP /IIS facilities or not.

Another thing to point out.. if you have any IIS filters or processes.. like URL rewriters and all that.. you'll have to find Apache equivalents (mod_perl can do URL rewriting really well--it's actually really famous for its rewriting feature..)

Li-fan Chen
Thursday, March 13, 2003

If you're up to rewriting everything I would urge you to look at Python, either using Apache's mod_python or, if you're looking for an application server, Quixote or Zope. Zope is also a good choice if you need to access databases as it has a number of good interfaces (via ZODB) and load balancing (via ZEO).

David Roper
Thursday, March 13, 2003

Jave is currently the best choice for reliable and portable web applications.  Check out Tomcat or JBoss/Resin for web serving; they are the open-source standards, and both integrate closely with Apache.  If you're using FoxPro right now for a DB, MySQL is free and easy to learn and will provide similiar scalability and better stability.

Considering that you have an IIS/ASP frontend with a FoxPro database, though, dropping everything and rebuilding in Java is a big risk.  You should probably try to figure out why you need cross-platform support, and make clear the costs.

Colin Evans
Thursday, March 13, 2003

Thanks guys for your rapid responses.

When you are a Microsoft house you tend to lose track of where other solutions are going. I had assumed Java was going to be the most popular solution, but I was looking for some other ideas just to make sure.  I was also a little nervious about running Java on an *MS* machine - not sure about stability etc. (I have, like many people, had bad experiences with Java on the desktop). Perl, PHP and C++ were the other options in my mind.

I should have mentioned that the VFP components are actually middle tier (business and data access) connecting via COM to the ASP pages and ODBC to an Oracle database. Thus rules out Chillisoft because it can't do COM on *nix boxes.

As for why we didn't anticipate this, as I said we are an MS house and this is the first real project where we have moved from the desktop to the web. Desktop software sales are usually arranged by Business units where Windows is fine. When you get to the web you hit IT departments where Windows is the devil. We hadn't anticipated just how strong this hate of Microsoft is - officially 60 % of our clients do not use Internet Explorer (although in practice everyone does)

Again thanks for the advice (and confirming my suspicions)

Cheers

LC
Thursday, March 13, 2003

"officially 60 % of our clients do not use Internet Explorer (although in practice everyone does)"

ROFL!

Just me (Sir to you)
Friday, March 14, 2003

Maybe you would like to look at Delphi+Kylix.
Can do Windows and Linux with same code.
And is much closer to VisualWhatever then java.

drazen
Friday, March 14, 2003

And it does SOAP and Webservices on Linux and Win2000 for IIS and Apache.

drazen
Friday, March 14, 2003

Drazen that sounds like a good deal. I don't use Kylix nor Delphi.. how much would an enterprise license cost if you bought a package that can build to both platforms? And is it that much more VisualWhatever than JBuilder?

Li-fan Chen
Friday, March 14, 2003

Take a look at Borland homepage, they have pricing info, you can get eval copies for everything.
I think that if you buy Delphi enterprise, you get Kylix enterprise in box.  Not sure.

Delphi/Kylix IDE is much more like MS IDEs. Standard windows app.

disclaimer: I do not work for Borland, I do not make money selling Borland stuff.

drazen
Saturday, March 15, 2003

*  Recent Topics

*  Fog Creek Home