FoxPro vs. Dotnet

Hello Experts:
We have a VisualFoxpro system that needs to be enhanced so much to the point that we're thinking about re-developing it in Dotnet.  We'd like the experts pros and cons on going with dotnet vs. staying with VFP.
cninghmAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
CarlWarnerConnect With a Mentor Commented:
If your current app is getting out of control and a bit of a mess, there shouldn't be too much to consider.

I have seen enough apps to know that many are pretty basic which means there isn't much of a downside to going to a DotNet solution.  However, I have also seen some great apps that are super-duper and I know of no way DotNet is going to meet the performance that VFP provides.   And some of the functionality that VFP provides that users love will be extremely difficult to reproduce in DotNet, if at all.

So, what I'm saying is that it depends.  If you have an app that provides basic and nothing fancy or intricate, DotNet would probably be fine.  If your app has lots of bells and whistles and goes way beyond basic data input with simple reporting, the DotNet folks will have their work cut out for them and it will take far longer than they will tell you and far longer than they believe to get that enhanced application functionality back.
0
 
CarlWarnerCommented:
If you believe MS, Dot Net is the future, VFP and other file-based database software packages are done.

With the learning curve of DotNet that is not its own DBMS, you have a steep climb ahead of you to figure out not only best practices, but even the basics like how to do it at all.  And since DotNet isn't a database engine, you need to pick a database engine.  Will you go to a server engine like MS SQL Server or does your app have a few users where something else will do?
0
 
cninghmAuthor Commented:
Hi Carl!
Here's the story.  Our VFP app is old (as you know based on our last conversation).  We have no in-house expertise in VFP.  Industry coupon standards are changing and forcing us to look at enhancing the VFP system, or turning it over to our in-house, well-established, .net developers (sql server) for re-development.  We'd like to weigh the pros and cons of re-developing it in .net.
Thanks,
Betty
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
CarlWarnerCommented:
This won't affect your decision.  But I found it an interesting POV.

The End of the Language Wars
.NET developers, regardless of whether they use VB or C#, realize that the .NET platform is far more important than the language they choose.
http://visualstudiomagazine.com/columns/article.aspx?editorialsid=2469
0
 
CaptainCyrilFounder, Software Engineer, Data ScientistCommented:
Let me start by saying that FoxPro is for real developers and .Net is for the ones who think they can develop.

From my experience and my kind of applications, .Net is not able to do everything that FoxPro does and in the same speed and efficiency as well as it does not run on slow machines. However, you can find more .Net developers than you can find for FoxPro.

If your application is giving you problems then it's better to move to .Net. Before you proceed, check to see if all the features are available in .Net. .Net could also be costly because it does not have everything contained in one. You have to used a lot of external and third party stuff. I also keep hearing compatibility issues.

I believe .Net will be stable in few years down the road.
0
 
gregoryyoungConnect With a Mentor Commented:
Can I guess that CaptainCyril is a FoxPro developer?

I will be happy to rebuke any of these performance arguments ... .NET code can be just as fast if not faster than your old foxpro code. Why? because I can easily interact with unmanaged C++ code for the areas that I really *need* high performance.

Beyond that there is generally considered a 10% penalty for managed code as compared to unmanaged ... how often do you actually USE alot of CPU? I process thousands of records per second in a real time system using hardly any CPU. The simple fact is that most applications do not need the "speed".

Perhaps your argument is in application startup times? Well there may be some validity here but there are also ways to affect this (a .NET app will tend to be slow when loading an assembly for the first time since it has to JIT compile alot of code). You can get around this by using a tool called ngen if you are smart enough to base your DLLs properly.



