Microsoft Visual FoxPro (short VFP) is a programming language with it’s own IDE and database, ranking somewhat between Access and VB.NET + SQL Server (Express).

Microsoft Visual FoxPro(简称VFP)是一种编程语言,具有自己的IDE和数据库,在Access和VB.NET + SQL Server(Express)之间的排名有些不同。

Product Description: http://msdn.microsoft.com/en-us/vfoxpro/default.aspx

产品说明: http : //msdn.microsoft.com/ zh-cn / vfox 赞成/反对 t.aspx

FAQ: http://msdn.microsoft.com/en-us/vfoxpro/bb190289

常见问题解答: http : //msdn.microsoft.com/ zh-cn / vfox pro / bb1902 89

As in many other MS pogramming languages the "Visual" does not denote a visual programming language in the strict meaning of the term, but a visual programming  environment with visual form designers. Before FoxPro was bought by Microsoft and upgraded to Visual Foxpro, there was FoxPro DOS and also UNIX and MAC versions, the DOS version was mainly used, and so UNIX and MAC versions were dropped. The added "Visual" mainly denotes VFP has a visual IDE and supports Windows UI. This is still limited to Winforms, WPF or Silverlight are a DotNet exclusive.

与许多其他MS制图语言一样,“ Visual”并不是严格意义上的视觉编程语言,而是具有视觉表单设计者的视觉编程环境。 在Microsoft收购FoxPro并将其升级为Visual Foxpro之前,有FoxPro DOS以及UNIX和MAC版本,主要使用DOS版本,因此删除了UNIX和MAC版本。 添加的“ Visual”主要表示VFP具有可视化IDE,并支持Windows UI。 这仍然仅限于Winforms,WPF或Silverlight是DotNet专有的。

从VFP开始付费吗? (Does It Pay To Begin With VFP?)

VFP于2007年停产,VFP处于Microsoft支持生命周期的最后一个支持阶段(称为扩展支持),该阶段于2015年1月结束。Microsoft不再销售VFP,主要是因为它随后需要做出超出该期限的担保。支持日期。

Microsoft rather recommends to take a look at VS Lightswitch 2011. I don’t agree, as this does not give a comparable experience, neither for VFP developers nor newbies. It integrates into the full VS, but itself rather is aimed for application generation by wizards and assistants and templates than for development of larger scale applications. It partly covers, what VFP also offers, as VFP also has wizards and builders, but you better cope without them.

Microsoft宁愿建议您看一下VS Lightswitch2011。我不同意,因为这对于VFP开发人员和新手来说都无法提供可比的体验。 它集成到了完整的VS中,但是它本身的目的是通过向导,助手和模板来生成应用程序,而不是用于大规模应用程序的开发。 它部分涵盖了VFP还提供的功能,因为VFP还具有向导和生成器,但是如果没有它们,您会更好地应对。

What I agree is, VFP is not a language you should begin learning anymore, despite needing it to convert and migrate it. VFP has grown from the eighties to 2006, not resulting in an elegant overall architecture. It's having a steep learning curve for that matter and for not being very compact and lightweight. The steep learning curve also goes for DotNet but obviously pays more due to it's future perspectives. You can make up for this using third party application frameworks, which will make you more productive, but less learning VFP than the framework architecture. And of course there is a helpful community mentoring and helping you to go in the right directions, if you still choose to learn VFP. But the same options go for DotNet, too, again.

我同意,尽管需要VFP进行转换和迁移,但VFP不再是您应该开始学习的语言。 VFP从80年代发展到2006年,但并未形成一个优雅的整体架构。 就此而言,它具有陡峭的学习曲线,并且不是非常紧凑和轻巧。 陡峭的学习曲线也适用于DotNet,但由于其未来的前景,显然付出了更多。 您可以使用第三方应用程序框架来弥补这一点,这将使您比框架体系结构更高效,但学习VFP更少。 当然,如果您仍然选择学习VFP,则可以进行有益的社区指导,并帮助您朝正确的方向前进。 但是,DotNet同样也有同样的选择。

As a developer newbie wanting to do a databased application, either go Access for really small apps, for which you can live without OOP classes, etc, or go for the real deal VS.NET - even just the Express versions offer a good consistent architecture.

