Open棟梁

**Open棟梁**は、2007年に株式会社日立システムアンドサービスで開発され、2014年に株式会社日立ソリューションズからオープンソースとしてリリースされた、.NET用アプリケーションフレームワークである。**OSSコンソーシアム**の**.NET開発基盤部会**（現、開発基盤部会）によってフォークされGitHub上の**Open棟梁プロジェクト** リポジトリに格納されている。2017年にはバージョン 2.0 がリリースされた。2020年以降はプロジェクト・オーナーの転籍による開示元のオーナーシップ問題のため、コミュニティ主導での開発が継続される予定である。

## 概要
### 1.x系
* コンセプトは「QCDFの向上」（QCDF : Quality = 品質, Cost = コスト, Delivery = 納期, Flexibility = 柔軟性）

* エンタープライズ分野のビジネス・アプリケーションの開発プロジェクトを主要なターゲットにしている。

* 以下の要素から構成されている。
** プロジェクト・テンプレート
** フレームワーク（フルスタック、標準化フレーム）
** ツール（開発支援ツール、自動生成ツール）
** 部品（クラスライブラリ）
** ドキュメント類（利用ガイド、チュートリアル）

* 中核となるフレームワーク部分の構成は、
** 一般的な「ビジネス・アプリケーションの論理 3 階層構成」に加え、
** それぞれの階層が「ベースクラス1」、「ベースクラス2」、「サブクラス」からなる3つのクラス継承階層から構成される。
*** この「ベースクラス2」をカスタマイズ可能レイヤとして、プロジェクトや企業毎にカスタマイズが可能な構造となっているのが特徴である。
*** 「ベースクラス1」はフレームワークの本体である（制御の反転により「ベースクラス2」、「サブクラス」の処理を呼び出す）。
*** また、「サブクラス」は業務処理を実装するレイヤとなっている。

* ランタイム、には、ASP.NET、ADO.NETなどのデファクト・スタンダードなフレームワークを使用しており、Open棟梁プロジェクトは、エンタープライズ分野のビジネス・アプリケーション開発に必要なレイヤに注力している。

* プロジェクトへは、プロジェクト毎のアーキテクチャを反映させたプロジェクト・テンプレートを使用して導入される。このため大規模なプロジェクトだけでなく、小規模なプロジェクトにも適用することが可能になっている。

* 「ベースクラス1」、「ベースクラス2」をプロジェクト・テンプレートで固めて頒布することにより、大規模プロジェクトにおけるクロスベンダ開発やオフショア開発で真価を発揮する。

### 2.x系
* コンセプトとして 1.x 系の「QCDFの向上」に、「迅速なスタートアップの立ち上げの実現」が追加された。

* サービス開発や、エンタープライズ分野の事業システムの高度化、SoR (Systems of Record)と、SoE (Systems of Engagement)の融合を図る先進的なプロジェクトを主要なターゲットにしている。

* 追加されたサポート。
** ASP.NETのWeb Forms、MVC、WebAPIのプロジェクト・テンプレートにバンドル＆ミニフィケーションやCDN、NuGet対応などのモダナイゼーションが施された。
** サービス開発に必要な、OAuth2.0、OpenID Connect認証機能や、オンライン決済サービス等の外部サービスとの連携機能が追加された。
** Microservices 開発への対応、モダンブラウザへの対応が追加された。
** NuGetへのライブラリ登録 https://www.nuget.org/packages?q=Touryo
** GitHub Wiki でのチュートリアル公開 https://github.com/OpenTouryoProject/OpenTouryo/wiki
** Financial-grade API、SAML対応
** .NET Standard、.NET Core対応
** Docker、Docker Compose、Kubernetesでの動作確認。
** OAuth2.0、OpenID Connectアーキテクチャへの対応（FrontendTemplatesリポジトリ、ResourceServerTemplatesリポジトリの新設）

### 3.x系
OAuth2.0認証基盤のIoT転用から、IoT エッジ・コンピューティング → ビッグデータ → AIへのシフトを検討している。

## ライセンス
基本的に、以下のように構成されており、SIでの商用利用も可能。

