ฉันไม่ได้ใช้โมโนเชิงพาณิชย์ แต่ฉันใช้แบบส่วนตัวเพราะฉันทำงานใน บริษัท Windows แต่เป็นผู้ใช้ Linux แบบส่วนตัว (ดังนั้นฉันจึงสามารถนำสิ่งที่ฉันทำกลับมาใช้ใหม่ได้)
โดยรวมแล้วฉันเห็นด้วยกับ Miguel de Icaza ผู้กล่าวว่า:
- แอปพลิเคชั่น. NET 25% ทำงานนอกกรอบด้วยโมโน
- อีก 25% สามารถทำงานภายในหนึ่งวันหรือน้อยกว่า
- อีก 25% สามารถทำงานภายในหนึ่งสัปดาห์
- 25% สุดท้ายต้องการการเขียนแอปพลิเคชันใหม่อย่างสมบูรณ์ (WinForms / COM)
Mono ใช้งานได้ดี แต่มีปัญหา:
- VB.NET รองรับเฉพาะ. NET <= 2.0
- ไม่มีการรับรองความถูกต้องของ Windows
- WPF ไม่ได้ใช้งาน
- การสนับสนุน WCF ไม่สมบูรณ์
- Entity Framework ไม่ถูกนำไปใช้และไม่มีแผนที่จะใช้
- "ASP.NET Web Parts" ไม่ได้นำมาใช้
- ไม่มีการรองรับ COM-interop
- การเชื่อมต่อ Sybase สำหรับรุ่น 15.5 (ล่าสุด) ไม่ทำงาน
- ข้อบกพร่องและความไม่สมบูรณ์ในไลบรารีคลาส C # (เช่น XML เป็น buggy เป็น mono <2.6)
- การควบคุมเว็บเบราว์เซอร์ Linux ต้องใช้ GTK #
จากนั้นปัญหาเล็กน้อย:
- Windows Forms ทำงานได้ แต่แสดงผลไม่ถูกต้องเสมอไป
- MonoDevelop ไม่สามารถออกแบบฟอร์ม windows
- MonoDevelop การดีบักแบบ 'ก้าวผ่าน' ไม่ได้ผลจริงๆ
- บริการโมโนล่มหลังจาก 5 ชั่วโมง ...
สร้างสิ่งที่ฉันสามารถพูดได้:
- WebServices ทำงานอย่างยอดเยี่ยม
- หากคุณเรียกใช้ WebApplication จะทำงานได้ค่อนข้างดี (หากไม่ใช้ WebParts)
- ถ้าคุณเรียกใช้ WindowsForms มันจะไม่ดูดีเสมอไป (พูดน้อยที่สุด)
- ไม่มีสิ่งใดเทียบเท่ากับ Microsoft Reporting Service (FYIreporting เป็นสิ่งที่ใกล้เคียงที่สุด แต่ช้า, buggy และไม่สมบูรณ์มากรวมทั้งไม่มีกิจกรรมใด ๆ มานานกว่าหนึ่งปี)
- คุณจะประสบปัญหาหากคุณต้องการสร้างเอกสาร Word หรือ Excel
ถ้าคุณต้องการพัฒนา. NET บน Linux
- คุณสามารถพัฒนา ASP.NET ได้ที่นั่น (การดีบั๊ก & ขั้นตอนผ่านการทำงานแย่มาก)
- คุณไม่สามารถพัฒนา WinForms บน Linux ได้
- คุณต้องใช้ GTK # แทน WinForms
ในคำอื่น ๆ :
- Mono มีตำแหน่งในการใช้งานเว็บแอปพลิเคชันและ WebServices และ MailServers
- แต่มันไม่สามารถใช้งานแอพพลิเคชั่น WindowsForms ได้คุณต้องเขียนแอพพลิเคชั่นด้วย GTK #
- มันไม่มีโซลูชันการรายงานและรองรับรูปแบบไฟล์ MS (หรือไลบรารีที่ทำงาน)
แก้ไข (อัปเดตปี 2015):
ฉันต้องการเพิ่มในตอนนี้การดีบั๊ก 'ทีละขั้นตอน' ทำงานได้อย่างยอดเยี่ยมและคุณสามารถใช้ MonoDevelop เพื่อพัฒนาเว็บแอปพลิเคชั่นบน Linux แม้จะมีการพึ่งพา nuGet ปัญหาเกี่ยวกับไลบรารีของ Excel และ Word ก็หายไปด้วยและตอนนี้เอนทิตีของเฟรมเวิร์กก็เป็นโอเพ่นซอร์ส ส่วนที่เหลือค่อนข้างสวย "ตามสภาพ" (ไม่รู้ว่าบริการ mono คงที่หรือไม่ แต่ฉันหวังว่าจะเป็นเช่นนั้น)
สิ่งที่ได้รับการปรับปรุงเช่นกันคือตอนนี้คุณสามารถมีแพ็คเกจปัจจุบันสำหรับ distro ของคุณได้ซึ่งหมายความว่าคุณไม่จำเป็นต้องรอจนกระทั่งเดบิวต์รุ่นถัดไปพูดว่า Debian / Ubuntu จนกว่าคุณจะได้รับรุ่นโมโนเดี่ยวล่าสุด (โดยไม่ต้องรวบรวมเอง) ) นี่คือเวลาที่สำคัญที่ปลอดภัยกว่า
นอกจากนี้ด้วยการเปิดตัว Roslyn การสนับสนุน VB.NET ควรจะดีขึ้นมากในอนาคตอันใกล้