作为想使用数据库应用程序的开发人员新手,可以访问非常小的应用程序(可以在没有OOP类的情况下就可以使用Access),或者使用真正的VS.NET-甚至Express版本也提供了一个良好的一致体系结构。

For VFP developers, though, which have not yet migrated and extended their know how, VFP is still a good tool to create and maintain small to medium size database applications with a magnitude of 100 users and even better scalable, when using an SQL Server as backend database instead of native database files.

但是,对于尚未迁移和扩展其专门知识的VFP开发人员,当使用SQL Server作为工具时,VFP仍然是创建和维护中小型数据库应用程序的好工具,该应用程序可容纳100个用户,甚至具有更好的可伸缩性。后端数据库而不是本机数据库文件。

The FoxPro community is still rather active for being 5 years past discontinuation and a VFPX project formed on Codeplex around Sedna extensions generously released by Microsoft to the public domain, which were developed so far in the aim of VFP 10.

FoxPro社区在停产5年后仍然相当活跃,并且在Codeplex上围绕Microsoft慷慨地向公共领域发布的Sedna扩展形成了一个VFPX项目,该项目是迄今为止针对VFP 10开发的。

And besides this, VFP developers of course look for successors of VFP, which is the topic of the final section of this article.

除此之外,VFP开发人员当然会寻找VFP的后继者,这是本文最后一节的主题。

简而言之,数据库 (The Database in short)

VFP表是免版税的,每个文件的限制为2GB。 根据此定义,数据库没有整体大小限制,但是您需要查看增长最快的表以及存档或拆分数据。

Backup and Restore can obviously be done on the file level, any backup software can be used, ideally off-hours, or choose something with a snapshot feature.

显然,备份和还原可以在文件级别上完成,可以使用任何备份软件,最好是下班时间,也可以选择具有快照功能的备份。

VFP is no database server, every client directly accesses the table files, even if you introduce a so called database container (DBC), this merely is a lookup table itself containing some meta data info about the tables belonging to the database, eg their file names. It also contains stored procs (including DML triggers) and dbc events (DDL triggers). Both types of triggers can make use of the full VFP language.

VFP不是数据库服务器,即使您引入了所谓的数据库容器(DBC),每个客户端也可以直接访问表文件,这仅仅是一个查找表本身,其中包含有关属于该数据库的表的一些元数据信息,例如它们的文件名称。 它还包含存储的proc(包括DML触发器)和dbc事件(DDL触发器)。 两种类型的触发器都可以使用完整的VFP语言。

VFP data also supports transactions, which work without an sql server and are communicated to other clients by making use of several file lock types. Manual table and row locks also enable you to do manual locking and VFP also offers buffering of changes instead of or additional to transactions. VFP transactions only conform to three ACID properties Atomicity, Consistency and Isolation, but not to Durability. No transaction logs are written, in case of a system failure, the result is loss of transactional data, meaning a roll back to the pre transaction state. At least that's making transactions fail gracefully. The same goes for buffered changes.

VFP数据还支持事务,该事务无需sql服务器即可工作,并通过使用几种文件锁类型与其他客户端进行通信。 手动表和行锁定还使您能够进行手动锁定,并且VFP还提供了对更改的缓冲,而不是事务的附加或附加的事务。 VFP事务仅符合三个ACID属性“原子性”,“一致性”和“隔离”,但不符合持久性。 如果系统发生故障,则不会写入任何事务日志,其结果是丢失事务数据,这意味着回滚到事务前的状态。 至少这使事务正常地失败了。 缓冲的更改也是如此。

Like Access, VFP can also link to external databases via ODBC drivers or OLEDB Providers.

与Access一样,VFP也可以通过ODBC驱动程序或OLEDB提供程序链接到外部数据库。

简而言之编程语言 (The Programming language in short)

该编程语言与Visual Basic语言相比,并支持过程和OOP编程样式。 它是动态类型的,静态数据是强类型的,函数和表达式是强类型的,除了数字类型的一些隐式类型转换外,它们不会做。

Like Java, VFP is compiled into object code consisting of tokenized byte code. These byte tokens are run by the vfp runtime, which does no further just in time compilation on the specific cpu architecture an exe or dll runs. This makes VFP an interpreter with a precompiler rather than a compiler language, still you compile to EXE and DLL and need nothing but Windows and the runtimes to run a VFP executable.

