.NET应用程序的部署与Java Web应用程序的部署相比如何?

Spi*_*ams 9 .net java deployment

我可能不得不在不久的将来支持.NET部署.我需要能够与正在开发此应用程序的人员进行交流,并能够评估他们是否对部署有一些最佳实践意识,或者,如果我怀疑他们的流程是愚蠢的,他们只是混乱.

这对我来说是一个问题,因为我是一名Java开发人员而且我不会说.NET.所以我不了解最佳实践应该是什么.

因此,为了将其置于我可以涉及的角度,我想知道部署Java和Java EE Web应用程序与部署.NET应用程序有什么相同和不同之处?

当我将相当基本的Java应用程序部署到Web时,我通常有一个自动化过程,从源代码控制获取代码,运行ANT或Maven脚本生成.war文件,将该文件放在webapps目录中,然后是Tomcat - 或其他一些应用程序服务器 - 膨胀.war文件并使其运行.

.NET中的等效过程会是什么?常用的工具有哪些?创建的工件与.war文件的目的相似?什么是常见的不良做法,但应该避免?

Mer*_*ham 10

大会在.net中是最高级别的"包装"它知道.它们大致相当于Java中的.jar文件.在程序集之上有一些系统(如Web Deploy包),但这些系统由更高级别的工具和插件使用 - 它们不是.Net的核心概念.

而不是Ant,我们有MsBuild.

Visual Studio解决方案是Visual Studio项目的组合,Visual Studio项目是MsBuild脚本.您可以使用Visual Studio或MsBuild构建其中任何一个.

汇编程序由编译器为您编译.您可以使用MsBuild脚本指定将哪些文件编译到程序集中,以及指定引用哪些其他程序集.

.Net程序集可以在同一目录中查看GAC(全局程序集缓存 - 这是系统范围的)程序集和程序集.没有像Java WAR那样加载的魔术库目录.

在.Net方面,IIS既是Web服务器又是应用程序服务器.

它有一个称为应用程序池的东西,它在特定用户下运行,并加载特定版本的.Net Framework.您可以在"站点"级别或"应用程序"级别应用这些.

在IIS中,您有"站点"(有时只是"默认网站"),并在该站点下创建"虚拟目录".然后,您可以"将其标记为应用程序".将虚拟目录绑定到实际文件系统目录,只需将要部署的文件放入该目录即可.

请参阅:了解IIS上的站点,应用程序和虚拟目录

IIS中没有像Java应用程序服务器那样的部署目录.您将页面和程序集直接放入其提供的目录中.

但是有一个网站的目录结构.您在Visual Studio中构建的项目已经设置为与该层次结构相匹配,因此您只需抓取整个项目文件夹并将其放入IIS中即可.

如果您想要做一些更自动化的事情,请查看Web部署.