10-Minutowy Przewodnik Po C# i .NET
Czym jest C#?
C# (c sharp) został pierwotnie opracowany przez Microsoft jako język z rodziny .NET. Jest to dość łatwy język, często polecany osobom, które chcą zacząć swoją przygodę z programowaniem. Został stworzony przez Andersa Hejlsberga, który również był zaangażowany w tworzenie takich języków jak Delphi czy Turbo Pascal. Powstał na bazie języków C++ oraz C. Nazwa powstała w podobny sposób jak nazwa języka C++ (czyli poprzez dodawanie operatora inkrementacji ++ do C). Do nazwy języka C# został zastosowany podobny mechanizm, to znaczy do C++ został dodany operator inkrementacji (++) i w taki sposób powstał symbol #. Ma przypominać 4 połączone symbole +. Początkowo C# był bardzo podobny do Javy, ale z biegiem czasu, podobieństwo staje się coraz mniejsze. Jest językiem obiektowym, który przypomina C++, z tym że jest łatwiejszy do nauczenia. Program napisany w języku C# jest kompilowany do języka Intermediate Language (IL), czyli kodu pośredniego, wykonywanego w środowisku uruchomieniowym .NET.
Czym jest .NET Framework?
.NET Framework (dot net) jest to platforma programistyczna opracowana przez Microsoft, wydana w roku 2002. Obejmuje Common Language Runtime (CLR), czyli środowisko uruchomieniowe na których działają napisane programy, a także biblioteki klas, które implementują typowe funkcjonalności, wykorzystywane w aplikacjach .NET. Wspomniane biblioteki to zbiór funkcjonalności i metod, które ułatwiają pracę programistów. Dzięki którym możesz użyć gotowych już implementacji. Zadaniem platformy .NET jest między innymi zarządzanie kodem aplikacji, pamięcią i zabezpieczeniami. Programy na platformę .NET mogą być pisane w różnych językach, takich jak C#, F#, Delphi 8, Visual Basic .NET, COBOL, Eiffel, Fortran, Lisp, Perl. Pozwala na to idea wykorzystania wspólnego języka tak zwany Common Language Specification (CLS). Najbardziej popularnym z wymienionych języków jest C#. Języki te, są tłumaczone na Intermediate Language (IL), a dopiero IL jest uruchamiany przez CLR. Czasem też, zamiast IL możesz się spotkać z nazwą CIL (Common Intermediate Language) oraz MSIL (Microsoft Intermediate Language), wszystkie te nazwy oznaczają to samo. Po skompilowaniu kod aplikacji jest zapisywany na dysku, w plikach assembly, z rozszerzeniami dll i exe. .NET jest implementacją CLR na system operacyjny Windows, aby móc uruchomić aplikację na innym systemie operacyjnym na przykład Linuxie, było trzeba skorzystać z mono (był to proces dość skomplikowany). Od kilku lat jest również .NET Core, dzięki niemu aplikacje mogą działać na różnych systemach operacyjnych: Windowsie, Linuxie czy Macu. W momencie uruchamiania skompilowanych plików system operacyjny uruchamia wspomniany proces CLR, który ładuje kod IL, kompilując w trakcie wykonywania kodu do instrukcji maszynowych za pomocą mechanizmu Just In Time (JIT). W CLR jest również mechanizm kontroli bezpieczeństwa, a także Garbage Collector, który odpowiada za czyszczenie pomięci poprzez usuwanie obiektów, do których nie ma już żadnych referencji. Do podstawowych bloków platformy .NET, oprócz wspomnianych CLR i CLS należy jeszcze Common Type System (CTS), czyli wspólny system typów, opisujący dane, które udostępnia środowisko uruchomieniowe, dzięki temu programy mogą wzajemnie się ze sobą integrować. Ostatni blokiem platformy jest także Common Language Infrastructure (CLI), czyli standard tworzenia komponentów w .NET (assembly).
.NET Core
.NET Core został wydany w roku 2016. Jest to otwarte oprogramowanie, dzięki któremu, możesz tworzyć i uruchamiać swoje aplikacje napisane między innymi w C# na platformach Windows, Linux i macOS. W roku 2020 ma dojść do małej rewolucji, ponieważ ma zostać wydany .NET 5, który ma połączyć .NET z .NET Core'em.
Visual Studio
Najpopularniejszym środowiskiem programistycznym (IDE) dla programisty .NET jest Visual Studio, które również używam na co dzień i polecam Tobie. Dla własnego użytku możesz użyć darmowej wersji Visual Studio, które zawiera wszystkie potrzebne funkcjonalności. Według ankiety przeprowadzonej przez stackoverflow, Visual Studio jest używane przez około 31,5% wszystkich programistów, co jest bardzo dobrym wynikiem. Visual Studio ułatwia pracę programiście, między innymi wyświetla podpowiedzi (intellisense), podpowiada składnie, znajduje błędy, koloruje składnie, pozwala debugować kod, posiada wbudowaną konsole. Jeżeli zaczniesz już używać Visual Studio, to warto również używać skrótów klawiszowych. 40 najpopularniejszych skrótów klawiszowych w Visual Studio, opisałem w poprzednim artykule na blogu.
Jakie aplikacje można pisać w języku C#?
C# jest językiem ogólnego przeznaczenia, to znaczy, że można pisać w nim różne aplikacje, to jest aplikacje webowe, desktopowe (aplikacje na Windows), mobilne (aplikacje na telefony), a nawet gry.
-Za pomocą framework ASP.NET możesz pisać aplikacje webowe. Polecam zacząć od ASP.NET Core lub ASP.NET MVC.
-W Windows Forms, WPF oraz UWP możesz napisać aplikacje desktopowe. Jeżeli chcesz tworzyć aplikacje desktopowe, to polecam pisać je w WPF (z zastosowaniem wzorca MVVM).
-Dzięki Xamarin, możliwe jest tworzenie wieloplatformowych aplikacji mobilnych, między innymi na androida i iOSa.
-W Unity możesz tworzyć gry.
-Aplikacje konsolowe.
Podsumowanie:
W dużym skrócie mówiąc C# jest popularnym, wysokopoziomowym, obiektowym językiem programowania, który jest uruchamiany na platformie .NET. Zarówno C#, jak i .NET zostało stworzone przez firmę Microsoft i można w nim napisać różne typy aplikacji: aplikacje webowe, desktopowe, mobilne, konsolowe i gry. W najbliższym czasie na blogu będą pojawiać się artykuły głównie związane z C#/.NET, dlatego myślę, że warto zacząć od tego tematu. Mam nadzieję, że udało mi się wytłumaczyć Ci, czym dokładnie jest C# oraz .NET i będziesz wiedział jakie środowisko dla takich programistów jest najbardziej popularne, oraz jakie aplikacje możesz tworzyć.
Poprzedni artykuł - 40 Skrótów Klawiszowych w Visual Studio, Które Powinien Znać Każdy Programista.
Następny artykuł - SOLID - Single Responsibility Principle (SRP) - Wszystko Co Powinieneś Wiedzieć o Zasadzie Pojedynczej Odpowiedzialności.