策略需要提供本地(内部网)主办的ASP.NET MVC网站

问题描述:

平台:ASP.NET 4.5,MVC 4,C#策略需要提供本地(内部网)主办的ASP.NET MVC网站

我目前正在设计一个网站,其提供的公共领域。然而,我的目标市场有一个有意义的百分比,将一些信息放在公共网站上会很不舒服,即使它是https等。

我希望能够做的事情是让企业用户使用我的网站,一种方法是让他们在我的内部网上托管我的网站。当然,通常的缺点是,他们的网站更新速度不如公众所期望的那么快,而且在支持方面也是令我头痛的。

我的问题是

  1. 什么是一些战略,使“企业友好”部署容易和轻松的?

  2. 是否有办法,我可以保持网站的公众只是内部网的数据库(不知道怎样......但后来我不是技术 - 百事通)

  3. 如果我有别无选择,只能在本地托管 - 那么最好的办法是将我的开发/支持开销保持在最低水平?

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

谢谢

对于#1,这个问题有很多方面。一对夫妇的想法,可以帮助你想出来的:

  1. 部署您的应用程序:使简单的部署和升级,应用程序的版本之间。尝试将其作为单个操作进行,而不是手动升级不同的部件。正如Darin Dimitrov所提到的,你可以研究像Web部署包这样的技术,尤其是在Visual Studio 2012中,它将进行增量数据库发布(在VS2010中,数据库是非增量式的,所以没有真正的“更新”故事)。降低部署成本,以便他们能够更频繁地升级(不是产品的成本,而是为了保持系统更新和运行而付出的代价)。
  2. 考虑在Internet和Intranet上运行的差异:例如,Internet上的身份验证通常使用基于表单的身份验证完成。在Intranet上,您可能需要考虑支持Windows身份验证,以获得企业用户的无缝登录体验。这应该会影响您的设计,以便在部署之间进行身份验证。
  3. 企业采用的新技术可能比您想要的要慢:您正在使用最新最好的(ASP.NET 4.5/MVC4)。一些公司可能不准备现在或者几年来部署这些服务。考虑一下,如果您可以使用.NET 4之类的较早的已建立技术 - 已经出现了几年,它已经有所证明并且已被采纳。

对于你的第二个问题,它归结为他们的IT愿意容纳的东西。许多企业网站都在安全局域网内部存在数据库,但可以从公共互联网访问网络服务器。这当然是一个很好理解的网络设计,但根据应用程序中涉及的资产,您的客户可能会或可能不会同意它。这是一个商业决定。

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

  • 如果您只打算支持最新的N个版本,请说清楚。避免支持过去已经修复很久的代码。考虑提供额外的支持或负担得起的升级,以保持您的客户更新(并希望更好)的版本。
  • 请记住哪些组件需要在版本之间进行升级。您的Web应用程序(显然),还包括您的数据库架构以及您正在使用的任何依赖项或库。这与#1基本相同。确保你有一个很好的升级计划回滚。
  • 最重要的是,测试,测试,测试。进行功能性回归测试并安装/升级测试,并尝试尽可能多的可能性。

答案只有1)以上。 我会推荐一个持续集成工具。我们使用TeamCity,并通过单击按钮将mvc3和mvc4应用程序部署到我们的公众以及私人托管网站。以前,我们使用巡航控制,但现在我们对TeamCity更满意。阅读它们。可能会带领你走向正确的方向。

+0

Vishal,您如何确保企业(Intranet托管)站点从您的持续集成中受益?这是不是意味着你有权访问他们的网络 - 这在大多数情况下不太可能......因此你如何“升级”他们的网站? – jeremy 2012-07-21 20:03:04

+0

我很抱歉,这听起来更像是一个安全问题,而不是关于部署。那时我的建议可能无济于事。但是,让我感到困惑的是,在没有访问他们的网络的情况下升级某个人的网站意味着什么。这没有意义。你如何管理任何网站而不以某种方式获得他们的东西? – dreamerkumar 2012-07-22 04:55:10

您可以结算Visual Studio's Web Deployment Packages。它们允许您准备一个可直接安装在客户端Web服务器上的软件包。