MONO.

Poprzedni temat «» Następny temat

Tagi tematu: mono

MONO.
Autor Wiadomość

mateusz928

Wymiatacz


forum

Dołączył: 21 Lip 2010
Posty: 297
Postawił 7 piw(a)
Wysłany: 27-07-10, 17:57   MONO.

Warto zwrócić uwagę, że zadaniem Mono jest nie tylko odwzorowanie platformy .NET, a przez to uzyskanie wspólnej platformy uruchomieniowej Windows i Linux/Unix. Biblioteka klas Mono jest rozbudowywana również o komponenty i funkcje niedostępne na platformie .NET Microsoftu, dlatego Mono z jednej strony staje się również samodzielną nowoczesną platformą programistyczną, a z drugiej - w pewnym sensie rozszerza platformę .NET. Jednym z takich rozszerzeń jest Gtk#, które pozwala aplikacjom dotnetowym korzystać z bibliotek Gtk+, używanych w systemach Windows i Unix do tworzenia graficznych interfejsów aplikacji.

Projekt Mono jest obecnie w fazie intensywnego rozwoju, więc nie wszystkie klasy dostępne w .NET Framework dostępne są w Mono. Na dodatek implementacja niektórych klas, dostępnych w Windows niemal automatycznie, w Linuksie wymaga dużo większego nakładu pracy. Przykładowo, aby umożliwić używanie Windows Forms w Linuksie, Mono wykorzystuje fragmenty projektu Wine - implementacji open source API systemu Windows. Nagrodą za dodatkową pracę przy integracji obu tych projektów jest duża kompatybilność implementacji Windows Forms w Mono z implementacją Windows Forms na platformie Windows. Dzięki temu w Linuksie możliwe będzie uruchamianie nawet takich aplikacji, które pomijają .NET Framework i odwołują się bezpośrednio do funkcji Win32 API.

Kliknij, aby powiększyćTen sam program skompilowany i uruchomiony w systemie Linux, przy czym kompilacja nie jest konieczna, ponieważ możemy równie dobrze uruchomić plik skompilowany wcześniej w systemie Windows. Mono jako nowe środowisko programistyczne dla świata uniksowego może za sprawą Gtk# być już wykorzystywane do tworzenia aplikacji Gnome. ADO.NET w wersji Mono obsługuje oprócz komercyjnych systemów RDBMS również bazy danych PostgreSQL, MySQL i SQLite. Wokół Mono pojawia się też wiele projektów dodatkowych i wszystkie przyczyniają się do popularyzacji platformy. Wymienić można np. implementację technologii programowania rozproszonego CORBA i ICE, środowisko uruchomieniowe Javy działające na platformie Mono (IKVM) oraz środowisko programistyczne monodevelop.

Mono udostępniane jest na wiele sposobów, tj. w postaci kodu źródłowego, za pomocą programu Ximian Red Carpet, w postaci pakietów RPM do wybranych dystrybucji Linuksa (SUSE Enterprise Server 8 i 9, SUSE LINUX 9.0 i 9.1, Red Hat Linux 9, Fedora Core 1 i 2), w postaci automatycznego instalatora do Windows 2000 i nowszych oraz w wersji do Mac OS X.

Zgodność Mono z platformą .NET oraz dostępność narzędzi programistycznych w systemach Windows i Linux sprawia, że można już obecnie napisać aplikację w Windows i skompilować ją za pomocą .NET Framework SDK, a następnie uruchomić za pomocą Mono w Linuksie, albo odwrotnie - napisać i skompilować za pomocą Mono w Linuksie i uruchomić w Windows pod kontrolą .NET Framework. Można też, nie używając narzędzi Microsoftu, napisać program, który będziemy uruchamiać za pomocą Mono na obu platformach.

Aby zilustrować tę możliwość, napiszemy w Mono przykładową aplikację - program do prostego szyfrowania plików tekstowych za pomocą algorytmu ROT-13. Algorytm ten powoduje, że w 26-znakowym alfabecie łacińskim litery od A do M stają się literami od N do Z i odwrotnie, a pozostałe nie zmieniają się.

Otwieramy zatem dowolny edytor - może to być Notepad w Windows lub vi w Linuksie - tworzymy nowy pliki ROT13.cs i wpisujemy kod programu w języku C#.

using System;
using System.IO;
using System.Text;
class ROT13
{
static void Main(string[] args)
{
if (args.Length < 2) //sprawdzenie parametrów
{
Console.WriteLine("\n ROT13 [plik1] [plik2]\n");
return;
}
StreamReader Sr = null; //klasa czytająca z pliku
StreamWriter Sw = null; //klasa zapisująca do pliku
try
{
Sr = File.OpenText(args[0]); //otwieramy plik
Sw = File.CreateText(args[1]); //tworzymy plik
String Ln = Sr.ReadLine(); //czytamy pierwszy wiersz
while (Ln != null) //sprawdzamy, czy nie koniec pliku
{

//kopiujemy ciąg znaków do obiektu StringBuilder
StringBuilder Sb = new StringBuilder(Ln);

//pętla podmieniająca znaki
for (int i = 0; i < Sb.Length; i++)
{
if ((Sb[i] >= 'a') && (Sb[i] <= 'z'))
if (Sb[i] <= 'm')
Sb[i] = (char)((int)Sb[i] + 13);
else
Sb[i] = (char)((int)Sb[i] - 13);
else if ((Sb[i] >= 'A') && (Sb[i] <= 'Z'))
if (Sb[i] <= 'M')
Sb[i] = (char)((int)Sb[i] + 13);
else
Sb[i] = (char)((int)Sb[i] - 13);
}
Sw.WriteLine(Sb); //zapis wiersza do pliku
Ln = Sr.ReadLine(); //odczyt następnego wiersza
}
}
catch (Exception E) //informacja w razie błędu
{
Console.WriteLine("\n " + E.Message + "\n");
}
finally //na koniec zamykamy pliki
{
if (Sr != null) Sr.Close();
if (Sw != null) Sw.Close();
}
}
}

Kod programu wraz z opisem dostępny jest w miniprotalu programistycznym PCWK_PROG na naszej płycie.

Aby skompilować program za pomocą Mono w Windows, trzeba wpisać w wierszu poleceń mcs ROT13.cs, a następnie mono ROT13.exe plik1.txt plik2.txt, żeby uruchomić program. Dokładnie te same polecenia działają identycznie w Linuksie.
_________________
czeslawzajac
Postaw piwo autorowi tego posta
 
.::Pani Reklama::.







Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku
Ulubione tematy

Skocz do:  




Powered by phpBB modified by Przemo © 2003 phpBB Group
Polecamy!


O Forum.ciptus.pl
Forum wielotematyczne dyskusyjne młodzieżowe
Forum wielotematyczne dyskusyjne , młodzieżowe z możliwoscia stworzenia własnego bloga
Forum wielotematyczne dyskusyjne  , młodzieżowe z wieloma avatarami
Forum wielotematyczne dyskusyjne , młodzieżowe z super emotkami
Forum wielotematyczne dyskusyjne , młodzieżowe z wieloma użytkownikami
Mapa strony