Làm cách nào để phát triển ứng dụng .NET trên Ubuntu?


38

tại trường đại học, chúng tôi sử dụng Microsoft .NET để phát triển ứng dụng. Gần đây tôi đã chuyển sang Ubuntu và muốn biết các công cụ tương tự để tạo ứng dụng trên / cho Ubuntu.


4
Tôi muốn khuyến khích bạn cân nhắc việc học một ngôn ngữ khác như Python hoặc C / C ++. Một số lượng lớn (trên thực tế, có lẽ là phần lớn) các ứng dụng trong kho lưu trữ được viết bằng các ngôn ngữ đó.
Nathan Osman

2
Mặc dù sẽ khá dễ dàng để chọn một ngôn ngữ khác, điều đó chắc chắn không cần thiết hoặc đặc biệt mong muốn (ngoài việc tiếp xúc với các phong cách lập trình khác).
RAOF

Nếu bạn muốn sử dụng Linux hàng ngày nhưng muốn phát triển C # mà không gặp sự cố tương thích của Mono, hãy xem xét việc có máy ảo Windows trong VirtualBox.
Mark K Cowan

Câu trả lời:


36

Bạn cũng có thể lập trình trong .NET trên Ubuntu. Vâng, loại. Có một triển khai mã nguồn mở của nền tảng .NET có tên là MONO. Các ứng dụng MONO có thể chạy trên Ubuntu / Linux, Windows và Mac OS. Tìm kiếm MonoDevelop trong Trung tâm phần mềm Ubuntu. Tìm hiểu thêm về Mono trong Ubuntu .

Một lựa chọn khác là Nhanh chóng. Theo tôi, Quickly tốt hơn cho việc phát triển ứng dụng tập trung vào Ubuntu. Bạn có thể mã hóa ứng dụng của mình và phát hành nó vào PPA (launchpad-repository) trong vài phút. Nhanh chóng cũng có sẵn từ Trung tâm phần mềm Ubuntu. Bắt đầu viết ứng dụng với Quickly .


1
+1 để trả lời câu hỏi. (Cá nhân tôi ghét mono, nhưng ồ.)
Nathan Osman

3
liên kết mono-project.com của bạn trỏ đến URL nhanh chóng
McDowell

1
Bạn có thể sử dụng ngôn ngữ CLI (.NET) và thư viện chuẩn - các phiên bản đơn âm trong các bản phát hành Ubuntu gần đây hỗ trợ C # 3.0 và (hầu hết) .NET 3.5. Tuy nhiên, bạn sẽ muốn tìm hiểu thư viện UI GTK #. Các ứng dụng System.Winforms & WPF sẽ không có vẻ tự nhiên và WPF cũng không được thực hiện đầy đủ.
RAOF

