我的程序架构有意义吗?AngularJS+;ASP.NET Web API+;SQL Server

我的程序架构有意义吗?AngularJS+;ASP.NET Web API+;SQL Server,asp.net,angularjs,sql-server,architecture,Asp.net,Angularjs,Sql Server,Architecture,我在创建我的程序体系结构的过程中迷失了一点,我想退一步看看我是否正确地实现了它 我想知道我的设置是否合理。我开始觉得不是 我正在创建intranet应用程序(我们正在创建Internet应用程序,但现在范围发生了变化)。我们使用现场Active Directory(Windows Server 2012 R2)。我们有一个SQL Server数据库 我一直在构建前端Angle应用程序和ASP.NET Web API来推拉数据。我现在正在用Auth0实现身份验证,这简直是一场噩梦 在这种情况下,您

我在创建我的程序体系结构的过程中迷失了一点,我想退一步看看我是否正确地实现了它

我想知道我的设置是否合理。我开始觉得不是

我正在创建intranet应用程序(我们正在创建Internet应用程序,但现在范围发生了变化)。我们使用现场Active Directory(Windows Server 2012 R2)。我们有一个SQL Server数据库

我一直在构建前端Angle应用程序和ASP.NET Web API来推拉数据。我现在正在用Auth0实现身份验证,这简直是一场噩梦

在这种情况下,您将设置什么样的程序体系结构


非常感谢。

SQL Server+Asp.Net Web Api+Angular JS构成了构建单页应用程序(SPA)的完美体系结构。此体系结构对于构建类似桌面的web应用程序非常有用,即在web上运行但工作方式类似桌面应用程序的应用程序


如果您能更具体地了解您所面临的问题,您将能够从so那里获得更好的建议。

此体系结构在许多场景(如SPA)中被广泛采用。有了它,您将能够保持前端与后端服务的高度解耦,能够在同一组服务上支持多个前端,并运行许多集成场景

这种方法的一些缺点是增加了应用程序的额外复杂性层(例如,这可能会迫使您编写更多的测试并处理不同的故障场景,否则就不会发生这些情况)和身份验证例程,因为您需要对两个异构环境进行身份验证(一个是.NET/IIS,另一个是JS/Angular)

至于身份验证的痛苦,基于令牌的身份验证方案似乎是当前的发展方向(比如Auth0),因为它们允许您保留和发送一个与环境无关的令牌,该令牌将由体系结构的不同层使用

从这个意义上讲,您的架构是有意义的

然而,由于您在实现过程中感到一些痛苦,您可能想问问自己是否真的需要所有这些。当您选择一个体系结构时,您这样做是为了实现一些特定的目标(多个前端?特定的性能要求?可维护性?可审核性?)而且,您在体系结构中尝试容纳的目标越多,就越复杂,以至于痛苦开始超过好处


那么,您首先想要实现什么呢?

构建intranet(强调内部)应用程序有意义吗?它与Active Directory集成得好吗?我认为ASP.NET web API适用于internet(强调e)@NickGrover您在Internet和Intranet上挂得太多了。除了Intranet不可公开访问之外,没有太大区别。适用于一方的技术也适用于另一方。无论是Intranet还是Internet,所有这些(HTML、JS、Asp.Net等)统称为“Web技术”。无论web技术所在的网络范围如何,它们的工作原理都是一样的。如果您想降低复杂性,可以选择只构建桌面应用程序,直接与数据库服务器对话,因为它在专用网络上运行。