ASP.NET MVC 5/WebAPI 2/Xamarin/AngularJS/Solution Visual Studio
我目前拥有一个包含3个项目的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可供我所有不同
- 模型:包含所有代码优先迁移的模型
- Web:包含我的主网站,仅使用MVC
- MyApp.Pass:包含一个子域网站,供客户使用
- 我的主网站、我的通行证网站、后台网站和移动应用程序都可以使用的WebAPI
- 使用WebApi的后台网站,使用AngularJS构建
- 使用使用Xamarin构建的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等。