概要
- 過去 3 年間で、フル機能のソフトウェア パッケージを C# で構築してきました。
- 私たちのソフトウェアは、アプリケーションに必要な多くの低レベルの配管を処理するように設計されているため、開発者はすべての詳細ではなく、解決しようとしている特定の問題に集中できます。これにより、開発とリリースの時間が大幅に短縮されました
- そのため、コードはさまざまなプロジェクトに分割され、論理的に分離されます (たとえば、フロントエンド MVC アプリ、サービス レイヤー、コア フレームワーク レイヤーなど)。
- 私たちのコア フレームワーク プロジェクトには多くの機能が組み込まれており (アプリケーションの主要な「内臓」)、すべての人になじみのあるさまざまな名前空間 (データ アクセス、IO、ログ記録、メールなど) に慎重に編成されています。
- これを最初に構築したときは、常に私たちのチームがターゲットオーディエンスになることを意図しており、開発者はさまざまな新しい機能をコーディングし、必要に応じてフレームワークに追加しました.
チャレンジ
- 現在、上司は、コードベースをサードパーティの開発者や社外のチームに公開できるようにしたいと考えています。これらのサードパーティの人々は、私たちのコア ライブラリを直接利用して、私たちのサーバーにデプロイされる独自のモジュールを構築できる必要があります。アプリケーションの性質上、RESTやSOAPなどを介して機能を公開することで解決できるものではありません。コアライブラリに対して開発してコンパイルできる、私たち自身のような環境で動作する必要があります。リリース用の独自の DLL
- これは、知的財産 (コードの内部動作を保護できなければならない)、配布、展開、バージョン管理、テスト、およびリリースに関して多くの懸念と課題を引き起こします。おそらく最も重要なのは、これらに最もよく適合するようにフレームワークを形成する方法です。ニーズ。
どのようなアドバイスをしますか? これにどのようにアプローチしますか?どのようなものを変えたいと考えていますか、またはどのようなデザインアプローチに移行しようとしていますか? これらの質問は非常に自由で、おそらく漠然としていることは承知していますが、主に、同様の課題に直面している可能性のある人々から、あなた自身のバックグラウンドからのアドバイス、リソース/チュートリアル、またはストーリーを探しています. ありがとう!