.NETCoreの概要

近年注目を集め、日々人気が高まり、動きも速い.NETCoreのシリーズを始めることにしました。この投稿では、.NET Coreに関する一般的な情報を提供し、フレームワークを使用してコンソールアプリケーションを構築する方法を示します。次の投稿では、ASP.NET Core MVCについて記述し、このフレームワークを使用してWebアプリケーションとRESTAPIを構築することを計画しています。

始める前に、Stack Overflow Developer Survey Results 2019によると、.NET Coreは他のフレームワーク、ライブラリ、ツールのカテゴリで最も愛されているフレームワークであることを共有したいと思います。

ソース:https://insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wanted

.Net Framework、.Net Core、および.NetStandardの定義から始めましょう。

.Net Framework / .Net Core / .Net Standard

.NET Frameworkは、Web、Windows、Windows Phone、Windows Server、およびMicrosoftAzure用のアプリを構築するためにMicrosoftによって開発された開発プラットフォームです。これは、共通言語ランタイム(CLR)と.NET Frameworkクラスライブラリで構成されており、幅広い機能と多くの業界標準のサポートが含まれています。これは主にMicrosoftWindowsで実行されます。.NET Frameworkの最初のバージョンは、2002年2月13日にリリースされました。

.NET Coreは、 MicrosoftとGitHubの.NETコミュニティによって維持されているオープンソースの汎用開発プラットフォームです。クロスプラットフォーム(Windows、macOS、およびLinuxをサポート)であり、デバイス、クラウド、およびIoTアプリケーションの構築に使用できます。.NET Core1.0は2016年6月27日にリリースされました。

.NET標準は、すべての.NET実装で使用できるようにすることを目的とした.NETAPIの正式な仕様です。.NET標準の背後にある動機は、.NETエコシステムの統一性を高めることです。Microsoftが.NETCore 1.0を出荷したとき、.NETStandardも導入しました。

.NET CoreFundamentals

.NETCoreには次の特徴があります。

  • クロスプラットフォーム: Windows、macOS、Linuxオペレーティングシステムで動作します。
  • アーキテクチャ間で一貫性: x64、x86、ARMなどの複数のアーキテクチャで同じ動作でコードを実行します。
  • コマンドラインツール:ローカル開発および継続的インテグレーションシナリオで使用できる使いやすいコマンドラインツールが含まれています。
  • 柔軟な展開:アプリに含めることも、ユーザー全体またはマシン全体に並べてインストールすることもできます。Dockerコンテナで使用できます。
  • 互換性: .NET Coreは、.NET Standardを介して、.NET Framework、Xamarin、およびMonoと互換性があります。
  • オープンソース: .NET Coreプラットフォームはオープンソースであり、MITおよびApache2ライセンスを使用しています。.NET Coreは、.NETFoundationプロジェクトです。
  • Microsoftによるサポート: .NET Coreは、.NETCoreサポートに従ってMicrosoftによってサポートされています。

上記のように、.NET Coreには、.NETコンパイラプラットフォームRoslyn、.NET CoreランタイムCoreCLR、.NET CoreフレームワークCoreFX、およびASP.NETCoreが含まれています。(ASP.NETCoreは.NETCore SDKの一部であるため、ASP.NET Coreを個別にインストールする必要はありません。)

.NETCoreのバージョンは次のとおりです。

  • .NET Core 3.0(プレビュー)
  • .NET Core 2.2
  • .NET Core 2.1
  • .NET Core 1.0

C#、Visual Basic、およびF#言語を使用して、.NETCore用のアプリケーションとライブラリを作成できます。

.NETCoreアプリを開発する方法は次のとおりです。

  • コマンドライン(Windows / Linux / macOS)
  • Visual Studio(Windows)
  • Visual Studio for Mac(macOS)
  • Visual Studio Code(Windows / Linux / macOS)

次の場合に、サーバーアプリケーションに.NETCoreを使用します。

  • クロスプラットフォームのニーズがあります。
  • マイクロサービスをターゲットにしています。
  • Dockerコンテナーを使用しています。
  • 高性能でスケーラブルなシステムが必要です。
  • アプリケーションごとに.NETバージョンを並べて表示する必要があります。
  • 現在、アプリは.NET Frameworkを使用しています(移行する代わりに拡張することをお勧めします)。
  • アプリは、.NETCoreでは使用できないサードパーティの.NETライブラリまたはNuGetパッケージを使用します。
  • アプリは、.NETCoreでは使用できない.NETテクノロジーを使用しています。
  • アプリは、.NETCoreをサポートしていないプラットフォームを使用しています。

Microsoftは、 .NETFrameworkと.NETCoreのサポートについて次のように説明しています。

.NET Frameworkは、10億台を超えるマシンにインストールされている.NETの実装であるため、可能な限り互換性を維持する必要があります。このため、.NETCoreよりも遅いペースで移動します。アプリケーションは以前の動作に依存しているため、セキュリティやバグ修正でさえアプリケーションの中断を引き起こす可能性があることを前述しました。.NET Frameworkが常に最新のネットワークプロトコル、セキュリティ標準、およびWindows機能をサポートしていることを確認します。

