asp.net - 您如何在 ASP.NET 解决方案中调用物理上分离的 UI/BL 代码?

标签 asp.net asp.net-mvc windows architecture multi-tier

Chapter 19: Physical Tiers and Deployment MSDN 上描述了“分布式部署”(见图 2)。一切都很好。

根据我的经验,我们总是按照他们所描述的“非分布式部署”来部署基于 Web 的系统(图 1)。我的理解是,在 Microsoft 世界中,作为独立事物的“应用程序服务器”并不真正存在(就像在 Java 世界中一样),因为它实际上已“嵌入”到操作系统/Windows 中。

所以我的问题是,如果您要将 UI 和业务逻辑 (BL) 分布到不同的服务器/层上,它们将如何通信?

我知道一个答案是使用“服务层”——有哪些替代方案?你实际上会怎么做?从代码的角度来看它会是什么样子?

最佳答案

首先。不要这样做。只是不要。你正处在一个痛苦的世界里。逻辑层和物理层是不同的东西。应用程序层的逻辑分离是一个好主意。应用程序层的物理分离往往是灾难的根源。如果有一个很好的部署理由(在另一个盒子上共享支付处理器),当然,继续吧。您可以使用我们都知道和喜爱的标准机制 - WCF、MSMQ、HTTP ......选择你的毒药。但是,不要为了实现 MSDN 白皮书中的某些神话般的理想而承担开销和复杂性。

关于asp.net - 您如何在 ASP.NET 解决方案中调用物理上分离的 UI/BL 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4221302/

相关文章:

javascript - ASP.NET MVC 5 从 Javascript 错误调用 Controller 方法

windows - 执行批处理文件时出现 `The application failed to initialize properly`/3221225794 错误

java - 在 Windows 上安装 Spark 不起作用

c# - 创建通用存储库,用于使用 EFCore 从存储过程返回数据

c# - Entity Framework 查询无法使用 asp.net

c# - 应用程序启动时 bundle 中的异常

asp.net-mvc - ASP.NET MVC 中的 Page.EnableSessionState 等效项

python 在没有堆栈跟踪的情况下死于 Windows

asp.net - 获取 asp.net 上的根域

c# - ASP.NET MVC 5 Bootstrap Accordion 无法正常工作