问题标签 [layered]
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.
asp.net-mvc - 为什么我们应该将模型引用单独添加到 MVC 前端,而不是从服务引用中使用它?
在我从事的较旧的 Web 项目中,我们曾经在 DAL 中创建模型,在业务逻辑层中添加 DAL 的引用(并重用来自 DAL 的模型,因为它们可以通过 DAL 的引用获得),在服务中添加 BL 的引用(再次重用模型)。实体在所有连续层中都是可传递的。
在具有多个层的 MVC 项目中,模型通常被添加到单独的类库项目中,并在 DAL、业务逻辑、服务、前端等所有层中引用;即使它们是可传递的。
这样做有什么具体原因吗?为什么我们不应该像下面这样在前端绑定通过服务可用的模型
代替
在所有层中分别引用模型与从另一个/上一层的引用中使用它相比有什么优势?
windows - 调整分层窗口的大小
我希望我可以在不发布大量源代码的情况下清楚地传达我遇到的问题。来源都是 ASM,虽然大多数人会理解它,但它仍然不是他们的主要“东西”。
我有一个运行良好的分层窗口——直到调整它的大小。窗口都是每个像素的 alpha。没有透明像素。边框和标题是不透明的(255 alpha);客户区类似于 128 alpha 或任何我放的东西。所以没有透明像素。
我有一个处理重绘的函数——它实际上是为了重建框架以适应新的窗口大小。GetWindowDC 在分层窗口上调用。CreateCompatibleDC 从该 DC 创建。位图是一个 DIB 部分。位图已正确发送到 UpdateLayeredWindow。同样,只要窗口未处于活动调整大小(边框拖动)状态,一切都会完美运行。
我曾尝试使用 DefWindowProc 来处理边框拖动,以及自己完全处理该功能的所有方面。结果是相同的:大量闪烁,但仅超出边框拖动开始之前存在的窗口边界,然后窗口大小最终不会改变 - 有点。原始窗口区域仍然显示没有问题。那里没有闪烁。但是,如果(例如)我将右边框向右拖动,则原始窗口右边缘的所有内容都会快速闪烁然后消失。当我释放鼠标左键时,显示保持在原始大小(拖动边框之前窗口的大小)。我已验证位图已正确重建为新大小。似乎分层窗口的 DC 没有
我什至尝试在手动处理中调整窗口大小之前删除 ws_ex_layered 样式(我尝试过 MoveWindow 和 SetWindowPos),然后在 SetWindowPos / MoveWindow 之后但在拖动之前重置 ex 样式。
当我让 DefWindowProc 处理更新时,我得到了完全相同的结果。所以有迹象表明我的重绘出了点问题。但我什至削减了这个过程(注释掉大量代码进行测试),只是用 0xFF0000FF(任意测试值,蓝色,完全不透明度)填充位图,然后直接跳到 UpdateLayeredWindow。结果相同。
用于 UpdateLayeredWindow 的位图在调用“重建”函数之前被删除,并且在该位图被重新创建为新大小的函数内。我已经广泛验证了新的尺寸——我可以看到新的位图高速闪烁,一切都很好。DC 是来自分层窗口的 GetWindowDC。兼容的 DC 创建该 DC。位图被选择到兼容的 DC 中,并且该兼容的 DC 被传递给 UpdateLayeredWindow。如果这些东西中的任何一个被关闭,我将永远不会看到显示的新位图。它就在那里 - 它只是在调整大小开始之前存在的窗口边界之外高速闪烁。DefWindowProc 产生相同的结果。在该原始区域内,当我将右边框向右拖动时,我的标题按钮向右滑动,进一步验证一切正常。
我不知所措。欢迎任何意见。
c# - 分层应用程序中的授权
我正在研究一个非常简单的项目,该项目主要由 getter 和搜索组成,并且对某些数据的访问受到限制,具体取决于用户。在这种情况下,我想利用这个机会在安全性和授权方面做一些最佳实践。
应用程序被激活一次,此时生成令牌并用于将来的请求。
我的应用程序有一个用于端点的 web api,它位于一组服务的顶部,这些服务位于一组位于 sql server db 顶部的 repo 之上。控制器所做的只是将请求转发到服务层。
这是一个示例控制器:
我的自定义授权属性检查令牌,如果有效,则从令牌中提取用户详细信息并创建一个通用原则,然后在我的控制器中可用。
对我来说,web api 只是一种暴露我的业务\服务层的方式,授权应该在我的服务层中进行,但我想不出一种干净的方法来将信息传递到该层。在上面的示例中,服务层需要检查用户(来自令牌)是否有权访问该特定分支,这意味着服务层需要知道谁在发出请求。我能想到的两个解决方案是:
1)我正在为我的服务层使用请求\响应模式,因此我可以创建一个名为“请求”的抽象基类作为示例,它可以存储所有用户详细信息,并且服务层的每个请求对象都可以从该类继承,因此提供用户详细信息到我的服务层。
2)定义一个接口,例如ISecurity,然后将其注入我的服务层,但这需要我的服务层之上的层来实现接口。
我在这里读到 -将授权放入服务层而不是 Web API 层 - 以创建授权层,但我不确定它的技术实现。
有任何想法吗?
c# - 在解决方案资源管理器下的 Visual Studio 解决方案中创建的文件夹未出现在源代码管理资源管理器中
我将 MVC 解决方案转换为分层架构。为此,我在解决方案资源管理器的解决方案中添加了文件夹。一切正常,我的同事能够采用最新的解决方案,并且文件夹出现在解决方案资源管理器中。
问题是我无法在 TFS 中看到文件夹结构(在源代码管理资源管理器中。)
可能我应该直接在 TFS 中创建文件夹结构。但是现在我在创建文件夹后签入了很多更改,所以我认为这个选项不起作用。
请指教。
filter - Magento2 - Magento2 迁移 (2.2) 后类别过滤器不适用于 Amasty 分层导航
Magento2 迁移 (2.2) 后,类别过滤器无法与 Amasty 分层导航一起使用。除类别外,其他属性过滤器工作正常。
architecture - 域模型:由多个不同数据集组成的客户端实体
我正在构建一个围绕项目和客户的应用程序。所以我决定将项目和客户创建为独立的实体。他们每个人在基础设施层都有自己的存储库。
客户可以添加客户数据,例如地址、公司名称、状态。这些存储在各种不同的表中,并保存一个客户端 ID 作为参考。但它们本质上可以被视为用户配置文件的扩展。
我需要以某种方式收集这些数据集以在前端屏幕中显示它们。
首先,我很困惑客户是否是一个实体,它的数据集是“别的东西”。但是阅读聚合,我觉得这可能是要走的路。
由于我对聚合的概念不是很熟悉,而且我在 Google 上找到的大多数信息往往比实用主义更具哲学性,我想知道:
客户端实体应该是聚合根吗?如果是这样,是否会使用每个数据集的实体从各种来源将其组装到存储库(基础设施层)中?然后像“客户地址”这样的东西将是它自己的实体。由于每个客户都有 20 到 30 个不同的数据集,因此我需要相应数量的实体。这有任何意义吗?
到目前为止,我一直在使用的替代方法是某种服务/帮助函数,它使用它们的 ID 查询数据集并返回它们的值以在模板中显示。但是,这个数据既不是实体,也没有以任何方式与客户端实体关联,这感觉不对。
r - 调整分层 R 数据框,以便变量的值在行中匹配(基于组和日期)
我想研究 A 组关于我称为 的某些因变量对 B 的影响"target_n"
。由于生成数据的方式,我的数据集中有按组排序的信息“层”。这意味着,在Group=="B"
我有关于 B 的值的信息的行中,"target_n"
对于在 的行中Group=="A"
,我有关于 A 的值的信息"X_n"
。组“C”基本上是一个“其他”类别,但我需要将它们与 A 和 B 放在同一行,以确保 A 的影响是对 B 而不是对 C。以下应该增加一些清晰度:
我的数据 ( df
) 的结构如下:
我想要的是为 group和 group计算新变量,以便所有内容都在同一行中。如果我要手动执行此操作,我将在日期“1990-03”获取 A 的列“X_1”得分,并将其分配给同一日期 B 在 A 列中的位置。"A"
"C"
所以最后,我的数据看起来像这样:
(我有许多这样"X_"
的 s 和完全相同数量的"target_"
变量。我也不仅有这组 A、B 和 C,还有 A1、A2、A3、C1、C2、C3 甚至更多的 B。对于每个一组 A1,B1,C1 我也有一组与另一个“组”不匹配的日期。但这不是问题,因为我可以简单地将我的数据集水平分割成组,为所有将它们分开并再次合并。)
但是,我如何将 A 和 C 的值带入 B 的基于Group=="B"
和基于的行中date
?
android - 如何将视差布局设置为随设备加速移动的分层动态壁纸?
我想将视差布局设置为我的动态壁纸。在这里,我提到了上面的代码,用于为视差布局设置多个图像层及其完全在活动中工作,但现在如何将其设置为动态壁纸。