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

0 投票
1 回答
541 浏览

vb.net - 什么 WinForm 控件绑定 List(Of T)?

我一直致力于为我的项目保持面向对象的东西。目前,我正在使用一个 .DLL,它将所有应用程序的类提供给充当表示层的 WinForms 项目。

例如,我的 .DLL 将返回一个 SortableBindingList(Of T) 以在表单中编码。SortableBindingList(Of T) 来自这里。让我们假设一个 SortableBindingList(Of Product)。假设 .DLL 的函数Services.Products.GetList()返回一个 SortableBindingList(Of Product),我可以很容易地做到这一点:

现在,DataGridView 已正确填充我的产品列表。美好的。但是,没有 .SelectedItem 属性可以让我返回在 DataGridView 中选择的对象:

但是,ComboBox 或 ListBox 实际上会完整地存储和返回我的 Product 对象:

然而另一个... ComboBox 和 ListBox 不显示 Product 对象的所有字段,只显示 DisplayMember 属性的值。

VB.NET 2008 中是否有一个我只是缺少的不错的控件,它为我提供了我想要的面向对象的功能,它实际上将显示整个对象的字段并在用户选择时返回该对象?我不知道为什么没有。

0 投票
2 回答
717 浏览

frameworks - 框架推荐请求:Spring、Struts、Java EE?

上次我查看 Web 应用程序时,共识似乎是 Struts/Java EE。现在,看起来 Spring MVC/Java EE 或 Struts/Java EE 都是可行的解决方案。

这通常正确吗?还是 Spring MVC 现在是 Struts 的共识选择?我们至少有一个人曾与 Struts 合作过,并希望与之合作。我对 Struts 也比较熟悉,过去曾对它进行过审查。

此外,Java EE 是否仍然被认为是处理远程组件的可行解决方案?或者有其他选择吗?

0 投票
2 回答
1512 浏览

asp.net - 重构旧版 WebForms 应用程序以更好地分离关注点

当 MVC 不是一个选项时,MVP 仍然是下一个最佳选择吗?

我想我会在这里问这个问题,因为我敢肯定还有其他像我一样的人没有机会参与一个新建项目,并且想要重构 Web 表单 UI 以更好地将表示与业务对象分离。 .

我正在开发一个遗留应用程序,其任务是添加相对较小的附加要求、增强功能和错误修复。

我在这里处理的应用程序部分可能被描述为一组对持久保存到关系数据库的业务对象的 CRUD 操作的 UI。

现有 UI 使用 MultiView 控件在关联业务对象(一对一关联或一对多/父子)的编辑之间导航。是的,没错 - 都在一页上。不幸的是,用户控件的使用非常少,因此标记和代码隐藏长达数百行。

在每个 View 上,FormView 通过各种 ObjectDataSource 管理业务对象上的 CRUD。在每个 FormView 的 ItemTemplate 中,各种服务器控件数据绑定到 ObjectDataSource 上的字段或方法。

我想介绍更多的关注点分离,并从 Page 代码隐藏中获取一些代码。

到目前为止,我的研究表明我可能会考虑:

  1. 使用 Model View Presenter 的风格;更具体地说 -使用 Web 客户端软件工厂的 ObjectContainerDataSource可以更轻松地在当前 UI 和一组新的 Presenter 类之间建立桥梁。

  2. 使用 MVC 框架从头开始重新构建(不是一个选项)。

  3. 别管闲事;只有当我需要在不同的 UI 场景中重用我的演示文稿时,MVP 模式才合理?

如果我同意(3),我仍然想知道如何开始重构以更好地分离表示。

你会怎么做?任何其他想法都感激不尽...


这里有更多的背景知识供有兴趣的人参考:

该领域属于药物研究领域,但这无关紧要,您可以将其视为非常典型的业务线——一系列设置的用户配置,这些设置构成了应用程序另一部分的操作条件。

业务对象层已经以非常一致的方式构建。虽然我可能不喜欢它,但我不能证明改变它是合理的。每个对象都是它自己的存储库/数据访问对象,其中有“按 ID 获取”和“按标准获取列表”的静态方法。在可能的情况下,通用操作在抽象基类中实现。每个业务对象都将数据访问工作委托给数据访问层,该层利用 ADO.NET 2.0 提供者工厂机制保持相对于具体提供者的抽象。在这方面,它与使用 Microsoft 企业库中的数据访问应用程序块的任何应用程序有很多共同之处。

有相当详尽的用 NUnit 编写的集成测试,它们从头开始设置测试数据库,因此它们需要很长时间才能运行,但至少它们验证了这些东西是否可以正常工作(无论如何,在过去的某个时间点 ;-)。几乎没有真正的单元测试到位(还)。

0 投票
3 回答
515 浏览

java - 多设备演示技术

我们的应用程序应该服务于多种设备,从简单到智能手机、iPhone、触摸屏到普通浏览器。

应用程序是分层的,因此我们可以重用业务和持久层。但是,我们也想对单个表示层进行编程。例如,我知道 ASP .NET 根据浏览器类型生成不同的 html 输出。 http://msdn.microsoft.com/en-us/library/ms178620.aspx

甚至有一些网站承诺将您的网站转变为移动网站:http: //instantmobilizer.com

是否有 java 框架能够生成适应客户端浏览器和设备的表示,这样我们就不需要为每种设备类型编写不同的表示层?在 Web 应用程序中管理多个设备支持要求的标准方法是什么?

