Open 棟梁は、.NET Framework と .NET Core をベースとしたアプリケーション フレームワークです。
このファイルの英語版はこちらから。
- Open 棟梁の本体と同梱されるサンプルアプリの実行手順は以下のとおりです。
- Open 棟梁を使用したアプリ開発を行う場合のセットアップはコチラをご参照下さい。
- コーディング エージェントで本体開発を行う場合は、先に AGENTS.md をお読みください。
-
あらかじめ、Visual Studio (若しくは Visual Studio Code と .NET系の SDK と Extension)をインストールしておいてください。
-
また、Open 棟梁がサポートしている DBMS 中から使用するものを準備してください。LocalServicesOnDocker が便利です。
-
サポートしている データプロバイダは、Touryo.Infrastructure.Public.Db から確認できます。
-
正式サポートされているデータプロバイダは「SQL/OLE/ODBC/ODP/MCN/NPG」です。
-
現在は除外されていますが「DB2/HiRDB/OracleClient」は雛形があるのでエージェントなどを活用してセルフ・サポートすることは可能です。
-
略号とADO.NETデータプロバイダの名前空間
- SQL:Microsoft.Data.SqlClient
- OLE:System.Data.Odbc
- ODBC:System.Data.OleDb
- ODP:Oracle.ManagedDataAccess.Client
- MCN:MySql.Data.MySqlClient
- NPG:Npgsql
- DB2:IBM.Data.DB2
- HiRDB:Hitachi.HiRDB
- OracleClient:System.Data.OracleClient
「root」フォルダを、C ドライブ直下にコピーしてください。C ドライブ直下以外にコピーすると、Windows のファイルパスの最大文字長の制限により、ビルドに失敗することがあります。
サンプルアプリケーションの実行には、Northwind データベースが必要です。 以下のマイクロソフトのサイトから、Northwind データベースのセットアップ スクリプトをダウンロードし、インストールしてください。
- Download: NorthWind and pubs Sample Databases for SQL Server 2000 - Microsoft Download Center
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23654
インストールが成功すると、C ドライブ直下に "SQL Server 2000 Sample Databases" フォルダが作成されます。
SQL Server 2012 以降をお使いの場合は、このフォルダにある instnwnd.sql ファイルをエディタなどで開き、以下のコードをコメントアウトしてください。(SQL Server 2012 以降では sp_dboption システム ストアド プロシージャがないため)
exec sp_dboption 'Northwind','trunc. log on chkpt.','true'
exec sp_dboption 'Northwind','select into/bulkcopy','true'コマンドプロンプトで、下記コマンドを実行してください。
(以下のコマンドの中で、「SQLCMD.EXE」のフォルダパスは SQL Server のバージョンによって異なります。お使いのバージョンでのフォルダパスをご確認の上、コマンドを実行してください)
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S localhost\SQLExpress -E -i "C:\SQL Server 2000 Sample Databases\instnwnd.sql"- 各 DBMS に、空のデータベースを作成してください。
- C:\root\files\resource\Sql\[DBMS 名]\TestTable.txt を実行し、テスト用のテーブルを作成してください。
-
Open 棟梁のプログラムをビルドするときは、ビルドバッチファイルを実行してビルドします。
-
ビルドバッチファイルは、以下のフォルダにあります。
- C:\root\programs\
- C:\root\programs\CS
- C:\root\programs\VB
ビルドバッチはファイル名の先頭の番号がビルド順を表しています。 番号の小さいものから順に、基盤 → ツール → サンプルの順で積み上がる構成です。
| 番号 | 役割 |
|---|---|
0_ |
一括実行(0_ExecAllBat.bat が以下を順に呼び出します) |
1_ |
クリーン(bin / obj / packages などの削除) |
2_ |
フレームワーク本体(NuGet パッケージ化の対象となるアセンブリ) |
3_ |
Business 層(業務コードの親クラス/テンプレート) |
4_ |
参照用アセンブリのコピー、付属ツール |
5_ 6_ 8_ 10_ |
各種サンプルアプリケーション |
7_ |
Web サービスの受け口(フレームワーク側) |
9_ |
(C# 側では未使用。VB 側で WPF クライアントに使用) |
y_ |
単体テストのコード |
z_ |
共通処理(各バッチの先頭から呼ばれます。単体では実行しません) |
0_ExecAllBat.batを実行すれば、基盤からサンプルまでが一括でビルドされます。 個別のバッチは、一部だけを作り直したいときに使います。y_(単体テスト)は0_ExecAllBat.batに含まれません。 単体テストを動かす場合は、 後述の2_RunAllTests.ps1を使うか、y_のバッチを個別に実行します。- ファイル名に
Coreが付くもの、またはnetcore100を含むものが .NET 10.0 向け、 付かないもの(net48)が .NET Framework 4.8 向けです。 1_のクリーンは繰り返し実行されます。基盤とサンプルを別々のタイミングで 作り直すためで、このため全体をビルドし終えた時点では、 最後にビルドされたもの以外の中間生成物は残りません。
-
各バッチは先頭で
z_Common.batを呼び、次を用意します。- ビルドツールの解決 …
vswhereで MSBuild を探します(エディションに依存しません) - ビルド構成 …
BUILD_CONFIG(Debug / Release)とDEBUG_TYPE - NuGet の設定 … プロキシ、および復元時に使う MSBuild の明示
- ビルドツールの解決 …
-
z_Common2.batは同じ役割の devenv 版です。MSBuild では通らないが
devenv なら通る、というケースに備えて残されているもので、通常は使いません。 -
Open 棟梁 が利用するライブラリは、NuGet 経由でダウンロードします。このため、プロキシ環境では、正常に NuGet ライブラリがダウンロードできないことがあります。プロキシ環境をお使いの場合は、以下のように http_proxy 環境変数を定義してください。
- C:\root\programs\CS\z_Common.bat および C:\root\programs\VB\z_Common.bat を、テキストエディタで開きます。
- 既定では、http_proxy 環境変数の定義部分はコメントアウトされていますので、"@rem" を削除して、このコメントを解除します。
- http_proxy 環境変数に、お使いのプロキシ情報を設定してください。
ビルドが通ることの確認、単体テスト、サンプルの疎通確認は、
C:\root\programs\ にあるスクリプトで行えます。いずれも終了コードで合否が分かります。
cd C:\root\programs
.\0_RunAll.ps1 # 下記 3 本をまとめて実行| スクリプト | 内容 |
|---|---|
1_BuildAll.ps1 |
全ビルド(0_ExecAllBat.bat 相当)。エラー・警告を集約して判定 |
2_RunAllTests.ps1 |
単体テストを実行し、結果を前回のものと比較 |
3_SmokeTest.ps1 |
サンプルアプリケーションを起動して疎通を確認 |
手順と判定基準は、同じフォルダの
BUILDING.md / TESTING.md /
SMOKETEST.md を参照してください。
リリース時の作業全体は RELEASE.md にまとめています。
管理者としてコマンドプロンプトを起動し、下記コマンドを実行します。
sc config aspnet_state start= auto
net start aspnet_state- 以下のファイルを開いてください。
- web.config または app.config (.NET Coreの場合は、appsettings.json) を開き、
実際のデータベース環境に合わせて connectionString セクションの値を修正してください。 - サンプルアプリケーションを実行してください。
ログイン画面が出た場合は、任意の英数字を入力してください。(既定ではパスワード認証を行っていません)
- ASP.NET Web Forms
- C:\root\programs\CS\Samples\WebApp_sample\WebForms_Sample\WebForms_Sample.sln
- C:\root\programs\VB\Samples\WebApp_sample\WebForms_Sample\WebForms_Sample.sln
- ASP.NET MVC
- C:\root\programs\CS\Samples\WebApp_sample\MVC_Sample\MVC_Sample.sln
- C:\root\programs\VB\Samples\WebApp_sample\MVC_Sample\MVC_Sample.sln
- Windows Forms
- C:\root\programs\CS\Samples\2CS_sample\2CSClientWin_sample\2CSClientWin_sample.sln
- C:\root\programs\VB\Samples\2CS_sample\2CSClientWin_sample\2CSClientWin_sample.sln
- WPF
- C:\root\programs\CS\Samples\2CS_sample\2CSClientWPF_sample\2CSClientWPF_sample.sln
- C:\root\programs\VB\Samples\2CS_sample\2CSClientWPF_sample\2CSClientWPF_sample.sln
- Windows Forms
- 通常の Windows フォームアプリケーション
- C:\root\programs\CS\Samples\WS_sample\WSClient_sample\WSClientWin_sample\WSClientWin_sample.sln
- C:\root\programs\VB\Samples\WS_sample\WSClient_sample\WSClientWin_sample\WSClientWin_sample.sln
- ClickOnce アプリケーション
C:\root\programs\CS\Samples\WS_sample\WSClient_sample\WSClientWinCone_sample\WSClientWinCone_sample.sln
- 通常の Windows フォームアプリケーション
- WPF
- C:\root\programs\CS\Samples\WS_sample\WSClient_sample\WSClientWPF_sample\WSClientWPF_sample.sln
- C:\root\programs\VB\Samples\WS_sample\WSClient_sample\WSClientWPF_sample\WSClientWPF_sample.sln
VB 版は、現時点で .NET Core 版の提供予定はありません。 以下はいずれも C# のみです。
- C:\root\programs\CS\Frameworks\Infrastructure
- C:\root\programs\CS\Frameworks\Infrastructure\ServiceInterface\ASPNETWebServiceCore
- C:\root\programs\CS\Frameworks\Tools
- C:\root\programs\CS\Samples4NetCore
Licenseディレクトリをご確認ください。
ご利用いただく中で、バグを発見されましたら、issue としてご連絡ください。
コミュニティで内容を確認し、適切に対応いたします。
- NuGetまたはnpmなどのパッケージ・マネージャーから取得できるライブラリは、Open 棟梁に同梱されないため、輸出管理する必要はありません。
- これ以外のライブラリ、つまりパッケージ・マネージャーから入手できないライブラリは、必要に応じて自身で入手・同梱して輸出する必要があります。この場合、Open棟梁のライセンスに、使用するライブラリのライセンスを添付する必要があります。
Open 棟梁をご利用いただくにあたり、OpenTouryoDocument リポジトリのドキュメントをご利用いただけます。