views:

162

answers:

4

FYI - I am a mainframer that moved to the .NET world a couple years ago and has a lot to learn.

We are looking at rewriting a Visual FoxPro app into .Net (most likely VB). This project is projected at 4-6 years.

We are at the very early stages of the preliminary design right now. I am seeing a LOT of information from Microsoft on VS 2010. Is there something wrong with 2005/2008 that we should be concerned about? Or, is this SOP for MS to start pushing future products this early? Is it worth waiting for 2010 to start any coding? The functional design probably won't be finished by year end (2009) anyway and we can always do mock ups in VS-2005.

Secondly, FoxPro and VB6 are in the same boat; unsupported but alive for now. Is moving to .NET smart? VB? C#? Will there come a time when MS decides that moving to VS 20xx requires another complete rewrite of old code (VB6)? Or might they eliminate VB.net or C#.net for the next 'great' thing (foxpro)? Or what about the lifespan of the .NET framework? Is it also limited until something else comes along?

We have a pretty big application with years of band-aids, updates and law changes that is already going to be a PIA to convert. We want a new platform that is going to be stable for decades to come with easy migrations upwards. Is there any development code that will be around 50 years from now? 100?

The core logic from the application hasn't changed that much since they used pen and paper. It is difficult to justify a multi-year rewrite now if it needs to be done every 10-20 years. The FoxPro app started dev in 1991, went live in 1999 and is now due to be rewritten in another language.

Mainframes are easy compared to the fluidity of Win Apps.

Here are some high level specs.

  • It's for a government office.
  • It contains highly sensitive data.
  • Web based is not an option.
  • It will be a MS Windows application only.
  • Will be moving from FoxPro tables to, probably, SQL Server 2005/8/10 (whatever is current)

I know those with working crystal balls won't reply, but what is the feel of the community for the likelihood of a programming language settling down and being available/stable long term?

Thanks for your opinions on this, I appreciate them.

+1  A: 

Windows really isn't a suitable platform for long life apps such as you're describing. That's why mainframe/big iron vendors, while weaker than they used to be, are still around.

Brian Knoblauch
I agree about mainframes, but we would still need a workstation front-end built for Windows. There are over 200 different screens and their code behind that would still need to be converted. It's surprising how many of our 'older' users can't manage without a mouse anymore. :)
dna123
There are graphical terminals out there. I've deployed software using those. With a Solaris back-end, you're in good shape. The lifespan of Solaris, may not be as great as a mainframe, but it's quite a bit longer than Windows.
Brian Knoblauch
+3  A: 

where can i get me one of these cushy government jobs????

anyway, yes it is SOP of Microsoft to announce and demo OSes, dev tools, etc early, it doesn't mean there is anything wrong with the current tools. Since VS2003 it has always been extremely easy to migrate projects to new versions of the development enviornment if one so chooses to do so, so just start on whatever version of VS is current when you're ready to write code.

.NET will change as you're writing this but they've been really good about maintaining backward compatibilty to previous framework versions so it isn't really any issue either.

I'd recommend C# over VB.Net if you're going to rewrite anyway. VB.Net was kind of a band-aid language to get VB programmers onto .Net and is sometimes useful for compatibility, but I don't know why you'd want to start new development with it.

Those higher than me chose VB. I don't really care either way. I would need serious documentation to convince them/me otherwise. So, would you say VB will definitely die? There are a lot of VB programmers out there, so I wouldn't think so, but I've been wrong before.
dna123
For some reason government managers gravitate toward VB. It's weird. One thing to consider: as time goes forward it's harder to find VB.NET programmers. You're limiting your hiring talent pool ahead of time. Sure, no big deal to switch, but lots of people don't want to add VB.NET to the resumé.
jcollum
Stigmas are a funny thing. I remember when putting COBOL on your resume was a bad thing. Assembler was the bomb and to admit to using a 3rd Gen (or was it 4th gen?) language was for sissies. :-) IMHO, VB is like that, but time will tell. Lots more Cobol than BAL coders now.
dna123
I just heard in a podcast that the development of VB.Net is going onwards, parallel to C#. So VB.Net will not die very soon.
Ikke
+1  A: 

Well obviously nobody can tell exactly what's going to happen to all the latest/greatest stuff in the future. If you were a Mac OS programmer in the '80s and '90s you'd probably be a bit annoyed too if not quite in the same boat as VB6 programmers.

.NET and VB.NET/C# are a viable proposition in the long term. They are in a different situation to stuff like classic VB and FoxPro in that they run in a virtual machine that has use to lots of different languages. As such, even if a new more popular language comes along that targets .NET, your old code will still run.

When you say you want a desktop application rather than something web-based, that is a concern because Windows Forms (the traditional VB-like user interface framework) is not receiving much attention from Microsoft already. It's not going to go away like I said, but there's not going to be much future improvement to it. If you are working on a massive never-changing app like you say, then this might not be a problem for you.

The alternative .NET user interface framework is WPF, which is the latest-greatest. There are questions over the long-term viability of this due to its extraordinary resource useage. So far there is only one significant desktop app that uses it (Microsoft's own WPF design tool Expression Blend) and to try and convince people WPF really is viable they have committed to using WPF in Visual Studio 2010 for parts of the user interface like the editor. Even so, I'd find it hard to recommend WPF for the application you describe - it's just too risky.

As to your question about Visual Studio versions, VS2005 wasn't very good (rushed out the door eary with some serious performance issues). VS2008 however is a fine release and you would be well advised to start your project with that - there is no guarantee that 2010 will be better (or even as good due to the WPF factor). Teams tend to use Visual Studio versions for a long time (my employer is still using 2003 for some work!) and all versions peacefully co-exist on a single machine.

And yes, Microsoft does tend to talk about dev tools well in advance of when they are available. Apparently the "osbourne effect" doesn't apply to developer tools :)

U62
Is WPF a replacement for .net or did I misunderstand you? I've seen a little about it, but haven't researched it. Great comments btw, thanks!
dna123
No, it's a user interface toolkit. Where Windows Forms (in the System.Windows.Forms namespace) basically gives you an OO wrapper around win32 user/gdi; WPF uses all it's own code to render to the screen using DirectX.
U62
A: 

I've heart from my partners- there is an engine (team from Ukraine has it) to convert VFP application into the dot net, that will work with an existing DBF files. So - instead rewriting - you just run the convertor (one time deal) and instead FoxPro apps, you'll have dot net. If you’d like more detail please let me know

@Boris - could you provide a link? More information would be nice. Even if the conversion wasn't 100% complete, I can see it being a good leap forward. Thanks!
dna123