我正在使用Azure:我创建了一个.net后端(因此在我的解决方案中,我有PCL,Server,Wp8项目),我想将所有模型移动到PCL。
但是,Backend的模型继承自EntityData
,它是WindowsAzure.MobileServices.Backend.Entity
的一部分。
问题是:我应该将WindowsAzure.MobileServices.Backend
包含在PCL中,还是应该将Backend和PCL模型分开?
EntityData
,现在它说,它是WindowsAzure.Mobile.Service
的一部分。那更好,但问题是一样的:模型应该存储在哪里?
EDIT2:尝试添加Azure Mobile Services .NET Backend Entity Framework
,并希望在我的PCL项目中安装大量其他内容,例如AspNet.WebApi.Owin
和AspNet.Razor
。似乎不是一个好主意...
答案 0 :(得分:1)
我所做的是创建aload DTO / View Models并将它们粘贴在PCL中,显然就像你提到的那样你不能使用某些类型,所以你在服务器上创建了mappers等。我说将它们全部分开并传输基本类型。
然后我在我的网络和移动项目之间分享这个,并且可以自由地来回传递这些对象,我认为它的效果非常好。
您可能想要考虑的一件事是对您的模型进行版本控制,因为人们可能会保留较旧版本的程序(或者如果它们已经过时则停止服务)。
所以我可能有LoginModelV1,LoginModelV2等。在服务器上你可以选择接受两个功能或只接受最新功能。