65.9K
CodeProject 正在变化。 阅读更多。
Home

将个人网站入门套件移植到 Tomcat

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2007年9月5日

CPOL

13分钟阅读

viewsIcon

30739

使用 Mainsoft 免费的 Visual Studio SDK(Grasshopper 2.0)将 Microsoft 个人网站入门工具包移植到 Tomcat 上运行。同样,其他 Web 项目和应用程序也可以重新托管到 Linux 上运行。

这是我们对 The Code Project 赞助商的展示性评测。这些评测旨在为您提供我们认为对开发人员有用且有价值的产品和服务信息。

Screenshot - download_grasshopper.gif

Microsoft 的 .NET 2.0 框架在其技术基础之上引入了许多更高级的功能,这些基础使得 .NET 1.x 取得了成功。改进的语言功能,如 C# 泛型和可空类型,以及更广泛的 ASP.NET 框架,使您能够快速开发多层 Web 站点。ASP.NET 2.0 引入了许多新的 Web 控件,以减少构建 Web 站点所需的 C# 或 Visual Basic 代码量。您可以使用改进的安全模型、改进且扩展的数据支持以及主页等功能,比以前更轻松地构建和维护您的 Web 站点。



Screenshot - download_mansoft_enterprise.gif

Grasshopper 2.0(又名 Mainsoft for Java EE Developer Edition)引入了对 Microsoft Visual Studio® 2005 IDE 和 .NET Framework 2.0 的支持。您可以使用 Grasshopper 2.0 测试跨平台开发,包括调试,使用最新版本的 Visual Studio 软件、C# 和 Visual Basic 2.0 功能以及 ASP.NET 2.0 控件。您还可以将使用新 2.0 功能的现有 ASP.NET 应用程序重新托管到支持 Java 的平台以及 Tomcat 应用服务器上,并在 Linux 下运行这些应用程序。




Screenshot - download_mainsoft_portal.gif

如何获取

下载 Grasshopper 2.0,运行可执行文件,然后按照安装说明进行操作。您可以在已安装 Grasshopper 1.x 版本的计算机上并排安装此版本。

请注意以下系统先决条件

  • 操作系统:Windows XP SP2、Windows 2003 Server 或 Windows Vista Ultimate 或 Business
    注意:
    要在 Windows Vista 上使用 Grasshopper,您必须从管理员命令提示符启动 Visual Studio IDE,并以管理员身份启动 Tomcat 应用服务器。

  • Visual Studio .NET 2005 Service Pack 1,Standard 或 Professional 版本
Screenshot - figure_1.jpg

图 1. 新建项目对话框

开始使用 Visual Studio 2005、.NET 2.0 和 Grasshopper 2.0

安装 Grasshopper 2.0 后,启动 Visual Studio 2005 IDE。

然后,从“文件”菜单中选择“**新建项目**”,即可出现“新建项目”对话框。参见图 1。

查看此对话框左侧的项目类型,您会看到“**Visual Basic for Java EE**”和“**C# for Java EE**”作为支持的项目类型。从这里,您可以选择新的项目类型,例如 ASP.NET Web 应用程序。Grasshopper 2.0 支持 Web 应用程序、Web 服务、Web 控件库、控制台应用程序和类库。



Screenshot - figure_2.jpg

图 2. Visual Studio 工作区

创建 Web 应用程序后,您将看到熟悉的 Visual Studio 2005 工作区,您可以使用它像平常一样设计您的 Web Form 应用程序。(参见图 2。)

图 2 中显示的应用程序是一个简单的“**Hello**”应用程序。使用 Visual Studio 工具箱将一个 TextBox 控件、一个 Button 控件和一个 Label 控件拖到 *Default.aspx* 设计界面上。双击按钮,将出现代码编辑器。这允许您指定要运行的代码以处理按钮单击事件。将函数的代码更改为如下形式:




protected void Button1_Click(object sender, EventArgs e)
{
    Label1.Text = "Hello " + TextBox1.Text;
}
Screenshot - figure_3.jpg

图 3. 在 Tomcat 上运行的应用程序

按下按钮后,Label1 标签将显示“**Hello**”以及在文本框中输入的任何名称。

您期望从 Visual Studio 开发环境获得的生产力水平,现在也适用于跨平台开发人员,包括完整的 IntelliSense、跨平台调试器和集成帮助系统。

