StartCzęść NR.1 Visual C# jest to obiektowo zorientowany język programowania, który na pewno jest też najpotężniejszym arsenałem dostępnym pod flagą technologiczną Microsoft.
C# odgrywa ważną rolę w platformie .NET ,gdyż język ten, częściowo dla niej powstał.
Jeśli znasz język, taki jak Java znajdziesz tutaj duże podobieństwa w składni, które nawet nie jest przypadkowe.
W czasach, gdy Visual Studio 6.0 i platforma .NET były w planach była Java . Zalety Javy są takie same jak dzisiaj. Jeden język, który działa na wszystkich platformach. Microsoft miał własną odmianę Javy, która nazywała się J++ pod Visual Studio. Ludzie z Microsoftu pracowali i doskonalili narzędzia dla tego języka do pisania aplikacji Windows.
W październiku 1997 roku firma Sun zaskarżyła produkt J++ jako łamanie prawa autorskiego. Teraz gdy nie było J++ trzeba było jakoś zapełnić tą lukę.
Ludzie z Microsoftu poparzyli na Javę na C++ i wpadli na pomysł, jak powinien wyglądać język programowania. Zatrudnili twórcę „Turbo Pascala” Anders Hejlsberg-a za kilka milionów dolarów i wraz z innymi gwiazdami programowania stworzyli C#.
Powstanie C# wstrząsnęło światem, gdyż był to pierwszy realny konkurent dla Javy.
Język C# istnieje już od wielu lat i każdy jego rozwój jest staranie zaplanowany. Obecnie jest on już wersji 4 i nic nie zapowiada jego końca. W wersji piątej mają pojawić się nowe funkcje ułatwiające pisanie aplikacji asynchronicznych i wielowątkowych. Jednym słowem jego rozwój jest dopasowywany do rzeczywistych i obecnych potrzeb.
Kurs ten powstał w celu wprowadzenia czytelnika w fundamenty języka C#. Będzie mowa w nim o interface ,klasach abstrakcyjnych, jak i o mechanice dziedziczenia. Oczywiście napisze też tutaj o bardziej podstawowy rzeczach jak pętle i warunki if.
Jeśli chodzi o mnie, to postanowiłem przypomnieć sobie od zera wszystkie podstawowe aspekty tego języka ,by potem znów wrócić do zaawansowanych rzeczy.
Programowanie w Visual Studio 2010
Dobrze, aby pisać jakieś programy trzeba mieć jakieś narzędzie do ich pisania. O notatniku nie ma tutaj mowy, ponieważ jest potrzebny kompilator. Kompilator przetwarza nasz kod w C# na kod asemblerowy IL. W sumie program, który napiszemy wykonuje się z kodu IL. Oczywiście nikt normalny nie pisałby programu w IL, jak i w innym języku niższego rzędu, gdy ma się do dyspozycji C# , który jest dużo łatwiejszy . No, chyba że programujesz pralki ,a w C# człowiek tego nie zrobi (na razie).
Visual Studio obecnie w wersji 2010 jest bogatym narzędziem do pisania programów nie tylko w C#. W Visual Studio 2010 można pisać programy w językach jak C++,Visual Basic i F# oraz wielu innych po dodaniu jakichś wtyczek (IronPython, IronRuby). Platforma .NET nie ogranicza się do C# . Lista wszystkich języków w platformie .NET jest dosyć spora ,ale przecież nie ma potrzeby się uczyć ich wszystkich (bezużyteczne).
Za pomocą C# i Visual Studio 2010 można napisać:
- Aplikacje konsolowe – Wiem wiem ,ale przydatne do pisanie prostych aplikacji gdzie kolorowy interface nas nie interesuje.
- Aplikacje Windows Form – Aplikacje okienkowe, które powoli odchodzą w niepamięć z powodu starej mechaniki i grafiki rodem z Windows 3.11. Jednak wciąż są stosowane.
- Aplikacje WPF – Aplikacje okienkowe z lepszą grafiką (wektorową) i mechaniką. Początkującego mogą wprowadzić w małe zamieszanie z powodu kodu XAML, który zarządza wyglądem aplikacji.
- Aplikacje internetowe ASP.NET – Pod samą nazwą ASP.NET w sumie kryją się aż 3 sposoby pisania technologii internetowych. Jeśli kiedyś kręcił cię PHP ,a teraz uczysz się C# to wiedz ,że możesz w C# zrobić coś podobnego ,albo i nawet więcej. Ja tak właśnie zainteresowałem się tą technologią.
- Aplikacje internetowe…bogate aplikacje internetowe (RIA) – Silverlight, który nie powinien być porównywany do Flasha. Microsoft jest świadomy HTML5 i Silverlight wyraźnie idzie w bogate aplikacje biznesowe, czyli tam, gdzie HTML5 nie sięga. Po tym, co zobaczyłem w SL5 myślę ,że Microsoft ma jeszcze poważniejsze plany co do niego. Jest jedną z najszybciej rozwijających się technologii ,średnio co rok wychodzi nowa wersja. Podobny do WPF.
- Gry na XNA – W C# też można pisać gry i na pewno jest to dużo prostsze niż w innych językach ,platformach. Gra napisana na XNA może działać na telefonie Windows Phone 7, Windows oraz na XBOX. Poważny interes ,ale jeśli jesteś ambitny może, to jest właśnie dla ciebie.
- Aplikacje na telefon Windows Phone 7 – W C# można pisać aplikacje na ten telefon. W zależności od potrzeby może być to gra XNA , bądź trochę zmodyfikowany Silverlight na urządzenia mobilne.
- Usługa sieciowa WCF, Chmura , Office , SharePoint
Jak widać opcji jest wiele (i nawet więcej) jak na jeden język programowanie i wiedz, że nie będziesz się nudził. Każdy twój wysiłek włożony w naukę tego języka będzie owocny po 1000 kroć. Zwłaszcza że język C# na technologiach wymienionych powyżej zachowuje się tak samo.
Skąd wziąć Visual Studio 2010
Microsoft prowadzi program MSDN, który jest dostępny na każdej informatycznej uczelni ,a już niedługo może nawet w szkołach licealnych. Ja na przykład musiałem tylko podpisać parę papierów potwierdzających ,że jestem studentem tej uczelni i miałem już konto MSDN. Na stronie MSDN można pobrać właśnie pełne wersje Visual Studio, jak i też systemy operacyjne Windows.
Zabawna anegdota na keynote w dniach lubelskich informatyki . Specjalny wysłannik Microsoftu powiedział ,że pobieranie oprogramowania .NET znacznie przewyższa pobrania systemów operacyjnych.
Oczywiście licencja MSDN ma jedno ograniczenie. Programy napisane za pomocą tej licencji nie mogą być komercyjne.
A co jeśli MSDN nie ma ,albo może jesteś ambitnym gimnazjalistą , który już wie, czego chce. Możesz wciąż pobrać wersje Express Visual Studio 2010 , a do technologii internetowych Visual Web Developer 2010.
Nie mają te programy dużo bajerów ,ale większości rzeczy człowiek i tak nie używa.
Instalacja Visual Studio 2010 i wszystkich dodatkowych framework-ów może potrwać nawet godzinne. Ale i tak jest dużo lepiej niż kiedyś. Teraz gdy jest NET 4.0 wszystko wymaga jednej instalacji. Wcześniej przy Visual Studio 2008 trzeba było zainstalować parę servis paków, by z NET 2.0 przejść na NET 3.0 ,a potem z niego na .NET 3.5. Nie było to dość ciekawe doświadczenie.
Pierwszy program C#
Każdy kurs powinien się zacząć od napisania prostego programu. Pierwsze uruchomienie Visual Studio może potrwać trochę dłużej, ponieważ Visual Studio będzie dostosowywał swoje ustawienia.
Przy pierwszym uruchomieniu trzeba wybrać styl środowiska, w którym chcemy pracować. Szczerze mówiąc, moim zdaniem nie ma to takiego kolosalnego znaczenia. Wybierz „Visual C# Development Settings” z listy i poczekaj ,aż okno Visual Studio się pojawi.
Wygląd twojego Visual Studio na pewno będzie inny. Ja swojego trochę przemalowałem, za pomocą pewnych dodatków wtyczek, o czym można przeczytać tutaj.
Układ przycisków jest jednak taki sam. Kliknij „New Project” ,a wyświetli się okno bogatych możliwości działania.
Tutaj trzeba się pilnować, byśmy wybierali projekty z zakładki C# nie VB. Z drzewiastego menu wybierz kategorie „Windows” i z drugiego menu po prawej wybierz „Console Application”.
Visual Studio automatycznie tworzy folder z nazwą projektu więc po wciśnięciu “OK” zostanie utworzony projekt w ścieżce “D:\Projekty\Blog\ConsoleApplication1\”. Nazwę projektu możesz oczywiście zmienić, to akurat jest prawie bez znaczenia.
Nasze okno startowe wygląda mniej więcej tak, jak na obrazku powyżej.
W oknie „Solution Explorer” pokazuje jakie pliki są w naszym projekcie. Visual Studio stworzył następujące pliki do projektu:
- Solucja „ConsoleApplication1 ” - Na samej górze;jeden na aplikacje. Jeśli otworzy folder z projektem zobaczysz plik “ConsoleApplication1.sln”, który jest plikiem referującym się do tego projektu. Jednak każda solucja może zawiera więcej takich plików projektowych. Przykładowo w aplikacji Silverlight jest jedna solucja z dwoma projektami.W jednym jest aplikacja Silverlight ,a w drugim projekcie jest przykładowa aplikacja web, na której Silverlight jest hostowany (jak Flash). Do aplikacji konsolowej mamy tylko jeden projekt więc nie ma nawet podziału na solucie.
- Properties– W tym folderze zawarty jest plik “AssemblyInfo.cs. Jest to specjalny plik, w którym są zawarte takie atrybuty jak autor i data utworzenia programu. Nie miałem z nim jak do tej pory do czynienia ,ale opis atrybutów wygląda tak:
- AssemblyTitle = tytuł biblioteki
- AssemblyDescription = opis
- AssemblyConfiguration = opis ustawień biblioteki ,ale zwykle pusty
- AssemblyCompany = nazwa firmy, która wyprodukowała daną bibliotekę.
- AssemblyProduct = nazwa produktu
- AssemblyCopyright = prawa autorskie
- AssemblyTrademark = prawa autorskie ponownie
- AssemblyCulture = dla jakiej kultury
- References – Ten folder zawiera w sobie biblioteki, z których aplikacja korzysta. Kiedy kod jest kompilowany jest on przetwarzany do pliku “*.dll” z unikatową nazwą. Programiści używają tych bibliotek plików (*.dll) by udostępniać klasy,metody innym programistom, którzy chcą użyć ich kodu. Jeśli chcemy skorzystać przykładowo z klasy X i wiemy ,że jest ona dostępna w bibliotece Y to dodajemy jej referencje do naszego projektu ,a potem jeszcze musimy dodać przestrzeń nazw, w której ta klasa X się znajduje.
- Program.cs - To jest plik źródłowy, w którym obecnie piszemy aplikacje C#. W aplikacja konsolowej jest to główny plik z gotowym kodem stworzonym przez Visual Studio o czym za chwile.
Pierwszy program - Intellisense w Visual Studio
W pliku Program.cs jest zdefiniowana klasa “Program”, która zawiera w sobie metodę main. Ta metoda jest wyjątkowa stworzona specjalnie do aplikacji konsolowej. Możesz teraz nawet uruchomić aplikacje za pomocą skrótu klawiszowego F5 bądź F5 z ctrl-em by nie śledzić jego działania albo z menu wybrać “Debug/Start Debugging” albo “Debug/StartWithoutDebugging”.
Jak sam widzisz aplikacja na razie nie robi nic poza wyświetleniem okna ,czas to zmienić.
Kliknij na plik “Program.cs” i wewnątrz niego między nawiasami w metodzie main {} postaw enter. Zacznij pisać słowo Console po to,by pierwszy raz zobaczyć pomocnik Visual Studio, który nazywa się fachowo “IntelliSense”.
Wyświetla ona pełen opis tej klasy, jak i inne rzeczy, które zaczynają się od słowa “Console”. Po napisaniu słowa “Console” i po dodaniu kropki zobaczysz wszystkie metody i właściwości (coś jak zmienne), które ta klasa oferuje.
Przykładowo widzisz tutaj na screenie opis właściwości “BackgroundColor” i jeśli jesteś dobry z angielskiego to już wiesz ,że tą właściwość można pobrać, bądź zmienić i ustawia ona kolor tła okna w konsoli. Powiedzmy ,że chcemy zmienić kolor konsoli na ciemnoniebieski. Wybierz z menu “BackgroundColor” lub go napisz. Potem dodaj spacje i znak równa się, by zobaczyć kolejne menu pomocnicze.
Jak widzisz Visual Studio domyśla się ,że chcemy zmienić kolor tła więc wyświetla nam enumatora (powiedzmy wyliczenie z danej kolekcji w tym wypadku kolorów) “ConsoleColor” , który zawiera w sobie dostępne kolory tła. Wybieramy tą właściwość z menu i stawiając kropkę po raz kolejny wyświetli się nam kolejne meni z dostępnymi kolorami w kolekcji ConsoleColor. Wybieramy oczywiście “DarkBlue”.
Przydałoby się , aby nasza konsola coś do nas napisała i tak będzie to symboliczny “Hello World”.
Hello World
Analogicznie do poprzedniego przykładu napisz "Console.WriteLine()” i zobacz jak Visual Studio sam cię nakierowuje tym razem na tą metodę. Jak widzisz ma ona zupełnie inną ikonkę niż właściwość “BackgroundColor”. Kolejne ułatwienie dla programistów aby wiedzieć, co jest czym.
Więcej o ikonach w Intellisense można przeczytać w tym wpisie.
Metoda “WriteLine” napisze nam w konsoli w jednej linii dane słowo. Zauważ jednak ,że jest to metoda przeciążona mówiąc inaczej ma kilka (18) wersji i z każdej pobiera/wymaga czegoś innego . W Visual Studio używając klawisz strzałkowy możemy zobaczyć każdą wersje tej metody i czego ona potrzebuje. My skorzystamy z wersji 11, która pobiera napis (string) i go wyświetla.
Ostatecznie kod aplikacji wygląda następująco. Do metody “Writeline” w nawiasach podaliśmy zmienną string, która zostanie wyświetlona.
Zapomniałem dodać ,że po kodzie, który kończy operacje trzeba do kodu dodać znak “;”.
Console.BackgroundColor = ConsoleColor.DarkBlue;
Console.WriteLine("Witaj w C#");
Uruchom aplikacje bez debugowania “ctrl-F5” ,a zobaczysz następujący rezultat. W razie problemów przesuń artykuł niżej.
Zauważ ,że gdy uruchomisz aplikacje z debugowaniem ,zobaczysz tylko na chwile napis stworzony przez aplikacje, po czym aplikacja się zamknie. Tak raczej nie może być , musimy zatrzymać aplikacje konsolową byśmy mogli zobaczyć rezultat.
Zatrzymanie aplikacji i dodawanie komentarzy
Abyśmy mogli obejrzeć rezultat naszej aplikacji najlepiej np. spróbować odczytać klawisz użytkownika. W ten sposób aplikacja nie zostanie zamknięta, dopóki użytkownik nie wciśnie klawisza. Zrobimy to poprzez dodanie następującego kodu.
Console.ReadKey();
//Program czeka aż użytkownik wciśnie klawisz
Ten zielony podkreślony tekst to właśnie komentarz. Nie jest odczytywany przez kompilator i służy wyłącznie pomocą programistom.
Problem : błąd : program nie chce się uruchomić
Zwykle pierwsze pisanie programów wiąże się z drobnymi błędami np. zapominaniem znaku “;” po napisaniu metody. Na szczęście Visual Studio zaznacza nasze błędy i dokładnie je opisuje. Gdy aplikacja nie mogła się skompilować wyskoczy nam okno, czy chcemy uruchomić ostatnią dobrą kompilacje klikamy na “no”. Pod programem Visual Studio wyświetli nam się lista błędów . Klikając dwa razy na dany błąd możemy od razu przejść do miejsca w kodzie, gdzie on występuje.
Program, który napisaliśmy jest dostępny w formacie exe w katalogu “bin/Debug/ConsoleApplication.exe”. Możemy go uruchomić, kiedy chcemy już poza Visual Studio.
Co dalej. W następnym wpisie stworzymy prostą aplikacje WPF gdzie pojawią się zmienne oraz operacje arytmetyczne.