问题标签 [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.

0 投票
5 回答
1430 浏览

architecture - 构建项目的最佳方式是什么?

我想知道我应该如何构建我的项目。

我们有一些项目在其他项目中(重新)使用。

我的意思是,我们的数据项目和模型项目用于一对多的其他项目。

我真正知道的是如何构建这种类型的项目,最好的命名方式是什么?

在标准的 3 层应用程序中,应该类似于:

  1. DAL、DataAccessLayer、数据...
  2. 模型、业务对象、BOL ...
  3. 用户界面,视图,...

还有其他想法吗?

在我工作的每家公司,他们都有不同的组织方式,有没有比另一个更好的?您使用哪一种,您更喜欢哪一种,为什么?

谢谢!

0 投票
3 回答
3349 浏览

windows - 使用分层窗口创建平滑的窗口边框

我们正在开发一个皮肤应用程序,在它的大部分窗口上都有各种圆边。我正在使用窗口区域来定义非矩形形状,但几乎每个人都反对由此导致的锯齿状混叠,因为像素只能是完全不透明或完全透明的。

我想出了一个使用分层窗口的解决方案,但我们希望确保它可以在各种系统上运行(并希望运行良好),我想看看是否有人有更好的想法或方法优化我正在做的事情。我知道分层窗口需要win2000或更高版本,这很好,因为这已经是其他原因的要求。从一些基本测试来看,它在 Vista 上看起来没问题,但这还不能保证。

这就是我所做的:我有一个窗口,称之为 A,带有控件和文本以及包含该窗口的任何内容。我将窗口 B 作为窗口 A 的子窗口,但它具有 WS_POPUP 样式而不是 WS_CHILD,因此它可以将自身定位在 A 的区域之外并绘制在 A 的控件之上。窗口 B 也有 WS_EX_LAYERED 样式,在初始化时,我调用带有 ULW_ALPHA 标志的UpdateLayeredWindow和带有 32 位位图和 alpha 通道的源 DC,以使其使用每个像素的 alpha 进行绘制。

用于窗口 B 的源 DC 中的位图几乎只是窗口边框周围的像素,我希望将其从窗口的背景平滑地混合为完全透明的像素。我会跳过整个两个窗口的方法,只使用一个分层窗口,除了当你使用 UpdateLayeredWindow 时,它是从保存在内存中的缓冲区中绘制的,而不是典型的 WM_PAINT 消息和所有这些,并试图得到交互式子控件(和子窗口)可以很好地工作,这听起来很麻烦(甚至可能不适用于所有事情)。

所以,它基本上是带有所有子控件的窗口 A 和其他任何东西,窗口 B 直接浮动在它上面,绘制了一个漂亮的平滑边框。我通过移动窗口 B 来响应 WM_MOVE 消息等,并且我禁用了窗口 B,因此它永远无法获得焦点或输入(点击已经通过,因为它的部分不透明度为零,例如大多数它的内部零件,已经被排除在采摘之外)。

对于踢球,这就是这些碎片的样子,以更好地展示我的意思。

所以,它有效,但我不能确定它真的是最好的方法。我有两个问题:

  • 这听起来可以接受吗,还是有什么可怕的地方?
  • 由于它目前的工作原理,它似乎正在使用一个窗口大小的屏幕外缓冲区(最高可达 1024x768),即使它的极少数像素具有任何非零不透明度数据 - 是否值得开销以及将其切割成单独的边界块并将它们组合在一起的额外复杂性?
0 投票
3 回答
702 浏览

architecture - 分层架构中同一层的模块

理论上,在分层架构中,您可以在同一层上拥有多个模块。这个模块可以相互交叉引用吗?在技​​术上是可能的,例如。使用.NET?

0 投票
4 回答
1511 浏览

architecture - 在 ntier 应用程序中传递数据

如何将数据传递到 n 层应用程序中的层?我已经制定了 3 种不同的方法。

A) 通用 .net 对象通用数据表、哈希表、通用数据集、字符串、整数等......然后使用数据集填充发送到 UI 层的业务对象。

替代文字 http://img11.imageshack.us/img11/460/generic.png

http://dabbleboard.com/draw?b=eiu165&i=26&c=54eef6f1ac01f03c85919518f4a24e798e57e133

Pro-不需要额外的层 Con-必须使用业务层中的通用数据集和表

B) 使用其他层将引用的实体层。该层将包含强类型数据集或普通旧 C 对象。这些对象将主要是容器数据和很少的逻辑。这些将是发送到 UI 层的相同对象。

替代文字 http://img8.imageshack.us/img8/6454/entities.png

http://dabbleboard.com/draw?b=eiu165&i=6&c=d0c2b346894a96b12bd3867f630e474a2af098fa

Pro-在所有层中使用相同的类 将对 entity.dll的引用添加到所有层

C) 使用数据访问层中定义的数据传输对象(仅限容器对象)。然后使用这些对象填充发送到 UI 层的业务对象。

替代文字 http://img43.imageshack.us/img43/1236/transferp.png

