SlideShare a Scribd company logo
1 of 39
Download to read offline
C#アプリの作り方入門

~「きほん」の「ほ」~

森理 麟(moririring)
自己紹介

   森理 麟(moriri-ring)

●   職業 : ゲームプログラマ
●   Twitter : @moririring
●   ブログ : 森理 麟(moririring)のプログラマブログ
●   自作アプリ : クッキツイート,HashifyWin
スタート

アプリを作り始めたプログラマが、
入門書の次に読む本がないと思ったから。
ゴール

自分のこだわりを公開。

聞いた人のこだわりの発見。

皆のこだわりの共有。

懇親会・ブログのコメント・Twitter。何でも構いませ
んのでこだわりを教えてください!
アジェンタ



● とりあえずアプリを作ってみる

● アプリを効果的に見なおす

● アプリをもっと効果的に見なおす
とりあえずアプリを

作ってみる

I make the application.
それでは

細かいことは後にして、早速、簡単なアプリを作っ
てみます。
レシピ

目標
ファイルを選択して中身がテキストなら表示をするアプリを作れ

材料
テキストボックス×2、ボタン、ファイル選択ダイアログ。

手順
1. ボタンが押されたらファイル選択ダイアログを表示する。
2. 選ばれたファイルを一行テキストボックスに表示する。
3. 中身を複数行テキストボックスに表示する。
DEMO

ライブコーディングで作っていきます。
private void button1_Click(object sender, EventArgs e)
{
   openFileDialog1.ShowDialog();
}
private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{
   textBox1.Text = openFileDialog1.FileName;
   System.IO.StreamReader sr = new System.IO.StreamReader
(openFileDialog1.FileName);
   textBox2.Text = sr.ReadToEnd();
}
修正

とりあえず問題どおりのアプリは完成しました。

それでは、1つずつ見なおしていきましょう。
アプリを効果的に
見なおす

Effective check for the application
こだわり #1 ボタン

他のウィンドウが開くボタンは、表示に三点リー
ダーを使う。幅は自動に任せる。

【 表示 】
○ : 「...」←ドット三点
× : 「…」←三点リーダー

【 パラメータ 】
AutoSize = True;
AutoSizeMode = GrowAndShrink;
こだわり #2 一行テキストボックス

読み取り専用の場合、テキストボックスに限り
ReadOnlyを使う。普通はEnabled。

【 パラメータ 】
○ : ReadOnly = false;
× : Enabled = false;
こだわり #3 ファイル選択ダイアログ

ファイル選択ダイアログは選択させるファイルの種
類が決まっていれば必ずそれを設定しておく。

【 パラメータ 】
Filter = "txtファイル|*.txt";
こだわり #4 複数行テキストボックス

複数行テキストボックスはスクロールバーを両方に
つける。Bothの場合自動切り返しに注意する。

【 パラメータ 】
ReadOnly = false;
ScrollBars = Both;
WordWrap = false;
こだわり #5 文字コード

C#でのファイル文字コードのデフォルトはUTF-8。
明示的にshift_jisに。Defaultを使うとさらに良し。

【 パラメータ 】
○ :Text.Encoding.Default
△:Text.Encoding.GetEncoding("shift_jis")
× :Text.Encoding.UTF-8
こだわり #6 ファイルロード

テキスト読み込みは専用関数があるので、そちら
を使った方が簡単。エラー処理までやってくれる。

【 パラメータ 】
○ : System.IO.File.ReadAllText
× : System.IO.File.StreamReader
こだわり #7 フォーム

フォームが可変だとレイアウト的におかしく見える
ので、固定に。その際、最大化も忘れずにオフ。

【 パラメータ 】
FormBorderStyle = FixedSingle;
MaxmizeBox = false;
こだわり #8 レイアウト

なるべく吸着して補助線が出る所に置く。デザイン
センスに自信がないならルールを決めると良い。

【色】
● ピンク フォントの位置をあわせ
● ブルー コントロールの位置をあわせ
● グレー 他のコントロールとの再近
レイアウトへのこだわりを教えてくれた人
ボタン           三点リーダー、AutoSize = True; AutoSizeMode = GrowAndShrink;


一行テキストボックス    ReadOnly = true;


ファイル選択ダイアログ   Filter = "txtファイル|*.txt";


複数行テキストボックス   ReadOnly = true; ScrollBars = Both; WordWrap = false;


文字コード         Encoding.Default;


ファイルロード関数     System.IO.File.ReadAllText;


フォーム          FormBorderStyle = FixedSingle; MaxmizeBox = false;


レイアウト         ピンクかブルーかグレーの補助線が出る所に置く




まとめ
完成

最初に作った時よりも、見た目も良く、エラーが出
にくいアプリになりました。
アプリをもっと効果的に
見なおす

More Effective check for the application
こだわり #9 テキストボックス2