安装 Grasshopper 2.0 后,您将在开始菜单的“**Mainsoft for Java EE**”组中找到一个条目,您可以使用它来启动 Tomcat。Tomcat 将在 DOS 提示符窗口中启动。当它完全加载后,您可以构建、运行和调试您的应用程序。

现在,按 **CTRL-F5** 运行应用程序,您就可以看到应用程序在 Tomcat 上运行了。就是这么简单!您可以在图 3 中看到这一点。请注意,应用程序运行在端口 8090 上。

使用个人网站入门工具包

个人网站入门工具包(PWS)是 Microsoft 开发的一个应用程序,用于展示 .NET Framework 2.0 和 ASP.NET 2.0 的功能。它可以从 MSDN 下载,并提供一个完整、即用型且可自定义的交互式网站,用于共享照片、简历等。此应用程序使用了许多新的 ASP.NET 2.0 技术和控件,包括 ASP.NET 身份验证、LoginView 控件、基于站点的导航、自动生成的菜单、ObjectDataSource 等。

本文介绍了如何将 .NET PWS 应用程序移植到 Java。移植后的应用程序也可在 <mainsoft_install_dir>\Samples\{CS|VB}\PWS 处找到。

PWS 广泛使用的一个新的 ASP.NET 2.0 功能示例是主页(Master Pages)的概念。使用主页,您可以设计并指定页面的外观和感觉,并将其命名为 .master 文件扩展名。使用面向对象的方法,您可以让其他页面派生自此主页,并继承主页的所有样式和布局。因此,例如,如果您查看 *Albums.aspx*,您会发现页面上的标记比您通常预期的要少得多。这是因为大部分标记都在主页上,并且由于页面声明中对主页的引用而继承了它。

<%@ Page Language="C#" MasterPageFile="~/Default.master"
    Title="Your Name Here | Albums" CodeFile="Albums.aspx.cs"
    Inherits="Albums_aspx" %>

有关个人网站入门工具包的完整讨论,包括完整的技术讨论,可以在 MSDN 上 这里 找到。

Screenshot - figure_4.jpg

图 4. 创建个人网站


在接下来的几个部分中,您将看到如何为将此应用程序重新托管到支持 Java 的平台准备环境,然后您将完成重新托管它的简单步骤。

步骤 1:使用个人网站入门工具包

从 Microsoft 这里 下载 PWS。安装后,您可以使用 Visual Studio 安装中提供的模板创建一个新的个人网站。为此,请选择“**文件 > 新建 > 网站**”,您将看到个人网站入门工具包的模板。选择它,指定要创建网站的目录,并将语言设置为 C#(也支持 Visual Basic)。参见图 4。然后 IDE 将在指定目录中为您创建网站,通过按 F5 可以在 Cassini Web 服务器上运行它。您可以在图 5 中看到它的运行效果。



Screenshot - figure_5.jpg

图 5. 在 Cassini 上运行的个人网站

步骤 2:将网站转换为 Grasshopper Web 应用程序项目

PWS 将您的网站创建为一个网站项目,您将所有文件存储在文件系统中,没有关联的项目文件。对于 Grasshopper,您需要一个项目文件,因为它用于处理编译器指令,将您的 MSIL 代码交叉编译为 Java 字节码。因此,您需要将您的网站转换为 Web 应用程序项目,利用 Visual Studio 2005 Service Pack 1 随附的 Web 应用程序项目类型。

将一个新的“**C# for Java EE**”Web 应用程序项目(图 6)添加到解决方案中,并删除其 *Default.aspx* 和 *Web.Config* 文件。然后选择网站项目中的所有内容,并将其拖放到新项目中(图 7)。

在 Visual Studio 完成将文件插入新项目后,右键单击新项目并选择:“**转换为 Web 应用程序**”。等待 Visual Studio 完成转换。

现在…在理想情况下,您的新 Web 应用程序项目应该已经准备好构建。但是,尝试构建项目将产生以下错误消息:未声明名称“PhotoManager”。

出于某种原因,Visual Studio 转换将应用程序源文件标记为内容文件而不是需要编译的源文件。修复问题其实很简单。您只需要选择新项目中 *Old_App_Code* 文件夹下的所有文件,并将其“**生成操作**”属性从“**内容**”更改为“**编译**”(图 8)。