http://dabbleboard.com/draw?b=eiu165&i=27&c=f886efa3f9d5eb4b45ddb02361c79cdcdaec0a9b

Pro-业务层不必使用通用类 -使用两种类型的对象,您必须将业务对象与传输对象结合起来

我们在工作中进行了讨论,想看看社区的想法。我还添加了一个指向 dabbleboard 的链接。请复制和创建而不是编辑。
谢谢

0 投票
3 回答
18954 浏览

layered - N 层与 N 层架构/设计

N-Tiered 和 N-Layered 架构/设计是什么意思?

N-Tiered 和 N-Layered 架构/设计之间有什么区别吗?

如果是,有什么区别?

0 投票
2 回答
518 浏览

c# - 无法从 DA 层获取数据。该怎么办?

在将我的 C# 应用程序分层时,我通过以下方式解决了层之间的循环依赖问题:

替代文字

请查看 DA 层中的 MyClassDA 类和程序集本身。

当数据访问层不知道 MyClass 类型时,MyDA.Get() 方法如何返回 MyClass 类型的对象。

如果这种设计效率不高,我该如何更改/修改它?

0 投票
2 回答
1280 浏览

windows - 如何让透明的窗口对话框和绘图原语保持在绘制流视频的窗口顶部?

我有一个 activeX 控件,其中包含一个窗口,该窗口具有正在绘制的流式视频。我有一个单独的对话框,我在另一个窗口中创建了一个单独的对话框,我以各种方式将其设置为透明或半透明(即使用 SetLayeredWindowAttributes(...) 以及对话框的 Layered 属性 [用于 alpha 混合] 或设置透明财产)。

此外,我尝试使用各种方法来尝试让对话框的窗口始终绘制在流视频窗口的顶部,但没有一种方法对我有用。如果我在对话框上有一个按钮或使用 LineTo(...) 调用在透明表面上绘图,它们不会保留在视频顶部。我尝试使用 SetWindowPos 来影响两个窗口的 z 顺序,并尝试更改对话框窗口属性,例如“TopMost”,但无济于事。

有没有人试图为流视频上的覆盖窗口做这样的事情,并让 z 顺序在流视频之后始终绘制前窗口?

更新:02/10/10 - 尝试使用 WS_EX_LAYERED 属性和 SetLayeredWindowAttributes(...) 使用 LWA_COLORKEY 并实现了我想要的。由于分层属性不能与 WS_CHILD 样式一起使用,因此该解决方案带来了一些必要的覆盖窗口位置管理,该位置相对于带有视频的窗口。此外,我还试图消除其他一些奇怪的东西。例如,当带有视频的 activeX 控件窗口嵌入到 IE 选项卡中并且我切换到另一个选项卡时,覆盖窗口上的控件仍保留在新选项卡的顶部(使用 WS_POPUP 样式时)。仍在研究是否会有其他方法来处理这个问题,然后确定开关和隐藏窗口可见性。

0 投票
1 回答
648 浏览

windows - 使用浏览器窗口容器中的 ActiveX 控件,我如何检测用户何时将选项卡从 Activex 控件更改

我有一个放置在 IE 浏览器容器中的 ActiveX 控件。控件创建另一个启用了 WS_POPUP 和 WS_LAYERED 属性的对话框窗口,以便能够使用 SetLayeredWindowAttributes(...) 函数在控件顶部完成颜色键控透明度和 alpha 混合。

因为 WS_LAYERED 属性不能与 WS_CHILD 属性一起使用,所以窗口可见性的管理不是自动的。我需要能够检测 ActiveX 控件何时不再可见(即因为浏览器选项卡已更改或最小化),以便我可以更改覆盖窗口的可见性。

我尝试使用一些现有的窗口消息 (WM_) 来确定此更改,但在更改 IE 浏览器选项卡时没有看到它们触发。有谁知道在发生这些可见性变化时捕获的最佳方法?

0 投票
1 回答
385 浏览

php - LAMP - 在 PHP 中创建分层 PDF 的工具

嗨,有人知道我们可以用来在 LAMP 中创建分层 PDF 的又好又便宜的工具吗?我开始了解 PDFLib+PDI8,但那是 1590 欧元……但我正在寻找更便宜的选择……但必须与 PDFLib+pdi8 相同。

在此先感谢 Pravin P

0 投票
1 回答
217 浏览

.net - 分层架构和静态方法

我需要我计划实施的三层架构的建议。

设想

我在 ASP.NET c# 3.5 环境中工作。

DLHelper:从数据库获取数据的方法。

DAL:包含在 DLHelper 类的帮助下从数据库收集数据的方法。该层中的大多数方法都没有引用任何页面级对象,因此可以声明为静态的。

BL :与 DAL 层相同,大多数方法不引用任何页面其他页面级对象,因此可以声明为静态。

UI 层:根据上述场景 UI 层调用 BL 层就像

BLClass.Method -> DALClass.Method

我想知道的问题是这种标准化的方法。根据与我同事的讨论,我们应该有相应的 BL/DAL 层对象。但我仍在寻找更令人信服的答案。