Mono framework linux là gì

Mono là tên của một dự án mã nguồn mở do Ximian khởi xướng và hiện được Novell [sau khi mua lại Ximian] thúc đẩy để tạo ra một nhóm các công cụ miễn phí, dựa trên GNU / Linux và tương thích với .NET theo chỉ định của ECMA. bị nhiều người dùng GNU / Linux ghét?

Index

  • 1 Mono là gì?
  • 2 Nguồn gốc của Mono
  • 3 Nền tảng hỗ trợ mono
  • 4 Mono có tương thích với .Net Framework không?
  • 5 Tôi hiện có thể tạo những loại ứng dụng nào với Mono?
  • 6 Có yêu cầu nào để ứng dụng của tôi tương thích với Mono và .Net Framework, tức là portable không?
  • 7 Có những công cụ phát triển nào trong Mono?
  • 8 Các ứng dụng dành cho Mono.
  • 9 Khỉ và giấy phép
  • 10 Lời đề nghị của tôi
  • 11 Gỡ cài đặt Mono
  • 12 Lựa chọn thay thế cho Mono
  • 13 Thêm thông tin

Mono là gì?

Không, không liên quan gì đến Đảo Khỉ. Mono là việc triển khai miễn phí CLI [Cơ sở hạ tầng ngôn ngữ chung] và C # [cả hai đều được tạo bởi Microsoft], theo các thông số kỹ thuật được gửi đến ECMA để tiêu chuẩn hóa của nó. Việc triển khai này là mã nguồn mở.

Mono bao gồm CLI, chứa máy ảo chịu trách nhiệm tải các lớp, trình biên dịch jit [Just-in-time] và trình thu gom rác; tất cả điều này được viết từ đầu theo đặc điểm kỹ thuật ecma-334.

Mono cũng bao gồm một trình biên dịch C #, được viết một cách nghịch lý bằng C # và giống như CLI, trình biên dịch này tuân theo các thông số kỹ thuật ecma-335.

Ngoài ra Mono có một danh mục các thư viện tương thích với các thư viện .Net Framework, nhưng nó cũng có một loạt các thư viện không tồn tại trong .Net Framework của Microsoft; chẳng hạn như GTK # cho phép tạo giao diện đồ họa gốc của bộ công cụ GTK +, Mono.LDAP, Mono.Posix, v.v.

Nguồn gốc của Mono

Mono được hình thành bởi Miguel De Icaza, dự án được tài trợ vào thời điểm đó bởi công ty Ximian của ông; hiện tại Novell là nhà tài trợ cho dự án Mono, kể từ khi Novell mua lại Ximian.

Động lực để tạo ra Mono là do việc tìm kiếm các công cụ sẽ giúp tạo ra các ứng dụng nhanh chóng trong môi trường Linux.

Nền tảng hỗ trợ mono

Mono hiện đang chạy trên các nền tảng x86, PPC, SPARC và S390 ở 32-bit; và x86-64 và SPARC ở 64 bit; có thể tạo và thực thi các ứng dụng trên hệ điều hành: Linux, Windows, OSX, BSD và Solaris.

Mono có tương thích với .Net Framework không?

Một trong những mục tiêu của Mono là đạt được mức độ tương thích cao với API 1.1, mặc dù đã có rất nhiều nghiên cứu về khả năng tương thích với API 2.0 của .Net Framework.

Điều này nhằm mục đích là một tệp nhị phân được biên dịch trong Windows với .Net Framework có thể được thực thi trong bất kỳ nền tảng Mono nào mà không cần phải biên dịch lại tệp nhị phân và do đó có thể sử dụng các thư viện Mono-Ej: System tương thích. Dữ liệu, System.Xml, v.v. -.

Các thư viện do Mono cung cấp tương thích 100% với bản sao của .Net Framework. Phiên bản mới nhất 2.6.1. bao gồm các tính năng quan trọng khác:

  • CLI
  • Trình biên dịch C #
  • ADO.NET
  • ASP.NET
  • Dịch vụ web
  • WELFARE
  • dạng cửa sổ

