Azure上的ASP.NET MVC:合并还是分离web角色?
我正在开发一个ASP.NET MVC 5 web应用程序,该应用程序托管在Azure上,目前具有以下设置:Azure上的ASP.NET MVC:合并还是分离web角色?,asp.net,asp.net-mvc,angularjs,azure,Asp.net,Asp.net Mvc,Angularjs,Azure,我正在开发一个ASP.NET MVC 5 web应用程序,该应用程序托管在Azure上,目前具有以下设置: web角色1:用于UI的ASP.NET MVC项目:主要是一个带有AngularJS和bootstrap的单页应用程序 web角色2:ASP.NET MVC web Api项目:包含Api控制器,处理所有授权、数据访问(EntityFramework 6)、缓存等。Api控制器REST操作通过web角色1中的UI中的AngularJS称为异步 这些web角色组合在1 Azure云服务中
- web角色1:用于UI的ASP.NET MVC项目:主要是一个带有AngularJS和bootstrap的单页应用程序
- web角色2:ASP.NET MVC web Api项目:包含Api控制器,处理所有授权、数据访问(EntityFramework 6)、缓存等。Api控制器REST操作通过web角色1中的UI中的AngularJS称为异步
另一方面:我在玩ASP.NET5(vNext)和MVC6,它消除了“普通”MVC控制器和WebAPI控制器之间的差异。这也促使我将两个独立的项目合并为一个ASP.NET 5项目。Azure SDK/Visual Studio中不支持在Azure云服务中部署ASP.NET 5项目,但这可能只是时间问题。您对Web UI角色的具体关注是什么?如果它是一个单页应用程序,它将只为index.html文件和一些静态文件提供服务器(如果您将所有文件捆绑在一起,则这些文件非常少且相对较小)。如果您将其放在API角色中,则不会产生太大影响 另一方面,我使用不同的解决方案。我将所有SPA文件部署到blob存储。我只有一个API角色和一个索引操作方法,该方法进入blob存储,获取Index.html,在需要的地方注入blob存储基url(基本上是css、js和图像路径),并将其提供给客户端。因此,每次在浏览器中加载SPA时,web角色只处理一个非常轻的浏览器调用。其余的负载将被分配到blob存储中(无论如何,这并不多)
我希望这会有所帮助。为了保持简单,请将您的网站和api组合到同一个应用程序中。只要确保整个过程都能执行和扩展,这就意味着一个可以自动扩展的无状态体系结构。MVC页面可以在它们通常使用的所有路由中使用,然后将所有WebAPI控制器分组到“/api”下