当前位置: 首页 > 面试题库 >

在Linux上部署ASP.NET MVC:最佳实践,工具和惊喜

易奇希
2023-03-14
问题内容

我想知道开发ASP.NET MVC应用程序以及可以在Linux上部署的选项的最佳实践。如果您要创建这类MVC应用,

  • 您针对的是哪种Linux / Mono平台?
  • 您在Windows上进行多少开发,在Linux上进行多少开发?
  • 您是否正在使用ORM提取数据库?哪一个?
  • 您是否在Linux上运行构建引擎?那测试呢?
  • 您还使用其他哪些工具?
  • 除了Windows之外,针对Linux还做了多少工作?
  • 您遇到了哪些丑陋或令人愉快的惊喜?

问题答案:

我工作的公司将Linux上的Mono作为我们的主要部署环境。因此,没有“额外的”工作-
我们提供从硬件到操作系统(html" target="_blank">自定义和调整)到应用程序的整个堆栈。使用开源可以为我们和我们的客户节省大量资金(是的,我们确实为我们依赖的OS项目做出了贡献)。

重要的是要不断使用您的实际目标进行测试(对不起,Windows上的Mono不计算在内)。当然,开发人员使用Visual
Studio,但是在Windows和Linux上都完成了持续集成(使用CruiseControl.Net,您需要在Mono
2.4.2上运行它才能在Linux上运行),并测试我们希望使用的所有Mono版本。在最近变得更加稳定,但仍然会在版本之间进行回归。运行并行的Mono版本非常容易在一个*
nix系统上,如果您更喜欢早点捕获上游回归,甚至可以包括svn快照构建。如果您不发布自己的发行版,请记住大多数Linux供应商都在Mono附带自定义补丁程序-
这以前给我们造成了麻烦。此外,许多发行版在更新Mono方面存在很多滞后,这是一个快速发展的项目。

对于数据库层,我们主要使用“普通”的ADO.NET-
Oracle(带有适用于Oracle的dotConnect,它们支持Mono)和SQLite(Mono附带有效的连接器)。我还使用了用于MySQL(连接器/
NET)的官方ADO.NET驱动程序,它也运行良好。ORM映射比较棘手,但是NHibernate可用(请记住,它们
正式支持Mono)。

至于构建引擎和测试-NAnt和NUnit是众所周知的,并且已经过测试。在最新版本的Mono
xbuild(MSBuild的克隆)中,实际上可以使用,但是如果您决定将其用于更复杂的场景,请做好准备贡献很多补丁的准备。

编写测试。其中很多。准备贡献补丁和错误报告,如果您使用商业组件,请确保供应商正式支持Mono。



 类似资料:
  • 我是网页开发的初学者。我用的是Vert.x框架。我在aws上获得了服务器的app.jar文件。每次我用这个命令运行它时: 但我不确定,这是正确的方法(我认为这是非专业的)。谁能说,什么是最佳实践?我听说,大多数应用程序都部署在Web应用程序容器上,例如雄猫,JBoss,Jetty等。请告诉我正确的方式。

  • 我正在构建一个全栈 Web 应用程序。我正在使用 Vue.js作为前端,Spring启动用于后端,将 PostgreSQL docker 容器用于数据库。但是,我很好奇,一旦我完成了Web应用程序的开发,我应该在哪里以及如何部署它。 我在下面列出了我的问题: < li >我应该在哪里部署我的全栈应用程序,如AWS、GCP、Hiroku或任何其他平台。 < li >部署我的前端、后端和数据库的最佳实

  • 这里有些给使用和编写 Ansible playbook 的贴士. 你能在我们的 ansible-example repository.找到展示这些最佳实践的 playbook 样例.(注意: 这些示例用的也许不是最新版的中所有特性,但它们仍旧是极佳的参考.) Topics 最佳实践 接下来的章节将向你展示一种组织 playbook 内容方式. 你对 Ansible 的使用应该符合你的需求而不是我们

  • 处理后台任务与常规调用方法有很大的不同。本指南旨在帮助让您的后台任务平稳有效地运行。本文基于 这篇博客文章。 使任务参数小而简单 方法(任务)在调用之前会被序列化。使用 TypeConverter 类将参数转换为 JSON 字符串。如果您有复杂的实体和 / 或大对象; 包括数组,最好将它们放入数据库,然后只将其标识 (id) 传递给后台任务。 错误例子: public void Method(En

  • VR设计 VR设计不同于平面体验设计。作为一种新的媒介,有新的最佳实践需要遵循,特别是保持用户的舒适性和存在性。这在如下指南中已经写得很透彻了: Oculus VR最佳实践 Leap Motion VR最佳实践指南 一些值得注意的事情: 公共的金科玉律是永远不要意外地把相机控制权从用户手中剥夺。 单位(比如对于位置)应该考虑使用米(m)。这是因为WebVR API以米为单位返回姿势数据,进而传送给

  • 本章文档将阐述一些使用herosphp开发一些常用模块的一些比较好的实践。 未完待续。。。