ファイルを選択する方法はボタンだけでなく、多い
方が良い。先ず手書きに対応させる。
【 パラメータ 】
ReadOnly = false
【 メソッド 】
private void textBox_TextChanged(object sender, EventArgs e)
{
   if (File.Exists(textBox.Text))
   {
      //ロード処理
        textBox2.Text = System.IO.File.ReadAllText(textBox1.Text);
   }
}
こだわり #10 ドラッグアンドドロップ

更にテキストボックスへのドラッグ&ドロップにも対
応させる。

【 パラメータ 】
AllDrop = true

【 メソッド 】
DragEnter
DragDrop
こだわり #10 ドラッグアンドドロップ
【ソース】
private void textBox1_DragEnter(object sender, DragEventArgs e)
{
   e.Effect = DragDropEffects.Copy;
}
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
   if (e.Data.GetDataPresent(DataFormats.FileDrop))
   {
       string[] fileName = (string[])e.Data.GetData(DataFormats.FileDrop);
       if (System.IO.File.Exists(fileName[0]) == true)
       {
            textBox1.Text =fileName[0];
        }
    }
}
こだわり #10 ドラッグアンドドロップ
private void textBox1_DragEnter(object sender, DragEventArgs e)
{
   if (e.Data.GetDataPresent(DataFormats.FileDrop))
       e.Effect = DragDropEffects.All;
   else
       e.Effect = DragDropEffects.None;
}
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
   string[] fileName = (string[])e.Data.GetData(DataFormats.FileDrop);
   if (System.IO.File.Exists(fileName[0]) == true)
   {
       textBox1.Text = fileName[0];
   }
}
こだわり #10 ドラッグアンドドロップ
string dropFileName = "";
private void textBox1_DragEnter(object sender, DragEventArgs e)
{
   e.Effect = DragDropEffects.None;
   if (e.Data.GetDataPresent(DataFormats.FileDrop))
   {
       var fileName = (string[])e.Data.GetData(DataFormats.FileDrop);
       if (System.IO.File.Exists(fileName[0]) == true)
       {
           dropFileName = fileName[0];
           e.Effect = DragDropEffects.All;
       }
   }
}
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
   textBox1.Text = dropFileName;
}
こだわり #11 ファイル選択2

テキストファイルはtxtだけと限らない。すべてを選
べるように。エラー対策はどちらにしろ必要。

【 パラメータ 】
Filter = "txtファイル|*.txt|すべてのファイル|*.*";

【 メソッド 】
private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{
   textBox1.Text = openFileDialog1.FileName;
}
こだわり #12 ボタン2

ボタンを押した場合、テキストボックスにパスがあ
るならば、そのパスでダイアログは開いて欲しい。

【 メソッド 】
private void button1_Click(object sender, EventArgs e)
{
   if (System.IO.File.Exists(textBox1.Text))
   {
       openFileDialog1.InitialDirectory = System.IO.Path.GetDirectoryName(textBox1.Text);
       openFileDialog1.FileName = System.IO.Path.GetFileName(textBox1.Text);
   }
   openFileDialog1.ShowDialog();
}
こだわり #13 複数行テキストボックス2

表示に使う複数行テキストボックスは少しでもマシ
なものを使う。但し、これも万全ではない。

【 コントロール 】
× : TextBox
△ : RichTextBox
こだわり #14 レイアウト2

サイズと位置を可変にしたいコントロールは、
Anchorと組み合わせて使う。

【コントロール】
Anchor:
コントロールが固定されるコンテナーの端を定義し
ます。コントロールがいずれかの端に固定されると
その端と、その端に最も近いコントロールの端の間
は、一定の距離を保ちます
こだわり #15 フォーム2

テキストボックスが可変になったらフォームも可変
に。見た目も変更可能に。タイトルもつける。

【 パラメータ 】
FormBorderStyle = Sizable;
MaxmizeBox = true;
○ : SizeGripStyle=Show;
× : SizeGripStyle=Auto;
Name = "C#アプリの作り方入門アプリ";
こだわり #16 アイコン

画竜点睛を欠いては台無しです。アイコンを作りま
しょう。icoファイル作成はIcoFXがオススメです。

【 パラメータ 】
リソースのアイコン
フォームのicon
一行テキストボックス    手書き対応。ドラッグアンドドロップ対応。ロード処理の集約。



ファイル選択ダイアログ   すべてのファイルを選べるように。
              Filter = "txtファイル|*.txt|すべてのファイル|*.*|";


ボタン           ボタンを押した時にファイル選択ダイアログにテキストの値が入るように。



複数行テキストボックス   Textbox→RichTextBox



レイアウト         Anchorでサイズ可変



フォーム          サイズ可変、タイトル



アイコン          フォームとリソースに登録




まとめ
まとめ

これで完成です。

最初の見直しはエラー処理を重要視しました。

今回の見直しは使い勝手を重要視しました。

これは森理が作るべきと思っている順番です。
総評

今日は合計で16個のこだわりを説明しました。

