Slide 1

Slide 1 text

プログラミング言語C#で 世界を創る C#のスゴイところ、お魅せします。 Speaker:@AtriaSoft 2020/5/26(火) YOUtH TechnologyNight Vol3.

Slide 2

Slide 2 text

スライドの撮影 SNSへの投稿OK Speaker : @AtriaSoft

Slide 3

Slide 3 text

自己紹介とかいろいろ Speaker : @AtriaSoft

Slide 4

Slide 4 text

Atria(あとりあ)です。 @AtriaSoft http://atriasoft.work/ Atria64 • 畑 大地(a.k.a. Atria) • 公立はこだて未来大学B2 – 北海道にある情報系大学! • 趣味がいっぱい – プログラミング – アウトドア – ゲーム 自己紹介とかいろいろ Speaker : @AtriaSoft

Slide 5

Slide 5 text

自己紹介とかいろいろ Speaker : @AtriaSoft

Slide 6

Slide 6 text

熟練度別 この発表を聞く心構え Speaker : @AtriaSoft 自己紹介とかいろいろ

Slide 7

Slide 7 text

スライドの配置 Speaker : @AtriaSoft 自己紹介とかいろいろ ここに現在のトピック ここにぼくのTwitterId ここにスライドの内容

Slide 8

Slide 8 text

プログラミング何もわからん方 Speaker : @AtriaSoft • 6割かんたんな内容で構成してるので大丈夫!(なはず) • 出てくるコードは読まなくていいです! 雰囲気感じる感じで楽しんでください。 プログラミングチョットデキル方 • 4割コアな内容を入れています。コアな内容は緑。 • 内容が間違っているなどの指摘をいただけると幸いです。 (その時はやんわりとお伝え下さい) 自己紹介とかいろいろ

Slide 9

Slide 9 text

プログラミング何もわからん方 Speaker : @AtriaSoft • 6割かんたんな内容で構成してるので大丈夫!(なはず) • 出てくるコードは読まなくていいです! 雰囲気感じる感じで楽しんでください。 プログラミングチョットデキル方 “チョットデキル” 完全理解者を指す界隈用語。 • 4割コアな内容を入れています。コアな内容は緑。 • 内容が間違っているなどの指摘をいただけると幸いです。 (その時はやんわりとお伝え下さい) 自己紹介とかいろいろ

Slide 10

Slide 10 text

プログラミング何もわからん方 Speaker : @AtriaSoft • 6割かんたんな内容で構成してるので大丈夫!(なはず) • 出てくるコードは読まなくていいです! 雰囲気感じる感じで楽しんでください。 プログラミングチョットデキル方 “チョットデキル” 完全理解者を指す界隈用語。 • 4割コアな内容を入れています。コアな内容は緑。 • 内容が間違っているなどの指摘をいただけると幸いです。 (その時はやんわりとお伝え下さい) オレンジの吹き出しは初学者向け情報! 自己紹介とかいろいろ

Slide 11

Slide 11 text

プログラミング何もわからん方 Speaker : @AtriaSoft • 6割かんたんな内容で構成してるので大丈夫!(なはず) • 出てくるコードは読まなくていいです! 雰囲気感じる感じで楽しんでください。 プログラミングチョットデキル方 緑の内容は聞き流しOK. • 4割コアな内容を入れています。コアな内容は緑。 • 内容が間違っているなどの指摘をいただけると幸いです。 (その時はやんわりとお伝え下さい) 自己紹介とかいろいろ

Slide 12

Slide 12 text

本日のおしながき • 自己紹介とかいろいろ • プログラミング言語とは – 基礎の基礎から解説します • C#とは • C#でできること – なんでもできます • C#の可能性 Speaker : @AtriaSoft 自己紹介とかいろいろ

Slide 13

Slide 13 text

本日のおしながき • 自己紹介とかいろいろ • プログラミング言語とは – 基礎の基礎から解説します • C#とは • C#でできること – なんでもできます • C#の可能性 Speaker : @AtriaSoft 自己紹介とかいろいろ

Slide 14

Slide 14 text

プログラミング言語とは Speaker : @AtriaSoft

Slide 15

Slide 15 text

Speaker : @AtriaSoft “方言”のようなものである プログラミング言語とは

Slide 16

Slide 16 text

コンピュータに命令するしくみ Speaker : @AtriaSoft プログラミング言語とは

