问题标签 [n-layer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
745 浏览

c# - C# 中的 N 层架构

我第一次尝试在我的项目中实现 N 层架构。

我创建了 BLL、DAL 和 GUI

这是在 GUI

这是在 BLL

这是在 DAL

因此,在 GUI 中,自然需要添加 DAL 作为参考,因为我从 DAL 中的 IDictionary 派生了 NewDictionary。但我想将 GUI 和 DAL 分开。

除了创建一个 IDictionary 对象,我该怎么做?我希望问题很清楚

0 投票
2 回答
310 浏览

unit-testing - 在 n 层架构中应该测试哪一层

我们在应用程序中使用 n 层架构。假设我们使用 3 层应用程序并使用 MVC 模式作为表示层,应该测试哪个层?如何在我的应用程序中找到可测试性点?

  1. 表示层?
  2. 业务层
  3. 数据层
  4. 他们都是?
0 投票
1 回答
4106 浏览

n-layer - N 层到六边形(端口和适配器)架构

Alistair Cockburn 引入了六边形架构,现在称为端口和适配器模式。在我的理解中,这个概念类似于 n 层架构,其中一层仅通过抽象(接口)依赖于另一层。例如,应用层依赖于许多存储库服务接口,而不是它的实现。这里不需要单独实现端口或适配器。像 Unity 这样的 IoC 容器可以注入存储库的实现,因此不需要适配器。

我是否将此端口和适配器模式与 DIP(依赖注入原则)混淆了?

有人可以指出端口和适配器模式的实现吗?谢谢。

0 投票
2 回答
722 浏览

web-services - 网络客户端调用服务器,服务器调用第 3 方,全部异步?

我有一个使用 n 层方法构建的网站。我遇到的问题是我需要客户端调用应用程序层,然后其他层之一将调用世界某处的另一个 Web 服务。另一个 Web 服务可能需要一些时间才能恢复,所以如果可能的话,我想使用异步请求执行以下操作: 异步请求的简单示意图

客户端是 HTML 和 JavaScript,服务器层是用 C# (.NET 4.5) 编写的,第 3 方 Web 服务只是我需要使用的 Web 服务

你会怎么写这个?任何帮助都感激不尽

0 投票
1 回答
1421 浏览

security - 我应该在哪里实现 n 层架构中的安全/授权?

我应该在哪里实现 n 层架构中的安全/授权?

我正在使用 N 层架构开发 ASP.Net MVC 应用程序。我应该将授权模块实现为不同的层还是服务?

一些业务规则也取决于用户角色,那么实现安全性的最佳方法是什么?

0 投票
1 回答
103 浏览

.net - N层.Net消息管理

我正在开发一个 N 层 Web 应用程序(UI/Service/DAL)。

在调用某个服务时,服务层内部有时会出现需要用户通知的事件。

我应该如何将这些消息从服务层传递到 UI 层?

请务必注意,这些消息不是错误,而只是某些事件的通知。

0 投票
0 回答
38 浏览

.net - .net 中的 N 层消息管理

我正在开发一个 .NET N 层 Web 应用程序。

我需要显示来自服务层调用中可能发生的事情的消息。

但是,此消息不会显示在当前视图中,而是在重定向后显示。我一直在四处寻找,我打算实现一个 cookie 临时数据提供程序(因为我试图避免会话状态)。

但是,从服务层使用 TEMPDATA cookie 提供程序似乎有点难闻。

是否有任何替代消息传递 SL 到 UI(重定向)?

0 投票
1 回答
1225 浏览

onion-architecture - DI与洋葱架构的分层架构?

任何人都可以使用依赖反转来解释洋葱架构和分层架构之间的区别吗?在我看来,它们完全一样。非常感谢任何输入:)

0 投票
2 回答
261 浏览

visual-studio - 依赖注入 - ASP.NET 的 Visual Studio 层结构

我一直在阅读关于 DI 的内容,据我所知,您的 VS 解决方案的结构应如下所示:

Web (UI) 项目参考:

  • 数据访问(*从头开始)
  • 商业逻辑
  • DTO

业务逻辑项目参考:

  • DTO

数据访问项目参考:

  • 网络(*又挠头)
  • 商业逻辑
  • DTO

此外,具体实现的接口应保存在业务逻辑项目中,DA 将在具体类中实现该项目。

“经典”的 3 层结构是:

网络参考

  • 商业逻辑

业务逻辑参考:

(使用 DTO 引用所有层)。

我试图用 DI 结构来理解的是,我很欣赏它似乎有助于分离每个模块以进行测试,而不是在类中调用具体类 - 但是通过在项目中设置引用的方式,感觉就像有与层的紧密耦合?UI 对 DA 和 BL 都有硬引用(因此必须实例化 BL 类和实现 BL 作为构造函数注入的一部分接受的接口的 DA 类)。

UI 现在同时引用了 BL 和 DA,感觉有点不对劲。如果我想说使用 SendMessage() 方法实现 IMessage(从 SMTP 服务器交换为 SMS 提供者),我仍然必须在 UI 中调用 DA 类并将其传递给 BL。感觉怪怪的?!

看起来 UI 通过调用 BL 逻辑类的实例来决定它想要的数据实现,该实例接受 Web 层中数据访问类的具体实现?

我只是想完全清除 VS 中经典的 n 层结构的头脑,并对在 UI 中处理它的方式持开放态度(UI 应该只担心 UI 对吗?)。我想我只需要通过一个简单的解释让那个灯泡熄灭。如果您能提供帮助,将不胜感激!

PS - 目前我正在阅读 Mark Seemann 的 .NET 中的依赖注入一书,所以我有点头疼!

0 投票
0 回答
97 浏览

c# - .ASP ViewModel 可以将 DTO 集合作为公共成员吗?

举个例子:

我有一个从我的业务实体映射的数据传输对象。

我有一个控制器,它调用业务逻辑handler类,返回List<MyDTO> result.

我可以List<MyDTO>在 my 中作为公共成员,ViewModel以便我可以加载List<MyDTO> result到 myViewModel中,然后foreach从 my 中使用等等View,并从 ViewModel 中的 List 获取数据以在 View 中显示它?

还是应该仅将 DTO 用于转移,而不是作为ViewModel公共成员?