##お手軽Linux(Ubuntu) GUIアプリ開発 初級 前編
2021/4月追記
Rider .net5 でのGUI開発に移行しています
UbuntuとRiderとC# GUIアプリの開発
- Sqlite3の利用
- Dapperの導入 Dapperについてまとめてみた
- Dapper Extensionの導入 Dapperの拡張ライブラリ 比較検討
- Swaggerを使う Stoplight Studioなどを使う 本当に使ってよかったOpenAPI (Swagger) ツール
- C#からPythonを実行する C#からPythonスクリプトを呼び出す
- DataGridViewとModelのバインディングの実現 URL treeView
- Jetson Nanoへのデプロイの仕方
開発はMac上のVisualSudioMacで行います
前編は5まで
#####プロジェクトはGtk#を選択する
Nugetからパッケージをダウンロードする
######ダウンロードするパッケージ
Dapper
DapperExtensions
Mono.Data.Sqliteをダウンロードします。Gtk2#の場合はSystem.Data.Sqliteは読み込めません。
####Dapperを使ったQuery
Queryの結果を自動でモデルに入れることができます。またInsert時Update時に引数代わりにModelを使えます。
static public void _dapperTest() {
Mono.Data.Sqlite.SqliteConnection connection = new Mono.Data.Sqlite.SqliteConnection();
connection.ConnectionString = @"Data Source=パス/test.sqlite";
connection.Open();
var query = "select * from testTable;";
var result = connection.Query<testTable>(query);
foreach(var p in result) {
Console.WriteLine("ID:" + p.test_id + " 名称:" + p.name);
}
connection.Close();
}
####DapperExtensionを使ったInsertUpdate処理
ModelからInsert文やUpdate文を自動生成し、処理できます
書き出されるSql文の形式を変更します
DapperExtensions.DapperExtensions.SqlDialect = new DapperExtensions.Sql.SqliteDialect();
static public void _dapperExtensionTest() {
//Sql文を [testTable].[test_id]から [test_id]に変更する
DapperExtensions.DapperExtensions.SqlDialect = new DapperExtensions.Sql.SqliteDialect();
Mono.Data.Sqlite.SqliteConnection connection = new Mono.Data.Sqlite.SqliteConnection();
connection.ConnectionString = @"Data Source=パス/test.sqlite";
connection.Open();
//DapperExtensionを使った処理
testTable testTable1 = new testTable();
testTable1.name = "aaaaaa111";
connection.Insert<testTable>(testTable1);
var query = "select * from testTable;";
var result = connection.QueryFirst<testTable>(query);
//DapperExtensionを使った処理
result.name += "qqqq111";
connection.Update<testTable>(result);
connection.Close();
}
testTableモデル
- モデルにはGetter Setterを必ず書くこと
public class testTable {
public int test_id { get; set; }
public string name { get; set; }
}
####Swaggerを自動生成にさせる
Stoplight Studioを使います。APIURLとパラメータを登録していき、Swaggerを自動生成します。
本当に使ってよかったOpenAPI (Swagger) ツール
####Swagger CodegenでAPIクライアント、スタブサーバ、HTML定義書を自動生成する
Swagger Codegenをインストールし、APIクライアントとモデルファイルを指定した言語で書き出します。
テンプレートをカスタマイズしておくと便利です。
OpenAPI GeneratorでRESTful APIの定義書から色々自動生成する
Swagger Codegen
Swagger Codegen Git
swagger-codegen generate -i http://petstore.swagger.io/v2/swagger.json -l 言語を指定する(csharp) -o 出力ディレクトリ
####Azureの中で無料製品一覧
Azure Functions Free
####開発にあたってのポイント
- Gtk2#はMono.Data.Sqliteを使う。Dapperと併用できた
- gtkのサンプルを探すのに苦労した。C# gtk hotexamples 調べたいメソッド名で調べるとgitに上がっているサンプルを一覧できるサイトが見つけることができた。
- モデルにはgetter setterを必ず書くこと
お手軽Linux(Ubunch) GUIアプリ開発 初級 後編
お手軽Linux(Ubunch) Guiアプリ開発 入門
[お手軽Linux(Ubunch) GUIアプリ開発 パーツサンプル集] (https://qiita.com/tana_/items/3114b715586a5f83cd8c)