Slide 17

Slide 17 text

コンピュータに命令するしくみ • コンピューターくんは0と1しかわからない – かわいいね! • なので我々プログラマーは、0と1でプログラムを書く Speaker : @AtriaSoft プログラミング言語とは

Slide 18

Slide 18 text

コンピュータに命令するしくみ • コンピューターくんは0と1しかわからない – かわいいね! • なので我々プログラマーは、0と1でプログラムを書く Speaker : @AtriaSoft “プログラム” コンピュータへの命令をまとめたもの プログラミング言語とは

Slide 19

Slide 19 text

コンピュータに命令するしくみ • コンピューターくんは0と1しかわからない – かわいいね! • なので我々プログラマーは、0と1でプログラムを書く Speaker : @AtriaSoft プログラミング言語とは

Slide 20

Slide 20 text

プログラミング言語とは コンピュータに命令するしくみ • コンピューターくんは0と1しかわからない – かわいいね! • なので我々プログラマーは、 Speaker : @AtriaSoft いや、無理やろ。

Slide 21

Slide 21 text

わかった! コンピュータに命令するしくみ(2) • 人間が理解できて、コンピュータにも分かる言葉 (厳密には翻訳できる言葉)ができた。 – これがプログラミング言語! Speaker : @AtriaSoft プログラミング言語 00101110110001 10111101010011 11110001010111 00001111010101 01110101010100... バイナリ プログラミング言語とは

Slide 22

Slide 22 text

わかった! コンピュータに命令するしくみ(2) • 人間が理解できて、コンピュータにも分かる言葉 (厳密には翻訳できる言葉)ができた。 – これがプログラミング言語! Speaker : @AtriaSoft プログラミング言語 00101110110001 10111101010011 11110001010111 00001111010101 01110101010100... バイナリ “バイナリ” 2進数で表現されるデータ。 基本人間は読めない。 プログラミング言語とは

Slide 23

Slide 23 text

言語には種類と特徴がある • C++(しーぷらぷら) – 計算速度が早い。難しい。 • Python(ぱいそん) – AI作る時に使われる。読みやすい。 • C#(しーしゃーぷ) – ぼくの推し、今回のメイン – 他の言語と比べてできることが多い プログラミング言語とは Speaker : @AtriaSoft

Slide 24

Slide 24 text

言語には種類と特徴がある(2) 言語ごとに文法が違う→方言みたいでしょ? プログラミング言語とは 各言語の”こんにちは” C++(しーぷらぷら) std::cout << “こんにちは”<< std::endl; Python(ぱいそん) print(‘こんにちは’) C#(しーしゃーぷ) Console.WriteLine(“こんにちは”); Speaker : @AtriaSoft

Slide 25

Slide 25 text

まとめ Speaker : @AtriaSoft

Slide 26

Slide 26 text

プログラミング言語とは “方言”のようなものである Speaker : @AtriaSoft

Slide 27

Slide 27 text

今回のメイン C#とは Speaker : @AtriaSoft

Slide 28

Slide 28 text

プログラミング言語C#とは • 2000年生まれ,2001年リリース • Microsoftが作ったオープンな言語 • 初心者に優しいとされている – 読みやすくって、環境を作りやすい – 使うのは無料! • 強力で、変態的、なんでもできる • 強い静的型付け • ラムダ式、LINQ、最高だよな。 Speaker : @AtriaSoft C#とは

Slide 29

Slide 29 text

プログラミング言語C#とは • 2000年生まれ,2001年リリース • Microsoftが作ったオープンな言語 • 初心者に優しいとされている – 読みやすくって、環境を作りやすい – 使うのは無料! • 強力で、変態的、なんでもできる • 強い静的型付け • ラムダ式、LINQ、最高だよな。 Speaker : @AtriaSoft “環境づくり” プログラムを作るための準備のこと C#とは

Slide 30

Slide 30 text

C#ができること Speaker : @AtriaSoft

Slide 31

Slide 31 text

なんでもできます C#ができること 画像出典:MS Build Speaker : @AtriaSoft

Slide 32

Slide 32 text

C#でできること一覧 • Web開発 – Blazor, ASP.NET, Wyam • ゲーム開発, xR – Unity, UnlialEngine(Usharp) • モバイル開発 – XamarinForms, Xamarin.Android, Xamarin.IOS • ソフトウェア開発・IoT • 機械学習 C#ができること Speaker : @AtriaSoft

