当前位置: 首页 > 编程语言 > vfp > 正文

Visual Foxpro漫谈(五)-Visual FoxPro 7 的特性

时间:2007-05-09 本站

前面已经提到多次,Visual FoxPro 7 已经在2001年5月中旬正式发布的,6月份在美国上市。现在不少网友已经得到了Visual FoxPro 7的英语正式版,使用之后,产生了种种评判。在美国人们认为,Visual FoxPro 7是继 Visual FoxPro 3以后 Fox 发展史上最具有“革命意义”的版本,评价是很高的;而在国内,不少尝鲜者感叹:这是微软不好意思说SP的产品,简直就是Visual FoxPro 6+SP6……两种评价相差这么大,谁是谁非呢?

笔者在2000年底就得到了它的Bata 1版,2001年7月得到了英语正式版。初次见面确有失望之处——界面改观太小了——除了几个窗口可以停放、菜单上多了几个图标之外,几乎与Visual FoxPro 6没有区别,最无法容忍的是可视化控件一个也没有增加……

我耐着性子读着帮助了解Visual FoxPro 7的新特性,慢慢的我有了这样的感受:有了Visual FoxPro 7我决不用Visual FoxPro 6,这也是我对Visual FoxPro 7的评判,虽然它不完美,有的地方不尽如人意,我还是觉得给它打个80分总是应该的。接下来笔者就谈谈使用的感受:

巨好的开发环境,这主要体现在六个方面:

IntelliSense(智能感知输入提示)、Object Browse、Document View、Task List(任务列表)、最近使用过的文件记录、窗口停放。

  1. IntelliSense。我以前常常羡慕VB程序员,他们在VB 5时就拥有了IntelliSense工具,于是他们不必要记忆大量的命令、函数、在对外来的ActiveX、COM编程时也能轻易的得到对象的方法、属性、事件。
    在Visual FoxPro里,如果说记忆Visual FoxPro本身的东西还没有什么困难的话,对ActiveX、COM得属性、方法、常量就头疼了。现在Visual FoxPro 7支持IntelliSense了,并且提供了强大的用户定义功能,在Visual FoxPro里这是一个可组态的工具;现在Visual FoxPro 7不仅支持对内部对象、命令、函数的智能输入导航,更支持对ActiveX、COM的智能输入导航,令人兴奋的是:Visual FoxPro的IntelliSense还支持最新的Web Service。完全可以自豪的说:Visual FoxPro的IntelliSense是最棒的,是可以由用户定义的。

  2. Object Browse。与IntelliSense一样,在其他开发环境中早就有了,但并没有因此降低我对它的兴趣。首先,对COM对象、ActiveX的观察工具确实很有用;最重要的是:Visual FoxPro 7的Object Browse与Visual FoxPro开发环境紧密结合在一起--可以很简单的从Object Browse中拖逸COM对象接口到程序中,很简单的就可以“实作”COM对象的接口。

  3. Document View。这是一个程序编辑的辅助工具,它可以列出文件中所有的过程、方法、函数、宏定义、头文件,帮助程序员在大量代码中快速导航。

  4. Task List(任务列表)是一项贴心设计,它的功能有点像“书签”。但比“书签”强大的地方在于:一旦关闭文件“书签”就释放了,而Task List 不会。任何时候点击Task List 项目就可以快速打开相关文件,导航到相关的地点。

  5. 就像Word那样,Visual FoxPro 会记忆用户最近使用过文件,这样就能减少用户查找文件的时间。

  6. 窗口停放。显示器越来越大、分辨率越来越高,程序员的桌面空间越来越小——开发环境对内部工具窗体的管理很要紧——合理组合,提供更大工作空间。在我用过的开发工具中,我最喜欢Visual FoxPro的环境配置,不满意的是:命令窗口、数据工作期窗口、属性窗口的凌乱。现在好了——Visual FoxPro 7支持了工具窗口停放,达到了节约空间的目的。

Visual FoxPro 7 对开发环境的改善有细微之处的变化、更有大部头的作品。它吸收了各种开发环境的优点,融入了Fox自己的特色,值得称道。

数据库事件

Visual FoxPro 7 最亮丽的特色是60个左右的数据库事件,这是自Visual FoxPro 3以来一次最大的对数据库引擎的改善。这些事件对管理整个数据库有很重大的意义,我们可以把维护数据库的代码写在事件中,只要有相应的操作就会触发,这样就网罗了所有的相关动作,而不是像以前那样写在应用程序中!数据库的事件应用面可能很广,发挥它的作用还得靠大家的智慧!