像Java一样,VFP被编译成由标记化字节代码组成的目标代码。 这些字节令牌是由vfp运行时运行的,该运行时不会在exe或dll运行的特定cpu体系结构上进行及时的编译。 这使VFP成为具有预编译器而不是编译器语言的解释器,仍然可以编译为EXE和DLL,并且仅需Windows和运行时即可运行VFP可执行文件。

You can create n-tier applications with VFP by it's OOP nature and COM support.

您可以通过VFP的OOP性质和COM支持来创建n层应用程序。

利弊 (Pros and Cons)

优点 (Pros)

VFP is OOP, it offers not as much oop features as DotNet, but much more than Access with it's class modules. VFP offers the most important of course: inheritance. It also supports private and hidden methods or properties, but no interfaces and no events can be user generated.

VFP是OOP,它不像DotNet那样提供oop功能,但比Access的类模块要多得多。 VFP当然提供了最重要的:继承。 它还支持私有和隐藏的方法或属性,但是用户无法生成任何接口和事件。

VFP is very resource friendly, yet quite capable in working on several GB data (comparable to SQL Express or LocalDB). The VFP9 IDE can be used in Win2k or later and created EXEs can be used in Win98 or later.

VFP非常资源友好,但能够处理多个GB数据(与SQL Express或LocalDB相比)。 VFP9 IDE可以在Win2k或更高版本中使用,而创建的EXE可以在Win98或更高版本中使用。

VFP databases are royalty free, no CALs nor CPU licenses are needed.

VFP数据库是免版税的,不需要CAL或CPU许可证。

VFP has SQL built in, it's part of the language, not seperate command strings you send to databases. It compiles and verifies at that stage.

VFP内置了SQL,它是语言的一部分,而不是发送到数据库的单独的命令字符串。 它在该阶段进行编译和验证。

VFP offers a feature of macro substitution, which means single line code generated and compiled at runtime, but even COMPILE is a command the runtime supports.

VFP提供了宏替换的功能,这意味着在运行时生成和编译单行代码,但即使COMPILE也是运行时支持的命令。

Interoperability end Extensibility: VFP supports ODBC and COM/OLE and is capable to connect to remote databases, do OLE automation of office applications and any other OLE automatable applications besides of course parameterized command line calls to other executables. You can also make use of COM DLLs and stdcall function DLLs. The latter in a special form of FLLs can also expand the instruction set with Functions.

互操作性端可扩展性:VFP支持ODBC和COM / OLE,并且能够连接到远程数据库,对Office应用程序和任何其他OLE可自动化应用程序进行OLE自动化,当然还包括对其他可执行文件的参数化命令行调用。 您还可以使用COM DLL和stdcall函数DLL。 后者以FLL的特殊形式也可以通过功能扩展指令集。

VFP supports Webservices, eg via Soap Toolkit or third party XML Tools, both as server or client, and if you just use MS COM XML parsers and serialisers.

VFP支持Web服务,例如通过Soap Toolkit或第三方XML工具作为服务器或客户端,以及是否仅使用MS COM XML解析器和序列化器。

VFP can build COM Server DLLs, including multithreaded DLLs. These also can form the base of web services, which can be published via the Soap Toolkit or manually via DCOM/COM+ in IIS, some third party extensions bring VFP to the web this way.

VFP可以构建COM服务器DLL,包括多线程DLL。 这些也可以构成Web服务的基础,可以通过Soap Toolkit发行,也可以通过IIS中的DCOM / COM +手动发布,某些第三方扩展以这种方式将VFP引入了Web。

缺点 (Cons)

Unicode support is very limited to a few string functions for conversion, the OS API offers more, there is no native control to display Unicode, but VFP supports ActiveX controls. VFP-Tables are generally coed in ANSI code pages including support of fontcharsets/scripts, which means double byte ANSI charsets. There are no Unicode field types, too, but binary field types can store anything, including Unicode texts, of course.

Unicode支持仅限于一些用于转换的字符串函数,OS API提供了更多功能,没有显示Unicode的本机控件,但VFP支持ActiveX控件。 VFP表通常包含在ANSI代码页中,其中包括对fontcharsets / scripts(即双字节ANSI charset)的支持。 也没有Unicode字段类型,但是二进制字段类型当然可以存储任何内容,包括Unicode文本。

