PSZ wykład 1 > Systemy i środowiska zintegrowane Programowanie w Środowiskach Zintegrowanych > Systemy i środowiska zintegrowane > Środowisko zintegrowane Visual Studio .NET
w wykładzie wykorzystano dostępne publicznie materiały firmy Microsoft, pochodzące z prezentacji „.NET Framework & C#”
Konspekt bieżącego wykładu Systemy i środowiska zintegrowane .NET Framework Środowisko VS.NET Elementy środowiska
Środowiska zintegrowane Założenia i motywacja Elementy środowiska zintegrowanego Integracja
Założenia i motywacja [przypomnienie] Podstawowy cel - przyspieszenie procesu powstawania aplikacji Założony cel osiąga się przez Dostarczenie biblioteki predefiniowanych, silnie konfigurowanych komponentów Zapewnienie możliwości wizualnej konfiguracji komponentów w czasie tworzenia aplikacji Dostarczenie środowiska wyposażonego w różne narzędzia wspomagające pracę programisty Rozszerzenia i modyfikacje składni języków oprogramowania Integrację środowiska z otoczeniem aplikacji ( bazami danych, systemem plików, siecią komputerową, urządzeniami systemowymi); integracja poprzez komponenty Integrację z gotowymi aplikacjami merytorycznymi (biznesowymi)
Narzędzia wspomagające pracę programisty [przypomnienie] Inteligentny edytor ( rozumienie składni, kompilacja on-line, generator podpowiedzi ) Generator struktur kodowych Strukturalna przeglądarka kodu – możliwość wizualizacji kodu w postaci drzewa struktur kodowych Przeglądarki klas, komponentów i obiektów Edytor właściwości komponentów Zintegrowany lokalny debuger Zdalny debuger Integracja z serwerem IIS / SQLSerwer / CrystalReports
Integracja środowiska z otoczeniem Interfejs dla baz danych w trybie ODBC, ADO Interfejs dla baz danych w trybie bezpośrednim (natywnym) Integracja z urządzeniami systemowymi Integracja z siecią komputerową Integracja z siecią Internet i jej usługami Interfejs programowania rozproszonego ( DCOM, CORBA ) Integracja z innymi aplikacjami na poziomie standardowych protokołów tekstowych ( XML, SYNCML, SOAP )
Integracja z aplikacjami merytorycznymi Rozwój najbardziej typowych aplikacji na bazie określonego środowiska realizowany przez dostawcę środowiska Dostawca najpierw tworzy środowisko programistyczne, a później typowe aplikacje Najczęściej są to aplikacje wspomagające biznes (aplikacje biznesowe) Firma kupuje oprogramowanie wraz ze środowiskiem Zatrudniając programistów może wpływać na kształt zakupionego systemu
Środowisko Visual Studio .NET™ Platforma .NET Elementy środowiska Języki programowania Biblioteki
Platforma .NET Co to jest .NET Framework ? Cele projektowe: środowisko aplikacyjne dla obecnych i przyszłych systemów Windows Cele projektowe: Ułatwienie projektowania i programowania Jednolity model projektowy Środowisko szybkiego wykonywania programu Wsparcie dla wielu języków programowania .NET Framework jako przeciwwaga dla platformy JAVA
Platforma .NET Operating System Common Language Runtime Języki programowania Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms Common Language Specification VB C++ C# JScript J# Visual Studio.NET Specyfikacja języka Współdzielone biblioteki Środowisko CLR System operacyjny
Ewolucja platformy .NET Przed modelem COM aplikacje były kompletnie niezależnymi encjami, które praktycznie się ze sobą nie komunikowały Aplikacje Kod i struktury danych
Ewolucja platformy .NET Model COM wprowadził mechanizmy, dzięki którym aplikacje mogły być budowane w oparciu o wielokrotnie wykorzystywane komponenty; niestety COM nie był prosty i wymagał implementacji interfejsów
Ewolucja platformy .NET Dzięki NET konieczność budowy interfejsów staje się zbędna. .NET sama w sobie jest kontenerem dla wielu mogących ze sobą współpracować komponentów
Common Language Runtime Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms Common Language Specification VB C++ C# JScript J# Visual Studio.NET
Kompilacja i wykonywanie kodu Assembly Code (IL) Source Code Language Compiler Metadata wykonanie Native Code JIT Compiler kompilacja podczas instalacji lub przy pierwszym wywołaniu metody
Uproszczenie kodowania Wspólny system typów (ang. Common Type System) Wspólna definicja typów w ramach platformy Możliwości natywnego programowania OOP Klasy i interfejsy Konstruktory, cechy, metody, zdarzenia Automatyczne zwalnianie pamięci (ang. garbage collector ) Dziedziczenie pomiędzy klasami zbudowanymi w różnych językach Interoperacyjność Z obiektami COM Z natywnymi bibliotekami (Win32) DLL
Wszystko jest obiektem Boxing Alokuje obiekt, kopiuje wartość do obiektu Unboxing Sprawdza typ obiektu, kopiuje wartość na zewnątrz int i = 123; object o = i; int j = (int)o; Dim i As Integer = 123 Dim o As Object = i Dim j As Integer = CInt(o) 123 i o System.Int32 j
Bezpieczeństwo Wbudowane mechanizmy zabezpieczeń Dostęp do kodu i jego wykonywanie jest bezpieczne Identyfikacja kodu Admistracja przez polisy Różne mechanizmy zabezpieczeń dla ASP.NET wbudowane w Windows, Passport®, oparte na formach, … Biblioteki kryptograficzne oparte na XML DSIG Cyfrowe sygnatury dla XML (www.w3.org/signature)
Zarządzanie i utrzymanie kodu Bezproblemowa instalacja Konfiguracja bez konieczności konfiguracji rejestru windows Aplikacje i komponenty mogą być dzielone bądź prywatne Zmiany wersji Środowisko umożliwia koegzystencje wielu wersji tych samych komponentów zainstalowanych w systemie Komponenty Mogą zawierać informacje o wzajemnej zależności
Języki i narzędzia Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms Common Language Specification VB C++ C# JScript J# Visual Studio.NET
Zunifikowany model programowy Windows API .NET Framework Wspólny model programowy dla wszystkich języków programowania ASP Kod zaszyty w stronach WWW MFC/ATL Podział na klasy, biblioteki, serializacja itp VB Forms RAD, Kompozycja, Delegacja
Biblioteki .NET framework Base Class Library ADO.NET and XML Web Forms Web Services Mobile Internet Toolkit Windows Forms ASP.NET
Biblioteki .NET framework System System.Data System.Xml System.Web Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Common OleDb SQLTypes SqlClient XPath XSLT Runtime InteropServices Remoting Serialization SessionState Caching Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Printing System.Windows.Forms Design ComponentModel
Biblioteki .NET framework: SYSTEM Threading Text ServiceProcess Security Resources Reflection Net IO Globalization Diagnostics Configuration Collections Runtime Serialization Remoting InteropServices
Biblioteki .NET framework: SYSTEM :Data i XML System.Xml SQLTypes SQLClient Common OleDb Serialization XPath XSLT
Biblioteki .NET framework: ASP.NET System.Web Caching Configuration Services UI SessionState HtmlControls WebControls Description Discovery Security Protocols
Biblioteki .NET framework: Windows® Forms System.Drawing Drawing2D Imaging Printing Text System.Windows.Forms Design ComponentModel
Języki programowania Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms Common Language Specification VB C++ C# JScript J# Visual Studio.NET
Języki programowania Środowisko jest niezależne od języka można używać praktycznie dowolnego języka można zmieniać języki w czasie pisania kodu można implementować biblioteki w różnych językach Common language specification zestaw cech, które muszą być zawarte w języku w celu zagwarantowania jego zgodności z platformą Zestaw języków dostępny w VS.NET: Visual Basic®, C++, C#, J#, JScript® Zewnętrzne języki APL, COBOL, Delphi, Pascal, Eiffel, Haskell, ML, Oberon, Perl, Python, Scheme, Smalltalk… Języki preferowane: C# i Visial Basic
.NET posumowanie Spójny model programowy Ułatwienie kodowania Wspólny model bibliotek Możliwa adaptacja dla innych platform Alternatywa dla języka java w świecie PC
Visual Studio .NET Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms Common Language Specification VB C++ C# JScript J# Visual Studio.NET
Elementy środowiska VS.NET Okno główne i paski narzędziowe Inspektor obiektów Okno drzewa obiektów, przeglądarka klas Edytor kodu i diagramów Generator podpowiedzi i skrótów Menedżer projektów Zintegrowany debugger Biblioteki komponentów Komponenty dostępne na „rynku komponentów”
Elementy środowiska VS.NET Projekt Komponenty Właściwości Klasy Pomoc Serwery Pasek Menu Zakładki z plikami źródłowymi Komunikaty, błędy, ostrzeżenia
VS.NET typy projektów Szablony projektów Języki programowania Aplikacje typu SETUP Bazy danych i rozszerzenia IDE Inne rozwiązania wybór projektu i szablonu determinuje jakie pliki zostaną automatycznie dopięte do projektu i jakimi komponentami będziemy dysponować
VS.NET przykład HelloWorld w C# using System; namespace HalloWorld { /// <summary> /// Nasza pierwsza aplikacja. /// </summary> class MyClass /// Metoda startowa. [STAThread] static void Main(string[] args) // // TODO: Add code to start application here Console.WriteLine("Hello world"); }
VS.NET przykład HelloWorld w C# W oknie projektu (Solution Explorer) widzimy nazwy plików składających się na pakiet, informacje o metadanych, definicję ikony oraz drzewo zależności które potrzebne są do prawidłowego działania modułu W widoku klas (Class View) widzimy informacje o przestrzeni nazw, klasach, polach metodach i klasach bazowych klas; ikony oznaczają typ dostępu Po kliknięciu prawym klawiszem myszy i wybraniu „Properties” widzimy cechy obiektu bądź – jak w tym przypadku – klasy; można je dynamicznie zmieniać
VS.NET debugowanie i uruchamienie
Na wykładzie Wprowadzenie do .NET framework Założenie i motywacja Języki Środowisko wykonywania Przegląd bibliotek Środowisko Visual Studio IDE Elementy środowiska