Mengapa perpustakaan Microsoft bergantung pada Newtonsoft.Json?


18

Ini mungkin sudah mulai jauh ketika Microsoft membuat perpustakaan ASP.NET Web API, setidaknya saat itulah saya mengingatnya jika saya tidak salah. Bagaimanapun, sejak itu, paket-paket HTTPnya mulai tergantung pada pustaka Newtonsoft.Json untuk serialisasi data (de) ke dan dari JSON.

Mengapa perusahaan sebesar Microsoft akan menambah ketergantungan pada pustaka sumber terbuka? Saya merasa aneh bahkan jika mereka akan pergi sepenuhnya open source dengan. NET saat itu karena telah menjadi perpustakaan non-Microsoft yang digunakan sebagai ketergantungan, sejauh yang saya tahu.

Sebagai pertanyaan bonus, apakah James Newton-King mendapatkan dukungan finansial dari Microsoft?


14
Anda membuatnya terdengar seperti Microsoft memiliki tas uang untuk dibuang. Walaupun mereka cukup kaya, sumber dayanya tidak terbatas, yang membuat kalkulus mereka sama dengan Anda: "mengapa saya harus menghabiskan waktu dan uang untuk menulis sesuatu yang sudah ada alternatif sumber terbuka yang baik?"
Robert Harvey

Microsoft mulai menjadi lebih ramah open-source tahun yang lalu; mereka menggabungkan jQuery ke dalam ASP.NET MVC sejak awal. Menjadi open-source dengan .NET adalah bagian dari perubahan itu.
Robert Harvey

4
Anda dapat mengetahui sedikit lebih banyak tentang sejarah JSON.NET di sini: newtonsoft.com/json/help/html/Introduction.htm
Robert Harvey

Kenapa tidak? Ini adalah perpustakaan serialisasi JSON kelas dunia, saya kira MS dengan bijak memutuskan untuk memfokuskan energi mereka pada masalah lain dan tidak menemukan kembali roda.
Fergal Moran

6
Menariknya, James Newton-King mengumumkan pada Maret 2018 bahwa ia akan bergabung dengan Microsoft.
Jeroen

Jawaban:


19

Kutipan paling langsung yang saya temukan adalah bagian dari pengumuman Scott Guthrie tentang roadmap MVC 4, pada tahun 2012, (tampaknya offline tetapi tersedia melalui Wayback Machine ) yang berisi kutipan berikut:

Json.NET : Kami berencana untuk menggunakan komunitas yang dikembangkan tumpukan serialisasi Json.NET di formatter JSON default kami di ASP.NET Web API. Json.NET memberikan fleksibilitas dan kinerja yang diperlukan untuk kerangka kerja web modern.

Jadi alasan sederhananya adalah ini adalah perpustakaan JSON terbaik yang tersedia, sementara MVC adalah salah satu proyek besar pertama Microsoft untuk menghilangkan sikap NIH yang mengakar yang menandai MS dan juga raksasa perangkat lunak lainnya, dan menjangkau proyek sumber terbuka terbaik yang berkembang biak. sebagai dasar untuk persembahannya sendiri.


Semua adil, dan tentu saja kami tidak ingin kembali ke "NIH". Meski begitu, saya berharap perpustakaan ini masih akan dimasukkan dalam tumpukan MS. Alasannya, ada tekanan besar bagi perpustakaan eksternal untuk tidak memiliki dependensi kerangka kerja non-inti eksternal. Ini adalah satu-satunya perpustakaan yang sering ditemui di mana itu adalah hal yang sulit untuk dilakukan, dan tidak heran, ini adalah fungsi roti-dan-mentega, itu seperti memikirkan. NET tanpa tooling XML asli (XElement dll). Tidak heran ini adalah perpustakaan # 1 di semua nuget (!). 2 sen saya.
Nicholas Petersen

1
@NicholasPetersen Anda dapat membaca di sini tentang proposal untuk memasukkannya ke dalam .NET Standard. Terakhir saya memeriksa diskusi, mayoritas menentangnya, tapi mungkin untuk memasukkan subset, parser JSON yang lebih ringan di perpustakaan standar.
Avner Shahar-Kashtan

Mereka membuat poin yang baik, meskipun saya tidak berpikir itu harus ditambahkan sebagai bagian dari .NET Standard, seperti yang disebutkan, karena tampaknya terlalu berat untuk disemen menjadi netstandard untuk selamanya. Pikiran saya memasukkannya sebagai bagian dari netcore (saya kira di corefx), tapi saya akui, saya bisa saja naif dalam apa yang saya minta di sini. Beberapa orang di sana menyarankan itu menjadi bagian dari NET Foundation, kedengarannya bagus, tapi saya tidak tahu apakah itu akan meringankan masalah dunia nyata yang memungkinkan perpustakaan lain untuk tidak perlu merujuk perpustakaan eksternal ke kerangka kerja.
Nicholas Petersen
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.