1. Wprowadzenie
Plik PDF tego dokumentu jest dostępny |TUTAJ|.
Przykłady z tego dokumentu są dostępne |TUTAJ|.
C# jest językiem stosunkowo nowym. Od 2000 roku był dostępny w kolejnych wersjach beta, a oficjalnie pojawił się w lutym 2002 roku wraz z platformą .NET 1.0 firmy Microsoft, z którą jest powiązany. Język C# może działać wyłącznie w tym środowisku uruchomieniowym. Środowisko to udostępnia programom działającym w jego obrębie bardzo obszerny zestaw klas. W przybliżeniu można powiedzieć, że platforma .NET jest środowiskiem uruchomieniowym analogicznym do maszyny wirtualnej Java. Należy jednak zwrócić uwagę na dwie różnice:
- Java od samego początku działa na różnych systemach operacyjnych (Windows, Unix, Macintosh). W 2002 roku platforma .NET działała wyłącznie na komputerach z systemem Windows. Od kilku lat projekt Mono [http://www.mono-project.com] umożliwia korzystanie z platformy .NET na systemach takich jak Unix i Linux. Aktualna wersja Mono (luty 2008 r.) obsługuje .NET 1.1 oraz elementy .NET 2.0.
- Platforma .NET umożliwia uruchamianie programów napisanych w różnych językach. Wystarczy, aby kompilator tych języków potrafił generować kod IL (język pośredni), który jest wykonywany przez maszynę wirtualną .NET. Wszystkie klasy .NET są dostępne dla języków zgodnych z .NET, co w znacznym stopniu niweluje różnice między językami, o ile programy w szerokim zakresie korzystają z tych klas. Wybór języka .NET staje się raczej kwestią gustu niż wydajności.
W 2002 roku język C# korzystał z platformy .NET 1.0. C# był wówczas w dużej mierze „kopią” języka Java, a .NET stanowiło bibliotekę klas bardzo zbliżoną do tej z platformy programistycznej Java. W ramach nauki języka można było przechodzić ze środowiska C# do środowiska Java bez większego poczucia obcości. Dostępne były nawet narzędzia do konwersji kodu źródłowego z jednego języka na drugi. Od tamtej pory sytuacja uległa zmianie. Każdy język i każda platforma programistyczna ma obecnie swoje specyficzne cechy. Przeniesienie umiejętności z jednej dziedziny do drugiej nie jest już tak oczywiste.
C# 3.0 i framework .NET 3.5 wprowadzają wiele nowości. Najważniejszą z nich jest prawdopodobnie LINQ (Language INtegrated Query), który umożliwia jednolite wysyłanie zapytań, w sposób zbliżony do języka SQL, sekwencje obiektów pochodzących ze struktur pamięciowych, takich jak tablice i listy, z baz danych (SQL Server – na razie wyłącznie – luty 2008 r.) lub z plików XML.
Niniejszy dokument nie stanowi wyczerpującego kursu. Na przykład nie porusza on tematu LINQ. Jest on przeznaczony dla osób posiadających już wiedzę z zakresu programowania i pragnących zapoznać się z podstawami języka C#. Stanowi on aktualizację oryginalnego dokumentu opublikowanego w 2002 roku.
W napisaniu tego kursu pomogło mi kilka książek:
W przypadku wersji z 2002 roku:
- „Professional C# programming”, wydawnictwo Wrox
- „C# i .NET”, Gérard Leblanc, wydawnictwo Eyrolles
W tamtym czasie uznałem te dwie pozycje za doskonałe. Od tamtej pory Gérard Leblanc opublikował ich zaktualizowane wersje, w tym następującą:
- „C# i .NET 2005”, Gérard Leblanc, wydawnictwo Eyrolles
Do przygotowania wydania z 2008 roku wykorzystałem następujące źródła:
- pierwotny dokument z 2002 roku. Dokument ten, powstały w wyniku skopiowania i wklejenia treści z mojego kursu o Javie, zawierał zarówno błędy typograficzne, jak i poważniejsze nieścisłości, takie jak twierdzenie, że typy pierwotne, takie jak System.Int32, są klasami, podczas gdy w rzeczywistości są to struktury. Mea culpa...
- dokumentacja MSDN programu Visual Studio Express 2008
- książka „C# 3.0 in a Nutshell” autorstwa Josepha i Bena Albahari, wydana przez O’Reilly – jedna z najlepszych książek o programowaniu, jakie kiedykolwiek miałem okazję przeczytać.
Serge Tahé, maj 2008
Od maja 2008 r. język C# oczywiście ewoluował. Niniejszy dokument pozostaje jednak nadal aktualny dla osób uczących się tego języka. Uzupełnieniem tego kursu jest prezentacja ORM (Object Relational Mapper) Entity Framework w artykule „Wprowadzenie do Entity Framework 5 Code First” na stronie URL [Wprowadzenie do Entity Framework 5 – Code First na przykładach (2012)].
Serge Tahé, październik 2013 r.