Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The seminar of asp.net at 201908 sakurug

80 views

Published on

【初学者歓迎】ノンコーディングでできるWEBアプリケーション開発
https://sakurug.connpass.com/event/138370/

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

The seminar of asp.net at 201908 sakurug

  1. 1. ASP.NETでCRUD ノンコーデイングでやってみよう システムインテグレーション事業部 草場 友光
  2. 2. 自己紹介 • 普段はASP.NET(C#)の保守プロジェクト • 以前はサーバ構築・ネットワーク保守とか • さらに以前はJava • 情報処理安全確保支援士(登録番号001462) tomo_kusaba
  3. 3. 本日の目的 • ブラウザからDBの内容を表示・追加・変更・削除の機能をも つWebアプリケーションを作ろう! • MVCモデルとは? • Visual Studioの使い方に慣れよう! • コードは書きません!(時間があったらちょっとだけ)
  4. 4. 本日使う道具 • 統合開発環境 • Visual Studio 2019 • データベース • SQLServerExpress (LocalDB) • 言語 • C# • フレームワーク • Entity Framework • ASP.NET MVC
  5. 5. 本日覚えて欲しいキーワード スキャフォールディング
  6. 6. 本日使う道具 • 統合開発環境 • Visual Studio 2019 • データベース • SQLServerExpress (LocalDB) • 言語 • C# • フレームワーク • Entity Framework • ASP.NET MVC
  7. 7. Visual Studio 2019とは • マイクロソフトが開発する最新版の統合開発環境 • 様々な言語に対応している • C,C++,C#,F#,VisualBasic,Java,JavaScript,TypeScript,Python • 前バージョンの2017に比べメモリ消費量が大幅に減少 • Live Share機能で遠隔地とコードやデバッグセッションの共有 が可能
  8. 8. Visual Studio 2019とは
  9. 9. 本日使う道具 • 統合開発環境 • Visual Studio 2019 • データベース • SQLServerExpress (LocalDB) • 言語 • C# • フレームワーク • Entity Framework • ASP.NET MVC
  10. 10. SQL Server(LocalDB)とは • マイクロソフトが開発するRDB • 本日はVisual Studioに同梱されているものを使用します。 • LocalDBとはSQL Serverを開発用に軽量化したもの • 運用のための機能が省略されています • アプリケーションレベルではLocalDBとSQL Serverは同等と見 なせます。
  11. 11. そもそもデータベースとは? • データを保存(永続化)し、容易に検索できるシステムのこと • 代表例はRDB(リレーショナルデータベース) • 近年、RDB以外の採用例が増えています。
  12. 12. RDB以外のDBって? • Key-Value型 • Basho Riak • Dynamo • ドキュメント指向 • MongoDB • Amazon DynamoDB • グラフ指向 • Neo4j • Amazon Neptune • 時系列型 • Amazon Timestream • 台帳 • Amazon Quantum Ledger Database(QLDB)
  13. 13. 本日使う道具 • 統合開発環境 • Visual Studio 2019 • データベース • SQLServerExpress (LocalDB) • 言語 • C# • フレームワーク • Entity Framework • ASP.NET MVC
  14. 14. C#とは • マイクロソフトが開発するオブジェクト指向型言語 • かつてのDelphi開発者が数多く開発に参加 • .NET Frameworkの中心的言語 • JavaやCの仕様に影響を受けている • 主な利用用途 • KINECT,HoloLens,Unity,Xamarin,ASP.NET
  15. 15. プログラミング言語の歴史 • 第1世代 • 機械語(マシン語) CPUの命令をそのまま 2進数の羅列で人間にはつらい
  16. 16. プログラミング言語の歴史 • 第2世代 • アセンブリ言語 CPUの命令を単語で置き換えた やっぱり人間にはつらい
  17. 17. プログラミング言語の歴史 • 第3世代 • 手続き型言語 • FORTRAN • COBOL • C • Pascal • BASIC 現在でも多く使われている 人間に優しい
  18. 18. プログラミング言語の歴史 • 第4世代 • オブジェクト指向言語 • Java • C# • C++ • Delphi • Objective-C • Ruby • Python • VisualBasic • Dart • Swift • Rust • Go • PHP 現在の主流 人間に優しい
  19. 19. 本日使う道具 • 統合開発環境 • Visual Studio 2019 • データベース • SQLServerExpress (LocalDB) • 言語 • C# • フレームワーク • Entity Framework • ASP.NET MVC
  20. 20. Entity Frameworkとは • .NET上であらゆるDBに共通のコードでアクセスできるフレームワーク (略称EF) • DB First • Model First • Code First • データ操作にはLINQを使う • 歴史的にはSQLServer専用だったLINQ To SQLを拡張したもの • EFドライバさえ提供されていれば使用可能 • EFドライバがSQLの方言を吸収してくれる。 LINQってなに?
  21. 21. LINQ(リンク)とは? • .NET Framework 3.5以降で使用可能 • 様々なデータ集合に対して標準化された方法でデータを問い合 わせることが可能 • LINQ to Object (コレクション、配列、ファイルなどIEnumerable<T> ベースのオブジェクト) • LINQ to XML • Azure Table Storage • 大きくわけてクエリ構文とメソッド構文の構文がある
  22. 22. クエリ構文 var list = new List<int> { 1, 84, 95, 95, 40, 6 }; var query = from x in list where x % 2 == 0 orderby x select x * 3;
  23. 23. メソッド構文 var list = new List<int> { 1, 84, 95, 95, 40, 6 }; var query = list .where(x => x % 2 == 0) .orderby(x => x) .select(x => x * 3);
  24. 24. LINQのメリット • foreachやforを使った場合より少ない行数、ネスト数で簡潔に 書ける • 処理の意図が伝わりやすい • メソッドチェーンによる処理の組み合わせができる • whereやOrderByは処理が独立して自由に組み合わせることができる • 実装や修正が簡単に行える • メリットが多いので是非LINQをマスターしましょう
  25. 25. ASP.NET MVCとは • Web Formsに代わる新しい実装方法 • .NET Framework 3.5 SP1以降で • 従来のWeb Formsの欠点を解消している • 本質的な単体テストができなかった • 変化に対する対応が難しい • 大規模開発に対応した生産性 •じゃあ、MVCってなに??
  26. 26. MVCとは?? ① Userからの入力をController が受け取る ② ControllerはModelの加工メ ソッドを操作する ③ 加工メソッドによってModel のプロパティなどが変化する ④ ControllerはViewに命令を送 る ⑤ ViewはModelのプロパティな どをみて表示する ① ② ③ ④ ⑤ ⑤
  27. 27. MVC実装の指針 Model(ビジネスロジック) Controller(制御) View(プレゼンテーション) Webなのかデスクトップアプリケーションな のかに関わらずに必要なロジックを記述 Web特有の処理(セッション・権限・etc) 画面表示 依存 依存 抽象的・安定的 具体的・変動的 変動しやすさにあわせてレイヤーを組むことを考えよう
  28. 28. なぜ、WebFormsではだめか? • 次期.NET Framework5は現在の.NET Coreベースである • .NET Coreはもちろん、.NET Framework5でもWebFormsはサ ポートされない • 現在の、.NET Framework4.8は新たな機能追加はされないこと を明言されている • したがって、新規案件は.NET Framework MVCで検討すべき • 可能ならば、.NET Coreを選択
  29. 29. では、やってみよう!
  30. 30. まとめ • デザインや使い勝手にこだわらなければあっという間にCRUD できてしまう。 • 実業務においてもデータ量の少ないテーブルのマスタメンテ画 面をスキャフォールディングで作ることを検討すべき • スキャフォールディングで生成されたコードを元にカスタマイ ズすることも要検討

×