Upload
adrian-olszewski
View
223
Download
0
Embed Size (px)
Citation preview
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 1/103
Prowadzący: Adrian Olszewski
Tworzenie przenośnych aplikacji z wykorzystaniemTworzenie przenośnych aplikacji z wykorzystaniem
Microsoft .NET FrameworkMicrosoft .NET Framework
orazoraz
Xamarin MonoXamarin Mono
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 2/103
Program prezentacji
● Przenośność programu na inne systemy operacyjne
– Jak ją rozumieć?
– Jak ją osiągnąć?
– Kiedy może być użyteczna?
● Krótka historia Mono
● Roadmapa
● Instalacja (na przykładzie GNU Debian)
● Przenośne biblioteki graficznego interfejsu użytkownika
●
Bazy danych● Różne przydatne komponenty, które działają w Mono
● Narzędzia produkcyjne
● Licencje – czyli „czy mogę zamknąć kod mojego programu?”
● Problemy
● Wnioski końcowe
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 3/103
Przenośność – jak ją rozumieć?
● Napisany w przenośny sposób program skompiluje się,uruchomi i będzie poprawnie działać pod różnymisystemami operacyjnymi.
● Akceptowalne niedogodności:
– Drobne różnice w wyglądzie aplikacji
– Wolniejsze działanie – Niedokładne odświeżanie widoku
– Zablokowana specyficzna funkcjonalność
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 4/103
Przenośność – jak ją osiągnąć?
● Unikać wywołań funkcji konkretnego systemu operacyjnego (np. WinAPI, WMI) lub zapewnić wskazanie zamienników (System.Media.SoundPlayer,
#IF UNIX …..... #ENDIF)
● Unikać stosowania mechanizmów, które nie istnieją winnych systemach (np. Rejestr Windows)
● Umożliwiać konfigurację użycia mechanizmów systemowych (np. Harmonogram zadań – CRON, wybór przeglądarki internetowej)
Warto rozważyć mechanizm pluginów do realizacji określonych działań na różnych systemach, listowanych i konfigurowanych wfunkcji systemu operacyjnego, np. plugin „Scheduler”, „WebBrowser”, „FileManager”.
● Testować zachowanie na docelowym systemie (np. VM Ware, Virtual PC)
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 5/103
Przenośność – jak ją osiągnąć?
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 6/103
Przenośność – jak ją osiągnąć?
● Unikać nieprzenośnych bibliotek i komponentów(np. WPF, WWF, Krypton Toolkit, MSVCRT, RDLC Report Viewer). Mogą zadziałać, ale nie muszą / mogą wyrzucać wyjątki.
●
Stosować PathSeparator , DirectorySeparatorChar ,Combine, Env.NewLine
● Być świadomym działania kompilatora Lin32: IntPtr=long=32b | Win32: IntPtr=long=32bLin64: IntPtr=long=64b | Win64: IntPtr=64b <> long=32b
● Stosować predefiniowane ścieżki i tam zakładać podkatalogiz uwagi na różną ich strukturę FS w Windows i Linux(Desktop, Programs, Personal, DesktopDirectory, ApplicationData, CommonApplicationData, MyPictures, etc.)
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 7/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 8/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 9/103
Przenośność – kiedy użyteczna?
● Gdy system będzie uruchamiany przez klienta nakomputerach z różnymi systemami operacyjnymi
● Gdy istnieje ryzyko zmiany systemu operacyjnego na
części/wszystkich maszynach klienta (np. Windows → Linux)● Gdy zachodzi potrzeba uczynienia programu dostępnym dla
jak największej grupy odbiorców
● Jedno środowisko produkcyjne, jedna platforma programistyczna / uruchomieniowa:
– Uproszczenie procesu produkcji – jeden kod
– Redukcja czasu potrzebnego na integrację różnych platform
– Redukcja kosztów zakupu narzędzi
–
Ograniczenie ilości potrzebnej do zdobycia wiedzy specjalistycznej (dokumentacje)
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 10/103
Przenośność – kiedy użyteczna?
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 11/103
Krótka historia Mono
● Mono (hiszp. małpa) – zgodna z ECMA, przenośna na inne systemyoperacyjne implementacja .NET: kompilator + CLR + biblioteki
● Ximian → Novell → Xamarin
● Windows, UNIX, Linux, Mac, *BSD, Solaris, Wii, PS3, iOS, Android
● .NET 4.0, WinForms (2.0), ASP.NET (WebForms, MVC2, 3)
● C#, Java, Boo, Nemerle, VB.NET, Python, PHP, Oberon, JS
● Firmy / projekty: Novell, MedTronic, FuturePrice, LindenLab (2nd Life), Skybound,WatzdPrice, ST Microeletronics, Slingshot Software, Metrosharp Corporation, Codice Software,MicroInvest, Artisteer, MindTouch, Medshpere, Volcker Informatik, Quantifi Solutions, UnityTechnologies, Versora, Fiducial, Neoware, Fanfare, SplendidCRM, Information Technologi Partners,Devart, VistaDB, Mainsoft, etc.
● Success stories / Mono usage in the Enterprise:http://tirania.org/blog/archive/2007/Dec-06.html
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 12/103
Krótka historia Mono
● Miguel de Icaza
– RAID1, RAID5 dla Linuksa
–
Midnight Commander – GNOME
– GNumeric
– WINE (współtwórca)
– Ximian (wykupione przez Novell; wiceprezes działu programistycznego Novell)
– Xamarin (MonoTouch, Mono Android)
– 2010: MS MVP
–
1 z 5. „najważniejszych głosów społeczności OS”
http://tirania.org/blog/
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 13/103
Mono – roadmapa
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 14/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 15/103
Mono – roadmapa
Mono 3.0
C# Async compiler
● Unified C# compiler for all profiles
●
4.5 Async API Profile● Integrated new Microsoft's Open Sourced stacks:
● ASP.NET MVC 4
● ASP.NET WebPages
● Entity Framework
● Razor
● System.Json (replaces our own)
● New High performance Garbage Collector (SGen - with many performance and scalability
improvements)
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 16/103
Mono – instalacja
● Instalacja z repozytoriów
– Prosta instalacja: apt-get install mono monodevelop monodoc
– Stare wydania (Debian Squeeze – 2.6, gdy jest 3.0)
– Nowsze wydania są w repo „unstable” - ryzyko utratystabilności i bezpieczeństwa systemu
● Instalacja ze źródeł
– Pełna kontrola nad tym co, gdzie i jak się instaluje – Długotrwały proces (3-6 godzin)
– Skomplikowany proces
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 17/103
Mono – instalacja
apt-get update/upgradeapt-get install gcc make bison gettext fontconfig libpng12-0 libpng12-dev libX11-6 libX11-dev libexif12 sun-java6-jre unzip bzip2 wget build-essential pkg-config libglib2.0-dev libglib2.0-dev libjpeg62-dev libgif-devlibX11-dev libfontconfig1-dev libfreetype6-dev gettext libtool libtiff4 libtiff4-devapt-get install libgtk2.0 (instaluje stare mono)wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2tar xjvf libgdiplus-2.10.tar.bz2 > /dev/null./configure –prefix=/opt/mono-2.10.8 make make installwget http://download.mono-project.com/sources/mono/mono-2.10.8.tar.gztar zxvf mono-2.10.8.tar.gz > /dev/null cd mono-2.10.8./configure --prefix=/opt/mono-2.10.8./configure --with-large-heap=yes --prefix=/opt/mono-2.10.8 --with-libgdiplus=/opt/mono-2.10.8 –with-moonlight=no ake make installecho /opt/mono-2.10.8/lib >> /etc/ld.so.conf ldconfigln -s /opt/mono-2.10.8/bin/mono /usr/bin/monoln -s /opt/mono-2.10.8/bin/gmcs /usr/bin/gmcswget http://download.mono-project.com/sources/mono-basic/mono-basic-2.10.tar.bz2tar xjvf mono-basic-2.10.tar.bz2 > /dev/null cd mono-basic-2.10PATH=$PATH:/opt/mono-2.10.8/binPKG_CONFIG_PATH=/opt/mono-2.10.8/lib/pkgconfig./configure –prefix=/opt/mono-2.10.8 make make installwget http://download.mono-project.com/sources/xsp/xsp-2.10.2.tar.bz2tar xjvf xsp-2.10.2.tar.bz2 > /dev/null cd xsp-2.10.2./configure –prefix=/opt/mono-2.10.8 make make installln -s /opt/mono-2.10.8/bin/xsp2 /usr/bin/xsp2apt-get install libglade2.0 libglade2-dev libgnome2-dev libgnomecanvas2-dev l ibgnomeui-dev libgnomeprint2.2-dev libgnomeprintui2.2-dev libpanel-applet2-devwget http://download.mono-project.com/sources/gtk-sharp212/gtk-sharp-2.12.11.tar.bz2tar xjvf gtk-sharp-2.12.11.tar.bz2 > /dev/null./configure –prefix=/opt/mono-2.10.8 make make installwget http://download.mono-project.com/sources/mono-addins/mono-addins-0.6.2.tar.bz2tar xjvf mono-addins-0.6.2.tar.bz2 > /dev/null
./configure –prefix=/opt/mono-2.10.8 make make installapt-get install gnome-sharp2wget http://download.mono-project.com/sources/mono-debugger/mono-debugger-2.10.tar.bz2
tar xjvf mono-debugger-2.10.tar.bz2 > /dev/null./configure –prefix=/opt/mono-2.10.8 make ake installwget http://download.mono-project.com/sources/mono-tools/mono-tools-2.11.tar.bz2tar xjvf mono-tools-2.11.tar.bz2 > /dev/null./configure –prefix=/opt/mono-2.10.8 make make installtouch /etc/ld.so.conf.d/glib.conf gedit /etc/ld.so.conf.d/glib.conf wpis: /usr/lib/cli/glib-sharp-2./sbin/ldconfigwget http://download.mono-project.com/sources/monodevelop/monodevelop-3.0.3.5.tar.bz2tar xjvf monodevelop-3.0.3.5.tar.bz2 > /dev/null./configure –prefix=/opt/mono-2.10.8 make make installln -s /opt/mono-2.10.8/bin/monodevelop /usr/bin/monodevelop
Dla Cairo potrzebny jest apt-get install libxt-dev
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 18/103
Mono – instalacja
● Instalować zawsze do /opt/mono-ver i dowiązać symoblicznie
w /usr/bin. Korzyści:
– Komponenty (kompilatory, biblioteki) nie będą widoczne w systemie, póki się
tego jawnie nie zadeklaruje
– W razie potrzeby usunięcia całości, wystarczy usunąć podkatalog /opt/mono...
– W razie potrzeby wykonania kopii zapasowej środowiska - wystarczy skopiowaćkatalog /opt/mono...
– Skopiowanie środowiska na inną maszynę sprowadza się do skopiowania na
nią katalogu /opt/mono... – Można w ten sposób zainstalować kilka wersji Mono obok siebie
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 19/103
Mono – instalacja
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 20/103
Mono – instalacjainstalacja libgdiplus i Mono
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 21/103
Mono – instalacjainstalacja libgdiplus i Mono
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 22/103
Mono – instalacjainstalacja libgdiplus i Mono
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 23/103
Przenośne biblioteki interfejsu użytkownika
● Windows Forms:
– Wygląda nieestetycznie
– Działa („odrysowuje się”) wyraźnie wolniej
– Brak dostosowania do natywnych motywów – Problemy z niektórymi kontrolkami
– Kontrolki innych firm – mogą nie działać (P/Invoke)
– Brak designera (bardzo uproszczona wersja alfa)
– Prosty proces produkcji – jeden kod
– Wiele przydatnych kontrolek (CodeProject) – działa
– Można korzystać z designera VS pod Windows
– Wspierany prosty binding dla danych (DataTable, List)
– W rostsz ch rz adkach – w ełni w starcza ce
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 24/103
Przenośne biblioteki interfejsu użytkownikaWindows Forms – standardowe kontrolki
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 25/103
Przenośne biblioteki interfejsu użytkownikaWindows Forms – DataGridView
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 26/103
Przenośne biblioteki interfejsu użytkownikaWindows Forms – Outlook panel (CodeProject)
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 27/103
Przenośne biblioteki interfejsu użytkownikaWindows Forms – Barcode generator
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 28/103
Przenośne biblioteki interfejsu użytkownikaWindows Forms – SourceGrid – problem z odświeżaniem
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 29/103
Przenośne biblioteki interfejsu użytkownikaWindows Forms – MWF Designer
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 30/103
Przenośne biblioteki interfejsu użytkownika
● GTK+ (binding GTK#):
– Diametralnie różna składnia, inne klasy, inne podejścia
– Próba „obiektowego” opakowania kodu w C
– Mało kontrolek firm trzecich
– Mało wygodny designer – Brak data bindingu (ręczne „rzeźbienie” MVC dla grida)
– Help – dla języka C (proceduralny) albo Pythona. Kiepski dla C#
– Sprawdzony od lat (GNOME, GIMP, Firefox, Inkscape, Dia, Abiword,Gnumeric)
– Pełna przenośność, w miarę spójny wygląd pod różnymi OS
– Graficzne designery (choć mniej wygodne niż VS)
– Sizery (dostępny „free layout”)
– Budowanie interfejsów w XML
–
Rewelacyjny komponent Tree–
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 31/103
Przenośne biblioteki interfejsu użytkownikaGTK# - przegląd kontrolek
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 32/103
Przenośne biblioteki interfejsu użytkownikaGTK# - inne, darmowe kontrolki (MedSphere)
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 33/103
Przenośne biblioteki interfejsu użytkownikaGTK# - inne, darmowe kontrolki (Holly Widgets)
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 34/103
Przenośne biblioteki interfejsu użytkownikaGTK# - projektowanie w MonoDevelop
P ś bibli t ki i t f j ż tk ik
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 35/103
Przenośne biblioteki interfejsu użytkownikaGTK# - projektowanie w GLADE
P ś bibli t ki i t f j ż tk ik
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 36/103
Przenośne biblioteki interfejsu użytkownikaGTK# - interfejs wczytany z XMLa
P ś bibli t ki i t f j ż tk ik
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 37/103
Przenośne biblioteki interfejsu użytkownikaGTK# - wygląd w Mono (Linux), Mono (Win) i .NET
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 38/103
Przenośne biblioteki interfejsu użytkownika
● wxWidgets.NET
– Komunikaty obsługiwane jak w MFC (brak event'ów)
– Mało kontrolek firm trzecich
– Brak darmowych designerów dla C#
– Sizery - tylko i wyłącznie. Brak „free layout” – Brak data bindingu
– Help – dla języka C++ (proceduralny). Kilka prostych tutoriali dla C#
– Binding tylko dla podstawowych kontrolek. Setki kontrolek niedostępne w C#
– Nie rozwijany od 2011, ale pojawiają się patche, więc nie umarł
– Sprawdzony od lat (Google, DropBox, Xerox, AMD, Center for Naval Analyses, National Center for Biotechnology Information, MapTek, DynamicGraphics)
– Pełna przenośność, wykorzystuje natywne biblioteki (WinCtrl, GTK, Quartz)
– Budowanie interfejsów w XML (XRC)
– Niezły designer dla XRC
– Kilka niezł ch kom onentów: rid HTMLView HTML 3.2 ola z mask
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 39/103
Przenośne biblioteki interfejsu użytkownika
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 40/103
Przenośne biblioteki interfejsu użytkownika
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 41/103
Przenośne biblioteki interfejsu użytkownika
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 42/103
P ś bibli ki i f j ż k ik
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 43/103
Przenośne biblioteki interfejsu użytkownika
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 44/103
B d h
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 45/103
Bazy danych
Baza danych Silnik Driver
SQL Server
Oracle
PostgreSQL
MySQL
SQLite
Sybase
Firebird
Db4o
Dostępność baz danych i sterowników
B d h
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 46/103
Bazy danych
● ADO.NET
● NHibernate (Fluent + LINQ),
● Entity Framework (wersja 6 w Mono 2.13)
● CodeFirst
● ModelFirst
● DB First
________________________
* MS wypuścił kod EF jako OpenSource na licencji Apache 2.0:
http://entityframework.codeplex.com/
Technologie dostępu do danych
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 47/103
Różne przydatne komponenty
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 48/103
Różne przydatne komponenty
● SourceGrid
● BarcodeLib (Code 128, Code11, Code 39 (Extended/Full ASCII), Code 93, EAN-8, EAN-13, UPC-A, UPC-E, JAN-13,
MSI, ISBN, Standard 2 of 5, Interl. 2 of 5, PostNet, UPC, Supplemental 2, UPC, Supplemental 5, Codabar, ITF-14, Telepen, FIM)
● DockPanelSuite
● GTK SourceView
● Lucene.NET i SimMetrics
● OpenDICOM, ECG Toolkit, NHapi (HL7 2.x)
●
fyiReporting, Report Manager, można próbować Jasper Reports ● Meta nummerics, Math.NET, R.NET/RServereCLI
● MVC#
●
Nplot (MdeI napisał interfejs dla GTK#), ZedGraph
http://www.mono-project.com/Libraries
Różne przydatne komponenty
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 49/103
Różne przydatne komponenty
Różne przydatne komponenty
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 50/103
Różne przydatne komponenty
Różne przydatne komponenty
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 51/103
Różne przydatne komponenty
Różne przydatne komponenty
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 52/103
Różne przydatne komponenty
Różne przydatne komponenty
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 53/103
Różne przydatne komponenty
Różne przydatne komponenty
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 54/103
Różne przydatne komponenty
Różne przydatne komponenty
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 55/103
Różne przydatne komponenty
Różne przydatne komponenty
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 56/103
Różne przydatne komponenty
Narzędzia produkcyjne
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 57/103
Narzędzia produkcyjne
● Visual Studio (Express) + ew. płatny plugin Mono Tools for VS
● #Develop
● Monodevelop (czyta i zapisuje projekty VS)
●
Glade● wxFormBuilder
● MoMA (2.6)
●
Nunit,NAnt● Profiler (część mono)
● Gendarme
Narzędzia produkcyjne
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 58/103
Narzędzia produkcyjne
Mono .NET
al al.exe
gacutil gacutil.exe
-aot ngen.exe
wsdl wsdl.exe
disco disco.exe
xsd xsd.exe
sn sn.exe
monodis ildasm.exe
ilasm ilasm.exe
xsp2 webdev.webserver.exe
PorównaniePorównanie
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 59/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 60/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 61/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 62/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 63/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 64/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 65/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 66/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 67/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 68/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 69/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 70/103
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 71/103
Narzędzia produkcyjne
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 72/103
Visual Studio ToolsVisual Studio Tools
Mono – aplikacje sieciowe
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 73/103
● ASP.NET Web Forms
● ASP.NET MVC (2, 3, 4)
● Remoting
● ASP.NET WebServices (.asmx)
●
WCF● (CORBA)
Mono – aplikacje sieciowe
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 74/103
Mono – aplikacje siecioweWebService
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 75/103
Mono – aplikacje siecioweWCF – czego brakuje?
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 76/103
● MEX (endpointy) – ale jest opracowywane
● COM
● WF
●
WSHttpBinding + TransactionFlow + ReliableSession● Federation
● WSDualHttpBinding i ogólnie duplex
● MSMQ (mechanizm Windows)
● DataServices
● P2P
Mono – aplikacje siecioweWCF → ServiceStack
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 77/103
Mono – aplikacje siecioweWCF → ServiceStack
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 78/103
WCF → ServiceStack
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 79/103
Mono – aplikacje siecioweWCF → ServiceStack
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 80/103
Mono – aplikacje siecioweWCF → ServiceStack
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 81/103
Mono – aplikacje siecioweWCF → ServiceStack
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 82/103
Mono – aplikacje siecioweServiceStack „w słupkach”
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 83/103
Mono – aplikacje siecioweServiceStack „w słupkach”
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 84/103
Mono – aplikacje siecioweServiceStack „w słupkach”
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 85/103
Mono – aplikacje siecioweServiceStack how 2 start
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 86/103
Mono – aplikacje siecioweServiceStack how 2 start
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 87/103
.NET feat. JAVA →.NET feat. JAVA → IKVM.NETIKVM.NET
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 88/103
IKVM.NET pozwala uruchomić skompilowany kod Javy w .NET (Mono).
JARy tłumaczone są statycznie lub w locie na CIL* __________________
* to nie to samo, co J#
IVKM.NET zawiera m.in.:
● .netową implementację JVM
● .netową implementację klas Javy (OpenJDK, Claspath)
●
narzędzia do konwersji JAR → CIL (exe, dll)● Ikvmc – translacja statyczna
● Ikvm – translacja dynamiczna
Problemy...Problem z ładowaniem dynamicznych bibliotek pod Linuksem
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 89/103
Problemy...Problem z ładowaniem dynamicznych bibliotek pod Linuksem
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 90/103
#include <stdlib.h>#include <stdio.h>#include <dlfcn.h>
void* dlopen(const char* file, int flag) {void* ret;ret = dlopen(file,flag);return ret;
}
char* dlerror() {char* err;err = dlerror();return err;
}
void* dlsym(void* handle, const char* symbol) {
void* ret;ret = dlsym(handle,symbol);return ret;
}
int dlclose(void* handle) {return dlclose(handle);
}
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 91/103
Mono dla iOS oraz Androida
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 92/103
Mono dla iOS oraz Androida
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 93/103
Mono dla iOS oraz Androida
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 94/103
Mono dla iOS oraz Androida
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 95/103
Mono dla iOS oraz Androida
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 96/103
Wnioski
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 97/103
●
Nadaje się do tworzenia – usług serwerowych
– przenośnych aplikacji klienckich o prostym interfejsie
– aplikacji internetowych
– narzędzi – prostych aplikacji pomocnicznych
– aplikacji na urządzenia mobilna – ale za $
● Nie nadaje się do tworzenia
– tworzenia „bogatych” interfejsów użytkownika* – b. dużych projektów bez wydania $ na mono-tools
– aplikacji opartych o data binding
*) bez wzłożenia w to dużej ilości dodatkowej pracy
Licencje
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 98/103
●
LGPL - Lesser General Public License● GPL (tylko dla programów i o ile ktoś wie, jak skorzystać; jest to możliwe, choć złożone)
● X11 (MIT) - Massachusetts Institute of Technology License
● Ms-PL - Microsoft® Public Licence
● MPL - Mozilla Public Licence
● BSD - Berkeley Software Distribution License
● Apache 2
● Public domain
● CPOL - The Code Project Open License● Distribution Restrictions. You may not: […] distribute Distributable Code to run on a
platform other than the Windows platform;
Licencje
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 99/103
●
LGPL● X11 (MIT)
● Ms-PL
● MPL
● BSD
● Apache 2
● Public domain
● CPOL
● GPL (tylko dla programów i o ile ktoś wie, jak skorzystać; jest to możliwe, choć złożone)
● Distribution Restrictions. You may not: […] distribute Distributable Code to run on aplatform other than the Windows platform;
Garść przydatnych linków
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 100/103
● http://mono-project.com/Start
– http://download.mono-project.com/sources/
– http://monodevelop.com
– http://www.mono-project.com/MoMA
– http://www.mono-project.com/Plans
– http://docs.go-mono.com/index.aspx
– http://www.mono-project.com/Compatibility
– http://go-mono.com/status/
– http://mono-project.com/Guidelines:Application_Portability
– http://mono-project.com/Mod_mono – http://mono-project.com/Mono.Cairo_Cookbook
– http://www.mono-project.com/Monkeyguide
– http://www.mono-project.com/WCF_Development
– http://mono-project.com/Database_Access
Garść przydatnych linków
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 101/103
● GTK#
– http://mono-project.com/Gui_Toolkits
– http://monodevelop.com/Stetic_GUI_Designer
– http://www.mono-project.com/GtkSharp
– http://www.mono-project.com/GtkSharpBeginnersGuide
– http://www.mono-project.com/GtkSharp_TreeView_Tutorial
– http://www.mono-project.com/GtkSharpTutorials
– http://www.tuxradar.com/hca
– http://zetcode.com/gui/gtksharp
– https://medsphere.org/community/project/medsphere-widgets● http://wxnet.sourceforge.net
● http://www.servicestack.net
● http://github.com/mrward/monodevelop-nuget-addin#readme
:-)
7/23/2019 Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono
http://slidepdf.com/reader/full/tworzenie-przenosnych-aplikacji-z-wykorzystaniem-microsoft-net-framework 102/103