问题标签 [thick-client]
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.
windows - 将 Windows 会话记录到远程网站
我有一些在第三方系统上运行的解决方案,并且每隔一段时间就会发生客户特定的错误。不幸的是,由于客户定制的数量和访问困难,我们无法真正复制这些(相当微不足道的)错误。是否有可以在 Windows 服务器上轻松运行、记录所有活动并将视频发送回我们的服务器的免费或付费应用程序?
.net - MVC - 跨多个视图共享 ViewModel 实例
只是想知道人们对跨多个视图共享一个视图模型实例的想法是什么?
这是一种反模式还是被接受的做法,利弊是什么?
dependency-injection - 在 Windows 客户端 (WPF) 应用程序中进行依赖注入的正确方法
我习惯于 Web 应用程序中的 IoC/DI - 主要是 Ninject 和 MVC3。我的控制器是为我创建的,填充了所有的依赖项、子依赖项等。
但是,在胖客户端应用程序中情况有所不同。我必须创建自己的对象,或者我必须恢复到服务定位器风格的方法,在这种方法中我要求内核(可能通过一些接口,以允许可测试性)给我一个完整的对象与依赖关系。
但是,我已经看到有几个地方将 Service Locator 描述为反模式。
所以我的问题是 - 如果我想在我的胖客户端应用程序中从 Ninject 中受益,有没有更好/更合适的方法来获得这一切?
- 可测试性
- 适当的 DI / IoC
- 尽可能少的耦合
请注意,我在这里讨论的不仅仅是 MVVM 以及将视图模型放入视图中。这具体是由需要从内核提供存储库类型对象触发的,然后从该存储库中获取注入功能的实体(数据当然来自数据库,但它们还需要一些对象作为参数,具体取决于状态世界,Ninject 知道如何提供)。我可以在不将存储库和实体都留下无法测试的混乱的情况下以某种方式做到这一点吗?
如果有任何不清楚的地方,请告诉我。谢谢!
编辑 7 月 14 日
我确信提供的两个答案可能是正确的。然而,我身体的每一根纤维都在与这种变化作斗争;其中一些可能是由于缺乏知识造成的,但还有一个具体原因是我无法看到这种做事方式的优雅之处;
我在最初的问题中没有很好地解释这一点,但问题是我正在编写一个库,该库将被几个(最初是 4-5 个,以后可能更多)WPF 客户端应用程序使用。这些应用程序都在相同的域模型等上运行,因此将它们全部保存在一个库中是保持 DRY 的唯一方法。然而,这个系统的客户也有可能编写他们自己的客户——我希望他们有一个简单、干净的库可以与之交谈。我不想强迫他们在他们的 Composition Root 中使用 DI(在他的书中使用 Mark Seeman 之类的术语)——因为与他们刚刚更新 MyCrazySystemAdapter() 并使用它相比,这使事情变得非常复杂。
现在,MyCrazySystemAdapter(之所以选择这个名字是因为我知道人们在这里会不同意我的观点)需要由子组件组成,并使用 DI 组合在一起。MyCrazySystemAdapter 本身不需要注入。它是客户端与系统对话时需要使用的唯一接口。因此,客户应该高兴地获得其中之一,DI 就像幕后发生的魔术一样,并且该对象由许多不同的对象使用最佳实践和原则组成。
我确实意识到这将是一种有争议的做事方式。但是,我也知道将成为此 API 客户的人。如果他们发现他们需要学习和连接 DI 系统,并在他们的应用程序入口点(组合根)中提前创建他们的整个对象结构,而不是新建一个对象,他们会给我中指和直接弄乱数据库并以您难以想象的方式搞砸事情。
TL;DR:提供结构合理的 API 对客户来说太麻烦了。我的 API 需要交付他们可以使用的单个对象——使用 DI 和适当的实践在幕后构建。现实世界有时会胜过将所有东西倒过来以忠于模式和实践的愿望。
java - 非常大的对象集合的客户端视图。如何优化?
我有 3 层 EJB 应用程序,我需要在显示大量对象(超过 5000 个订单)的胖客户端(桌面 Java 应用程序)上创建一个视图。每个对象都有子属性,这些子属性也是复杂对象,例如:
该视图是一个订单表:
号码 | 第一地址 | 最后地址 | ...
我的第一次尝试是加载完整的订单列表(没有子属性),然后在需要显示时动态下载子对象。但是当我有 10000 个订单并开始快速滚动时,UI 变得无响应。
然后我尝试加载需要在表格中显示的所有订单和所有子项,但 UI 变得非常沉重和缓慢,可能是因为内存成本)。而且它根本不是胖客户端,因为我从 db 下载了几乎所有数据。
解决此任务的最佳实践是什么?
java - 将现有 Web 应用程序转换为桌面应用程序
我在这里看到了关于这个主题的一些其他类似问题,但它们并不是很有帮助,所以我提出了这个问题。
将合理大小、简单的 Web 应用程序转换为面向 pc 和 mac 的基于 Java 桌面的客户端的最快方法是什么?不幸的是,由于各种原因,我无法在此处分享有关该应用程序的大量详细信息。应用程序中最复杂的 UI 是一个包含多级线程讨论的页面(请参阅此处以获取我正在谈论的说明性示例。)当前的 Web 应用程序基于 python,因此我无法重用任何来自服务器端代码(不要认为这是一个问题)
我从未做过任何 swing 或 awt 或任何其他基于 Java 的胖客户端 GUI 工作。我的想法或多或少是由基于 Web 的应用程序定义的。我能够使用 Java 或 python 进行端到端的 Web 应用程序开发(包括使用 HTML、CSS 和 JS 的后端和体面的 UI)。对于您的答案,请仅关注 Java 解决方案。
所以这是我的问题我应该使用什么最好的框架或工具?作为研究的一部分,我在网上找到了以下一些工具。
- Awt - 看起来这不是一个好的选择。
- 我认为 Swing 与常规 Java SDK/JRE 捆绑在一起。- 这可能是我最好的选择。
- SWT似乎以某种方式恭维 Swing。
- Griffon 基于此处的一篇文章。这个框架使用 Groovy(我不知道 Groovy,顺便说一句)Adobe Air flex。有什么开源框架吗?
我需要记住哪些其他问题?我希望您发表评论的一些内容是:
- 它需要部署在客户端上的事实如何使事情复杂化?由于我们使用的是 Java,我相信这不是问题。我知道基于 Web 的应用程序和桌面应用程序之间的通常权衡(例如,易于部署和升级等)
- 创建一键式安装程序并捆绑应用程序和所需的环境是多么容易 - 例如。JRE等?
- 该产品需要在 Mac 和 Windows 上运行。这是否会使事情变得复杂(再次,因为它是 Java,我假设没有陷阱,但如果有任何问题,我想预先警告)
- 作为技能组合,简历上可能有什么框架或技术?
我的截止日期最多为 2 个月——考虑到我需要学习所有这些技术,这对于一个相当简单的网络应用程序来说是否足够?我只是想在这里了解一下-我知道很可能不可能给出准确的答案-假设我足够聪明并且可以足够快地掌握任何不熟悉的技术堆栈。
谢谢!
java - 从瘦客户端(Web 浏览器)流向已安装并正在运行的应用程序
所以我正在处理一个大规模的应用程序。我们正在从已安装的 Java 应用程序迁移到基于 Web 的应用程序。在过渡版本期间,我们需要能够在本地安装(并假定正在运行)的应用程序上显示某些屏幕。是否有捷径可寻?
我查看了自定义 URL 处理程序和某种消息传递系统,但对于大量动态的客户端来说,这些似乎都不可行。
architecture - 胖客户端还是独立应用程序?
我想知道胖客户端和独立应用程序之间的确切区别是什么。
根据维基百科,胖客户端仍然需要应用服务器。
我有一个 .Net Windows Forms 应用程序,它不连接到应用程序服务器,但仍使用数据库服务器。此应用程序仅是 db 服务器的 SQL 提供程序,不会以相关方式处理数据。
此应用程序被认为是独立应用程序还是胖客户端?
编辑:例如,Microsoft SQL Server Management Studio 是独立应用程序还是胖客户端?
gwt - 胖/胖客户端与瘦客户端
我有一个问题,我正在使用 Servlet 和 JSP 开发基于 Java 中的 REST API 的桌面 Web 应用程序,但是我的老板说这不是创建 Web 应用程序的最佳方式,因为 servlet 和 JSP 工作得像胖/厚客户端(对服务器的请求使应用程序下载所有数据内容,而不是像 GWT 那样的部分),他建议使用 GWT,因为它作为瘦客户端工作。
当我在 Internet 上查找时,我没有看到 servlet 作为胖客户端工作,所以我的问题是为什么 GWT 比 servlet 更好?
winforms - Windows 形式的胖客户端应用程序 - 在同一台机器上安装多个版本
我们有一个旧的 Windows Form 胖客户端应用程序,它是一个内部工具。它作为 Windows 应用程序安装在每个人的桌面上。突然需要为同一内部工具的客户端特定版本创建单独的安装程序。有些人需要访问完全相同的应用程序的两个版本。我的问题是如何创建同一个应用程序的两个安装程序并让它在启动时显示以及桌面上的图标。我知道如果我更改设置属性上的产品代码,两个版本都会并排安装。对此的任何帮助将不胜感激。
谢谢,SDD
delphi - Delphi 厚客户端到 Web 应用程序
我目前正在使用 Delphi 5 并计划将应用程序迁移到最新版本(XE3)或其他技术。迁移的主要目的是不想要胖客户端。在当前场景中,应用程序(exe)被下载到用户本地文件夹,然后在本地运行。主要目的是不想将应用程序下载到用户机器上。.
如果下载限制得到解决,想坚持使用 Delphi。有网络解决方案吗?或从公共点访问应用程序而不下载到用户机器的方式。
感谢您的帮助和建议。
注意:有很多用户使用这些应用程序。