この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 21057|答える: 0

[通信] Microsoftは正式に.NET 5のリリースを発表しました

[リンクをコピー]
掲載地 2019/05/07 9:41:27 | | | |
本日、.NET Core 3.0の次のリリースは.NET 5であることを発表します。 これは.NETシリーズの次の大きなリリースとなるでしょう。

将来的には.NETは1つだけになり、Windows、Linux、macOS、iOS、Android、tvOS、watchOS、WebAssemblyなどを開発できるようになります。

.NET 5では新しい.NET API、ランタイム機能、言語機能を導入します。



.NET Coreプロジェクトから始まり、プラットフォームに約5万の.NET Framework APIを追加しました。.NET Core 3.0は、Windows Forms、WPF、Entity Framework 6をサポートするなど、.NET Framework 4.8の残りの機能ギャップの大部分を埋めています。.NET 5はこの取り組みを基盤に、.NET CoreとMonoの最良の機能を活用してプラットフォームを構築しています。 すべての最新の.NETコードに使えます。

2020年11月に.NET 5をリリースし、2020年前半に最初のプレビューを公開する予定です。 今後のVisual Studio 2019、Visual Studio for Mac、Visual Studio Codeのアップデートでサポートされる予定です。

.NET 5 = .NET Core vNext

.NET 5は.NET Coreの次のステップです。 このプロジェクトは、 NET:

  • どこでも使える.NETランタイムとフレームワークを構築し、統一されたランタイム動作と開発者の経験を持つ。
  • .NET Coreを最大限に活用することで、 .NETの機能を拡張するためにNETフレームワーク、Xamarin、Monoを活用しました。
  • 単一のコードベースから製品を構築することで、開発者(Microsoftとコミュニティ)が協力し、拡張してあらゆるシナリオを改善できます。


この新しいプロジェクトと方向性は、.NETにとって大きな転換点となります。 .NET 5では、どんな種類のアプリケーションを作ってもコードやプロジェクトファイルは同じです。 各アプリは同じランタイム、API、言語機能にアクセスできます。 また、ほぼ毎日行われているCoreFXのパフォーマンス向上も含まれています。

.NET Coreであなたが愛するすべての要素は、今後も存在し続けます:

  • GitHub上でオープンソースかつコミュニティ志向の作品です。
  • クロスプラットフォームの実装。
  • WindowsフォームやWPFなどのプラットフォーム固有の機能を活用し、Xamarinの各ネイティブプラットフォームのネイティブバインディングもサポートします。
  • 高性能です。
  • 並べて設置してください。
  • 小さなプロジェクトファイル(SDKスタイル)。
  • コマンドラインインターフェース(CLI)と互換性があります。
  • Visual Studio、Visual Studio for Mac、Visual Studio Codeの統合。


新しい要素もいくつかあります:

  • プレイ時間の選択肢が広がります(詳細は後述します)。
  • Javaの相互運用性はすべてのプラットフォームで利用可能です。
  • 複数のオペレーティングシステムがObjective-CとSwiftの相互運用性をサポートします。
  • CoreFXは.NETの先取り(AOT)対応、より小さなフットプリント、そしてより多くのオペレーティングシステムのサポートに拡張されます。


今年9月に.NET Core 3.0を、2020年11月に.NET 5をリリースし、その後、メジャーバージョンの NET:



バージョン4は、長年4.xシリーズで存在している.NETフレームワークに慣れているユーザーを混乱させるため、スキップしました。 さらに、.NET 5が.NETプラットフォームの未来であることを明確に伝えたいと考えています。 .NET 5と呼ぶことで、これまでで最も高いバージョンをリリースしました。

また、この機会に名称の付け方も簡略化しています。 もし一つの.NETが最良なら、「コア」のような明確な用語は不要だと考えています。 短縮された名称は簡略化であり、.NET 5が一貫した機能と動作を持つというメッセージも伝えています。 もちろん、希望すれば「.NET Core」という名前を使い続けることもできます。

ランタイム体験

Monoは.NETの元々のクロスプラットフォーム実装です。 これは.NETフレームワークのオープンソース代替として始まり、iPhone/iOSやAndroidデバイスの人気に伴いモバイル特化へと移行しました。 モノはXamarinの一部として使われるランタイムです。

CoreCLRは.NET Coreの一部として使用されるランタイムです。 主にクラウドアプリケーションのサポートに使われており、マイクロソフト最大のサービスも含まれており、現在ではWindowsデスクトップ、IoT、機械学習アプリケーションでも使用されています。

まとめると、.NET CoreとMonoランタイムは多くの共通点を持っています(どちらも.NEランタイムですから)が、それぞれ独自の価値ある機能も持っています。 自分が望むランタイム体験を選べるようにするのは非常に理にかなっています。 CoreCLRとMonoを互換性のあるものにしています。 ランタイムオプションを選べるスイッチを作るだけで簡単にできます。

以下のセクションでは、.NET 5で私たちが主に注力する予定の焦点について説明します。 これらは、これら2つのランタイムを個別に、そして一緒にどのように進化させるかについて明確な視点を提供します。

高スループットと高生産性

.NETは初期からジャストインタイムコンパイラ(JIT)を利用して中間言語(IL)コードを最適化された機械語に変換していました。 それ以来、業界をリードするJITベースのマネージドランタイムを構築し、非常に高いスループットを持ち、開発者体験を向上させ、プログラミングを迅速かつ簡単にしています。

