スポンサーリンク
スポンサーリンク

.NET 8.0 + ASP.NET Core(MVC) + Highcharts + Dapper + SQLite で実装する 注釈付きグラフ表示処理

.NET CoreASP.NET CoreC#ChartDapperHTMLJavaScriptjsonSQLiteVisual Studioオープンソースツール・サービスデータベースマーケティングマネジメント分析政治時事問題経済政策開発方式

.NET 8.0 の ASP.NET Core アプリ(MVC)に Highchartsを追加し、Dapperを通して取得した SQLiteデータベースのデータをグラフ表示するサンプルを作成しました。
ソースコードは GitHub で公開しています。

日本の歴代内閣と日経平均株価を列挙し、それぞれの関係を示すグラフになっています。
現代貨幣理論(MMT)とマクロ経済政策が理解されている現代だから言えるけど、日本のバブル崩壊で1990年代に発生したあらゆる負債を日銀が全て買い取っていれば、日本のバブル崩壊なんて存在せず、夕張市も破綻せず、未だに「Japan as No.1」だった。
財務省はいまだに日本経済を崩壊させ続けてるけど。
不動産バブル崩壊に伴う中国経済の低迷だって、1京円と言われる不動産業界と地方の負債を、中国政府が全て買い取れば中国経済は直ぐ復活する。

 

Highcharts

グラフの形式は Highcharts with annotations にしました。
Highchartsを商用利用する場合は 有料 です。

 

データベース

SQLiteの管理ツールは DB Browser for SQLite を使用。
使用したバージョンは 2024/10/29時点で最新の v3.13.1。
https://sqlitebrowser.org/blog/version-3-13-1-released/

 

DB Browser for SQLite で SQLiteのデータベースファイルを作成。
日本の歴代内閣、日経平均株価の過去データは、SQLiteデータベースファイルに登録済み。

 

ソースコード構成

今回使った Visual Studio プロジェクト テンプレートは、Visual Studio 2022 + .NET 8 + ASP.NET Core MVC、HTTPS無し。

 

NuGet パッケージ インストール

System.Data.SQLiteパッケージをインストール

使用したバージョンは 2024/11/6時点で最新の v1.0.119。

 

Dapperパッケージをインストール

使用したバージョンは 2024/11/6時点で最新の v2.1.35。

 

Newtonsoft.Jsonパッケージをインストール

使用したバージョンは 2024/11/6時点で最新の v13.0.3。

 

ソースコード変更内容を解説

 

/DB/EWise.db

SQLiteデータベースファイル。日本の歴代内閣、日経平均株価の過去データ登録済み。

 

/WebApplication1/WebApplication1.sln

この変更は無視して下さい。ソリューションを作り直した名残なので。

 

/WebApplication1/WebApplication1/appsettings.json

SQLiteデータベースのコネクションストリングを追加。

 

/WebApplication1/WebApplication1/Consts/StaticData.cs

SQLiteデータベースのコネクションストリングを、アプリケーションの static領域に保持し、コネクションストリングの参照を楽にする。

 

/WebApplication1/WebApplication1/Controllers/HomeController.cs

Topページが表示される際に実行される HomeControllerの Index()メソッドで、日本の歴代内閣、日経平均株価のデータを取得し、ViewModeに纏めて Viewへ渡している。

 

/WebApplication1/WebApplication1/Models/M内閣.cs

日本の歴代内閣用データモデルクラス。

 

/WebApplication1/WebApplication1/Models/M日経平均株価.cs

日経平均株価用データモデルクラス。

 

/WebApplication1/WebApplication1/Models/ViewModel/IndexViewModel.cs

Topページ用の ビューモデルクラス。

 

/WebApplication1/WebApplication1/Program.cs

SQLiteデータベースのコネクションストリングを、アプリケーションの static領域に保持する処理を追加。

 

/WebApplication1/WebApplication1/Properties/launchSettings.json

この変更は無視して下さい。ソリューションを作り直した名残なので。

 

/WebApplication1/WebApplication1/Sqls/Sql内閣.cs

SQLiteデータベースから日本の歴代内閣のデータを取得する処理を作成。

 

/WebApplication1/WebApplication1/Sqls/Sql日経平均株価.cs

SQLiteデータベースから日経平均株価のデータを取得する処理を作成。

 

/WebApplication1/WebApplication1/Views/Home/Index.cshtml

Visual Studio プロジェクトを新規作成した際、デフォルトで実装されている「Welcome」欄は削除。
Topページが表示される際に実行される HomeControllerの Index()メソッドから受け取った、日本の歴代内閣、日経平均株価のデータを、JavaScriptの renderChart()メソッドへ渡す処理を追加。
renderChart()メソッドの実体は /wwwroot/js/site.js に実装しています。

 

/WebApplication1/WebApplication1/Views/Shared/_Layout.cshtml

Highchartsを含む JavaScriptライブラリを <Head>内で読み込むように実装。

 

/WebApplication1/WebApplication1/WebApplication1.csproj

インストールした System.Data.SQLite、Dapper、Newtonsoft.Json、NuGetパッケージが追加されている。

 

/WebApplication1/WebApplication1/wwwroot/js/annotations.js

Highchartsの ローカルJavaScriptライブラリ。
CDNに接続できなかった場合に備えて、Highchartsの JavaScriptライブラリをローカルにも保持。

 

/WebApplication1/WebApplication1/wwwroot/js/highcharts.js

Highchartsの ローカルJavaScriptライブラリ。
CDNに接続できなかった場合に備えて、Highchartsの JavaScriptライブラリをローカルにも保持。

 

/WebApplication1/WebApplication1/wwwroot/js/site.js

Highchartsの JavaScriptライブラリを使い、日本の歴代内閣と日経平均株価のグラフを表示する renderChart()メソッドを作成。

 

コメント

タイトルとURLをコピーしました