มีเหตุผลที่จะสมมติ / ต้องการ. NET Framework ในทุกวันนี้หรือไม่?


24

พื้นหลัง:

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

เรากำลังคิดที่จะให้ตัวเลือกการดาวน์โหลดแก่ผู้ใช้ซึ่งจะให้ไฟล์ zip ที่มีสองไฟล์:

  • ไฟล์ข้อมูล (เราอาจใช้ไฟล์ zip ที่เข้ารหัสหลังฉาก) กับข้อมูลที่พวกเขาขอ
  • แอปพลิเคชันเพื่อดูข้อมูลที่จะแสดงข้อความรหัสผ่านและจัดการถอดรหัสข้อมูลอย่างเหมาะสมและแสดงผ่านเว็บเบราว์เซอร์ในตัว

รายละเอียดเพิ่มเติม:

  • ผู้ใช้ไม่อยู่ภายใต้การควบคุมของเรา พวกเขาคือผู้บริโภค
  • เราไม่กังวลเกี่ยวกับแพลตฟอร์มข้ามในคำถามนี้ นี่เป็นเพียงเกี่ยวกับ Windows เราจะมีการดาวน์โหลดแยกต่างหากสำหรับผู้ใช้ Mac

ไปที่คำถามแล้ว:

สำหรับแอปพลิเคชั่นที่เราต้องการสร้างเรากำลังถกเถียงกันภายในว่าเหมาะสมที่แอพนั้นจะเป็นแอพพลิเคชั่น. winforms หรือไม่ เราต้องการ. exe เพียงไฟล์เดียวและเราต้องการให้การดาวน์โหลดมีขนาดเล็กพอสมควร (เช่น 100k)

  • กล้าเราใช้. NET Framework (เราไม่จำเป็นต้องใช้. NET - 2.0 รุ่นล่าสุดโดยเฉพาะจะดี)
  • มันสมเหตุสมผลหรือไม่ที่จะสมมติว่าผู้บริโภคส่วนใหญ่มี. NET บนเครื่องของพวกเขาในตอนนี้เนื่องจาก Windows Update?
  • มันมีเหตุผลที่จะถามคนที่ไม่ได้ติดตั้งหรือไม่

เรารู้ว่าผู้ใช้ไม่ได้ 100% เท่านั้นที่จะติดตั้ง. NET คำถามที่แท้จริงคือถ้ามีเหตุผลที่จะขอให้พวกเขามีมันในวันนี้และอายุ

PS ไม่มีใครรู้สถิติที่เชื่อถือได้ว่ามีการติดตั้ง. NET อยู่กี่เปอร์เซ็นต์


โปรดทราบว่า. NET จะต้องมีการติดตั้งและไม่ใช้ไฟล์ที่เสียหาย / หายไป
GrandmasterB

ไม่ลืมที่จะจัดการกับผู้ใช้ที่อยู่ในระบบปฏิบัติการอื่นนอกเหนือจาก Windows หากพวกเขามี. net
HLGEM

@HLGEM ดังกล่าวเราจะมีการดาวน์โหลดแยกต่างหากสำหรับผู้ใช้ Mac ที่มีไคลเอ็นต์ Mac-native ที่คล้ายกัน ผู้ใช้ Linux จะไม่สามารถใช้การสนับสนุนเพิ่มเติมสำหรับการเข้าถึงข้อมูลออฟไลน์และจะต้องดูข้อมูลออนไลน์ในเว็บเบราว์เซอร์
Erv Walter

แล้ว Macs ล่ะ?
JeffO

พลาดการเห็นส่วนนั้น
HLGEM

คำตอบ:


15

ตามค่าเริ่มต้น Windows XP จะไม่รวม. NET Framework รุ่นใด ๆ Vista และ Server 2008 รวมถึง. NET Framework 3.0, Windows 7 และ Server 2008R2 รวมถึง. NET 3.5 และ Windows 2000 ไม่สามารถสนับสนุนอะไรข้างต้น. NET 2.0

เมื่อคำนึงถึงสิ่งนี้มันจึงแพร่กระจายไปสู่ระบบปฏิบัติการในกลุ่มเป้าหมายของคุณ ฉันจะแสดงรายการข้อกำหนดอย่างชัดเจนในหน้าดาวน์โหลดและให้ลิงก์ไปยังส่วน Microsoft Update / Downloads สำหรับการดาวน์โหลดเฟรมเวิร์กนอกเหนือจากการดาวน์โหลดแอปพลิเคชันของคุณ


7

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


7

ผู้ใช้ของคุณใช้ Windows รุ่นใด

หากเป็น Windows Vista จะมีการติดตั้ง. NET 3 ตามค่าเริ่มต้นและหากเป็น Windows 7 จะมีเวอร์ชัน 3.5 แหล่ง

ไม่ช่วยถ้าพวกเขาอยู่ใน XP แต่เป็นเพราะ Microsoft เพิ่งหยุดการสนับสนุนสำหรับ SP2 พวกเขาควรจะอยู่ใน SP3

