質問

.NETフレームワークが最初に登場したときから、最低限のOSサポートがありました:

  • .NET 1.0-Windows NT以降(Windows 98 / MEもサポートされています)
  • .NET 2.0-Windows 2000以降(Windows 98 / MEもサポートされています)
  • .NET 3.0-Windows XP以降
  • .NET 3.5-Windows XP以降

この最小限のOSサポートにより、フレームワークのみを使用してプラットフォーム固有の問題を無視できるようになりました。古いプラットフォームでは、新しい機能は無視されました。たとえば、「タイルビュー」 ListViewコントロールのスタイルまたはWindows 98 / MEのフォームの透明度。

ただし、System.Core.dll(.NET 3.5の一部)には、新しいVista APIを使用し、XPマシンで使用するとPlatformNotSupportedExceptionをスローするクラスがいくつかあります。たとえば、新しいEventLogReaderクラス(System.Diagnostics.Eventing.Reader名前空間内)を見てください。

Microsoftはプラットフォームサポートの伝統を破りますか?

公平を期すため、.NET 2.0には既にWindows 98 / MEでは利用できないNTFSセキュリティ機能をサポートするクラスがありました。

役に立ちましたか?

解決

Microsoftは明らかにVista中心の開発環境に向かっています。 「お金を稼ぐ必要がある」という明白な理由だけでなく、Vistaがクールな新しいAPIが生まれている理由でもあります。

公平を期すために、Windows APIでは常にそのようになっており、.NETではおそらくそのようになります。そのような「伝統」はありません。説明どおりですが、動作しない可能性のあるAPIを作成するという伝統は、それをサポートしていないオペレーティングシステムにいることを通知します。理解していれば、フォワードの制限ではなく、常に下位の互換性を保とうとします:

他のヒント

最低限のOSサポートは、製品が特定のプラットフォーム以上でテストされたことを意味します。すべての機能(または.Netのような開発プラットフォームの場合はクラス/ API)がサポートされているすべてのプラットフォームで動作することを保証するものではありません。

XPには存在しないVista固有のネイティブAPIがあります。 .Net 3.5は、これらのAPIのマネージワールドのサポートを追加しますが、XPに存在しないネイティブAPIのマネージ実装を提供しようとはしていません。

.NETがWindows 98またはMEで実際に機能したことは一度もないという経験をお伝えできます。 2002年にバージョン1.0が新しくなったときのことを思い出します。一部の同僚は、Microsoftの主張に反して、いくつかのボタンと完全にシンプルな機能を備えたWinFormよりも複雑なものは、Windows 9xでは動作しないことを発見しました。私たちはXPを1年使用しており、少なくとも当時扱っていたマシンではWindows 2000を合理的に期待できることを考えると、大したことではありませんでした。

しかし、基本的に、Microsoftは.NETを備えた古いバージョンのWindowsを無視することは新しいことではありません。少なくとも最近では、PlatformNotSupportedException例外をスローしています。

プラットフォームのサポートは常にタイプによって異なります。たとえば、多くのタイプはCompact Frameworkでサポートされていません。

すべてを話すことはできませんが、たとえば、Vistaのイベントログシステムは完全にオーバーホールし、Windows XPのイベントログシステムとはほとんど似ていません。おそらく文字通り互換性がありません。

ここでの問題は、 System.Diagnostics.Eventing がAppFabric(Windows Azureなど)で使用されているため、基本的にWindows XPがクラウドと通信するという困難な戦いを戦うことになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top