.NET(標準、コア、フレームワーク):クロスプラットフォームアプリケーションの開発

フセインサルマン

SOを検索しましたが、多くの回答が見つかりましたが、質問を対象としていません。

定義が言うように:

  • .NET Framework 4.6は、.NETに関連するすべての完全なフレームワークですが、マルチプラットフォーム(Windows、Linux、Mac)およびクラウド展開用に最適化されたライブラリとランタイムがありません。
  • 一方、.NET Coreは、.NET Framework 4.6のサブセットであり、主にマルチプラットフォームおよびクラウド展開用に最適化されています。
  • NET標準:プラットフォームではなく、「標準」のAPIセット。したがって、基本的にプラットフォームは気にせず、標準(バージョン1.3、1.6 ...)だけで、コードはそれをサポートするすべてのプラットフォームで機能します。

クロスプラットフォームアプリケーションを開発するために、以下を使用する可能性のある他のクラスライブラリを参照する可能性のあるASP.NETコアアプリケーション(.NET)を作成する予定です。

  • .NET標準
  • .NET Core

いずれか(標準またはコア)を使用する場合、アプリケーションは引き続き他のOSをサポートすると思います。

場合によっては、クラスライブラリで従来の.NET Framework With .NET Standardを使用している人を見かけますか?

  • この場合、.NET Frameworkを使用しているときに、アプリケーションはまだクロスプラットフォームですか?
  • いつ組み合わせて使用​​する必要がありますか(標準、コア、NET)?
  • フレームワークを使用および混合する際のベストプラクティスは何ですか?
  • 競合を回避して失敗を構築する方法は?

たとえば、project.jsonを持つクラスライブラリがあるとします。

 "dependencies": {
    "Microsoft.Extensions.Caching.Abstractions": "1.0.0",
    "Microsoft.Extensions.Options": "1.0.0",
    "StackExchange.Redis.StrongName": "1.1.608",
    "NETStandard.Library": "1.6.0"
  },
  "frameworks": {
    "netstandard1.5": { }
  }

依存関係はフレームワークとどのように異なりますか?標準ライブラリは単なる仕様であるため、プロジェクトはどのようにアセンブリを解決しますか。

svick

この場合、.NET Frameworkを使用しているときに、アプリケーションはまだクロスプラットフォームですか?

実際には、.NetFrameworkアプリケーションは.NetCoreでは実行されません。ただし、LinuxおよびMacOSで使用可能なmonoで実行される場合があります。

いつ組み合わせて使用​​する必要がありますか(標準、コア、NET)?

可能であれば(つまり、フレームワーク固有の依存関係がない限り)、ライブラリに.NetStandardを使用する必要があります。

アプリケーションに.NetFramework固有の依存関係がある場合、またはアプリケーションをWindowsのみにすることができる場合は、アプリケーションに.NetFrameworkを使用します。

クロスプラットフォームにする必要がある場合、または最新のAPIを使用する場合は、アプリケーションに.NetCoreを使用します。(.Net Coreは通常、.Net Frameworkよりも高速に更新され、プレビューバージョンもあります。)

フレームワークを使用および混合する際のベストプラクティスは何ですか?

質問がわかりません。同じアプリケーションに.NetFrameworkと.NetCoreを混在させることはできません。

競合を回避して失敗を構築する方法は?

私はいくつかの明白なアドバイスを提供することができますが、それは答えられる質問ではないと思います:

  • ドキュメントを読み、それに従ってください。
  • 不安定なテクノロジーを使用しないでください。(.Net Coreツールは現在プレビュー中です。)

編集:

依存関係はフレームワークとどのように異なりますか?

"frameworks": { "netstandard1.5": { } } これは、ライブラリが.Net Standard 1.5ライブラリであり、使用できるフレームワークを決定することを意味します。

"dependencies": { "NETStandard.Library": "1.6.0" }実際には、.Net標準ライブラリの一部であるパッケージを取り込みます。また、ライブラリは、そのサブセットだけでなく、すべての.Net標準ライブラリにアクセスできることも意味します。

標準ライブラリは単なる仕様であるため、プロジェクトはどのようにアセンブリを解決しますか?

NETStandard.Library依存するパッケージは単なる仕様ではありません。たとえば、パッケージにSystem.IO.Compression.ZipFileは次のものが含まれています。

  • コンパイルに使用される参照アセンブリ(つまり、仕様)
  • フレームワークアセンブリにZipFile転送するfor.Net Framework4.6の実装System.IO.Compression.FileSystem
  • 実際に実装する.NetCoreの実装 ZipFile

(パッケージの内部を自分で調べるには、NuGetPackageExplorerをお勧めします。)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

デスクトップアプリケーション開発用のJavaフレームワーク

分類Dev

クロスプラットフォームとプラットフォームに依存しないフレームワークの違いは何ですか?Qtアプリケーションフレームワークの特定のケース

分類Dev

