前端应如何处理 Razor View 文件?

How front-enders should work with Razor View files?

我将与一个小团队开始一个新的 .Net MVC 项目。它有五个成员,两个后端开发人员和三个前端开发人员。

前端成员将分开工作,使用 gulp/grunt、less/saas、jade 和其他框架等工具构建该项目的 html 版本。他们更喜欢使用像 Sublime 这样的编辑器,并且会 运行 在许多不同的设备上实时进行界面测试。

他们无法使用 MVC 特别是 Razor 视图引擎,所以我们需要两个存储库,一个到前端,另一个到 back.The 后端开发人员在这个过程中永远需要捕获构建的 html 并在 Razor MVC 中使用它。

有什么改进这个过程的想法吗?我怎样才能减少后台开发人员和前台开发人员之间的技术差距?

IMO 你太努力了,无法容纳你的团队成员 skills/desires。如果您完全忽略 Razor/CSHTML,您将无法从客户端与服务器端获得良好的凝聚力。您的总体 architecture/design 应该排在第一位,并决定这些决定。当然,您会考虑您团队的技能,这样您就不会让 Java 个开发人员团队采用 C++。但是你基本上把 window 的 design/architecture 考虑到了极致,并说你将根据你的开发人员愿意使用的内容来划分应用程序。

抛开我的意见,你可以完成这项工作,但有点痛苦。

一方面,首先在真空中开发 HTML apges 而不考虑与服务器的交互要么会导致非常残缺的界面,更像是 90 年代的静态网站。在某些情况下,您可以构建一个没有 AJAX 请求的纯 javascript 单页应用程序,但这些情况非常罕见。

因此,您需要先构建服务器端,或者有一个模拟页面并讨论其工作方式的设计步骤。

1) 设计页面及其功能,以及它如何与服务器交互。 确定哪些交互是导航操作,例如单击 link 进行导航到另一个页面,而不是那些 AJAX 操作。不要实施稍后出现的 HTML。作为一个团队,审查每个开发人员模拟的内容,并确保他们已经彻底考虑了所有交互。

由此,列出该页面的控制器中需要哪些服务器端操作:

  • 同意 URL
  • 是吗GET/POST
  • 是吗AJAX
  • 无论是 return 页面、部分 HTML 片段还是 JSON。
  • 每个参数的名称和数据类型是什么

2) 您的后端开发人员创建控制器,根据商定的设计公开操作。 CSHTML 现在只是存根,return 什么都不是。

3) 您的前端开发人员创建 HTML/javascript 来使用这些。

他们将能够将 ajax 操作指向控制器,但他们需要模拟 return 编辑的内容,因为控制器不知道 HTML 他们应该做什么return还在。

4) 前端开发人员向后端开发人员提供 HTML 以合并到项目中,以便 actions/partial 视图 return HTML 或 HTML碎片.

问题是您将不断迭代前端开发人员,将 HTML 提供给后端开发人员以合并到 MVC 项目中,以便 return HTML 和/或AJAX 可以测试 return 部分 HTML 片段 (PartialView) 的操作。

这是一个非常不敏捷的过程。

您将无法利用 MVC 的许多框架,这些框架假设您使用的是 Razor views/HTML 助手。 compressing/bundling javascript/less/css 的许多与 MVC 很好集成的框架将不可行。你仍然可以做这些事情,但你的工作流程会不那么顺畅,并且会涉及更多自己一起破解它。

我想指出,几乎所有 javascript 框架在 CSHTML 中都运行良好。从客户端的角度来看,MVC/CSHTML 不会引入任何阻碍您构建交互性很强的页面的奇怪之处。您可以构建一个纯 HTML 和 javascript 的 CSHTML 页面,并对控制器进行 AJAX 调用,但是尝试将其带到 MVC 项目之外将会削弱开发工作流程。设计和实现交互式页面需要大量考虑服务器端的操作是如何实现的。