กรณีสำหรับหรือต่อต้าน. NET (สัตว์ร้าย) [ปิด]


92

บริษัท ที่ฉันทำงานใช้ 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 ต่อไป


23
+1 สำหรับเรื่องราวที่น่ารัก
jgauffin

25
ไม่มีตัวติดตั้งต้นขั้วสำหรับ. net ที่ดาวน์โหลดส่วนประกอบตามต้องการหรือไม่? การรวมตัวติดตั้งแบบเต็มนั้นเหมาะสำหรับดีวีดีรีลีส แต่ถ้าพวกเขาดาวน์โหลดการประเมินผลคุณสามารถสมมติว่าพวกเขาออนไลน์สำหรับการติดตั้ง. net
Rup

4
น่าแปลกใจที่หนังสือ. NET บางเล่มที่ฉันได้เรียนรู้ในช่วงสมัยเรียนมหาวิทยาลัยของฉันได้กล่าวถึงการใช้งาน XCOPY ว่าเป็นประโยชน์หลักอย่างหนึ่ง :)
Madhur Ahuja

25
คุณลืมรวมการพึ่งพาของคุณบน Windows นั่นคืออีกสองกิกะไบต์ ใช้ bootstrappers
Hans Passant

13
เรื่องราวที่น่าสนใจควรมีหัวข้อว่า "จะไม่เปลี่ยนวิธีการทำธุรกิจของทั้ง บริษัท ได้อย่างไรโดยอาศัยการอ่านสื่อการตลาดและก่อนที่จะเรียนรู้ว่าคุณจะต้องทำอะไรเพื่อใช้กรอบงานใหม่อย่างเหมาะสม"
Andrew Barber

คำตอบ:


50

นี่คือเหตุผลว่าทำไมหลาย ๆ บริษัท ถึงเปลี่ยนมาใช้โปรแกรมติดตั้งเว็บที่ดาวน์โหลดข้อกำหนดเบื้องต้นทั้งหมดได้ทันทีจากหน้าแรกของคุณ เนื่องจากในกรณีส่วนใหญ่ระบบปฏิบัติการมีสิ่งที่จำเป็นถึง 99% (หากได้รับการอัปเดตโดยใช้ Windows Update)

ฉันจะไม่ใส่ทุกอย่างสำหรับ x64 และ x32 ในตัวติดตั้งเดียวกัน สร้างตัวติดตั้งสองตัวสำหรับแต่ละสถาปัตยกรรม


2
ฉันไม่เชื่อว่าคุณจะได้รับแพ็คเกจการติดตั้ง x64 และ x86 ในฐานข้อมูล MSI เดียว
David Heffernan

จริง. ฉันเพิ่งตอบกลับไปSuddenly, our installer is massive. All the prerequisites for .NET, not even talking about 64 bit support which has a whole seperate range of EXEs to install
jgauffin

6
ซอฟต์แวร์ใด ๆ ต้องการตัวติดตั้ง x86 และ x64 แยกกัน! หอน ..
abatishchev

4
abatishchev: หากซอฟต์แวร์เป็นเพียงไบนารี. NET ที่คอมไพล์สำหรับสถาปัตยกรรม "ใด ๆ " ก็ไม่จำเป็นต้องติดตั้ง x86 และ x64 แยกกัน ก็ต่อเมื่อคุณต้องติดตั้ง. NET framework เองที่คุณต้องการตัวติดตั้งแยกต่างหาก
Gabe

หากคุณเขียนโปรแกรมติดตั้งเว็บโปรดอย่าลืมเกี่ยวกับผู้ที่อยู่เบื้องหลังพร็อกซี แม้แต่ Microsoft ก็มักจะจำไม่ได้เกี่ยวกับผู้ที่อาศัยอยู่เบื้องหลัง ISA ของตนเอง (ฉันกำลังมองหาตัวติดตั้ง Web Developer ของคุณ)
Egor Pavlikhin

39

Paint.NET รวมการติดตั้งสิ่งที่จำเป็นต้องมีไว้อย่างดีโดยไม่ต้องรวมเฟรมเวิร์ก. NET เข้าด้วยกันโดยค่าเริ่มต้น ผลลัพธ์ที่ได้คือไฟล์ปฏิบัติการ shim ที่ไม่มีการจัดการที่ตรวจสอบ. NET framework และสิ่งอื่น ๆ และจับมือคุณเมื่อได้รับการติดตั้ง ดาวน์โหลดทั้งหมดได้ทันทีที่จำเป็น จากนั้นเรียกใช้แอปพลิเคชัน WinForms ที่ pInvokes เข้าสู่ MSI เพื่อปิดการติดตั้งในสำลีเพิ่มเติม