0 投票
1 回答
2504 浏览

service - 将业务验证错误从服务层传递到表示层

我们在表示层(PL)和基于 WCF 的服务层(SL)中使用 MVP 模式。PL 在 SL 上调用操作合约,并在内部进行一些业务验证。如果验证通过,我们将一个对象(作为数据合约公开)返回给 PL。

但是如果验证失败,我们通知 PL 的最佳做法是什么。

一种方法是我们创建一个通用的响应类,它对所有操作合约都是通用的。它看起来像这样。

ExceptionType:这是一个枚举,它告诉业务验证是否失败或安全验证或某些未知异常发生。

ExceptionInfo:这是一个枚举,它告诉发生的验证/异常的具体细节,如 errorCode 等。

集合:服务层可以返回单个实体或实体集合。我们使用此属性根据要求返回一个或多个实体。如果验证失败或该方法不期望来自服务层的任何返回实体,它也可以为 null。

这是将验证失败传递给 PL 的好方法吗?

我看到的缺点是 - PL 需要处理 exceptionInfo 中定义的所有案例,可能使用 switch case 并做一些必要的事情。

其他方法是在任何业务验证或安全验证失败时向 PL 抛出异常。我不太热衷于这种方法,因为我不想使用异常来处理我的业务逻辑。

还有更多想法来处理这种情况吗?

0 投票
1 回答
409 浏览

asp.net-mvc - Web应用程序的新表示层

我们已经有了一个用魔法编写的现有 Web 应用程序。但现在我们最终希望将现有的 Web 表示层(可能也是富客户端)交换为服务器端表示层。你认为我应该首先看什么(ASP.Net MVC、Silverlight、PHP 中的东西)。

如果您只有一个模型,那么使用哪种技术来交换表示层的工作量相对较小。

是否有可能使用通用表示层,以便我们可以轻松创建新页面。

0 投票
2 回答
698 浏览

extjs - 如何最好地在 Web 应用程序中实现对多个设备的支持

我的客户想要一个支持“所有可能的设备”的业务应用程序。有问题的应用程序本质上是一个网络应用程序和“所有可能的设备”,我相信包括手机、上网本、ipad、其他浏览器支持设备等。该应用程序在它捕获的数据和它执行的其他功能方面有点复杂(报告)。

如果我继续尊重应用程序中日益增加的复杂性,我想它更有可能无法在其他设备上运行。我想知道 Web 应用程序通常如何支持多个设备?是否有多个版本的表示层(就像我多次发现 m.website.com 专门用于移动设备一样)?此外,如果我的应用程序要利用 Java Script、RIA(Flash、SilverLight),那么后果和解决方法是什么?

我的是一个基于 .Net 的应用程序,堆栈还包含 Ext JS Java 脚本库。虽然我肯定会使用它,但考虑到我会在 Java Script 而不是 HTML 中做很多工作,这可能是个问题。

上面的答案可以是描述性的。如果那里已经规定了一些东西,请分享链接。谢谢。

0 投票
2 回答
1370 浏览

reference - 从表示层引用业务对象的最佳方法..?

我想开发一个企业应用程序,其中包括一个 WindowsForms 表示层、用于业务逻辑和数据访问的中间层组件以及一个 MsSQL Server 数据库。中间层组件应包含一些业务对象,并将使用 .NET Remoting 从表示层调用。Whitch 是从表示层引用这些业务对象的最佳方式(以及为什么)?

  • A) 创建类库项目,实现业务对象。从表现层和中间层引用这个项目。
  • B) 创建定义业务对象的接口库项目。创建实现接口的类库项目。从中间层引用类库项目。从表示层引用接口库项目。
  • C) 为中间层和表示层创建单独的类库项目。从表示层引用相应的项目。
0 投票
1 回答
1368 浏览

ipad - presentationLayer 位置属性在 iPad 上产生错误值,iPhone 没有问题

我有一个游戏,其中有几个使用 CAKeyframeAnimation 动画的小对象。对象动画完美适用于 iPhone 和 iPad。但是,动画 CALayers 的presentationLayers 的位置属性的值只能在iPhone 上产生合理的值。我使用动画对象的当前位置进行命中测试。iPad 和 iPhone/iPod Touch 在这方面的差异有什么想法吗?

iPhone 的位置点显示随着对象动画的预期增量变化;在 iPad 上,我看到了特殊的值,例如这个序列: <-36893488147419103232.000000,2.607987>, <-0.000000,2.658927>, <0.000000,2.709929>, <36893488147419103232.000000,2.75>5, ...

presentationLayer 的其他属性是正确的(但是,这些属性的值在动画期间不会改变)。

动画结束后,presentationLayer 位置值是准确的。

0 投票
2 回答
641 浏览

exception-handling - 在业务层中生成的 UI 上显示异常消息的建议方法是什么?

通过使用业务层抛出的异常在表示层中创建用户友好消息是否有模式或“最佳实践”?

实际上,在许多情况下,我更喜欢抛出应用程序异常,这迫使我在 UI(aspx.cs 页面)上捕获它们。如果过程很复杂,可能会产生许多不同类型的异常,我必须有许多 catch 块来产生特定的错误消息。

有没有更好的方法浮现在您的脑海中?类似情况的模式可能吗?

谢谢