为平板电脑和WindowMobile开发winforms应用程序

时间:2009-05-20 07:18:25

标签: c# .net windows-mobile compact-framework tablet-pc

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

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

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

除此之外,我是否很容易从标准的Windows应用程序中引用为.NET CF应用程序编写的这些库?

开发平板电脑的应用程序与开发任何普通的Windows窗体应用程序相同吗?是否有不同版本的.NET Framework需要考虑,或者平板电脑是非常标准的Windows PC?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

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

CF和常规.NET分享了很多东西,但最终还是存在差异;两者都不是另一个的严格子集。我发现一般来说,为2个框架编写代码的唯一方法是保持活动...对于protobuf-net(有这个问题)我为每个框架保留一个项目文件,以便我可以快速测试构建无处不在(即没有遗漏方法等)。

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

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

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