现在,您应该能够成功构建新项目。事实上,您不再需要在解决方案中保留原始网站,并且可以安全地将其删除。完成此操作后,您应该只剩下一个项目。

有关将网站项目迁移到 Web 应用程序项目的更多信息,请参阅 MSDN 文章:“演练:在 Visual Studio 2005 中将网站项目转换为 Web 应用程序项目”。

Screenshot - figure_6.jpg

图 6. 创建 Grasshopper Web 项目

Screenshot - figure_7.jpg

图 7. 将文件复制到 Grasshopper Web 项目

Screenshot - figure_8.gif

图 8. 将生成操作设置为编译

步骤 3:配置应用程序数据库

原始 .NET Web 应用程序使用了内存中数据库,存储在 *personal.mdf* 文件中,该文件位于 *App_Data* 文件夹中。

Screenshot - figure_9.jpg

图 9. 计算机管理中的 SQL Express 协议

Java 应用程序可以使用 Microsoft JDBC 驱动程序连接到 SQL Server Express。但是,MS SQL Server JDBC 驱动程序不提供连接到嵌入式数据库(如网站应用程序使用的数据库)的方法。

实际上,由于性能、可伸缩性和健壮性方面的考虑,实际的 Web 应用程序通常不会使用嵌入式数据库。相反,它们会使用由商业数据库服务器(如 SQL Server)管理的数据库。

现在我们需要修改移植后的 .NET 应用程序,并从嵌入式数据库切换到进程外 SQL Server Express 数据库。

您的移植后的应用程序在运行时将是 100% 纯 Java 字节码应用程序,并将使用 Microsoft SQL Server JDBC 驱动程序进行数据库连接。

首先,确保您的 SQL Server Express 数据库可以通过 TCP/IP 访问,并且支持混合模式身份验证。

为此,请使用控制面板 > **管理工具**中的“**计算机管理**”应用程序。找到“**服务和应用程序 > SQL Server 配置管理器 > SQL Server 2005 网络配置**”下的“**SQL Express 协议**”条目。它应该如图 9 所示。

确保 TCP/IP 已**启用**。您可以通过双击屏幕右侧的条目,并在“**协议**”选项卡上启用它来做到这一点。

Grasshopper 运行时依赖于 Microsoft JDBC 驱动程序连接到 SQL Server Express,因此要求在 SQL Express 实例上启用 SQL Server 身份验证。请确保 SQL Express 实例以混合模式身份验证工作。为此,您可以使用 Microsoft 的**SQL Server Management Studio Express**(SSMSE)工具,该工具可从 Microsoft 免费下载

启动 SSMSE,登录,选择数据库,然后右键单击。在上下文菜单中,选择“属性”。您将看到“**SQL Server 属性**”对话框。选择“**安全性**”,并确保选择了“**SQL Server 和 Windows 身份验证**”**模式**单选按钮(图 10)。

现在您必须重新启动 SQL Express 服务器才能使更改生效。您可以通过右键单击服务器名称并选择“**重新启动**”选项来执行此操作。

Screenshot - figure_10.jpg

图 10. 设置混合模式身份验证

**注意**:如果未重新启动服务器,稍后尝试运行应用程序时将收到错误消息。

Grasshopper 运行时使用 SQL Server Browser 服务连接到 SQL Server Express。为确保 SQL Server Browser 服务正在运行,请再次启动“**计算机管理**”,展开“**服务和应用程序**”,然后单击“**服务**”。在服务列表中,双击“**SQL Server Browser**”,然后在“SQL Server Browser 属性”窗口中,单击“启动”。

现在您可以运行一个初始化脚本,该脚本将示例的 *Personal.mdf* 数据库文件附加到您正在运行的 SQL Server Express 实例,并创建一个用户(用户 ID:pwsadmin,密码:pwsadmin123)作为数据库所有者(dbo)。由于 Grasshopper 不支持 Windows 身份验证,因此将在运行时使用此用户连接到数据库。从命令提示符运行以下命令:

cd <Mainsoft_install_dir>\Samples\{CS|VB}\PWS
sqlcmd -S .\SQLEXPRESS -v PROJECTDIR=
    "<Mainsoft_install_dir>\Samples\{CS|VB}\PWS" -i .\personal.sql

**注意**:您可以安全地忽略以下警告:

文件激活失败。物理文件名“\Personal_log.LDF”可能不正确。

