概述
- 在过去的 3 年里,我们用 C# 构建了一个功能齐全的软件包
- 我们的软件以这样一种方式构建,它可以处理应用程序所需的大量低级管道,以便我们的开发人员可以专注于他们试图解决的特定问题,而不是所有细节。这显着缩短了开发和发布时间
- 因此,代码被分解成不同的项目以给我们逻辑分离(例如前端 MVC 应用程序、服务层、核心框架层等)
- 我们的核心框架项目内置了很多功能(应用程序的主要“胆量”),并且已经精心组织成所有人都熟悉的各种命名空间(例如数据访问、IO、日志记录、邮件等)
- 当我们最初构建这个时,我们的目标始终是让我们的团队成为目标受众,我们的开发人员对各种新功能进行编码并根据需要添加到框架中。
挑战
- 现在老板希望能够向我们公司以外的第三方开发人员和团队开放我们的代码库。这些第 3 方人员需要能够直接利用我们的核心库并构建他们自己的模块,这些模块将与我们的服务器一起部署在我们的服务器上。仅仅由于应用程序的性质,我们无法通过 REST 或 SOAP 或类似的方式向它们公开功能来解决问题,它们需要在类似于我们自己的环境中工作,在那里它们可以针对我们的核心库进行开发和编译他们自己的 DLL 用于发布
- 这在知识产权(我们必须能够保护我们代码的内部运作)、分发、部署、版本控制和测试和发布方面提出了许多担忧和挑战,也许最重要的是我们将如何塑造框架以最好地满足这些要求需要。
你会提供什么建议?你会如何处理这个问题?你希望改变什么样的事情,或者你希望转向什么样的设计方法?我意识到这些问题非常开放,甚至可能含糊不清,但我主要是从可能面临类似挑战的人那里寻找来自您自己背景的任何建议、资源/教程或故事。谢谢!