Moje spotkania z przyszłością, czyli migracja na Delphi 8 for .NET

Ktos

Jako że uznałem, że platforma .NET Microsoftu jest coraz bliżej, a ja się na tym kompletnie nie znam, a w dodatku zechciałem wziąć udział w konkursie na ten temat postanowiłem niedawno przetestować działanie najnowszej wersji Delphi oznaczonej numerem 8 i stworzonej specjalnie dla tej nowej platformy.

Pierwsza rzecz to było ściągnięcie wersji testowej środowiska. Skorzystałem tutaj z odpowiedniej porady w FAQ (http://4programmers.net/faq.php?id=549). I po ściągnięciu Triala uruchomiłem nieopatrznie instalację, nie posiadając wszystkiego, co wymagane... Okazuje się, że oprócz zwykłego MS .NET Framework wymagany jest także SDK do powyższego (106 MB), Internet Explorer 6 Service Pack (12 MB), MS J# Redistruable Package... Wszystkie linki były w tej wskazówce, ale kto by tam czytał dokładnie :)

W każdym bądź razie po nocy ściągania plików (a nawet dwóch, gdyż SDK ściągnął się w 99%, gdy mój provider przerwał połączenie z netem... ? bez komentarza) w piątek wieczorem uruchomiłem instalację, która przebiegła szybko i bezproblemowo, mogłem wyłączyć asocjację plików *.pas z D8 (i dobrze, gdyż dalej używałem równolegle Delphi 6). Kolejnym krokiem było ściągnięcie klucza rejestracyjnego na moje konto. Później zobaczyłem piękny pulpit nowego IDE.

Owo IDE obecnie mogę pochwalić, zwłaszcza help, który jest teraz znacznie bardziej przejrzysty, edytor kodu jest milszy, nie podoba mi się natomiast nowa paleta narzędzi i sposób projektowania formatek. Ale to już sprawa gustu i przyzwyczajenia. W dodatku po obejrzeniu tego, co będzie oferować Delphi 9 to już mnie chyba żadne IDE w pełni nie zadowoli do zobaczenia tamtego :)

Bardzo dobrze, że przeczytałem już wcześniej artykuł Adama Boducha o migracji na D8 z konferencji BDD 2004 (http://4programmers.net/download.php?id=1586), wiedziałem czego się spodziewać w przygotowaniu moich aplikacji na .NET. Powiem tylko - problemy :/

Pierwszą aplikacją, jaką napisałem była bardzo prosta konsolówka o kodzie składającym się w zasadzie z dwóch poleceń: Writeln() i Readln() :). Po jej skompilowaniu rzuciła mi się w oczy zacznie wolniejsza szybkość działania IDE, nawet na moim, niezbyt wolnym sprzęcie. Na przykłąd przełączanie widoku do debugowania twrało zbyt wolno, podobnie sam program uruchomił się jakby z opóźnieniem - ale mam wrażenie, że to jest wina samego .NET Framework.

Kolejnym moim krokiem była próba sportowania programu PilotMP3 na platformę .NET przy użyciu właśnie Delphi 8 i VCL.NET. Trochę chyba nie zmierzyłem sił na zamiary. Pierwsze trudności jakie napotkałem udało mi się rozwiązać, dzięki właśnie artykułowi z konferencji, gdzie się dowiedziałem, że klonstruktory klas muszą mieć właściwość

override

i sam konstruktor musi w kodzie mieć polecenie inherited

. I z tym inherited męczyłem się krótką chwilkę, zanim nie załapałem, że konstruktor typu: <code class="delphi">constructor Create(FileName: string)

musi mieć w kodzie inherited Create

 zamiast samego inherited, gdyż klasa z której dziedziczy (TObject) ma inny konstruktor. Niestety przy kolejnym module programu, a dokładniej BASS.PAS dotyczącego biblioteki do odtwarzania muzyki BASS.DLL się zalamałem, gdyż większość procedur wymagała dodania klauzuli <code class="delphi">unsafe

i zmian w kodzie. Dlatego BASSa zostawiłem na później i zająłem się czymś prostszym.

Tym prostszym programem miał być Butcher (program do tworzenia ogólnie rzecz biorą plików BAT), który z kolei zawierał wiele razy instrukcję

ShellExecute

. I ona tutaj w D8 ma zupełnie inną budowę ? po pierwsze zrezygnowano z typu PChar()

, przez co nie musiałem się męczyć z rzutowaniem typów, ale ogólnie nie chciała działać ? już nie pamiętam dlaczego, ale zarzuciłem w każdym razie projekt przeróbki tego na .NET.

Moją pierwszą aplikacją, ktorą całkowicie sportowałem na .NET był bot, który teoretycznie symuluje rozmowę z żywym człowiekiem ;). Ktobo (KtosBot) zadziałał jedynie po niewielkich przeróbkach ? właśnie poprawieniu konstruktorów. Klasa TXMLINI odpowiadająca za używanie plików XML jako zastępstwa dla plików INI była druga i przy okazji poprawiłem działanie niektórych jej funkcji (notabene jej nowa wersja wkrótce znajdzie się na 4programmers). I właśnie przy pisaniu tych funkcji zobaczyłem, jak ciekawym rozwiązaniem w edytorze kodu jest możliwość ?zwijania? procedur do postaci tylko nagłówka ? znacznie upraszcza nam to kod tylko do tego, co jest aktualnie potrzebne.

Aktualnie mam jeszcze prawie miesiąc na przetestowanie reszty środowiska i próby przekompilowywania innych projektów. Większość wrażeń będę na bieżąco zapisywał tutaj (poprzez edycję artykułu), oraz będą zapewne umieszczane na moim Joggu (<a href="http://ktos.jogger.pl">http://ktos.jogger.pl</a>). Ale jedno jest pewne ? D8 i nadchodzący D9 to przyszłość ? należy się na nią przygotować ? jeśli macie Delphi 7 polecam włączenie ostrzeżeń pokazujących jak to będzie wyglądało przy kompilacji dla .NET. Gdyż mam wrażenie, że przed tą technologią nie uciekniemy ? trzeba się będzie do niej przystosować...

13 komentarzy

Dla mnie .Net jest za wolny. Nie ma to jak Win32:D

A ja tam nie przechodzę na .NET-a... Używam Turbo Delphi '06 Explorer na Win32, i wszystko gra... A tak w ogóle to wszystko napisane w .Necie wymaga .NET Framework u użytkownika, co ogranicza "zasięg" takich programów... :-D

Mi po skompilowaniu pragramu (a wlasciwie pustej formy), plik wynikowy mial tylko 22 KB!!!
Jednak aby to mogl ktos odpalic, to z tego co wiem musi miec zainstalowanego MS .NET Framework

Totalna kicha ten .NET, w artykułach Pana Admina (Buduch'a) jest to bardzo fajnie przedstawiane krok po kroku, tyle że sam kod Pascal-Delphi i cała reszta to chyba już w zapomnienie idzie, zostaną tylko na rynku M$ i Borland i kto będzie wtedy pisał programy, mam tego pięknego, fantastycznego, bajeranckiego, słodziutkiego D8, i raczej sobie go kupiłem dlatego że zawierał w sobie również pełną wersję D7, Ci idioci z M$ nie mają już co wymyślać i poprawek nawet nie potrafią zrobić bo to już stary system WINDA32, pewnie gdy wypuszczą oficjalnie .NET, to wtedy powiedzą że te nowe błędy to są nowe, i od nowa będą poprawki pisać, ciekawe jaki następny WINDOWS chyba WINDOWS-OUTERSPACE, coraz to większe kichy puszczają a ludzie to biorą (dobrze jest być monopolistą na rynku), dziwię się Panu Boduch'owi że to coś prowadzi również i promuje, może rzeczywiście tak krucho z pracą na rynku, nic bez komentarza...

To delphi8 to straszny shitt!! Brak typow wskaznikowych!! Potezny EXE na wyjsciu!! Help napisany przez kogos kto wiedzial o co w .NET'cie chodzi, natomiast uczyc sie z niego bez dostepu do sieci to ... MASTER SHITT!!

Przeraża mnie perspektywa, że kiedyś będe musiał się uczyć tych nowych wynalazków. Są też ciemne strony szybko rozwijającej się technologii. Osobiście używam Delphi 5 (ponieważ mam edycję Enterprise i jest dużo komponętów :-)

co do zerwanego połączenia na 99% :)))
jest takie coś jak FlashGet i zrywanie połączeń niestraszne :)

tak wogóle ten Delhi 8 taki troche a'la VisualBasic. Sam odświeżony interfejs nawet mi się podoba. Za to nie podoba mi się wielkość programu w którym jest tylko pusta forma: 1.2 MB :(

Ehh..... mowisz przyszlosc :( a tak nie chce mi sie uczyc tego wszystkiego i nie jako "przestawiac" na te innowacje, nie ma to jak stare,dobre,szybkie jak wiatr d6 personal :D - d7 tez good, ale zanim przesiade sie na d8 to potrwa........ jezeli wogole :(

Przecież jest delphi 7 personal <co?>

mi jest smutno z powodu braku personali (?) delphi powyzej 6

Nie mam nic przeciwko M$ i wszelkim innowacjom, jest tylko ten problem, że mi po prostu NIE CHCE się uczyć od podstaw :)

Nie martwcie się, przyjdzie Longhorn i .Net odejdzie w zapomnienie :D

Polecam artykuł http://joelonsoftware.com/articles/APIWar.html

Przyszłość w niebieskich barwach pakietów M$ :/