Po delší odmlce se znovu hlásím s výběrem zajímavostí ze světa dění kolem projektu Mono. Za tu dobu jich bylo docela dost, takže jedeme pěkně z kopce :)
Mono 1.2.3 a 1.2.3.1
Projekt Mono sám vydal další stabilní verzi a jednu opravnou. Dočkali jsme se hlavně velkého počtu nově implementovaných funkcí (téměř dva tisíce), hlavně v oblasti System.Windows.Forms a to díky velkému počtu reportů pomocí aplikace
Reflector sám o sobě umožňuje prohlížení assembly, včetně disasemblování do různých jazyků. Upozorňuji, že tento nástroj je výborný pro rychlé dohledání definicí a způsobu implementace vlastních komponent či jako záchranu pro ztracené zdrojáky, nikoliv jako disasembler produktů třetích stran.
MonoDevelop 0.13 a 0.13.1
Na cestě k verzi 1.0 jsme se dočkali další verze, která přináší mnoho změn a revizi mnoha oblastí API jako přípravu na vydání 1.0, kterou můžeme očkávat letos někdy ve třetím čtvrtletí.
Mezi novinky v této verzi bych zmínil kompletní přepracování VersionControl rozšíření, které je nyní spíše framework pro jednotlivé implementace. Jedinným podporovaným systémem je zatím jen Subversion 1.3+, ale přináší spoustu zajímavých vychytávek, například spolupráci s ChangeLog rozšířením.
Další novinkou jsem přispěl do mlýnu já a je to nový Task List, který generuje úkoly na základě komentářů ve zdrojovém kódu, podle definovaných klíčových slov. Je zde taktéž podpora vlastních komentářů, které se ukládají se sestavou. Rozšíření má taktéž extension point pro přidávání další funkcionality např. pro Bugzillu.
Významně bylo vylepšeno auto-doplňování kódu včetně podpory pro parametry metod.
Přibyla podpora pro projety VS2005, takže je nyní možné s nimi pracovat jako by to byl nativní formát. Toto využijí určitě ti, kteří se se svým kódem přesouvají mezi platformami a různými IDE. Tento formát používá například i SharpDevelop či X-Develop.
Nově se objevily takzvané „custom commady“, kterými lze dokonce nahradit nativní funcionalitu sestavení. Nyní není problém vyvíjet v MonoDevelopu třeba projekt v C/C++ bez podpory .Netu.
Mezi další novinky patří integrace s Makefile (Lze je generovat, či tvořit projekty z nich a synchronizovat je mezi sebou), nové WebReference rozšíření, či vylepšení Gtk# návrháře.
Celý výčet novinek s pěknými screenshoty naleznete zde.
MonoDevelop má jako jediný také 100% český překlad. Nicméně pracuji na něm sám a od některých věcí nemám dostatečný odstup, takže uvítám vaše připomínky a návrhy…
Mono.Addins
Lluis Sanchez spravoval a vyvíjel systém rozšíření v MonoDevelopu přes dva roky. Nyní jej celý vyseparoval, částečně přepracoval a uvolnil první verzi tohoto frameworku pro psaní pluginů pod MIT X11 licencí. Jelikož Mono.Addins má za sebou několikaletou práci, již v první verzi nabízí mnoho zajímavé funkcionality a dále se v svn repositáři vylepšuje. Detaily, co všechnu umí a nabízí naleznete zde.
Google Summer of Code 2007
Jistě není novinkou, že Google letos znovu nabízí studentům „letní programátorskou brigádu“. Pro Mono projekt bylo letos akceptováno rekordních dvacet čtyři projektů.
Jejich seznam naleznete na stránkách Google. Rád bych zmínil například projekt Davida Srbeckého, Debuger rozšíření pro MonoDevelop. David je taktéž autorem stejného rozšíření pro SharpDevelop. Mezi další projekty patří např. Windows Forms návrhář a jeho integrace do MonoDevelopu, FastCGI ASP.NET server, ASP.NET AJAX a další. Pokud bude letošní léto tak úspěšné jako předchozí, máme se na co těšit.
A to je pro dnešek vše, přátelé…
K tomu Reflectoru a produktum tretich stran, to bylo poprve, co jsem v pripade nalezeneho problemu v jednom MS produktu mohl skocit do zdrojaku a hledat pricinu, protoze byl v .NETu. To hypertextove zalozeni Reflectoru cloveku hodne usnadni orientaci v cizich zdrojacich.
Trochu me prekvapilo, ze se ty ruzne obfuscatory, co maji reverznimu inzenyrstvi zabranit, zatim prilis nepouzivaji.
Moc pěkně napsáno. Kdybyste třeba chtěl napsat nějaký článek o Monu, myslím, že by to čtenáři ocenili (aspoň ti, co se na to nedívají stylem ".NET je od Microsoftu, takže vše co se na .NET byť jen podívalo je špatné.").
Sám musím říci, že celý .NET se mi velmi líbí a těším se, až Mono trochu rozumně dožene vývoj v microsoftí implementaci.
On .NET neni tak spatna vec. Mel bych, pravda, ponekud vyhrady k tom, ze treba v DB oblasti je to hodne MS-SQL centric, ale budiz.
A C# se mi dost libi; holt Microsoft tu Javu ukradl dobre a navic se v designu i poucil z jejich chyb.
Jinak dotaz a autora: Jak je to s vykonem? Co jsem slysel, tak je C#/Linux o dost pomalejsi, nez C#/Windows.
@Michal:
Mono je ve většině případů pomalejší oproti .Netu 2.0, hlavně díky kvůli některým stále chybějícím runtime optimalizacím. Také se dohání funkcionalita, což je někdy na úkor výkonu. Jeden z letošních SoC projektů je právě na profilování zaměřen.
Z mojí zkušenosti můžu říct, že v reálném nasazení není rozdíl tak patrný. Na jednom mém projektu kde se pracuje nad síťovým protokolem se výsledky liší v desetinách milisekund. Nemohu však říci jak je to např. v ASP.NET oblasti, či serializaci.
Alespoň nějaké reálné srovnání i když ne moc komplexní:
http://lists.ximian.com/pipermail/mono-list/2007-April/034873.html
@Karel:
Je-li to produkt s nějakou svobodnou licencí, tak není problém. V opačném případě to ve většině států není moc legální :) Zvlášť není dobré studovat komerční implementaci a zatáhnout takové kusy kódu někam jinam...