$30 off During Our Annual Pro Sale. View Details »

プログラミング言語C#で世界を創る - Create the world with the programming language C#.

プログラミング言語C#で世界を創る - Create the world with the programming language C#.

YOUtH TechnologyNight Vol.3 で発表.
Blazor製ToDoリストアプリ -> https://todomanager-7196c.web.app/
Wyam製Atriaのポートフォリオ -> https://atria64.github.io/portfolio/
---
- 自己紹介とかいろいろ
- プログラミング言語とは
- C#とは
- C#でできること
- C#の可能性

Atria

May 26, 2020
Tweet

More Decks by Atria

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  25. まとめ
    Speaker : @AtriaSoft

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  46. 詳しくは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開発

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  62. 詳しくは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#ができること |モバイル開発

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  82. C#の可能性
    Speaker : @AtriaSoft

    View Slide

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

    View Slide

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

    View Slide