แปดเหตุผลที่ทำไม Microsoft Stack ยังคงเป็นทางเลือกที่ดี
เผยแพร่แล้ว: 2022-03-11ชีวิตนั้นยอดเยี่ยมสำหรับนักพัฒนา Microsoft เมื่อ 10 ปีที่แล้ว บริษัทต่างๆ ต่างพอใจกับการใช้ Microsoft 100 เปอร์เซ็นต์สำหรับโครงการพัฒนาของตน ด้วย ASP.NET ที่ฟรอนท์เอนด์ .NET ระดับกลาง และ SQL Server ที่แบ็กเอนด์ สิ่งต่าง ๆ ทำงานได้ดีในส่วนใหญ่ เมื่อพวกเขาไม่ทำเช่นนั้น นักพัฒนาก็แค่ยอมรับว่าเป็นสิ่งที่มาพร้อมกับอาณาเขต Microsoft ทำทุกอย่างยกเว้นการแสดง จากนั้น ในช่วงปลายทศวรรษที่ผ่านมา สถานะกอริลลา 800 ปอนด์ของ Microsoft เริ่มคลี่คลาย อาจเป็นเพราะการเปิดตัวของ iPhone และ Microsoft ที่ขาดการเปลี่ยนไปใช้อุปกรณ์พกพา หรืออาจเป็นเพราะโครงการโอเพ่นซอร์สที่แพร่หลายมากขึ้น แต่สิ่งต่างๆ เปลี่ยนไป และวันนี้บริษัทเดียวกันเหล่านี้จำเป็นต้องได้รับการเกลี้ยกล่อมว่าการใช้ Microsoft Stack คือ ความคิดที่ดี. บทความนี้นำเสนอเหตุผลแปดประการเพื่อสนับสนุนการใช้ซอฟต์แวร์สแต็คของ Microsoft
เหตุผล #1: .NET ยังคงเป็นหนึ่งในสิ่งที่ดีที่สุด
.NET Framework เปิดตัวเมื่อกว่า 10 ปีที่แล้ว เต็มไปด้วยฟีเจอร์และผ่านการทดสอบการต่อสู้อย่างละเอียดถี่ถ้วน แม้ว่าจะเป็นเรื่องปกติที่จะต้องรวมการพัฒนาแบบเนทีฟเข้ากับโค้ดที่ได้รับการจัดการในช่วงแรกๆ ของ .NET แต่งานการพัฒนาส่วนใหญ่ได้รับการสนับสนุนตั้งแต่เริ่มต้นในปัจจุบัน แม้แต่บริษัทต่างๆ เช่น Oracle ได้ปล่อยส่วนประกอบที่เป็นโค้ดที่ได้รับการจัดการ .NET 100 เปอร์เซ็นต์ (เช่น ไดรเวอร์ที่มีการจัดการ ODP.NET) เพื่อเชื่อมต่อกับผลิตภัณฑ์ของตน .NET API มีความสอดคล้อง มีการจัดทำเอกสารไว้อย่างดี และใช้โดยคนนับล้าน
ฐานความรู้ที่มีให้บริการผ่าน MSDN, StackOverflow และฟอรัมและบล็อกนับพันรายการนั้นมีขนาดใหญ่มาก ในช่วงเวลาหลายปีของการพัฒนาใน .NET นั้น ฉันไม่สามารถจำกรณีที่ฉันต้องติดอยู่กับจุดบกพร่องของเฟรมเวิร์กเป็นเวลานาน ทุกครั้งที่มีคนมีประสบการณ์ ค้นคว้า และโพสต์คำตอบ ไม่ใช่คำตอบที่ฉันหวังเสมอไป แต่ก็ยังมีบางสิ่งที่ทำให้ฉันก้าวไปข้างหน้า ด้วยการเปิดตัวที่จะเกิดขึ้นในปี 2015 .NET Core จะเป็นโอเพ่นซอร์สและพร้อมใช้งานบนระบบที่ไม่ใช่ Windows
เหตุผล #2: ASP.NET มีวิวัฒนาการ
เมื่อมองย้อนกลับไปที่สแต็ค Microsoft Web-to-database แบบเดิมเมื่อ 10 ปีที่แล้ว เป็นเรื่องที่น่าสนใจที่จะเห็นว่าส่วนใดรอดจากการทดสอบของกาลเวลาและส่วนใดที่หายไป ในขณะที่แบ็คเอนด์ของสแต็ก Microsoft ยังคงไม่เปลี่ยนแปลงมากนัก (เรายังคงใช้รูปแบบและส่วนประกอบชุดเดิม เช่น Dependency Injection, Tasks, Linq, EF หรือ ADO) ส่วนหน้า, ชิ้นส่วน ASP.NET, เห็น การเปลี่ยนแปลงขั้นพื้นฐานจาก "ทำแบบ Microsoft" (เช่น เว็บฟอร์ม) เป็น "ทำในแบบของคุณและใช้ ASP.NET เป็นแพลตฟอร์ม" วันนี้ ASP.NET เป็นเฟรมเวิร์กที่ใช้ MVC ซึ่งมีโครงสร้างพื้นฐานที่แข็งแกร่งสำหรับการรับรองความถูกต้อง การรวมกลุ่ม และการกำหนดเส้นทางที่รวมเข้ากับเทคโนโลยีที่ไม่ใช่ของ Microsoft เช่น Bootstrap และ AngularJS ไซต์ ASP.NET ดูดีบนฟอร์มแฟคเตอร์ที่หลากหลาย ตั้งแต่โทรศัพท์ไปจนถึงเดสก์ท็อป และความสามารถของ Web API ทำให้การเปิดเผยบริการเว็บเป็นเรื่องง่าย กรอบงานนี้เป็นโอเพ่นซอร์สมาหลายปีแล้ว ดังนั้นหากคุณประสบปัญหา แหล่งที่มาจะพร้อมใช้งานบน GitHub ASP.NET ได้เปลี่ยนแปลงและเปลี่ยนแปลงไปในทางที่ดีขึ้น
เหตุผล #3: ความเรียบง่ายของ Web API และพลังของ WCF
คำพูดโปรดตลอดกาลของฉันมาจาก Alan Kay ผู้ซึ่งกล่าวว่า “สิ่งเรียบง่ายควรเรียบง่าย สิ่งที่ซับซ้อนควรเป็นไปได้” เมื่อ Windows Communication Foundation (WCF) เปิดตัวครั้งแรกในปี 2549 ไม่มีอะไรนอกจากความเรียบง่าย พฤติกรรม จุดปลาย และการผูกมัดนั้นล้นหลาม ดังนั้น Microsoft จึงเปิดตัว Web API ซึ่งเป็นเฟรมเวิร์กที่ใช้งานง่ายซึ่งทำให้การเปิดเผยบริการเว็บ HTTP เป็นเรื่องง่าย ด้วยการกำหนดค่าสองสามบรรทัด API ของคุณจะเปลี่ยนเป็นบริการเว็บที่ปลอดภัย "มาตรฐานอุตสาหกรรม"
หากกรณีการใช้งานของคุณไม่พอดีกับแม่พิมพ์ "มาตรฐาน" และคุณต้องการการควบคุมอย่างเต็มที่ว่า API ของคุณถูกเปิดเผยผ่านสายไฟอย่างไร คุณสามารถถอยกลับไปใช้ WCF ได้เสมอ ด้วยตัวเลือกการกำหนดค่าและ hooks มากมาย WCF ช่วยให้คุณสามารถปรับแต่งข้อมูล บันทึก การสกัดกั้น เส้นทางข้อความ ใช้เพียร์ทูเพียร์และการจัดคิว และอื่นๆ อีกมากมาย Web API ร่วมกับ WCF นำเสนอหลักการทั้งสองข้อของคำกล่าวอ้างของ Kay: หากคุณต้องการบริการเว็บอย่างง่าย คุณก็เสร็จในไม่กี่นาทีด้วย Web API หากความต้องการบริการของคุณซับซ้อน WCF จะ "ทั้งหมด" ได้ เทคโนโลยีทั้งสองนี้มอบความครอบคลุมของสถานการณ์การบริการและมาพร้อมกับ .NET framework
เหตุผล #4: SQL Server นั้นแข็งแกร่งเหมือนเคย
หลายปีที่ผ่านมา ดูเหมือนว่าคลื่นยักษ์ของภาษาการพัฒนา เฟรมเวิร์ก และรูปแบบใหม่ๆ ได้มาจากระดับแนวหน้าและระดับกลาง และทำให้ฐานข้อมูลแบ็คเอนด์ไม่เสียหาย ท้ายที่สุดแล้ว “SELECT” แบบเก่าที่ดียังคงใช้กันมากในปัจจุบันเช่นเดียวกับเมื่อ 20 ปีที่แล้ว ฉันคิดว่านี่เป็นเพราะข้อเท็จจริงที่ว่าหลายบริษัทมองว่าข้อมูลของตนเป็นแกนหลักของธุรกิจ และการรักษาความสมบูรณ์ของแกนกลางนั้นมีมากกว่าความตื่นเต้นในการลอง "สิ่งใหม่" ที่ชั้นฐานข้อมูล
SQL Server เป็นเลิศในบทบาทหลักของผู้รักษาข้อมูลด้วยคุณสมบัติมากมายสำหรับการทำธุรกรรม ความสมบูรณ์ของการอ้างอิง การสำรองข้อมูล การมิเรอร์ และการจำลองแบบ แต่สิ่งที่ทำให้ SQL Server แตกต่างจากคู่แข่งคือการผสานรวมกับสแต็ก Microsoft ที่เหลือได้ดีเพียงใด สำหรับการพัฒนาอย่างรวดเร็ว มี Entity Framework ซึ่งปัจจุบันอยู่ในเวอร์ชัน 6 ซึ่งผ่านช่วงวัยรุ่นและให้คำมั่นสัญญาว่าจะปรับปรุงการเข้าถึงข้อมูลได้ดี หากคุณต้องการพลังในการคำนวณ .NET Framework จะถูกโหลดระหว่างดำเนินการกับ SQL Server ซึ่งหมายความว่าคุณสามารถฝังโค้ด .NET เป็นโพรซีเดอร์ ฟังก์ชัน หรือการรวมที่เก็บไว้ได้โดยไม่ลดทอนประสิทธิภาพลง จับคู่กับข้อเท็จจริงที่ว่า SQL Server 2014 มาพร้อมกับตารางในหน่วยความจำ และคุณสามารถสร้างโซลูชันแบบเรียลไทม์ที่ลื่นไหล ซึ่งไม่สามารถสร้างได้เร็วพอด้วย SQL และตารางปกติเพียงอย่างเดียว หลังจากหลายปีในอุตสาหกรรมนี้ SQL Server ก็ยังอยู่ในอันดับต้น ๆ ของรายการ RDBMS ของฉัน