Security: VFP Databases can be encrypted using third party tools or the Windows Crypto API, but access rights or roles on the data have to be implemented on the NTFS file access permissions level.

安全性:可以使用第三方工具或Windows Crypto API对VFP数据库进行加密,但是必须在NTFS文件访问权限级别上实现数据的访问权限或角色。

Stability: DBFs have a bad reputation to often become defect. So do MDBs. Proper used, this is just partially correct. The most often header defect can be repaired with native VFP code, and there are third party tools to repair tables and related files. In single user mode on local HDDs, FoxPro databases are usable maintenance free, as most all defects have their root in concurrent file access and network errors, which then of course don't occur.

稳定性:DBF的声誉不好,经常会成为缺陷。 MDB也是如此。 正确使用,这只是部分正确。 最常见的标头缺陷可以用本机VFP代码修复,并且有第三方工具可以修复表和相关文件。 在本地HDD上的单用户模式下,FoxPro数据库无需维护即可使用,因为大多数缺陷都源于并发文件访问和网络错误,这些错误当然不会发生。

Size limitations: As already discussed, there is no overall limit but a per 2GB per file limit.

大小限制:如前所述,没有整体限制,但是每个文件2GB的限制。

VFP的后继者 (Successors of VFP)

有很多针对VFP开发人员的候选人,他们正在寻找新的方向。 主要有四个类别:

1。 (1. )

与VFP一样的语言是从原始dBase或Clipper演变而来的,即xBase ++和xHarbour。

2。 (2. )

VFP本身及其社区扩展,即Codeplex的VFPX和其他一些副项目

3。 (3. )

FoxInCloud是基于Foxpro的一些基于云的替代产品,其目的不是迁移语言,而仅仅是迁移基础架构。 ActiveVFP和VFP2IIS也是如此。 Lianja支持Fox作为一种语言和Servoy,该语言面向Java开发人员,并且本身就是基于Java的。

4。 (4. )

重新实现Foxpro的工作包括Guineu(基于DotNet的VFP运行时,将VFP引入Windows Mobile或其他DotNet Framework支持的平台,用于.NET的VFPCompiler将Foxpro代码编译为.NET应用程序和程序集,以及将Visual FreePro作为其中的新候选人)我没有提到Java和DotNet是继任者,因为它们是他们自己的同盟。它们无疑是一个不容忽视的大选择,但LightSwitch的功能缩小并不适合VFP开发人员。当然可以使您进一步进入企业联盟。

数据库迁移 (Database Migration)

从MySQL到Oracle,可以轻松地将VFP数据转换并扩展到任何服务器数据库。 如前所述,VFP可以利用ODBC驱动程序和OLEDB提供程序,从而打开所有第三方数据库。 当然,MS SQL Server是VFP数据的一个很好的新家。

There is much more to say about this, for example it’s getting more complex, if the VFP database also has stored procedures, we’re back on the topic of migrating application code.

关于这一点,还有很多要说的,例如,它变得越来越复杂,如果VFP数据库还具有存储过程,那么我们就回到了迁移应用程序代码的主题。

Still aside of stored procedures migration one thing to mention here is Sybase Advantage Database Server, which offers a newer 32bit and 64bit ODBC driver also usable for native VFP9 data, as long as no stored procs are involved.

除了存储过程迁移之外,这里还要提到的一件事是Sybase Advantage Database Server,它提供了更新的32位和64位ODBC驱动程序,只要不涉及存储过程,它们也可用于本机VFP9数据。

翻译自: https://www.experts-exchange.com/articles/10670/What-is-Microsoft-Visual-FoxPro.html

