对于我的AngularJS Web应用程序,我使用Azure Service Fabric作为我的后端。为此我创建了一个无状态的web api服务。
我是否必须将前端/客户端AngularJS代码放在相同的应用程序类型或相同的无状态服务中?为web ui创建另一个无状态服务是否有用?
答案 0 :(得分:4)
正如其他人所提到的,您可以随心所欲地托管您的Angular Web应用程序;在这方面,Service Fabric没有施加任何限制。
也就是说,在您的情况下,一个简单的解决方案是让您的前端Web应用程序和您的Web api处于相同的无状态服务中。基本上,您将此视为常规的旧ASP.NET MVC应用程序,而ASP.NET MVC使得在同一MVC项目中拥有API和Web UI变得相当容易。以下是一些例子:
带有API和UI的ASP.NET 5 MVC应用程序:https://github.com/Azure-Samples/service-fabric-dotnet-getting-started/tree/master/Services/Chatter
单页jQuery应用程序,其中包含一个由Katana自托管的API:https://github.com/Azure-Samples/service-fabric-dotnet-management-party-cluster/tree/master/PartyCluster
关于为什么需要Service Fabric来托管前端文件的问题。这里有权衡取舍。假设前端是一个Web应用程序,它应该是一个更大的Service Fabric应用程序的一部分 - 就像你的情况一样 - 很高兴在一个地方使用一组工具在同一个SDK上使用相同的部署过程托管在同一个集群上,而不是为应用程序的一部分提供完全独立的流程,工具,SDK和托管环境。您还可以获得所有Service Fabric的优点,如滚动升级,运行状况监控,高可用性和自动故障转移等。缺点是您没有获得Azure附带的Web应用程序的超级易用工具。应用服务。