在不熟悉VB语言的情况下,如何实现写出VB语言的Sample ?
先看EPN解决方案视图,熟悉需要引用的类型库
![clip_image001多种编程语言开发(C#,VB.NET,Delphi.NET)](/Files/20116/187a69ed-9912-4074-aadf-a3dace2d16a5.png)
各个项目的说明 项目名称
用意
BPM
![clip_image002clip_image001多种编程语言开发(C#,VB.NET,Delphi.NET)](/Files/20116/aed436e0-a53c-44c5-8a87-771785fcf11e.png)
工作流
项目类型
活动库,测试控制台,设计器,监视器
Form Designer
![clip_image003clip_image002clip_image001多种编程语言开发(C#,VB.NET,Delphi.NET)](/Files/20116/d932001c-3517-46f1-a363-c592886f20d2.png)
窗体设计
项目类型
窗体控件库,设计器,窗体运行时
Report Profiler
![clip_image004clip_image003clip_image002clip_image001多种编程语言开发(C#,VB.NET,Delphi.NET)](/Files/20116/c7619dc7-a158-44ae-ac22-6a658f42432e.png)
报表设计工具
查询设计器,查询跟踪器,查询跟踪监视
Report
![clip_image005clip_image004clip_image003clip_image002clip_image001多种编程语言开发(C#,VB.NET,Delphi.NET)](/Files/20116/1a34654b-3889-4236-ac29-8804f8e2938d.png)
报表
查询设计工具,报表程序,报表扩展
Common,Component,EPN Utility
实用工具库,组件库,工具扩展
EPN Server
应用程序,报表,工作流服务器
Foundation, Kernal
框架核心程序,组件和基础功能
Starup Main
客户端启动程序
其中,遇到有些模块或功能是VB写的,在升级制作时,将其完全转化为C#。
现在需要为它写VB语言的Sample,Demo程序。因为要考虑到使用框架的用户,可能是VB程序员,而不是C#。
VB.NET
VB与C#转化的方式,有一个技巧:将C#程序编译成程序集,用Reflector打开,选择目标语言为VB,即可看到VB版本的代码
![clip_image007clip_image005clip_image004clip_image003clip_image002clip_image001多种编程语言开发(C#,VB.NET,Delphi.NET)](/Files/20116/43cb4fa9-a625-4f6e-8253-3690c04dafed.jpg)
再用菜单导出源代码
![clip_image008clip_image007clip_image005clip_image004clip_image003clip_image002clip_image001多种编程语言开发(C#,VB.NET,Delphi.NET)](/Files/20116/55baf2c0-28e0-405b-9e96-dacff420a4f2.png)
即可看到VB的源代码。
这种方法的局限是,任何对代码的一点改动,都需要Comipler, Build, Reflector,步骤比较多,麻烦。
再看看这个源代码级别的转换工具
![clip_image010clip_image008clip_image007clip_image005clip_image004clip_image003clip_image002clip_image001多种编程语言开发(C#,VB.NET,Delphi.NET)](/Files/20116/309e2e89-d4b5-44a6-bfe1-303a4d1fafb1.jpg)
左边C#语言,右边是VB语言,这个工具的意图是将左边的代码,转化为指定的语言代码,显示有右边。
目标的设置对话框如下
![clip_image011clip_image010clip_image008clip_image007clip_image005clip_image004clip_image003clip_image002clip_image001多种编程语言开发(C#,VB.NET,Delphi.NET)](/Files/20116/f9bd3e7e-53fc-4f65-9e1f-2e3b78802d37.png)
请看下图,设置不同的方向,将VB转化为C#
![clip_image013clip_image011clip_image010clip_image008clip_image007clip_image005clip_image004clip_image003clip_image002clip_image001多种编程语言开发(C#,VB.NET,Delphi.NET)](/Files/20116/33774962-b245-4d08-b3dc-37f1f191dc9c.jpg)
既然实现了单个文件的转换,实现一个按照项目文件(csprjo)或是解决方案文件(sln)转换也就不复杂。
这样,在不熟悉VB语言的情况下,依靠这个工具,可以写出很多VB的Sample.
Delphi.NET
再来看另一种语言,Delphi.NET这个名为Chrome Joyride的工具,可以re-hosting到Visual Studio中,以Delphi的语法,实现.NET的操作
![clip_image015clip_image013clip_image011clip_image010clip_image008clip_image007clip_image005clip_image004clip_image003clip_image002clip_image001多种编程语言开发(C#,VB.NET,Delphi.NET)](/Files/20116/b165c56c-cfc2-4734-b7c9-4e9d5db28997.jpg)
只是语法的不同,其余的知识,完全是.NET的知识,这种方式,可以提供另一种写Sample的语言.
将窗体继承的类型改为class(EPN.WinUI.Forms.EntryForm), 如图所示,窗体设计器已经正确识别基类型
![clip_image017clip_image015clip_image013clip_image011clip_image010clip_image008clip_image007clip_image005clip_image004clip_image003clip_image002clip_image001多种编程语言开发(C#,VB.NET,Delphi.NET)](/Files/20116/85260ab0-a869-4a61-8865-375d783bca75.jpg)
它与VB.NET和C#的开发方式完全相同。
Chrome Joyride后来被演变成Oxygene,再又演变成如今的Delphi Prism,品称一变再变,东家也一换再换。
感叹一下,即使在国外,也只有像微软这样的少数公司,才能做到产品的连贯性,一致性。
J#
在Visual Studio .NET 2003,Visual Studio 2005中,还有另一种语言J#。这种语言用Java的语法,创作.NET的托管程序。可惜在.NET 3.0之后,这门语言就被抛弃了,新版本的IDE都不在对其进行支持。
市面上仍然有许多用J#创造的产品,比如著名的SQL工具系列Red Gate。
最新评论