ทำไมห้องสมุดของ Microsoft ขึ้นอยู่กับ Newtonsoft.Json


18

สิ่งนี้อาจเริ่มย้อนกลับไปเมื่อ Microsoft สร้างไลบรารี ASP.NET Web API อย่างน้อยนั่นก็คือเมื่อฉันจำได้ถ้าฉันไม่ผิด อย่างไรก็ตามตั้งแต่นั้นเป็นต้นมาแพ็กเกจ HTTP ของมันเริ่มต้นขึ้นอยู่กับไลบรารี Newtonsoft.Json สำหรับการทำให้เป็นอนุกรมของข้อมูล (de) เป็นไปตามและมาจาก JSON

ทำไม บริษัท ขนาดใหญ่เท่ากับ Microsoft จะเพิ่มการพึ่งพาในไลบรารีโอเพ่นซอร์ส ฉันคิดว่ามันแปลกแม้ว่าพวกเขาจะไปเปิดแหล่งที่มาอย่างเต็มที่กับ. NET แล้วเพราะมันเป็นห้องสมุดที่ไม่ใช่ Microsoft เท่านั้นที่ใช้เป็นที่พึ่งพึ่งพาเท่าที่ฉันรู้

เป็นคำถามโบนัส James Newton-King ได้รับการสนับสนุนทางการเงินจาก Microsoft หรือไม่


14
คุณทำให้ดูเหมือนว่า Microsoft มีเงินมากมายพอที่จะโยนไป ในขณะที่พวกเขาค่อนข้างรวยทรัพยากรของพวกเขาไม่ จำกัด ซึ่งทำให้แคลคูลัสของพวกเขาเหมือนกับของคุณ: "ทำไมฉันต้องใช้เวลาและเงินในการเขียนสิ่งที่ทางเลือกโอเพนซอร์สที่ดีอย่างสมบูรณ์อยู่แล้ว"
Robert Harvey

Microsoft เริ่มเป็นมิตรกับโอเพ่นซอร์สมากขึ้นเมื่อหลายปีก่อน พวกเขารวม jQuery เข้ากับ ASP.NET MVC ก่อน การใช้โอเพ่นซอร์สกับ. NET เป็นส่วนหนึ่งของการเปลี่ยนแปลงนั้น
Robert Harvey

4
คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับประวัติของ JSON.NET ได้ที่นี่: newtonsoft.com/json/help/html/Introduction.htm
Robert Harvey

ทำไมจะไม่ล่ะ? มันเป็นห้องสมุดต่อเนื่องระดับโลกของ JSON ฉันเดา MS ตัดสินใจอย่างชาญฉลาดที่จะมุ่งเน้นพลังงานของพวกเขาในปัญหาอื่น ๆ และไม่บูรณาการล้อ
เฟอร์กัลโมแรน

6
ที่น่าสนใจJames Newton-King ประกาศในเดือนมีนาคม 2018ว่าเขาจะเข้าร่วมกับ Microsoft
Jeroen

คำตอบ:


19

คำพูดที่ตรงที่สุดที่ฉันได้พบเป็นส่วนหนึ่งของการประกาศแผนการของ MVC 4 ของ Scott Guthrie ในปี 2012 (เห็นได้ชัดว่าออฟไลน์ แต่พร้อมใช้งานผ่านทางเครื่อง Wayback ) ซึ่งมีคำพูดต่อไปนี้:

Json.NET : เราวางแผนที่จะใช้ชุมชนที่พัฒนาแล้ว Json.NET serialization stack ในฟอร์แมต JSON เริ่มต้นของเราใน ASP.NET Web API Json.NET มอบความยืดหยุ่นและประสิทธิภาพที่จำเป็นสำหรับกรอบงานเว็บที่ทันสมัย

เหตุผลง่ายๆก็คือมันเป็นห้องสมุด JSON ที่ดีที่สุดในขณะที่ MVC เป็นหนึ่งในโครงการขนาดใหญ่แห่งแรกของ Microsoft ที่จะแสดงท่าทีของNIHที่ยึดมั่นซึ่งเป็นตัวกำหนด MS และยักษ์ใหญ่ซอฟต์แวร์อื่น ๆ และเข้าถึงโครงการโอเพ่นซอร์สที่ดีที่สุด เป็นพื้นฐานสำหรับการถวายของตนเอง


ยุติธรรมและแน่นอนเราไม่ต้องการกลับไปที่ "NIH" ถึงกระนั้นฉันก็หวังว่าห้องสมุดนี้จะยังคงอยู่ในกองซ้อนของ MS เหตุผลก็คือมีแรงกดดันอย่างมากสำหรับห้องสมุดภายนอกใด ๆ ที่ไม่มีการพึ่งพาเฟรมเวิร์กภายนอกและไม่ใช่แกนหลัก นี่เป็นห้องสมุดเดียวที่พบบ่อยซึ่งเป็นสิ่งที่ยากที่จะทำและไม่น่าแปลกใจที่นี่เป็นฟังก์ชั่นการทำงานแบบ bread-and-butter มันเหมือนกับการคิดของ. NET โดยไม่ต้องใช้เครื่องมือ XML ดั้งเดิม (XElement เป็นต้น) ไม่น่าแปลกใจที่นี่เป็นห้องสมุด # 1 ในทุก nuget (!) 2 เซนต์ของฉัน
Nicholas Petersen

1
@NicholasPetersen คุณสามารถอ่านที่นี่เกี่ยวกับข้อเสนอเพื่อรวมไว้ใน. NET Standard ครั้งล่าสุดที่ฉันตรวจสอบการสนทนาส่วนใหญ่ไม่เห็นด้วย แต่อาจรวมถึงชุดย่อยตัวแยกวิเคราะห์ JSON ที่เบากว่าในไลบรารีมาตรฐาน
Avner Shahar-Kashtan

พวกเขาให้คะแนนที่ดีแม้ว่าฉันไม่ได้คิดว่ามันควรจะเป็นส่วนหนึ่งของ. NET มาตรฐานตามที่กล่าวไว้บางส่วนดูเหมือนว่าหนักเกินไปที่จะเชื่อมเข้าสู่มาตรฐานเน็ตตลอดเวลา ความคิดของฉันรวมอยู่ในนั้นเป็นส่วนหนึ่งของ netcore (ฉันคิดว่าใน corefx) แต่ฉันยอมรับว่าฉันอาจไร้เดียงสาในสิ่งที่ฉันขอได้ที่นี่ บางคนแนะนำว่าเป็นส่วนหนึ่งของ NET Foundation ฟังดูดี แต่ฉันไม่รู้ว่าจะช่วยบรรเทาปัญหาในโลกแห่งความเป็นจริงในการอนุญาตให้ห้องสมุดอื่นไม่ต้องอ้างอิงห้องสมุดภายนอกกับกรอบงานหรือไม่
Nicholas Petersen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.