它对 Visual FoxPro 开发者意味着什么?这一章将介绍 .NET、.NET FrameWork及语言,并解释为什么针对你的软件开发项目要调研 .NET 。...然而,一个在 Visual FoxPro 和 .NET Framework 类之间公正的比较是这样的:在Visual FoxPro 中,你需要记忆超过 500 个函数、大约 430 个命令以及超过 75...例如,在 Visual FoxPro 中,存在几十个用于字符串处理的命令。当你第一次学习Visual FoxPro 时,你可能学习了这些命令中很少的一部分(也许你到现在也没有完全掌握它们!)。...公共语言运行库(CLR) 除了一些关键性的差异外,公共语言运行库(CLR)和 Visual FoxPro 的运行库的功能相似。...Visual FoxPro 是一个解释型语言;实际执行的是伪代码(pseudo-code,简写 p-code)。当它执行时,伪代码被 Visual FoxPro 运行库解释为机器代码(图1)。
这包括位于 COM 服务中的 Visual FoxPro 代码。(图 3)。 图 3. 在.NET 公共语言运行库外运行的非托管代码 代码和非托管代码是不同的。...程序集(Assemblies) 在 Visual FoxPro 中,依赖于你编译的项目类型,结果会是 APP、EXE 或DLL 文件。
调试输出窗口可以通过以下方式显示:从工具菜单中选择 "输出";或使用命令 ACTIVATE WINDOW ‘debug output';如果调试工具栏可见,则按下调试输出复选按钮: 调试输出窗口用于显示调试信息,既包括 FoxPro...覆盖日志 按下调试器工具栏上的覆盖按钮后,会出现以下对话框: 通过该对话框,您可以指定要将覆盖信息记录到哪个文件,以及 FoxPro 是否应附加到已存在的文件或替换该文件。...如果按下 "工具-选项 "对话框中的 "设置为默认值 "按钮,则在此对话框中进行的所有更改将在下一次 Visual FoxPro 会话中持续有效。...⦁ 环境组合列表可选择 FoxPro Frame 或 Debug Frame作为各个调试器窗口的父窗口。 现在,让我们将环境设置为 Debug Frame,看看这对我们的调试过程有何影响。
在此对话框中设置断点的唯一缺点是语法繁琐:必须在两个不同的数据输入框中键入方法名称、行号和文件名称:
如果双击标题栏,或将窗口拖到 FoxPro 主窗口的边界附近,就可以 "停靠 "跟踪窗口,使其成为 FoxPro 的一部分。
Visual FoxPro 是建立桌面应用、Web 应用以及 Web 服务的伟大的开发工具。所以,有什么理由让 VFP 开发者对学习使用 .NET 感兴趣呢?...同时拥有 Visual FoxPro 和 .NET 的技术将会使你作为一个员工或顾问获得更多的工作机会。...建立中间层组件 Visual FoxPro 基于它的数据访问和字符串处理速度(尤其对 XML 而言),可以成为创建中间层组件的一个伟大的工具。...多线程 Visual FoxPro 的一个局限性就是无法创建多线程的应用。...相比而言,Visual FoxPro 开发者学习 C# 或 VB.NET 的语法的学习曲线要短的多。 未完待续......
截止本书为止,已经有很多的 Visual FoxPro 开发者选择 C# 作为学习 .NET 的开发语言。 因为 C# 是“C”家族之中的一员,它的语法和 C++ 很相似,但是它更多的更像 Java。...这种方法和现在许多 Visual FoxPro 开发者使用的方法大不相同——他们将大多数应用逻辑放置于用户界面。然而,使用商业对象可以使你的应用程序更灵活、更易于伸缩、更具有可维护性。...即使我在设计一个C/S架构的应用时,我也经常发现在 Visual FoxPro 中创建原型表是一个伟大的“概念验证”技术。...因为 Visual FoxPro 开发者倾向于从数据的角度来看这个世界,把数据放入表中可以帮助他们更快的找到对象模型和用其他方法无法找到的缺陷。...在技术上它是一个巨大的转变,并引起了所有的关注——包括 Visual FoxPro 开发者。本书的其余部分将帮助你做出明智的决定——为什么要使用 .NET?什么时候使用?
从 "工具 "菜单中选择 "调用堆栈";或者使用命令 ACTIVATE WINDOW CALL;或者,如果调试工具栏可见,按下 "调用堆栈 "复选按钮,即可显示...
如果 FoxPro Frame 是不可见的(在基于顶层表单的应用程序中通常是这样),那么显然您必须使用调试框架才能查看调试窗口。...停止和修复 通过从调试 Debug 菜单中选择修复,您可以让 FoxPro 取消程序并自动打开源代码进行编辑,同时突出显示当前行。...您可能知道,FoxPro "工具-选项 "主对话框中的所有配置设置都保存在 Windows 注册表中。...⦁ 在 FoxPro 代码 "触及 "OLE 对象之前,OLE 对象的 "属性 "并不总是在监视/定位窗口中可见。...我喜欢做 FoxPro 讲座的一点是,我几乎总能学到一些在开始准备之前不知道的有关产品的新知识。尤其是调试器的功能非常全面,我可能遗漏了一些重要的功能。
已在 6.0 中修正:显示特殊的字符串 在 Visual FoxPro 以前的版本中,"局部 "和 "监视 "窗口在显示包含不可打印字符的字符串时有一些问题: cMemo = "This is a multiline...在 Visual FoxPro 6.0 中,它们可以正确显示: 这里我们可以看到,CRLF 使用了竖条字符占位符。
(据我所知,这是在 FoxPro frame 中工作时显示断点对话框的唯一方法。 调试器工具栏上有三个专门用于断点的按钮: 在这里,可以单独启用或禁用当前定义的断点,也可以完全删除。
www.deepl.com/translator 格式整理:xinjie ————————————————— 本文首次发表是在 1999 年 5 月举行的 Microsoft/Advisor Visual Foxpro...简介 在 Visual FoxPro 5.0 版本中,3.0(以及更早的版本)中蹩脚的调试和跟踪窗口被一套全新的功能强大的调试窗口完全取代。在最新的 6.0 版本中,这两个窗口没有太大变化。...如何激活调试器 从 Visual FoxPro 内部启动调试器有多种方法。最常见的方法可能是从 "工具 "菜单中选择 "调试器": 还有其他方法。...将调试环境首选项从 "Debug Frame"更改为 "FoxPro Frame",我们就能简化需要查看的窗口数量,并使调试器的行为更像以前那样。
因为 X# 支持好几种 XBASE 方言,所以,在对其懵懵懂懂的时候,最好是按“套路”来,使用 VS IDE 中提供的 Visual FoxPro 模板,基于它,练习“套路”,甚至“散打”。...在使用模板创建了 X#(Visual FoxPro 方言)的项目之后,我们首先需要设置项目的属性。但是,我们在其中看到的大多数是英文.........这里是未来版本可能会包含的帮助内容: 其中,对 Visual FoxPro 方言最最重要的是“允许老式赋值”(突然发现,旧式,更贴切)、“允许内存变量支持”和“允许未声明变量支持”。
例如,请注意基于Class Library FoxPro Dialect模板创建项目后是如何将方言自动设置为 FoxPro 的。...作为FoxPro 开发人员,图3中显示了三个我们特别感兴趣的项目模板: · Class Library FoxPro Dialect:这种项目将在General 属性中预先设置FoxPro 方言(参看图...· FoxPro Console Application:它也将方言设置为FoxPro,还将“Output Type”设置为“Console Application”。...这使我们可以使用正确的退出代码在FoxPro 方言中创建命令行实用程序,这对于Visual FoxPro 来说是一件很困难的事(译者注:针对创建控制台应用程序?)。...· Windows Forms (或 WPF) Application:这些并不是FoxPro 特有的,但我们将探索使用它们为任务列表创建用户界面 模板中入门类有趣的地方是,它使用的语法看起来并不像 FoxPro
我们将一个示例 FoxPro 程序逐步转换为 X#,并演示如何将我们现有的 VFP 技能转移到 X# 的范例中。...X# 已经开发很多年了,但是X# 更新中令人兴奋的无异于它对Visual FoxPro 方言的支持。...这种支持使得从Visual FoxPro 开发人员的角度来学习X# 变得很容易,例如,一旦您了解意大利语就可以学习西班牙语(这是一个猜测-我自己都不知道?)...在本次会议中,我遇到的最大困难不是语言本身,而是Visual FoxPro 和Visual Studio 开发环境之间的差异。...它不是一个可以真正的可以正常运行的应用程序,但这个示例足够小,而且可以将我们在FoxPro中使用的许多功能翻译到X# 。
XMLUPDATEGRAM函数定义 将 XML 文本转换到 Visual FoxPro 临时表或表中。...如果未指定路径,Visual FoxPro 将会沿着 Visual FoxPro 目录来搜索该 XML 文件。 cCursorName 指定要存储结果的临时表名,并在当前工作区中创建该临时表。...如果临时表名已经存在或已被打开,Visual FoxPro 将关闭该临时表并在未使用的工作区中创建一个新的。...如果 cCursorName 为空串(""),Visual FoxPro 会将 XML 导出到当前工作区打开的表或临时表中。...在 Visual FoxPro 中,base64 解码只是提供给二进制数据解码使用。
所有描述均针对其中的 Visual Foxpro 方言。 所有和 VFP 的对比,均默认是 VFP9 SP2 7423 版本。...例如下面的程序在 VFP 中是正确的,但是在 X# 中会产生编译错误: Private lnNumber Local lnNumber 基于以上描述,可以确定的是在X#中,使用 Visual Foxpro...Foxpro Performance tip: field name lookup for tables https://learn.microsoft.com/zh-cn/archive/blogs/...calvin_hsia/foxpro-performance-tip-field-name-lookup-for-tables FoxPro 的性能技巧:表中的字段名 https://github.com.../vfp9/My_Translation/blob/main/calvin_hsia/FoxPro%20%E7%9A%84%E6%80%A7%E8%83%BD%E6%8A%80%E5%B7%A7%EF%
当然,个人认为还有其他的原因: Robert 在 2020年曾经说过:“We had hoped to see many new FoxPro faces in our community after...因此,对于 Visual Foxpro 方言来说,在 X# 的范围内,完全可以使用一切支持 Core 方言的东西。...这并不是说,在使用 Visual Foxpro 方言时必须按照 Core 方言的语法格式,而是说,可以使用 Core 所提供的一切函数和命令。...因此,对于帮助文件内容来说,站在一个 VFP 程序员的立场,完全可以忽略和 Core 方言、Visual Foxpro 方言没有任何关系的内容,甚至,仅仅关注 Visual Foxpro 方言的内容。...我打赌它不是 Visual Foxpro 方言写的。而且,据它的作者所说,他对 VFP 其实很陌生,因此 XIDE 在针对使用 Visual Foxpro 方言开发的项目时,支持不是很好。
通过缓冲,可以方便地检测并解决数据更新操作中的冲突:当前记录被复制到由 Visual FoxPro 管理的内存或磁盘区域。其他仍然可以同时访问原来的记录。...当离开该记录或以编程方式更新该记录时,Visual FoxPro 尝试锁定该记录、检验没有被其他用户修改、然后写入变化。在尝试更新数据之后,也必须解决阻止将该变化写入原始表的冲突。...Visual FoxPro 具有两种缓冲类型:记录(行)缓冲和表缓冲。 单行记录每次要访问、修改和写入单个记录,选择记录缓冲。...选择锁定模式:保守或开放 Visual FoxPro 以两种锁定模式提供缓冲:保守和开放。 在F/S共享文件架构中,大家打开的是同一个表,所以对缓冲的了解和掌握更加必要。...当在视图上使用记录或表缓冲时,Visual FoxPro 强制使用开放锁定。 如果你是C/S架构,就无所谓开放,保守了,我是大都数情况下习惯用表缓冲。
前言 笔者是一名使用 Visual FoxPro 开发近二十年的程序员,使用过从VFP5~VFP9 的所有版本,用她写过不多不少、大大小小、好好烂烂的程序。虽天资愚钝,对程序设计却满腔热血。...前段加入了 xinjie 老师的群,在老师的带领下,大家都跃跃欲试,我也看到了 X# 最新版本的发展,尤其是对 Foxpro 方言的越来越高的兼容度,我想:是时候该尝试一下了。...结语 通过这个简单的例子,相信您对在 X# 里使用 Foxpro 方言开发一个项目已有所了解。让你明白,有些内容对你来说是熟悉而亲切的,或许有一天你会投入他的怀抱。...可以看到,随着 X# 的日臻完善,对 Foxpro 方言的兼容性越强,这对于 Foxer 来说,是一个好的福音。...得益于 .net 庞大而丰富的生态,再有 Foxpro 天然的数据处理的优势,使得 foxer 可能实现之前无法或很难实现的功能,开辟新的开发领域,如B/S,网络交互等。
领取专属 10元无门槛券
手把手带您无忧上云