Cái thứ hai - WindowsForms - cái đòi hỏi nhiều công việc hơn để hoàn thành toàn bộ. Mặc dù cần lưu ý rằng dự án không dự tính đến việc tạo các thư viện tương thích cho Dịch vụ Doanh nghiệp.

Tôi hiện có thể tạo những loại ứng dụng nào với Mono?

Vâng, có thể tạo các ứng dụng kiểu Web và Dịch vụ web bằng cách sử dụng mô-đun mod_mono cho phép máy chủ Web Apache phục vụ các trang ASP.NET [aspx] và Web Services [asmx].

Cũng có thể tạo các ứng dụng truy cập cơ sở dữ liệu như Microsoft SQL, Oracle, Postgresql, v.v.

Về phía các ứng dụng giao diện đồ họa, gợi ý là sử dụng GTK #, vì bộ công cụ dựa trên nó [GTK +], cho phép chạy các ứng dụng đồ họa trong môi trường Linux, Windows và OSX mà không cần thay đổi; Đề xuất này trở nên quan trọng, vì việc triển khai tương thích với Windows Forms trong Mono vẫn chưa hoàn tất.

Có yêu cầu nào để ứng dụng của tôi tương thích với Mono và .Net Framework, tức là portable không?

Thực sự không có bất kỳ ứng dụng cụ thể nào, miễn là ứng dụng dựa trên CLI; mặc dù có một số điểm cần được xem xét:

  1. Linux phân biệt chữ hoa chữ thường trong tên tệp và thư mục; vì vậy nó là cần thiết để có một sự thống nhất với các tên mà chúng tôi sử dụng.
  2. Dấu phân tách đường dẫn trong Windows [] khác với trong Linux [/], do đó, bạn nên sử dụng API Path.DirectoryPathSeparator, để có được dấu phân tách chính xác khi thực thi ứng dụng.
  3. Nếu các thư viện không phải CLI được sử dụng [ví dụ: thư viện trong C, C ++, v.v.], sử dụng p / Invoke, hãy đảm bảo rằng thư viện tồn tại trong các môi trường khác nhau nơi ứng dụng sẽ được thực thi.
  4. Không sử dụng các công nghệ chỉ tồn tại trong một môi trường cụ thể [Ví dụ: Registry trên Windows hoặc GConf trên Linux -Gnome-]; hoặc cung cấp giải pháp cho phép ứng dụng hoạt động chính xác trong môi trường mà ứng dụng đang chạy.
  5. Các ứng dụng dựa trên Windows Forms và rất phức tạp có thể không hoạt động vào lúc này, vì Windows Forms trong Mono chưa hoàn chỉnh.

Có những công cụ phát triển nào trong Mono?

Cũng có thể từ Windows để phát triển một ứng dụng bằng Visual Studio. Về phía Linux, có MonoDevelop, một IDE dựa trên SharpDevelop.

MonoDevelop cho phép quản lý dự án, tô màu cú pháp, tự động hoàn thành mã, biên dịch và chạy ứng dụng từ cùng một IDE.
Thông qua các phần bổ sung [add-in], chức năng đã được mở rộng, ví dụ:

  • Kết nối với cơ sở dữ liệu từ IDE
  • Việc bao gồm một trình gỡ lỗi cho phép, như Visual Studio, thực thi từng dòng mã và xem xét các giá trị biến.

Hiện đang có công việc tích hợp trình thiết kế biểu mẫu, mặc dù trình thiết kế này tập trung vào việc tạo biểu mẫu cho GTK # chứ không phải Windows Forms.

Các ứng dụng dành cho Mono.

Có rất nhiều ứng dụng được phát triển cho Linux trong Mono, để có được ý tưởng, đây là 2 danh sách với các ứng dụng này:

  • osnews
  • gnomephiles

