Środowisko i emocje. Przegląd technologii NET Framework Zalety głównych komponentów Net Framework

C#
  • Środowisko uruchomieniowe języka wspólnego) i biblioteka klasowa...
  • .NET Framework i specyfikacja CTS
    Język C# i jego obsługa są obecnie kojarzone z .NET Framework opracowanym przez firmę Microsoft. Wymieniona platforma (patrz) obejmuje: środowisko wykonawcze języka wspólnego (CLR - Środowisko uruchomieniowe języka wspólnego Biblioteka klas frameworka). Należy zauważyć...
    (PROGRAMOWANIE. KURS PODSTAWOWY C#)
  • Instalowanie .NET Framework i Visual Studio
    W Windows 7 i 8 platforma .NET jest już dostępna i nie trzeba niczego instalować. Aby móc tworzyć aplikacje na platformie .NET należy zainstalować system Visual Development C# 2012 (lub 2013) Express Edition - darmowa wersja środowiska programistycznego Visual Studio (krótsza, ale z prawie...
    (Programowanie obiektowe)
  • TYPY C# I TYPY FRAMEWORK .NET
    Język C# i jego obsługa są obecnie kojarzone z .NET Framework opracowanym przez firmę Microsoft. Wymieniona platforma (patrz) obejmuje: środowisko wykonawcze języka wspólnego (CLR - Środowisko uruchomieniowe języka wspólnego) i biblioteka klasowa...
    (PROGRAMOWANIE. KURS PODSTAWOWY C#)
  • .NET Framework i specyfikacja CTS
    Język C# i jego obsługa są obecnie kojarzone z .NET Framework opracowanym przez firmę Microsoft. Wymieniona platforma (patrz) obejmuje: środowisko wykonawcze języka wspólnego (CLR - Środowisko uruchomieniowe języka wspólnego) i biblioteka klas (FCL - Biblioteka klas frameworka). Należy zauważyć...
    (PROGRAMOWANIE. KURS PODSTAWOWY C#)
  • .NET Framework to zintegrowany komponent systemu Windows, który obsługuje tworzenie i wykonywanie nowej generacji aplikacji i usług sieciowych XML. .NET Framework został zaprojektowany z myślą o następujących celach:

    · Zapewnienie spójnego, zorientowanego obiektowo środowiska programistycznego do lokalnego przechowywania i wykonywania kodu obiektowego, lokalnego wykonywania kodu rozpowszechnianego w Internecie lub zdalnego wykonywania.

    · Zapewnij środowisko wykonywania kodu, które minimalizuje konflikty podczas wdrażania oprogramowania i kontroli wersji.

    · Zapewnienie środowiska wykonywania kodu gwarantującego bezpieczne wykonanie kodu, w tym kodu wygenerowanego przez nieznane lub nie w pełni zaufane strony trzecie.

    · Zapewnij środowisko wykonywania kodu, które pozwala uniknąć problemów z wydajnością w środowiskach wykonywania skryptów lub interpretowanego kodu.

    · Zapewnij spójne środowisko programistyczne w różnych typach aplikacji, takich jak aplikacje Windows i aplikacje internetowe.

    · Opracuj interoperacyjność opartą na standardach branżowych, która zapewni integrację kodu .NET Framework z dowolnym innym kodem.

    Dwa główne składniki .NET Framework to środowisko uruchomieniowe języka wspólnego (CLR) i biblioteka klas .NET Framework. Rdzeniem .NET Framework jest środowisko CLR. Środowisko wykonawcze można traktować jako agenta zarządzającego kodem w czasie wykonywania i udostępniającego podstawowe usługi, takie jak zarządzanie pamięcią, zarządzanie wątkami i komunikacja zdalna. Jednocześnie narzucane są rygorystyczne warunki typowania i inne rodzaje weryfikacji dokładności kodu, aby zapewnić bezpieczeństwo i niezawodność. W rzeczywistości głównym zadaniem środowiska wykonawczego jest zarządzanie kodem. Kod uzyskujący dostęp do środowiska wykonawczego nazywany jest kodem zarządzanym, a kod, który nie uzyskuje dostępu do środowiska wykonawczego, nazywany jest kodem niezarządzanym. Biblioteka klas, kolejny podstawowy składnik .NET Framework, zapewnia kompletną obiektową kolekcję typów używanych do tworzenia aplikacji, począwszy od konwencjonalnych typów uruchamianych z wiersza poleceń lub za pomocą graficznego interfejsu użytkownika, po aplikacje korzystające z najnowsze możliwości technologii ASP.NET, takie jak formularze internetowe i usługi sieciowe XML.

    .NET Framework może obsługiwać niezarządzane komponenty, które ładują środowisko uruchomieniowe języka wspólnego (CLR) do własnych procesów i uruchamiają kod zarządzany, tworząc środowisko programistyczne, które umożliwia zarówno wykonywanie zarządzane, jak i niezarządzane. .NET Framework nie tylko zapewnia kilka podstawowych środowisk wykonawczych, ale także obsługuje tworzenie podstawowych środowisk wykonawczych przez strony trzecie.


    Na przykład ASP.NET hostuje środowisko wykonawcze, aby zapewnić skalowalne środowisko po stronie serwera dla kodu zarządzanego. ASP.NET współpracuje bezpośrednio ze środowiskiem wykonawczym, umożliwiając korzystanie z aplikacji ASP.NET i usług sieci Web XML, które zostały omówione w dalszej części tego tematu.

    Internet Explorer jest przykładem niezarządzanej aplikacji, która hostuje środowisko wykonawcze (w formie rozszerzenia typu MIME). Używanie przeglądarki Internet Explorer do hostowania środowiska wykonawczego umożliwia osadzanie zarządzanych składników lub kontrolek Windows Forms w dokumentach HTML. Hostowanie środowiska wykonawczego w ten sposób umożliwia zarządzany kod mobilny (podobnie jak kontrolki Microsoft® ActiveX®), ale ze znaczącymi ulepszeniami, które może zaoferować tylko kod zarządzany, takimi jak częściowo zaufane wykonywanie i izolowane przechowywanie plików.

    Na poniższej ilustracji przedstawiono relację środowiska uruchomieniowego języka wspólnego i biblioteki klas z aplikacjami i całym systemem. Ilustracja pokazuje również, jak kod zarządzany działa w ramach większej architektury.

    NET Framework w kontekście

    W poniższych sekcjach opisano bardziej szczegółowo główne składniki i funkcje .NET Framework.


    Na przykład ASP.NET hostuje środowisko wykonawcze i zapewnia skalowalne środowisko dla kodu zarządzanego po stronie serwera. ASP.NET współpracuje bezpośrednio ze środowiskiem wykonawczym, aby umożliwić wykonywanie aplikacji ASP.NET i usług sieci Web XML omówionych w dalszej części tego tematu.

    Internet Explorer jest przykładem niezarządzanej aplikacji, która hostuje środowisko wykonawcze (w postaci rozszerzeń typu MIME). Hostowanie środowiska wykonawczego w przeglądarce Internet Explorer umożliwia osadzanie zarządzanych składników lub kontrolek Windows Forms w dokumentach HTML. Ten układ środowiska umożliwia uruchamianie zarządzanego kodu mobilnego (podobnie jak kontrolki Microsoft® ActiveX®), ale z istotnymi zaletami kodu zarządzanego, takimi jak wykonywanie z częściowym zaufaniem i izolowane przechowywanie plików.

    Na poniższym rysunku pokazano, jak środowisko uruchomieniowe języka wspólnego i biblioteka klas współdziałają z aplikacjami użytkownika i całym systemem. Rysunek pokazuje również, jak kod zarządzany działa w szerszej architekturze.

    NET Framework w kontekście

    Poniższe sekcje zawierają bardziej szczegółowy opis podstawowych składników i funkcji .NET Framework.

    Adnotacja: Inicjatywa Microsoft .NET. Problemy ze zgodnością, niezawodnością i ponownym wykorzystaniem komponentów. .NET Framework. Środowisko uruchomieniowe języka wspólnego (CLR). Język pseudomaszynowy CIL (kontrolowany przez asembler). Kompilator JIT. Języki programowania. Zespoły. Metadane. Śmieciarz. Biblioteka klas .NET Framework

    Problemy rozwoju nowoczesnych systemów informatycznych

    Problemy integracyjne

    • Moduły napisane w różnych językach, wykorzystujące różne API (lub wersje API) lub różne formaty reprezentacji danych;
    • Programy opracowane dla różnych platform w ramach jednego pakietu oprogramowania;
    • Systemy wykorzystujące różne modele oprogramowania.

    Szczególnie częste są problemy z integracją ze starszym kodem. Podczas rozwiązywania problemów integracyjnych pojawiają się problemy z niekompatybilnością.

    Problemy z przenośnością

    Coraz częściej od programów wymagana jest obsługa wielu platform (np. możliwość pracy z programem na platformach Windows i Mac OS).

    Problemy z wersją

    Programiści systemu Windows są świadomi problemu ze zgodnością wersji znanego jako piekło DLL. To „piekło” ma miejsce, gdy komponenty zainstalowane dla nowej aplikacji zastępują komponenty starej aplikacji. W rezultacie stara aplikacja zaczyna działać niepoprawnie lub przestaje działać.

    Zarządzanie zasobami

    Jednym z wyzwań programowania jest zarządzanie i prawidłowe zwalnianie zasobów, plików, pamięci, miejsca na ekranie, połączeń sieciowych, zasobów baz danych itp. Nieprawidłowe zarządzanie tymi zasobami może prowadzić do nieprawidłowego wykonania programu.

    Wpisz bezpieczeństwo

    Kiedy wspominają o problemie związanym z bezpieczeństwem typu, mają na myśli nieprawidłową obsługę typów danych: próby dostępu do obszarów pamięci poza granicami typu, próby wywołania metod, które nie są obecne w typie lub próby wywołania metody przyjmującej typ A jako parametr i przekaż go jako parametr.typ obiektu B.

    Obsługa awarii

    Podczas tworzenia aplikacji Windows przy użyciu interfejsu API Win32 niektóre funkcje zwracają wyjątki, inne zwracają kody stanu, a jeszcze inne zwracają wartości HRESULT. Dlatego nie ma spójnego mechanizmu obsługi błędów i możliwe jest zignorowanie niektórych wyjątków, co czyni kod niebezpiecznym.

    Platforma Microsoft .NET pomaga rozwiązać te i inne problemy związane z rozwojem systemów informatycznych.

    Rozwiązywanie problemów związanych z tworzeniem systemów informatycznych w .NET

    Jednym ze sposobów rozwiązania problemu heterogeniczności jest rozwój i obsługa standardowych interfejsów oprogramowania, które ułatwiają zadanie przenoszenia aplikacji na serwery różnych platform. Jednakże aplikacje mogą korzystać z baz danych, komunikacji i innych usług, których interfejsy nie są składnikami języka programowania ani środowiska. Inną metodą stosowaną przez producentów w celu rozwiązania problemu heterogeniczności jest obsługa standardowych protokołów. Systemy obsługujące ten sam protokół mogą się ze sobą komunikować, nawet jeśli opierają się na różnych architekturach maszyn i systemach operacyjnych.

    Technologia. NET to metoda tworzenia i wdrażania oprogramowania, która wykorzystuje powszechnie stosowane standardy, takie jak HTTP i XML, aby umożliwić interoperacyjność programów i zapewnić dostęp do licznych usług oprogramowania za pośrednictwem Internetu. Technologia obejmuje. NET Framework to platforma do tworzenia i wykonywania aplikacji, która upraszcza i przyspiesza rozwój, obsługuje pełną obiektowość programowanie dla Internetu, eliminuje wiele typów najczęstszych błędów oprogramowania, zapewnia wspólne API dla wszystkich języków.

    Co składa się na Microsoft .NET

    NET Framework - infrastruktura do tworzenia aplikacji. Jego głównymi składnikami są środowisko uruchomieniowe języka wspólnego i biblioteka klas. Biblioteka klas NET Framework.

    Środowisko uruchomieniowe języka wspólnego

    Środowisko uruchomieniowe języka wspólnego (CLR) to środowisko uruchomieniowe języka wspólnego, które wyodrębnia usługi systemu operacyjnego i uruchamia zarządzane aplikacje, których wszelkie działania muszą być autoryzowane przez środowisko CLR.

    Cały kod platformy .NET jest konwertowany przez CLR na kod pośredni CIL. Dlatego programiści mogą łatwo integrować kod napisany dla .NET w różnych językach programowania. Wszystko, co można zrobić w jednym języku zgodnym z .NET (z rzadkimi wyjątkami), można zrobić w dowolnym innym języku. Kod w tych językach jest kompilowany do kodu w jednym języku - CIL.

    Środowisko CLR znajduje się na systemie operacyjnym i zapewnia wirtualne środowisko dla zarządzanych aplikacji. Kod dla platformy .NET jest albo wykonywany przez środowisko CLR, albo może być wykonywany poza nim.

    Kod środowiska CLR ma postać poleceń w języku pseudomaszynowym Common Intermediate Language (CIL). Instrukcje te są kompilowane do kodu maszynowego dla odpowiedniego typu procesora na bieżąco w czasie wykonywania. Zazwyczaj metoda jest kompilowana raz, przy pierwszym wywołaniu. Wynik jest następnie buforowany w pamięci, aby uniknąć opóźnień w powtarzających się połączeniach. Kompilator JIT optymalizuje kod specjalnie dla procesora, na którym kod jest wykonywany.

    Konwertując instrukcje CIL na instrukcje procesora, kompilator JIT weryfikuje kod pod kątem bezpieczeństwa typu.

    Wykonanie polecenia uzyskującego dostęp do obszaru pamięci, do którego polecenie nie ma uprawnień dostępu, jest praktycznie niemożliwe. Aplikacja zarządzana eliminuje problem błędnie zainicjowanych wskaźników, uniemożliwiając konwersję typu na coś, czym nie jest, co stanowi naruszenie bezpieczeństwa typów. CLR nie pozwala na wywoływanie metod ze zniszczoną ramką stosu.

    Zasoby przydzielone przez kod zarządzany są zwalniane przez moduł wyrzucający elementy bezużyteczne. Innymi słowy, programista jedynie przydziela pamięć, ale jej nie zwalnia - robi to CLR. Moduł zbierający elementy bezużyteczne śledzi wszystkie odniesienia do obiektów utworzonych przez program i niszczy te obiekty, gdy zajmowana przez nie pamięć jest potrzebna gdzie indziej. Rozwiązuje to problem wycieków pamięci w aplikacjach z kodem zarządzanym.

    Weryfikacja kodu jest również podstawą zdolności środowiska CLR do uruchamiania wielu aplikacji w ramach jednego procesu. Proces podzielony jest na wirtualne przedziały – domeny aplikacji. Poprawia to efektywność pamięci przydzielanej procesom. Domeny aplikacji są nie mniej bezpieczne niż procesy, ponieważ zarządzane aplikacje nie mogą naruszyć ich granic.

    Biblioteka klas .NET Framework (FCL)

    .NET zawiera zestawy bibliotek klas. NET Framework Class Library (FCL), zawierająca definicje kilku tysięcy typów, z których każdy zapewnia pewną funkcjonalność. Zestawy „pokrewnych” typów są gromadzone w oddzielnych przestrzeniach nazw. Zatem przestrzeń nazw System zawiera klasę bazową Object, z której ostatecznie wywodzą się wszystkie inne typy.

    Zatem każdy podmiot w. NET jest obiektem posiadającym własne pola i metody.

    Dodatkowo System zawiera typy liczb całkowitych, znaków, stringów, obsługę wyjątków, wejście/wyjście konsoli, grupę typów do bezpiecznej konwersji z jednego typu na inny, formatowanie danych, generowanie liczb losowych i wykonywania operacji matematycznych. Wszystkie aplikacje używają typów z przestrzeni nazw System.

    Aby zmodyfikować istniejący typ FCL, możesz utworzyć własny typ pochodny. Możesz tworzyć własne przestrzenie nazw. Wszystko to będzie ściśle zgodne z zasadami proponowanymi przez platformę. INTERNET

    Oto niektóre z najpopularniejszych przestrzeni nazw i krótki opis typów, które zawierają.

    Podstawowe przestrzenie nazw FCL
    Przestrzeń nazw Treść
    System Podstawowe typy danych i klasy pomocnicze
    System.Kolekcje Tabele mieszające, tablice zmiennych i inne kontenery
    System.Dane Klasy ADO .NET dla dostępu do danych
    System.Rysunek Klasy dla wyjścia graficznego (GDI+)
    System.IO Klasy we/wy plików i strumieni
    System.Net Klasy do pracy z protokołami sieciowymi, takimi jak HTTP
    System.Odbicie Zajęcia z czytania i zapisywania metadanych
    System.Runtime.Remote Zajęcia dla aplikacji rozproszonych
    System.ServiceProcess Zajęcia z tworzenia usług Windows
    System.Gwintowanie Zajęcia dotyczące tworzenia i zarządzania wątkami
    System.Web Klasy obsługi HTTP
    Usługi systemowe.Web.Services Zajęcia z tworzenia serwisów internetowych
    Usługi systemowe.Web.Services. Zajęcia dotyczące tworzenia protokołów klientów usług sieciowych
    System.Web.UI Główne klasy używane przez ASP .NET
    System.Web.UI. Elementy sterujące siecią Elementy sterujące serwera ASP .NET
    System.Wndows.Forms Klasy dla aplikacji GUI
    System.Xml Zajęcia do odczytu i wprowadzania danych w formacie XML

    Używają wszystkich zarządzanych aplikacji

    Nazywa się zestaw środków, za pomocą których programy są pisane, poprawiane, konwertowane na kody maszynowe, debugowane i uruchamiane środowisko programistyczne Lub powłoka. Platforma.Net Lub .Net Framework- to coś więcej niż tylko środowisko programistyczne programów, to nowe, rewolucyjne połączenie wcześniej odrębnych technologii firmy Microsoft, które pozwala na tworzenie różnego rodzaju aplikacji w różnych językach programowania dla różnych systemów operacyjnych.

    NET Framework to dodatek do systemu operacyjnego, którym może być dowolna wersja systemu Windows, Unix i ogólnie dowolny system operacyjny (według twórców) i składa się z szeregu komponentów. Więc, . NET Framework zawiera:

    1. Cztery oficjalne języki: C#, VB.NET, Managed C++ i JScript .NET.
    2. Wspólne środowisko wykonawcze języka obiektowego (CLR) współdzielone przez te języki w celu tworzenia aplikacji.
    3. Seria połączonych ze sobą bibliotek klas pod wspólną nazwą FCL (Framework Class Library).

    Główny element platformy. NET Framework to środowisko uruchomieniowe języka wspólnego dla programów CLR. Nazwa środowiska – „środowisko uruchomieniowe języka wspólnego” – mówi sama za siebie: jest to środowisko wykonawcze, które jest odpowiednie dla różnych języków programowania. Funkcje CLR obejmują:

    1. kompilacja dwuetapowa: konwersja programu napisanego w jednym z języków programowania na kod zarządzany w język pośredni ( Język pośredni Microsoftu, MSIL, czy po prostu IL), a następnie konwersję kodu IL na kod maszynowy dla konkretnego procesora, co odbywa się przy pomocy maszyny wirtualnej lub kompilatora Just In Time (kompilacja just in time);
    2. zarządzanie kodem: ładowanie i wykonywanie gotowego kodu IL przy użyciu kompilatora JIT;
    3. dostępu do metadanych w celach weryfikacji bezpieczeństwo kodu;
    4. zarządzanie pamięcią podczas umieszczania obiektów za pomocą modułu zbierającego śmieci (Garbage Collector);
    5. obsługa wyjątków i sytuacji wyjątkowych, w tym wyjątków międzyjęzykowych;
    6. implementowanie interakcji pomiędzy kodem zarządzanym (kod napisany dla CLR) i kodem niezarządzanym;
    7. wsparcie w zakresie usług tworzenia różnego rodzaju aplikacji.

    Następny element. Net Framework jest biblioteką klas platformy FCL. Biblioteka ta jest podzielona na kilka modułów w taki sposób, że możliwe jest wykorzystanie tej lub innej jej części w zależności od wymaganych wyników. I tak np. jeden z modułów zawiera „cegiełki”, z których można budować aplikacje Windows, drugi zawiera „cegiełki” niezbędne do organizacji pracy w sieci itp.

    Część FCL poświęcona jest opisowi podstawowych typów. Typ to sposób reprezentowania danych; zidentyfikowanie tych najbardziej podstawowych ułatwia dzielenie się z pomocą językami programowania. NET Framework. Łącznie nazywa się to systemem wspólnego typu (CTS – ujednolicony system typów).

    Ponadto biblioteka FCL zawiera specyfikację języka wspólnego (CLS – specyfikacja języka wspólnego), która ustala: podstawowe zasady integracji języków. Specyfikacja CLS definiuje minimalne wymagania dla języka platformy. INTERNET. Kompilatory spełniające tę specyfikację tworzą obiekty, które mogą ze sobą współdziałać. Dlatego każdy język zgodny z CLS może korzystać ze wszystkich funkcji biblioteki FCL.

    Jak już wspomniano, główne języki przeznaczone dla platformy. NET Framework to C#, VB. NET, zarządzany C++ i JScript. INTERNET. Dla tych języków Microsoft oferuje własne kompilatory, które tłumaczą program na kod IL, który jest wykonywany przez kompilator CLR JIT. Oprócz Microsoftu kilka innych firm i organizacji akademickich stworzyło własne kompilatory, które generują kod działający w środowisku CLR. Obecnie kompilatory są znane z Pascala, Cobola, Lisp, Perla, Prologu itp. Oznacza to, że można napisać program np. w Pascalu, a następnie przy pomocy odpowiedniego kompilatora stworzyć kod zarządzany, który będzie działał w środowisku CLR.

    Koncepcje aplikacji, projektu, rozwiązania

    NET Framework nie nakłada żadnych ograniczeń na typy aplikacji, które można utworzyć. To powiedziawszy, przyjrzyjmy się niektórym z najpopularniejszych typów aplikacji:

    1. Aplikacje konsolowe umożliwiają wysyłanie danych do „konsoli”, to znaczy do okna powłoki.
    2. Aplikacje Windows korzystające z elementów interfejsu Windows, w tym formularzy, przycisków, pól wyboru itp.
    3. Aplikacje internetowe to strony internetowe, które można przeglądać w dowolnej przeglądarce internetowej.
    4. Usługi sieciowe to aplikacje rozproszone, które umożliwiają wymianę praktycznie dowolnych danych przez Internet przy użyciu jednej składni, niezależnie od tego, w jakim języku programowania użyto usługi do stworzenia usługi internetowej lub na jakim systemie jest ona hostowana.

    Aplikacja w trakcie tworzenia nazywa się projektem. Kilka aplikacji można połączyć w jedno rozwiązanie.

    Wygodnym środowiskiem tworzenia aplikacji jest Visual Studio .Net.

    Środowisko programistyczne Visual Studio .Net

    Na tym kursie nauczymy się języka C#. Zaznajomienie się z językiem zacznijmy od tworzenia aplikacji konsolowych. Będziemy używać Visual Studio jako naszego środowiska programistycznego. Netto (VS).

    Możesz tworzyć pliki kodu źródłowego C# za pomocą zwykłego edytora tekstu, takiego jak Notatnik, i kompilować je zarządzane moduły za pomocą dołączonego kompilatora wiersza poleceń. NET Framework. Jednak najwygodniej jest używać VS do tych celów, ponieważ:

    1. VS automatycznie wykonuje wszystkie kroki wymagane do skompilowania kodu źródłowego.
    2. Edytor tekstu VS jest skonfigurowany do pracy z językami obsługiwanymi przez VS, takimi jak C#, dzięki czemu może inteligentnie wykrywać błędy i monitować podczas pisania o znalezienie dokładnie potrzebnego kodu.
    3. VS zawiera programy umożliwiające tworzenie aplikacji Windows i aplikacji internetowych za pomocą prostych elementów interfejsu użytkownika typu „przeciągnij i upuść”.
    4. Wiele typów projektów, które można stworzyć w języku C#, można opracować w oparciu o kod „szkieletowy”, który jest wcześniej zawarty w programie. Zamiast zaczynać za każdym razem od zera, VS umożliwia wykorzystanie istniejących plików kodu źródłowego, co skraca czas potrzebny na utworzenie projektu.

    Tworzenie pierwszego projektu

    Aby utworzyć projekt, uruchom VS, a następnie wybierz polecenie z głównego menu VS Plik – Nowy – Projekt. Następnie otworzy się menu dialogowe Nowy projekt(patrz ryc. 1.1).


    Ryż. 1.1.

    W polu Typy projektów powinien wybrać Wizualny C#, w polu SzablonyAplikacja konsoli.

    W kolejce Nazwa wprowadź nazwę aplikacji Cześć. Pamiętaj, że w wierszu pojawi się ta sama nazwa Nazwa rozwiązania. Odznacz to pole Utwórz katalog dla aplikacji(na razie tworzymy prostą aplikację i nie ma potrzeby komplikować jej struktury).

    W kolejce Lokalizacja określ lokalizację na dysku, w której chcesz zapisać swój projekt. I naciśnij przycisk OK. Przybliżony widok ekranu pokazano na rys. 1.2


    Ryż. 1.2.

    W prawej górnej części znajduje się okno zarządzania projektem Eksplorator rozwiązań Widok — Eksplorator rozwiązań. W tym oknie znajdują się wszystkie zasoby zawarte w projekcie:

    1. AssemblyInfo.cs – informacje o montaż.

      W wyniku jego wykonania kompilator tworzy tzw montaż– plik z rozszerzeniem exe lub dll zawierający kod IL i metadane.

    2. System, System.Data, System.Xml – linki do bibliotek standardowych.
    3. Program.cs - tekst programu w języku C#.

    Komentarz. W innych wersjach VS obejmuje to również plik z rozszerzeniem ico, który odpowiada za wygląd skrótu do aplikacji.

    W prawym dolnym rogu ekranu znajduje się okno właściwości. Nieruchomości. Jeśli jest zamknięty, możesz go włączyć za pomocą polecenia Widok - Właściwości. W tym oknie wyświetlane są najważniejsze cechy wybranego elementu.

    Przestrzeń ekranu głównego zajmuje okno edytora, w którym znajduje się tekst programu tworzony automatycznie przez środowisko. Tekst jest frameworkiem, do którego programista doda niezbędny kod. W tym przypadku słowa zastrzeżone są wyświetlane na niebiesko, komentarze na zielono, a tekst główny na czarno.

    Tekst ma strukturę. Kliknięcie znaku minus ukryje blok kodu, kliknięcie znaku plus otworzy go.

    Otwórzmy folder zawierający projekt i przyjrzyjmy się jego strukturze (patrz rys. 1.3). Pliki pogrubione pojawią się dopiero po kompilacji.


    Ryż. 1.3.

    Na tym etapie szczególnie interesujące będą dla nas następujące pliki:

    1. Witam.sln– główny plik odpowiedzialny za cały projekt. Jeśli chcesz otworzyć projekt do edycji, musisz wybrać ten plik. Pozostałe pliki otworzą się automatycznie.
    2. Program.cs– plik zawierający kod źródłowy - kod napisany w języku C#. To z tym plikiem będziemy pracować bezpośrednio.
    3. Witam.exe– plik zawierający wygenerowany kod IL oraz metadane projektu. Inaczej mówiąc, plik ten jest gotową aplikacją, którą można uruchomić na dowolnym komputerze, na którym zainstalowana jest platforma .Net.

    Przyjrzyjmy się teraz samemu tekstowi programu.

    za pomocą Systemu to dyrektywa, która pozwala na użycie standardowych nazw klas z przestrzeni nazw System bezpośrednio, bez podawania nazwy przestrzeni, w której zostały zdefiniowane.

    Słowo kluczowe przestrzeń nazw tworzy własną przestrzeń nazw dla projektu, która domyślnie nazywa się nazwą projektu. W naszym przypadku przestrzeń nazw nosi nazwę Hello. Programista ma jednak prawo podać inną nazwę. Przestrzeń nazw ogranicza zakres nazwy, czyniąc ją znaczącą tylko w tej przestrzeni. Dzieje się tak, abyś mógł nadawać nazwy obiektom programu bez obawy, że będą one pasować do nazw w innych aplikacjach. W ten sposób przestrzenie nazw pozwalają uniknąć sprzecznych nazw obiektów oprogramowania, co jest szczególnie ważne podczas interakcji aplikacji.

    C# jest językiem obiektowym, zatem napisany w nim program będzie zbiorem oddziałujących na siebie klas. Klasa o nazwie Program została utworzona automatycznie (inne wersje frameworku mogą utworzyć klasę o nazwie Class1 ).

    Klasa ta zawiera tylko jedną metodę — metodę Main(). Metoda Main() jest punktem wejścia do programu, tj. To właśnie za pomocą tej metody aplikacja rozpocznie wykonywanie. Każdy program C# musi mieć metodę Main().

    Komentarz Technicznie możliwe jest posiadanie wielu metod Main() w jednym programie. W takim przypadku należy użyć parametru wiersza poleceń, aby poinformować kompilator C#, która metoda Main() jest punktem wejścia do programu.

    Debugowanie-Rozpocznij debugowanie Jeśli program zostanie wykonany bez błędów, w oknie konsoli wyświetli się komunikat, który zacznie migać i szybko się zamknie. Aby wyświetlić wiadomość w trybie normalnym, naciśnij klawisze Ctrl+F5 lub uruchom polecenie Rozpocznij debugowanie bez debugowania.W naszym przypadku otworzy się następujące okno konsoli:

    Jeżeli w kodzie programu znajdują się błędy, np. po poleceniu wyjściowym brakuje średnika, to po naciśnięciu klawisza F5 otworzy się okno dialogowe, w którym zostanie wyświetlony komunikat o wykryciu błędu i pytanie, czy kontynuować pracę dalej. Jeśli odpowiesz Tak, wówczas zostanie wykonana poprzednia, pomyślnie skompilowana wersja programu. W przeciwnym razie proces zostanie zatrzymany, a sterowanie przeniesione do okna listy błędów Lista błędów.

    Ćwiczenia. Zmień treść kodu tak, aby na ekranie wyświetlił się komunikat: Hurra!!!Dzisiaj informatyka!!!

    NET Framework służy jako środowisko do obsługi, programowania i uruchamiania aplikacji rozproszonych opartych na komponentach (kontrolach).

    Aplikacje (programy) mogą być tworzone w różnych językach programowania obsługujących tę technologię.

    NET Framework zapewnia:

    • wspólne wykorzystanie różnych języków programowania;
    • bezpieczeństwo i przenośność programów;
    • ogólny model programowania oparty na platformie Windows.

    2. Jakie są główne komponenty .NET Framework?

    Z programistycznego punktu widzenia .NET Framework składa się z dwóch głównych komponentów:

    • środowisko wykonawcze języka wspólnego CLR (Common Language Runtime);
    • biblioteka klas bazowych.

    Środowisko uruchomieniowe języka wspólnego (CLR) rozwiązuje problemy automatycznego wykrywania typów platformy .NET, ładowania tych typów i zarządzania nimi. CLR obsługuje zarządzanie pamięcią, konserwację aplikacji, przetwarzanie wątków i wdraża liczne kontrole związane z bezpieczeństwem.

    Biblioteka klas bazowych zawiera definicje różnych prymitywów, którymi mogą być: strumienie, graficzne API, implementacje baz danych, wejścia/wyjścia plików itp.

    3. Jaka jest zasada działania środowiska uruchomieniowego języka wspólnego (CLR)?

    Środowisko uruchomieniowe języka wspólnego (CLR) zarządza wykonywaniem kodu .NET.

    Po skompilowaniu programu w języku C# (lub innym języku) tworzony jest plik zawierający specjalny rodzaj pseudokodu lub kodu bajtowego (a nie jak wcześniej plik wykonywalny). Ten pseudokod nazywa się (MSIL) lub Common Intermediate Language (CIL). Ten pseudokod to język pośredni firmy Microsoft.

    Głównym celem środowiska CLR jest przekształcenie pośredniego kodu MSIL w kod wykonywalny podczas wykonywania programu.

    Dowolny program skompilowany do pseudokodu MSIL można uruchomić w dowolnym środowisku zawierającym implementację środowiska CLR. Dzięki temu programy mogą być przenośne w ramach .NET Framework.

    Ryż. 1. Proces konwersji kodu źródłowego na kod MSIL (CIL lub IL) i utworzenie pliku asemblera (*.dll lub *.exe)

    Następnie pseudokod zamienia się w kod wykonywalny. Robi to kompilator JIT. Kompilacja JIT (Just-in-time) to kompilacja na bieżąco.

    CLR jest odpowiedzialny za określenie miejsca umieszczenia zespołu.

    Żądany typ umieszczany w zestawie (taki jak klasa ArrayList lub inny typ) jest określany w pliku binarnym (*.dll lub *.exe) poprzez odczyt metadanych pliku.

    Następnie środowisko CLR umieszcza typ odczytany z zestawu w pamięci.

    Następnie środowisko CLR przekształca kod CIL w odpowiednie instrukcje dostosowane do konkretnej platformy (w zależności od komputera, systemu operacyjnego itp.). Dodatkowo na tym etapie przeprowadzane są niezbędne kontrole bezpieczeństwa.

    Ostatnią rzeczą do zrobienia jest wykonanie żądanego kodu programu.

    4. Co to jest język pośredni MSIL ( Język pośredni Microsoftu) czy CIL (wspólny język pośredni)?

    Początkowo nazywano pośredni język pseudokodowy Język pośredni Microsoftu(MSIL). Później (w najnowszych wersjach .NET) nazwę tę zmieniono na Common Intermediate Language (CIL – Common Intermediate Language). Skróty MSIL, CIL i IL (język pośredni) oznaczają to samo.

    Język pośredni CIL (lub MSIL) powstaje po skompilowaniu programu w jakimś języku programowania obsługującym .NET Framework.

    MSIL to pseudokod. MSIL definiuje zestaw instrukcji, które:

    • można przenieść na różne platformy;
    • nie zależą od konkretnego procesora.

    W rzeczywistości MSIL jest przenośny język asemblera

    5. Czym jest montaż z punktu widzenia technologii .NET?

    Zestawy to pliki z rozszerzeniami *.dll lub *.exe, które zawierają niezależne od platformy .NET instrukcje języka pośredniego (IL), a także metadane typu.

    Zestaw jest tworzony przy użyciu kompilatora .NET. Zespół to duży obiekt binarny.

    Zestaw został zaprojektowany w celu zachowania przestrzeni nazw. Przestrzenie nazw zawierają typy. Typami mogą być klasy, delegaty, interfejsy, wyliczenia, struktury.

    Zestaw może zawierać dowolną liczbę przestrzeni nazw. Dowolna przestrzeń nazw może zawierać dowolną liczbę typów (klas, interfejsów, struktur, wyliczeń, delegatów).

    6. Co wchodzi w skład zespołów?

    Zespoły zawierają kod CIL (kod MSIL lub kod IL) i metadane.

    Kod CIL jest kompilowany dla określonej platformy tylko wtedy, gdy jest dostępny ze środowiska wykonawczego .NET.

    Metadane szczegółowo opisują funkcje każdego typu istniejącego w danej jednostce binarnej .NET.

    Na przykład Podczas tworzenia aplikacji Windows Forms w języku C# tworzony jest plik Assembly.info. Plik ten znajduje się w podfolderze Właściwości w stosunku do głównego folderu programu. Plik ten zawiera ogólne informacje o złożeniu.

    7. Co to jest manifest?

    Manifest jest opisem samego zestawu przy użyciu metadanych.

    Manifest zawiera następujące informacje:

    • o aktualnej wersji zestawu;
    • informacje o kulturze (lokalizacja zasobów liniowych i graficznych);
    • listę linków do wszystkich zewnętrznych zespołów, które są potrzebne do prawidłowego funkcjonowania.

    8. Schemat interakcji pomiędzy kodem źródłowym, kompilatorem .NET i silnikiem wykonawczym .NET.

    Programista tworzy kod źródłowy aplikacji w języku obsługującym technologię .NET (C#, C++/CLI, Visual Basic .NET itp.). Aplikacja jest tworzona w pewnym środowisku programistycznym, takim jak Microsoft Visual Studio. Kompilator generuje zestaw - plik zawierający instrukcje CIL, metadane i manifest.

    Po uruchomieniu tej aplikacji na określonym komputerze (na określonej platformie) uruchamiany jest silnik wykonawczy .NET. Najpierw na komputerze musi być zainstalowana jedna z wersji (przynajmniej) .NET Framework.

    Jeśli kod źródłowy wykorzystuje biblioteki klas bazowych (na przykład z zestawu mscorlib.dll), wówczas są one ładowane przy użyciu modułu ładującego klasy.

    Kompilator JIT kompiluje zestaw uwzględniając (linkując) cechy sprzętowe i programowe komputera, na którym uruchomiona jest aplikacja.

    Następnie aplikacja działa.

    Rysunek 2. Związek pomiędzy kodem źródłowym, kompilatorem i silnikiem wykonawczym .NET

    9. Jakie są rodzaje zespołów?

    Istnieją dwa typy zespołów:

    • zespoły jednoplikowe;
    • zespoły wieloplikowe.

    Zestaw składający się z jednego modułu (*.dll lub *.exe) nazywany jest jednoplikowym. Zestawy jednoplikowe umieszczają wszystkie niezbędne instrukcje CIL, metadane i manifesty w jednym, dobrze zdefiniowanym pakiecie.

    Zestaw składający się z wielu plików kodu binarnego .NET nazywany jest zestawem wieloplikowym. Każdy z tych plików nazywany jest modułem.

    W złożeniu wieloplikowym jeden z modułów jest modułem głównym (podstawowym).

    10. Który plik zawiera główny zestaw biblioteki MS Visual Studio?

    Główny zespół znajduje się w pliku „mscorlib.dll”.

    11. Jaki jest ogólny system typu CTS?

    CTS (Common Type System) – system typów zawierający pełny opis wszystkich możliwych typów danych i konstrukcji programów obsługiwanych przez środowisko wykonawcze CLR języka wspólnego. Opisuje także, w jaki sposób te podmioty mogą ze sobą współdziałać.

    Typami mogą być klasy, interfejsy, struktury, wyliczenia, delegaci.

    12. Jaki jest cel specyfikacji języka wspólnego CLS?

    Jak wiadomo, nie wszystkie języki programowania kompatybilne z .NET obsługują funkcjonalność systemu typu CTS. W tym celu używana jest specyfikacja języka wspólnego CLS (Common LanguageSpecification).

    Celem CLS jest opisanie tylko tego podzbioru typowych typów i konstrukcji programistycznych, które są akceptowane przez absolutnie wszystkie języki programowania obsługujące .NET.

    13. Jakie języki programowania obsługują technologię .NET?

    W systemie tworzenia aplikacji MS Visual Studio technologia .NET jest obsługiwana przez następujące języki programowania: C#, Visual Basic .NET, C++/CLI, JScript .NET, F#, J#.

    Aby móc korzystać z technologii .NET należy zainstalować oprogramowanie na swoim komputerze Zestaw programistyczny Microsoft .NET Framework(SDK) lub Microsoft Visual Studio dowolnej wersji.

    14. Co to jest przestrzeń nazw?

    Przestrzeń nazw ma na celu zjednoczenie grupy typów, które są ze sobą powiązane z semantycznego punktu widzenia. Typy są umieszczane w zespołach (zespół). Typy oznaczają klasy, delegaty, interfejsy, struktury i wyliczenia.

    Przykłady nazw przestrzeni nazw:

    System System.Dane System.IO System.Kolekcje System.Threading.Zadania

    Na przykład przestrzeń nazw System.Data zawiera główne typy do pracy z bazami danych, a przestrzeń nazw System.Collections zawiera główne typy do pracy z kolekcjami.

    15. Jak wyświetlić zawartość zestawów, przestrzeni nazw i typów w MS Visual Studio?

    System Microsoft Visual Studio posiada narzędzie Object Browser, które można wywołać z menu Widok (rysunek 3).

    Ryż. 3. Wywołanie narzędzia Przeglądarka obiektów

    Spowoduje to otwarcie okna Przeglądarki Obiektów, w którym zostaną wyświetlone złożenia stosowane w danej technologii.

    Rysunek 4 przedstawia listę zestawów, które są wyświetlane w technologii „.NET Framework 4”. Podświetlony jest zespół o nazwie „mscorlib”.

    Ryż. 4. Okno Przeglądarki obiektów z podświetlonym zespołem mscorlib.dll

    Jeśli rozszerzysz zawartość zestawu mscorlib („ + "), wówczas zostanie wyświetlona lista wszystkich przestrzeni nazw dla tego zestawu (Rysunek 5). Jak widać na rysunku, zestaw zawiera przestrzenie nazw Microsoft.Win32, System, System.Collections, System.Collections.Concurrent i wiele innych.

    Ryż. 5. Zestaw mscorlib i lista zawartych w nim przestrzeni nazw

    Każda z przestrzeni nazw jest rozwijana w ten sam sposób. Przestrzenie nazw opisują typy. Typy opisują metody, właściwości, stałe itp.

    Rysunek 6 przedstawia klasę BinaryReader z przestrzeni nazw System.IO. Najwyraźniej klasa implementuje metody o nazwach BinaryReader(), Close(), Dispose(), FillBuffer() i inne.

    Ryż. 6. Zawartość klasy BinaryReader

    16. Jak podłączyć przestrzeń nazw w programie C#?

    Aby połączyć przestrzeń nazw, użyj słowa kluczowego using