2012-01-09 149 views
0

我们正在准备为学校创建一个以Web为中心的平台,并且我们计划在Azure中托管它。但是,公立学校有一定的限制,阻止他们公开访问互联网,这意味着基于Azure的系统将无法在那里工作。将Azure应用程序部署到Windows服务器

是否可以将相同的项目部署到本地服务器以及Azure云而不碎片化我们的代码库?

+0

很多很好的答案!最好的StackOverflow :) – 2012-01-10 01:23:22

回答

7

这取决于您在解决方案中使用的Azure的哪些方面。如果您有一个manilla ASP.NET应用程序,并且不使用Azure依赖性(如AppFabric或任何Azure SDK(如blob存储)),则可以将其部署到IIS的标准实例。

如果您使用的是Azure依赖关系,那么我会尽力在您的代码库中分离这些依赖关系,按照惯例来抽象任何依赖关系。然后,您可以基于配置更改切换到不使用它们,并且在部署到Windows时还原为本地或存根备份。这在运行CI /构建时也是一样的。

+0

这就是我想说的。如果Azure与您的应用程序高度集成,例如Table Storage是您的主要存储机制,而不是SQL Azure,则可能会很困难。但如果你只是将它撒在几个地方,不应该很难抽象出来。 – Craig 2012-01-09 05:55:26

3

这真的取决于你的应用程序在做什么。 Azure部署项目(.ccproj项目)和相关的.cspkg软件包不适用于Windows Server部署。

如果您的应用程序使用Windows Azure的特定功能(例如表存储),那么您将不得不以某种方式处理内部部署。如果您希望拥有一个同时在本地和Windows Azure上运行的代码库,则可以选择一种方法使用依赖注入方法,该方法可以注入基于目标部署的功能的正确实现。

1

我有一个客户端这个真实世界的场景。他们有客户想要继续使用他们自己的服务器上安装的产品。与此同时,他们有更新的客户希望将他们的应用程序作为服务租用,并使用现收现付模式。

这是否意味着两个代码库?否,但这意味着你必须愿意在发展抽象和控制倒置方面多走几公里。

一般而言,我会去这个问题,像这样:

  • 设计为Windows Azure,这意味着使用了在Windows Azure SDK的API。
  • 在真正的Windows Azure SDK和您的代码之间添加一个抽象层。
  • 为内部部署安装提供Windows Azure依赖关系的备用实现。

也...

  • 使用代码是已经有像Azure Contrib。这个OSS项目包含了这样一个抽象层的开始以及其他有希望的Windows Azure代码。

别忘了玩得开心! ;〜)

相关问题