Trong số các ứng dụng nổi bật này là:

  • MonoDevelop: Nó là một IDE để lập trình các chương trình Mono trong Linux. IDE được tạo bằng C #.
  • Điểm: Chương trình phân loại ảnh, ngoài ra có thể thực hiện một số sửa đổi kỹ thuật số đối với ảnh.
  • Beagle: Công cụ lập chỉ mục và tìm kiếm thông tin giữa một số loại tài liệu khác nhau trong Linux.
  • tomboy: Chương trình lưu trữ các ghi chú được liên kết bằng từ khóa.
  • Mũi tên: Nó là một trình phát âm thanh dựa trên GStreamer.
  • PyMusique: Chương trình cung cấp giao diện đồ họa để truy cập mua nhạc bằng dịch vụ iTunes của Apple.
  • MonoUML: Nó là một trình soạn thảo để tạo sơ đồ với tiêu chuẩn UML.
  • Gnome làm: Trình khởi chạy ứng dụng nhanh và hiệu quả.
  • Docky: Giá đỡ cho màn hình của bạn.
  • Banshee: Trình phát đa phương tiện dựa trên Gstreamer.

Khỉ và giấy phép

Mono là phần triển khai mã nguồn mở của .Net Framework của Microsoft, dựa trên các tiêu chuẩn được phát hành cho ECMA; Bởi vì nó là một triển khai dựa trên một sản phẩm của Microsoft, việc sử dụng Mono trong Linux đã gây ra tranh cãi - giữa người dùng Linux và các nhà phát triển - lập luận rằng Mono có thể vi phạm bằng sáng chế của Microsoft, có thể trở thành một vụ kiện chống lại Monkey.

Theo trang của dự án Mono, miễn là CLI và trình biên dịch C # tuân thủ các tiêu chuẩn được ECMA chấp nhận, 2 phần này an toàn, liên quan đến các thư viện cụ thể Mono, chúng không có rủi ro; nhưng việc triển khai các thư viện liên quan đến ASP.NET, ADO.NET và Windows Forms rất nhạy cảm với việc vi phạm một số bằng sáng chế của Microsoft - mặc dù tại thời điểm này không có ai biết rằng đây là trường hợp -; Vì lý do này, dự án Mono đề xuất 3 phương án cho trường hợp sau:

  • Hoàn thiện lại chức năng - để tránh bằng sáng chế -, cố gắng giữ cho API tương thích.
  • Loại bỏ những thứ không thể thực hiện lại.
  • Tìm kiếm các yếu tố có thể vô hiệu bằng sáng chế.

Theo Wikipedia, việc triển khai Mono của các thành phần .NET đó không bị ECMA đối với tiêu chuẩn hóa của nó đã làm dấy lên một số lo ngại về khả năng vi phạm các bằng sáng chế phần mềm trong thời gian tồn tại của dự án. Đặc biệt, cuộc thảo luận đã phát triển về việc liệu Microsoft có thể phá hủy dự án đơn lẻ thông qua các vụ kiện về bằng sáng chế bị vi phạm hay không.

Hiện đang có một cuộc tranh luận sôi nổi về khả năng cố vấn [trong] của việc chấp nhận và sử dụng Mono trong cộng đồng nhà phát triển của GNU / Linux. Lập luận chính chống lại Mono là nó không miễn phí bằng sáng chế phần mềm và có nguy cơ Microsoft sẽ yêu cầu giấy phép để sử dụng C # / CLI.

Mặt khác, dự án Gnome đang phát triển một ngôn ngữ thay thế, Vala, được tạo ra đặc biệt để phát triển các ứng dụng cho Gnome, nhưng không bị đe dọa từ Microsoft.

Lời đề nghị của tôi

Hiện tại có một số chương trình thực sự tuyệt vời được viết bằng Mono. Bạn chỉ có thể nghĩ đến F-Spot, Gnome Do hoặc Docky. Nhưng, có các lựa chọn thay thế miễn phí không có tất cả những vấn đề này, tôi không muốn phụ thuộc vào Mono.
Về quyết định gây tranh cãi gần đây của Debian và Ubuntu bao gồm Mono trong cài đặt mặc định của nó, không giống như Fedora đã xóa nó, chỉ bằng cách bao gồm phổ biến ứng dụng tomboy, được viết bằng C #, Richard Stallman đã một vài từ của sự khôn ngoan điều đó sẽ truyền cảm hứng cho các bản phân phối khác.