JITは長時間実行するクラウドおよびクライアントのシナリオに最適です。 特定のマシン、特に特定のCPU命令に合わせてコードを生成することができます。 また、JITは実行時にメソッドを再生成できるため、JITを高速化しつつ、頻繁に使われる方法であれば高度に最適化されたコードの生成オプションも維持できます。

Techpowerベンチマークで ASP.NET Coreをより速く動作させる私たちの取り組みは、JITの力とCoreCLRへの投資の良い例です。 コンテナ向けに.NET Coreを強化しようとした取り組みは、ランタイムが制約された環境に動的に適応できる能力の証でもあります。

開発者ツールも、dotnet watchツールやedit and continueなど、JITの素晴らしい例です。 ツールはしばしば、再起動せずに単一のプロセスでコードを複数回コンパイル・ロードする必要があり、しかも非常に迅速に行う必要があります。

.NET Coreや.NET Frameworkを使用する開発者は主にJITに依存しています。 したがって、その体験は馴染み深いものであるべきです。

ほとんどの.NET 5の動作シナリオのデフォルト体験は、JITベースのCoreCLRランタイムを使用します。 例外としてはiOSとクライアントBlazor(ウェブアセンブリ)があり、どちらも事前(AOT)ネイティブコンパイルが必要です。

起動が速く、使用量も小さく、メモリ使用量も低く

Monoプロジェクトの大部分はモバイルとコンソールに焦点を当ててきました。 プロジェクトの重要な特徴と成果の一つは、業界をリードするLLVMコンパイラプロジェクトに基づく.NET AOTコンパイラです。 Mono AOTコンパイラは、.NETコードをコンピュータ上で実行可能なネイティブコード実行ファイルに組み込むことを可能にします。これはC++コードと同様にです。 AOTコンパイルされたアプリケーションは、より小さな場所でも効率的に動作し、必要に応じてスループットを交換して起動できます。

BlazorプロジェクトはすでにMono AOTを使っています。 これは.NET 5への移行を最初に行うプロジェクトの一つとなります。 私たちはこの計画を証明する選択肢の一つとして使っています。

AOTの解決策には2種類あります:

  • 100%AOTコンパイル済みの解決策が必要です。
  • ほとんどのコードはAOTコンパイルされたソリューションですが、JITやインタプリタはAOTに配慮しないコードパターン(ジェネリックなど)には使用できます。 Mono AOTは両方のケースをサポートしています。 Appleはセキュリティ上の理由からiOSと一部のコンソールで最初のAOTを必須としています。 後者の方法はAOTの利点を持ちつつ、いくつかの欠点を回避できるため、より良い選択肢です。


.NET NativeはWindows UWPアプリケーション向けのAOTコンパイラであり、上記の最初のAOTタイプの例でもあります。 この実装では、.NET APIと使用できる機能を制限しています。 この経験から学んだのは、AOTソリューションは.NET APIやパターンのあらゆる側面をカバーする必要があるということです。

AOTのコンパイルはiOSやウェブアセンブリ、一部のコンソールでも依然として必要です。 より迅速な起動や低フットプリントを必要とするアプリケーションには、AOTコンパイルをオプションにします。

プロジェクトの誕生

このプロジェクトは2018年12月にボストンの技術チームと共に開始されました。 .NETチーム(Mono/Xamarinおよび.NET Core)とUnityの設計リーダーたちは、さまざまな技術的能力やアーキテクチャの方向性を提示しました。

現在、私たちはチームとしてこのプロジェクトを前進させており、成果物を用意しています。 12月以降、いくつかのプロジェクトで大きな進展を遂げました。

  • 最小レイヤーが定義されており、CoreFXの公開コードの>99%を達成することを目的としたランタイム<>管理コード層を定義しています。
  • MonoVMはCoreFXとそのクラスライブラリを使用できるようになりました。
  • CoreFXの実装を使ったMonoVM上ですべてのCoreFXテストを実行してください。
  • MonoVMでCore 3.0アプリケーション ASP.NET 実行。
  • CoreCLRでMonoDevelopを実行し、その後Mac for MacでVisual Studioを起動します。


単一の . .NETの実装は重要な疑問を投げかけます。ターゲットとなるフレームワークは何になるのか? NuGetパッケージの互換性ルールは同じですか?.NET 5 SDKはどのワークロードをサポートするべきでしょうか? 特定のアーキテクチャ向けにどうやってコーディングすればいいですか? まだ.NET Standardは必要でしょうか?
現在これらの問題に取り組んでおり、まもなくデザインドキュメントを共有し、皆さんにご意見いただく予定です。

エピローグ

.NET 5プロジェクトは.NETにとって重要で刺激的な新しい方向性です。 .NETはよりシンプルになるだけでなく、より幅広い機能やユーティリティを持つようになります。 すべての新しい開発や機能は.NET 5の一部であり、新しいC#バージョンも含まれます。

同じ.NET APIや言語を使って、幅広いアプリケーションタイプ、オペレーティングシステム、シリコンアーキテクチャをターゲットにできる明るい未来を見ています。 Visual Studio、Visual Studio for Mac、Visual Studio Code、Azure DevOps、またはコマンドラインでは、ビルド構成を変更して異なるアプリケーションをビルドするのが簡単です。

元のリンク:ハイパーリンクのログインが見えます。





先の:コンマ分離文字列法
次に:SQL Server 2012は比較テストのためにOFFSET/FETCH NEXTとRow_Number()を組み合わせて提供しています
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com