很快我就开始研究我建立的网站的下一个版本了。基本上它是一种CRM。到处都有很多桌子,表格,CRUD。问题在于它几乎是一个重写原因,对即将推出的版本的功能提出了巨大的要求,我们需要让网站更具互动性,响应性和用户友好性。
目前它是ASP.NET MVC 4,其中包含一些用于ajax的jQuery。 MVC 4应用程序充当客户端和底层服务之间的粘合/代理,提供所有数据,因此WebApp与数据库没有直接通信。 MVC 4应用程序也是将业务对象转换为ViewModel的地方。我们对ViewModels使用DataAnnotations验证。
现在我正在寻找的是以某种方式整合像AngularJs这样的东西。我们的目标是向SPA靠拢,为客户端提供一些结构,因为在现有的jQuery代码之上构建更多功能只会产生sphagetti。然而,写一个完整的SPA并不是一个真正的选择,因为它需要太多的努力和时间,一如既往,并非无限制。
首先,目标是将Html表单管理移动到AngularJs。这意味着我需要一种方法来使用MVC模型渲染MVC局部视图,并让Angular接管控件。发布更改/更新视图应由Angular处理。
我一直在研究Angular + asp.net一段时间了,问题是我需要MVC模型,但Angular也需要一个'模型' ($范围)。我知道ng-init,但有些模型会非常复杂。所以这似乎不是一个好主意。
服务器端验证(带有大量自定义内容的DataAnotations)以及不引人注目的客户端验证对我们来说非常有效,所以我希望保留它并以某种方式使它与Angular一起使用。
我也研究过AngularJs / BreezeJs / MVC4,但是breeze mvc集成主要关注EntityFramework,它需要客户端的模型元数据才能保存,更新和缓存实体。如前所述,mvc app不直接访问数据库,也没有生成元数据的方法。手工书写不是一种选择。
我知道我试图制作某种混合型产品,并且在服务器端和客户端都会遇到很多问题,所以我正在寻找一种建议。< / p>
这可行吗? 也许我可以从MVC上的现有ViewModel生成Breeze js的元数据(breeze似乎可以在客户端使用dataanotations和验证工作,至少是最低限度)? 也许这是一个废话,我应该继续使用MVC应用程序,或者去全SPA,并且没有简单的方法将它们结合起来。