Làm thế nào để viết các chương trình C # trên một Raspberry Pi sử dụng Mono
Kể từ khi Raspberry Pi có khả năng chạy một bản phân phối Linux đầy đủ, thì tiềm năng của nó như một công cụ phát triển là rất lớn. Pi không chỉ hỗ trợ các ngôn ngữ biên dịch chính thống như C, C ++ và Java, nó còn hỗ trợ các ngôn ngữ kịch bản phổ biến như Python, Perl và Lua. Pi cũng có thể sử dụng một số ngôn ngữ được biên dịch ít được biết đến hơn (nhưng mạnh mẽ) như ngôn ngữ Go của Google và C #. Sử dụng sau này trên Raspberry Pi là đơn giản nhờ vào dự án Mono mã nguồn mở.
Mono là một bộ công cụ (bao gồm trình biên dịch C # và Thời gian chạy ngôn ngữ chung) được sử dụng để tạo các chương trình tương thích ".NET" dựa trên các tiêu chuẩn ECMA đã xuất bản. Về bản chất, nó cho phép bạn biên dịch và chạy mã C # trên Linux, và các tệp nhị phân kết quả hoàn toàn tương thích với Microsoft.NET.
Để cài đặt Mono về việc sử dụng Raspberry:
sudo apt-get cài đặt mono-complete
Bước tiếp theo là biên dịch chương trình “Hello World” chuẩn. Tạo một tệp có tên “hello.cs” bằng trình soạn thảo văn bản yêu thích của bạn. Để tạo nó bằng nano, gõ:
nano hello.cs
Cắt và dán đoạn mã sau:
sử dụng Hệ thống; public class HelloWorld {static public void Main () {Console.WriteLine ("Hello Make Tech Easier"); }}
C # là một ngôn ngữ hướng đối tượng, có nghĩa là mọi thứ được định nghĩa trong một lớp. Đoạn mã trên tạo ra một lớp gọi là "HelloWorld", và định nghĩa một hàm bên trong lớp được gọi là "Main". Main () luôn là điểm khởi đầu cho các chương trình C #. “Console.WriteLine” in văn bản ra khỏi thiết bị đầu cuối (bảng điều khiển).
Để biên dịch loại chương trình:
mcs hello.cs
Điều này sẽ tạo ra một tập tin gọi là "hello.exe" trong thư mục hiện hành. Thông thường trong Linux, các tập tin nhị phân không sử dụng phần mở rộng ".exe", nó là một cái gì đó đến từ DOS và Windows. Nếu bạn kiểm tra kiểu tệp "hello.exe", bạn sẽ thấy rằng nó thực sự là một tệp thực thi của Intel:
tập tin hello.exe
Đầu ra cho thấy rằng "hello.exe" là một hội đồng Mono / .Net được xây dựng để chạy trên PC với Windows, sử dụng bộ xử lý Intel. Nhưng chúng tôi đã biên dịch nó trên Linux, sử dụng bộ xử lý ARM!
Điều này là do .NET thực sự sử dụng một ngôn ngữ trung gian được giải thích bởi Thời gian chạy ngôn ngữ chung. Sự khởi đầu của tập tin .exe là mã Intel / Windows thực tế tự động khởi động thời gian chạy và cho phép phần còn lại của chương trình (như mã trung gian) chạy.
Cách chính thức để bắt đầu chương trình trên quả mâm xôi là thông qua lệnh "đơn":
mono hello.exe
Và như bạn mong đợi, đầu ra sẽ hiển thị “Hello Make Tech Easier” trong terminal. Bởi vì đầu ra từ Mono là nhị phân tương thích với Windows, bạn có thể sao chép tệp "hello.exe" vào máy tính chạy Windows và chạy trực tiếp.
Cũng có thể viết các chương trình GUI bằng GTK. Nhưng trước tiên bạn cần phải cài đặt các ràng buộc giữa Mono và GTK:
sudo apt-get cài đặt gtk-sharp2
Tạo một tệp có tên "hellogtk.cs" với mã sau trong đó:
sử dụng Gtk; sử dụng Hệ thống; class Xin chào {static void Main () {Application.Init (); Cửa sổ window = new Window ("Hello MTE"); window.Show (); Application.Run (); }}
Đây là một chương trình GTK rất đơn giản sẽ mở ra một Cửa sổ mới. Để biên dịch loại:
mcs hellogtk.cs -pkg: gtk-sharp-2.0
Cờ “pkg” cho Mono biết rằng chương trình này cần sử dụng bộ công cụ GTK. Để chạy "hellogtk.exe", bạn cần đảm bảo rằng màn hình đang chạy trên Pi của bạn. Từ trình quản lý tệp hoặc từ thiết bị đầu cuối được khởi động từ màn hình, hãy chạy tệp nhị phân.
Một cửa sổ nhỏ sẽ mở ra với tiêu đề “Hello MTE.” Ứng dụng không làm bất cứ điều gì khác, nhưng nó cho thấy rằng bạn có thể viết các chương trình GUI trên Pi của bạn bằng C #.
Mono có một dự án chị em IDE đa nền tảng, được gọi là MonoDevelop. Các dự án này giúp dễ dàng viết các ứng dụng web trên máy tính để bàn và ASP.NET trên Linux, Windows và Mac OSX. Nó cũng có sẵn trên Raspberry Pi. Để cài đặt nó, gõ như sau trong một thiết bị đầu cuối:
sudo apt-get cài đặt monodevelop
Nếu bạn gặp khó khăn khi sử dụng Mono, thì trang hỗ trợ của dự án có liên kết đến các diễn đàn, danh sách gửi thư cũng như các Câu hỏi thường gặp. MonoDevelop cũng có tài liệu toàn diện và trang FAQ.