The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Which Web Technology to use??

Hi all!

My wife wants to start a home business and I want to help her by creating a sales system based on Web. I am sort of new to Web technologies and I am wondering what tools/technologies to use.

The High Level requirements are:
- Users must be able to browse any items
- Users don't need to have an account to access the system
- A user can have a shopping cart
- User should be able to issue orders, we will not bill them right there for now but maybe later.
- The admin (my wife) must have a way to update the product catalog (add/remove/modify items)
- The admin must have a way to check for purchase orders and generate invoices
- etc...

I think I will go with JBoss as the App. server, MySQL for the database and then, what is the next step? Should I use struts? J2EE? how useful is hybernate? Plain php??

As you can see I barely have any idea on these but I really like to learn.

Advise is appreciated!
Friday, October 27, 2006
If your aim is to support the business effectively, I'd look for existing products for small on-line businesses.

If your aim is to learn about web development, pick whatever you're interested in, but I would keep it simple in whatever platform you choose.
Mike S. Send private email
Friday, October 27, 2006
Definitely don't choose J2EE if you want to get anything done.
John Topley Send private email
Friday, October 27, 2006
> Definitely don't choose J2EE if you want to get anything done

I think this is a bit harsh - some parts of J2EE (and related things like Struts) work just fine. However, the biggest problem with J2EE-based projects is that people some compelled to use as many features as possible...
Arethuza Send private email
Friday, October 27, 2006
Your high level requirements would be equally implementable in any mainstream technology. To pick one you need to think about things like the long-term prospects for the code you are writing, and your own preferences and experience.

If this is a one-off (it sounds like it is), then I'd go with ASP.NET if you have a MSFT background, or J2EE (avoiding the messy bits) if you have a Java background, Perl if you like cartoon-characters-swearing syntax, etc etc.

Alternatively, if you are using this as an education exercise, I'd go with something interesting and new (if it is new for you), like Ruby or Python or PHP.
Greg Send private email
Friday, October 27, 2006
Plus one for ASP.NET if you have any familiarlity with that area of development.

Otherwise LAMP

Linux, Apache, MySQL and PHP - 'cos you can Google for just about anything you need.
Mike Griffiths Send private email
Friday, October 27, 2006
I'll second Mike S. If you want to get things up and running quickly and efficiently, go with a ready-built solution.

Assuming you want the learning experience, keep it simple. Do you already have programming experience? Stick with the platform/language that you're most familiar with. It's hard to make recommendations without knowing your previous background.

If you go the java route, I would avoid J2EE for now. Not that I don't like it - my brief exposure to it made me pretty fond of it. But you have to jump a bit higher to get started than you might have to with other solutions. J2EE is a large beast designed for apps that need that kind of power.

ecommerce apps come with their own sets of things to worry about, too. You're dealing with people's identities and money, and you have to be damned careful about it. I really wouldn't recommend taking on that kind of responsibility with your first web app, unless you have equivalent experience from another domain.

One requirement jumped out at me:

"User should be able to issue orders, we will not bill them right there for now but maybe later."

Apologies if you've already considered this - please, please don't store billing data along with it. If you're billing them later, that's the time to collect things like CC information, etc. Ideally, you should just pass that stuff straight through to the payment gateway and immediately forget about it.

If you can flesh out your current experience a bit, we might have more useful suggestions...
Friday, October 27, 2006
Thanks to all!

I will try to get as far as possible from identity managemente and CC info. My idea was just to store what a customer wants to buy and then my wife will handle the transaction manually. I know it is dangerous to handle that info, specially if not an expert.

I have C/C++ experience, a little bit of Java and PHP. I think I am going to go with struts just for the fun of learning it. Worst case I can always go to PHP where I have some experience.

Friday, October 27, 2006
"I think this is a bit harsh - some parts of J2EE (and related things like Struts) work just fine. However, the biggest problem with J2EE-based projects is that people some compelled to use as many features as possible.."

Agreed, in particular EJBs. Struts may work just fine but it's a Stone Age tool compared to Ruby on Rails.
John Topley Send private email
Friday, October 27, 2006
ColdFusion should be a perfect choice.  You can use NewAtlanta's free BlueDragon server, which even provides some features beyond what is in the Adobe product.  BlueDragon will run on Linux or Windows, whatever you prefer, as its a java application (just like the Adobe CF server).

Since ColdFusion is a java application, you will not have a hard time extending it with interesting java code that you've already written, and ColdFusion is incredibly easy for a beginner to learn.

As a tag-based language, CF will seem more natural to someone learning HTML than some of the other options.  CF also has a lot of features to help you get off the ground very fast, with <cfquery> abstracting database interaction and just making it easy.

With ColdFusion components and the available application frameworks (such as Mach-II, ColdSpring, Reactor, and others), you can quickly build a robust application using a lot of "off the shelf" architecture bits to make your life easier.

Of course, you can use anything you like just like these other folks say.  But as someone with (a) a strong java background and (b) not much web development experience, CF seems like it would be a perfect fit.

Good luck!
Eric Knipp Send private email
Friday, October 27, 2006
If you go the ColdFusion route, I do recommend Ben Forta and Raymond Camden's "Macromedia ColdFusion MX7 Web Application Construction Kit." (It's a book, not an actual kit.) Not only is it fairly well regarded, it uses a video store as the example throughout the book, including a shopping cart. You should be able to very easily convert the code to support your business. I realize other languages have similar books, but I was impressed at how thorough this one was.

I will be fair and admit that ColdFusion, JSP, PHP, Perl, classic ASP, Python and Ruby (on Rails) are probably all about equally easy to learn if you're willing to put some effort into it. ASP.NET and J2EE require a deeper understanding of how their "web delivery paradigm" works and I would not recommend those two per se if you've never did web development before.

