Mono là gì và tại sao nó có thể nguy hiểm?

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?

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:

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:

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… =)


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Ariel dijo

    Tôi không nghĩ Microsoft sẽ sử dụng các bằng sáng chế của mình để chống lại Mono, Monodevelop, Xamarine trong tương lai. Hơn nữa, tôi tin rằng những công cụ này bằng cách nào đó sẽ giúp bạn dễ dàng mở rộng sang các nền tảng khác đang chiếm lại vị trí đặc quyền của họ trong thế giới phát triển phần mềm nói chung mỗi ngày. Tôi nghĩ Mono đang làm rất tốt trong việc chuyển các công nghệ C # và .NET sang các nền tảng khác, điều này làm cho chúng trở nên giàu có với các cơ hội công nghệ mới về mức độ mềm. Mono biết ý nghĩa của bằng sáng chế và chắc chắn đang thực hiện mọi biện pháp phòng ngừa để không bị vi phạm. Mặt khác, JAVA đang chiếm vị trí dẫn đầu với nền tảng JAVA EE6, đối với sở thích của tôi, nó vượt xa khả năng hiện tại của Visual Studio. Chính vì lý do này hơn bất cứ điều gì mà tôi nghĩ rằng Microsoft sẽ thấy thuận tiện khi chuyển C # của họ sang Linux, MacOSX, BSD, Solaris, Android, v.v. Mặt khác, tôi không đồng ý với những điều này. Những lập trường cuồng tín nói KHÔNG với Microsoft trong Linux hoặc nói Không với Linux trong Microsoft, tôi tin rằng sự phát triển thực sự là rất đa dạng và để phủ nhận sự thật là sự thụt lùi.

  2.   Hãy sử dụng Linux dijo

    Đến nay không có gì thay đổi. Nếu bạn quan tâm đến việc có thể chạy các chương trình của mình trên các hệ thống khác nhau, tôi khuyên bạn nên sử dụng Java hoặc python. Nếu bạn cảm thấy thoải mái với cú pháp c #, vala cũng là một lựa chọn thay thế tốt.
    Ôm! Paul.

  3.   pablo dijo

    Hey.

    Cách đây không lâu, tôi đã quyết định di chuyển ngôn ngữ và chọn C #, để có thể sử dụng mã và biên dịch nó để sử dụng trên cả nền tảng Linux và Windows.

    Bây giờ, nhìn vào bài đăng này, tôi tự hỏi liệu mình có đúng không (tôi nói điều này từ bài viết của Richard Stallman).

    Bạn có thể cho tôi biết nếu tình hình này đã thay đổi một cái gì đó cho đến nay?

    (Tôi biết bài này ít nhất là 2 năm)

  4.   Sergio dijo

    Như người cùng tên đã nhận xét, tôi không nghĩ rằng Microsoft nên hạn chế khả năng mở rộng của mình, thực sự thì họ không kiếm sống được từ nó. Tôi thấy họ thậm chí có khả năng tự do hóa ngôn ngữ, vì họ kiếm tiền từ triển khai, khuôn khổ và IDE.

    Tôi bắt đầu nghĩ rằng hôm nay ông Stallman hơi già cho những việc này. Tôi rất vui khi đọc câu trích dẫn và suy nghĩ của bạn, rằng trong khi cộng đồng chú ý đến C #, Oracle đã đệ đơn kiện đầu tiên chống lại Android, rằng mặc dù người anh em kém cỏi, không nên quên rằng đó là Linux, vì vi phạm bằng sáng chế đối với sử dụng… JAVA!

    Ý kiến ​​của tôi là không thể cho phép cộng đồng Linux, chỉ đơn giản là vì tự hào, nhắm mắt vào các lựa chọn thay thế và cánh cửa của nó cho một số lượng lớn các nhà phát triển chất lượng, sử dụng khẩu hiệu "thích ứng hoặc quay đầu". Trong sự cô lập có cái chết, ngay cả khi nó chậm.

    Đừng quên rằng một ngôn ngữ lập trình là một khái niệm rất khác với một ứng dụng, nó là một sản phẩm tốt. Ai sẽ có thể kiểm duyệt tiếng Anh lập luận rằng nó là ngôn ngữ của chủ nghĩa tư bản?

    1.    Javier L. dijo

      Họ nói về MS như thể họ không biết các chuyển động của nó ở cấp độ tiếp thị, hoặc họ đã quên sự cố năm 99 khi MS sửa đổi một phần của nền tảng JAVA để phần mềm được viết trong bộ ứng dụng của chính nó sẽ không hoạt động trong một trình duyệt khác. không phải IE6, khi cả thế giới chú ý, các vụ kiện đã đổ xuống khắp nơi, nhưng quan trọng nhất là phần lớn phần mềm đã viết phải được thực hiện lại. MS là một công ty muốn thu lợi nhuận bằng mọi cách. Đối với những người đang sử dụng phần mềm miễn phí, sẽ không tiện sử dụng các công cụ độc quyền nếu có quá nhiều công cụ miễn phí.

    2.    jlboch dijo

      Sergio, bạn thật ngây thơ khi quên rằng họ không làm gì, hoàn toàn không làm gì, cũng như không làm từ thiện nếu họ không đảm bảo rằng họ sẽ sản xuất hàng triệu đô la ngay cả sau khi hành động của họ
      Thứ mà bọn trẻ yêu thích nhất trên thế giới này là ma túy và đô la (theo thứ tự đó)
      Đó là lý do tại sao họ đã thống trị thế giới và thị trường với chủ nghĩa tư bản của họ: sử dụng luật cây gậy và luật đô la, ĐỨC CHÚA TRỜI thực sự của những người gringos là đồng đô la, ngay cả khi những kẻ đạo đức giả bẻ ngực họ trong các đền thờ Tin lành hoặc trong nhà thờ. Công giáo

      1.    AC tối đa. dijo

        Những kẻ chống đối Microsoft sẽ luôn có rất nhiều hành vi được cho là độc quyền, và mặc dù đúng là trong suốt nhiều năm Microsoft đã thể hiện những hành vi không mấy dễ chịu đối với người dùng cuối, nhưng đừng quên rằng đó là một công ty kinh doanh và những gì họ sẽ luôn làm với sản phẩm của họ là kinh doanh. Nhưng thế giới đã thay đổi, nó đã trở nên toàn cầu hóa, và Microsoft đã từ chối chấp nhận nó vào thời điểm đó, nhưng không còn lựa chọn nào khác, việc tích hợp tiêu chuẩn Open-XML trong MSOffice đã chứng minh điều đó, thậm chí nó đã bị buộc phải "chia sẻ" mã. nền tảng của nó bị ép buộc bởi các quy tắc chống độc quyền và nó phải làm điều đó, Net Framework và các ngôn ngữ của nó được đăng ký trong cơ quan ECMA Châu Âu có mục tiêu là tiêu chuẩn hóa Công nghệ thông tin, đối với C #, nó tương ứng với ECMA-334, đối với CLI (triển khai Mono) ECMA-335 và C ++ / CLI là ECMA-372, điều này đảm bảo rằng các ngôn ngữ và nền tảng này có sẵn cho công chúng, vì vậy Microsoft sẽ không ép buộc bất cứ điều gì trong tương lai. sang các ngôn ngữ đó. Việc Anti-Microsoft cố gắng ngăn cản việc sử dụng ngôn ngữ C # là vô lý, nó là một trò chơi bẩn thỉu như những gì bị Microsoft tố cáo, đặc tả ngôn ngữ mở, có nhiều ngôn ngữ khác và trên thế giới này, điều tốt nhất là sự cạnh tranh điều đó gây ra sự cải tiến trong mọi lĩnh vực, lập trình viên phải tự mình khám phá ra các ngôn ngữ và công nghệ khác nhau và biết đặc điểm của chúng và anh ta sẽ là người tự quyết định xem anh ta sẽ ở cùng với ngôn ngữ nào để thực hiện các phát triển của mình.

  5.   Hãy sử dụng Linux dijo

    Đóng góp tốt. Cảm ơn bạn!

  6.   Adrian dijo

    Stalmann này !! Xem những kẻ chủ mưu của Microsoft dưới gầm giường của bạn XD.

  7.   sergio dijo

    Nếu chúng ta tính đến rằng những gì Microsoft muốn với .net là giành được nền tảng cho java, tôi nghĩ rằng quá tốt nếu có các triển khai trong linux để cắt bớt các khả năng của nó.

    ý kiến ​​của tôi là nếu microsoft không quan tâm đến điều này thì nó sẽ không giúp tạo ra các tiêu chuẩn đó và nó sẽ bảo vệ các thư viện .net của mình để tránh (hoặc ít nhất là cản trở) việc dịch ngược của chúng. Và không phải là chúng tôi đã ở trên phiên bản 4.0 nếu tôi không nhầm và tất cả các thư viện của nó được dịch ngược mà không gặp sự cố và vẫn không bị xáo trộn, điều này sẽ cải thiện hiệu suất kiến ​​trúc.

    Cũng đúng là Microsoft đã luôn tính phí ngay cả đối với ứng dụng ngu ngốc nhất và hiện đã có trong kho của mình, chẳng hạn như các phiên bản visual studio miễn phí hoàn toàn về chức năng cho .net và không bị giới hạn bởi giấy phép và đó không phải là điều duy nhất (Truespace cho ví dụ cũng đã đi về phía của miễn phí).

    Đây là cuộc chiến giữa Java và .Net, cũng như trong tất cả các cuộc chiến, bất kỳ đồng minh nào cũng được chào đón.

    Và sự thật là, dù muốn hay không, chúng ta đang sống trong một thế giới đầy rẫy giấy phép ... trên thực tế, một số cổng thông tin làm nổi bật các bằng sáng chế "vi phạm" trên một trang Web đơn giản và chúng phổ biến đến mức chúng ta thậm chí không xem xét rằng nó có thể được cấp bằng sáng chế một cái gì đó rất đơn giản. Bằng sáng chế ở đó và, nếu ai đó muốn phá bỏ dự án của bạn, rất có thể họ sẽ tìm thấy bằng sáng chế đang bị vi phạm.

    Chỉ trong trường hợp nó chưa được rõ ràng, tôi không có ý định khơi mào một cuộc xung đột ở đây để tìm cách biết Windows hay Linux tốt hơn, chúng chỉ đơn giản là khác nhau và mỗi cái đều có ưu và nhược điểm, giống như mọi thứ khác. Nhưng nó là một câu chuyện khác.

    Một lời chào.

  8.   e2fletcher dijo

    Với Microsoft, bạn không bao giờ biết.

  9.   ken torrealba dijo

    Kính trọng,

    Cách đây một thời gian, tôi đã làm theo một hướng dẫn, chương 1, về Mono, và nó có vẻ siêu dễ và tự nhiên hơn Java, tôi thích phần sau. Thật không may, tôi không thể nhận được số tiếp theo của tạp chí.

    Theo tôi hiểu thì C # là sự phát triển của J ++
    Việc triển khai Java có vấn đề đó khiến Microsoft phải trả giá bằng một vụ kiện của Sun, mà Sun đã thắng, vì Microsoft có các thư viện (gói) chỉ có thể được thực thi trên Windows, điều này trái ngược với phương châm Java «bạn viết, bạn thấy, bạn thực thi mọi lúc mọi nơi ».

    Bố cục J ++ và C # phế liệu của Microsoft

    Bây giờ, sự thật là như sau: Microsoft đã "tặng" một phần nhất định của C # để làm cho Mono trở nên hợp pháp, vì vậy những phần đó sẽ không bị các vụ kiện trong tương lai, nhưng những gì Microsoft đã không tặng nếu có cơ hội Microsoft yêu cầu bất cứ ai sử dụng nó , điều này Nó là như thế này, bởi vì nó đã xảy ra trước đây, với các phần mềm khác, nhưng điều này sẽ xảy ra nếu Mono bắt đầu đánh cắp khách hàng hoặc nếu một số công ty bắt đầu kiếm tiền (rất nhiều) với sự hỗ trợ và triển khai của ngôn ngữ hoặc muốn quy nó như là của riêng họ, trong khi họ sẽ chỉ thấy nó phát triển.

    Cuối cùng, cần lưu ý rằng Miguel de Izcasa rất thất vọng vì không thể làm việc cho Microsoft, do hộ chiếu của anh ấy..., điều này đã khiến anh ấy tạo ra phần mềm tương thích với Windows desde Linux, để họ nhận ra "những gì họ đã bỏ lỡ"

  10.   kuk dijo

    Tôi không thích điều này 🙁

  11.   Nhà phát triển dijo

    Tôi nghĩ rằng một trong những lý do để sử dụng GNU / Linux là vì nó là mã nguồn mở và nếu chúng ta bắt đầu sử dụng phần mềm do Microsoft tạo ra, chúng ta sẽ có một mâu thuẫn, đó là lý do tại sao bạn cần phần mềm của Microsoft khi có một cộng đồng lớn thế giới mã nguồn mở hỗ trợ lẫn nhau (nguồn gốc của mã nguồn mở) và do đó cải thiện bất kỳ ứng dụng không phải mã nguồn mở nào, bạn có nghĩ vậy không?

    Hãy nhớ rằng ban đầu .NET không miễn phí và nếu nó phát hành nó (phần đã phát hành) thì đó là do các nhà phát triển đã không sử dụng nó do ứng dụng hạn chế của nó và cùng với đó là Microsoft đã mất đi sự hiện diện trong số tất cả các nhà phát triển.

    Nếu những gì chúng ta muốn là để các ứng dụng của chúng ta hoạt động trên các nền tảng khác nhau, tại sao không sử dụng Java hoặc Python. Các ứng dụng mới do Xamarin tạo ra để phát triển cho iOS hoặc android, chỉ là một cách để #monopolize phát triển dưới một ngôn ngữ, bởi vì như chúng ta đều biết, sử dụng ngôn ngữ mẹ đẻ luôn tốt hơn.

    Về Richard Stallman, tôi nghĩ anh ấy là người có nhiều kinh nghiệm nhất về mã nguồn mở và vì vậy, ít nhất chúng ta phải dừng lại để phân tích một chút những vấn đề anh ấy gặp phải, vì biết rõ lịch sử sẽ tránh mắc phải những sai lầm tương tự.

    Giống như những người khác, các nhà phát triển phải thanh toán hóa đơn (thực phẩm, sức khỏe, v.v.) và do đó chúng tôi cần thu được lợi ích kinh tế cho công việc của mình, nhưng chúng tôi có những cách khác nhau để đạt được điều đó (may mắn), chẳng hạn như quyên góp, tư vấn, phát triển dựa trên trên mã nguồn mở, v.v. Chúng ta phải tận dụng các kỹ năng và sự khéo léo của mình, bởi vì thế giới mới này "xoay chuyển" theo cách của nó nhờ vào mỗi nhà phát triển tồn tại và họ làm cho mọi thứ hoạt động như bình thường. Theo quan điểm của tôi, chúng tôi là nền tảng của công nghệ mới và xã hội mới chứ không phải công ty.

    Không tin nó???

  12.   Adrian Fernandez dijo

    Tôi không nghĩ M $ sẽ làm bất cứ điều gì khi bắt bất kỳ ai vi phạm bằng sáng chế C #. Anh ấy đã không làm điều đó trước đây, anh ấy không làm điều đó ngày hôm nay, vì vậy anh ấy hầu như không làm điều đó sớm. Mặt khác, Stallman được biết đến với chứng hoang tưởng dai dẳng đối với những gì không phải là phần mềm miễn phí (thậm chí anh ta không hài lòng với nhân Linux), khi tưởng tượng trong 20 năm, một thế giới các nhà phát triển bị khủng bố chỉ vì M $.
    Dù sao. Monodevelop là một công cụ tuyệt vời để làm việc. Và nếu ai đó sợ sử dụng C # từ những gì bạn đã thấy, thì vẫn có Basic, hiện có khả năng tương đương với C # trong hầu hết các sự phát triển.

  13.   Daniel noriega dijo

    Vâng, tôi cũng đồng ý với một số ý kiến, tôi là một Kỹ sư điện tử nhưng tôi luôn ý thức về tin tức lập trình và luôn cố gắng học ngoại ngữ đầy đủ. Điều thực sự khó khăn đối với tôi là cố gắng chọn ngôn ngữ nào để học, tôi sử dụng c ++ nhưng tôi không biết các API nên hầu như không có gì, đó là lý do tại sao tôi cố gắng xem API nào nên tập trung vào. Nhưng những gì tôi muốn là khả năng phát triển mã đa nền tảng, và rõ ràng điều đầu tiên nổi bật là JDK hoặc .Net.

    Sau đó mình xem bài này và nói thật là mình thấy hoang tưởng quá. Tôi không nghĩ rằng Microsoft sẽ kiện mono, tôi nghĩ rằng ngược lại, Microsoft có được lợi thế để ngôn ngữ của họ được các lập trình viên quan tâm bằng cách trở thành một ngôn ngữ có thể mở rộng sang các nền tảng khác. Tôi là một người dùng Linux nhưng tôi cũng là một người dùng Windows và tôi yêu Linux, nhưng nếu có một điều mà tôi không ủng hộ về Linux thì đó là một phần tốt của cộng đồng luôn tự hào và thiếu hiểu biết và sống chiến đấu mỗi ngày vì những điều vô nghĩa. , xúc phạm và coi thường những người mà họ biết ít hơn.

  14.   Hình ảnh trình giữ chỗ Jose Manuel Alcaraz dijo

    Tất nhiên, đừng cống hiến mình cho bói toán ... bạn đã đóng đinh nó ... .net hiện là mã nguồn mở ... xD

  15.   Alexis dijo

    ehhh như tôi đã nói nhiều lần rồi ... Tôi chê bai Richard Stallman ... anh ấy bày tỏ quan điểm của mình và các fanboy nhảy dựng lên như thể lời anh ấy là một điều răn thiêng liêng ... mặc dù MS có thể sử dụng các bằng sáng chế của mình trong tương lai, nó không kém phần đúng rằng (ít nhất là ở nơi tôi sống) các nền tảng chủ yếu ở cấp độ doanh nghiệp là .NET và Java… vì vậy việc học cách xử lý Mono cuối cùng sẽ mang lại lợi ích cho sự nghiệp có thể là một nhà phát triển; Thật không lành mạnh cho thế giới Linux khi nghiền nát bất kỳ giải pháp thay thế nào khác với "lý tưởng" của ông Stallman, cá nhân tôi sử dụng Mono để thử nghiệm và học hỏi (vì tôi thậm chí không cài đặt cửa sổ trên máy tính của mình, nhưng tôi không thể áp đặt điều đó trên bài viết về công việc của tôi) và tôi không cảm thấy như một tội nhân hahahaha lời chào.

  16.   THAM GIA dijo

    Tôi không thực sự quan tâm đến việc C # có phải là mối nguy hiểm hay không hoặc nếu ngôn ngữ khác đang mở HOẶC, v.v., miễn là nó thích ứng với bất kỳ hệ điều hành nào và có lợi nhuận và tạo ra tiền, điều này là tốt, tôi hiện là lập trình viên Linux tôm ngôn ngữ Cơ bản tương tự như Windows Visual Basic và nếu tôi thấy rằng nó tạo điều kiện cho việc lập trình dễ dàng, chuyên nghiệp và mở rộng ra nhiều nền tảng, nó sẽ được hoan nghênh.

  17.   Khủng bố dijo

    Các bạn ơi, kể từ khi Microsoft mua Xamarin vào năm 2016, Mono còn một chặng đường dài phía trước. Hãy dừng sự cuồng tín rẻ tiền và bắt tay vào các lựa chọn lập trình khác. .NET đã chính thức được portable trên các nền tảng không phải Windows kể từ năm 2014 (với sự ra đời của DotNet Foundation) và việc triển khai .NET trong các môi trường không phải Windows đã phát triển từng chút một. Bạn không còn chỉ nghĩ về những thứ đó của Dịch vụ Thông tin Internet hoặc máy chủ Windows như trước nữa mà phải nghĩ đến Máy chủ Web Apache / Nginx với .NET. Trong trường hợp của tôi: Tôi đã thiết kế ứng dụng ASP.NET MVC 4/5 trên IIS và sau đó là Apache Web Server trên Linux Ubuntu trong khoảng một năm nay và cho đến nay, tôi không gặp vấn đề gì khi chạy ứng dụng ASP.NET MVC trên hai các nền tảng web khác nhau.

    Đây là đóng góp của tôi, trong trường hợp bạn quan tâm đến việc di chuyển các ứng dụng ASP.NET MVC sang Apache / Ubuntu:

    Phần 1:
    https://radioterrormexico.wordpress.com/2016/06/22/ejecutar-aplicaciones-asp-net-en-plataformas-no-windows-parte-13/

    Phần 2:
    https://radioterrormexico.wordpress.com/2016/06/23/ejecutar-aplicaciones-asp-net-linux-ubuntu-server-parte-23/

    Ví dụ về Github:
    https://github.com/boraolim/MonoServe-2016

  18.   Ăn hiếp dijo

    Cuộc tranh luận này có một luồng chính trị mạnh mẽ ... hahahaaaa XD

  19.   A. COPERTINO của Đức dijo

    Với Java, điều tương tự sẽ xảy ra, nếu Oracle hài lòng, nó làm cho java CÓ THỂ TRẢ LỜI và tài sản của nó và tất cả chúng ta đều ổn. Nó rất chủ quan. Và tôi không nghĩ rằng một công ty hoặc bản thân Linux khuyến khích kiểu phát triển này nếu trong tương lai nó sẽ gây ra vấn đề cho người dùng. -

  20.   Elvino mất tích dijo

    Trong thời đại toàn cầu hóa và phi toàn cầu hóa, thật tốt khi nhớ một số hành động độc quyền của một số
    hoặc các hành vi để thao túng, không phải vì lý do gì mà Novel có được Ximian, nhưng hãy đọc
    điều gì đã xảy ra với Mysql / Sun Microsystm và sau đó Oracle hút Sun và với nó là Mysql để biến mất
    Phải mất một chút thời gian Monty (người tạo ra Mysql) để nhận ra điều đó nhưng anh ấy đã giới thiệu lại dự án của mình và khai sinh ra MariaDB và cuối cùng trở thành một kẻ khốn nạn trong Oracle
    nhưng với Mono thì điều tương tự cũng có thể xảy ra.
    Tôi là một lập trình viên đa ngôn ngữ Cobol, C, Java và Harbour Networking, và theo thứ tự đó Dưới Aix, Linux và Windows
    Tôi kết hợp các ứng dụng bằng Socket, tôi giao tiếp các ứng dụng giữa các ngôn ngữ khác nhau và các nền tảng khác nhau cho một Ngân hàng

    Tôi nghĩ Nếu dự án lớn, nghĩa là nó sẽ bao gồm hàng nghìn dòng mã, bạn phải chơi nó an toàn để đảm bảo sự phát triển / sửa đổi và khả năng mở rộng của nó
    bây giờ nếu mã ít, tôi sẽ không gặp vấn đề gì khi làm nó với C #, nếu nó tốt, mạnh mẽ và thực sự giải quyết được vấn đề cho tôi thì tốt.
    Liên quan

  21.   lém lỉnh dijo

    .Net Core + C # = Tương lai

  22.   Chúa Giêsu dijo

    Ghi chú vẫn ổn cho đến khi dòng chữ "nếu bạn là lập trình viên, đừng sử dụng C #" xuất hiện ... lúc đó họ đã mất hết uy tín.

  23.   Japheth Granados dijo

    Vào năm 2020, người ta đã chứng minh rằng không có điều gì được nói trong bài đăng này xảy ra. Microsoft đã tạo .NET Core và làm cho nó miễn phí. Bây giờ với 3 nền tảng có thư viện cơ sở rất giống nhau nhưng cuối cùng lại khác (vì chúng được tạo từ đầu), bước tiếp theo là hợp nhất ba nền tảng thành một và đó chính xác là những gì đang được thực hiện với .NET 5 (không có từ "Core" hoặc "Framework"), như đã nói, là một nền tảng mới, nhưng hiện là nguồn mở, đa nền tảng và có thể được sử dụng để phát triển các ứng dụng web, ứng dụng máy tính để bàn, ứng dụng di động, IoT, AI, Cloud, v.v. . Sự phát triển này là do số lượng lớn các nhà phát triển đã đóng góp nhờ thực tế rằng .NET hiện là mã nguồn mở. Điều này phải xảy ra bởi vì ngày càng có nhiều công ty và nhà phát triển sử dụng .NET theo cách mở, Microsoft đã mở khả năng bán các dịch vụ của mình (chủ yếu trên Đám mây), không giới hạn ở việc sử dụng .NET hoặc C #. Microsoft không ngu ngốc, việc đóng cửa phần mềm của họ và bắt đầu các vụ kiện là điều nguy hiểm đối với họ. Nhưng này, tôi chưa kết hôn với .NET hay bất kỳ ngôn ngữ nào khác. Nhưng tôi thấy rất thú vị những gì đang được thực hiện trong cộng đồng nói trên. Bằng cách có sự hỗ trợ của một công ty lớn, cộng đồng miễn phí có thể phát triển nhanh hơn nữa, đặc biệt là vì có Tổ chức .NET phụ trách việc xem xét các dự án mã nguồn mở hiện có trong .NET, đảm bảo rằng có một đơn đặt hàng, các quy trình được gỡ lỗi từ chính Microsoft để xem xét các dự án nói trên.