บริษัท ที่ฉันทำงานใช้ C ++ Builder 6 เราได้พัฒนาโค้ดเนทีฟตั้งแต่เริ่มคิด ผลิตภัณฑ์เรือธงของเราเขียนด้วยรหัสเนทีฟอย่างสมบูรณ์
เข้าสู่. NET Framework ด้วยเสียงระฆังและเสียงนกหวีด ฉันตกเบ็ดสายและจม ฉันโน้มน้าวให้ผู้บริหารเชื่อว่า. NET ควรเป็นเฟรมเวิร์กใหม่ของเราสำหรับการพัฒนาซอฟต์แวร์ใหม่ทั้งหมดและเราควรเริ่มย้ายสายรหัสที่มีอยู่ ASAP ด้วยประโยชน์ทั้งหมดที่ไม่น่าเชื่อมากนัก พวกเขายอมรับข้อเสนอของฉันตามปกติ
ณ จุดนี้ฉันเริ่มพัฒนาแอปพลิเคชัน. NET ตัวแรกของฉัน ทุกอย่างเป็นไปตามแผนที่วางไว้ โครงการเป็นเพียงส่วนประกอบหนึ่งของผลิตภัณฑ์ของเรา ดังนั้นฉันจึงมาถึงจุดที่ต้องสร้างตัวติดตั้งสำหรับส่วนประกอบใหม่นี้ ในฐานะ บริษัท เรามีความภาคภูมิใจในการทำสิ่งต่างๆให้กับผู้ใช้โดยง่ายที่สุด แม้แต่ Microsoft ที่มีนักพัฒนาหลายพันคนก็ไม่ได้สร้างโปรแกรมติดตั้งเหมือนที่เราทำ เมื่อคุณติดตั้ง Microsoft CRM คุณจะได้รับเฉพาะรายการความล้มเหลวและข้อกำหนดเบื้องต้นที่ต้องติดตั้งก่อนจึงจะดำเนินการต่อได้ ไม่ใช่เรา. ไม่เลย หากคุณต้องการบางสิ่งบางอย่างเราจะติดตั้งให้คุณ
สิ่งนี้ทำให้การติดตั้งของเรารู้สึกง่ายมาก .NET Framework ไม่ได้ติดตั้ง? ไม่มีปัญหา! เราจะทำเพื่อคุณ ต้องการ SQL Native Client หรือไม่? ละเอียด!
ปัญหาคือตอนนี้ส่วนประกอบเดียวของโซลูชันของเราถูกเขียนใน. NET ทำให้กระบวนการติดตั้งซับซ้อนขึ้นอย่างไม่น่าเชื่อ ก่อนที่ฉันจะสามารถติดตั้งผลิตภัณฑ์ของเราได้ฉันต้องทำสิ่งต่อไปนี้:
ตรวจสอบว่ามีการติดตั้งข้อกำหนดเบื้องต้นหรือไม่
ติดตั้งถ้าไม่ใช่
ตรวจสอบว่าติดตั้งสำเร็จ
ข้อกำหนดเบื้องต้นถัดไป
ในการติดตั้ง. NET Framework ฉันต้องใช้ Windows Installer 4.5 ก่อน แต่มีเวอร์ชันที่แตกต่างกันสำหรับระบบปฏิบัติการที่แตกต่างกันดังนั้นฉันจึงเพิ่มการตรวจจับระบบปฏิบัติการและเปิดใช้งาน EXE ที่ถูกต้อง โอ้. NET framework นั้นมาพร้อมกับ 2k8 แล้วและตัวติดตั้ง exe ไม่สามารถรันได้คุณต้องรัน OCSetup.exe พร้อมพารามิเตอร์เพื่อติดตั้ง
และมันก็ดำเนินต่อไป จากนั้นต้องติดตั้ง SQL Express 2005 การอ้างอิงเพิ่มขึ้นอีกครั้ง
ฉันเถียงกับฝ่ายบริหารว่าแม้แต่ Microsoft ก็ไม่ทำให้ผู้ใช้ง่ายขนาดนี้ การตอบสนองของพวกเขาคือไม่มีเหตุผลที่เราจะไม่ดีไปกว่าพวกเขาด้วยวิธีนี้ ฉันไม่สามารถโต้แย้งเรื่องนี้ได้นอกจากฉันรู้สึกว่ามีเหตุผลที่ดีมากที่พวกเขาใช้แนวทางของพวกเขา
ทันใดนั้นโปรแกรมติดตั้งของเราก็มีขนาดใหญ่มาก ข้อกำหนดเบื้องต้นทั้งหมดสำหรับ. NET ไม่ได้พูดถึงการรองรับ 64 บิตซึ่งมีช่วง EXE แยกต่างหากทั้งหมดในการติดตั้ง ตอนนี้มาถึงจุดที่เราต้องการให้ผู้ใช้ดาวน์โหลดการประเมินแบบ "ด่วน" ได้แล้ว ช่างเป็นเรื่องตลก คุณต้องดาวน์โหลด 500MB เพื่อให้แอปพลิเคชัน 30MB ทำงานได้ แพคเกจการติดตั้งส่วนใหญ่เป็นสิ่งที่จำเป็นต้องมี
ฝ่ายบริหารรู้สึกว่าเรามีการพึ่งพา / ข้อกำหนดเบื้องต้นมากเกินไป ฉันเข้าใจอย่างถ่องแท้ พวกเขาแนะนำให้เราย้ายออกจากกรอบงาน. NET กลับไปยังดินแดนดั้งเดิมที่สิ่งต่างๆยัง "ง่าย" ในแง่ของการติดตั้ง นี่คือจุดที่ส่วนหนึ่งของฉันต้องการยืนหยัดเพื่อ. NET เพื่ออธิบายถึงประโยชน์ในภาพรวมประสบการณ์การพัฒนาที่ดีขึ้นการบำรุงรักษาที่ง่ายขึ้นและคุณภาพโค้ดโดยรวม ส่วนอื่น ๆ ของฉันเห็นด้วยกับพวกเขาด้วยใจจริง! การพัฒนาใน. NET ทำให้คุณต้องติดตั้งข้อกำหนดเบื้องต้นอื่น ๆ มากเกินไปซึ่งทำให้การติดตั้งยุ่งยาก
ใช่ผู้สนับสนุน. NET บางคนจะอ้างว่าควรติดตั้งทุกอย่างบนระบบปฏิบัติการที่ได้รับการแก้ไขและอัปเดตแล้ว นี่เป็นเรื่องจริง แต่ไม่ใช่ลูกค้าทุกคนที่มีสิ่งนี้และพูดเพียงว่า "ฉันขอโทษอัปเดตก่อน" ก็จะไม่ตัดออก อย่าลืมว่าเราภูมิใจในประสบการณ์ของผู้ใช้โดยรวม
ตอนนี้เรากำลังพิจารณาที่จะเขียนโค้ดเนทีฟอีกครั้งและฉันรู้ว่าเรากำลังสูญเสียในแง่ของความเร็วในการพัฒนาและสารพัดของ. NET แต่เรากำลังได้รับความสนใจในด้านนี้ไม่ว่าจะเป็นเรื่องเล็กหากคุณมองภาพรวมหรือไม่ เนื่องจากเรามีทักษะในการพัฒนาโค้ดเนทีฟและ. NET ถือเป็นพื้นฐานใหม่สำหรับเราดังนั้นจึงควรย้ายกลับ
คำถามของฉันคือ: บริษัท ของคุณมีมุมมองอย่างไรเกี่ยวกับปัญหานี้หากเป็นปัญหาเลยและกรณีธุรกิจจะเป็นอย่างไรที่ฉันเสนอต่อฝ่ายบริหารโดยสมมติว่าฉันต้องการย้ายผลิตภัณฑ์ทั้งหมดของเราไปยัง. NET ต่อไป