问题标签 [presentation-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.
data-access-layer - The N-layers paradigm - is this concept wrong?
I just saw the lecture:
He keeps saying that the 3 layers paradigm started because of the problem with connection pooling.
And NOT because of architectural considerations.
Seems like a mind blowing theory.
Can anybody proove or disproove this claim?
c# - 如何从演示文稿中删除计算
我正在开发一个从模板生成电子邮件的系统。模板已由业务部门提供,其中包含与此类似的一行代码:
在这种情况下,PaymentAmount 应为整数的字符串表示形式(例如,所需的输出 £5.54 将提供为“554”)。
现在,我认为表示层中不应该有计算——在这种情况下,有 /100 计算和解析。我为此提出了许多替代方案,其中在模板之前的代码中执行转换以提供更改的视图,例如:
我们在该项目上有一组相当称职的技术架构师,但我很难说服他们有充分的理由这样做。
任何人都可以帮助我向架构师提出一个论点,以使后者的代码片段在前者之上实现 - 或者如果您不同意这种方法,为什么?
networking - 位顺序与演示格式相关?
我正在研究与演示文稿格式相关的家庭作业问题,我希望能指出正确的方向。作业问题是:
不同的体系结构对位顺序和字节顺序有不同的约定——例如,字节的最低有效位是位 0 还是位 7。RFC 791 [Pos81]
定义(在其附录 B 中)标准网络位顺序. 为什么位顺序与演示格式无关?
我对位顺序与演示格式无关感到困惑。演示格式对数据进行编码,使其可以通过网络传输,然后在接收端对数据进行解码,以便可以使用数据。但我知道解码过程必须考虑接收计算机的体系结构才能正确解释数据,这包括位和字节顺序。事实上,这就是这些转换策略(如规范中间形式和接收者正确)的用途——它们确保将数据转换为允许其通过网络传输并由接收主机解释的格式应用。
我对答案的看法是,表示解码发生在应用层,因为只有应用知道它希望数据采用什么格式。因此,接收主机的架构不是表示格式担心的问题,因为它知道它将负责转换数据。
我有什么误解吗?
谢谢您的帮助。
design-patterns - 如何避免跨多个不同表示层重复业务逻辑
我目前正在为多渠道商务系统设计架构,该系统将有多个不同的前端演示,这些演示针对设备和渠道(用户类型和位置)量身定制。我面临的挑战是如何最好地确保我们以减少前端表示层重复的方式开发核心商务平台。
以下是我们需要支持的不同前端演示层的示例:
- 面向消费者的传统桌面网站
- 面向消费者的移动优化网站
- 面向消费者的原生移动应用程序 (iOS/Android)
- 客户支持代表的客户支持中心网站
- 基于店内信息亭的网站,供消费者在实体店购物
- 其他(微型网站和其他利用各种技术,如 Angular、PHP、.NET 等)
现在,我了解了围绕分层架构(表示层、业务层、数据层)和常见设计模式的最佳实践,以解决单个应用程序中的前端挑战(例如 MVC、验证器、拦截器)。但是,这些原则都没有解释在面对支持多个前端时如何以及在何处最好地封装特定于演示文稿的业务逻辑。
那么,我的问题是,在开发这样的系统以确保每个前端应用程序不会重复前端业务逻辑时,应该遵循哪些好的实践和原则?
过去,我使用不同的方法开发了许多具有此类要求的应用程序……其中一些工作得很好,一些工作得不太好。但每次我都觉得自己正在为一个常见问题发明一个解决方案,并且必须有一些最佳实践和原则可以利用。
我正在询问的具体挑战的快速示例
我们所有的前端应用程序都必须支持注册新客户帐户的能力。注册表将包含电子邮件、密码和客户地址信息(街道、城市、邮编等)等信息。提交表单后,在系统中创建帐户并将验证电子邮件发送给用户之前,需要进行某些琐碎和非琐碎的验证。例如:
- 电子邮件地址模式验证规则
- 确保系统中不存在电子邮件地址
- 密码复杂性规则
- 地址验证(通过第三方地址验证/标准化系统)
在大多数情况下,这些验证规则需要在所有前端系统中强制执行,尽管每个前端的注册流程可能略有不同,并且可能只包含字段的一个子集。那么,为前端提供 API 以使每个前端不会重复正确验证和处理注册所需的各种步骤,有哪些好的做法呢?例如,如果我们决定更改密码复杂性规则或地址验证规则等 - 我们如何最好地设计系统,这样我们就不必使用这种新的验证逻辑更改所有各种前端应用程序。
为了清楚起见,我不关心将所有前端共享的核心业务逻辑放在哪里(即帐户创建服务、地址验证服务、帐户查找服务等)。这些模式通常在博客、书籍和论坛中讨论。我的问题与通常与表示层紧密耦合的业务逻辑特别相关。有些问题总是浮现在我的脑海中。
- 我们是否应该提供一个表示服务层来支持所有前端操作,包括表单验证和通过 Web 服务进行处理?还是每个前端都应该拥有它的表示逻辑,因为“没有两个前端是一样的”?
- 如果我们确实创建了一个表示服务层,我们如何提供解决每个前端细微差异的服务?我们是否为这些前端中的每一个提供不同的服务/端点,或者只是提供每个前端在调用我们的服务时传递的不同“上下文”?
- 这个表示服务层是否控制错误消息并将适当的上下文感知消息返回给每个前端,还是我们应该只传回错误代码并让前端拥有它?
- ETC
domain-driven-design - 服务层 DTO - 大型复杂交互式报表类对象
我有构成调度系统基础的会议对象,其中的网格视图用于显示重要信息。这是为了安排员工参加会议,并让员工查看已安排的内容。
我一直在尝试遵循 DDD 原则,但我很难知道从我的服务层向下传递到系统的表示区域的内容。这是因为时间表可能很大,实际上由系统的许多不同元素组成。例如。客户名称、地址、案例信息、组等,所有这些都是会议安排者做出决定所需要的。
除此之外,调度程序需要更改此调度中的值并将其传递回服务层(例如,从下拉列表中分配员工,可能更改组等)。因此,信息并不是真正的“只读”——它需要与之交互。IE。这不仅仅是一份报告。
我们目前的方法是从 SQL 中填充一个扁平的“调度对象”,该对象由不同域对象的一小部分构成。这是一个相当复杂的查询。进行更改后,然后将其传递回服务层,服务将检索有问题的域对象,并使用来自 DTO 的信息在域对象上触发业务方法。
我的问题是,这是正确的方法吗?IE。继续从 SQL 生成大型自定义对象,然后从服务层向下传递到感觉很像视图模型的表示层对象?
由于答案而更新
了解所涉及的实体/聚合关系的数量。(这是一个混淆的例子,所以关系在这里很重要)
客户端在一个默认组中
客户有一个未结案,但许多已结案
案例有很多会议
会议有许多分配的员工
开会有很多原因
会议可以安排到不同的组
员工可以与许多组相关联。
日程表需要加载属于与员工在同一组中的患者的未决案例中的所有会议。
调度程序可以查看客户名称、客户地址、案例信息、会议时间、会议类型、会议原因、调度组(showstrail)、分配的员工(也有隐藏的员工 ID)。
可编辑字段是分配员工下拉列表和计划组。
- 日程表可能多达 200 行。
- DTO 是从 WCF 下来的,所以域模型是在这个服务层之上访问的,而不是在下面。
- 服务基于传回的 DTO 值利用域模型业务调用,并且存储库处理插入/更新。
所以,我想更新,是使用查询来填充一个包含上述所有内容的对象,可以作为一个合并的 DTO 传递下去吗?如果没有,您将如何处理它?(给出一些对服务层的调用示例,并解释一下您如何构思 ORM 获取数据并牢记性能)
java - 业务层 (JPA) 与表示层 (Netbeans 7.x) 的通信问题
我想通过以下方式开发一个“基于数据库的”java桌面应用程序:
- 使用 JPA (Netbeans 7.4 生成的 POJO )开发数据访问层 ( DAL )
- 开发业务层(BL)(我自己的类、控制器等)
- 开发表示层 ( PL ):图形用户界面(面板、框架、对话框)
- 使(PL)与(BL)通信
我在单个 Netbeans 项目 (ProjectDBL.jar) 中开发了 (DAL + BL)。
我在一个单独的 Netbeans 项目 (ProjectGUI) 中开发了 PL
我将 ProjectDBL.jar 作为编译库导入 ProjectGUI。
我没有将 EclipseLink 库添加到 ProjectGUI,因为它们已添加到 ProjectDBL.jar 中。
出于同样的原因,我没有将数据库驱动程序库添加到 ProjectGUI。
我想将我的 DAL+BL 和我的 PL 完全分开。进一步的数据库修改(例如 MySQL->SQLServer)不应该影响 PL 中所做的所有事情。
当我想调用 ProjectDBL.jar 中的任何方法时,我面临的问题是一种异常引发:
似乎持久性单元不能由外部 jar 实例化......
uiwebview - 如何使用动画 UIWebview 捕获 iPhone 屏幕?
我刚刚为屏幕视频捕获创建了代码。它使用 UIView 可以完美运行。但是如果我使用 UIWebview,那么捕获屏幕视频会卡住。我知道原因。原因是在使用 Web 视图时
[[self.layer presentationLayer] renderInContext:mycontext];
不工作..我的应用程序崩溃了
所以,如果表示层不工作,视频就会卡住。并使用这条线
[self.layer renderInContext:mycontext];
屏幕捕获正在工作,但视频显示卡住。
这是代码,当用户在他或她的手机上浏览任何网站时。
在滚动 webview 并捕获视频时,比捕获屏幕视频显示卡住..
有什么解决办法吗?
database-design - 设计用于在网页上存储 url 的数据库表的最佳实践
直接问题:
设计用于存储页面上配置的 url 的数据库表的最佳实践是什么。
我们的用例:
我们进行了设计讨论,但无法得出正确设计的结论。我们正在编写一个在表格中嵌入 URL 的页面。所以页面看起来像
这个想法是在数据库中配置这些 url,这样每次 url 更改时 url 更改都不需要部署。
EDIT> a,b,c,d
是表头。虽然部分下的内容a
将是普通文本,但其下的内容b,c,d
将是超链接。
考虑到这一切,应该为这个结构设计什么表。我们考虑了两种模式:
我们无法断定哪一个更好,因为每个都有自己的权衡(直到我们错过了一些东西)。或者这些都不好。
我们使用 NoSql Store 和 Jsp 来编写前端(演示)逻辑。
编辑>以下可能是表可能发生的更改类型:
- 添加新行(频繁)。
- 删除现有行(频繁)。
- 列的顺序可以改变(但很少见)。
- 列数变化(非常罕见,认为从未发生过但可能发生)。
- 底层 URL 的更改(两种设计都支持,所以不重要)。
这里主要关注的是维护开销(在演示和后端角度),这将由所考虑的任何一种设计引起。
编辑2>
所以这个项目只是为已经存在的服务编写前端。我们不必过多处理所谓的应用程序状态。但是在某个网页上,有几个 URL(嵌入在我提到的表中)并且业务要求不是每次有人提出更改请求时都部署(这段代码)(例如更改现有 url,即最常见的变化类型)。因此,所有关于 URL 的信息都将被移动到数据库中,并在网页加载时查询(或者可能是预加载的,这样我们就不会破坏页面的性能)。现在这个讨论是关于为此用途设计一个合适的表。
ios - 如何获取动画期间制作的最旧对象的位置?
我每秒钟都制作一个名为 FrenchFrie 的法式炸薯条的 UIImageView。我还让他们通过动画沿着屏幕移动。
}
我需要动画期间薯条的位置。我使用以下代码执行此操作:
从 NSLogging 我知道,通过这段代码,我得到了最新薯条的位置,但我需要最旧薯条的位置。我如何才能获得最古老的法式炸薯条的位置?任何帮助将非常感激!
c# - 如何使用 get 方法在 EF6 中根据数据库中的值返回文本
我使用 EF6 创建了一个模型。我的模型是这样的:
我的列之一是HasTax,其值为1和0,但在mygridview中我需要更改这些值 (0,1)。我的意思是如果值1
显示是,如果0
显示否。我想使用我的模型的方法来做这些get
?有可能吗?
Get 方法检查数据库中的值并将正确的值返回到gridview
或表示层?
最好的祝福