XML与Web Service

Visual FoxPro 7 支持 XML 文档与 Fox 光标的转换,真是一件令人兴奋的事情,以前我们开发COM应用程序时总为数据集合传递感到头疼——本人的解决方案是——模仿ADO的做法,让客户程序以循环的方式得到记录集;当COM组件要得到记录集时,好像就更麻烦了……现在好了,业界新标准——XML可以文本(字符串)的方式传递数据集合,真是一件美事!

Visual FoxPro 7 支持XML,同时对SOAP也有内置的支持,这样就使得Visual FoxPro 7成为.NET构架下的工具了,我们可以使用Visual FoxPro7轻松的开发、发布Web Service,这样我们的应用程序就可以在任何时间、任何地点被任何支持Internet的设备调用,为它们提供服务。

Web Service可是当前业界最最热门的话题,Visual FoxPro是微软公司推出的第一个能开发Web Service的工具。支持 Web Service,使得Visual FoxPro 程序员具备了开发新型分布式应用程序的能力。

COM以及COM+

COM组件开发的感觉特爽,不仅是开发效率的提高,更是COM组件运行的效果明显改善。Visual FoxPro 是从5.0开始支持COM组件的开发,6.0版本开始走向成熟,6.0的SP3以后支持多线程组件的开发,7.0版本中开发COM组件明显比6.0版本运行效果好,可以说是成熟、完美的技术了。

我以为Visual FoxPro 7对COM的支持可以分为两个部分:Visual FoxPro充当COM的客户程序、Visual FoxPro作为COM服务程序。

Visual FoxPro 7 支持COM组件的“Interface”实作,支持早期绑定。这都是伟大的革新,我们知道COM本身不支持“继承”,所以我们无法写出基于某个COM组件的“子类”,但我们可以通过“实作”COM组件的“Interface”,来实现多重“继承”……

同时用Visual FoxPro 7编写的COM组件,比以往任何一个版本的Fox都可靠,并且完全支持Windows 2000的COM+规范。微软在宣传Visual FoxPro 7时指出:Visual FoxPro的COM组件可以被用作工业现场的无界面数据处理,可见其稳定性。

Install Shield Express For Visual FoxPro

Install Shield 是主流的安装程序制作软件,在Visual FoxPro 7 里微软就用 Install Shield Express For Visual FoxPro 限制功能版代替了原先的安装向导。更可贵的是,这个版本的Install Shield提供了中文语言包,也就是说可以生成中文界面的安装程序了。有了Install Shield ,我们就能做出最合乎潮流的安装程序。

新特性还有不少,您就自己看吧!还可以参看笔者撰写的《Visual FoxPro 7漫谈》一文。

软件的升级对我们用户是否有好处,主要是看他为您解决了多少难题、减轻了多少痛苦。Visual FoxPro 7对于高级用户可能更有吸引力,当然普通用户也一定会对它的超级开发环境有兴趣。

Visual FoxPro 7 SP1

2002年1月16日,微软发布了Visual FoxPro 7的SP1。这是一个彻底的补丁包——几乎没有推出任何新特性。

加装SP1能够改善Visual FoxPro 7对XML的支持,根据笔者测试,再不安装SP1的时候,XMLTOCURSOR()函数无法正确解析中文字符,而安装了SP1以后,这个问题就解决了!

我们的 Visual FoxPro 8

当我们还在讨论Visual FoxPro 7的时候,Visual FoxPro 8已经像我们走来了!

Visual FoxPro 8的产品代号是"Toledo" ,是有FoxPro社区选出来的。

已经看到的Visual FoxPro 8 的新特性

2001年9月初,在美国举行的“VFP DevCon 2001” 会议中,微软Fox小组成员召集了名为“Visual FoxPro 7.0 and Beyond”的主题演讲,Calvin Hsia 为到会的开发人员演示了几个已经完成的Visual FoxPro 8的新特性,虽然都是些不大的改进。笔者个人觉得2003年Visual FoxPro 8将正式发行,但至于那是他叫不叫Visual FoxPro 8我就不知道了,也许微软会为它改个名字……

  1. 支持自增长字段。

  2. 用一个属性实现,表格控件当前行的突出色彩现实,并且在表格失去光标时,依然高亮度显示当前行。

  3. 页框控件的得页标头支持上、下、左、右四个方位的放置。

  4. 控件的ToolTip支持多行显示。

  5. 所有控件支持Windows XP的界面风格。

微软对Visual FoxPro 8的定位

