.NET とは何ですか?
.NET は、あらゆるオペレーティングシステムでネイティブに実行できるデスクトップ、ウェブ、およびモバイルアプリケーションを構築するためのオープンソースプラットフォームです。.NET システムには、最新のスケーラブルで高性能なソフトウェア開発をサポートするツール、ライブラリ、言語が含まれています。活発なデベロッパーコミュニティが .NET プラットフォームを維持し、サポートしています。
簡単に言うと、.NET プラットフォームは、次のタスクを実行できるソフトウェアです。
- .NET プログラミング言語コードを、コンピューティングデバイスが処理できる命令に変換します。
- 効率的なソフトウェア開発のためのユーティリティを提供します。例えば、現在の時刻を検索したり、画面上のテキストを印刷したりできます。
- 一連のデータ型を定義して、テキスト、数字、日付などの情報をコンピュータに保存します。
.NET の実装とは何ですか?
.NET のさまざまな実装により、Linux、macOS、Windows、iOS、Android など、幅広いオペレーティングシステムで .NET コードを実行できます。
.NET Framework
.NET Framework は当初から存在する .NET 実装です。Windows でのウェブサイト、サービス、デスクトップアプリなどの実行をサポートします。Microsoft は、1990 年代初頭に .NET Framework をリリースしました。
.NET Core
Microsoft は、クロスプラットフォームの .NET デベロッパー向けのサポートを実現するために、2014 年後半に .NET Core をリリースしました。同社は、2020 年 11 月に .NET Core の最新バージョンである .NET 5.0 をリリースし、その名称を .NET に変更しました。この記事の .NET という用語は .NET 5.0 のことをいいます。.NET Core は GitHub のオープンソースです。
.NET Standard
.NET Standard は、さまざまな機能 (API と呼ばれます) の正式な仕様です。異なる .NET 実装でも、同じコードとライブラリを再利用できます。各実装では、.NET 標準 API と、それが実行されるオペレーティングシステムに固有の一意の API の両方を使用します。
.NET を選ぶべきなのはなぜですか?
開発のしやすさ
デベロッパーは、作業を簡単にする多くのツールが含まれているため、.NET の使用を好みます。例えば、Visual Studio スイートを使用すると、デベロッパーはコードを迅速に記述し、効率的にコラボレーションし、コードを効率的にテストおよび修正できます。 別の実装でコードを再利用できるため、開発コストが削減されます。
高性能なアプリケーション
.NET アプリケーションを使用すると、応答時間が短縮され、必要なコンピューティング性能が少なくて済みます。強力なセキュリティ対策が組み込まれており、データベースアクセスなどのサーバー側のタスクを効率的に実行します。
コミュニティサポート
.NET はオープンソースです。つまり、誰でも自由にアクセスして、使用したり、読み取ったり、変更したりできます。デベロッパーの活発なコミュニティは、.NET ソフトウェアを維持し、改善します。.NET Foundation は、.NET コミュニティをサポートするために設立された独立非営利団体です。.NET デベロッパー向けに、学習リソース、オープンソースの .NET プロジェクト、およびさまざまなイベントが提供されています。
.NET アーキテクチャのコンポーネントとは何ですか?
.NET は、モジュール化および最適化されたアーキテクチャを提供します。ユーザーは、ソフトウェア開発要件に合わせてさまざまなコンポーネントを選択できます。
次の 3 つの主要な .NET コンポーネントがあります。
- .NET 言語
- アプリケーションモデルフレームワーク
- .NET ランタイム
デベロッパーは、.NET プログラミング言語とアプリケーションモデルフレームワークを使用して .NET アプリケーションを作成します。その後、.NET ランタイムが実行されます。
.NET プログラミング言語とは何ですか?
Microsoft は、NET 開発向けに、C# (「C シャープ」と発音)、F# (「F シャープ」と発音)、および Visual Basic の 3 つの言語をサポートしています。さまざまな企業やデベロッパーが、.NET プラットフォームで機能する他の言語も作成しています。
C#
C# は、シンプルでモダンな、オブジェクト指向のプログラミング言語です。C# は C ファミリーの言語に類似した構文で、C、C 、Java、および JavaScript のプログラマーによく知られています。
F#
F# は軽量な構文であり、ソフトウェアを構築するために必要なコードはごくわずかです。これは、簡潔かつ堅牢で高性能なコードを簡単に記述できるようにするオープンソース言語です。また、強力なプログラミングルールシステムと、正確かつ高速で、信頼性の高いミッションクリティカルなソフトウェアを構築するための便利な標準ライブラリも備えています。
Visual Basic
Visual Basic は、Microsoft が開発したオブジェクト指向プログラミング言語です。Visual Basic を使用すると、タイプセーフな .NET アプリを迅速かつ簡単に作成できます。タイプセーフは、プログラミング言語が論理コーディングエラーを阻止または防止する程度を示します。
共通言語基盤 (CLI) 言語
ClojureCLR、Eiffel、IronPython、PowerBuilder などの多くの言語も、.NET プラットフォームで機能します。これは、.NET が共通言語基盤 (CLI) を実装しているためです。CLI は、.NET 互換言語を作成するためのテンプレートと考えることができます。
.NET ランタイムとは何ですか?
.NET ランタイムは、共通言語ランタイム (CLR) とも呼ばれ、さまざまなオペレーティングシステムで .NET プログラムをコンパイルして実行します。
ジャストインタイムコンパイル
CLR は、デベロッパーが記述したとおりにコードをコンパイルします。コンパイル中、CLR はコードを共通中間言語 (CIL) に変換します。例えば、C# で記述されたコードは、英語に似た構文と単語が含まれます。.NET は、このコードを CIL にコンパイルまたは変換します。CIL コードは下位レベルのマシンコード言語であるため、見た目が異なります。
実行
.NET ランタイムは CIL コードの実行を管理します。CIL はクロスプラットフォーム互換で、どのオペレーティングシステムでも処理できます。「クロスプラットフォーム互換である」とは、最小限の変更で複数の異なるオペレーティングシステム上でアプリケーションを実行できることをいいます。例えば、C# で記述されたアプリケーションは、コードを変更することなく、Windows、Linux、または macOS で実行できます。このようなアプリケーションは、クロスプラットフォームアプリケーションと呼ばれます。
.NET アプリケーションモデルのフレームワークとはどのようなものですか?
アプリケーションモデルフレームワークは、迅速かつ効率的な .NET プロジェクト開発をサポートするデベロッパーツールとライブラリをまとめたものです。以下に示すようなさまざまなタイプのアプリケーション向けに、幅広いフレームワークが存在しています。
ウェブアプリケーション
ASP.NET フレームワークは、特にウェブベースのアプリケーションを構築するために、.NET デベロッパープラットフォームを拡張します。これは、REST API、HTML、CSS、JavaScript などのウェブテクノロジーをサポートしています。多要素認証と外部認証を備えた組み込みのユーザーデータベースが提供されます。ASP .NET は、セキュリティメカニズムが組み込まれた業界標準の認証プロトコルをサポートし、.NET アプリをサイバー攻撃から保護します。
モバイルアプリケーション
iOS や Android を含むすべての主要なモバイルオペレーティングシステムで .NET アプリを実行するために、Xamarin/Mono を使用できます。Xamarin には、オープンソースのモバイルユーザーインターフェイスフレームワークである Xamarin.Forms が含まれています。.NET デベロッパーは Xamarin.forms を使用して、モバイルプラットフォーム全体で一貫したユーザーエクスペリエンスを創出します。すべての .NET アプリは、異なるモバイルデバイス上でも同じように見える場合があります。
デスクトップアプリケーション
Xamarin はデスクトップアプリケーション開発に使用できます。さらに、Universal Windows Platform は .NET Windows 10 アプリケーション開発を拡張します。Windows Presentation Foundation と Windows Forms は、Windows でのユーザーインターフェイス設計のための別のフレームワークです。
その他のアプリケーション
ML.NET を使用すると、カスタム機械学習モデルを開発し、.NET アプリケーションに統合できます。.NET IoT Libraries を使用して、センサーや他のスマートデバイス上でアプリケーションを開発できます。フレームワークで利用できないソリューションについては、公開されている NuGet リポジトリで多くの特定の関数ライブラリを見つけることができます。Nuget を使用して、ほぼすべての目的のために、多数の .NET ライブラリを作成、共有、および使用できます。
AWS は .NET デベロッパーをどのようにサポートできますか?
.NET デベロッパーは .NET on AWS を使用してアプリケーションを高速化できます。 すべてのジョブに対応するサービスがあるため、インフラストラクチャの管理について心配することなく、概念実証を迅速に構築できます。.NET 開発用の AWS のサービスの例をいくつか以下に示します。
- AWS Elastic Beanstalk は、アプリケーションのデプロイと運用タスクを処理します。
- Amazon EC2 は、クラウドで安全でサイズ変更可能なコンピューティング性能を提供します。
- Amazon Aurora は、データベース管理を自動化します。
.NET デベロッパーは、次のような AWS オープンソースツールとライブラリも使用できます。
- AWS SDK for .NET を使用することで、Linux および Windows のデベロッパーは .NET アプリケーションを簡単に構築できます。
- AWS Code Examples Repository は、AWS のサービスと連携するアプリケーションの理解を深めるのに役立ちます。
- .NET Digital Library には、.NET に関する動画、チュートリアル、ブログ、その他のデベロッパー向けリソースのアーカイブが含まれています。
.NET 6 のリリースにより、.NET デベロッパーは Linux を利用した AWS のパフォーマンスとコスト削減の恩恵をさらに受けることができます。.NET 6 アプリケーションでは、追加作業なしで多くの AWS のサービスをすぐに利用できます。このガイドでは、AWS のサービスとツールによって提供される .NET 6 のサポートについて説明します。
.NET on AWS の使用を開始するには、.NET on AWS トレーニングを完了するか、AWS で .NET アプリケーションを構築するか、AWS で最初の .NET アプリケーションを起動します。