最后,设置您刚刚创建的新进程外数据库的连接字符串。为此,请在 Visual Studio 编辑器中打开 *web.config* 文件,并替换 Personal 连接字符串

<add name="Personal" 
    connectionString="Data Source=.\SQLExpress;
        Integrated Security=True;
        AttachDBFilename=|DataDirectory|Personal.mdf"
    providerName="System.Data.SqlClient"/>

...替换为以下内容:

<add name="Personal" 
    connectionString="Data Source=.\SQLExpress;
        Initial Catalog=personal;
        Integrated Security=false;
        user id=pwsadmin;
        password=pwsadmin123" 
    providerName="System.Data.SqlClient"/>

步骤 4:配置应用程序数据数据库

ASP.NET 2.0 默认的成员资格和角色提供程序使用 SQL Server 2005 Express 的嵌入式内存中实例来提供应用程序数据(如成员资格和角色)的持久化存储。Grasshopper 2.0 的默认提供程序基于 **Apache Derby™**,这是一个纯 Java 嵌入式数据库。

Grasshopper 实现了一些新的提供程序,用于处理默认的 Derby 数据库。Derby 提供程序和用于处理 Derby 数据库的连接字符串定义在 *machine.config* 文件中,该文件位于 Grasshopper System.jar 文件内(位于 <mainsoft_install_dir>\java_refs\framework\System.jar)。

Grasshopper 运行时将从 *machine.config* 文件中读取应用程序数据数据库的连接字符串。您可以删除 *Web.Config* 文件中的 LocalSqlServer 连接字符串行。

<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" 
    connectionString="Data Source=.\SQLExpress;
        Integrated Security=True;
        User Instance=True;
        AttachDBFilename=|DataDirectory|aspnetdb.mdf" />

步骤 5:构建、运行和调试移植后的个人网站

Screenshot - figure_11.jpg

图 11. 调试 PWS 示例

使用 Grasshopper 构建 Java EE 项目没有什么特别之处,这也是 Grasshopper 如此吸引人的原因——如果您知道如何在 Visual Studio 开发环境中构建 C# 项目,那么您就知道如何构建它的 Java 版本。您只需要将配置更改为 Debug_Java,然后启动 Tomcat 应用服务器。

您可以按 **F5** 将应用程序编译为 MSIL,将此 MSIL 交叉编译为 Java 字节码,将字节码部署到 Tomcat,并使用 Grasshopper 调试器启动它。

您移植的 PWS 应用程序的 Java EE 版本在外观上与 .NET 版本完全相同,并且可以以与 .NET 版本相同的方式使用。要了解如何使用您刚刚移植的个人网站,请阅读示例的 *Welcome.html* 页面中的说明。

您现在可以测试 Grasshopper 调试器(参见图 11 中调试器的实际运行情况)。设置一些断点,看看它的工作原理。使用 Grasshopper 进行调试与您习惯使用的 Visual Studio 没有什么不同。您可以从源代码级别调试 Grasshopper 项目,并可以使用调试器的各种窗口来检查和排除应用程序故障。逐行执行应用程序,检查 Grasshopper 调用堆栈,并在“自动”窗口中展开一些对象。

Screenshot - figure_12.jpg

图 12. Mainsoft 网站管理工具

欢迎来到 Java,.NET 2.0 开发者!!

步骤 6:配置用户、角色和成员资格

与 PWS 应用程序的 .NET 版本一样,您也可以为 PWS 样本的 Java EE 版本配置用户、角色和成员资格。从 Visual Studio 的“**ASP.NET 配置**”项目菜单中打开“**Mainsoft 网站管理工具**”。查看地址栏,并注意该工具正在 Tomcat 应用服务器上运行,地址为 https://:8090/MyWebsiteProject/aspnetconfig/Default.aspx(图 12)。



Screenshot - figure_13.jpg

图 13. 在 Tomcat 上运行的个人网站

使用网站管理工具为您的个人网站样本创建和管理用户和角色。结论

结论

在本文中,您了解了 Grasshopper 2.0 如何用于将一个相当复杂的 Web 应用程序从 Microsoft 运行时上的 C# 迁移到 Java EE 运行时上的 C#,且只需极少的重写。同样,您也可以将 .NET 2.0 应用程序重新托管到 Linux 上运行。这就是 Grasshopper 2.0 的强大之处,而这仅仅是开始。

那么,您怎么看?

© . All rights reserved.