【问题标题】:ASP.NET MVC 5 / WebAPI 2 / Xamarin / AngularJS / Solution Visual StudioASP.NET MVC 5 / WebAPI 2 / Xamarin / AngularJS / 解决方案 Visual Studio
【发布时间】:2015-02-18 10:57:52
【问题描述】:

我目前有一个包含 3 个项目的视觉工作室:

  • MyApp.Models :包含我的所有具有 Code-First 迁移的模型
  • MyApp.Web : 包含我的主网站,仅使用 MVC
  • MyApp.Pass :包含一个子域网站,供客户使用。

我们有新项目,我们需要这些东西:

  • 可供我的主网站、我的通行证网站、后台网站和移动应用程序使用的 WebAPI
  • 使用 AngularJS 构建的使用 WebApi 的后台网站
  • 使用 Xamarin 构建的使用 WebApi 的移动应用程序

如何将我的 Visual Studio 解决方案分层,以便只有一个 WebAPI 可供我所​​有不同的网站/移动应用程序使用?

最好的问候,

【问题讨论】:

  • 嗯,我不确定我是否理解这里的问题?您可以从任何地方使用 Web api 项目。您甚至不需要在同一个解决方案中的项目,它只需要处于活动状态,您可以从任何其他解决方案中调用它

标签: angularjs visual-studio asp.net-web-api xamarin asp.net-mvc-5


【解决方案1】:

我目前正在构建一个辅助项目——viewingbooker.com,这正是您正在寻找的设置。

您需要记住的是,web api 和 mvc 网站有两种不同的身份验证技术。 Web Api 2 使得授权用户非常容易,例如。 xamarin 移动应用程序。令牌已发行,一般在不活动的 14 天内有效。

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

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

请记住,移动应用程序不是您可以快速修复的网站。如果您最终为网站和移动应用程序使用相同的模型和控制器,那么您所做的任何更改都会破坏您的移动应用程序,并且并非所有用户都在其移动设备上启用了自动升级功能。

所以我建议你有一个标准的网站,有自己的模型和控制器,由 angular/knockout 等使用。Web API 2 项目有自己的模型和控制器。业务逻辑项目以其接口可访问的不同服务的形式,因此更容易对其进行测试。并且不要对不同控制器、网站/移动模型的代码冗余过于偏执。这种方法将来会为您省去很多麻烦——从经验中谈起。

【讨论】:

  • 好的,所以我可以有这样的东西:- MyApp.Web(使用 WebAPI 的 MVC 5 应用程序)- MyApp.WebPass(使用 WebAPI 的 MVC 5 应用程序)- MyApp.WebBackOffice(MVC 5使用 WebAPI 的应用程序)- MyApp.MobileApp(Xamarin 项目使用 WebAPI)- MyApp.Models(所有具有迁移的 Code-First 类)- MyApp.WebAPI(我的所有项目都将使用的 WebAPI)
  • 不,不完全是。将您的业务逻辑放在一个单独的项目中。将 MyApp.Web 和 MyApp.WebAPI 都视为与您的业务逻辑对话并返回数据的数据访问点。 MVC 5 不应使用 WebAPI 等。
猜你喜欢
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 2021-04-19
  • 1970-01-01
  • 2014-05-29
  • 1970-01-01
  • 2018-08-09
  • 2018-09-17
相关资源
最近更新 更多