【问题标题】:Thoughts on streamlining multiple .Net apps关于简化多个 .Net 应用程序的想法
【发布时间】:2010-04-28 23:16:33
【问题描述】:

我们已经编写了一系列 ASP.Net 应用程序,历时 8 年。主要是在最初的 3-4 年。它们在几乎没有维护的情况下运行良好,但正在请求新功能,我们遇到了 IDE 和平台问题。这些应用程序是用 .Net 1.x 和 2.x 编写的,并在单独的空间中运行,但呈现为使用通用导航工具栏(作为用户控件实现)的单一应用程序套件。每次我们想在导航菜单中添加一些东西时,我们都必须在所有应用程序中修改它,这很痛苦。此外,Crystal 报表的各种版本以及我们使用表格来组织可视化元素的结果都是一团糟,尤其是在运行所有多平台 .Net 版本的情况下。我们需要简化应用程序套件,并让添加新应用程序变得更容易而没有麻烦。我们还需要将所有这些应用程序集成到一个 .Net 平台和 IDE 下。

此外,还有一个 WordPress 博客,其风格与“集成”到 UI 中的应用程序套件的风格相匹配,并且还有一个指向 MediaWiki Wiki 应用程序的链接。

我目前的想法是使用像 Joomla 这样的开源内容管理系统 (CMS)(不幸的是基于 PHP,但它运行良好)作为样式模板和菜单管理的用户界面框架。 Joomla 的文章管理允许我们将 Wiki 内容迁移到可以在不干扰 .Net 应用程序的情况下发布的文章中。然后基本上在“文章”中使用 IFrame 来“托管”.Net 应用程序,然后...

将 .Net 应用程序升级到 VS2010,去掉所有常见的页眉/页脚控件并迁移样式以使用 CMS 中使用的样式表。

在我写这篇文章时,我当然意识到这是很多工作,并且可能会导致优化问题,而且使用 IFrame 似乎有点像作弊,我已经阅读了有关 IFrame 的问题。

我知道我们可以使用 .Net 应用程序样式,但它似乎需要更多的工作(不确定)。此外,使用 CMS 来处理博客和 wiki 似乎也很有吸引力,除非有一个 .Net CMS 可以处理所有这些要求。

鉴于这些信息,我想知道我是否完全走错了方向?我们尝试使用开源并随着时间的推移将其集成,但这并没有变得难以维护。我不知道有一些技术可以满足我们的要求吗?我们做得对吗?我们是否应该只专注于简化 .Net?我知道无论我们做什么,都会有很多工作要做。社区的丰富经验会有所帮助。谢谢!!

PS - 完全重写不是一个选项。

【问题讨论】:

    标签: asp.net visual-studio architecture content-management-system


    【解决方案1】:

    嗯,我们正在进行一项听起来很熟悉的项目。我们正在使用www.sitecore.net CMS,但您可以再次使用开源替代品Umbraco,这两者都有学习曲线,但它们是.Net 应用程序,并非专门针对博客。如果您愿意,SiteCore 最终可以使用普通的 .Net 用户控件,尽管这与他们的模型略有不同,但它确实有效。

    我要警告您的一件事是 SiteCore 必须是您网站的根目录,它必须控制域的根目录(它有一个需要位于根目录的 urlrewriting 模块),您可以告诉它排除您的应用程序可能存在的某些文件夹。您显然可以将导航放在站点根目录下的文件夹中。另请注意 SiteCore 的 .Net 3.5 应用程序在 2.0 运行时下运行。

    您的子应用程序是.. 虚拟目录中的实际单独应用程序还是我猜的?

    【讨论】:

    • 我正在为我当前的项目使用 Umbraco、ASP.NET MVC 和用户控件。主站点是 ASP.NET MVC,我使用 404 处理程序来调用内容。我遇到的最大问题是有效且高效地使用 Umbraco 的修订控制。
    【解决方案2】:

    根据 .Net 应用程序的性质,您可能会发现 DotNetNuke 是一个有用的选择。

    这是一个 CMS,您可以在 .Net 中编写小部件(“模块”),然后将它们添加到 CMS 的页面中。在您的情况下,您会将现有功能包装在此类小部件中。我已经多次这样做了,现在我已经习惯了,这没什么大不了的。

    缺点是您必须在 DNN 环境中学习游泳,这(与任何 CMS 一样)有一些学习曲线。

    我必须更多地了解您现有的应用程序,以确保这是一个合理的选择。如果它看起来很吸引人,您可能应该联系处理过类似情况的人(例如我自己)并详细说明。 非常很容易发现自己在使用这些 CMS 框架时陷入了死胡同。

    编辑:就像另一个答案中提到的产品一样,DNN 必须控制其子域的顶层——所有请求都从通过 Default.aspx 开始,然后以各种方式分派。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多