ถ้าคุณใช้บางอย่างเช่น "ClickOnce" (มีการติดตั้งอื่น ๆ ) คุณสามารถทำให้รุ่นที่เกี่ยวข้องของกรอบ NET จำเป็นและมันจะดาวน์โหลดและติดตั้งให้คุณ - มันไม่ได้รวมอยู่ในการติดตั้งของคุณ หากคุณกังวลเกี่ยวกับขนาดของการดาวน์โหลดคุณสามารถไปที่. NET 3.5 หรือ 4 และสร้างโปรไฟล์ลูกค้าซึ่งเป็นการดาวน์โหลดที่มีขนาดเล็กกว่ามากแม้ว่าเวอร์ชัน. NET 4 จะมีความยืดหยุ่นมากกว่า


ทุกคนในที่สาธารณะอาจเป็นผู้ใช้ ฉันคาดหวังว่าเราจะยังคงมีบางคนใน XP
Erv Walter

4

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

ประสบการณ์การติดตั้ง Paint.NET - ส่วนที่ 1, รุ่น 3.xx (วิธีที่ไม่ดีเก่า)
ประสบการณ์การติดตั้ง Paint.NET - ส่วนที่ 2, รุ่น 4.0 (วิธีการใหม่ที่ดี)

ดังนั้นแม้ว่าคุณจะต้องใช้. NET Framework และคุณไม่แน่ใจว่าผู้ใช้จะมีอยู่หรือไม่คุณสามารถรวมการติดตั้งกับแอพของคุณด้วยวิธีที่ไม่เจ็บปวดอย่างสมเหตุสมผล


3

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

ตัวเลือกอื่น ๆ ของคุณคืออะไร? รหัสผ่านป้องกันไฟล์ Acrobat เพียงพอหรือไม่ มันจะง่ายกว่ามากในการบล็อก: การบันทึกการพิมพ์และการคัดลอกและวาง

ดูเหมือนว่าคุณกำลังสร้างวงล้อใหม่ แต่ฉันไม่มีรายละเอียดทั้งหมด


PDF ที่เข้ารหัสอาจเป็นวิธีแก้ปัญหาที่ใช้การได้และฉันคิดว่ามันสมเหตุสมผลกว่าที่จะสมมติว่าผู้อ่าน acrobat (อย่างน้อยบน Windows) เราพยายามที่จะหลีกเลี่ยงการสร้างวงล้อใหม่ :) ทางออกที่ดีที่สุดก็แค่เป็นไฟล์ zip ที่เข้ารหัส แต่ Windows ไม่รองรับการถอดรหัสไฟล์ zip ที่ใช้การเข้ารหัส AES และสมมติว่าผู้คนมี WinZip นั้นไม่น่าจะเป็นไปได้
Erv Walter

ป.ล. เป็นผู้ใช้ตามบ้านส่วนใหญ่และจะได้รับการอัปเดตไฟล์เป็นระยะ ๆ (เช่นไม่ใช่ดาวน์โหลดเพียงครั้งเดียว)
Erv Walter

ฉันคิดว่าโซลูชัน. NET จะใช้งานได้ ผู้ใช้จะมี Acrobat แต่ฉันไม่รู้ว่ามีปัญหาด้านลิขสิทธิ์ในตอนท้ายของคุณเพื่อสร้างไฟล์ที่เข้ารหัสหรือไม่
JeffO

3

ฉันทำการวิจัยเกี่ยวกับเรื่องนี้โดยติดตามข้อมูลการติดตั้งกว่า 10,000 รายการทั่วโลกสำหรับแอปพลิเคชันเดสก์ท็อปที่กำหนดเป้าหมายเป็น. Net Framework 3.5 sp1 มีเพียงกลุ่ม (ประมาณ 10) เท่านั้นที่ไม่ได้ติดตั้งเฟรมเวิร์กที่เหมาะสม ฉันลบไฟล์การติดตั้งเฟรมเวิร์ก. net ขนาดใหญ่ออกจากตัวติดตั้งและยังไม่พบปัญหาใด ๆ

ฉันขอแนะนำให้คุณทำการศึกษาเดียวกันในตลาดของคุณและตัดสินใจโดยอิงจากผลลัพธ์มากกว่าคำตอบที่คุณจะได้รับจากชุมชนเช่นนี้


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

โกหกนั่นคือสาเหตุที่คุณต้องทำการศึกษาด้วยตัวเอง ฐานลูกค้าของฉันอาจแตกต่างจากของคุณมาก สถิติออนไลน์จะไม่ช่วยคุณเช่นกัน

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

10.000 เป็นเพียงผู้ใช้ใหม่ที่ไม่ทราบอะไรเลยเกี่ยวกับข้อกำหนด (พวกเขาไม่ได้เผยแพร่เพียงแค่ลิงค์ดาวน์โหลดไปยังไฟล์ปฏิบัติการ)

1

ขึ้นอยู่กับข้อมูลประชากรของคุณ ...