什么是Microsoft Visual FoxPro?相关推荐

  1. 【数据库技术课程设计】 电信学院考研信息管理系统 +【Visual FoxPro】

    目录 一 .系统设计背景 二.系统可行性分析 2.1 经济可行性 2.2 技术可行性 2.3 操作可行性 2.4 可行性分析总结 三.软件选择与编程环境 3.1 软件选择 3.2 编程环境 四.系统总 ...

  2. C# 连接Visual FoxPro的数据库文件DBF

    说实话,鬼才愿意搞这个东西,那么古老的东西,可是...哎..不说了..讲解下怎么连吧.. 首先需要注意SYSTEM下面的vfpodbc.dll这个的东西,我当时这个文件只有20K,害我怎么测试也行,调 ...

  3. 来自 Visual FoxPro Team 的最新消息

    用于 Visual FoxPro 9.0 SP2 的修补程序可在 CodeGallery 上下载了 自从 2007 年底发布了 Visual FoxPro 9.0 SP2,我们已经发布了三个修补程序. ...

  4. 用 visual foxpro 也可以编写“迅雷下载”

    用 visual foxpro 也可以编写"迅雷下载",你信吗? "迅雷下载"的核心技术就是"断点续传","多线程"在 ...

  5. 微软 FoxPro 15年回忆录 之:细数微软 Visual FoxPro 的战略

    作者:肯·利维 [Ken Levy] 日期:03/10/2009 提供:王木匠 翻译:Hailun Ma ----------------------------------------------- ...

  6. 新思路全国计算机等级考试系列软件,新思路全国计算机等级考试系列软件——二级Visual FoxPro Uninstall Log...

    全国计算机等级考试笔试模拟考场 二级Visual FoxPro Setup Log [03/22/2011 12:05:57] SuccessUninstall started: C:\WINDOWS ...

  7. 《Microsoft Visual Studio 6.0 Enterprise Edition》(完整9CD,带中文MSDN Library)下载

    <Microsoft Visual Studio 6.0 Enterprise Edition>(完整9CD,带中文MSDN Library),传说中是微软官方原版的镜像. VSE600E ...

  8. 《Microsoft Visual Studio 6.0 Enterprise Edition》

    说明:在这里可以下载到如下关于VS6.0所需要的一些内容,如下: ------------------------------------------------------------------- ...

  9. Microsoft Visual Studio是什么

    其实,Microsoft Visual Studio是美国微软公司的开发工具套件系列产品,简称VS. VS是一个基本完整的开发工具集,它包括了软件整个生命周期中所需要的大部分工具,如UML工具.代码管 ...

  10. 下一版本Windowsreg; CE 开发工具Smart Device Extensions for Microsoft Visual Studioreg; .NET...

    初识 Smart Device Extensions Larry Roof Tonked.com 2001年10月23日 上个月我曾说过我会前往 Microsoft 学院,了解下一版本的小型工具的情况 ...

最新文章

  1. Apache2 httpd.conf 配置详解(一)
  2. C# webbrowser控件点击页面按钮
  3. lncrna研究,2021最新相关资料合集
  4. 删除Linux下/tmp目录引起的不正常登录系统
  5. 牛客题霸 [用两个栈实现队列] C++题解/答案
  6. 《美团机器学习实践》高清PDF+思维导图+美团算法团队
  7. Redis持久化(转载)
  8. docker启动mysql容器_Docker容器开机自启动
  9. windows 下使用 nc 命令报错,与 Linux 不同。
  10. 安卓手机充电慢_苹果手机充电慢,耗电却很快?教你几个窍门,充得快电量更耐用...
  11. Tomcat启动时日志报 dcom.sun.manager.jmxremote 异常导致无法正常启动使用
  12. java中aotomicInteger_面试官:你说一下对Java中的volatile的理解吧!
  13. [C++]实现10以内整数的简单科学计算器
  14. RabbitMQ小笔记
  15. bing翻译接口appID申请教程【TranslateApiException: AppId is over the quota 】
  16. weblogic部署模式
  17. Java批量数据清洗
  18. win7讲述人修复_win7系统TTS语音引擎修复补丁
  19. 什么是SQL Server数据字典?
  20. Python的环境安装

热门文章

  1. 音乐flac怎么转为mp3?
  2. 求95859回文数c语言程序,csdn 回文数
  3. 迪杰斯特拉算法(dijkstra)
  4. 高数笔记(六):拉格朗日中值定理,柯西中值定理,洛必达法则,泰勒定理
  5. CFA一级学习笔记--衍生品(二)--定价与估值
  6. java软尾山地车评测_GT Sensor X Pro 软尾山地自行车测评
  7. linux防火墙reject,linux 防火墙配置与REJECT导致没有生效问题
  8. 软件项目管理存在的问题及改进措施
  9. TypeScript 简单使用
  10. 【Windows】安装NVIDIA驱动 / 更新驱动