Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# windowsmobile中的数据策略_C#_.net_Windows Mobile_Xml Serialization_Sql Server Ce - Fatal编程技术网

C# windowsmobile中的数据策略

C# windowsmobile中的数据策略,c#,.net,windows-mobile,xml-serialization,sql-server-ce,C#,.net,Windows Mobile,Xml Serialization,Sql Server Ce,我正在Windows Mobile上开发一个C#应用程序,和我的大多数WM应用程序一样,每当我决定序列化策略时,我总是陷入困境。在桌面世界中,我并不太担心它,因为我已经开发了一个非常健壮的自定义xml序列化程序——但是,在WM世界中,我不想使用它,因为反射性能会受到影响 因此,我针对数据访问对象(DAO)接口开发了所有内容,因此我可以轻松地交换不同的实现,以便序列化为xml、registry、sqlce等。在开始开发时,我通常实现一个非持久性内存DAO(使用字典),当我想要持久化数据时,后面是一

我正在Windows Mobile上开发一个C#应用程序,和我的大多数WM应用程序一样,每当我决定序列化策略时,我总是陷入困境。在桌面世界中,我并不太担心它,因为我已经开发了一个非常健壮的自定义xml序列化程序——但是,在WM世界中,我不想使用它,因为反射性能会受到影响

因此,我针对数据访问对象(DAO)接口开发了所有内容,因此我可以轻松地交换不同的实现,以便序列化为xml、registry、sqlce等。在开始开发时,我通常实现一个非持久性内存DAO(使用字典),当我想要持久化数据时,后面是一个XmlSerializer DAO,然后,当一切都完成后,转到一个完整的sqlce DAO

然而,在我的最新应用程序中,我不能使用XmlSerializer DAO,因为它(不)处理作为接口的属性有多糟糕。也就是说,我有一个Foo对象,它包含一个Listbar属性,XmlSerializer无法序列化它(尽管我可以很容易地开发出自己的自定义xml序列化程序,它可以如图所示)


所有这些都是为了问这个问题:您发现了哪些DAO策略可以帮助您开发WM应用程序?在不同的应用成熟度级别,您是否提前计划了几个不同的DAO?您是从成熟的sqlce DAO开始的吗?当XmlSerializer无法使用时,您会推荐什么样的快速、简单的持久序列化DAO?

好吧,它不一定适用于您的情况(因为它与XmlSerializer一样,需要具体的类型),而是一个二进制序列化引擎,可用于所有.NET变体,包括CF 2.0和CF 3.5;这将允许您存储数据,并与完整的FAT3.5服务器(或者,实际上是与java、perl、php等)交换数据


它当然是快速和简单的,所以如果您想要WM中的可移植数据,那么一定值得一看。

好吧,它不一定适用于您的情况(因为它像
XmlSerializer
,需要具体的类型),而是一个二进制序列化引擎,可以在所有.NET变体上工作,包括CF 2.0和CF 3.5;这将允许您存储数据,并与完整的FAT3.5服务器(或者,实际上是与java、perl、php等)交换数据


它当然是快速和简单的,因此如果您希望在WM中使用可移植数据,那么肯定值得一看。

如果可移植性不是一个问题,但性能和开发的易用性是一个问题,您会提出什么建议?好的,从性能角度来看,在CF 3.5上,protobuf net在相似(或相同)的情况下,执行XmlSerializer/DataContractSerializer的性能要优于XmlSerializer/DataContractSerializer在属性等方面-所以我会使用它,但是-我有偏见-请注意,在CF 2.0上(不带Delegate.CreateDelegate),它的速度不是很快,但仍然可以工作。如果可移植性不是一个问题,但性能和开发的易用性是一个问题,您会提出什么建议?好的,从性能角度来看,在CF 3.5上,protobuf net在相似(或相同)的情况下,会比XmlSerializer/DataContractSerializer执行得快在属性等方面-所以我会使用它,但是-我有偏见-请注意,在CF2.0上(不带Delegate.CreateDelegate),虽然速度不是很快,但仍然可以工作。