ถ้าฉันต้องการให้ใคร [1] ใช้งานได้ฉันจะทำให้แอพแบบ 32 บิตที่จะทำงานบน Win98 และ W7

นั่นอาจหมายถึงสิ่ง C ++ / MFC

[1] ทุกคนที่มีเครื่องอายุน้อยกว่า 12 ปีที่มีการเชื่อมต่ออินเทอร์เน็ตที่ใช้ Windows 98+


ดังนั้น "ใครก็ได้" ไม่รวมผู้ใช้ที่ไม่ใช่ Windows - รู้สึกเศร้าที่ไม่มีใคร
ทางเลือก

@ คณิตศาสตร์ - ผู้ถามได้ระบุไว้อย่างชัดเจนแล้วว่าคำถามนี้เกี่ยวข้องกับการกระจาย Windows และมีการกระจาย Mac และ Linux แยกต่างหากที่เขาไม่ได้ถามเกี่ยวกับคำถามนี้
Carson63000

1
หรือสิ่งที่ Delphi / VCL - แต่ใช้รุ่นเก่ากว่า C / C ++ ไม่ใช่ภาษาท้องถิ่นสำหรับ Windows เท่านั้น หรือแม้แต่ VB6 (ขออภัยที่ต้องสาบาน)
Gerry

@Gerry: จริง :) ฉันไม่เคยได้ยินเดลฟีเคยพูดกันมากในช่วง 8 ปีที่ผ่านมาดังนั้นฉันจึงไม่เคยคิดถึง
พอลนาธาน

จริง ฉันทำงานกับมันมา 12 ปีแล้วและฉันพบว่ามันยากที่จะหางานถาวรซึ่งน่าเสียดายที่ได้เห็นการปรับปรุงหลายอย่าง (Unicode, generics, วิธีการปกปิดตัวตน) ในช่วงสองสามปีที่ผ่านมา
Gerry


-4

ถ้าคุณรู้ว่าลูกค้าของคุณไม่มี 100% ทำไมคุณถึงเขียนโค้ดแอปพลิเคชันด้วย. net

คุณสามารถใช้ Java และสร้างแอปพลิเคชันบนเว็บได้

แต่ในความเป็นจริงคุณสามารถรวม. NET Framework กับตัวติดตั้ง หากลูกค้าไว้วางใจให้คุณติดตั้งแอปพลิเคชันของคุณเขาจะติดตั้ง. net เช่นกัน


7
แอปพลิเคชันเว็บเริ่มต้นด้วยจาวาจะต้องใช้จาวาซึ่งไม่ดีเท่าที่ต้องการ. และเราไม่สามารถรวม. NET ไว้ในตัวติดตั้งซึ่งจะทำให้การดาวน์โหลดใหญ่เกินไป ดังที่กล่าวไว้เรากำลังมองหาการดาวน์โหลดขนาดเล็ก (เช่น 100k หรือน้อยกว่า)
Erv Walter

แอปพลิเคชัน Java web start ช้าเกินไป!
DL

คุณไม่ได้เขียนเกี่ยวกับขนาดดาวน์โหลด 100K
ckuetbach

ขออภัยที่ไม่ชัดเจนมากขึ้น (ฉันจะแก้ไข) แต่มันก็ส่อให้เห็นโดย "และเราต้องการให้การดาวน์โหลดมีขนาดเล็กพอสมควร"
Erv Walter

-6

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

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


เท่าที่ฉันเห็นว่าคำตอบนี้ (ค่อนข้างเป็นความจริง) อาจถูกมองว่าเป็น FUD ฉันไม่เห็นใครอธิบาย downvotes ...
ทางเลือก

10
คำอธิบาย downvote ของฉัน: Pavel ไม่ได้ให้ประโยชน์อะไรเลยในการตอบคำถามเพียงเอาโอกาสทุบตี Windows
Carson63000

1
ยิ่งไปกว่านั้นการใช้ภาษาที่ไม่จำเป็นต้องมีสระว่ายน้ำขนาดใหญ่ของห้องสมุดเพื่อการผลิตสิ่งที่คุ้มค่าในขณะเช่น Delphi บน Windows;)
เจอร์รี่

1
@Gerry ประเด็นทั้งหมดคือผู้พัฒนาต้องการใช้ภาษาที่พวกเขารู้จักและพบว่ามีประสิทธิผลซึ่งจะช่วยเพิ่มความเร็วในการพัฒนาของพวกเขาและอนุญาตให้นำความพยายามมาใช้ใหม่ในห้องสมุดเหล่านี้
P Shved

1
ในห้องสมุดโลก Delphi (เชิงพาณิชย์และโอเพ่นซอร์ส) มักจะติดตั้งบนเครื่องพัฒนาเท่านั้น - ทุกอย่าง (นอกเหนือจากระบบปฏิบัติการและบุคคลที่สามเป็นครั้งคราวที่มี DLLs) จะถูกรวบรวมเป็น exe เดียว แต่บางครั้งไลบรารี OSS-C จะถูกห่อใน DLLs เพื่อโทรจาก Delphi
Gerry
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.