c# - 模块化 C# Compact Framework 2.0 应用程序

标签 c# .net module compact-framework modularization

我们目前正在开发一款新的手持式软件。我无法讨论应用程序的性质,因此我将使用一个示例。

我们正在设计用于管理学校的手持软件。我们希望将系统的各个方面模块化,以便不同的学校可以使用不同的功能。

我们的系统将以主菜单和登录屏幕启动。我希望这是系统的基础,也是添加模块的地方。 IE。我将有一个名为 SchoolPda 的项目。

然后我想要不同的模块。即,我想要一个处理学生注册的注册模块。我想要一个用于管理教室清洁等的教室模块。

我可能看到此工作的方式是包含/不包含不同的 dll,并让基本系统的主菜单公开按钮以访问这些模块(如果 dll 存在)。这正是我们所追求的。

有人有做过这样的事情的经验吗?最好的方法是什么?我们不需要担心数据库,因为数据库将始终是完整的数据库,但如果关联的模块不存在,方面将不会被填充。

最佳答案

我参与过的项目有两种方式:

  • 在一个项目中,如果客户未获得许可,我们就不会部署某些 DLL。这就是你的建议。效果很好。当然,如果不额外安装就无法启用这些模块,但这对于该应用程序来说非常有意义。

  • 在另一个项目中,我们部署了所有内容,只向最终用户公开了客户获得许可的菜单、按钮等。我们这样做是因为用户可以通过添加许可证来轻松添加额外的模块。添加许可证后,这些内容会在下次登录时神奇地显示出来。

因此,根据我的经验,我想说将您的许可模式视为您决策的重要组成部分。考虑一下您是否想要动态添加这些额外的模块。

关于c# - 模块化 C# Compact Framework 2.0 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/415980/

相关文章:

javascript - 模块 'ngStorage' 不可用

javascript - Nodejs 中从模块导出变量的优雅方法

c# - MVC 在不注销的情况下授权属性工作

c# - 变形此序列的最优雅方式

module - Racket 模块导入基础知识

c# - 如何使用 JavaScriptSerializer 解析带有数字键的 JSON 对象

c# - 为什么这个 Cancellation Disposable 永远不会在 Observable.Dispose() 上被取消?

c# - LINQ查询如何在开始和结束索引之间选择最大值以及最大值的索引

c# - 由方法调用组成的简单 DSL 的 Lexer/Parser

c# - WPF ComboBox选择更改,TabItem选择更改