如果你是 80 后,你就已经完全错过了“PC 数据库的黄金时代”,这可能始于Wayne Ratliff在帕萨迪纳 的喷气推进实验室 无聊的一天,帕萨迪纳是一个非常靠近洛杉矶的城市(我曾希望我也能在那里工作, 但至少我去过那里一次)。
在这短短的一章中,我将概述最终导致X# 发展的重要事件。如果你对 X# 很熟悉,并且没有使用过VO 或 FoxPro ,你可能会惊讶地发现 X# 的根源可以追溯到上世纪80 年代初。
一切始于上世纪 80 年代。 那是我们大多数人开始编程的年代。 那是软件开发的快乐时光,前途一片光明(而且那时我们都很年轻)。
免责声明:我并不是表中所列每个事件的亲历者。 我在 dBase 刚问世时玩过它,在一个小型应用程序中使用过dBase III(但从未完成它),除此之外,我只是作为一个旁观者目睹了Clipper 的发展及其向 Visual Objects 的演变,以及后来 X# 的第一个化身。 因此,如果表中有任何不正确的地方,请告诉我,以便我尽可能保持表中内容的准确性。
年份 | 事件 |
---|---|
1978 | Wayne Ratliff 在美国喷气推进实验室开发了一种名为 Vulcan 的数据库编程语言供自己使用。后来,他开始将 Vulcan 作为产品销售。 |
1980 | George Tate 和 Hal LashleeWayne 在发现 Vulcan 的同年8月成立了 Ashton Tate 公司,并从 Wayne Ratliff 手中购得 Vulcan 的版权。 |
1982 | Ashton Tate 发布了针对 IBM PC 的 dBase II |
1984 | Ashton Tate 在德国发布了 dBase III |
1984 | 随着 FoxBase (后来的 FoxPro) 的发布,市场上出现了第一个dBase的克隆版本。 |
1984 | Nantucket 由 Brian Russel 和 Berry George ReBell 在加利福尼亚马里布一家名为 Nantucket Inn 的餐厅创办。 |
1985 | Nantucket 发布第一款 dBase 编译器 Clipper 1.0(85 年冬) |
1987 | Burak Kozan 博士等人在科隆成立了 Nantucket GmbH 公司,作为 Nantucket 的德国子公司。 |
1988 | Ashton Tate 几经推迟后发布 dBase IV |
1990 | 第一个 Clipper 编译器的测试版在科隆 Clipper 会议上亮相。 |
1990 | 由德国南塔基特开发人员发起了阿斯彭(Aspen)项目(后来成为 CA-Visual Objects)。 |
1991 | Ashton Tate 被 Borland 收购(该公司主要以 Paradox 数据库和 Turbo Pascal 编程语言而闻名)。 |
1991 | Borland 发布了 dBase IV 1.1 |
1992 | Nantucket 被 Computer Associates (CA) 以 8000 万美元(估计)收购。 |
1994 | CA 发布Visual Objects 的第一个版本,作为一种先进的 DMBS 开发系统,其中包含一个先进的 Clipper OOP 版本(源自 Aspen 项目)。 |
1997 | CA-Visual Objects 2.5 发布 |
1998 | Borland 公司更名为 Inprise 公司 |
1999 | Inprise 公司将 dBase 的所有权出售给 Ksoft 公司。该公司后来更名为 dBase LLC |
1999 | Harbour 项目是 Clipper 的开源版本。Harbour 开发人员表示,它与 Clipper 具有 100% 的向后兼容性。 |
2001 | Inprise公司更名为Borland软件公司 |
2002 | CA 将 Visual Objects 的开发和分销权出售给 GrafX(总部位于佛罗里达州西棕榈滩)。 |
2002 | 经过数年的开发,微软发布了 .Net Framework 1.0 |
2003 | GrafX 开始开发 Vulcan.Net,作为新 Microsoft .Net Framework 的 Visual Objects 后续产品 |
2007 | GrafX 发布 Vulcan.Net 1.0。它是.Net 框架下第一个 xBase 语言 |
2009 | Borland 被 MicroFocus 收购 |
2015 | GrafX 的前员工和其他开发人员通过使用 Roslyn 编译器平台(该平台为 .Net 编译器的内部服务提供 API),创建了 X#,作为 Vulcan .Net 的开源继承者。 |
2015 | XSharp BV 于荷兰成立,旨在继续开发和销售 X# 。 |
2017 | GrafX 公司年终倒闭 |
2017 | XSharp BV 发布 X# 1.0.1 |
2023 | XSharp BV 于8月发布了最新的 X# 2.17 |
2024 | 预计发布支持 .Net 7 的 X# 3.0 |
表 2.1: 包含所有与 X# 相关的历史事件的关键时间表
根据我自己的经验,X# 的理念是提供一种大多数 XBase、VO和 FoxPro 开发人员以及 C# 和Visual Basic 开发人员所熟悉的编程语言,以及一个利用.Net 运行时所提供的所有功能的开源项目。
我向 X# 的发明者 Robert van der Hulst 询问了他的意见,他非常友好地回答了我的问题:
创建 XBase 语言的开源版本,帮助现有的来自不同 XBase 产品的 XBase 开发人员延长其产品的寿命。 通过 X#,他们可以将自己的应用程序从现有的Win32 环境转移到任何支持 .Net 的平台上。我们希望通过这种方式延长用 XBase 语言编写的现有产品的使用寿命。X# 使用 Antlr 和 Roslyn 等开源产品,同时也作为开源产品进行开发,以回馈社区。
Roslyn 的影响
您可能在多个场合看到过这样的一句话:X# "位于"Roslyn之上(可以这么说),或基于Roslyn,或依赖于Roslyn。
Roslyn只是微软公司在上世纪八九十年代广泛使用的"代号 "之一--就像卷起袖子的夹克(例如迈克尔-杰克逊在著名的《颤栗》视频中穿的那件)。
它的正式名称是.NET编译器平台。
(本节中所有图片的版权均归微软所有--摘自 https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/compiler-api-model)
图 2.1:Roslyn 编译器管道
即使 X# 开发人员对 Roslyn 一无所知和/或根本不关心(这两点都是合理的),每个 X# 开发人员也应该了解其中的两点:
1.Roslyn 可使开发人员轻松为Visual Studio 代码编辑器编写编码助手
2.Roslyn 可使X# 开发团队轻松实现 C# 语言的最新功能
第 2 点尤其令人信服,因为我们可以预期,C# 新版本(请记住,2022 年C# 已是第 11 版--C#版本概览)中的大多数功能迟早会在X# 中予以实现。
X# 是100% .Net 语言。它始终需要.Net 运行时才能执行(.Net 7 和Native 代码编译器可能会改变这一点,但这是另一个话题)。
.Net 运行时是.Net Framework 或 .Net 6、7 或8 的一部分。
术语".Net"、".Net Framework "甚至".Net runtime "基本上意思相同。此外,还有一个 .Net Framework SDK,其中包括一些额外的命令行工具。
.Net Framework 由三个主要部分组成:
1.CLR(公共语言运行时)
2.类库,它由大量的"程序集"组成(函数库的另一个花哨的说法,或者只是 dll 文件)
3.C#、F#和 Visual Basic 的语言编译器
2016 年,微软决定将.Net Framework开源,并使其跨平台化。第一个版本是.Net Core 1.0。随着 2019 年 .Net Core 3.1 的后续版本.Net 5.0 的发布,"Core "一词被去掉,因此 .Net Core 变成了 .Net。目前的版本是 .Net 7,但.Net 8 已宣布将于 2023 年底发布。
本书中也有一小章是关于 .Net 7 的。
X# 2.x 总是需要.Net Framework。
“需要”究竟是什么意思?就是必须先安装.Net Framework。最新版本是 4.8。由于微软决定停止开发 .Net Framework,转而开发".Net Core",因此不会再有 4.8 之后的版本了(但正如你所知道的,你永远无法确定这一点)。
由于.Net 不是一个选项,这个问题更多的是理论上的兴趣。根据我长期使用 .Net 框架的经验,我的总体感觉是非常好。CLR、类库和编译器都非常可靠,功能丰富,文档齐全。自从转向 .Net Core 以来,一切都是免费开源的。特别是 .Net 7 给我留下了非常好的印象。
我还了解 Java,甚至用它开发过一些应用程序。Java 也是一个非常好的框架和运行时,至少在技术上与 .Net 处于同一水平。但是,比较.Net 和 Java 就像比较一流的有机苹果和一流的有机桔子一样,因为这两种框架通常在不同的环境中使用。如果说.Net有什么优于 Java 的地方,那就是(至少)有六七家组件供应商提供一流的支持,他们以通常可以承受的价格提供开发人员所希望的一切。
年份 | 事件 |
---|---|
2000 | 微软宣布推出 "下一代 Windows 服务"(NGWS),几周后成为 .Net Framework |
2000 | .Net框架的第一个测试版在旧金山举行的PDC大会上发布。微软高管Paul Maritz 指出,.Net 的核心将被标准化,并最终开源(实际上这发生在几年后,早在 .Net Core 之前)。 |
2002 | 比尔-盖茨在佛罗里达州奥兰多举行的 PDC 大会上展示了 .Net Framework 的第一个版本。 |
2002 | 2 月 13 日,比尔-盖茨正式发布了 Visual Studio .Net,并将其描述为 "第一个用于构建 XML Web 服务和下一代互联网应用程序的完全集成的开发环境"。 |
2003 | 微软在一年一度的 PDC 大会上宣布,"Longhorn "是首个基于 .Net UI 的操作系统(还有其他一些疯狂的功能)。仅仅过了一年,Longhorn 项目就被取消了。 |
2005 | .Net Framework 2.0 作为 "真正的" 版本出现,根据最初计划的功能,该版本的功能几乎是完整的。所有的 "数据库类 "在最终的 4.8 版本之前都只是在小细节上有所改变。 |
2006 | 破产的 Longhorn 项目中最重要、最实用的部分已集成到 .Net 3.0 版本中(真正的版本又花了一年时间,以 .Net 3.5.1 发布)。其中一个重要功能是 LINQ)。 |
2016 | 微软宣布将 .Net Core 作为 .Net Framework 的跨平台继承者。之后,.Net Core 将更名为 .Net。 |
2022 | .Net Framework 4.8 可能是 .Net Framework 的最后一个版本。 |
2023 | .Net 8 计划于年底发布 |
表 2.2: 与 .Net 相关的所有历史事件的简短时间表