Mono, Linux - integracja bibliotek z aplikacją

0

Witam,

Załóżmy, że mam kod napisany w .net który działa też pod mono. I teraz, chcę otrzymać linuksową binarkę, która będzie już w sobie zawierać odpowiednie składniki mono i będzie działała jako program linuksowy, nie wymagając odpalania za pomocą mono.

Czyli coś takiego, jak robi google z wine - jest aplikacja windowsowa, ale po dołączeniu bibliotek wine i skompilowaniu na linuksie działa już jako linuksowa. Potrzebują tego samego z .net i mono.

Da się? Oczywiście gui i winforms a nie tylko sama konsola.

0

Chyba znalazłem sposób: http://www.mono-project.com/Guide:Running_Mono_Applications#Bundles_.28Linux_only.29

Teraz czas przetestować.

[edit]
Hmm powstał plik o wielkości 25 MB ale działa. Ciekawe czy na Windows się da :> Podejrzewam że tak.

0

Pytanie bo piszesz ,że google tak robi to sugerujesz ,że Chrome działa na zintegrowanym wine?

0

Chrome nie, ale google earth i picassa juz tak

0

Ponieważ taki temat przewijał się już kilkakrotnie na tym forum, jak ciekawostkę mogę powiedzieć, że na Windows również to działa. Można przekonwertować plik .exe napisany w .net do normalnego natywnego programu, który do uruchomienia nie będzie już wymagał zainstalowanego żadnego frameworka.

Jednak rozmiar tego pliku to minimum 10 MB, a do tego trzeba doliczyć runtime mono i gcc (jeszcze około 10 MB). Ale to i tak mniej niż rozmiar .net. Jak widać, da się - szkoda że MS nie widzi takiej potrzeby...

0

No ale trzy takie programy zajmą więcej niż cały .NET. I jak do takiego exe wgrać poprawkę albo uaktualnienie frameworka?

0

Nie da się wgrać poprawki. Nie da się również debuggować tego, ani też uaktualnić gdy wyjdzie nowsze mono. Ale, możliwe jest zrobienie natywnego programu jednak, niezależnego od .net.

Z drugiej strony, nie da się już tak łatwo odzyskać kodu w źródłowego w c#, o ile w ogóle się da.

0

No widzisz. To ja też bym nie widział potrzeby zamykania użytkownikom drogi do wgrywania poprawek dla mojego produktu. Zwłaszcza, gdybym był Microsoftem. :)

0

Dobra dobra, nie da się tego zrobić w mono, ale to nie znaczy że nie dałoby się tego umożliwić :>

0

No i później aktualizowany byłby każdy z np. 20 zainstalowanych takich programów, zamiast tylko jeden framework. Nadal nie widzę sensu. :)

0

Ja widzę sens statycznego linkowania kilkudziesięciu modułów do kupy - ułatwianie działania smutnym panom tworzącym exploity. Oni też muszą z czegoś żyć.

0

Ale jednak się da :) Zreszta, zraziłem się już do tego czegoś (mono ogólnie). Nie nadaje sie to do produkcyjnego wykorzystania. Najciekawsze, że wersja na windows (ten sam numer wersji) działa o niebo lepiej niż na linuksie. Niemal 100% aplikacji wykorzystujących niestandardowe kontrolki na windows działa, a na linuksie sie sypie...

To ja się pytam - czy nie powinno być na odwrót? Dla .net na widnowsie raczej konkurencji nie zrobią, a gdyby na linuksach działało w miarę to mobłaby być ciekawa rzecz.

0

Powiedzcie mi jak to jest z tym .NET-em. Skoro są problemy z uruchamianiem pod Linuxem, to co daje .NET ? Rozumiem, że działa też pod MAC-iem w Mac OS X ? Bo jeśli nie to już w ogóle nie widzę sensu dla NET ;) (programy w Java można uruchamiać niemal w każdym systemie, a przynajmniej tych najpopularniejszych). Czy coś się ma zmienić jeśli chodzi o Linuxa w najbliższym czasie?

0
Der1 napisał(a)

Powiedzcie mi jak to jest z tym .NET-em. Skoro są problemy z uruchamianiem pod Linuxem, to co daje .NET ? Rozumiem, że działa też pod MAC-iem w Mac OS X ? Bo jeśli nie to już w ogóle nie widzę sensu dla NET ;) (programy w Java można uruchamiać niemal w każdym systemie, a przynajmniej tych najpopularniejszych). Czy coś się ma zmienić jeśli chodzi o Linuxa w najbliższym czasie?

