Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.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
ASP.NET MVC 5/WebAPI 2/Xamarin/AngularJS/Solution Visual Studio_Angularjs_Visual Studio_Asp.net Web Api_Xamarin_Asp.net Mvc 5 - Fatal编程技术网

ASP.NET MVC 5/WebAPI 2/Xamarin/AngularJS/Solution Visual Studio

ASP.NET MVC 5/WebAPI 2/Xamarin/AngularJS/Solution Visual Studio,angularjs,visual-studio,asp.net-web-api,xamarin,asp.net-mvc-5,Angularjs,Visual Studio,Asp.net Web Api,Xamarin,Asp.net Mvc 5,我目前拥有一个包含3个项目的visual studio: 模型:包含所有代码优先迁移的模型 Web:包含我的主网站,仅使用MVC MyApp.Pass:包含一个子域网站,供客户使用 我们有新项目,我们需要这些东西: 我的主网站、我的通行证网站、后台网站和移动应用程序都可以使用的WebAPI 使用WebApi的后台网站,使用AngularJS构建 使用使用Xamarin构建的WebApi的移动应用程序 我如何分层我的visual studio解决方案,使其只有一个WebAPI可供我所有不同

我目前拥有一个包含3个项目的visual studio:

  • 模型:包含所有代码优先迁移的模型
  • Web:包含我的主网站,仅使用MVC
  • MyApp.Pass:包含一个子域网站,供客户使用
我们有新项目,我们需要这些东西:

  • 我的主网站、我的通行证网站、后台网站和移动应用程序都可以使用的WebAPI
  • 使用WebApi的后台网站,使用AngularJS构建
  • 使用使用Xamarin构建的WebApi的移动应用程序
我如何分层我的visual studio解决方案,使其只有一个WebAPI可供我所有不同的网站/移动应用程序使用


致以最诚挚的问候,

我目前正在构建一个侧边项目-viewingbooker.com,这正是您想要的设置

您需要记住的是,WebAPI和mvc网站有两种不同的身份验证技术。WebAPI2让授权用户使用xamarin移动应用程序变得非常容易。代币已发行,通常在14天不活动期间有效

我的解决方案中几乎没有项目。最重要的是,您的业务逻辑需要一个单独的项目。我还使用DI来测试我的业务逻辑

对于网站,我将数据作为来自标准控制器的JSON提供。对于我的移动应用程序,我有一个单独的web api项目,分别为数据提供服务。它们都使用业务逻辑项目,因此它将代码冗余保持在最低限度

请记住,移动应用程序不是一个可以快速修复的网站。如果你的网站和移动应用程序使用相同的型号和控制器,你所做的任何更改都会阻止你的移动应用程序,而且并非所有用户的移动设备都启用了自动升级功能


所以我建议你有一个标准的网站,它有自己的模型和控制器,被angular/knockout等使用。WebAPI2项目有自己的模型和控制器。业务逻辑以不同服务的形式进行项目,这些服务可通过其接口访问,因此更容易对其进行测试。另外,对于不同的控制器、不同的网站/手机型号,代码冗余也不要过于偏执。这种方法在将来会让你省去很多头疼的事——从经验中说话。

嗯,我不确定我是否理解这里的问题?您可以在任何地方使用web api项目。您甚至不需要在同一个解决方案中使用该项目,它只需要处于活动状态,您可以从任何其他解决方案调用它OK,这样我就可以有这样的东西:-MyApp.Web(使用WebAPI的MVC 5应用程序)-MyApp.WebPass(使用WebAPI的MVC 5应用程序)-MyApp.WebBackOffice(使用WebAPI的MVC 5应用程序)-MyApp.MobileApp(Xamarin项目taht使用一个WebAPI)-MyApp.Models(所有迁移的代码优先类)-MyApp.WebAPI(我的所有项目都将使用的WebAPI)不完全是。将您的业务逻辑放在一个单独的项目中。将MyApp.Web和MyApp.WebAPI都视为与您的业务逻辑对话并返回数据的数据访问点。MVC 5不应使用WebAPI等。