我将与一个小团队一起开始一个新的.Net MVC项目。它有五个成员,两个后端开发人员和三个前端开发人员。
前端成员将单独工作,使用gulp / grunt,less / saas,jade和其他框架等工具构建此项目的html版本。他们更喜欢使用像Sublime这样的编辑器,并且会在许多不同的设备中实时运行接口测试。
他们无法使用MVC特别是Razor视图引擎,所以我们需要两个存储库,一个在前面,另一个在后面。该过程中的后端开发人员需要捕获构建的html并在Razor MVC中使用它
任何想法如何改进这个过程?如何减少后开发者和前端开发者之间的技术差距?
答案 0 :(得分:2)
国际海事组织你正在努力工作以适应团队成员的技能/愿望。如果您完全忽略Razor / CSHTML,则无法从服务器端获得客户端的良好凝聚力。您应该首先考虑整体架构/设计,然后决定这些决策。当然,您会考虑团队的技能,这样您就不会让Java开发人员团队采用C ++。但是你通过基本上不考虑设计/架构,并且说你将根据你的开发人员愿意使用的内容来划分应用程序,从而使这个问题变得极端。
我的意见不谈,你可以做到这一点,但有些痛苦。
首先,在没有考虑与服务器交互的情况下,首先在真空中开发HTML apges会导致非常残缺的界面,更像是90年代的静态网站。在某些情况下,您可以构建单页应用程序,它是纯JavaScript而没有AJAX请求,但这些情况非常罕见。
因此,您需要先构建服务器端,或者设计一个模拟页面的设计步骤并讨论它的工作方式。
1)设计页面及其功能,以及它与服务器的交互方式。确定哪些交互是导航操作,例如单击链接以导航到另一个页面,而不是AJAX操作。不要实现HTML,稍后会出现。作为一个团队,审查每个开发人员的工作,并确保他们彻底仔细考虑所有的互动。
从此列出控制器中该页面需要的服务器端操作:
2)您的后端开发人员创建控制器,根据商定的设计公开操作。 CSHTML现在将成为存根并且不返回任何内容。
3)您的前端开发人员创建HTML / javascript来使用这些。
他们将能够将ajax操作指向控制器,但他们需要模拟返回的内容,因为控制器不知道他们应该返回什么HTML。
4)前端开发人员为后端开发人员提供HTML以合并到项目中,以便操作/部分视图返回HTML或HTML片段。
问题是你将不断迭代前端开发人员,将HTML提供给后端开发人员以合并到MVC项目中,以便可以测试返回返回部分HTML片段(PartialView)的HTML和/或AJAX操作的操作。
这是一个非常敏捷的过程。
您将无法利用MVC的许多框架,假设您正在使用Razor视图/ HTML帮助程序。许多用于压缩/捆绑javascript / less / css并与MVC良好集成的框架都不可行。你仍然可以做这些事情,但你会有一个不那么顺利的工作流程,并且会让你自己更多地将它们混在一起。
我想指出几乎所有的javascript框架都在CSHTML中运行良好。从客户端的角度来看,MVC / CSHTML没有引入任何阻止您构建非常交互式页面的陌生感。您可以构建一个纯HTML和javascript的CSHTML页面,并对控制器进行AJAX调用,但尝试将其置于MVC项目之外将会削弱开发工作流程。设计和实现交互式页面需要考虑如何实现服务器端的操作。