คุ้มค่ากับ Google

นอกจากนี้ยังเป็นไปได้ว่าเครื่องไคลเอนต์จำนวนมากจะติดตั้ง. NET Framework บางเวอร์ชันแล้วเนื่องจากเป็นส่วนหนึ่งของ Microsoft Update ทำให้สามารถใช้งานได้ง่ายขึ้นในโลกธุรกิจ

บทความบล็อก Paint.NET เกี่ยวกับการติดตั้ง:

http://blog.getpaint.net/2008/08/24/the-paintnet-install-experience-part-1-version-3xx/

http://blog.getpaint.net/2008/08/25/the-paintnet-install-experience-part-2-version-40/ (ขอบคุณ Rup!)

เมื่ออ่านเรื่องราวเพิ่มเติมอีกเล็กน้อยสันนิษฐานว่าฝ่ายบริหารต้องผ่านความเจ็บปวดจากการปรับใช้กับแอปพลิเคชัน C ++ อย่างน้อยหนึ่งครั้ง แต่ตอนนี้ทำเสร็จแล้วและจัดอยู่ในประเภท "ง่าย" ให้เวลากับการปรับใช้และนำเสนอสิ่งนี้ต่อฝ่ายบริหารและซ่อนความเจ็บปวดแสดงให้พวกเขาเห็นว่าการติดตั้งนั้นง่ายเพียงใด :)


ขอบคุณสำหรับลิงค์ ส่วนที่สองคือblog.getpaint.net/2008/08/25/… (ฉันไม่เห็นลิงก์จากส่วนแรกในหน้าแม้ว่าจะมีอยู่ในส่วนหัวก็ตาม)
Rup

@Rup พบดี! ฉันมองสั้น ๆ และไม่เห็นมัน ฉันจะแก้ไขคำตอบเพื่อแสดง
Adam Houldsworth

ฉันสงสัยว่ามีตัวติดตั้งโอเพนซอร์สที่คล้ายกับ 4.0 สำหรับ Paint.net หรือไม่ มันจะมีประโยชน์อย่างมากสำหรับทุกคนที่เผยแพร่แอพ. net
dbkk

1
@dbkk มึงบอกกู! Paint.NET ใช้ในการปล่อยรหัสสำหรับโปรแกรมและโปรแกรมติดตั้ง แต่ได้รับการแก้ไขเนื่องจากโปรแกรม copy-cat ไม่ให้เครดิตผู้เขียน
Adam Houldsworth

1
หากคุณติดตั้ง / อัปเดต Paint.NET โดยเปิด Visual Studio อาจทำให้ Visual Studio เสียหายได้ ฉันจะบอกว่าโปรแกรมติดตั้งของพวกเขาต้องการการทำงานบางอย่าง
Greg

37

ลองย้อนกลับไปที่สาเหตุที่คุณต้องการเปลี่ยนจากโค้ดเนทีฟเป็นรหัส. NET ตั้งแต่แรก: มันมีประสิทธิภาพมากกว่าสำหรับคุณในฐานะโปรแกรมเมอร์ หลาย ๆ อย่างใน. NET นั้นง่ายกว่าใน C ++ (หรือภาษาแม่ที่คุณใช้) ดังนั้นคุณจึงสามารถพัฒนาแอปพลิเคชันของคุณได้เร็วขึ้นมาก

จากนั้นเวลาที่คุณใช้ในการพัฒนาแอปพลิเคชันเป็นอย่างไรเมื่อเทียบกับเวลาที่คุณใช้ในการพัฒนาโปรแกรมติดตั้ง แม้ว่าคุณจะต้องใช้เวลาสองสามสัปดาห์ในการติดตั้งโปรแกรมติดตั้ง (โดยเฉพาะส่วนการตั้งค่าเฟรมเวิร์ก) นั่นควรจะมากหรือน้อยในช่วงเวลาเดียวที่คุณต้องทำ

สำหรับแอปพลิเคชันในอนาคตทั้งหมดคุณจะใช้โปรแกรมติดตั้งที่เหมือนกันเกือบทั้งหมด คุณยังคงทำการตรวจสอบข้อกำหนดเบื้องต้นทั้งหมด แต่แทนที่จะคัดลอกไฟล์ไปที่ C: \ Foo คุณกำลังคัดลอกไฟล์บางไฟล์ไปยัง C: \ bar

