MicrosoftのライブラリがNewtonsoft.Jsonに依存しているのはなぜですか?


18

これはおそらく、MicrosoftがASP.NET Web APIライブラリを作成したときから始まったものであり、少なくとも私が間違えなければ覚えているときです。とにかく、それ以来、そのHTTPパッケージは、JSONとのデータの(デ)シリアル化のためにNewtonsoft.Jsonライブラリに依存して開始されました。

マイクロソフトと同じくらい大きな会社がオープンソースライブラリへの依存を追加するのはなぜですか?私が知っている限り、それが依存関係として使用される唯一のMicrosoft以外のライブラリだったので、彼らが当時。

おまけの質問として、ジェームズ・ニュートン・キングはマイクロソフトから何らかの財政的支援を受けていますか?


14
Microsoftが放り投げるお金の袋を持っているように聞こえます。それらは非常に豊富ですが、リソースは無制限ではありません。そのため、計算はあなたのものと同じになります。
ロバートハーヴェイ

マイクロソフトは数年前からオープンソースに対応し始めました。彼らはjQueryをASP.NET MVCに早期にバンドルしました。.NETでオープンソースに移行することは、その変化の一部です。
ロバートハーヴェイ

4
あなたはここにJSON.NETの歴史について少し知ることができます:newtonsoft.com/json/help/html/Introduction.htm
ロバート・ハーヴェイ

何故なの?これは世界クラスのJSONシリアル化ライブラリです。MSは、他の問題にエネルギーを集中し、車輪を再発明しないことを賢明に決定したと推測しています。
ガルモラン

6
興味深いことに、ジェームズ・ニュートン・キングは2018年3月にMicrosoftに入社すると発表しました
イェルーン

回答:


19

私が見つけた最も直接的な引用は、スコット・ガスリーの2012年のMVC 4ロードマップの発表の一部です(明らかにオフラインですが、Wayback Machineを介して利用可能です)。

Json.NET:ASP.NET Web APIのデフォルトのJSONフォーマッターで、コミュニティが開発したJson.NETシリアル化スタックを使用する予定です。Json.NETは、最新のWebフレームワークに必要な柔軟性とパフォーマンスを提供します。

単純な理由は、それが利用可能な最高のJSONライブラリである一方で、MVCは、MSや他のソフトウェアジャイアントを特徴づける確立されたNIHの態度を捨て、最高のオープンソースプロジェクトに手を差し伸べるMicrosoftの最初の大規模プロジェクトの1つです独自の製品の基盤として。


すべて公平で、確かに「NIH」に戻りたくありません。それでも、このライブラリがMSのスタックに含まれることを願っています。その理由は、外部ライブラリが外部の非コアフレームワーク依存関係を持たないようにするという大きなプレッシャーがあるからです。これは、それを行うのが難しい場所で頻繁に遭遇する唯一のライブラリであり、当然のことながら、これは非常に優れた機能であり、ネイティブXMLツール(XElementなど)のない.NETを考えるようなものです。これがすべてのnuget(!)で一番のライブラリであるのも不思議ではありません。私の2セント。
ニコラスピーターセン

1
@NicholasPetersen .NET Standardに含める提案については、こちらをご覧ください。最後に議論をチェックしましたが、大部分は反対でしたが、おそらく標準ライブラリに軽いJSONパーサーであるサブセットを含めるためです。
アヴナーシャハル

既に述べたように、.NET Standardの一部として追加すべきだとは思っていませんでしたが、これは良い点を示しています。私の考えは、netcoreの一部としてそれを含めることでした(corefxの場合)そこにはNET Foundationの一部であると示唆する人もいましたが、他のライブラリがフレームワーク外部のライブラリを参照する必要がないという現実の問題を軽減できるかどうかはわかりません。
ニコラスピーターセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.