神は細部に宿ります。

こだわる理由はそれが楽しいからです。

みなさんも自分のこだわりを見つけて下さい。
謝辞

ご清聴有難うございます。
Kansai Visual Studio Hackathon

森理が一番出たい勉強会が関西にありません。

それはVisual Studioのハッカソンです。

ないので、自分で企画しようと思っています。

興味がおありの方はこの後話しかけてください!

More Related Content

Viewers also liked

コードレビューのススメ
コードレビューのススメコードレビューのススメ
コードレビューのススメkawahira kazuto
 
オブジェクト指向やめましょう
オブジェクト指向やめましょうオブジェクト指向やめましょう
オブジェクト指向やめましょうなおき きしだ
 
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツShunji Konishi
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣Masahiro Nishimi
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 

Viewers also liked (6)

コードレビューのススメ
コードレビューのススメコードレビューのススメ
コードレビューのススメ
 
オブジェクト指向やめましょう
オブジェクト指向やめましょうオブジェクト指向やめましょう
オブジェクト指向やめましょう
 
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 

Similar to C#アプリの作り方入門

ぶっとびケータイ+Firefox OS Apps
ぶっとびケータイ+Firefox OS Appsぶっとびケータイ+Firefox OS Apps
ぶっとびケータイ+Firefox OS AppsEnsekiTT
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介Shinya Okano
 
Twitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hackTwitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hackkimukou_26 Kimukou
 
Androidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearningAndroidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearningMiyoshi Kosuke
 
Using the Fragments(Android)
Using the Fragments(Android)Using the Fragments(Android)
Using the Fragments(Android)Teruaki Kinoshita
 
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyotoGo言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyotoShoot Morii
 
TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?Mr. Vengineer
 
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコードプログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコードShigenori Sagawa
 
Mixiアプリで体験する Open Social
Mixiアプリで体験する Open SocialMixiアプリで体験する Open Social
Mixiアプリで体験する Open Socialngi group.
 
C# ドラッグ&ドロップ処理の実装
C# ドラッグ&ドロップ処理の実装C# ドラッグ&ドロップ処理の実装
C# ドラッグ&ドロップ処理の実装Hiroki Takahashi
 
Jetpack Library 事始め
Jetpack Library 事始めJetpack Library 事始め
Jetpack Library 事始めTomohiro Kaizu
 
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.124時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1聡 中川
 
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用Takuya Ueda
 
Java x Groovy: improve your java development life
Java x Groovy: improve your java development lifeJava x Groovy: improve your java development life
Java x Groovy: improve your java development lifeUehara Junji
 
Marionettejs getting started
Marionettejs getting startedMarionettejs getting started
Marionettejs getting startedKyohei Morimoto
 
Android道第1回公開用
Android道第1回公開用Android道第1回公開用
Android道第1回公開用Takaya Funabiki
 
【プログラミング教室】テキスト
【プログラミング教室】テキスト【プログラミング教室】テキスト
【プログラミング教室】テキストManabu Ikarashi
 

Similar to C#アプリの作り方入門 (20)

ぶっとびケータイ+Firefox OS Apps
ぶっとびケータイ+Firefox OS Appsぶっとびケータイ+Firefox OS Apps
ぶっとびケータイ+Firefox OS Apps
 
TwitterToDayOne
TwitterToDayOneTwitterToDayOne
TwitterToDayOne
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介
 
Twitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hackTwitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hack
 
Androidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearningAndroidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearning
 
Using the Fragments(Android)
Using the Fragments(Android)Using the Fragments(Android)
Using the Fragments(Android)
 
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyotoGo言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
 
TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?
 
Ajax 応用
Ajax 応用Ajax 応用
Ajax 応用
 
Teclab3
Teclab3Teclab3
Teclab3
 
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコードプログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
 
Mixiアプリで体験する Open Social
Mixiアプリで体験する Open SocialMixiアプリで体験する Open Social
Mixiアプリで体験する Open Social
 
C# ドラッグ&ドロップ処理の実装
C# ドラッグ&ドロップ処理の実装C# ドラッグ&ドロップ処理の実装
C# ドラッグ&ドロップ処理の実装
 
Jetpack Library 事始め
Jetpack Library 事始めJetpack Library 事始め
Jetpack Library 事始め
 
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.124時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
 
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
 
Java x Groovy: improve your java development life
Java x Groovy: improve your java development lifeJava x Groovy: improve your java development life
Java x Groovy: improve your java development life
 
Marionettejs getting started
Marionettejs getting startedMarionettejs getting started
Marionettejs getting started
 
Android道第1回公開用
Android道第1回公開用Android道第1回公開用
Android道第1回公開用
 
【プログラミング教室】テキスト
【プログラミング教室】テキスト【プログラミング教室】テキスト
【プログラミング教室】テキスト
 

Recently uploaded

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 

Recently uploaded (10)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

C#アプリの作り方入門