8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

HeadwatersAdvent Calendar 2019

Day 6

C# を使って爆速で Web Developer in 2019 を学ぶ

Posted at

初心者用の記事ですがあまり深堀はしないので、どちらかと言うと他言語から C# を見に来た人向けかもしれません。

Web 界隈では有名なこれを C# で学んでいきます。Back-end の部分をやっていきます。爆速なので外部アプリケーションが必要な部分はスキップします。
IDE は Visual Studio 2019 を使います。 SDK は .NET Core 3.1 を使います。

kamranahmedse/developer-roadmap: Roadmap to becoming a web developer in 2019

日本語訳は Web Developer Roadmap 2018 が 2019 年版になっていたので比較してみる - Qiita にあります。

リンク先を見なくてもわかるように画像だけ持ってきました。

Image from Gyazo

Roadmap

1. Pick a Language

  • 説明: C# (.NET) です。

2. Practice what you learnt

  • 説明: テンプレートが用意されているので、マウスクリックだけで学べます。

Visual Studio 2019 を起動して Create a new project を選択します。

Image from Gyazo

Console App (.NET Core) を選択します。

Image from Gyazo

適当な名前をつけて Create を選択します。

Image from Gyazo

こんな感じのプロジェクトが出来たら F5緑色の再生ボタン を押して実行します。

Image from Gyazo

無事に Hello World! が表示されました。コマンドラインアプリケーションは学び終わりました。爆速です。

Image from Gyazo

3. Learn Package Manager

  • 説明: GUI があるので、マウスクリックだけで学べます。

Tools > NuGet Package Manger > Manage NuGet Packages for Solution を選択します。

Image from Gyazo

Browse タブから Install したい Package を選んで Install を選択します。

Image from Gyazo

Package Install が完了したらすぐに使えるようになります。 Uninstall や Update も GUI から可能です。パッケージマネージャーは学び終わりました。爆速です。

Image from Gyazo

4. Standards and Best Practices

  • 説明: C# は Microsoft が出している言語なので Microsoft 公式ドキュメント C# のコーディング規則 - C# プログラミング ガイド | Microsoft Docs が存在します。凄く長くて眠たくなるし、どちらかというと実践しながら学んでいくものなのでスキップします。
  • 補足: なんか怪しいなと思ったら電球マークか Ctrl + . を押せば、これが正しいよということを教えてくれます。

Image from Gyazo

5. Make and Distribute Some Package/Library

6. Learn about Testing

  • 説明: Unit Test を書きます。ようやくキーボードの出番です。

Solution menu > Add > New Project を選択します。

Image from Gyazo

xUnit Test Project (.NET Core) を選択します。

Image from Gyazo

適当な名前をつけて Create を選択します。

Image from Gyazo

Unit Test 用のプロジェクトとコードが作成されます。

Image from Gyazo

Test1 method の中身を下のコードに書き換えます。 a と b が同じだったら成功というコードです。

[Fact]
public void Test1()
{
    var a = 123;
    var b = 123;
    Assert.Equal(a, b);
}

右クリックメニューから Run Test(s) を選択します。

Image from Gyazo

Test Explorer が開いてテストが実行されます。無事に成功しました。 Unit Test は学び終わりました。爆速です。

Image from Gyazo

7. Write Tests for the practical steps above

  • 説明: 爆速すぎてテスト対象のコードがないのでスキップします。

8. Learn Relational Databases

9. Practical Time

  • 説明: ログインや CRUD を学ぶには RDBMS があったほうがよいのでスキップします。

10. Learn a Framework

  • 説明: C# は .NET が全てなので使っていくうちに学んで行くとよいです。スキップします。
  • 補足: .NET Core を学んでください。 .NET Framework は必要になったら学ぶ程度で OK です。今度の予定では .NET Framework は廃止になり、 .NET Core から引き継いだ .NET 5 というものが誕生します。

11. Practical Time

  • 説明: #10 と同じなのでスキップします。

12. Learn a NoSQL Database

  • 説明: NoSQL を学ぶには NoSQL が必要なのでスキップします。

13. Caching

  • 説明: Cache を学ぶには Cache が必要なのでスキップします。

14. Creating RESTful APIs

  • 説明: テンプレートが用意されているので、マウスクリックだけで学べます。

新しいプロジェクトを作る画面から ASP.NET Core Web Application を選択します。

Image from Gyazo

適当な名前をつけて Create を選択します。

Image from Gyazo

どのテンプレートにするか再度聞かれるので API を選択します。

Image from Gyazo

WeatherForecastController を開くと、ランダムな天気予報を GET で返してくれる Method が出来ています。 F5緑色の再生ボタン を押して実行します。

Image from Gyazo

ブラウザが開いて無事に json 形式の天気予報が表示されました。 RESTful APIs は学び終わりました。爆速です。

Image from Gyazo

補足: GET 以外もテンプレートがあります。

Solution menu > Add > Controller を選択します。

Image from Gyazo

API Controller with read/write actions を選択します。

Image from Gyazo

適当な名前をつけて Add を選択します。

Image from Gyazo

GET / POST / PUT / DELETE が出来上がっています。爆速です。

Image from Gyazo

15-23

  • 説明: 外部アプリケーションが必要だったり、概念説明が難しいのでスキップします。

Note

スキップします。 という Word を検索したら 12 件 Hit しました。 2019 年はもう終わってしまうので、 2020 年は爆速じゃないバージョンを一つづつ丁寧に解説したいです。

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?