* ライブラリ部Apache License, Version 2.0
* テンプレート部MITライセンス
* プロジェクト・テンプレート部Visual Studioが生成したプロジェクト・テンプレート部は、マイクロソフト社の再頒布可能コードの条件を遵守する。

## EOLについて
今の所、EOLの予定はない。
* 1.x系については、メンテナンス・フェーズに突入しているが、維持・保守はコミュニティで継続の予定。
* 新規開発についても、比較的上位のスタックに位置するプロダクトのため、新技術の登場の度、新プロジェクトが起案される。
* 世の中の開発のニーズが無くならない限り（、人的リソースの問題を除き）、開発は継続される予定である。

## リソース
ごく一部の内部用ドキュメントを除いてすべてオープンソース化されており、ダウンロードで無償入手が可能。

* OpenTouryo https://github.com/OpenTouryoProject/OpenTouryo開発者用リポジトリ：開発母体

* OpenTouryoTemplates https://github.com/OpenTouryoProject/OpenTouryoTemplates利用者用リポジトリ：
** プロジェクト向けテンプレート作成のベース
** 本テンプレートとチュートリアルを使用して評価が可能。

* OpenTouryoDocuments https://github.com/OpenTouryoProject/OpenTouryoDocuments各種ドキュメント
** 利用ガイド（User guide）
** チュートリアル（Tutorial）

* MultiPurposeAuthSite (Repository) https://github.com/OpenTouryoProject/MultiPurposeAuthSiteOAuth2.0、OpenID Connect、SAML認証基盤

* OpenTouryo for OAuth2 OIDC ArchitectureAnd MultiPurpose Mobile Backend (Title)
** FrontendTemplates (Repository) https://github.com/OpenTouryoProject/FrontendTemplatesNative、Hybrid、SPAなどのフロントエンドのテンプレート
** ResourceServerTemplates (Repository) https://github.com/OpenTouryoProject/ResourceServerTemplatesOAuth2.0、OpenID ConnectのResource Serverテンプレート

## 外部リンク
* GitHub https://github.com/
** OpenTouryoProject (Organization) https://github.com/OpenTouryoProject
*** OpenTouryo (Repository) https://github.com/OpenTouryoProject/OpenTouryo
*** OpenTouryo (Wiki) https://github.com/OpenTouryoProject/OpenTouryo/wiki
*** OpenTouryoTemplates (Repository) https://github.com/OpenTouryoProject/OpenTouryoTemplates
*** OpenTouryoDocuments (Repository) https://github.com/OpenTouryoProject/OpenTouryoDocuments
*** MultiPurposeAuthSite (Repository) https://github.com/OpenTouryoProject/MultiPurposeAuthSite
*** OpenTouryo for OAuth2 OIDC ArchitectureAnd MultiPurpose Mobile Backend (Title)
**** FrontendTemplates (Repository) https://github.com/OpenTouryoProject/FrontendTemplates
**** ResourceServerTemplates (Repository) https://github.com/OpenTouryoProject/ResourceServerTemplates
** DevInfraWGinOSSConsortium (Organization) https://github.com/NetDevInfraWGinOSSConsortium
*** LocalServicesOnDocker https://github.com/NetDevInfraWGinOSSConsortium/LocalServicesOnDocker
*** MVCSampleOnDocker (Repository) https://github.com/NetDevInfraWGinOSSConsortium/MVCSampleOnDocker
*** OAuth2OidcArchitOnDocker (Repository) https://github.com/NetDevInfraWGinOSSConsortium/OAuth2OidcArchitOnDocker

* OSSコンソーシアム http://www.osscons.jp/
** 開発基盤部会 - OSSコンソーシアム http://www.osscons.jp/dotNetDevelopmentInfrastructure/
*** Blog http://www.osscons.jp/dotNetDevelopmentInfrastructure/Blog/
*** Open棟梁について http://www.osscons.jp/dotNetDevelopmentInfrastructure/OpenTouryo/
*** 提供サービス一覧 http://www.osscons.jp/dotNetDevelopmentInfrastructure/Service/
** Wiki
*** Open棟梁 http://opentouryo.osscons.jp/
*** 開発基盤部会 http://dotnetdevelopmentinfrastructure.osscons.jp/
*** MS系技術情報 http://techinfoofmicrosofttech.osscons.jp/