【问题标题】:Application architecture suggestion required [closed]需要应用程序架构建议[关闭]
【发布时间】:2018-03-27 20:19:04
【问题描述】:

目前我们正在研究大规模的角度应用。根据我们的服务器和安全架构,我们有三台服务器假设 A |乙| C(客户)。现在A服务器有所有的数据库和所有的防火墙规则和一些特定的端口开放,外界不能直接访问服务器A,这意味着C(客户端)不能直接访问服务器A。我们必须通过服务器 B。然后服务器 B 向服务器 A 发出请求并将响应发送给 C。

如果以上内容对您有意义。

根据我们当前的架构,我们已将 WCF 服务添加到服务器 A 和 WebApi 到服务器 B,并通过服务契约作为接口和客户端工厂公开 WCF 服务。

现在我们通过 Angular 客户端(C 服务器)向服务器 B 发出 HTTP 请求,然后 B 在执行一些请求验证规则并为我们提供输出后将该请求转发到服务器 A。我只是想知道我们是否采用了正确的方法。拥有 WCF 服务似乎我们正在使用一些过时的方法。我们在后端完全依赖微软技术。

我们可以在这里尝试哪些其他选项。

问候

【问题讨论】:

    标签: asp.net angular architecture


    【解决方案1】:

    您的架构没问题,当您说 WCF 服务似乎已过时时您是对的。 我使用类似的架构,但我使用 NET CORE 2.0 api 提供的 RESTful 服务而不是 WCF 服务。

    对于我的项目,我从这个模板开始:QuickApp - ASP.NET Core/Angular5 Project Template

    此应用程序包括:

    • 使用 Angular5 和 TypeScript 的模板页面
    • 使用 ASP.NET Core MVC Web API 的 RESTful API 后端
    • 使用 Entity Framework Core 的数据库
    • 基于 OpenID Connect 的身份验证
    • 使用 Swagger 的 API 文档
    • 用于管理客户端库的 Angular CLI
    • 使用 Bootstrap 进行主题化

    此模板为 api(Net Core 控件类)和客户端(Angular 客户端应用程序)使用单个项目,但将它们分开会非常简单。

    在模板中,您可以将AutoMapper 用于对象-对象映射器。当您使用“ViewModel”类而不是模型类时,它在控制器中很有用。 ViewModel 是一个容器类型的类,它只代表您希望在网页上显示的数据。

    我还建议你使用Autofact 来管理依赖注入。

    【讨论】:

    • 你能分享一些例子吗?我可以在哪里阅读更多相关信息
    • @RaviMittal 我在答案中插入了对我开始时使用的模板的引用。这是一个很棒的项目
    【解决方案2】:

    听起来很像微服务架构中常见的 API-Gateway 模式。 看看这个页面:http://microservices.io/patterns/apigateway.html

    通常,这种网关的实现是轻量级和简单的,我同意 WCF 不是正确的选择。您最好构建一个简单的 ASP.NET Core REST 端点,将您的请求重定向到服务器 A。

    【讨论】:

      猜你喜欢
      • 2012-03-15
      • 1970-01-01
      • 2011-06-10
      • 2011-06-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      • 2014-11-01
      • 1970-01-01
      相关资源
      最近更新 更多