Programowanie na ostro

Pomożemy Wam zrobić te najtrudniejsze, pierwsze kroki. Wystarczy tylko przeanalizować praktyczne zastosowanie C# przy budowie programu dla platformy.NET.

Proponuję napisanie aplikacji bazodanowej, aby poruszyć jak największy krąg zagadnień związanych nie tylko z samym językiem C#, ale również z platformą.NET. Przy okazji rozwiążemy problemy z ogromem danych, które przechowujemy na płytach CD.

Nasz program ma za zadanie gromadzić listę płyt CD oraz skatalogować ich zawartość, tak abyśmy w razie potrzeby potrafili szybko znaleźć konkretny plik na jednym z krążków bez konieczności przeglądania okładek wszystkich płyt. Takie narzędzie musi mieć dwie cechy. Pierwszą jest łatwość tworzenia samej bazy danych; drugą – szybkie odnajdywanie w bazie szukanej płyty z konkretnym archiwum, programem czy też utworem (jeżeli mamy do czynienia z płytą audio).

Na początek analiza

Prześledźmy proces dodawania do bazy danych informacji o płytach CD. Oczywiście rozwiązań takiego problemu jest zawsze sporo, ale interesuje nas tylko najbardziej optymalna opcja: użytkownik aplikacji powinien poświęcić jak najmniej czasu na jej napisanie. Podzielmy zatem proces obsługi programu na czynności podejmowane w sytuacji, gdy mamy do czynienia z płytą zawierającą pliki:

1.

Informujemy program, że chcemy dodać do bazy nową płytę CD. Aplikacja nadaje jej numer, a użytkownik nazwę.

2.

Wkładamy krążek do napędu CD-ROM.

3.

Wybieramy nośnik do indeksowania danych.

4.

Program indeksuje zawartość płyty, a następnie powiadamia nas o zakończeniu tej czynności.

5.

Dodajemy własny opis zawartości CD.

Ostatni punkt jest opcjonalny, ale własny opis ułatwi nam zapewne późniejsze przeglądanie płyt. W punkcie pierwszym nazwę można oczywiście pobierać automatycznie z CD-ROM-u – wystarczy wykorzystać jego etykietę. Często jednak zdarza się tak, że podczas wypalania archiwum (np. za pomocą programu Nero) zapominamy o wpisaniu etykiety, przez co aplikacja do nagrywania sama nadaje powtarzającą się za każdym razem nazwę (np. ISO1). Będzie to później źródłem kłopotów podczas wpisywania informacji do bazy. Dlatego też umieścimy w niej własny opis krążka.

Z punktu widzenia programisty najwięcej trudności sprawia punkt czwarty. Indeksacja polega na skanowaniu zawartości całego CD, czyli pobraniu zeń wszystkich nazw plików i katalogów. Jest to o tyle trudne, że trzeba “wejść” w głąb każdego katalogu i podkatalogu i niczego “po drodze” nie pominąć. Jak się później okaże, sposób na rozwiązanie tego problemu jest bardzo sprytny.

Gdy będziemy dysponowali już bazą, powinniśmy udostępnić mechanizmy jej przeszukiwania. Użytkownik najczęściej nie wie, jakiego dokładnie pliku szuka. Zapewne orientacyjnie może zależeć mu na odnalezieniu zbioru MP3 lub “kopii programu CorelDRAW spakowanej w pliku RAR”. Zatem szukanie powinno polegać na wpisaniu fragmentu tekstu, który wystarczy programowi do wskazania płyt CD zawierających pliki spełniające podane kryteria. Podzielimy tę czynność na kroki:

1.

Użytkownik podaje szukaną frazę.

2.

Program pokazuje listę znalezionych plików wraz z numerem oraz tytułem CD.

3.

Użytkownik przegląda zawartość każdego z wymienionych w punkcie 2. krążków.

To tylko jeden ze sposobów znalezienia właściwej płyty. Można także zdecydować się na zwyczajne przeglądanie drzewa katalogów i plików danego CD (tak jakby krążek został włożona do napędu). Taka forma identyfikacji danych jest najbardziej opisowa i łatwa w wizualizacji.

Ponieważ nie zawsze istnieje możliwość uruchomienia komputera, to nie zaszkodzi dodać do aplikacji funkcji drukowania zawartości płyty na papierze. Jak widać, czasami przydatne jest również zrezygnowanie z… programu do wyszukiwania.

Nasz warsztat

Podczas doboru narzędzi, które pozwolą napisać program spełniający nasze założenia, mamy spore pole manewru. W programowaniu najważniejsze są czas i pieniądze. Zatem najlepsze narzędzia to te, które umożliwią przygotowanie programu spełniającego wymagania użytkowników w najkrótszym czasie przy zachowaniu rozsądnej ceny. Do napisania aplikacji uruchamianej w środowisku.NET Framework 1.1 potrzebne nam będą:

1.

Kompilator C#.

2.

Edytor formularzy do edycji WinForms.

3.

Baza danych (niekoniecznie o dużej wydajności; musi za to wykazywać się stabilnością).

4.

Program do utworzenia pakietu instalacyjnego aplikacji.

Możemy się zdecydować na zupełnie darmowe narzędzia, tj. pakiet Mono do kompilacji i edycji formularzy, bazę danych MySQL oraz samodzielne napisanie instalatora. W ten sposób ominiemy zupełnie produkty firmy Microsoft. Takie podejście niekoniecznie musi jednak doprowadzić nas do szybkiego przygotowania aplikacji. Ponadto to rozwiązanie jest mało atrakcyjne dla osób, które już wcześniej pracowały z narzędziami firmy z Redmond: nabycie zupełnie nowych umiejętności wymaga czasu.

Mała inwestycja w Visual C# Standard Edition (300-400 zł) pozwoli nam przyspieszyć proces programowania. Bazę danych zainstalujemy z darmowego pakietu MSDE (Microsoft Server Desktop Engine). Pisanie własnego instalatora często nie ma sensu, gdyż jest bardzo kłopotliwe i czasochłonne. Lepiej użyć Paquet Buildera, który jest darmowy w wypadku użycia go na własne potrzeby. A gdybyśmy chcieli sprzedawać napisany program? Paquet Builder nie jest drogi – kosztuje 40 euro. Bardzo łatwo przygotować za jego pomocą wielojęzyczny – także polski – instalator. Mamy już założenia i narzędzia. Pora przystąpić do dzieła.

Więcej:bezcatnews