【问题标题】:How does deployment of .NET applications compare to deployment of Java web applications?.NET 应用程序的部署与 Java Web 应用程序的部署相比如何?
【发布时间】:2012-01-20 16:50:50
【问题描述】:

在不久的将来,我可能必须支持 .NET 部署。我需要能够与正在开发这个应用程序的人交谈,并且能够评估他们是否对部署的最佳实践有一定的了解,或者我怀疑他们的流程是否很笨拙,他们只是在应付。

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

所以,从我可以理解的角度来看,我想知道部署 Java 和 Java EE Web 应用程序与部署 .NET 应用程序的相同点和不同点是什么?

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

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

【问题讨论】:

标签: java .net deployment


【解决方案1】:

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

我们有MsBuild,而不是Ant

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

程序集由the compiler 为您编译。您可以使用 MsBuild 脚本来指定将哪些文件编译到程序集中,并指定引用哪些其他程序集。

.Net 程序集可以查看 GAC 中的程序集(Global Assembly Cache - 这是系统范围的)和同一目录中的程序集。没有像 a Java WAR 那样加载的魔法库目录。

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

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

在 IIS 中,您有“站点”(有时只是“默认网站”),并且您在该站点下创建了一个“虚拟目录”。然后您可以“将其标记为应用程序”。您将虚拟目录绑定到真实的文件系统目录,您可以简单地将要部署的文件拖放到该目录中。

见:Understanding Sites, Applications, and Virtual Directories on IIS

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

但是网站有一个目录结构。您在 Visual Studio 中构建的项目已经设置为匹配该层次结构,因此您可以简单地获取整个项目文件夹并将其放入 IIS。

如果您想做一些更自动化的事情,请查看Web Deploy

【讨论】:

    【解决方案2】:

    一个词的IIS。至于我开发的应用程序,无论是服务还是网站,我都通过 IIS 部署它们。

    与您所说的相同。 Visual Studio 输出构建您的 Web 应用程序/网站,您可以通过 IIS 将其部署到 Web 服务器,并且它是完全可配置的。

    所有步骤和前驱都可以找到here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 2013-11-16
      • 1970-01-01
      • 2018-01-23
      相关资源
      最近更新 更多