Regardless of all this when developing applications runtime performance given both are at an acceptable level (let's say within 25% of each other) is not really a consideration in modern software development. Businesses are generally much more interested in product life cycles, long term support, developer availability, and most importantly developer productivity. .NET wins hands down in all of these items.

btw: per giving your project to your 'in house' developers I would be very careful ... although .NET is a great platform there are unfortunately alot of bad developers who use it. My guess is that Captain here has run into a few them...

Cheers,

Greg
0
 
CaptainCyrilConnect With a Mentor Founder, Software Engineer, Data ScientistCommented:
Well I use FoxPro to its fullest.

I showed my applications to 3 .Net certified experts and they said that they cannot do them and .Net is not capable of doing them at this time eventhough Microsoft consultants are pushing me to move to .Net and they are not able to prove to me that .Net is able to handle my kind of apps.

I consulted someone at Microsoft in Seattle and he advised me to wait few years before shifting to .Net.

I know .Net has great tools to interface between designers, coders and testing but it still lacks a lot of the functionaly FoxPro had in the 80s even.
0
 
CaptainCyrilFounder, Software Engineer, Data ScientistCommented:
Hello Greg.

Well my apps do use a lot of data conversions and statistical analysis to produce sheets and charts in Excel and PowerPoint. These calculations are performed on the total database not just a few records. They process millions of records in a few minutes. Just wanted to give you an idea.
0
 
cninghmAuthor Commented:
Hi guys:
Thanks for your answers.  We're very secure with our .net environment, and our development team.
Our project team would like more cons on why we should not do it in FoxPro.  Since this project is going to cost a lot of $, our management team would like more justification on why .net is the way to go.
Here are the cons they've already considered:
Code is antiquated
FoxPro work force is very limited
Concurrent users cannot work in the system (they're nervous about what happened on Friday).
System stability*  difficult to predict if the system is stable.
  We dont know if FoxPro can handle the increased product lines
New product lines going national, could overload the system no way to tell
Client will not be able to market coupons if the system shuts down
(*Just a little side note, we recently change servers that our VFP system runs on.  Since then, we've been having fluky problems that have been resulting in lower confidence in the system.)
 Betty
0
 
CarlWarnerCommented:
We have seen others report problems with VFP AFTER they changed servers.  So, a system admin guy setting up the servers incorrectly is a VFP problem?

That's an expensive assumption to make.
0
 
CaptainCyrilFounder, Software Engineer, Data ScientistCommented:
I advise you to check two things.

1) Server Admin Guy's work, network glitches.
2) Is the software reliable in the first place? Could not be a FoxPro issues. Maybe the way it's programmed does not allow you to handle too many users.
0
 
CarlWarnerCommented:
Although the server setup is off-topic as far as Visual FoxPro & the .Net framework, the Opportunistic Locking issue at the server is generally the issue that suddenly gibes problems to Visual FoxPro apps that worked fine on an older server.
0
 
gregoryyoungCommented:
Captain: are you suggesting that VFP will out perform oracle or sqlserver on those same large queries? They laugh at millions of records ...

cningham:

These are all very good reasons ... there is no question whether or not say SQL server would be more stable/scalable and/or able to handle more concurrency.

Concurrent users cannot work in the system (they're nervous about what happened on Friday).
System stability*  difficult to predict if the system is stable.
  We dont know if FoxPro can handle the increased product lines
New product lines going national, could overload the system no way to tell


A good starting point for the project might be to try to simulate concurrency and larger data in a test environment with the current foxpro application. If you expect an increase of 10-15 times ... benchmark 50 times for both and see where you sit as it will be alot easier to make the change now than when you have 10-15 times the use of the application...

Cheers,

Greg
0
 
CarlWarnerCommented:
If there is an increased database load, that doesn't dictate that .Net is the only solution.

VFP is a great front-end to MS SQL Server with no .Net involved.  This configuration is widespread throughout the world today.  I have three servers with three different SQL Server versions here all of which sit there to be used with VFP as the front-end.
0
 
CarlWarnerCommented:
>>I will be happy to rebuke any of these performance arguments ... .NET code can be just as fast if not faster than your old foxpro code. Why? because I can easily interact with unmanaged C++ code for the areas that I really *need* high performance.  

But the VFP database engine is entirely unmanaged code and its native data  store does not rely on a provider, thereby eliminating any bottlenecks or lags.

>> Beyond that there is generally considered a 10% penalty for managed code as compared to unmanaged ... how often do you actually USE alot of CPU? I process thousands of records per second in a real time system using hardly any CPU. The simple fact is that most applications do not need the "speed".    

But some do and .Net, until LINQ, was  atrocious at managing relational data (for example, multiple joins) at the client level.  

>>Perhaps your argument is in application startup times? Well there may be some validity here but there are also ways to affect this (a .NET app will tend to be slow when loading an assembly for the first time since it has to JIT compile alot of code). You can get around this by using a tool called ngen if you are smart enough to base your DLLs properly.  

But you need that large learning curve to be smart enough; VFP apps are fast out of the box. VFP apps also offer much simpler deployment requirements.

>> Regardless of all this when developing applications runtime performance given both are at an acceptable level (let's say within 25% of each other) is not really a consideration in modern software development. Businesses are generally much more interested in product life cycles, long term support, developer availability, and most importantly developer productivity. .NET wins hands down in all of these items.  

.Net IN NO WAY is more productive an environment for developers with equivalent experience.   With it's superior OOP environment and visual inheritance VFP is, unvarnished, a great object factory and application producer.

>> btw: per giving your project to your 'in house' developers I would be very careful ... although .NET is a great platform there are unfortunately alot of bad developers who use it. My guess is that Captain here has run into a few them...    

There are a lot of bad .Net developers out there because the .Net framework is difficult to master and there aren't, proportionately, a huge number of developers who have serious experience in all aspects of a large-scale .Net project.
0
 
gregoryyoungCommented:
what makes VFP a great frontend there compared to .NET? .NET offers massive amounts of functionality that VFP doesn't
0
 
CarlWarnerCommented:
Who is asking the question here?

What data functionality does .Net offer that VFP doesn't?  VFP is a mature database development environment.  The same can't be said about .Net and data.
0
 
cninghmAuthor Commented:
Sorry to confuse this thread by bringing up the switch of servers.  I only mentioned it as a possible cause of a couple of our more recent problems.  Our VFP systen has had its share of problems prior to the server switch, and with no one in-house who knows VFP, we're weighing the pros and cons of redevelopment.  
0
 
cninghmAuthor Commented:
Good perspective from all angles.  Thanks so much for your input.
0
 
gregoryyoungCommented:
lol what makes VFP a superior OOP environment ... I would love to hear this one.
0
 
CarlWarnerCommented:
It's OOP methodology that has been in place since 1995 when it was first released with OOP support.
0
 
gregoryyoungCommented:
"What data functionality does .Net offer that VFP doesn't?  VFP is a mature database development environment.  The same can't be said about .Net and data."

Well ... How about ORM as an example. This is very mature in both .NET java and other platforms. Given the best mappers out there aren't from MS but are open source (nhibernate). The ability to model your data as a true object graph then transparently persist has been very valuable on many platforms.
0
 
CaptainCyrilFounder, Software Engineer, Data ScientistCommented:
Sorry for the delay but I just woke up. It's 6:45 AM here now.

To answer Greg's question, my clients use my apps when traveling or in anywhere they don't have internet connection. Most of my users are Market Research users and install the application on their laptops.

We tried using MS SQL but it choked many times bringing the system down to a helt. We even built a VB counterpart application and it was not performing anywhere need VFP.

When I said VFP are for real developers is that because you need a really good VFP developer to make use of it and believe me they outperform any .Net or SQL app.

My applications are for small to medium size. For 1 user up to 55 simultaneous users. I even have DOS applications and FPW2.6 applications running on Vista blazingly fast without any problems.

One time we developed an online application in FoxPro for 1000 global users. We had no problems with it at all. The secret is in how you design and manage your application.

I have an application built in .Net Framework 2.0. We build the exact same application in VFP. It does text and text mining searches as well as presentation preparation. The .Net applications takes 30 seconds to be ready for use. The second time you run it it takes 15 to 20 seconds. The VFP version takes less than 1 second. I won't even bother to measure how much faster the VFP prepares the presentation.
0
 
gregoryyoungCommented:
Captain it sounds to me like you are comparing people who know VFP well and are probably decent programmers against some hacks in .NET/Sql server/etc which is not a fair comparison. I will be the first to admit there are many *bad* programmers using .NET but that is not a fault of the tool.


Cheers,

Greg
0
 
CaptainCyrilFounder, Software Engineer, Data ScientistCommented:
Greg,

well the .Net Framework 2.0 application is written by a global company which is a Gold Partner of Microsoft. One of my clients complained about it being slow and wanted me to develop the same one in VFP.

Well talking about developers, the older generation are excellent programmers because getting the certificate was hard. Now it's easy and a lot of people are getting MCSE or whatever they call it easy. The .Net developers I was mentioned were college graduates.

VFP does not have the gadgets or downloadable code and samples like in VS. So when a developer wanted to do something in VFP he really knew how to do it. Not just download a sample code, copy paste another code and send it to testing. Do you get my idea?

If you are not a good programmer, VFP is a bad choice.
0
 
CaptainCyrilFounder, Software Engineer, Data ScientistCommented:
To ansewr a previous post on this thread.

VFP had multi-inhertiance OOP since 1995. Where was VS during that time? Not to mention Rushmore technology since 80s and stats functions for tables.

In VB we had to loop a table to get the average. Do you call that coding? In VFP you get the max, min, avg, std, var, ... in one command and applying two kinds of filters to the table.
0
All Courses

From novice to tech pro — start learning today.