Việc dựa vào C # là rất nguy hiểm, vì vậy chúng ta không nên khuyến khích việc sử dụng nó.
Vấn đề không phải là duy nhất đối với Mono, bất kỳ triển khai C # miễn phí nào cũng sẽ gặp vấn đề tương tự. Điều nguy hiểm là Microsoft có thể đang có kế hoạch buộc tất cả các triển khai C # miễn phí ra khỏi hộp một ngày nào đó bằng các bằng sáng chế phần mềm [của họ]. Đây là một mối nguy hiểm nghiêm trọng và chỉ những kẻ ngốc mới bỏ qua nó cho đến ngày nó thực sự xảy ra. Chúng ta cần đề phòng để bảo vệ mình.
Chúng ta nên sắp xếp mọi thứ để dựa vào việc triển khai C # miễn phí càng ít càng tốt. Nói cách khác, chúng ta phải khuyến khích mọi người viết chương trình C #. Do đó, chúng tôi không được đưa các triển khai C # vào cài đặt mặc định của các bản phân phối GNU / Linux, và chúng tôi phải phân phối và đề xuất các ứng dụng không phải C # thay vì các ứng dụng C # có thể so sánh bất cứ khi nào có thể.

Gỡ cài đặt Mono

Tôi muốn xóa mono khỏi bản phân phối Ubuntu của mình [và do đó tiết kiệm rất nhiều dung lượng mà các phần phụ thuộc của nó chiếm và điều đó, trong trường hợp của Ubuntu, không có gì khác hơn là "hỗ trợ" 2 ứng dụng được cài đặt theo mặc định: F-Spot và Tomboy]. Nếu bạn không sử dụng một trong hai cái này, hãy gỡ cài đặt chúng khỏi Synaptic cũng như tất cả các gói có nội dung Mono hoặc CLI.

Để gỡ cài đặt Mono trong Ubuntu, bạn cũng có thể mở terminal và nhập:

sudo apt-get remove --purge mono-common libmono0 libgdiplus sudo rm -rf / usr / lib / mono

Lựa chọn thay thế cho Mono

Như chúng ta đã thấy, trước hết, nếu bạn là một lập trình viên, đừng lập trình bằng C #. Có vô số ngôn ngữ khác, thậm chí còn tốt hơn. Ngoài ra, Gnome gần đây đã phát hành một ngôn ngữ mới với chức năng rất giống Mono được gọi là Vala.
Tôi vừa xóa Mono và cùng với nó, một số chương trình yêu thích của tôi đã bị xóa… những chương trình thay thế nào tồn tại để thay thế chúng:

  • Muine, Banshee >> có rất nhiều lựa chọn thay thế: Amarok, Rhythmbox, Chim sơn ca, Khôn ngoan, QuodLibet, Xuất ngoại, BMP, Sonata, xmms, Vv
  • F-Spot >> GThumb
  • Gnome-do >> đồng
  • Docky >> Avant Window Manager [A.W.N.], Cairo Dock
  • Tombtoy >> Chú thích

Thêm thông tin

Để biết thêm thông tin về dự án Mono, hãy truy cập trang web chính thức tại Anh, ngoài độc thoại là một công cụ tổng hợp cho các blog của nhà phát triển Mono; hoặc bằng tiếng Tây Ban Nha trên trang Mono Hispano, ngoài blog của những người duy trì trang web này.
Đừng quên để lại bình luận của bạn về Mono… =]


Nội dung bài viết tuân thủ các nguyên tắc của chúng tôi về đạo đức biên tập. Để báo lỗi, hãy nhấp vào đây.

Bài Viết Liên Quan

Chủ Đề