Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

We're looking at converting a software package from Windows over to the browser. It's a back office system consisting of Ledgers, Stock Control, Order Processing, etc and it's written in a legacy language (Dataflex).

The project consists of 200+ database tables, 100+ reports, 300+ Views, 100+ Dialog boxes and 200 or so Selection Lists.

I'm really struggling to get my head around the technologies that I'll need to use to convert this to a more modern web based programming language / framework. Even simple screens (Entering a stock location) seems overly complex. With the current language, I can drag a bunch of Fields to a form (a-la VB), wire in a tiny bit of database code and I've got a screen that'll allow me to find, delete, edit and change records easily. 10 minutes of development, tops.

Has anyone got any suggestions on how I can move from my current VB style programming language to one that allows similar functionality on the web?

Has anyone got any ideas how I go about working out how many man hours it's going to take to convert this sort of project to a new language on the web?

What Web Framework options are available, and how do I decide between going with something like Rails vs going with something like ASP.Net?

We've a tonne of code wired to OnClick and OnChange events. (I know this is bad). What strategies can I take with regard to converting this to the web?

I'll admit - I'm hopelessly confused by some of the newer syntaxes used by modern languages. Is there any language that allows me access to the database without having to subclass everything through IEnumerable and various weird Typecasting things.

Has anyone done anything like what we want to do? What were the pitfalls?

Sorry about the vagueness of the question. I'd be more specific but don't know where to start. Delete away if I'm asking the wrong thing or in the wrong place.

share|improve this question
add comment

3 Answers

If it wasn't for this statement:

Is there any language that allows me access to the database without having to subclass everything through IEnumerable and various weird Typecasting things.

I'd be recommending you look at Silverlight with RIA Services.

The architecture allows you to construct an application that happens to sit inside a web browser. It gives the user the benefits of working on the web - nothing to install (bar the Silverlight client), the ability for you to update the application centrally, etc.) while giving you the developer more control over the look and feel of the application than a traditional web application.

share|improve this answer
add comment

Relax

Here is what you need to do "High Level":

1) Document the current system

  • What are Screens, Reports, and Process in the current system?
  • What do they do?
  • Which ones are used?
  • Map out an ERD (Data Base Diagram)

2) Define the scope of the new project.

  • Is everything the current system moving over? (See your docs in #1)
  • What features will be added? What will be removed? What will change? What MUST be done before go Live? Can you implement a phased approach?

3) Put together a High level design.

  • Create some Screen mockups
  • Layout the UI (Roughly)
  • Decide on a Technology
  • Do some Proof of concept coding (This will let you know if you design will work and help you in estimating your time line)

4) Put together a project Plan. Timeline Budgets Resources needed Execute your plan.

share|improve this answer
add comment

The project consists of 200+ database tables, 100+ reports, 300+ Views, 100+ Dialog boxes and 200 or so Selection Lists.

Barely matters. Remember, all of that was a bad, old design. That's part of the reason for replacing it.

Even simple screens (Entering a stock location) seems overly complex.

Two things:

  • Rethink your use cases. Many legacy applications have bad design, bad workflow and busy screens filled with too much of the wrong kind of detail.

  • Rethink your toolset. The state-of-the-art, (ASP.Net, RoR, Django+Python) provides administrative ("CRUD") pages almost for free. Zero programming.

how I can move from my current VB style programming language to one that allows similar functionality on the web?

No. You can't find "similar" functionality.

You have to change.

Has anyone got any ideas how I go about working out how many man hours it's going to take to convert this sort of project to a new language on the web?

Step 1. Break the whole thing down into use cases, centered around actors and their needs ("User Stories")

Step 2. Roughly -- at a summary level only -- define those use cases and the relative value that's created.

Step 3. For the high-value use cases only design a correct data model and start building with state-of-the-art tools.

Step 4. Release something usable within a few months. You'll have to "bridge" data from the old system to the new system to make this work. Keep the bridge simple, it's going to be disposed of.

Step 5. Iterate the above trying to get the release cycle to be shorter. Release less stuff more often.

At some point, you'll have a ton of uninteresting legacy functionality left over that you didn't convert and don't need. You'll have bridge programs that are no longer creating value.

What Web Framework options are available, and how do I decide between going with something like Rails vs going with something like ASP.Net?

There are a million frameworks. There is no guidance on choosing one.

Why? They're all really good.

We've a tonne of code wired to OnClick and OnChange events. (I know this is bad). What strategies can I take with regard to converting this to the web?

Rethink your use cases from the foundation.

Who are the actors? What do they do that creates value? How do they want to interact with a system to create that value?

Your legacy system has lots of usable historical data. Nothing else about it has value. So feel free to discard the legacy workflows and processing steps.

share|improve this answer
2  
I think a little guidance can actually be had in choosing a framework. OP indicates he already has a background in VB, this would make VB.Net a leading contender for framework with C# running second, if only for familiarity with the Microsoft languages. Beyond that I completely agree with you. +1 –  Joel Etherton Mar 15 '11 at 17:39
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.