适用于 Linux 的 Visual Studio .NET IDE!





0/5 (0投票)
2005 年 5 月 24 日
12分钟阅读

130777
我们都知道并喜爱 Visual Studio .NET® IDE,但您知道您可以用它来构建在 Linux® 上运行的服务器应用程序吗?通过 Mainsoft 的 Visual MainWin® for J2EE™,您可以发现如何做到这一点。
引言
我们都知道并喜爱 Visual Studio .NET® IDE,但您知道您可以用它来构建在 Linux® 上运行的服务器应用程序吗?通过 Mainsoft 的 Visual MainWin® for J2EE™,您可以发现如何做到这一点。
看看图 1。这显然是一个 ASP.NET 应用程序,并且显然是在 Linux 上运行的。您可能认为这很容易,您可以构建一个 ASP.NET 应用程序,在 Internet Information Services (IIS) 下的 Microsoft® Windows® 上运行它,并使用 FireFox 等浏览器从 Linux 客户端访问它。您说得对,但再看一遍。在屏幕截图中,您的 ASPX 正在 localhost 上运行,即 Linux 盒子本身。借助 Visual MainWin for J2EE(也称为 Grasshopper),您可以轻松地做到这一点,而无需更改您现有的 .NET 代码。
因此,您可以说 Visual Studio .NET + Grasshopper = 适用于 Linux 的 Visual Studio.NET!
将您的技能扩展到 Linux
请考虑这一点——许多公司都在考虑在他们的战略中以某种形式纳入 Linux,无论是桌面还是数据中心。要为 Linux 构建应用程序,您可能需要学习一套新技能,如 GTK 或 Java™。对于服务器端或托管应用程序,由于其跨平台特性以及众所周知的安全性、可管理性、性能和可伸缩性,J2EE 通常是合乎逻辑的选择。但是,要开发 J2EE 应用程序,您需要学习 Java 语言、Java Servlets、Java Server Pages、用于数据库连接的 JDBC,甚至用于分布式应用程序的 Enterprise Java Beans。
如果作为替代方案,您可以将您的技能范围扩展到 Linux 和其他支持 Java 的平台,从而在这个激动人心的新领域中扩展您自己(和您的简历)?如果您可以在不重写大部分代码的情况下做到这一点,而是重用您现有的 C# 代码,怎么样?不仅如此,您还想为 Mono™ 项目做出贡献吗——为 Linux 创建一个开源的 .NET 框架?您都可以做到,并且今天就可以做到,借助 Grasshopper,这是 Mainsoft 提供的一款免费的 下载。
使用 Visual MainWin for J2EE 可以做什么 - 简要概述
启动或转换项目
如您所知,当您在 Visual Studio .NET 中编译应用程序时,它会生成 Microsoft Intermediate Language (MS IL),该语言在 Microsoft Common Language Runtime (CLR) 上执行。Grasshopper 是 Visual Studio .NET 的一个插件,它接受此 MS IL 并将其转换为 Java Byte Code,该字节码在 Java 虚拟机上执行。Grasshopper 还包括 ASP.NET、ADO.NET 和最常见的 .NET 命名空间的 J2EE 实现,因此 J2EE 平台上有所需的依赖项。
当您在安装 Grasshopper 后启动 Visual Studio .NET 时,您将获得一些新功能的初步指示。这表明 Visual MainWin 工具与 Visual Studio .NET 的集成程度有多紧密。
安装 Grasshopper 后,启动 Visual Studio,然后选择文件 > 新建以打开“新建项目”对话框。
请注意,这里有两个新的项目类型文件夹 - Visual MainWin for C# 和 Visual MainWin for VB.NET。
事实上,您可以通过两种方式使用 Grasshopper 为 Linux 开发 J2EE 应用程序——一种是直接从这里创建一个项目并在 C# 或 VB.NET 中构建它,另一种是采用您现有的基于 .NET 框架的项目,并使用“生成 J2EE 项目”向导从 .NET 项目生成 J2EE 项目。您稍后将看到更多关于这方面的内容。
安装 Grasshopper 时,您还将获得一份 Tomcat 的副本,这为您节省了自己安装和配置应用程序服务器的时间和麻烦。您可以通过开始菜单上的Grasshopper组来启动或停止 Tomcat。要创建任何新项目或将现有 .NET 框架项目转换为 J2EE 项目,Tomcat 必须正在运行。默认情况下,Tomcat 运行在端口 8080 上,这就是为什么“新建项目”对话框(图 2)将您的 Web 应用程序或 Web 服务的默认根显示为 localhost:8080。如果您不熟悉Tomcat,它是一个简化的 J2EE 应用程序服务器,用于 Java Servlet 和 Java Server Pages 技术官方参考实现的。
如果您有一个要转换为 J2EE 的现有 .NET 项目,这也很容易。只需在解决方案资源管理器中右键单击您的项目,然后选择“生成 J2EE 项目”。Grasshopper 会为您创建一个新项目,将其设置为 Java,并将您的源文件与该项目关联起来。然后,您可以在 J2EE 服务器上编辑、编译、部署和调试此代码。您还可以选择将原始项目和转换后的项目放在同一个解决方案中,然后实现单一源代码策略,从一个 Visual Studio .NET 开发环境实例为 .NET 和 J2EE 构建您的源代码。
Tomcat 也可用于 Linux,因此您使用 Grasshopper 在 Tomcat 上构建的应用程序也可以在 Linux 上完美运行。Tomcat 是 Grasshopper 支持的唯一应用程序服务器,因此如果您想使用 WebLogic®、WebSphere® 或 JBoss®,可以使用 Visual MainWin for J2EE 的企业版。您可以从 Mainsoft.com 下载 **Mainsoft 的 Visual MainWin v 1.6 for J2EE Enterprise Edition** 的免费 30 天试用版。
要创建部署 Java Web Archive 文件 (WAR),您所要做的就是右键单击解决方案资源管理器中的项目,选择“部署打包程序”,选择要部署到的目录,然后单击“确定”。然后,Visual MainWin 将您的代码和依赖项编译成 WAR 文件。要将 WAR 文件安装到基于 Linux 的 Tomcat 服务器上,只需浏览到 Tomcat 管理控制台并从那里安装。Tomcat 管理控制台位于 http://linuxboxaddress/manager/html,然后从那里安装。Tomcat 会为您上传并部署 WAR 文件。
跨平台调试
在使用 Visual Studio .NET 工具开发 .NET 框架应用程序并将其部署到 Java 运行时时,您可能会遇到的挑战之一是调试。交叉编译时调试肯定无法工作,对吗?嗯,它确实可以!事实上,它的工作方式是透明的,以至于您仍然认为您正在像应用程序在 .NET 框架上运行时一样调试它!看看图 3 中的示例。您可以自己尝试一下:创建一个新的 Web 应用程序(使用 Visual MainWin C# for J2EE 项目文件夹),在其上添加一个按钮,然后在按钮事件处理程序后面输入一些表单,如所示。别忘了在代码中设置一个断点。完成后,单击“调试”>“开始”或按 F5。您的应用程序将被编译并部署到 Tomcat,然后会启动浏览器,将您定向到 ASPX 页面。
单击页面上的按钮,您将被带回到 Visual Studio .NET IDE,它将在断点处停止,如图 3 所示。正如您所看到的,您用于调试的所有工具 - 监视、调用堆栈等 - 仍然可用。您仍然可以逐行执行代码并观察其执行情况,如果您查看调用堆栈,您可以看到哪些类正在运行以及在哪里运行。特别有趣的是 Grasshopper 如何连接 .NET 框架和 Java 规范,尽管它不影响程序的执行!此外,您可以跟踪错误发生的位置,即使在生产服务器上,也可以从 Visual Studio .NET 连接到服务器,无论其操作系统如何,并在您偏好的开发环境中调试任何问题!
与现有的 Java 或 J2EE 资产进行接口
许多公司 - 您的公司可能也不例外 - 已经用 Java 实现了一些资产,您将需要与这些现有的 Java 资产进行接口。此外,您可能需要在应用程序中使用第三方插件来实现某些功能。一个很好的例子是报告,大多数公司都会使用 Crystal Reports 等插件来处理图表。在 Linux 世界中,这些将用 Java 实现,并作为 Java Archive (JAR) 文件提供给您包含在您的应用程序中。本地 Java 开发人员可以通过在编译代码时包含它们轻松使用它们,但当您从 C# 构建时呢?
使用 Grasshopper,您也不会被落下。您可以添加对 JAR 文件的引用,并在代码中随意操作它们。这类似于添加对第三方程序集的引用。要做到这一点,只需右键单击解决方案资源管理器中的“引用”文件夹,您就会在现有的“添加引用”和“添加 Web 引用”选项上方看到两个新选项
-
添加 Java 引用,它允许您查找 JAR 文件并为其创建一个引用,然后您可以编写代码。Java 引用已完全集成到您的开发环境中,因此对象浏览器、代码编辑器的 Intellisense 和编译器都能像识别常规 .NET 类一样识别 Java 类及其成员。这使得您能够以使用 .NET 框架类库时相同的生产力水平对其进行编码。
-
添加 EJB 引用(仅在企业版中可用),它允许您使用 JNDI 查找来查找 Enterprise Java Bean (EJB)。JNDI 是一个用于定位您的 EJB 并与之进行接口的目录服务。Tomcat 不支持此功能,因为 Tomcat 不支持 EJB。如果您使用 Visual MainWin for J2EE 企业版为支持 EJB 的服务器(如 JBoss、WebLogic 或 WebSphere)构建应用程序,您可以通过其 JNDI 条目找到您的 EJB,创建对它们的引用,并像使用任何其他对象一样使用它们。如果您需要使用 EJB,创建它们的 J2EE 开发人员可以为您提供此信息。
在线帮助和示例
Mainsoft 发现,绝大多数 Web 应用程序和 Web 服务代码都能干净地转换为 Java,而无需重写。您可能需要编写一些新代码的地方是存在 Windows 特定依赖项时,例如 Platform Invoke 或 COM-interop,或者如果您有第三方控件而没有源代码并且没有 Java 实现。为了帮助您翻译代码或理解使用 Grasshopper 进行迁移的问题,请参考 在线集成帮助文档,以及一系列示例应用程序和教程,它们将引导您完成各种任务。集成帮助如图 4 所示。
“示例和教程”部分包含各种应用程序类型,它们将引导您完成构建和部署它们的步骤,或翻译和移植现有应用程序。 示例包括
-
StockReader,演示了一个简单的控制台应用程序。
-
IBuySpy,演示了一个单层 Web 应用程序。
-
StocksPortfolio,演示了一个多层 Web 应用程序。
-
NorthWind,展示了如何使用 ADO.NET 和 JDBC。
需要注意的是,尤其是在最后一个示例(NorthWind)中,您的连接到 SQL Server 的 ADO.NET 应用程序可以干净地迁移到 Java 而无需重写,因为 System.Data 类也在 J2EE 中实现,并且是在 JDBC 接口之上。当然,如果您要移植所有内容,包括数据库服务器到 Linux,那么您将不得不进行一些代码更改,因为 Microsoft SQL Server 不适用于 Linux,因此您需要使用不同的数据库并相应地更改您的数据库代码。Mainsoft 认证以下数据库与 Visual MainWin 兼容:PostgreSQL(随 Grasshopper 捆绑)、Oracle、IBM DB2、Sybase 和 MySQL。
除了示例之外,以下 教程将一步一步地指导您完成整个过程:来自 ASP.NET 资源工具包的 StocksPortfolio 和 Commerce Starter Kit 实现。
借助完整的在线开发人员指南、参考、示例和教程,您拥有文档和工具,可以帮助您开始在 Visual Studio .NET 中构建 Linux 应用程序!在 Grasshopper - Mainsoft 的开发人员站点上有大量资源可以帮助您。
使用 System.Data 命名空间进行数据库访问
使用 Grasshopper 可以轻松地通过 ADO.NET 访问数据。这是因为 Visual MainWin 提供了一个 System.Data 命名空间的实现,该实现构建在 JDBC 之上。因此,您可以像以往一样使用 System.Data 类,而无需担心 JDBC 如何处理它。System.Data 类已与领先的企业数据库进行了测试,包括 Microsoft SQL Server、Oracle、IBM DB2、Sybase、PostgreSQL 和 MySQL。SQL Server 和 PostgreSQL 的驱动程序包含在平台中,以备您需要与它们一起工作,并且会自动为您安装在应用程序服务器上。
结论
在本文中,您对 Visual MainWin for J2EE 工具包的一些功能及其允许您做什么进行了快速的浏览。您已经看到了如何利用您现有的 C# 或 VB.NET 技能在一个全新的领域 - Linux - 构建应用程序!而且,您可以做到这一切,而无需学习一门新语言、一个新的依赖结构或一个新的 IDE。想象一下,利用您现在拥有的东西,并在几分钟内向您的老板展示您如何将其移植到 Linux!试一试,并 下载该工具包。您不会后悔的。
法律声明
Mainsoft 和 Mainwin 是 Mainsoft Corporation 的注册商标。Microsoft、Visual Basic、Visual Studio 和 Windows 是 Microsoft Corporation 在美国和/或/或其他国家的注册商标或商标。WebLogic 是 BEA Systems, Inc. 的注册商标。WebSphere 是 IBM Corp. 的注册商标。Java、J2EE 和 JavaBeans 是 Sun Microsystems, Inc. 在美国和其他国家的商标或注册商标。所有其他公司和产品名称可能是第三方保留的知识产权的主题。