ในความคิดของฉันนี่เป็นคำถามง่ายๆของเศรษฐศาสตร์ ใช่มีราคาแพงกว่าในการพัฒนาโปรแกรมติดตั้ง (ที่ดี / สมบูรณ์) สำหรับแอปพลิเคชัน. NET แต่ถ้านั่นเป็นขั้นตอนที่คุณต้องทำเพียงครั้งเดียวเพื่อปรับปรุงเวลาในการพัฒนาของคุณอย่างมากก็ไม่ง่ายเลย ผลตอบแทนจากการลงทุนของคุณอาจอยู่ในลำดับสัปดาห์


1
+1 ประสบการณ์การติดตั้งที่ดีใน. NET นั้นยากที่จะปักหมุดลง แต่อย่างที่คุณบอกควรเป็นเพียงภาพเดียว ประโยชน์ของการมีอุปกรณ์สำเร็จรูปส่วนใหญ่ที่คุณจะต้องเป็นระบบบางสิ่งบางอย่าง Class away นั้นแทบจะไม่มีค่าและคุ้มค่ากับอาการปวดหัวที่เกิดจากผู้ติดตั้งหรือสองคน
Adam Houldsworth

2
ฉันตั้งตารอการเปิดตัวWix Burnซึ่งเป็น bootstrapper ตัวแรกที่ใช้งานได้จริง (ฉันหวังว่า) DotNetInstaller ร่วมกับ NSIS คือสิ่งที่ฉันกำลังใช้อยู่ แต่การจัดการ UAC นั้นยังห่างไกลจากความสมบูรณ์แบบ
Uwe Keim

1
@Uwe ดูเหมือนว่าWix เผาจะได้รับการปล่อยตัวในเวลาเดียวกันเป็นDuke Nukem Forever
dbkk

มันจะดีมาก. ฉันเห็นภาพหน้าจอตัวอย่างของDuke Nukem Foreverแล้ว เร็ว ๆ นี้น่าจะถึงที่นั่น ;-)
Uwe Keim

17

ฉันรู้สึกว่าต้องตอบสนองต่อคำสั่งนี้:

ใช่ผู้สนับสนุน. NET บางคนจะอ้างว่าควรติดตั้งทุกอย่างบนระบบปฏิบัติการที่ได้รับการแก้ไขและอัปเดตแล้ว นี่เป็นเรื่องจริง แต่ไม่ใช่ลูกค้าทุกคนที่มีสิ่งนี้และพูดเพียงว่า "ฉันขอโทษอัปเดตก่อน" ก็จะไม่ตัดออก อย่าลืมว่าเราภูมิใจในประสบการณ์ของผู้ใช้โดยรวม

หากผู้ใช้ของคุณยืนกรานที่จะยิงตัวเองด้วยการใช้ระบบที่ผู้ขายแจ้งว่าไม่เหมาะสมตามวัตถุประสงค์อีกต่อไปคุณก็ไม่สามารถทำอะไรได้มากเพื่อ 'ช่วยเหลือ' ฉันตระหนักดีว่าสิ่งนี้ทำให้ฉันดูเหมือนเป็นนักเคลื่อนไหวที่น่ารังเกียจ แต่ฉันมองมันในแบบเดียวกับที่นักการค้าด้วยตนเองอาจจะขึ้นอยู่กับลูกค้าที่จะต้องแน่ใจว่าสภาพแวดล้อมที่พวกเขาต้องการให้ฉันทำงานนั้น เสียงและเหมาะสมกับผลิตภัณฑ์ หากไม่เป็นเช่นนั้นฉันจะยอมรับการลาออกเพื่อทำงานนั้นต่อไปเช่นกัน แต่อาจยังทำให้พวกเขาต้องทำงานพิเศษเพราะพวกเขาไม่ได้มองการณ์ไกลเพื่อให้แน่ใจว่าพวกเขาเข้าใจสิ่งที่พวกเขาซื้อ

ฉันเชื่อว่าลูกค้าซอฟต์แวร์ได้รับอนุญาตให้เพิกเฉยเป็นเวลานานพอและตอนนี้พวกเขาควรจะต้องเข้าใจว่าพวกเขากำลังซื้ออะไร การใช้งานสภาพแวดล้อมไอทีขององค์กรที่ไม่ได้รับการแก้ไขอย่างถูกต้องจะเหมือนกับการเรียกใช้ยานพาหนะที่อยู่ภายใต้การเรียกคืนของผู้ผลิตอย่างต่อเนื่อง - Service Pack ของ Windows เทียบเท่ากับการเรียกคืนในหลาย ๆ ด้าน คุณไม่มีหน้าที่ตามกฎหมายในการส่งการเรียกคืน แต่เพื่อประโยชน์สูงสุดของคุณในฐานะธุรกิจและคุณอาจต้องรับผิดชอบต่อความเสียหายที่เกิดจากการปัดความรับผิดชอบของคุณ


