Asp.net web API 2 Web客户端和Web服务器开发的分离

Asp.net web API 2 separation Of Web client and web server development

我们的 Web 应用程序由 2 个团队开发。一个团队在客户端工作,有自己的开发分支,另一个在服务器端工作,也有自己的开发分支。客户端和服务器是 运行ning 分开的,每一个都作为一个网站在不同的端口上。这些网站在开发期间通过 IIS Express 托管,在生产中它们将 运行 通过 IIS。

我们的理想情况是每个团队都可以完全独立地开发,每当开发会话结束时,两个团队将他们的变更集合并到一个公共分支以便集成,然后每个团队合并回他们的开发分支,并继续。

为了完全分离,我们有 x2 个 SERVER 项目,一个处理真正的 HTTP 请求,另一个 "Stub server" 以默认值响应所有客户端 HTTP 请求,只是为了这样客户端团队就可以在不依赖服务器功能的情况下测试他们的代码。

问题是 "Stub server" 和真实服务器都使用客户端项目指向的相同端口。

这会导致许多烦人的错误(主要是服务器端团队)运行使用 "Stub server" 应用程序而不是真实的应用程序,在审查、测试等期间。唯一的解决方案我们是在每次 运行ning 之前/或发现我们 运行ning 错误的服务器之后,手动为真正的 web 服务器项目创建一个虚拟目录。

是否有更聪明的解决方案来克服这个烦人的问题?那会改善我们的生活!

如果我说的有任何愚蠢/不清楚的地方请纠正我(我是新手),或者询问更多细节,我会很高兴!

感谢各位帮手!

我相信您的问题更多地与构建自动化有关,然后与服务器配置有关。您真的应该将 存根服务器 真实服务器 保留在不同的端口中,并在客户端的某种构建过程中更改该端口。

如果您使用 AngularJS,那么我建议您使用 gulp 等常用工具在客户端应用程序的构建过程中创建步骤,或者咕噜声。您可以创建构建过程来设置全局变量或修改常量(例如 API 端点)并将它们命名为 local testing (将您的客户端指向存根服务器)和集成(针对真实服务器)。

请注意,您可以轻松 integrate those build processes into Visual Studio,使它们成为您全局 debug/build 流程的一部分。

这是一个简单的 gulp 任务,可用于替换任何文件中的文本:https://www.npmjs.com/package/gulp-replace