7

我正在开发一个可以在两种类型的框架(紧凑或非紧凑)上使用的技术库类。

开发此类库的最佳方法是什么?默认情况下使用 .NET 功能(对于 XP Embedded)并在使用 Windows CE(使用 CF.NET)时进行限制?

谢谢。

4

3 回答 3

4

我通常通过为每个播放形式设置单独的 dll 来解决此问题,因此我可以尽可能使用可用的平台功能(通常两者都不是严格的子集/超集,如果你想要节拍性能等,瞄准交叉点会过度限制)。

尽管大多数功能都很常见,因此#if 代码(带有特定于功能的构建符号)的数量通常很少。

为了避免忘记添加项目文件的问题,我在 csproj 中使用了递归通配符,因此所有 .cs 文件都会自动包含在内。

于 2010-12-27T09:11:59.380 回答
2

我发现有两种方法可以在 .NET 和 .NET CF 代码库之间共享库类。

代码相同

通常库可以是相同的,特别是如果它们是具有计算的基本库或相同的业务类。对于非 UI 库,这通常是这种情况,因为 .NET CF 主要是 .NET 的一个子集。

在这种情况下,您可以只构建一个设备项目并将其包含在您的完整 Windows 项目中。您将收到一条警告,提示您正在加载设备项目,但如果您没有使用任何 CF 特定代码,那很好。

代码非常相似,但不同

在这种情况下,我创建了两个项目,因此创建了两个程序集。我将其中一个程序集作为主要程序集并包含所有使用的文件。在第二个中,我将文件添加为链接以将它们包含为参考,以便反映任何更新。然后我将 ifdefs 用于它们可能不同的任何特殊情况。

于 2010-12-30T21:32:54.963 回答
1

考虑使用预处理器指令。

您可以为通用 .NET 和 CF 构建相同库的 2 个版本。

像 :

#if (!COMPACT_FRAMEWORK)
            // some code only for general .NET 
#endif
于 2010-12-27T09:10:51.947 回答