Slide 33

Slide 33 text

C#でできること一覧 • Web開発 – Blazor, ASP.NET, Wyam • ゲーム開発, xR – Unity, UnlialEngine(Usharp) • モバイル開発 – XamarinForms, Xamarin.Android, Xamarin.IOS • ソフトウェア開発・IoT • 機械学習 C#ができること “xR” VR,AR,MRの総称. Speaker : @AtriaSoft

Slide 34

Slide 34 text

C#でできること一覧 • Web開発 – Blazor, ASP.NET, Wyam • ゲーム開発, xR – Unity, UnlialEngine(Usharp) • モバイル開発 – XamarinForms, Xamarin.Android, Xamarin.IOS • ソフトウェア開発・IoT • 機械学習 C#ができること Speaker : @AtriaSoft

Slide 35

Slide 35 text

Web開発 C#ができること Speaker : @AtriaSoft

Slide 36

Slide 36 text

実際に作ったもの Speaker : @AtriaSoft C#ができること | Web開発

Slide 37

Slide 37 text

円グラフで進捗状況を表示 その他雑多な機能ふたつ タスク管理アプリ(Blazor) C#ができること | Web開発

Slide 38

Slide 38 text

タスクの状況は このように確認できる タスク管理アプリ(Blazor) C#ができること | Web開発

Slide 39

Slide 39 text

アプリについての 説明ページも作成 タスク管理アプリ(Blazor) C#ができること | Web開発

Slide 40

Slide 40 text

スマートフォンなど 小さい画面にも対応 アプリケーションのURL https://todomanager-7196c.web.app/ PWA対応はできてません (頑張れば対応できます) タスク管理アプリ(Blazor) C#ができること | Web開発

Slide 41

Slide 41 text

ポートフォリオ(Wyam) https://atria64.github.io/portfolio/ C#ができること | Web開発

Slide 42

Slide 42 text

ポートフォリオ(Wyam) https://atria64.github.io/portfolio/ C#ができること | Web開発

Slide 43

Slide 43 text

すごいだろ Speaker : @AtriaSoft C#ができること | Web開発

Slide 44

Slide 44 text

Web開発(Blazor, ASP.NET, Wyam) • Web上で動くものを作ることができる。 – たとえばTwitter、Instagramなど • みんなに使ってもらいやすい • ホームページを作れちゃう • ログインシステムも作れちゃう • サーバーサイドをC#で統一すると すべてC#で開発できる Speaker : @AtriaSoft C#ができること | Web開発

Slide 45

Slide 45 text

エンジニアタイム C#でSPAが開発できるBlazorが今アツい! • Blazorを使うとフルスタック”C#”でSPA開発が可能 • Razor構文でhtmlを記述できます • 豊富な.NETの資産を利用できます(NuGet) • 難しいことしなければC#の知識だけで組めるかも • Blazor WebAssembly 公式リリース!!(2020/05/20) • MobileBlazorBindings – Blazorでスマホネイティブが作れる野心的なプロジェクト Speaker : @AtriaSoft C#ができること | Web開発

Slide 46

Slide 46 text

詳しくはWebで • タスク管理を行うSPAを"C#で"作ってみた / I made a task management… https://speakerdeck.com/atria/i-made-a-task- management-spa-in-c-number • 作ったWebアプリ(Blazor製) https://todomanager-7196c.web.app/ Speaker : @AtriaSoft C#ができること | Web開発

Slide 47

Slide 47 text

ゲーム開発,xR C#ができること Speaker : @AtriaSoft

Slide 48

Slide 48 text

プログラミング言語C#で 世界を創る C#のスゴイところ、お魅せします。 Speaker:@AtriaSoft 2020/5/26(火) YOUtH TechnologyNight Vol3. C#ができること |ゲーム開発

Slide 49

Slide 49 text

C#のスゴイところ、お魅せします。 Speaker:@AtriaSoft 2020/5/26(火) YOUtH TechnologyNight Vol3. Unityでな!!!!! プログラミング言語C#で 世界を創る C#ができること |ゲーム開発

Slide 50

Slide 50 text

世界つくります (ここでUnityのデモ) Speaker : @AtriaSoft C#ができること |ゲーム開発

Slide 51

Slide 51 text

すごいだろ(2) Speaker : @AtriaSoft C#ができること |ゲーム開発