次の基準に基づいてデスクトップアプリケーションを開発する言語/プラットフォーム

分類Dev

Windowsフォームアプリケーションのフレームワークライセンス

分類Dev

クリックワンスデプロイメント用のWindowsAzureストレージコンテナへのWindowsフォームアプリケーションの公開エラー

分類Dev

.NET Core1.1でアプリケーションデータのディレクトリを取得するクロスプラットフォームの方法

分類Dev

Avaloniaはどのようにクロスプラットフォームアプリケーションを開発していますか?

分類Dev

Visual Basic .NET で記述されたクロス プラットフォーム アプリケーション

分類Dev

クロスプラットフォームのモバイルアプリを開発するためのelectronJSと同様のフレームワーク

分類Dev

クロスプラットフォームアプリケーションの設計と単体テスト

分類Dev

クロスプラットフォームデスクトップアプリケーション-Windows + Mac + Linux

分類Dev

フレームワークのアプリケーション

分類Dev

デスクトップアプリケーション:アーキテクチャフレームワーク?

分類Dev

クロスプラットフォームアプリの開発

分類Dev

クロスプラットフォームアプリケーション用のJavaFX 2.0およびQt

分類Dev

クロスプラットフォームアプリケーションの作成

分類Dev

クロスプラットフォームのjavaFXアプリケーションを生成できません

分類Dev

フラスコフレームワークのセロリにアプリケーションコンテキストを渡す

分類Dev

Windowsフォームアプリケーションのチェックボックスのレイアウト

分類Dev

エンティティフレームワーク6-クライアントアプリケーション.netフレームワーク4?

分類Dev

フレームワークでのレガシーアプリケーションのラッピング

分類Dev

マルチプラットフォームアプリケーション開発の選択

分類Dev

コードネームポートレートロックアプリの1つのランドスケープ指向フォーム

分類Dev

Javaアプリケーションの無料アラートフレームワークの検索

分類Dev

C ++アプリケーションはクロスプラットフォームですか?

分類Dev

クロスプラットフォームアプリケーションでQtWinExtrasを使用する方法

分類Dev

Windows フォーム アプリケーションのバックグラウンド ワーカー

分類Dev

クロスプラットフォームコンソールのクリア?

分類Dev

クロスプラットフォームの定期的なアプリのサブスクリプション

Related 関連記事

  1. 1

    デスクトップアプリケーション開発用のJavaフレームワーク

  2. 2

    クロスプラットフォームとプラットフォームに依存しないフレームワークの違いは何ですか?Qtアプリケーションフレームワークの特定のケース

  3. 3

    次の基準に基づいてデスクトップアプリケーションを開発する言語/プラットフォーム

  4. 4

    Windowsフォームアプリケーションのフレームワークライセンス

  5. 5

    クリックワンスデプロイメント用のWindowsAzureストレージコンテナへのWindowsフォームアプリケーションの公開エラー

  6. 6

    .NET Core1.1でアプリケーションデータのディレクトリを取得するクロスプラットフォームの方法

  7. 7

    Avaloniaはどのようにクロスプラットフォームアプリケーションを開発していますか?

  8. 8

    Visual Basic .NET で記述されたクロス プラットフォーム アプリケーション

  9. 9

    クロスプラットフォームのモバイルアプリを開発するためのelectronJSと同様のフレームワーク

  10. 10

    クロスプラットフォームアプリケーションの設計と単体テスト

  11. 11

    クロスプラットフォームデスクトップアプリケーション-Windows + Mac + Linux

  12. 12

    フレームワークのアプリケーション

  13. 13

    デスクトップアプリケーション:アーキテクチャフレームワーク?

  14. 14

    クロスプラットフォームアプリの開発

  15. 15

    クロスプラットフォームアプリケーション用のJavaFX 2.0およびQt

  16. 16

    クロスプラットフォームアプリケーションの作成

  17. 17

    クロスプラットフォームのjavaFXアプリケーションを生成できません

  18. 18

    フラスコフレームワークのセロリにアプリケーションコンテキストを渡す

  19. 19

    Windowsフォームアプリケーションのチェックボックスのレイアウト

  20. 20

    エンティティフレームワーク6-クライアントアプリケーション.netフレームワーク4?

  21. 21

    フレームワークでのレガシーアプリケーションのラッピング

  22. 22

    マルチプラットフォームアプリケーション開発の選択

  23. 23

    コードネームポートレートロックアプリの1つのランドスケープ指向フォーム

  24. 24

    Javaアプリケーションの無料アラートフレームワークの検索

  25. 25

    C ++アプリケーションはクロスプラットフォームですか?

  26. 26

    クロスプラットフォームアプリケーションでQtWinExtrasを使用する方法

  27. 27

    Windows フォーム アプリケーションのバックグラウンド ワーカー

  28. 28

    クロスプラットフォームコンソールのクリア?

  29. 29

    クロスプラットフォームの定期的なアプリのサブスクリプション

ホットタグ

アーカイブ