2
ฉันจะยืนยันว่าการเรียกคืนของผู้ผลิตนั้นเป็นเพียงเล็กน้อยในแง่ของการเปรียบเทียบ - ฉันจะบอกว่ามันเหมือนกับการขับรถที่มีถุงลมนิรภัยหรือ ABS ล่วงหน้า - คุณสมบัติใหม่ ๆ มาพร้อมกับการปรับปรุงคุณภาพและการเพิ่มขึ้น แถบคุณภาพ ของเก่าไม่แตกหักหรือเป็นอันตรายในทันทีตอนนี้ได้รับการยอมรับแล้วว่าต่ำกว่ามาตรฐานในปัจจุบันฉันแน่ใจว่าทีมงาน Windows 95 จะโต้แย้งว่าในเวลานั้นพวกเขาคิดว่าแถบนั้นค่อนข้างสูง! :-) ยังคงเห็นด้วยกับคุณการเพิกเฉยต่อความก้าวหน้าของคุณภาพไม่ใช่คุณธรรม
Adam Houldsworth

11
ฉันไม่เห็นด้วย 100% ลูกค้าจำเป็นต้องมีความรู้มานานเกินไป ทำไมฉันต้องรู้ว่าฉันเป็น x86 หรือ x64 เหตุใดฉันจึงต้องรู้ว่ากำลังใช้ Service Pack ใดอยู่ ให้ฉันซื้อซอฟต์แวร์ของคุณและคุณจะหาสิ่งที่ต้องเกิดขึ้นเพื่อให้มันทำงานได้ ซอฟต์แวร์สำหรับผู้บริโภคกำลังก้าวไปสู่รูปแบบ iOS / Android / AppStore อย่างไม่หยุดยั้งและนักพัฒนาที่ต้องการให้ผู้ใช้ทราบสิ่งอื่นนอกเหนือจากรายละเอียดพื้นฐานที่สุดเกี่ยวกับอุปกรณ์ของพวกเขาจะถูกทิ้งไว้เบื้องหลัง
kubi

1
@kubi แน่นอนว่าการเปรียบเทียบ iOS นั้นมาพร้อมกับข้อสันนิษฐานที่ว่าฮาร์ดแวร์ไม่เปลี่ยนแปลงเพราะถูกควบคุมโดยผู้ขาย พีซีสามารถกำหนดค่าได้อย่างสมบูรณ์ดังนั้นจึงจำเป็นต้องมีความรู้หรือการตระหนักถึงข้อกำหนดบางประการหรืออย่างน้อยที่สุดก็ต้องตระหนักถึงความจำเป็นที่จะต้องมีคนรู้ว่าพวกเขากำลังทำอะไรอยู่ ฉันรู้ขนาดยางของฉันหรือให้รถของฉันกับคนที่รู้ว่าฉันกำลังจะเปลี่ยนยาง
Adam Houldsworth

3
@kubi: ฉันเห็นด้วยกับคุณเกี่ยวกับรูปแบบผู้ใช้ทั่วไป - ความแตกต่างที่นี่คือไม่มีเหตุผลที่ผู้ใช้จะไม่มอบหมายปัญหาทางเทคนิคทั้งหมดเช่นเวอร์ชันของแพลตฟอร์มให้กับ i) ผู้ผลิตหรือ ii) ฉันในฐานะผู้พัฒนา พวกเขาจึงไม่เป็นปัญหา ผู้ใช้ที่เป็นปัญหาคือผู้ใช้ระดับองค์กรที่ไม่จำเป็นต้องพูดถึงการกำหนดค่าและใครควรให้ผู้ให้บริการไอทีที่มีความสามารถจ่ายเงินเพื่อจัดการปัญหา
Tom W

4
ผู้ใช้ไม่สนใจข้อโต้แย้งใด ๆ ของเรา แต่ฟังดูดี พวกเขาต้องการใช้ซอฟต์แวร์ของคุณ ... แต่อาจยอมแพ้หากการติดตั้งเจ็บปวดเกินไป พวกเขาสามารถดูแลน้อยกว่าว่าใครเป็นความผิด - ของ Microsoft ผู้ขายหรือของพวกเขาเอง
dbkk

7

แอป Visual C ++ ใด ๆ ที่มีข้อกำหนดเบื้องต้น / การอ้างอิงภายนอกเช่นกัน: รันไทม์ 6.0, 2003, 2005, 2008 หรือ 2010 ไม่มี SP, SP1 หรือ SP2? x86 หรือ x64? 2005 SP2 ต้องใช้ Windows Installer รุ่นใด และ 2008 SP1 คืออะไร? และอื่น ๆ ไปเรื่อย ๆ

