尽管存在一个崭新的 .NET 语言 C#,但是它也包括一个经过完全修改的 Visual Basic .NET,以及包括 COBOL 在内的其他许多语言的 .NET 化,Visual FoxPro 不是...然而,一个在 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)。
关于垃圾回收的更多信息,参看第五章“C# 和 Visual Basic .NET 中的面向对象”。 非托管代码 是在 .NET 之外运行的代码。...这包括位于 COM 服务中的 Visual FoxPro 代码。(图 3)。 图 3. 在.NET 公共语言运行库外运行的非托管代码 代码和非托管代码是不同的。...程序集(Assemblies) 在 Visual FoxPro 中,依赖于你编译的项目类型,结果会是 APP、EXE 或DLL 文件。...针对这些内容的详细描述(如类、接口、方法、静态方法等)请参看第五章 “C# 和 Visual Basic .NET 中的面向对象”。 图6. IL 反汇编程序使用不同的图标来表示程序集中不同的项目。
调试输出窗口可以通过以下方式显示:从工具菜单中选择 "输出";或使用命令 ACTIVATE WINDOW ‘debug output';如果调试工具栏可见,则按下调试输出复选按钮: 调试输出窗口用于显示调试信息,既包括 FoxPro...覆盖日志 按下调试器工具栏上的覆盖按钮后,会出现以下对话框: 通过该对话框,您可以指定要将覆盖信息记录到哪个文件,以及 FoxPro 是否应附加到已存在的文件或替换该文件。...如果按下 "工具-选项 "对话框中的 "设置为默认值 "按钮,则在此对话框中进行的所有更改将在下一次 Visual FoxPro 会话中持续有效。...⦁ 环境组合列表可选择 FoxPro Frame 或 Debug Frame作为各个调试器窗口的父窗口。 现在,让我们将环境设置为 Debug Frame,看看这对我们的调试过程有何影响。
同时拥有 Visual FoxPro 和 .NET 的技术将会使你作为一个员工或顾问获得更多的工作机会。...3.你不能利用 COM+ 对象池,这是因为 Visual FoxPro 的线程模式——在 Visual Basic 6 中也是如此。对象池允许 COM+ 回收或重新利用中间层组件。...多线程 Visual FoxPro 的一个局限性就是无法创建多线程的应用。...你的确可以学习 .NET 如果你已经经历了 Visual FoxPro 的学习曲线,那么你学习 .NET 就已经有了一个很好的开端——这比 Visual Basic 开发者要好的多。...相比而言,Visual FoxPro 开发者学习 C# 或 VB.NET 的语法的学习曲线要短的多。 未完待续......
由于大多数 Visual FoxPro 开发者选择 Visual Basic .NET 或 Visual C# .NET 作为他们的软件开发语言,所以这本书将着重于这两种语言,分别提供示例,以便帮助你作出适合自己的决定...这种方法和现在许多 Visual FoxPro 开发者使用的方法大不相同——他们将大多数应用逻辑放置于用户界面。然而,使用商业对象可以使你的应用程序更灵活、更易于伸缩、更具有可维护性。...即使我在设计一个C/S架构的应用时,我也经常发现在 Visual FoxPro 中创建原型表是一个伟大的“概念验证”技术。...因为 Visual FoxPro 开发者倾向于从数据的角度来看这个世界,把数据放入表中可以帮助他们更快的找到对象模型和用其他方法无法找到的缺陷。...在技术上它是一个巨大的转变,并引起了所有的关注——包括 Visual FoxPro 开发者。本书的其余部分将帮助你做出明智的决定——为什么要使用 .NET?什么时候使用?
在此对话框中设置断点的唯一缺点是语法繁琐:必须在两个不同的数据输入框中键入方法名称、行号和文件名称:
如果双击标题栏,或将窗口拖到 FoxPro 主窗口的边界附近,就可以 "停靠 "跟踪窗口,使其成为 FoxPro 的一部分。
从 "工具 "菜单中选择 "调用堆栈";或者使用命令 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 DevCon 10 会议上。...简介 在 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 方言最最重要的是“允许老式赋值”(突然发现,旧式,更贴切)、“允许内存变量支持”和“允许未声明变量支持”。
XIDE 是一个完美维护的环境,与Visual FoxPro 的IDE 有很多共同点。它是用X# 编写的,因此它也作为一个生动的例子,说明该语言在正确的地方可以做什么。 3....Visual Studio Professional2017 是我在此时使用的开发环境。...如果您不熟悉Visual Studio ,那么在X# 帮助文件中您可以找到如何在Visual Studio 中使用X#。...这使我们可以使用正确的退出代码在FoxPro 方言中创建命令行实用程序,这对于Visual FoxPro 来说是一件很困难的事(译者注:针对创建控制台应用程序?)。...需要特别注意的是 Visual FoxPro Compatibility/Inherit from Custom Class 设置。如果您希望代码像在VFP 中那样工作,那么你就要将其设置为True。
我们将一个示例 FoxPro 程序逐步转换为 X#,并演示如何将我们现有的 VFP 技能转移到 X# 的范例中。...X# 已经开发很多年了,但是X# 更新中令人兴奋的无异于它对Visual FoxPro 方言的支持。...这种支持使得从Visual FoxPro 开发人员的角度来学习X# 变得很容易,例如,一旦您了解意大利语就可以学习西班牙语(这是一个猜测-我自己都不知道?)...在本次会议中,我遇到的最大困难不是语言本身,而是Visual FoxPro 和Visual Studio 开发环境之间的差异。...如果您有过使用Visual Studio 的经验,那么您就可以克服这个最大的障碍。当然,如果您有在Visual Studio 中开发C# 应用程序的经验,那么您可能会发现X# 非常容易使用。
XMLUPDATEGRAM函数定义 将 XML 文本转换到 Visual FoxPro 临时表或表中。...如果未指定路径,Visual FoxPro 将会沿着 Visual FoxPro 目录来搜索该 XML 文件。 cCursorName 指定要存储结果的临时表名,并在当前工作区中创建该临时表。...如果临时表名已经存在或已被打开,Visual FoxPro 将关闭该临时表并在未使用的工作区中创建一个新的。...如果 cCursorName 为空串(""),Visual FoxPro 会将 XML 导出到当前工作区打开的表或临时表中。...在 Visual FoxPro 中,base64 解码只是提供给二进制数据解码使用。
而 X# 所标榜的“Visual Objects, Vulcan.NET, xBase++, Harbour, Foxpro and more”方言的支持,全部是建立在 Core 方言的基础上。...因此,对于 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架构,就无所谓开放,保守了,我是大都数情况下习惯用表缓冲。
图1:FoxToDos 原始的FoxPro 应用程序是一个简单的待办事项管理器FoxToDos。...转换策略 我们将使用以下步骤将此Visual FoxPro 应用程序转换为X#: 1. 在Visual Studio 中创建一个新的解决方案 2....在Visual Studio 中对业务对象进行单元测试 4. 在Visual Studio 中创建一个表单,该表单使用这些业务对象与数据库进行交互,并且还包含等效的用户界面复合控件。 5.
教程刚刚开始,虽然目前仅支持 Core 方言,但是未来应该会支持 Visual FoxPro 方言,开发组已列入待办事项。...况且,Visual FoxPro 方言,在 X# 中,就是用 Core 方言实现的。对于这样一个开源项目,学习学习 Core 方言,也不是什么坏事。
领取专属 10元无门槛券
手把手带您无忧上云