A kto używa Linuksa? Tzw. błąd statystyczny.
A o aplikacjach webowych słyszałeś? Działają tak samo na każdej przeglądarce bez względu na system.

0

A kto używa Linuksa? Tzw. błąd statystyczny.

Rozumiem, że ty do tego błedu statystycznego sie nie zaliczasz i dlatego tak piszesz ? :> Wsrod uzytkownikow aktywnie piszacych na tym forum ten błąd statystyczny to na pewno ponad 10-15%

1

Jeszcze nikt nie napisał czegoś do uruchamiania kodu .NET między systemami, ale może kiedyś napisać więc .NET działa na wielu systemach i kropka!

0

Skoro są problemy z uruchamianiem pod Linuxem, to co daje .NET ?

Fajne programowanie pod Windows? Wyrzucenie (no, powiedzmy) WinAPI i przejście na pełną obiektowość? .NET nie był pomyślany jako platforma dla innych niż Windows systemów operacyjnych, a jako ewolucja platformy Windows. To, że opiera się na kodzie pośrednim i teoretycznie można by uruchamiać aplikacja na innych niż Windows systemach to "skutek uboczny".

Rozumiem, że działa też pod MAC-iem w Mac OS X ? Bo jeśli nie to już w ogóle nie widzę sensu dla NET ;) (programy w Java można uruchamiać niemal w każdym systemie
, a przynajmniej tych najpopularniejszych).

.NET to nie Java. Są podobne, ale to nie Java. Dlaczego zdziwienie i "brak sensu"? Microsoft nie jest zainteresowany Linuksem i nie wydaje .NET na tę platformę. Podobnie jak niektórzy inni producenci nie wydają swoich produktów na Linuksa.

Czy coś się ma zmienić jeśli chodzi o Linuxa w najbliższym czasie?

Od strony Microsoftu - w najbliższym czasie zapewne nic. Od strony projektu Mono - pracują i rozwijają cały czas.

1

(Zaznaczam, na wszelki wypadek, że errare humanum est oraz nie wiem wszystkiego więc chętnie poczytam zdanie kogoś mającego inną wiedzę)

.NET nie był pomyślany jako platforma dla innych niż Windows systemów operacyjnych, a jako ewolucja platformy Windows.

False. Wśród założeń projektowych platformy znalazło się sformułowanie o "zapewnieniu przenośnego środowiska".
CLI definiuje standard "profilu jądra" i "profilu kompaktowego" (tłumaczenia moje). Profil jądra to "zestaw minimalny" - zawiera tylko klasy bazowe i infrastrukturę uruchomieniową. Profil kompaktowy to dodatkowo XML, Network i Reflection. Ok, a gdzie podziała się reszta znanych wszystkim klas (WinForms, Gdi, XSLT itd)?
Tutaj właśnie "leży pies pogrzebany" - Microsoft w swojej implementacji .NET radośnie dodał tony innych klas - w tym nieprzenaszalnych, opakowujących funkcje Windowsa. Chyba nie można winić Microsoft że dodał różne funkcje? Logiczne że panowie od Billa G. nie będą się zajmować innymi systemami, ale nieprawdą jest twierdzenie że rzucają linuxowcom kłody pod nogi. Szczególnie że projekt mono, jak "wieść gminna" głosi, powstaje pod błogosławieństwem Microsoftu.

0
othello napisał(a)

Rozumiem, że ty do tego błedu statystycznego sie nie zaliczasz i dlatego tak piszesz ? :> Wsrod uzytkownikow aktywnie piszacych na tym forum ten błąd statystyczny to na pewno ponad 10-15%

Hola, hola! Nie wiem czy wiesz, że forum to nie jest cały świat. ;)

0

W dużej części zgadzam się z somekind. Choć mam Linuxa na kompie, używam sporadycznie. Z moich obserwacji wynika że Linucha ma garstka maniaków-zapaleńców.... System dobry, ale ma jedną wadę - brakuje pod niego softu (profi softu, nie mówię o grach).

Zainteresuje się projektem MONO. Chciałbym chociaż swoje (bardzo proste) programy uruchomić pod UBUNTU.

Zawsze byłem przekonany, że NET to coś jak "Java Microsoftu" - dzięki że wyprowadziliście mnie z błędu!

1 użytkowników online, w tym zalogowanych: 0, gości: 1