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

流行的 DotNetNuke Web 应用程序转换为 C#

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.16/5 (23投票s)

2007年1月2日

2分钟阅读

viewsIcon

192245

为了让更多的人使用 DotNetNuke,我将原始 VB 代码转换为了 C#

引言

DotNetNuke 是一个开源 Web 应用程序框架,非常适合创建、部署和管理交互式 Web、Intranet 和 Extranet 站点。 它有很好的支持; 可以看看 Snow Covered。 不幸的是,VB 和 C# 程序员之间的合作并不理想,他们在这两种语言之间做出了互斥的选择。 这是不幸的,因为 DotNetNuke 是一个非常完善的 ASP.NET 框架,但许多 C# 程序员并不想关注它。

目的

为了让更多的人使用 DotNetNuke,我将原始 VB 代码转换为了 C#。 在 2006 年 10 月 28 日,我发布了第一个成功的 C# 版本。 今天,1 月 2 日,我已经修复了大部分错误,并有一个像样且可用的 DNN C# 版本。

学到的教训

在翻译代码的过程中,我学到了很多经验。 首先,你可能会认为翻译 VB 代码很容易,我也是这么想的。 但在这个项目开始不到十分钟,我就发现事实并非如此。 首先,我尝试使用 VB Conversions 翻译代码,并编译了结果源代码,产生了 3,000 多个错误。 这显然行不通。 其次,我尝试使用 Lutz Roeder 的 Reflector 来查看编译后的二进制文件中的代码。 虽然这产生了稍微好一点的结果,但它不是一个可行的解决方案。 如果我想及时完成这项工作并使其变得有用,我需要找到一条替代路线。 最后,我想出了一个解决方案,它是前两种方法的结合,以及我专门为这个项目制作的一些专用工具来完成它。

结果

由于转换代码的结果,新的 C# 版本比它的 VB 版本运行得快得多。 我还通过编译和生成一个为网站中所有页面 + 类命名的程序集来提高它的速度。 这并不容易,因为 ASP.NET 不允许预编译网站中的 App_GlobalResources,但我通过将 GlobalResourcesSharedResources 嵌入到 DotNetNuke.Library 库中,并使用 ResourceLoader 从程序集中的嵌入式资源中提取字符串来绕过这个错误。 然后,将剩余的配置文件放入配置目录中。

结论

我转换这个项目是为了让我自己和其他 C# 程序员更容易阅读,并让更多的用户可以使用 DotNetNuke。

Google Code

该项目托管在 Google Code 上。 请访问项目的 Google Code 网站,以获取最新的错误修复和版本。

重要链接

  • 这里是 Google Code 上的项目主页。
  • 这里是 SVN 存储库。

新闻

2007 年 1 月 5 日:新的错误修复,模块在安装期间全部加载,用户注册工作正常,并且大部分明显的错误都已修复。

© . All rights reserved.