Blog (15)
Komentarze (588)
Recenzje (0)

Budowanie aplikacji w C# i .NET część I

@patryk9200Budowanie aplikacji w C# i .NET część I08.04.2012 01:26

Zgodnie z obietnicą daną tfl przedstawię, w sposób możliwie najprostszy jak stworzyć przykładową aplikację Hosts Editor którą to pokazałem i udostępniłem w moim wcześniejszym wpisie. Wpis jest dla osób zainteresowanych i niezaznajomionych z Visual Studio oraz językiem C# i platformą .NET. Z racji zakresu materiału który tu przedstawię wpis zostanie podzielony na kilka części.

Podstawy

Aby móc pokazać Wam jak stworzyć taką lub podobną aplikację przedstawię kilka danych i informacji niezbędnych do zbudowania takiego programu. Cały program został napisany w języku C# który ma bardzo wiele wspólnego z językiem Java. Program wykorzystuje platformę .NET Framework która jest środowiskiem uruchomieniowym oraz dostarcza liczne biblioteki programistyczne.

Trochę o języku C#

Język C# jest językiem obiektowym kompilowanym do kodu pośredniego (bajtowego) CIL wykonywanym w środowisku uruchomieniowym .NET Framework, Mono lub dotGNU. Uruchomienie takiego programu bez środowiska uruchomieniowego podobnie jak domyślnie w javie jest niemożliwe.

Język ten ma sporo cech wspólnych z językami Object Pascal, Delphi, C++ i Java. Po szczegóły na jego temat zapraszam na stronę Wikipedii.

Platforma .NET Framework

Jest to - za wikipedią - platforma programistyczna opracowana przez Microsoft, obejmująca środowisko uruchomieniowe (Common Language Runtime – CLR ) oraz biblioteki klas dostarczające standardowej funkcjonalności dla aplikacji.

Środowisko programistyczne

Do pisania aplikacji w C# wykorzystuję środowisko programistyczne Visual Studio Microsoftu. Są również dostępne otwarte środowiska dla C# jak np. MonoDevelop czy SharpDevelop.

Z racji używania systemu Windows 8 wykorzystuję Visual Studio w wersji 11 które wspiera pisanie aplikacji w interfejsie Metro UI. Jeśli będziecie zainteresowanie, to pokażę jak takie aplikacje tworzyć, co więcej, można je budować w HTML5 oraz JavaScript!. W nowych okienkach specjalnie dla aplikacji metro jest stworzona biblioteka WinRT pozwalająca na interakcję z systemem operacyjnym, danymi oraz innymi aplikacjami etc. Mamy możliwość korzystania z niej m.in. w JS. WinRT ciekawie jest opisany na tym blogu.

Wracając do tematu- Visual Studio 11 poza wsparciem dla nowych okienek ma też nowy interfejs nawiązujący do nowego Metro. Jednak jego budowa poza kolorystyką, ikonami i niektórymi elementami nie odbiega od wersji Visual Studio 10. Zarówno wersja 10 jak i 11 jest dostępna do pobrania z dobrychprogramów w wersji trial pod tym linkiem. Istnieje też Visual C# Express które jest całkowicie darmowe i prawie identyczne aczkolwiek nieznacznie okrojone w stosunku do wersji Ultimate, dostępne tutaj. Dla osób zainteresowanych wolną implementacją środowiska dla C# zapraszam do pobrania SharpDevelop jednak jego budowa jest inna niż Visual Studio dla tego pokazane tu metody będą najprawdopodobniej niezgodne z tym środowiskiem.

Dla wersji 10 jest dostępne częściowe tłumaczenie na język polski. Ja z racji przyzwyczajenia wolę wersję angielską.

WPF - co to jest i do czego służy

W celu budowy GUI wykorzystamy WPF czyli Windows Presentation Foundation. WPF jest to nazwa silnika graficznego oraz API dostępnego od wersji 3 .NET Framework wchodzącego w skład WinFX (API oparte na platformie .NET dostępne od Windows Vista).

Za wikipedią -WPF integruje interfejs użytkownika, grafikę 2D i 3D, multimedia, dokumenty (nazwa kodowa Metro) oraz generowanie/rozpoznawanie mowy (do aplikacji sterowanych głosem). W aplikacji udostępnionej w moim poprzednim wpisie wykorzystałem do jej budowy starszą technologię tj. Windows Forms. W tym wpisie pokażę Wam jak stworzyć aplikacje w możliwie najnowszej technologii.

Tworzenie projektu aplikacji w Visual Studio

Jeśli posiadasz już zainstalowane środowisko programistyczne, to po jego uruchomieniu przejdź do File>New>Project.

W nowo otwartym oknie mamy listę dostępnych schematów. Jest to całkiem spora lista zawierająca schematy od prostych konsolowych programów po biblioteki klas, usługi, aplikacje okienkowe, strony www, wtyczki office, silverlight i wiele innych.

Na nasze potrzeby wybieramy Templates>Visual C#>Windows>WPF Application.

W pole name wpisujemy nazwę aplikacji np. Edytor hostów a na samej górze okna wybieramy wersję platformy .NET np. 3.5 (która ma wymagania sprzętowe podobne jak Java w przeciwieństwie do wersji 4, o które zarzuty stawiał RaveStar). Zatwierdzamy projekt klikając OK. Po chwili tworzenia projektu przez Visual Studio ukaże nam się widok projektu z jednym okienkiem aplikacji.

Budowa Visual Studio - czyli co gdzie, kiedy

Po otworzeniu projektu pojawi nam się okno prezentujące się mniej więcej w ten sposób:

W zależności od ustawień Visual Studio niektóre panele otwierają się domyślnie lub też nie. W moim wypadku jest jak na screenie wyżej. W cetrum aplikacji mamy puste okno naszego programu. Po lewej jak i prawej stronie okna mamy zakładki np. document outline, data sources oraz toolbox, proporties, solution explorer, team explorer (tylko w wersji ultimate) i class view.

Jeśli klikniemy w którąkolwiek z zakładek to rozwiną się one w sposób widoczny na zrzucie, tu proporties oraz toolbox. Pinezka na otwartych panelach pozwala na ich przypięcie lub sprawienie aby chowały się automatycznie.

Na dole pomiędzy panelami mamy okienko z kodem XAML. Jest to kod znaczników bazujący na XML dla tego, każdy kto zna XML bardzo szybko się w nim zorientuje, podobnie osoby znające XHTML ew. HTML w sposób w miarę szybki powinny go pojąć. Kod ten pozwala budować interfejs użytkownika w sposób zbliżony do HTML z tym, że nie ma tu czegoś takiego jak CSS i JS. Każdą kontrolkę w .NET możemy za jego pomocą opisać. Jak to działa oraz jakie ma możliwości opiszę w kolejnej części serii.

Na samej górze programu mamy standardowo menu.

File pozwala dodawać projekt, tworzyć nowe, zapisywać, drukować itp. W Edit znajdziemy m.in. opcje wyszukiwanie, kopiowania, usuwania, wklejania itp. Kolejne elementy menu już są zapewne Wam mniej znane, lecz my na potrzeby tej serii wpisów użyjemy tylko kilka z nich, opiszę je przy okazji kolejnych wpisów.

Na belce menu jest opcja Start a obok niej lista z opcjami do wyboru: Debug oraz Relase.

Pierwsza z nich buduje i uruchamia aplikację w trybie odpluskwiania. Jest to tryb podczas którego można przetestować aplikację a Visual Studio automatycznie wykrywa większość błędów i zaznacza miejsca w kodzie gdzie one wystąpiły. W trybie Relase aplikacja jest kompilowana bez odpluskwiacza, w tym trybie buduje się aplikację końcową, przetestowaną i gotową do upublicznienia.

W tym punkcie omówię za co odpowiedzialne są poszczególne panele

Toolbox

Panel ten zawiera listę kontrolek które używamy do budowy programu. Kontrolki możemy dodawać poprzez chwycenie wybranej z listy i upuszczenie w wybranym miejscu w oknie programu.

Document outline

Zawiera listę kontrolek w naszym oknie. Pozwala na ich ukrywanie (zrobienie niewidocznymi). Pozwala również zmieniać ich położenie w hierarchii kontrolek oraz usuwać, edytować, wklejać, zmieniać styl itp.

Data sources

Ten panel zawiera źródła danych w naszej aplikacji np. bazy danych.

Solution Explorer

Zawiera listę plików oraz katalogów w naszym projekcie. Pozwala na dodawanie nowych elementów, wybieramy w tym miejscu co chcemy edytować, usuwać, publikować, dodawać referencje, rozwiązania i wiele, wiele więcej.

Team explorer (dostępny w wersji Ultimate)

Jest to panel który wyświetla nam nasz „team” czyli zespół osób które równocześnie z nami pracują nad danym programem.

Class view

Widok klasy pokazuje nam budowę klasy, jej funkcje, typy etc.

Proporties

Z tego panelu będziemy więcej korzystać, w zależności od zaznaczonego elementu czy obecnie edytowanego pliku pokazuje nam ustawienia dla niego. Przykładowo w tym miejscu możemy zmienić tytuł okna, jego kolorystykę, zachowanie, rozmiar, położenie etc.

Zakończenie

W tym miejscu zakończę pierwszą część serii, w kolejnej opiszę szczegółowo wybrane kontrolki oraz jak je programować, stworzymy GUI dla naszej aplikacji. Mam nadzieję, że wpis się spodoba, jeśli zauważycie jakiekolwiek błędy lub chcielibyście aby którąś kwestię rozwinąć piszcie w komentarzach.

P.S

Seria ta nie ma na celu wykazać wyższości C# i .NET nad innymi technologiami. Celem wpisu jest zgodnie z obietnicą daną TFL przybliżenie całej platformy oraz tego jak aplikacja przedstawiona w jednym z moich wpisów została zbudowana.

Bardzo proszę o niewszczynanie wojny na temat sensowności wykorzystania C# i .NET, nie o to tu chodzi. Jeśli uważasz, że można zrobić to lepiej w innej technologii to opublikuj własny wpis w którym przedstawisz swoją metodę. Miło będzie jeśli przedstawisz również sensowne argumenty za i przeciw.

Chciałbym na zakończenie również zwrócić uwagę na zachowanie RaveStar który jak to określił "Wciąż nie widzę kodu. Czyżby Pan Ctrl+C Ctr+V był autorem? ..." taki komentarz który insynuuje jako bym skopiował całą aplikację jest moim zdaniem niestosowny.

Zwrot "Dlaczego .NETowcy robią z kodu tajemnicę skoro i tak wiadomo, że poza 2+2 tam nic nie ma?" również jest irracjonalny. Nikt z niczego tajemnicy nie robi, a wiele aplikacji w .NET np. na codeplex jest otwarta. Nie każdy publikuje swoją pracę, w końcy trzeba żyć z czegoś. Aplikacja jest całkowicie mojego autorstwa, nie ma tu ani jednej linijki "copy-paste". Z powodu braku czasu, ilość czasu potrzebą na opisanie wszystkiego oraz to, że postanowiłem rozwinąć wpis w większą serię przybliżającą metody użyte do budowy aplikacji nie byłem w stanie wcześniej upublicznić kodu. Pojawi się on z kolejnymi wpisami. Proszę aby RaveStar jeśli może zachował złośliwe komentarze dla siebie.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.