1
Bạn sẽ muốn chọn IDE MonoDevelop. Ngoài việc phát triển GUI (* nix sử dụng GTK # để kéo thả so với Winforms / WPF trên windows), Ubuntu không khác nhiều so với phát triển trong windows.
Evan Plaice

@Owais Lone - Các liên kết được cung cấp trong câu trả lời không hoạt động, vui lòng thử gia hạn chúng hoặc thêm một thay thế
Chinmaya B

12

Nhanh chóng có thể giúp bạn tạo các ứng dụng tuyệt vời bằng Python (khá dễ học và rất phổ biến) một cách nhanh chóng!


2
+1 để đề xuất Python / Nhanh chóng. Tôi là một lập trình viên Python chuyên nghiệp và tôi sử dụng Ubuntu trên máy tính của mình. Ubuntu (và Linux nói chung) rất tốt để thực hiện phát triển Python.
codeape

6

Các Vala ngôn ngữ là một ngôn ngữ lập trình rất giống với C #. Nó vẫn còn rất trẻ, nhưng đã có rất nhiều ràng buộc với các thư viện hiện có (ví dụ: GTK). Nó biên dịch thành các tệp nhị phân riêng, vì vậy người dùng của bạn không cần thêm thời gian chạy, giống như với .NET.

Xem phần giới thiệu về Vala cho lập trình viên C # .


Nếu bạn đang nhắm mục tiêu vào Ubuntu thì mono được cài đặt sẵn và do đó không yêu cầu thêm thời gian chạy.
trampster

1
Có vẻ như liên kết đến Vala cho C # không hoạt động. Thay vào đó, hãy thử cái này, live.gnome.org/Vala/ValaForCSharpProgrammer . Ngoài ra còn có một chương trình dành cho lập trình viên Java, live.gnome.org/Vala/ValaForJavaProgrammer .
Đánh dấu B

cảm ơn Mark, có vẻ như họ đã cơ cấu lại wiki của họ, tôi đã sửa liên kết trong phần Trả lời.
thbusch

5

Tôi thấy không có lý do cho tất cả các đề xuất này mà bạn chuyển đổi nền tảng / ngôn ngữ ứng dụng. Sử dụng những gì bạn đã quen và bạn sẽ làm việc hiệu quả hơn là phải dành thời gian học ngôn ngữ khác.

Monodevelop sẽ cung cấp cho bạn trải nghiệm tốt hơn về phát triển Mono - không có Visual Studio, nhưng IDE tích hợp tốt nhất cho mono mà bạn sẽ có trên Ubuntu. Thiết kế trực quan của các hình thức GTK và các điều khiển của chúng là một chiến thắng lớn (nghĩ Winforms nhưng theo phong cách Linux).


2

Có tất cả các loại công cụ có sẵn trên Linux cho phép bạn tạo các ứng dụng máy tính để bàn phong phú. Bowline là một khung mvc cho phép bạn tạo các ứng dụng máy tính để bàn bằng ruby. Giày là một khung khác cho phép bạn tạo các ứng dụng máy tính để bàn bằng ruby ​​và cho đến nay, đó là khung ứng dụng máy tính để bàn dễ nhất.


2

Bắt đầu học Qt . Đó là một khung dựa trên C ++. Đó là nền tảng chéo và cũng hoạt động tốt trong các cửa sổ. Thậm chí, nó còn có một bổ trợ cho Visual Studio. Nó thường được sử dụng cho nền tảng KDE. Đối với Gnome, bạn có thể tìm hiểu GTK # .

Từ Wikipedia ,

Thay cho bộ công cụ Qt, GTK + được chọn làm cơ sở của máy tính để bàn Gnome.


1
Qt hoạt động trên Gnome
dv3500ea

@ dv3500ea: Bạn đã không nhận được nó. QT được sử dụng để phát triển các ứng dụng KDE, điều đó không có nghĩa là các ứng dụng được xây dựng bởi QT sẽ không chạy trên Gnome. Các ứng dụng GTK tương tự sẽ chạy trên KDE. Nhưng bạn không thể sử dụng GTK để xây dựng các ứng dụng KDE
người dùng

1
Nó không phải "chỉ dành cho nền tảng KDE".
dv3500ea

1
QT không được sử dụng để xây dựng các ứng dụng KDE. QT được sử dụng để xây dựng GUI. KDE sử dụng QT để xây dựng các ứng dụng. QT cũng có thể được sử dụng để xây dựng các ứng dụng GTK.
Owais Lone

Tôi nghĩ rằng tôi hoàn toàn bị mất ở đây. Đánh dấu là wiki cộng đồng. Cảm ơn sự hỗ trợ và kiên nhẫn của bạn.
người dùng

2

Để phát triển ứng dụng dành riêng cho Ubuntu, hãy đến trang web dành cho nhà phát triển của Ubuntu . Trong số những thứ khác bạn có thể:

Họ có một khung gọi là Nhanh chóng .

Có những tài liệu tham khảo tốt trong các câu trả lời khác cho Qt và GTK. Một nguồn thú vị cho các hướng dẫn là trang web dành cho nhà phát triển của Gnome .

Khung / IDE để sử dụng sẽ phụ thuộc vào ngôn ngữ bạn sử dụng. Bạn có thể sử dụng MS Visual Studio Code trên Ubuntu .


1
Tiền thưởng tôi đã bắt đầu cụ thể là về dotnet. Câu trả lời nên rất dễ. Bạn thậm chí có thể tìm thấy các bản cập nhật có liên quan từ trang web microsoft
Anwar

@Anwar Tôi đã nhầm lẫn với mô tả. Tôi không rõ liệu ý tưởng đó có phải là .Net hay phát triển như với .Net. Tôi đã trả lời cho cách giải thích thứ hai
Ramon Suarez

Vui lòng thêm chi tiết cho phần đó của câu trả lời. Nên bao gồm quá trình cài đặt cơ bản
Anwar

@Anwar Xin lỗi, tôi không hiểu bình luận của bạn.
Ramon Suarez

2

Vui lòng luôn tham chiếu chéo CoreCLR (thời gian chạy .NET Core) với Mono. Hơn nữa, vui lòng xem câu hỏi này thu thập những người liên quan và ý kiến ​​chính thức cho CoreCLR và dự án mối quan hệ Mono sau khi Microsoft mở nguồn .NET

Tôi nghĩ một trong những điều tốt từ Giants of IT ngành là Tài liệu chính thức.

Lệnh sau được sao chép từ Bắt đầu với .NET Hello World Console Application trong Ubuntu , ngoại trừ phần tường thuật và ý kiến ​​bổ sung cuối cùng. Có thể tham khảo các liên kết trên, nếu bất kỳ lệnh nào thất bại.

  1. Điều kiện tiên quyết: Bắt đầu với .NET Hello World Console Application trong Ubuntu . Hướng dẫn ở đây giả sử bạn đang chạy Ubuntu 16.04 LTS.

    Để cài đặt .NET Core trên Ubuntu hoặc Linux Mint, trước tiên bạn cần thiết lập nguồn cấp dữ liệu apt-get lưu trữ gói bạn cần. Vì vậy, thiết lập kho apt với các lệnh này.

    sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list'
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
    sudo apt-get update
    
  2. Cài đặt .NET Core SDK

    sudo apt-get install dotnet-dev-1.0.1
    
  3. Khởi tạo một ứng dụng Hello World mẫu

    dotnet new console -o hwapp
    cd hwapp
    

    Nhìn phong cách, việc bắt đầu như Node.js gần như dễ dàng hơn, nó giống như các công cụ CLI cho tất cả các công cụ phát triển thế hệ mới như Spring Boot, Angular 2, v.v., bạn chỉ có thể khởi tạo ứng dụng Hello World bằng lệnh:

  4. Chạy ứng dụng

    dotnet restore
    dotnet run
    

    Lệnh đầu tiên sẽ khôi phục các gói được chỉ định trong tệp dự án và lệnh thứ hai sẽ chạy mẫu thực tế:

  5. Cuối cùng, nếu bạn có thể trải qua một chút phức tạp, nhưng nếu bạn yêu cầu UI, tôi sẽ nghĩ rằng điều này sẽ dễ dàng hơn so với làm việc với Thư viện UI C ++ / C # khác. Bạn có thể chọn làm việc với .NET hoặc Node.js để giao tiếp với Trình duyệt web của Electron cung cấp UI thông qua HTML5, CSS.

    Giao diện người dùng điện tử với .NET và Node.js


Nâng cao. Liên kết MS của bạn về cơ bản là tất cả mọi thứ tôi muốn được bao gồm. Bạn có thể đặt các phần quan trọng của liên kết vào câu trả lời?
Anwar

Chắc chắn, Cảm ơn cho upvote. Đã được đối xử thực sự tốt đẹp ở đây, cho Câu hỏi Microsoft thứ hai. Miễn là Microsoft cố gắng trung lập trong dự án Nguồn mở của họ, tôi nghĩ Unix cũng nên chào đón họ, cũng như những người bạn giống với Bash trên Windows 10.
Edward Chan JW
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.