For the sheer depth of useful and timely material, tutorials and resources available, I'd probably rank them in this order - PHP, Ruby (on Rails), JSP, ColdFusion, Python, Perl and classic ASP.

To head off the inevitable flames, I ranked classic ASP last because a lot of the ASP.NET stuff is "pushing" classic off the shelves, making it hard to Google for a true classic ASP solution to a problem. Perl has a lot of fantastic web development material out there but it tends to get lost admist eveything else that Perl is good for.
Friday, October 27, 2006
Yes, I'm not singling them out but Microsoft has done the community an enormous disservice by naming new things similarly to old:

VB vs VB.Net
ASP vs. ASP.Net
ADO vs. ADO.Net

Sure messes with you when researching an issue... though I imagine Google and others are doing what they can to help resolve the ambiguities this sort of thing produces.
Slim Simi
Friday, October 27, 2006
"I think I will go with JBoss as the App. server, MySQL for the database and then, what is the next step? Should I use struts? J2EE? how useful is hybernate? Plain php??"

I'd go with PHP and MySQL. It's all free, and the function reference at is very handy. Lots of people chime in with their own code samples on most of the function pages.
Tim Patterson Send private email
Friday, October 27, 2006
I'm a C++/C# programmer myself, but I'd go with PHP.

- it's easy
- it's free
- it includes about everything you'll ever need for Webdevelopment
- there's no "magic", that could bite you when you least need it
- it is well known and widely used
- performance is good
- it's close to the metal of webprogramming, doesn't abstract basic HTTP too much
- it scales (just add another box+load balancer)
fg Send private email
Saturday, October 28, 2006
Why aren't you just paying $10/month for a simple eshop package form any of the major webspace providers?
Saturday, October 28, 2006
Re: Adrian.

I think a lot of those shops have yearly contracts or hefty cancellation fees. Given EdnoWeb's lack of expertise, I'd be hestitant to recommend such a shop until he and his wife knew they were going to be in the business for the long haul.

If you know someone who'd create a good quality ecommerce shop and lease it to me for exactly one month and $10, I'd love to meet him!
Sunday, October 29, 2006
Hi EdnoWeb

I have developed an online cataloging tool complete with ordering, catalog thumbnail view and shopping cart in ASP 2.0 which I could handover the source code to you for USD500. It's customiseable and self-maintainable. You will need to host it on a Windows server running IIS. Currently I'm using Access but I could port it to SQL Express or MySQL with ODBC. Would you like a demo?
Ezani Send private email
Tuesday, October 31, 2006
I would definitely go for ASP.NET 2.0.
Phil Gates
Tuesday, October 31, 2006
Why not just buy an existing shopping cart instead of write one?  There are plenty of good ones if you are willing to shell out a few hundred dollars.  Every one of them work with major credit card gateways and besides the crappy FOSS ones, they are a very easy to use.

Sure it is fun to write yet another a shopping cart, but wait until she asks you to export into quickbooks, make the site keep track of inventory (dont forget each t-shirt size is a seperate SKU), or offer coupons.  For $200 all that is done and tested.
Cory R. King
Tuesday, October 31, 2006
I'd recommend APS.Net 2.0, the IDE and functionality has come a long way.  You can download a free Express Edition of Web Developer.

Also, there is an open source ASP.Net shopping cart project which can be extended at  I customixed this on one of my client's E-commerce sites.  Great way to learn I think.  Requires SQL Server but you can get away with the SQLExpress until its hosted.
Hungry Web Developer Send private email
Thursday, November 02, 2006
Dude ... people .. you all must be kidding. Holy Cow. It's been about 6 years since I wrote a shopping cart but I don't think it's gotten any easier.

Give your wife a chance dude. Start at Yahoo or Ebay. If she makes a go of it then consider ... oh please ... re creating a wheel.

You are going to write a shopping cart? And you mention that great transactional database mysql? Oh no .. you are going to install innodb/innobase ... NOT .. you haven't even considered transactions. I hope your bank has.

And you are going to pay minimum US$100 a momth to host this?

Honestly. Start your wife at Yahoo or Ebay or I'd do Ebay and my own site. I personally use the ratings on Ebay to trust or not (with some caution). You got to buy a shopping cart. Look at Xcart written in PHP. Years later the dudes still have rounding errors. They got hundreds if not thousands of people using it and I still found rounding errors .. never mind some code to make you speak Italian.

I love it ... gee .. wife wants to sell on web and I'd like to learn so I'll develop her site ... bug city .. is she going to be selling bug spray? Never mind security issues. But you've got some C/C++ under your belt but you don't see the futility of what you are talking about? I dunno. I wrote about 4 carts myself, supported sites using all kinds of other carts ... but heck I'm no C/C++ programmer.
Friday, November 03, 2006
I strongly advise against writing a cart, as a part-time hobby effort - it will be a disaster.

For a homegrown effort, you could look at the services that Paypal has - they have buy buttons that work with their own cart, and though its been a few years it worked out fine. I had set up something for a friend with PHP templates and MySQL on I used some nice templates and added maybe 20 lines of PHP code to make them dynamic.

I have enough PHP knowledge to query a database and iterate the result set.

I hosted ONLY the catalog of items, and generated the buy buttons dynamically. The Paypal cart is plain, but I believe you can enhance things visually with a better plan with them.

The basic functionality (with no setup costs at that time, but you need to check it out now) is that you get an email with the order details from Paypal. They have more advanced merchant services, but I haven't explored them.
Jason Thibodeau
Tuesday, November 14, 2006

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz