Linux és a C#, .NET
| nyitotta: vodka | , idő: 2010.03.13. | , moderátor: Ivn |  |
|
Ez a téma lezárásra került a moderátor által. A lezárás oka: Offtopic.  Sziasztok!
Azt szeretném kérdezni hogy jelenleg hol tart a .NET "portolása" Linux (és más) rendszerekre?
Lehetséges-e (vagy a jövőben lehetséges lesz-e) platformfüggetlen alkalmazásokat C# nyelven fejleszteni?
Fontos a platformfüggetlenség, ezért kérdem, ki mit gondol erről, van-e értelme belekezdeni, pofára esés nélkül.
Köszönöm a válaszokat!
Még annyit tennék hozzá hogy még nem tisztázott hogy alkalmazás lesz-e, vagy pedig silverlight applet. |

Vagy fizetős lesz.  |
Szerintem LC is arra gondolt, hogy egyelőre kb. olyan bizonytalan a Java jövője, mint a kutya vacsorája lámpa oltás után...
Jah, meg fog szunni, eltunik mindorokre!   |
Okés..Utána nézek a Qt-nek.  |
Szerintem LC arra gondol, amire én. Miszerint nem tudni mi lesz a Java jövője. Mióta az Oracle kilóra megvette a SUN-t, azóta nem tudni mi lesz a nem is olyan távoli jövőben mind a Java, mind pedig a SUN által korábban felvásárolt MySQL sorsa. Szerintem LC is arra gondolt, hogy egyelőre kb. olyan bizonytalan a Java jövője, mint a kutya vacsorája lámpa oltás után...  |
Azon kívül h lassú
Na ez nekem uj!  |
Nincs időm válaszolni mindenre.. De LC azt kifejtenéd mi a baj a Java-val? Azon kívül h lassú, sok nyelvi hibája van?  |
Ha már C++, akkor miért nem Qt? A GTK egy C alapú, elég nehézkes (szokatlan) API. A Qt az egyik legjobb widget készlet (és még nagyon sok egyéb dolgot is tud). Ráadásul a Qt4 már a GTK kinézetét is tudja mimikálni (sőt, igazából GTK widgeteket használ a kirajzoláshoz), ezért mind gnome-os, mind KDE-es desktopon "otthon" van a program. Meg persze windows-on, mac-en is.  |
Ha GTK akkor szerintem inkább C# és GTK#. A C++ az utolsó lenne amit GTK-val csinálnék. Ha mindenáron GTK és C++, akkor már wxWidgets, de ha C++ akkor szerintem inkább Qt. Javát pedig max. akkor ha valami bank utánam dob sok-sok milliót fejlesztésre.  |
Azt hiszem GTK és C++ mellett teszem le a voksom.
De a Java és Swing páros is nagyon csábító.
Tekintve hogy ahhoz legalább találni dokumentáció, tutorialokat, nem kell bajlódni a linkerrel, libekkel, alapból van 2D hardveres gyorsítása, könnyebb hiszen a Java a C++-hoz képest egy eléggé lebutított nyelv.
Tehát akkor vagy Java vagy C++. Majd elválik melyik lesz.
Köszi a segítségeket. |
Nem tudom, korábban Java-ban fejlesztettünk toolokat játékokhoz, Mac OS X-en kódoltunk, a designerek vígan használták Windowson (ok, az egy szem Linuxos gyereknek beletört a bicskája, és természetesen rögtön a Java volt a hibás meg kamu, véletlenül sem a saját installációja :))
.NET esetében könnyebben elcsábul az ember Microsoft-specifikus dolgok irányába, de egyrészt vannak Mono migrációt segítő toolok, másrészt némi odafigyeléssel és gyakori teszteléssel meg lehet előzni a bajt. Egyelőre csak egyszerűbb alkalmazással kísérleteztem, de simán működött ugyanaz a program Windows-on és Mac OS X-en mindenféle varázslat nélkül.
A Silverlighthoz pedig mint írtam hivatalos, Microsoft által fejlesztett és támogatott futtatókörnyezet van Mac-re.
A QT király dolog, a C++ már nem annyira. A python/perl pedig szerintem alkalmazásfejlesztéshez tökéletesen alkalmatlan. De mindegy is, ez a topic ha jól látom, a .net multiplatform képességeiről szól. LC flameindítója is ki lett moderálva közben ;)  |
akar java
Ezt kifejtened..?  |
ha azt akarod hogy maga a kesz binaris futtathato legyen tobb platformon is, akkor mindenkepp sz.r ugy, akar java akar .net :(
ha eleg az, ha leforditani lehet mas platformra, akkor mar sokkal jobb a helyzet, hasznalhatsz pl. Qt-t C++ -bol, vagy akar pythonbol/perlbol, ebben az esetben lenyegeben platformfuggetlen is lesz a megirt script |
Én nemrégiben belefutottam a kérdésbe, és a következőre jutottam:
A mono nagyjából a .NET 2.0 verziójával kompatibilis, továbbá néhány 3.0/3.5 feature-t implementáltak már. Az ASPX vagy épp szolgáltatások szempontjából nem áll rosszul szvsz (feltéve hogy megelégedsz azzal, amit már implementáltak), a problémát a grafikus felületek jelenthetik:
1. Silverlight: Hivatalos Microsoft futtatókörnyezet van Windowsra és Mac OS X-re. Vész esetén Linuxra ott a Moonlight, bár desktop vonalon a Linux annyira nem játszik. Ha Silverlight felmerülhet, mint opció (elegendő az alkalmazásodnak), akkor mindenképp ezt választanám.
Alkalmazás oldal:
2. Windows.Forms: natív, de lassúcska felület Windowson, teljesen C#-ban implementált, a Windows felületét utánzó implementáció a Mono-ban, mely működik Windowson, Linuxon és Mac OS X-en. A hátránya, hogy teljesen Windowsos Look&Feel-t ad, ami még a GTK/QT-s Linux világban nem is lóg ki annyira, mint mondjuk Mac OS X-en. A Monosok a jövőben igérnek skinezhetőséget, az a külsőség részét megoldja a dolognak, de a felület működése marad Windowsos. Szerencsére azért az eltérések nem óriásiak, leginkább a Common Dialogokat (Open/Save File, stb.) kell platformfüggően előhozni, a többi grafikus elem legfeljebb apróságokban tér el a különböző oprendszereken.
A probléma hasonló természetű, mint a Java+Swing esetében.
Btw. további gond, hogy a GDI+ lassúsága miatt a legtöbb 3rd party WinForms komponensgyűjtemény közvetlenül Win32-t használ, ami értelemszerűen nem megy más oprendszereken; így sajnos pl. az sem járható út, hogy pl. DevExpress segítségével az ember konzisztens külsőt teremt minden platformra.
3. GTK#: Visual Studio designer plugin nincs, MonoDevelop viszont van. Natív felület Linuxon és Windowson, Linux-szerű Mac OS X-en. Skinezhető, így a külsővel nem lesz gond, a működésre itt is az igaz, mint a Windows.Forms-nál. Mac OS X-en legalább a menubar már automatikusan felköltözik a képernyő tetejére, de a GTK-s Common Dialogok undorítóak és fapadosak a Mac-esekhez (vagy épp Windowsosakhoz) képest.
4. WPF: A Monosoknak egyelőre még betervezve sincs az implementációja (bár egy részét mindenképp megoldják a Moonlight melléktermékeként) - ez tehát mindenképp kerülendő.
A harc itt a GTK# és a Windows.Forms között folyik, döntést én nagyon nehezen tudtam hozni.  |
Lehet, annyi az ökölszabály, hogy nem .NET-re (silverlightra), hanem mono-ra (moonlight-ra) fejlesztesz, mert ezeken a platformokon hiányzik néhány dolog (bár gyorsan fejlődnek). Mindenesetre ha így teszel, a másik irányban biztosan nem lesz baj.  |
Hát Linux alá van Mono ami a Windows-os .Net Linux megfelelője. Itt találod
Bár én személy szerint multiplatform alá Java-t javasolnék. Ha már portolni kell, meg amúgy sincs olyan nagy különbség néhány esetet leszámítva a két nyelv között. A Mono az meg finoman szólva sem a legtökéletesebb. De ez szigorúan csak SZVSZ. |
Sziasztok!
Azt szeretném kérdezni hogy jelenleg hol tart a .NET "portolása" Linux (és más) rendszerekre?
Lehetséges-e (vagy a jövőben lehetséges lesz-e) platformfüggetlen alkalmazásokat C# nyelven fejleszteni?
Fontos a platformfüggetlenség, ezért kérdem, ki mit gondol erről, van-e értelme belekezdeni, pofára esés nélkül.
Köszönöm a válaszokat!
Még annyit tennék hozzá hogy még nem tisztázott hogy alkalmazás lesz-e, vagy pedig silverlight applet. |
Ez a téma lezárásra került a moderátor által. A lezárás oka: Offtopic. |