Чому бібліотеки Microsoft залежать від Newtonsoft.Json?


18

Це, мабуть, почалося ще з того часу, коли Microsoft створила бібліотеку веб-API ASP.NET, принаймні, тоді це я пам’ятаю, якщо не помиляюся. Так чи інакше, його HTTP-пакети почали залежно від бібліотеки Newtonsoft.Json для серіалізації даних (де) в JSON і від нього.

Чому така велика компанія, як Microsoft, додасть залежність від бібліотеки з відкритим кодом? Я вважаю це дивним, навіть якщо вони збираються піти повністю з відкритим кодом з .NET тоді, тому що це була єдина бібліотека, що не використовується Microsoft, як залежність, наскільки я знаю.

Чи отримує Джеймс Ньютон-Кінг фінансову підтримку від Microsoft?


14
Вам здається, що Microsoft має мішки з грошима, щоб кинути їх. Хоча вони досить багаті, їхні ресурси не є необмеженими, що робить їх обчислення таким же, як і ваше: "навіщо мені витрачати час і гроші, щоб написати щось, на що вже існує ідеально хороша альтернатива з відкритим кодом?"
Роберт Харві

Майкрософт почав ставати більш відкритим з відкритим кодом років тому вони рано вбудовували jQuery в ASP.NET MVC. Перехід з відкритим кодом з .NET є частиною цієї зміни.
Роберт Харві

4
Ви можете дізнатися більше про історію JSON.NET тут: newtonsoft.com/json/help/html/Introduction.htm
Роберт Харві

Чому ні? Це бібліотека серіалізації JSON світового класу, я думаю, що MS розумно вирішила зосередити свою енергію на інших проблемах, а не винаходити колесо.
Fergal Moran

6
Цікаво, що Джеймс Ньютон-Кінг у березні 2018 року оголосив, що приєднається до Microsoft.
Jeroen

Відповіді:


19

Найбільш пряма цитата, яку я знайшов, - це частина анонсу Скотта Гетрі про дорожню карту MVC 4 ще в 2012 році (очевидно, офлайн, але доступна через машину Wayback ), яка містить таку цитату:

Json.NET : Ми плануємо використовувати розроблений спільнотою стек серіалізації Json.NET у нашому стандартному форматі JSON у веб-API ASP.NET. Json.NET забезпечує гнучкість та продуктивність, необхідні для сучасної веб-бази.

Тож проста причина - це найкраща доступна бібліотека JSON, в той час як MVC був одним з перших великих проектів Microsoft, щоб вирватися з закріпленого ставлення NIH, яке характеризувало МС та інших програмних гігантів, і звернутися до найкращих проектів з відкритим кодом з відкритим кодом. як фундамент для власних пропозицій.


Все чесно, і, звичайно, ми не хочемо повертатися до "NIH". Навіть так, я б хотів, щоб ця бібліотека все ще була включена в стек MS. Причина полягає в тому, що для будь-яких зовнішніх бібліотек існує великий тиск, щоб не було ніяких зовнішніх, непрофільних рамкових залежностей. Це єдина бібліотека, з якою часто стикаються, де це важко зробити, і недарма, це така функція хлібо-вершкового масла, це як думка про .NET без вбудованого інструмента XML (XElement тощо). Недарма це бібліотека №1 у всіх нугетах (!). Мої 2 копійки.
Ніколас Петерсен

1
@NicholasPetersen Ви можете прочитати тут про пропозицію включити її до .NET Standard. Востаннє я перевіряв дискусію, більшість була проти, але, можливо, для включення підмножини - легшого аналізатора JSON у стандартні бібліотеки.
Авнер Шахар-Каштан

Вони заробляють хороші моменти, хоча я не думав, що це слід додавати як частину .NET Standard, як дехто згадував, оскільки це здається занадто важким, щоб цементувати в нестандартні стандарти на всі часи. Моя думка включала це як частину netcore (я думаю, в corefx), але, зізнаюся, я могла бути наївною у тому, що я тут прошу. Деякі люди там пропонують стати частиною NET Foundation, це добре звучить, але я не знаю, чи це полегшить реальну проблему дозволу іншим бібліотекам не мати необхідності посилатися на бібліотеку поза рамками.
Ніколас Петерсен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.