具有MVC应用程序和移动应用程序的WCF

具有MVC应用程序和移动应用程序的WCF,wcf,asp.net-mvc-4,xamarin,ninject,Wcf,Asp.net Mvc 4,Xamarin,Ninject,我只是想知道如何处理我的项目。 在我的申请中,我有: MVC4项目 具有接口和模型的DB_项目 带有接口implemantation的Repository\u项目-我正在使用Ninject 下一步是移动应用程序(XAMARIN),问题是: 我应该选择什么样的WCF项目,为什么…WCF服务应用程序或WCF服务库 我应该像其他项目一样添加此项目还是创建单独的项目 选择WCF项目后,如何使用对存储库项目的引用-这是正确的方法吗 我会给你一些考虑的想法。< /P> 1-您的Xamarin应用程序必须与暴

我只是想知道如何处理我的项目。 在我的申请中,我有:

  • MVC4项目
  • 具有接口和模型的DB_项目
  • 带有接口implemantation的Repository\u项目-我正在使用Ninject
  • 下一步是移动应用程序(XAMARIN),问题是:

  • 我应该选择什么样的WCF项目,为什么…WCF服务应用程序或WCF服务库

  • 我应该像其他项目一样添加此项目还是创建单独的项目

  • 选择WCF项目后,如何使用对存储库项目的引用-这是正确的方法吗


  • 我会给你一些考虑的想法。< /P> 1-您的Xamarin应用程序必须与暴露于internet的asp.net web api/mvc通信。出于许多原因,我不建议将WCF服务公开给internet

    2-在数据层中,存储库是访问EF dbContext而不是调用WCF服务的抽象

    3-仅在合理的情况下增加复杂性。如果您愿意为xamarin应用程序创建WCF项目进行通信,那么我几乎不鼓励您。如果您有一些安全策略,在web api需要中间层来访问数据库的情况下,可以在您的情况下创建WCF项目,该策略强制实施三层体系结构。否则,你不需要它

    两层:

    Xamarin->web api->SQL Server

    三层:


    Xamarin->web api->wcf->SQL Server

    感谢您的回答。我的应用程序中有3层。现在我已经在我的应用程序中创建了另一个项目——WCF服务应用程序。在这个项目中,我添加了ADO.NET实体数据模型。这是正确的方向吗?你能看一下我的答案吗?很抱歉,我无法编辑上一个答案。你创建了一个.Data类库项目,其中包含EF DbContext。因此,您可以在EF实体所在的位置创建.Entities类库项目。您可以使用新的ado.net实体数据模型->生成EF实体和DbContext,并从数据库中选择“代码优先”。然后,您的服务应用程序必须引用.实体和.数据层并使用它们。我有点困惑。现在我的应用程序看起来像这样:1。MVC_项目2。服务项目3。项目4。DB_项目5。WCFServiceApplication正如您所建议的,我已将EntityDataModel移动到DB_项目中。现在:MVC_Controller->Service->Repositories->DB(我可以使用NINJECT在DB表中获取或设置值)。下一步:如何在WCFSeriviceApplication中使用服务层?我尝试使用Ninject.Extension.WCF,但在服务层中创建存储库实例时出现错误。如果有三层体系结构,其中mvc层无法直接访问数据库,则需要通过远程代理类从mvc控制器调用WCF服务应用程序。这个.NET类可以通过三种方式从WCF模式生成:1-从mvc项目添加服务引用。2-使用wsdl.exe命令行工具。3-查找动态代理(如果NINJECT可用)。