Slide 52

Slide 52 text

これで怒られないはず タイトル詐欺だ! Speaker : @AtriaSoft C#ができること |ゲーム開発

Slide 53

Slide 53 text

ゲーム開発 • Unityという有名ゲームエンジンが使える • ほとんどの個人開発者は無料でつかえる • ゲームも汎用アプリもARもVRも • アセットとかいうチート • C# 7.3を使える – Nullableなど対応のC#8が入ってほしい • .NETの資産を使える.便利. C#ができること |ゲーム開発 Speaker : @AtriaSoft

Slide 54

Slide 54 text

モバイル開発 C#ができること Speaker : @AtriaSoft

Slide 55

Slide 55 text

完成品 ~LP_Navi~ • 毎日の特売情報をサジェスト • 無効条件などの 複雑な処理を自動で行う。 • Xamarin. Androidを用いて開発 • C#でバリバリ書ける • Azure Functions を用いて特売情報などを取得 • C#でガリガリ書ける C#ができること |モバイル開発

Slide 56

Slide 56 text

完成品 ~LP_Navi~ • 毎日の特売情報をサジェスト • 無効条件などの 複雑な処理を自動で行う。 • Xamarin. Androidを用いて開発 • C#でバリバリ書ける • Azure Functions を用いて特売情報などを取得 • C#でガリガリ書ける C#ができること |モバイル開発

Slide 57

Slide 57 text

すごいだろ(3) Speaker : @AtriaSoft C#ができること |モバイル開発

Slide 58

Slide 58 text

モバイル開発 • Apple store, Play storeにあるようなアプリが作れる • 普通AndroidとiOSは 別々の言語でかかなきゃいけない – Xamarinというものを使えばC#で全部書ける – 使う言語が少なくて済む • Nintendo Switch Online NHK 紅白アプリ などがC#で作られています。 C#ができること |モバイル開発 Speaker : @AtriaSoft

Slide 59

Slide 59 text

モバイル開発 • Apple store, Play storeにあるようなアプリが作れる • 普通AndroidとiOSは 別々の言語でかかなきゃいけない – Xamarinというものを使えばC#で全部書ける – 使う言語が少なくて済む • Nintendo Switch Online NHK 紅白アプリ などがC#で作られています。 “iOS” iPhoneのことです Speaker : @AtriaSoft C#ができること |モバイル開発

Slide 60

Slide 60 text

Httpリクエスト Jsonオブジェクト 特売情報を格納している ストレージ エンジニアタイム Speaker : @AtriaSoft C#ができること |モバイル開発

Slide 61

Slide 61 text

エンジニアタイム Xamarinによるスマホネイティブ開発 • Xamarin.Formsを用いると 強力なクロスプラットフォーム開発が可能 – コード、UIの共通化が可能です • 最新バージョンにすぐ対応してくれます – Android Qも配信当日から使えました • 正直ぼくiOSは知識がありません – メモリ管理が難しいと聞いたことがある Speaker : @AtriaSoft C#ができること |モバイル開発

Slide 62

Slide 62 text

詳しくはWebで • All C#なモバイル開発. / All C # Mobile Development. – https://speakerdeck.com/atria/all-c-number-mobile- development • Xamarin.Android と Azure Functions で全てがC#製の スマホアプリを作った話 – https://qiita.com/Atria/items/ffe8b510dcca07afcb8d Speaker : @AtriaSoft C#ができること |モバイル開発

Slide 63

Slide 63 text

ソフトウェア開発・IoT C#ができること Speaker : @AtriaSoft

Slide 64

Slide 64 text

こんなものが作れます (実際に作ったもの) C#ができること | ソフトウェア開発・IoT Speaker : @AtriaSoft

Slide 65

Slide 65 text

PDFの編集履歴いじるやつ ちょっとグレーめなソフトウェア Speaker : @AtriaSoft C#ができること | ソフトウェア開発・IoT

Slide 66

Slide 66 text

画面キャプチャを 即座にツイートするやつ わりと便利なソフトウェア Speaker : @AtriaSoft C#ができること | ソフトウェア開発・IoT

Slide 67

Slide 67 text

C#製のDiscord Bot DiscordのBotも開発できちゃう Speaker : @AtriaSoft C#ができること | ソフトウェア開発・IoT

Slide 68

Slide 68 text

