2

我正在为基于 Windows 的平板电脑开发应用程序。这个应用程序几乎是我已经使用 .NET CF 在 Windows Mobile 设备上开发的应用程序的一个端口。我想利用我在软件开发中获得的所有知识从头开始编写应用程序。

我还想以这样一种方式编写这个新的应用程序,如果我愿意,我可以修改我现有的 Windows Mobile 应用程序以使用新的库。理想情况下,我将拥有一组共享的业务逻辑和数据访问库,唯一真正的区别是 UI 层 - 平板电脑版本的 WPF,以及 Windows Mobile 应用程序的标准 CF 接口。

考虑到这一点,我需要确保我创建的所有项目都与 .NET Compact Framework 兼容。有没有简单的方法来确保这一点?我的一个想法是为我创建的每个类库使用一个智能设备项目。

除此之外,我是否可以轻松地从标准 Windows 应用程序中引用为 .NET CF 应用程序编写的这些库?

为平板电脑开发应用程序与开发任何普通的 Windows 窗体应用程序一样吗?是否有不同版本的 .NET Framework 需要考虑,还是平板电脑几乎是标准的 Windows 电脑?

4

2 回答 2

4

没有用于 Tablet PC 的特殊版本的 .NET Framework。在 Windows Mobile 和 Windows 之间共享代码的问题之前已经被问,并且接受的答案非常好。

于 2009-05-20T07:36:38.150 回答
1

我见过的平板电脑运行标准的 Windows 和“完整的”.NET,但我希望你也能得到一些轻量级的设备。一个有趣的可能性可能是“客户端配置文件”(常规“完整”.NET dll 的一个子集) - 但我自己并没有看到太多使用它。

CF 和常规 .NET 有很多相同之处,但最终还是有区别的;两者都不是另一个的严格子集。我发现通常为 2 个框架编写代码的唯一方法是保持两者都处于活动状态......对于 protobuf-net(有这个问题)我为每个框架保留一个项目文件,以便我可以快速测试build 无处不在(即没有缺少的方法等)。

您可能会发现您需要使用#if块来在两个框架上运行稍微不同的代码,特别是如果您出于性能原因想要使用“完整”.NET 功能(CF 版本中不存在这些功能)。一种更容易破解 proj 文件以使用递归文件包含的方法:

<Compile Include="**\*.cs" />

现在您不必继续向两个项目添加新文件 - 它会自动获取(警告:在 IDE 中,您可能需要卸载/重新加载项目)。

于 2009-05-20T07:24:25.490 回答