นั่นเป็นข้อโต้แย้งที่ไกลตัว! เช่นเดียวกับ Joel's grumblingsเกี่ยวกับ. NET และมองสิ่งที่อยู่ในขณะนี้ !


3
+1 สำหรับการเชื่อมโยงไปยังเว็บไซต์ของ Joel
Security Hound

-1 สำหรับการเชื่อมโยงไปยังเว็บไซต์ Joels
ฟิล

คุณสามารถลิงก์ไปยังรันไทม์แบบคงที่ได้ดังนั้นคุณจึงไม่จำเป็นต้องมีการอ้างอิงเหล่านั้น
Tony Edgecombe

1
@Tony: การเชื่อมโยงแบบคงที่ใน 10s ของศตวรรษที่ 21? ตัน mauvaisแน่นอน;)
abatishchev

+1 สำหรับการเชื่อมโยงไปยังเว็บไซต์ของ Joel
Shahid M Zubair

3

ฉันไม่เห็นว่ามีข้อกำหนดเบื้องต้นสำหรับ. net มากกว่า C ++ Builder อย่างไร คุณบ่นเกี่ยวกับ SQL Server แต่คุณเพิกเฉยต่อความจริงที่ว่าคุณต้องติดตั้งฐานข้อมูลบางส่วนด้วยตัวสร้าง C ++ เช่นกัน คุณบ่นเกี่ยวกับ x64 vs x32 แต่. NET ไม่ต้องการการเปลี่ยนแปลงใด ๆ .. exe เดียวกันทำงานบนทั้งสองอย่าง (และคอมไพล์ตัวเองอย่างเหมาะสมที่สุดสำหรับสภาพแวดล้อมอย่างใดอย่างหนึ่ง) สิ่งเดียวกันนี้ไม่สามารถพูดได้เกี่ยวกับ C ++ Builder คุณอาจต้องใช้เซิร์ฟเวอร์ SQL เวอร์ชันแยกต่างหาก แต่จะใช้กับตัวสร้าง C ++ อีกครั้ง (เว้นแต่คุณจะติดตั้ง x32 ในทุกอย่าง)

ใช่มีปัญหาเวอร์ชันตัวติดตั้งใหม่ แต่ส่วนประกอบเหล่านั้นไม่ใหญ่มาก และคุณสามารถให้โปรแกรมติดตั้งดาวน์โหลดและติดตั้งเฉพาะ aprts ที่จำเป็นเท่านั้น

ตัวสร้าง C ++ อาจง่ายกว่าสำหรับคุณเพราะคุณได้ลงทุนเวลาในการสร้างโปรแกรมติดตั้งที่ดีไปแล้ว คุณต้องทำเช่นเดียวกันสำหรับ. NET จากนั้นคุณสามารถเลือกตามปัญหาจริง .. ไม่ใช่สิ่งนี้

อย่างไรก็ตามเหตุผลที่ Microsoft เลือกที่จะทำสิ่งต่างๆในแบบที่พวกเขาทำคือผู้ใช้จำนวนมากโดยเฉพาะผู้ใช้ในองค์กรไม่พอใจที่จะติดตั้งสิ่งต่างๆให้พวกเขาโดยอัตโนมัติ (อาจเป็นเพราะพวกเขามีแอปพลิเคชันที่ขึ้นอยู่กับไลบรารีเวอร์ชันเฉพาะ และคุณมาพร้อมกับเวอร์ชันใหม่ที่พวกเขาไม่สามารถถอนการติดตั้งได้อย่างง่ายดาย)

สิ่งที่คุณมองว่า "ทำให้ง่ายขึ้น" สำหรับคนที่มีความรู้น้อยกำลังทำให้สิ่งต่างๆยากขึ้นมากสำหรับคนที่รู้ว่ากำลังทำอะไรอยู่

นี่คือตัวอย่างที่ดี สิ่งหนึ่งที่ฉันดูถูกอย่างยิ่งคือเมื่อฉันติดตั้งแอพที่ต้องการ SQL Server และติดตั้งอินสแตนซ์ของ SQL Server ของตัวเองแม้ว่าฉันอาจมีอินสแตนซ์หลายตัวที่สามารถใช้ได้แล้วก็ตาม ง่ายสำหรับมือใหม่ปวดตูดสำหรับฉันที่จะพยายามทำให้แอพของคุณทำงานกับอินสแตนซ์เดียวของฉัน


1

หากแอปของคุณทำงานภายใต้ Mono การจัดส่งแอปของคุณด้วย Mono runtime อาจเจ็บปวดน้อยกว่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.