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

将 Reporting Starter Kit 转换为使用 Mono/MySQL

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.69/5 (9投票s)

2005 年 10 月 1 日

3分钟阅读

viewsIcon

28978

downloadIcon

411

将 ASP.NET 报表入门套件移植到在 Linux 系统上使用 Mono、MySQL 和 Apache。

使用的工具

系统设置

我最初使用 RedHat Linux Fedora Core 4 作为我的操作系统,并选择了安装所有组件。在遇到一些安装问题后,我最终删除了我需要的所有软件包,以便我可以从源代码安装它们。具体来说,我删除了 MySQL、Apache (HTTPD) 和 PHP (以及所有依赖项)。接下来,我按照以下顺序安装:

  1. MySQL
  2. PHP
  3. Apache
  4. Libgdiplus
  5. Mono
  6. XSP
  7. mod_mono

(请参阅您的系统上每个安装的说明。) 别忘了修改您的 httpd.conf 以使用 mod_mono。

LoadModule mono_module modules/mod_mono.so
AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd

数据转换

感谢一个很棒的工具 MSSQL2MySql,我能够相当轻松地将所有表和数据转换为 MySQL 风格。剩下的就是存储过程了。

现在,这正是我选择 MySQL 5.0 的原因。即使它处于 beta 阶段,它现在也支持存储过程。但有一点需要注意的是,目前,mysqldump 不会转储过程,尽管他们计划在未来这样做。存储过程的转换过程并不困难。通过 MySQL 网站上的广泛文档,只需查阅哪个函数转换为什么函数即可。我遇到的主要变化是没有 DatePart 函数可用。相反,我不得不使用 Extract

此外,如上所述,phpmyadmin 是一个有用的工具;它是一个 PHP 网站,为您提供 MySQL 数据库的前端。它对于运行脚本、修改表等非常有用。我用它来导入 MSSQL2MySql 创建的数据文件。

代码转换

我承认我在代码移植方面作弊了。MySQL 不支持参数 Disconvery,所以我用一个简单的 switch 语句替换了该代码,该语句将过程名称转换为参数名称。此外,我在这里使用了 MySqlConnector,并将所有对 System.Data.SqlClient 的引用更改为 MySql.Data.MySqlClient。就这些!

ASPX 转换

现在这很痛苦。图像、文件名等都不一致。所以我基本上重命名了每个出现问题的人,以便它使用小写字母。就像我之前说的,这并不难,但花了一些时间。

安装

就安装此应用程序而言,您应该按照以下步骤操作

  1. 将文件解压缩到您选择的目录。(例如:/var/www/aspnet/reports
  2. 修改您的 httpd.conf 并添加报告应用程序
    LoadModule mono_module modules/mod_mono.so
    MonoApplications /reports:/var/www/aspnet/reports
    <Location /reports>
            SetHandler mono
    </Location>
    AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd
  3. 启动/重新启动您的 Apache 服务器 (/etc/init.d/httpd restart)。

考虑到 Linux 的性质,以及它的许多风味和安装风格,我认为我无法开始详细列出安装或设置它的每一种可能的方式。但是欢迎提出任何问题,我会尽快回复您。上面给出的所有站点都有出色的文档。(这就是我弄清楚的方式!)

问题

我遇到的最大问题只是设置系统。一旦完成,最大的问题是文件名大小写的不一致,以及手动编写存储过程。但我认为,如果有人编写一个应用程序使其可移植,使用 mono 会很容易。他们确实在开发方面做得很好。

© . All rights reserved.