.NET Coreは、.NETのオープンソース、クロスプラットフォーム、および動きの速いバージョンです。サイドバイサイドであるため、.NETFrameworkに適用するリスクを冒すことのできない変更を加えることができます。これは、.NET Coreが、.NETFrameworkでは取得できない新しいAPIと言語機能を徐々に取得することを意味します。ビルドでは、.NETCoreでファイルAPIがどのように高速であるかを示すデモを行いました。同じ変更を.NETFrameworkに適用すると、既存のアプリケーションが破損する可能性があり、そのようなことはしたくありません。

今後も、アプリケーションを.NETCoreに簡単に移行できるようにしていきます。.NET Core 3.0は、WPF、WinForms、およびEntity Framework 6のサポートを追加することで大きな一歩を踏み出しました。今後も、APIと機能を移植して、ギャップを埋め、移行を選択した人が簡単に移行できるようにします。

既存の.NETFrameworkアプリケーションがある場合は、.NETCoreに移行するようにプレッシャーを感じることはありません。.NETFrameworkと.NETCoreの両方が前進し、両方が完全にサポートされます。.NETFrameworkは常にWindowsの一部になります。しかし、前進すると、それらには多少異なる機能が含まれるようになります。Microsoftの内部にも、.NET Frameworkに基づいており、.NETFrameworkにとどまる多くの大規模な製品ラインがあります。

.NETCoreでコンソールアプリケーションを構築する方法

.NET Coreに関する一般的な情報が得られたので、最初のアプリケーションを作成できます。

コンピューターにVisualStudio 2017 CommunityEditionと.NETCore2.2があります。

まず、[ファイル]-> [新規]-> [プロジェクト]でコンソールアプリケーションを作成しましょう…

Console App(.NET Core)を選択し、プロジェクトに名前を付けたら、[OK]を押すと、次のようにソリューションが作成されます。

Program.csは次のように自動的に作成されます

期待どおりに実行すると、「HelloWorld」が出力されます。

Program.csを変更し、以下のようにユーザーインタラクションを追加しましょう。

プログラムを実行すると、次の出力が得られます。

簡単でしたね:)うまくいけば、この投稿で.NET Core、その利点、使用場所と使用時期についての一般的なアイデアが得られたと思います。

次の投稿では、ASP.NET Core MVCについて詳しく説明し、このフレームワークを使用してアプリケーションを構築します。

それまでさようなら!

更新(16/06/2019):. NET Coreに興味があり、詳細を知りたい場合は、この.NETCoreの出版物を確認してください。出版物の投稿は以下の通りです:

  • .NET Coreの概要 (この投稿)
  • ASP.NET Core MVC Webアプリケーション(プロジェクト構造)
  • ASP.NET CoreMVCとEFCoreを使用してWebアプリを構築する
  • ASP.NETCoreを使用してRESTfulAPIを構築する方法
  • ASP.NETCoreとMongoDBを使用してWebアプリを構築する
  • ASP.NETCoreでのリポジトリパターンの実装
  • ASP.NETCoreアプリをGoogleCloudにデプロイします

参考文献

https://docs.microsoft.com/tr-tr/dotnet/framework/

https://docs.microsoft.com/en-us/dotnet/core/index

https://docs.microsoft.com/en-us/dotnet/core/about

https://docs.microsoft.com/tr-tr/dotnet/standard/choosing-core-framework-server

https://www.tutorialsteacher.com/core/aspnet-core-introduction

提案された投稿

中国の .NET 市場の歴史

私は年長の開発者で、1 年から .NET を使用しています。

Roslyn — .NET コンパイラ プラットフォーム

Roslyn — .NET コンパイラ プラットフォーム

はじめに テクノロジ業界にしばらく携わっている人にとって、「.NET」という用語はなじみがあるでしょう。

関連記事

24 年度に炭素除去に資金を提供

経路全体にわたる Carbon180 の割り当てリクエストの内訳

24 年度に炭素除去に資金を提供

アリソン・リー著、マネージング政府問題顧問 連邦政府の年次歳出プロセスは、二酸化炭素除去 (CDR) に資金を提供する取り組みの中心です。毎年、Carbon180 は、来年の資金がどこに流れるかの指針となるよう、さまざまな議会事務所に要望書を提出しています。

ドメイン名に関する情報の検索

Brian P. Hogan 著『Small, Sharp Software Tools』からの抜粋

ドメイン名に関する情報の検索

facebook.com にリクエストを送信すると、コンピュータはドメイン名を検索してそのドメイン名を IP アドレスに変換し、コンピュータが接続できるようにします。

ネットワークテレビツイッター

ネットワークテレビツイッター

古いものは再び新しくなり、以前はキラキラ輝いていたものがくすんで見えます。私は、JNCO ジーンズが 1990 年代後半の他のファッションとともにダウンタウンのクールな子供たちの間で復活したことについて話しているのではありません。

Goodreads の読書チャレンジは有毒です

Goodreads の読書チャレンジは有毒です

地元の書店ともう一冊の本を求めて交渉していると、手のかゆみが広がった。この本は、最近購入した残りの本と同様に、私の「読みたい本」(TBR)の山の中でその王座を見つけることになります。それでも、買ってしまいました。