เหตุผล #5: ทดสอบได้ง่าย
หลายครั้งที่ทำงานด้านไอทีขององค์กร ฉันเห็นซอฟต์แวร์กลายเป็นกล่องดำที่ไม่มีใครแตะต้องเหล่านี้ เพราะไม่มีการทดสอบ และไม่มีใครอยากจะยุ่งกับโค้ดเพราะกลัวว่าจะ "ทำลายอย่างอื่น" จากนั้น ฉันก็ทำงานกับระบบที่มีการทดสอบเป็นพันๆ ครั้ง และรู้สึกดีมากที่ได้บอกธุรกิจว่า “ใช่ เราสามารถเปลี่ยนแปลงสิ่งเหล่านี้ได้” หลายปีหลังจากการเปิดตัวซอฟต์แวร์ Microsoft stack ได้รับการออกแบบโดยคำนึงถึงความสามารถในการทดสอบ ASP.NET MVC มี hooks สำหรับการฉีดการพึ่งพา และในเวอร์ชัน 5 การพึ่งพาการฉีดจะรวมอยู่ในเฟรมเวิร์กด้วย ในระดับกลาง มันเป็นเรื่องที่คล้ายกัน: เราใช้การแทรกการพึ่งพาเพื่อแยกการใช้งานจากอินเทอร์เฟซ ซึ่งช่วยให้เราสลับประเภทการผลิตด้วยการจำลองในเวลาทดสอบ แม้แต่ในด้านฐานข้อมูลก็มี SQL Server Data Tools ที่มาพร้อมกับเทมเพลตสำหรับทดสอบกับชั้นโพรซีเดอร์ที่เก็บไว้ การทดสอบเป็นส่วนที่แยกออกไม่ได้ของกระบวนการพัฒนาซอฟต์แวร์ในปัจจุบัน และสแต็คของ Microsoft ก็พร้อมสำหรับความเป็นจริงใหม่นี้
เหตุผล #6: ระบบนิเวศสนับสนุนที่ซับซ้อน
เมื่อพูดถึงการสนับสนุน เป็นเรื่องดีที่มีตัวเลือกมากมาย เริ่มต้นด้วยฟอรัมชุมชนและลงท้ายด้วยคนจริงที่ทำงานอยู่ในไซต์บนเซิร์ฟเวอร์ของคุณ ระบบนิเวศออนไลน์สำหรับผลิตภัณฑ์ของ Microsoft เป็นหนึ่งในระบบที่ใหญ่ที่สุดในอุตสาหกรรม ท้ายที่สุดแล้ว Microsoft เริ่มต้นโดย Bill Gates ซึ่งเป็นผู้พัฒนาซอฟต์แวร์เอง ซึ่งมองว่าการนำไปใช้อย่างกว้างขวางของนักพัฒนาเป็นกุญแจสำคัญในการเผยแพร่ผลิตภัณฑ์ของ Microsoft นั่นหมายถึงการให้การสนับสนุนแก่นักพัฒนาเหล่านี้อย่างมากมาย
Microsoft เป็นหนึ่งในคนกลุ่มแรกๆ ที่ส่งเสริมให้พนักงานบล็อกเกี่ยวกับเทคโนโลยีที่พวกเขากำลังทำงานอยู่ และในขณะที่อุตสาหกรรมที่เหลือตามทันแน่นอน จำนวนและคุณภาพของวิดีโอแนะนำ คำแนะนำ และบทความที่ส่งตรงจาก Microsoft ในปัจจุบันยังคง ที่น่าประทับใจมาก. ชั้นของเนื้อหาออนไลน์ที่มีคุณภาพนั้นเสริมด้วยระบบนิเวศสนับสนุนตามชุมชนจำนวนมากเช่น StackOverflow ซึ่งไม่สอดคล้องกันเมื่อพูดถึงคุณภาพของเนื้อหา แต่ถึงกระนั้นก็มีประโยชน์มากกว่าไม่
สุดท้ายนี้ คุณสามารถเลือกรับโทรศัพท์และโทรติดต่อฝ่ายสนับสนุนของ Microsoft ได้เสมอ ฉันแทบไม่ต้องใช้มัน แต่มีเหตุฉุกเฉินในการผลิตจำนวนหนึ่งเมื่อให้นักพัฒนาของ Microsoft วิเคราะห์การถ่ายโอนข้อมูลหลักที่บันทึกไว้ในวันนั้น ตัวเลือกการสนับสนุนที่หลากหลายนั้นเป็นปัจจัยที่เอื้อต่อการใช้งาน Microsoft stack อย่างชัดเจน
เหตุผล #7: Microsoft ยึดมั่นในผลิตภัณฑ์ของตน
เมื่อสองสามปีก่อน การเลือก Microsoft Silverlight เป็น front-end สำหรับแอปพลิเคชันดูเหมือนจะเป็นทางเลือกที่ถูกต้อง แต่ก็ไม่เป็นเช่นนั้นอีกต่อไป ด้วยแนวโน้มของมือถือในกรอบฟูลสวิงและ JavaScript ที่ครอบงำพื้นที่ส่วนหน้า Silverlight จึงไม่ใช่ตัวเลือกที่เป็นไปได้อีกต่อไป อย่างไรก็ตาม Microsoft ยังคงสนับสนุนจนถึงปี 2564 Microsoft ยึดมั่นในปืนซึ่งเป็นสิ่งที่ดีสำหรับพวกเราที่ต้องเลือกเทคโนโลยีโดยไม่ต้องมีลูกบอลวิเศษเพื่อบอกเราว่าแนวโน้มเทคโนโลยีจะครอบงำแนวซอฟต์แวร์ในอนาคตอย่างไร การใช้ Microsoft stack ช่วยให้มั่นใจได้ว่าเวลาและเงินจะถูกลงทุนในเทคโนโลยีที่จะได้รับการสนับสนุนแม้ว่าจะไม่เหมาะกับอุตสาหกรรมก็ตาม
เหตุผล #8: Visual Studio Umbrella
ทศวรรษที่แล้ว ฉันใช้เวลาประมาณ 50 เปอร์เซ็นต์ในการทำงานใน Visual Studio และประมาณ 50 เปอร์เซ็นต์ในเครื่องมืออื่นๆ ปัจจุบัน การแยกส่วนสนับสนุน Visual Studio อย่างล้นหลาม วิสัยทัศน์ของ Microsoft สำหรับ Visual Studio ในการเป็นโซลูชันแบบครบวงจรสำหรับการโฮสต์ IDE กำลังจะเกิดขึ้นกับผลิตภัณฑ์ของ Microsoft และที่ไม่ใช่ของ Microsoft ที่นำเสนอการผสานรวมกับ Visual Studio ในระดับหนึ่ง ตั้งแต่การพัฒนาฐานข้อมูลด้วย SQL Server Data Tools ไปจนถึงการเขียนแอพ iPad และ Android ด้วย Xamarin Visual Studio มอบประสบการณ์นักพัฒนาที่คุ้นเคยด้วยอินเทอร์เฟซผู้ใช้ที่สอดคล้องกัน สามารถพูดได้เช่นเดียวกันเกี่ยวกับการทำงานกับ Microsoft Azure ซึ่งเป็นแพลตฟอร์มคลาวด์ที่ครอบคลุมบริการที่หลากหลายตั้งแต่การโฮสต์ฐานข้อมูลไปจนถึงบริการมือถือ
Visual Studio บดบังความซับซ้อนของโครงสร้างพื้นฐานระบบคลาวด์แบบกระจาย ทำให้ประสบการณ์ในการพัฒนาแอปพลิเคชันระบบคลาวด์สอดคล้องกับการพัฒนาแอปพลิเคชันที่ไม่ได้โฮสต์ในคลาวด์ ชิ้นส่วนทั้งหมดดูเหมือนจะเข้ากันได้อย่างดีภายใต้ Visual Studio ทำให้กระบวนการพัฒนาโดยรวมมีประสิทธิภาพมาก
Microsoft Stack - ที่สุดของทั้งสองโลก
ปัจจุบันนี้ มีทางเลือกมากมายในการเขียนซอฟต์แวร์ที่มีคุณภาพเมื่อเทียบกับเมื่อ 10 ปีที่แล้ว นั่นเป็นสิ่งที่ดีอย่างแน่นอนเพราะการแข่งขันบังคับให้ผู้เล่นรายใหญ่ เช่น Google, Apple, Amazon และ Microsoft ยังคงสร้างสรรค์สิ่งใหม่ ๆ และไม่พึงพอใจ ในขณะที่ไมโครซอฟต์ถูกผลักออกจากจุดสูงสุดโดยวิวัฒนาการทางเทคโนโลยีในทศวรรษที่ผ่านมา บริษัทได้แสดงให้เห็นว่ายินดีที่จะปรับตัวและปรับตัวให้เข้ากับความเป็นจริงของแนวโน้มทางเทคโนโลยีในปัจจุบัน ASP.NET นำเทคโนโลยีและวิธีการอื่นๆ มาใช้ ซึ่งส่วนใหญ่เป็นโอเพ่นซอร์ส โดยที่เว็บฟอร์มดั้งเดิมจะค่อยๆ เลือนหายไปในประวัติศาสตร์ .NET framework ยังคงพัฒนาอย่างต่อเนื่อง โดยทำลายพรมแดนใหม่ๆ ด้วยไลบรารี่สำหรับการประมวลผลแบบมัลติเธรดและการประมวลผลแบบมัลติคอร์ ด้วยการเปิดตัวในปี 2015 ที่ใกล้เข้ามา แกนหลักของเฟรมเวิร์กจะเป็นโอเพ่นซอร์สและพกพาไปยังแพลตฟอร์มที่ไม่ใช่ Windows ซึ่งเป็นขั้นตอนในทิศทางของการครอบคลุมและความโปร่งใส
การปรับปรุงที่น่ายินดีเหล่านี้มาจากบริษัทที่มีกระบวนการที่มีมายาวนานในการเผยแพร่ซอฟต์แวร์ที่ได้รับการทดสอบ จัดทำเป็นเอกสาร และรองรับ การใช้ Microsoft stack ทำให้เกิดความตื่นเต้นในการทำงานกับภาษาและเฟรมเวิร์กที่ทันสมัย บวกกับความเสถียรที่ได้รับการสนับสนุนจากซอฟต์แวร์ยักษ์ใหญ่ซึ่งมีประสบการณ์หลายสิบปีในอุตสาหกรรมการพัฒนา นี่คือเหตุผลที่ฉันแนะนำ Microsoft stack วันนี้