我[最终]开始将Microsoft .NET Entity Framework视为我产品的数据库层。理想情况下,我将使用它来坐在数据库和WCF之上,并由网站和富客户端以及移动设备使用。
当前版本的EF是否支持跨平台客户端?如果我构建一个Mac应用程序,一个Linux应用程序,一个iPad应用程序,Android应用程序等,它会工作吗?
它开箱即用,还是需要额外的编码来支持跨平台?如果支持,是否需要为其他客户端安装额外的占用空间?
答案 0 :(得分:3)
对于我公司的一个项目,我们在顶部使用MSSQL数据库,EF模型层和WCF层来为经典ASP网站提供服务(ewwww;(,MVC2网站和iPhone / iPad应用程序。)答案是EF将编译成.NET程序集并需要帮助才能跨平台。如果你通过标准(一组)协议(如WCF)公开它,你可以轻松使用它。否则你将需要包装.NET程序集,基于每个平台,以某种形式的互操作性代码。
答案 1 :(得分:2)
不要在WCF服务之外公开任何特定于EF的实现,并且它对非Windows客户端也能正常工作。
使用普通的旧CLR对象(POCO)作为这些服务的接口(如果您愿意,使用EF POCO Generator创建),而不是EF的默认基于EntityObject的域模型,以确保没有客户端对EF的依赖。
答案 2 :(得分:1)
它适用于运行Windows上的.net框架和使用Mono的Linux。
对于IPod,Andriod和其他移动设备,如果您使用WCF / REST与服务器通信,则无需在mobil设备上运行数据库层。
答案 3 :(得分:0)
您只需要服务器部分来支持EF,它可能需要.Net运行时支持。然后,您将通过OData等标准协议公开您的数据。对于您的客户,您将与协议进行通信。