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

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

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

我们的系统将从主菜单和登录屏幕开始。我希望这可以作为系统的基础,并成为要添加模块的位置。即我将有一个名为SchoolPda的项目。

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

我可能会看到这种工作方式是包括/不包括不同的dll,并且如果dll存在,则让基本系统的主菜单公开用于访问这些模块的按钮。那只是我们所追求的。

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

参考方案

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

在一个项目中,如果未获得客户许可,我们就不会部署某些DLL。那就是你的建议。工作正常。当然,没有其他安装方法就无法启用这些模块,但这对于该应用程序来说是非常合理的。
在另一个项目中,我们部署了所有内容,并且只向最终用户公开了获得客户许可的菜单,按钮等。我们这样做是因为用户可以通过为其添加许可证来轻松添加额外的模块。添加许可证后,这些内容会在下次登录时神奇地显示出来。

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

如何以编程方式将ListView滚动到最后一个元素-Compact Framework - c#

我正在使用Windows Mobile 6.1上的3.5 Compact Framework开发应用程序。我有一个ListView,添加项目时想自动滚动此列表。我能怎么做? 参考方案 listView.EnsureVisible(listView.Items.Count - 1);

Visual Studio,ASP.Net(.Net Framework),并在项目中包含NuGet安装的软件包 - javascript

我在Visual Studio 2017中有一个主要由JavaScript组成的ASP.Net(.Net Framework)MVC Web应用程序。我已经使用NuGet安装了一个软件包(特别是marker-animate-unobtrusive软件包。)文档继续说我应该在我的HTML页面中包含JavaScript,但是在仔细检查了NuGet的内容后,我不确…

Entity Framework DbEntityEntry>'不包含Where的定义 - c#

此代码狙击手来自Adding CreatedDate to an entity using Entity Framework 5 Code First public override int SaveChanges() { DateTime saveTime = DateTime.Now; foreach (var entry in this.ChangeT…

在现有的SqlConnection中打开DbContext连接 - c#

我是否应该阻止在现有ADO.NET DbContext中打开实体框架的SqlConnection连接,前提是它们都使用相同的连接字符串,即在完全相同的数据库上运行?例如:using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new Syste…

如果Parameter为null,则排除条件 - c#

我正在使用LINQ和Lambda在2个条件下使用此查询来获取数据。是否可以在没有其他条件的情况下编写此逻辑-public List<Pallet> GetPallet(string palletID, string locationID) { List<Pallet> data = new List<Pallet>(); …