すごいだろ(4) Speaker : @AtriaSoft C#ができること | ソフトウェア開発・IoT

Slide 69

Slide 69 text

Windowsアプリ開発最強説 • C#でのWindowsアプリ開発は最強(だと思う) • パーツの組み合わせで作れるよ • 割とかんたんに組めちゃう • .NET Coreで他OSもいける 出典:How to Create a C# Windows Forms Application Speaker : @AtriaSoft C#ができること | ソフトウェア開発・IoT

Slide 70

Slide 70 text

C#ができること |番外編 番外編 C# + Visual Studioの最強タッグ Speaker : @AtriaSoft

Slide 71

Slide 71 text

番外編 C# + Visual Studioの最強タッグ “Visual Studio” 統合開発環境(IDE)のこと。 VSCodeなども一緒にされる事がある Speaker : @AtriaSoft C#ができること |番外編

Slide 72

Slide 72 text

番外編 C# + Visual Studioの最強タッグ “Visual Studio” 統合開発環境(IDE)のこと。 VSCodeなども一緒にされる事がある “統合開発環境(IDE)” 多機能な開発環境を指す。(おおざっぱ) Speaker : @AtriaSoft C#ができること |番外編

Slide 73

Slide 73 text

番外編 C# + Visual Studioの最強タッグ “Visual Studio” 統合開発環境(IDE)のこと。 VSCodeなども一緒にされる事がある “統合開発環境(IDE)” 多機能な開発環境を指す。(おおざっぱ) “VSCode” Visual Studio Codeのこと。 かなりリッチなテキストエディタである。 (メモ帳) Speaker : @AtriaSoft C#ができること |番外編

Slide 74

Slide 74 text

番外編 C# + Visual Studioの最強タッグ “Visual Studio” 統合開発環境(IDE)のこと。 VSCodeなども一緒にされる事がある “統合開発環境(IDE)” 多機能な開発環境を指す。(おおざっぱ) “VSCode” Visual Studio Codeのこと。 かなりリッチなテキストエディタである。 (メモ帳) エンジニアあるある 調べると知らないことが増える Speaker : @AtriaSoft C#ができること |番外編

Slide 75

Slide 75 text

最初の設定をマウスで進められる • 真っ黒い画面を打つ必要なし。優しい。 Speaker : @AtriaSoft C#ができること |番外編

Slide 76

Slide 76 text

インテリセンス • インテリセンスが強力で気持ちいい • 下の画像のように、次何をするかを提案してくれる Speaker : @AtriaSoft C#ができること |番外編

Slide 77

Slide 77 text

インテリセンス • インテリセンスが強力で気持ちいい • 下の画像のように、次何をするかを提案してくれる “インテリセンス” 補完機能のこと。予測変換のようなもの。 Speaker : @AtriaSoft C#ができること |番外編

Slide 78

Slide 78 text

しかも無料 • VSCodeは完全無料. • VisualStudioはCommunity版なら無料 – Professional, Enterprise版は有料 – 個人が上の2つを選択することはあんまりない(と思う) • 話し忘れたけどAzureもすごく安く使える Speaker : @AtriaSoft C#ができること |番外編

Slide 79

Slide 79 text

すごいだろ(5) Speaker : @AtriaSoft C#ができること |番外編

Slide 80

Slide 80 text

ちなみに 機械学習もできます 回帰モデルを回して価格予測を行った図 正直なんもわからんかった Speaker : @AtriaSoft C#ができること |番外編

Slide 81

Slide 81 text

ちなみに 機械学習もできます 回帰モデルを回して価格予測を行った図 正直なんもわからんかった ぼくもわかりません Speaker : @AtriaSoft C#ができること |番外編

Slide 82

Slide 82 text

C#の可能性 Speaker : @AtriaSoft

Slide 83

Slide 83 text

C#の扉を叩いてみて • なんでもできちゃうC#、ワクワクしませんか? • 趣味で始めるのもよいかもしれません • C#で世界を作っちゃうのが本当になるかも – C#で世界を変えてみたい(夢) プログラミングの可能性、 C#の可能性を感じていただければ幸いです。 C#の可能性 Speaker : @AtriaSoft

Slide 84

Slide 84 text

プログラミング言語C#で 世界を創る C#のスゴイところ、お魅せします。 Speaker:@AtriaSoft 2020/5/26(火) YOUtH TechnologyNight Vol3.