1

平台:ASP.NET 4.5、MVC 4、C#

我目前正在设计一个可在公共领域使用的网站。但是,我的目标市场中有相当一部分人不愿意将一些信息放在公共网站上,即使它是 https 等。

我想做的是允许企业用户使用我的网站,其中一种方法是允许他们在他们的 Intranet 上托管我的网站。当然,通常的缺点是他们的网站更新速度不如公众网站那么快,而且在支持方面我也很头疼。

我的问题是

  1. 有哪些策略可以让“企业友好型”部署变得轻松无忧?

  2. 有没有办法我可以只使用 Intranet 中的数据库来公开网站(看不到如何......但我不是技术专家)

  3. 如果我别无选择,只能将其本地托管 - 那么将我的开发/支持开销保持在最低限度的最佳方法是什么?

我希望mods不要锁定这个。我要求针对一个非常现实的问题提供具体的方法和技术方法。

谢谢,

4

3 回答 3

1

对于#1,这个问题有很多方面。一些想法可能会帮助您思考:

  1. 部署您的应用程序:使您的应用程序版本之间的部署和升级变得简单。尝试将其作为单个操作进行,而不是手动手动升级不同的部分。正如 Darin Dimitrov 所提到的,您可以研究像 Web 部署包这样的技术,尤其是在 Visual Studio 2012 中,它将具有增量数据库发布(在 VS2010 中,数据库是非增量的,因此没有真正的“更新”故事)。降低部署成本,以便他们能够负担得起更频繁的升级(不是您的产品成本,而是为保持系统更新和运行而获得报酬的人的开销)。
  2. 考虑在 Internet 和 Intranet 上运行之间的差异:例如,Internet 上的身份验证通常使用基于表单的身份验证来完成。在 Intranet 上,您可能需要考虑支持 Windows 身份验证,以便为企业用户提供无缝登录体验。这应该会影响您的设计,以允许在您的部署之间进行模块化身份验证。
  3. 企业对新技术的采用可能比您想要的要慢:您使用的是最新最好的 (ASP.NET 4.5/MVC4)。有些公司现在或几年后可能还没有准备好部署它。考虑一下您是否可以使用较旧的、成熟的技术,例如 .NET 4 - 已经出现了几年,它已经得到了一定程度的证明并被采用。

对于您的第二个问题,这取决于他们的 IT 愿意提供什么。许多公司站点在安全的 LAN 中都有数据库,但可以从公共 Internet 访问 Web 服务器。这当然是一个很好理解的网络设计,但是根据您的应用程序中涉及的资产,您的客户可能会也可能不会同意它。这是一个商业决策。

对于#3,答案对于任何长期软件项目都是通用的。如果您想尽量减少麻烦,它必须是高质量和可维护的。

  • 如果您只支持最后的 N 个版本,请明确说明。避免支持您在过去很久就修复的代码。考虑提供额外的支持或负担得起的升级,以让您的客户使用更新的(希望是更好的)版本。
  • 请记住版本之间需要升级哪些组件。您的网络应用程序(显然),还有您的数据库架构以及您正在使用的任何依赖项或库。这与#1 的考虑基本相同。确保您有一个良好的升级回滚计划。
  • 最重要的是,测试,测试,测试。进行功能回归测试和安装/升级测试,并尝试尽可能多的可能性。
于 2012-07-22T07:50:07.280 回答
0

仅回答上述 1)。我会推荐一个持续集成工具。我们使用 TeamCity 并通过单击按钮将 mvc3 和 mvc4 应用程序部署到我们的公共和私有托管站点。之前我们使用巡航控制,但现在我们对 TeamCity 更加满意。阅读它们。可能会引导你走向正确的方向。

于 2012-07-21T19:58:39.730 回答
0

您可以查看 Visual Studio 的Web 部署包。它们允许您准备一个可以直接安装在您客户的 Web 服务器上的软件包。

于 2012-07-22T06:46:38.863 回答