Microsoft .NET 4.0フルフレームワークとクライアントプロファイルの違い


360

Microsoft .NET Framework 4.0フルインストーラー(32ビットおよび64ビット)は48.1 MB、クライアントプロファイルインストーラーは41.0 MBです。抽出されたインストールファイルは、それぞれ237 MBと194 MBで、一度インストールすると、537 MBと427 MBになります。

これは、110 MBの違いです。2つのパッケージの違いは何ですか?

完全な.NET Frameworkの代わりにクライアントプロファイルをインストールするのが望ましいのはいつですか?


52
7.1 MBの違いは?Microsoftは7.1 MBを2つに分割する価値があると考えていたため、開発者はコンパイルエラーに不満を感じていますか?驚くばかり。
JYelton 2012年


13
A 7.1 MB difference? Developers get frustrated with compile errors because Microsoft thought 7.1 MB was worth splitting it in two? それは単なるインストーラです。開梱すると、さらに43MB大きくなります。インストールすると、110MB増えます。組み込みシステムや目立たないシステムを忘れることができます。RπがWindowsをサポートしない唯一の理由は、コストとアーキテクチャだけではありません。
Synetech 2013年

回答:


365

.NET Framework 4の新機能クライアントプロファイルRTMは、多くの違いを説明しています。

いつNET4 Client Profileを使用し、いつNET4 Full Frameworkを使用するのですか?
NET4クライアントプロファイル:
すべてのクライアントデスクトップアプリケーション(WindowsフォームとWPFアプリを含む)のNET4クライアントプロファイルを常にターゲットにします。

NET4 Fullフレームワーク:
アプリが必要とする機能またはアセンブリがクライアントプロファイルに含まれていない場合にのみ、NET4 Fullをターゲットにします。これも:

  • サーバーアプリを構築している場合。例:
    o ASP.Netアプリ
    oサーバー側のASMXベースのWebサービス
  • レガシークライアントシナリオを使用する場合。例:
    o NET4で廃止され、クライアントプロファイルに含まれていないSystem.Data.OracleClient.dllを使用します。
    o従来のWindows Workflow Foundation 3.0または3.5(WF3.0、WF3.5)を使用する
  • 開発者シナリオを対象としていて、MSBuildなどのツールが必要な場合、またはSystem.Design.dllなどの設計アセンブリにアクセスする必要がある場合

ただし、MSDN述べられているように、これは4.5以上には関係ありません。

.NET Framework 4.5以降、クライアントプロファイルは廃止され、完全な再頒布可能パッケージのみが利用可能になりました。.NET Framework 4.5によって提供される最適化(ダウンロードサイズの縮小や展開の高速化など)により、個別の展開パッケージが不要になりました。単一の再配布可能ファイルにより、インストールプロセスが合理化され、アプリの展開オプションが簡素化されます。


12
このブログエントリでは、さまざまなフレームワークのファイルサイズについても説明しています。hanselman.com
M. Dudley

56

ほとんどの場合、企業内に「フルフレームワーク」ではなく「クライアントプロファイル」を展開する必要があります。クライアントコンピュータで実行されている.NET機能の一部を明示的に拒否する必要があります。実際の唯一のケースは、たとえば、セキュリティ上の理由や既存の企業ポリシーのために、企業のクライアントマシンASP.NETを拒否することです。

クライアントコンピュータで8 MB未満の節約は、企業での「クライアントプロファイル」の展開の重大な理由にはなりません。企業の後半で「完全なフレームワーク」の展開が必要になるリスクは、クライアントあたり8 MBのコストよりも高くなります。


Cameronの回答のリンクは、多くの理由を示しています。
Ade Miller

13
@エード。当然のことながら、私たちはすべて同じことについて話しています。2つのパッケージの違いはよく知られています。「クライアントプロファイル」を使用する唯一の重大な理由は、クライアントコンピューターでASP.NETを拒否する必要があるということだけです。他のすべての技術的な詳細はそれほど重要ではありません。
Oleg

1
Saving of less then 8 MB… それはインストーラーだけです。インストールすると、110MB増えます。
Synetech 2013年

2
この時代の1Tbドライブの110Mb-8Mbなどは誰が気にしますか?
リアム2013年

1
@Oleg、あなたの答えが真実なら、なぜ.NET 4.5以降はもはやクライアントプロファイルをサポートしないのですか?
パセリエ

48

アセンブリのリストは、MSDNの.NET Frameworkクライアントプロファイルのアセンブリで入手できます(リストが長すぎるため、ここに含めることはできません)。

機能にもっと興味がある場合は、MSDNの.NET Framework Client Profileに、次のものが含まれていると記載されています。

  • 共通言語ランタイム(CLR)
  • ClickOnce
  • Windowsフォーム
  • Windows Presentation Foundation(WPF)
  • Windows Communication Foundation(WCF)
  • エンティティフレームワーク
  • Windows Workflow Foundation
  • スピーチ
  • XSLTサポート
  • LINQ to SQL
  • Entity FrameworkおよびWCF Data Servicesのランタイム設計ライブラリ
  • Managed Extensibility Framework(MEF)
  • 動的タイプ
  • タスク並列ライブラリ(TPL)、並列LINQ(PLINQ)、調整データ構造(CDS)などの並列プログラミング機能
  • クライアントアプリケーションのデバッグ

そして含まれていないものとして次のもの:

  • ASP.NET
  • 高度なWindows Communication Foundation(WCF)機能
  • Oracle用.NET Frameworkデータプロバイダー
  • コンパイル用のMSBuild

20

キャメロンマクファーランドはそれを釘付けにした。

.NET 4.0クライアントプロファイルがWindows Updateおよび将来のWindowsリリースに含まれることを追加したいと思います。ほとんどのコンピューターは、完全なプロファイルではなく、クライアントプロファイルを持っていることを期待します。企業対消費者(B2C)の販売行っている場合は、この事実を過小評価しないでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.