问题标签 [line-of-business-app]
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.
wpf - WPF 业务线应用程序架构
在我的公司(第一次),我们正在使用 WPF 用 C# 开发一个相当大的业务应用程序。我决定采用类似于 Microsoft PRISM 中的 UI 模块化方法,但我对如何开发业务和数据层摸不着头脑。
我需要至少支持两个数据库:用于客户端/服务器安装的 SQL Server 和用于单用户安装的 SQLite,但我希望为其他数据库或云/rest 持久性解决方案做好准备。未来我们可能不得不开发一个网页版和一个 UniversalApp 版!
我正在考虑的解决方案是:
- WPFClient.MainShell (exe)
其他 shell dll(引导,动态模块加载,...)
公司模块:
- WPFClient.Companies.UI(视图模型和视图)
- WPFClient.Companies.BIZ(用于验证的管理器 obj,对持久层的调用,...)
- WPFClient.Companies.Data(持久层的通用接口)
- WPFClient.Companies.Entities(在 ui、biz 和数据层之间共享的实体)
工人模块
- WPFClient.Workers.UI(工人管理模块的视图模型和视图)
- ...
- WPFClient.Workers.Entities(在 ui、biz 和数据层之间共享的实体)
- 其他模块(例如合同、访问等)
持久层的具体实现:
- WPFClient.Data.SQLite(引用一个或所有模块的 X.Data 和 X.Entities dll 的具体持久层)
- WPFClient.Data.SQLServer(引用一个或所有模块的 X.Data 和 X.Entities dll 的具体持久层)
- WPFClient.Data.????
项目之间的引用是:
- ModuleX.UI -> ModuleX.BIZ 和 ModuleX.Entities
- ModuleX.BIZ -> ModuleX.Entities 和 ModuleX.Data
- ModuleX.Data -> ModuleX.Entities
- ...Data.SQLIte -> ModuleX.Entities,ModuleX.Data,ModuleY.Entities,ModuleY.Data,...
当然具体的实现将通过 ServiceLocator 机制来解决。
我没有找到任何这样编写的 LOB 应用程序示例。我读了很多关于工作单元和实体框架、CQRS、等等等等的文章,但都是太多的理论!
这种架构有什么问题?有没有更好的解决方案或现实世界的例子可供参考?
更清楚一点:假设我必须用他的工作历史(或具有多个订单项的经典示例订单)保存一个工人。如果 biz 层“知道”它必须保存在多个存储库中,则意味着 biz 层知道持久性机制,所以它知道的太多了。但是,如果 biz 层只是将命令(SaveWorkerInfo 或 SaveOrderInfo)传递给持久层,而不是持久层知道太多,而 biz 层只执行验证(我认为这是 CQRS 样式)。
非常感谢,我知道这是一篇很长的文章!
asp.net - 用于业务线应用程序的单页应用程序(角度 2)
这些天来,我面临一个基本问题——让我们称之为架构设计决策。
因此,我和我的团队为我的公司构建了典型的业务线 (lob)-web-applications。就我而言, lob 尤其意味着:
- 大量的用户交互(输入数据、CRUD 实体、显示数据、聚合数据、统计和报告、验证等)
- 非常严格(用户必须登录,用户有不同的权限级别,他们可以对不同的实体进行不同类型的更改,显示各种报告等)
举个例子,让我们来看一个普通的审批工作流程:我需要一台新的笔记本电脑,所以我去“ressources-webApp”并创建一个新的采购申请。我的老板收到通知,必须批准我的请求。下一步,相关部门必须购买笔记本电脑并完成我的申请。
我知道这是一个简单的“hello world”示例,在现实生活中,您会为此目的使用现有软件(SAP 或类似软件),但它很好地描述了我的用例:数据驱动且非常严格(我可以看到我部门的所有申请但只能更改或删除我的申请,我不应该看到审批页面或调用审批api,我的老板应该只看到他的员工的申请,而不是其他部门的员工的申请,我的老板和我都不应该看到该页面或无法完成申请等)。
目前我们正在使用 ASP.NET MVC 和 WebAPI 与 angularjs 1 的结合。对于每个“动作”(页面或视图)都存在一个 mvc 控制器,它监听特定的路由并返回适当的视图。每个视图都引用一个特定的角度控制器。此外,每个视图可能包含不同的“部分视图”(组件或控件)。为了处理数据,角度控制器调用 webAPI 控制器,它们也监听特定的路由并处理请求(GET/POST/PUT/DELETE)。如果允许用户打开页面或调用操作,每个控制器(mvc 和 webAPI)都会检查 cookie 中每个 http-request 的授权令牌。
现在我想知道如何在 Angular 2 的 SPA 应用程序中执行此操作。Angular 2 对我来说听起来很有趣,并且比 Angular 1 有一些不错的好处,所以我想尝试 Angular 2。似乎只有 Angular 2 你可以构建一个 SPA 应用程序(与我上面提到的“经典”MPA 应用程序相比,其中每个页面都来自服务器并包含一个角度控制器)。
一般来说,我不喜欢 SPA,但我不确定如何处理上面提到的安全问题。
此外,SPA 还存在其他常见问题:无法从浏览器中使用后退按钮、无法直接在浏览器中输入特定 url、没有书签等。
那么,您对我有什么建议、提示或最佳实践吗?你认为 SPA 是 lob-web-applications 的一个很好的“模式”吗?如果是,您将如何处理安全问题以及其他常见的 SPA 问题?
最好的问候,亚历克斯
android - How to publish B2B Android apps to external Enterprise
Apple has the B2B App Store
which allows a developer to "distribute tailored solutions directly to business customers". With this the app does not have to be visible to the general public.
Does Google Play have a similar setup that allows me to do the same thing? The Managed Google Play documentation has details for distribution (consumer end), but nothing detailing whether the publisher can restrict the app to particular business customers (as Windows Business Store and iOS B2B Store).