首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.net核心地方开发项目组织

.net核心地方开发项目组织
EN

Stack Overflow用户
提问于 2020-02-10 09:16:38
回答 2查看 159关注 0票数 2

我对dotnet开发还比较陌生,并且有一个如何设置本地开发环境的问题。我有一个asp核心rest,它在内部使用不同的“服务”。这个项目比较庞大,所以我们已经将我们的服务分成了外部库,我们通过依赖关系引入了这些库。效果很好。唯一的问题是在集成新服务或开发现有服务的新特性时,我希望使用新的本地构建服务构建/测试api。

这个是可能的吗?处理这个用例是很容易的吗?在开发期间删除外部依赖项并添加本地依赖项?我搜索并搜索这里的堆栈溢出,但没有找到任何解决方案。

谢谢你的帮忙!

问候

塞巴斯蒂安

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-11 06:09:01

我使用csproj文件上的Condition元素上的ItemGroup属性与某种本地标志文件一起解决了这个问题。csproj配置如下所示:

代码语言:javascript
复制
<!-- erp service -->
<ItemGroup Condition="Exists('..\.localdev_erp')">
  <ProjectReference Include="..\..\erp-svc\MyCompany.Service.Erp\MyCompany.Service.Erp.csproj" />
</ItemGroup>
<ItemGroup Condition="!Exists('..\.localdev_erp')">
  <PackageReference Include="MyCompany.Service.Erp" Version="1.0.9" />
</ItemGroup>

在本地创建和删除文件很容易,只有在添加/删除本地引用后才可能需要dotnet restore。这个解决方案的小缺点是,对于所有开发人员来说,都需要一个有点同质的本地环境。

我们将此解决方案用于以下用例:

  • 新服务的整合/入职
  • 新特性/新技术的探索性编程
  • 集成层中的bug搜索,可能需要在api和服务两方面编写回归测试。
票数 1
EN

Stack Overflow用户

发布于 2020-02-10 11:53:44

要调试nuget packages,可以使用符号包dlls一起发布符号。Visual studio支持允许下载符号和调试源代码的符号源。但问题可能更深..。

理想情况下,外部库应该有一个稳定的接口,可以通过库本身附近的自动测试进行测试。即使是重大的更改也不应导致调用代码中的任何更改和问题。在这种情况下,删除外部依赖并在开发期间添加本地依赖应该是可以的,因为它很少操作。

如果您经常需要调试包,这意味着这两个部分经常在一起进行更改。它可以表明下列问题:

  1. 包的代码和代码具有很高的耦合性。模块之间的边界选择失败。在这种情况下,考虑重新设计两个部分,使它们更加独立,减少耦合。独立的部分通常不需要一起调试它们。
  2. 这两个部分都有很高的凝聚力。在这种情况下,你肯定需要把它放在一起。
  3. 库有一个不稳定的接口。在这种情况下,保持它在一起,直到接口变得稳定。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60147249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档