在 FoxPro Advisor 杂志里,有一篇名为《Memo from Microsoft》 的文章,登载了微软Visual FoxPro 产品经理 Ken Levy 对2002年 Visual FoxPro 发展的计划,其中专门提到了Visual FoxPro 8 的产品定位,原文是:

The main top-down goals for Toledo are to provide a better rich client, improve distributed Web client features, improve developer productivity, and increase discoverability for ease of use. You can see that the product direction focuses on features VFP developers have requested.

Visual FoxPro 8 将在客户端开发上做重大的改进、加强,这与当年微软对 Visual FoxPro 5、6 的定位截然不同——强调Visual FoxPro 在Visual Studio中的作用,强调Visual FoxPro开发中间层应用、COM组件。现在Visual FoxPro 离开了Visual Studio,产品重新定位,顺应开发者的需求,提出了 Rich Client(胖客户端)定位!

还有就是Visual FoxPro 8可能可以开发Web Form了,也就是所谓的 distributed Web client features。

Visual FoxPro 8 不会是.Net语言

Ken Levy 还表示,Visual FoxPro 8将坚持现有的体系构架,而不会运行在.NET common language runtime (CLR) engine 上,成为.Net语言。

我对Visual FoxPro 8 的期望

以下只是笔者一家之言。

远程数据访问

Fox历史上的每一次重要升级都与数据引擎有关,比如2.0时加入了内置的SQL语句和Rushmore技术;3.0时提出了完整的数据库概念,加入了远程数据处理的技术;7.0推出了数据库事件的概念。笔者以为,Visual FoxPro 8可能在远程数据的处理上有改进,我们知道现在的Visual FoxPro是通过ODBC对远程数据实现访问的,ADO主要使用OLE DB来访问远程数据,PB这样的软件更是有底层通道访问各种主流数据库;最新的ADO.NET中,微软更增加了对SQL Server 7.0及2000的直接(底层)访问,当然对其它数据库仍然采用OLE DB来访问。现在我们在Visual FoxPro中,要想通过OLE-DB访问远程数据必须使用ADO组件,但从实际应用来看ADO并非是Fox访问远程数据的主流方法,所以Visual FoxPro 8 应该会在访问远程数据方面提出更加具备效率的方法:或是对SQL Server的底层通道,或是使用OLE DB连接到远程数据……(哈哈,这时我去年写的,今年已经从微软得到证实:Fox 小组正在改进Visual FoxPro与SQL Server的通讯。看来,我的感觉蛮准的!)

无论访问怎么通道变化,对用户是感觉不到的,就像现在用户感觉不到我正在通过ODBC连接SQL Server的数据一样,只是效果更好。 (注:ODBC仍然是绝对主流、稳定的远程数据访问方式,只是速度略微慢于OLE DB;但它的兼容性绝对好于OLE DB下的ADO。所以未来的几年中ODBC仍然是值得信赖的远程数据访问的解决方案,特别是Visual FoxPro用户)。

当然,随着Fox用户越来越多的使用SQL Server作为后台数据库,Visual FoxPro 8 会在加强开发环境,例如:数据字典,用户可以方便的查看、维护数据源的表、视图、存储过程、触发器等对象,以提高开发效率。

报表工具

Visual FoxPro 8将会对报表工具进行大幅度的改进,首先是将报表最为一个对象处理,是报表变得很容易访问、控制;再就是提升报表的性能,例如多细节带区报表……;报表预览更自由,预览窗口将不再是模式窗口,由于窗口可以是任意指定的表单……;报表显示的数据可以与报表一起保存,这样报表就可以作为一份历史文档……

当然,微软也有可能将Crystal Report内置到Visual FoxPro里去,但我坚信:Visual FoxPro 8一定会在报表问题上给我们一个答复!

调用API更方便

我觉得直接调用API不是最佳的编程方法,但有时没有办法,只得调用。Visual FoxPro 8会支持“结构”这样的数据类型,可视控件都会带有句柄属性,这样就可以在Visual FoxPro中简便的使用API的各项功能,不像现在明明是很常见的API调用,在Visual FoxPro中却很麻烦……

界面的改进

我直言不讳:Visual FoxPro的界面效果简直是微软的耻辱!如果Visual FoxPro 8在这方面会为我们带来一些清新空气的话,这里有两种可能:我想微软会在现有的基础上升级整个界面以及内置的可视化控件,使他们符合Window的发展潮流,更规范、更流行;也可能Visual FoxPro 8将加入.Net系统,继承那个公共运行库提供的美好的界面。笔者以为:如果微软准备改善Visual FoxPro难看的界面,采取第一种方案的可能更大。(哈哈,我有猜得差不多!)

