我不想征求辩论。问题是,“我可以使用ASP.NET Core 2 MVC + EF Core 2与Angular 5获得相同的结果,如果Angular 5可以实现,那么(高级别)如何?”
我对Angular 5了解不多,几个月前我才开始在ASP.NET Core中设计非常小的Web应用程序。
我的申请涉及:
- 关系数据库(约50个表,包括所有类型的关系),以及另一个专有数据库,并在两者上执行CRUD语句。
- 用户必须通过登录进行身份验证,并在应用程序中维护此身份验证。不同的登录权限会在应用程序中导致不同的行为
- 视图中涉及多个模型的数据(需要视图模型)
- 用户需要能够动态地向App添加控件,以便在一次操作中提交多个数据集(通过JavaScript)
- 在一个视图中,用户需要能够发回数据并从数据库接收响应,而无需刷新网页。基本上,他们在这个视图中的所有工作都可以在不重新加载网页的情况下完成(AJAX?)
- 至少在桌面上的用户需要在他们正在查看的数据发生变化时(通过其他用户)从服务器接收更新(我相信AJAX)。
- 应用程序应该在桌面浏览器上以一种方式工作,而在移动浏览器显示器上以另一种方式工作(Bootstrap?)。
也许我对Angular 5背后的炒作感到厌倦,因为它承诺实现“丰富,流动的客户端Web应用程序”。使用ASP.NET创建一个不错的客户端体验只是更多的工作吗?
答案 0 :(得分:6)
我不会说这是" ASP.NET Core 2 MVC + EF Core 2 vs Angular 5"的问题。你的方法将是:
这两种情况都需要ASP.NET Core和EF Core。在第一种情况下,您将使用ASP.NET Core和MVC包,并使用Razor在服务器上生成和呈现您的标记并将其发送到客户端。在第二种情况下,您不需要MVC,但是您需要其他软件包来支持ASP.NET Core上的REST Web API,以便为您的客户端Angular应用程序提供数据。
这些天的转变肯定是在服务器端使用带有API / s的客户端(Angular / React / Vue)上的静态SPA。尽管在搜索引擎优化,额外的复杂性,实现它的内部技能等方面,您还需要注意一些警告。
因此,如果您愿意接受学习曲线并采用更现代的方法,您可以在后端尝试使用带有API的Angular,但说实话,使用传统的MVC和洒水可能更容易一些带有AJAX的Vue.js在前端驱动一些动态UI(动态表单和数据更新)。
按顺序解决您的观点:
fetch
(对旧浏览器使用polyfill)总而言之,任何一种方法都可行,只需要先考虑一下每个方面的优缺点,更重要的是你或你的团队必须将其拉下来的时间表/技能。如果您搜索" ASP.NET MVC vs SPA"那么网上有大量信息。