Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ASP.NET Core ではじめる簡単Web開発 / 高専カンファレンス in 名古屋 2018
Naoki Ikeguchi
December 22, 2018
Programming
2
490
ASP.NET Core ではじめる簡単Web開発 / 高専カンファレンス in 名古屋 2018
Naoki Ikeguchi
December 22, 2018
Tweet
Share
More Decks by Naoki Ikeguchi
See All by Naoki Ikeguchi
Actual of Japanese Internet
siketyan
3
2.6k
Rust でマイナンバーカードを操作するスマホアプリを作りたい話
siketyan
2
20k
文字ってなんだろう?身近だけど意外と知らない文字コードと絵文字の話 - 技育 CAMP 2021
siketyan
2
270
SPF と DKIM だけで大丈夫?本当は怖いドメイン名と E メール @ TwoGate Tech Meeting
siketyan
1
260
自作キーボードのすすめ / Recommendation of Original Keyboard
siketyan
0
320
人々はなぜ大文字・小文字を正しく使い分けないのか? / Why don't people use upper or lower case correctly?
siketyan
1
330
エディタ戦争? いいえ,エディタ vs IDE 戦争 / 学生LT in 名古屋
siketyan
1
390
さらば,APIコントローラ / OthloTech#45 年度末LTパーティー
siketyan
0
47
部活システム制作のすすめ / 高専カンファレンス × 学生LT in 名古屋
siketyan
0
220
Other Decks in Programming
See All in Programming
テスト設計技法をなぜ&どのように使うのか体験しよう!
imtnd
0
550
You may not need JavaScript
simas
0
450
全国の中高生がプログラミングを学んでいるCloud9環境の仕組み@JAWS-UG_SRE支部_#3
asache3
0
130
Composing an API with Kotlin (Kotlin Dev Day 2022)
zsmb
0
310
About Type Syntax Proposal
quramy
1
1.2k
Swift Concurrencyによる安全で快適な非同期処理
tattn
2
340
CIでAndroidUIテストの様子を録画してみた
mkeeda
0
190
あなたの会社の古いシステム、なんとかしませんか?~システム刷新から考えるDX化への道筋とバリエーション~/webinar20220420-systems
grapecity_dev
0
130
職場にPythonistaを増やす方法
soogie
0
330
How useEvent would change our applications
koba04
1
1.8k
Viteはいいぞ/Vite is Good
dojineko
1
110
【Qiita Night】新卒エンジニアによるSwift6与太予想
eiji127
0
190
Featured
See All Featured
BBQ
matthewcrist
74
7.9k
Happy Clients
brianwarren
89
5.6k
Music & Morning Musume
bryan
35
4.2k
Git: the NoSQL Database
bkeepers
PRO
415
59k
Code Review Best Practice
trishagee
41
6.8k
The Power of CSS Pseudo Elements
geoffreycrofte
46
3.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
900
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1M
Web Components: a chance to create the future
zenorocha
303
40k
Become a Pro
speakerdeck
PRO
3
790
Design by the Numbers
sachag
271
17k
VelocityConf: Rendering Performance Case Studies
addyosmani
316
22k
Transcript
ASP.NET Core ではじめる 簡単Web開発 Siketyan @ 高専カンファレンス in 名古屋 2018
© Pronama LLC
自己紹介 • 豊田高専 情報工学科 1年 • C# と Java で
API バックエンドを書く人 (ただしプロコンではフロントエンドを担当) • 最近は部活用システムを製作中 © Pronama LLC Siketyan @siketyan
ASP.NET Core とは • .NET Core 上で動くWebフレームワーク • オープンソース •
MVC として動かすことも, APIとして動かすこともできる • IIS をはじめ,Docker や Microsoft Azure との連携も容易 © Pronama LLC
.NET Core とは • C# は,機械語にコンパイルせず,中間言語(IL)にコンパイルする スタイルが主流 • そのフレームワークとして, .NET
が存在する • Visual Basic,C#,F# をサポート (VB.NET,C#.NET といった呼び名はこのため) © Pronama LLC VB C# F# IL 機械語 .NET ランタイム .NET コンパイラ (.NET ネイティブコンパイラ)
.NET Core とは © Pronama LLC 実装の種類 .NET Standard .NET
Framework .NET Core Windows のみ プロプライエタリ マルチプラットフォーム オープンソース .NET ファミリではないが,Mono も .NET 実装の一つ .NET
ASP.NET Core の使い方 • MVC(Model-View-Controller) で SSR(Server-Side Rendering) サイトを作る •
API サーバを作る + • EntityFramework Core でデータベース連携 © Pronama LLC
MVC で SSR サイトを作る © Pronama LLC View .cshtml Model
.cs Controller .cs アタッチ 作成 表示
.cshtml とは • Razor 文法を使うことで HTML の中で C# が使える形式 •
以前は .aspx が使われていた • VB で使用する場合は .vbhtml • これを使うことで簡単に Model を埋め込める (Vue.js のようなイメージ) © Pronama LLC <ul id=“products”> @foreach(var product in products) { <li>@product.Name ($@product.Price)</li> } </ul>
Web API サーバを作る © Pronama LLC Model Controller レスポンス 作成
リクエスト Router
Web API サーバを作る • パスでルーティングし,ControllerがModelを作成して返す • 一つのModelに対して,GET/POST/PUT/DELETE それぞれのActionを定義する © Pronama
LLC [Controller(“api/[controller]”)] // api/users public class UsersController { [HttpGet(“{id}”)] // GET api/users/:id public User Get(string id) { return new User(id); } }
EntityFramework Core で DB 連携 © Pronama LLC • EntityFramework
Core は,.NET Core 上で各種データ ベースを扱うためのフレームワーク • あらかじめ Model で各エンティティの属性を定義 しておけば,コードファーストでデータベースと連携が できる • LINQ to SQL で絞り込みなども可能
EntityFramework Core で DB 連携 © Pronama LLC [Table(“users”)] public
class Users { [Key] [MaxLength(32)] [Column(“id”)] public string Id { get; set; } [MaxLength(256)] [Column(“name”)] public string Name { get; set; } } // _sql は DbContext で,あらかじめ定義して DI する _sql.Users.FirstOrDefault(x => x.Id == id);
デモ © Pronama LLC • ASP.NET Core + EntityFramework Core
での コード生成がとても便利 • Controller-Model-DbContext の関係を一瞬で 生成できる
まとめ; なぜ ASP.NET Core なのか © Pronama LLC • C#
や .NET を使ったことある人にとって親しみやすい • C# 未習得でも,C 系の言語なので C や Java の 経験者であれば習得しやすい • ASP.NET と違い,.NET Core 上で動くので, もちろんマルチプラットフォーム • EntityFramework Core を使ったデータベースとの 連携がとても簡単 • 認証などのミドルウェアも,あらかじめ用意されている
参考文献 © Pronama LLC • .NET Core - .NET Core
による .NET のクロスプラットフォームへの移行 https://msdn.microsoft.com/ja-jp/magazine/mt694084.aspx • ASP.NET Core 2.0 EntityFrameworkCoreでMySQLを使う CodeFirst - Qiita https://qiita.com/hadasui/items/c0b76131f957fb6e0baa • “Razor”の紹介 - ASP.NET向け新ビュー・エンジン - @IT http://www.atmarkit.co.jp/fdotnet/scottgublog/20100714razor/ razor.html • ASP.NET Core - 新しいデータベース - EF Core の概要 | Microsoft Docs https://docs.microsoft.com/ja-jp/ef/core/get-started/aspnetcore/ new-db
質疑応答 いつでも @siketyan まで © Pronama LLC
ASP.NET Core で よい Web 開発ライフを! ご清聴ありがとうございました このスライドは SpeakerDeck で公開予定です
© Pronama LLC