以上的猜想(更是美好的愿望)在加上编译加密的愿望可能是所有用户对微软的期望,就让我们看看,微软会为我们带来什么吧!

选择Visual FoxPro

笔者是一名程序员,不是搞行政的、做推销的,说话办事总讲个实在、一就是一、虚夸是不喜欢的。说心里话,Visual FoxPro在它的应用领域既不像那些大吹大擂的人说的那样神奇、世界第一,更不像社会上那些一知半解、不懂装懂的人讲的那样不济,我的观点是用好Visual FoxPro足以与任何当前流行的开发工具抗衡,其中关键是:您是不是高手,您是不是把Visual FoxPro用在了它合适的领域。

我们为什么选择Visual FoxPro作为我们的开发工具,因为他对我们有用,别的工具对我们来说用的没有它的得心应手,用了Visual FoxPro我们能够开发出经得起比较、经得起市场风浪、经得起生产实践考验的系统,这对我们来说就足够了!!!

在本文的即将结束之际,笔者想让大家看看用亚马逊网站(www.amazon.com)上Visual FoxPro 7的一段英文介绍,虽然有广告色彩,这段文字却真实、全面的概括了 Visual FoxPro 的特色、用途:

Microsoft Visual FoxPro 7.0 enables you to build high-performance desktop, client/server, and Web database applications with its database development system. Employ its powerful data engine to manage large volumes of data, its object-oriented programming to reuse components across applications, and its built-in XML support to quickly manipulate data. Visual FoxPro 7.0 provides the tools and powerful data engine developers need to manage large volumes of data, whether they are organizing tables of information, running queries, or building full-featured database applications for end users. It helps developers achieve maximum productivity through a powerful development environment and easy-to-use visual design tools, and provides the flexibility to build all types of database applications, and to build and consume COM+ components and Web Services.

Make applications accessible to third-party tools, such as screen readers, voice-recognition devices, and automated test harnesses. You can also make Visual FoxPro data easily accessible to non-Visual FoxPro-based clients. Build interoperable applications and components through the ability to represent Visual FoxPro data as XML and to import XML data into Visual FoxPro tables. Control user actions with code that executes when databases are opened, closed, or modified. You will reduce coding time by obtaining powerful, extensible language assistance as you type. View and quickly navigate to procedures, functions, and methods in source code, dock common tools such as command, data session, and debug windows. You can create setups for your custom applications using a special version of the popular InstallShield Express developed exclusively for Visual FoxPro. The enhanced code editor reduces coding time with support for bookmarks and shortcuts, find capabilities, and case conversion.

最后,我想告诉大家一个好消息:2001年9月24日,微软的CEO Steve Ballmer 发表了关于 Visual FoxPro 7.0的讲话。他除了介绍Visial FoxPro 7的新特性之外,还代表微软承诺:微软将继续推动Visual FoxPro的发展,为全球开发人员提供更好的支持!

原文如下:

Hi, I'm Steve Ballmer from Microsoft, and it's my great pleasure to be able to talk to you about a newly released version 7 of Visual FoxPro. Visual FoxPro 7 is a great tool for building database solutions of all sizes. From multi-tiered database applications, to data-intensive COM components, and XML Web services.

I hope you've heard by now about .NET, Microsoft's platform for next generation XML Web services. Visual FoxPro 7's support for XML standards, such as SOAP and WSDL, make it easy to create .NET Web services in the same environment you know and love today.

Along with full support for WindowsXP, Visual FoxPro 7's XML support allows integration with .NET Enterprise Servers such as SQL Server 2000 and our BizTalk Server. And XML support in OfficeXP makes it easier than ever for Visual FoxPro 7 developers to import and export spreadsheets. Microsoft is committing to improve Visual FoxPro and continue to serve the needs of FoxPro developers worldwide.

The developer community is core of us. We value the bet you're making on us. The time and energy you put into building great Visual FoxPro applications for Windows, and we won't let you down.

We're committed to continually improving our tools to match your evolving demands as application builders. We think we've got exactly the right line up with Visual FoxPro and Visual Studio .NET, allowing you to continue to innovate and do incredible things for the customers we all serve.

I hope you agree with us that Visual FoxPro 7 is an exciting release. And I hope you join me in supporting Ken Levy and the rest of the Fox team here at Microsoft as we build a bigger, and better, and a more successful FoxPro developer community. Thanks a lot.

因此,我们的看法是:如果你想开发出色的应用程序并想保护你的投资,那么选用Visual FoxPro准没错。