Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Gaál László rendszermérnök Microsoft Magyarország

Hasonló előadás


Az előadások a következő témára: "Gaál László rendszermérnök Microsoft Magyarország"— Előadás másolata:

1 Gaál László rendszermérnök Microsoft Magyarország
.NET Framework Gaál László rendszermérnök Microsoft Magyarország

2 Mi az a .NET? Marketing brand
Minden olyan termék, ami a .NET elképzelés megvalósítását szolgálja

3 Mi az a .NET? Technológiai készlet
XML webszolgáltatások, mint alapkoncepció .NET Framework Visual Studio.NET .NET My Services .NET Enterprise kiszolgálók Windows.NET Server stb.

4 Mi az a .NET? Technológiai készlet
XML webszolgáltatások, mint alapkoncepció .NET Framework Visual Studio.NET .NET My Services .NET Enterprise kiszolgálók Windows.NET Server stb.

5 Webszolgáltatások Kapcsolatteremtés
2. beszállító vállalat készlet- nyilvántartás rendelés- feldolgozás 1. beszállító 3. beszállító This is a build slide to explain what the foundations of web services are all about --internet, uddi, xml, soap. Need a way to connect –internet Need a way to “find” relevant services (think of yahoo search on steroids that tells you suppliers that have the part you want w/in the price range you can afford and can deliver on Thursday AND the info on how to deal w/ them ---what the PO should look like, credit ref, etc.) Need a way to “translate” your stuff to their stuff (can’t dictate how they handle or structure a PO) Need a way to actually KICK OFF the transaction (buy the part, make the deal, whatever) A szolgáltatásban részt vevő rendszerek összekapcsolása (HTTP) ügyfelek

6 Webszolgáltatások A kívánt szolgáltatás megkeresése
2. beszállító vállalat készlet- nyilvántartás 3. beszállító rendelés- feldolgozás 1. beszállító online „szaknévsor” A képességek, a megrendelés, az igénybevétel és a fizetés módjának lekérdezése (WSDL és UDDI) ügyfelek

7 Webszolgáltatások Adattovábbítás
2. beszállító vállalat készlet- nyilvántartás 3. beszállító rendelés- feldolgozás 1. beszállító online „szaknévsor” A szükséges adatok eljuttatása a résztvevő rendszerekhez (XML) ügyfelek

8 Webszolgáltatások Tranzakciók végrehajtása
2. beszállító vállalat készlet- nyilvántartás 3. beszállító rendelés- feldolgozás 1. beszállító online „szaknévsor” ügyfelek A kívánt műveletek elvégzése, a tranzakciók összehangolása (SOAP)

9 Egy lehetséges platform
Eszközök Felhasználói szolgáltatások Webszolgáltatások So what would a platform based on the web services model look like? [build] At the bottom, you would still have a variety of hardware running server operating systems and server software. And at the top, you would still have the devices that users can use to access the Internet. So far, this looks pretty familiar – just like the Web of today. But the problem right now is that in order to access services on different servers, users need to manually repoint their browsers from one server to another, and they don’t have a way to integrate the information that is available to them from different servers – even if the information is closely related. They also need to configure their preferences and information separately from every device, and separately for each of the server applications they access. So, to deal with the problem of aggregating the information on the different servers for the user, and consolidating things like user preferences and logins, you introduce a web services layer. And to bundle together and rationalize the variety of web services that a user will want to access, you create user experiences which offer a coherent and individually-tailored set of web services to the user, which they can access from any of their devices – cell phones, PCs, PDAs, and so on. Now the user has a completely different kind of Internet experience, where they can access from any device (any time anywhere) their custom-made user experience, which will in turn access all of the different web services they need to manage their information and activities in a consolidated fashion, regardless of where the actual servers are that the data and applications are running on. Kiszolgálók

10 Mi az a .NET? Technológiai készlet
XML webszolgáltatások, mint alapkoncepció .NET Framework Visual Studio.NET .NET My Services .NET Enterprise kiszolgálók Windows.NET Server stb.

11 Framework, nyelvek és eszközök
VB C++ C# JScript Visual Studio.NET Common Language Specification Webszolgáltatások Felhasználói felület Adatok és XML Alaposztályok Common Language Runtime

12 Framework, nyelvek és eszközök
VB C++ C# JScript Visual Studio.NET Common Language Specification Webszolgáltatások Felhasználói felület Adatok és XML Alaposztályok Common Language Runtime

13 Common Language Runtime tervezési szempontok
Egyszerűbb alkalmazásfejlesztés Robusztus és biztonságos futtató környezet Több programnyelv támogatása Egyszerűbb telepítés és üzemeltetés Common Type System Common Language Specification

14 A .NET fejlődése Alkalmazás Kód és adatstruktúrák A COM előtt az alkalmazások el voltak szigetelve egymástól (max. file-csere, vagy socket)

15 A .NET fejlődése A COM biztosítja az objektumok kommunikációját, de magunknak kell kialakítani a közös nevezőt.

16 A .NET fejlődése A .NET Framework és a CLR segítségével a komponensek közös alapra épülnek (direkt kommunikáció)

17 Programozás COM-alapon
IConnectionPoint IConnectionPointContainer Registry API CoCreateInstance IUnknown IMyInterface IProvideClassInfo ITypeInfo IErrorInfo IDispatch IDL Proxy-objektumok Threading modellek IDispatchEx Object context

18 Hívási és biztonsági kontextus Objektumok élettartama Memóriakezelés
A CLR modellje Hangsúly a funkción, nem a bedrótozáson IMyInterface Távoli hívások Hívási és biztonsági kontextus Objektumok élettartama Memóriakezelés Kivételkezelés

19 Egyszerűsített fejlesztés Haladunk a korral
Elimináljuk a háztartási teendőket Regisztrálás GUID-ok .IDL leírások HRESULT IUnknown AddRef/Release CoCreateInstance ”new” operator önleíró alkalmazások hierarchikus névterek egységes OM, metadata kivételkezelés nyelvi szinten mindenki egy ős-objektumból garbage collector

20 Egyszerűbb fejlesztés
Minden objektum-orientált Mindenhol használható osztályok és öröklődés Nyelvek között is! Az egyszerű típusok is osztályok automatikus konverzióval (boxing, unboxing) Zökkenőmentes integráció Minden .NET osztály használható COM objektumként – a Framework támogatja COM objektumokat is .NET osztályokként importálhatunk – kétirányú átjárhatóság

21 Common Language Runtime
Base Class Library Support Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debug Engine IL  Natív fordítók Code Manager Garbage Collector Class Loader

22 Robusztus és biztonságos Menedzselt kód
Menedzselt kód: verifikált Kötelező metainformációk Az IL kód szigorú típusellenőrzésnek vethető alá Megszűnnek népszerű hibaforrások veszélyes típusváltások (type cast) inicializálatlan változók tömbből kilógó indexek Kivételkezelés Nyelvi szinten definiált hibakezelés (nem BOOL vagy HRESULT) Sokkal használhatóbb hibajelzés Integrálódik a Windows strukturált kivételkezelésével is (SEH)

23 Robusztus és biztonságos Menedzselt adatok
Menedzselt adat: élettartam-felügyelet Minden .NET objektumot a GC takarít el (garbage collector – a szemetes) Nincs elfelejtett pointer, cirkuláris hivatkozásokat is megfejti Modern GC algoritmusok (mark & compact) Önhangoló

24 Kódgenerálás telepítéskor
Végrehajtási modell VB C# ... JScript Natív kód Kódgenerálás telepítéskor IL Common Language Runtime Standard JIT Compiler Natív kód

25 Végrehajtási modell Többfajta fordítási modell
Natív (pl. Managed C++) MSIL (pl. VB and C#) Röptében előállított IL (ASP.NET) Az Intermediate Language nem interpretált az IL kód telepítéskor vagy futtatáskor fordul gépi kódra

26 Az IL kód továbbfordítása
“Econo” JIT optimalizálatlan natív kódot generál eldobható és újragenerálható kód (Edit&Continue) “Standard” JIT optimalizáló kódgenerátor verifikálja az IL kódot Fordítás telepítéskor futtatás előtt végrehajtódik gyorsítja az indulást a natív kódban verzió-ellenőrzések, vissza tud állni JIT-re, ha problémát fedez fel

27 Biztonság Evidence-based security
Kódhoz kötött jogosultságok Nem csak a felhasználót azonosítja, hanem a végrehajtott kódot is Eredet könyvtár, URL, webhely, zóna, … Szerző Authenticode™ aláírás Támogatja és együttműködik a COM+ szerepkörökkel is Vigyázat: Beta 1-ben még nem teljesen támogatott

28 Biztonság A mai rendszerek csak a felhasználóhoz kötnek jogosultságokat Csak a felhasználók ellen véd Rosszindulatú kód ellen nem

29 Biztonság a CLR-ben A CLR biztonsági rendszere a kódra is kiterjeszti az ellenőrzést Véd a megbízhatatlan kód ellen

30 Kódhoz kötött jogosultság-ellenőrzés
Mint a lánc: a leggyengébb szem határozza meg a jogokat. Dinamikus jogosultság-ellenőrzés A1 G1 R/W Files A2 G2 semmilyen file-kezelés A3 G3 R/W Files X Nem fog működni, A2-nek nincs elegendő jogosultsága

31 Jogosultság-ellenőrzés
Minden assembly rendelkezik jogokkal (grants – G) Assembly A3 Assembly A2 Assembly A1 Assembly A4 Hívási stack (lefele nő) P P P P-t összehasonlítja A4 és összes hívójának jogaival Az A4 assembly-ben egy metódus a P engedélyt kéri P

32 Mitől lesznek jogaink? Házirend
Különböző szintű kód-csoportokhoz házirendek tartoznak a kód is azonosítható, mint egy felhasználó a csoportokhoz jogosultságok tartoznak Csoporttagságok bizonyítékok (evidence) a csoporthoz tartozó engedélyeket kapja meg a kód Minden kód P Kibocsátó: Microsoft Zóna: Internet Zóna : Helyi intranet Site: XYZ.COM P P P P Név: MS.Office Név : MS.Money Kibocsátó : Corp. Admin Site: localweb P P P P

33 Példa MS.Money a helyi intraneten Négy csoport tagja (kék)
Engedélyek = P1  P2  P7  P4 Minden kód All Code P1 Publisher: Microsoft Kibocsátó : Microsoft Zóna : Internet Zone: Local Intranet Zóna : Helyi intranet Site: XYZ.COM P2 P3 P4 P5 Név : MS.Office Name: MS.Money Név : MS.Money Kibocsátó : Corp. Admin Site: localweb P6 P7 P8 P9

34 Többnyelvű platform Szabadon választhatunk nyelvet
A .NET platform minden szolgáltatása rendelkezésre áll minden nyelvben Több nyelven folyhat a fejlesztés Mindenhol használható eszközök Debugger, profiler, kód-elemző eszközök – minden nyelvhez használhatóak Az általános, minőségi szoftverfejlesztés fontos segédeszközei Ehhez kell a…

35 Metadata Nyelvfüggetlen típus-információk
A fordítók automatikusan generálják a kóddal együtt a végrehajtható file-ban bináris formátumban tárolódik Szükséges a futtatáshoz (nem opcionális) Konvertálható XML sémába és COM típustárba (type library) – és viszont

36 Mit tartalmaz a Metadata?
A telepítési egység (assembly) leírását Azonosítás: név, verzió, nyelv [, nyilvános kulcs] Exportált típusok Függőségek Biztonsági igények a futtatáshoz Típusok leírása név, láthatósági szabályok, alaposztályok, implementált felületek Tagok (metódusok, mezők, tulajdonságok, események, belső típusok) Egyedi attribútumok Felhasználó által definiált (szerző megnevezése?) Fordító által definiált (const) Framework által definiált (DllImport, Obsolete)

37 Metadata: mire használjuk? Common Language Runtime
Serialization Reflection Forráskód TLB Exporter Designers Fordító Fordítók Debugger Metadata (és kód) Típus-böngésző Profiler Proxy-generátor Sémagenerátor XML reprezentáció

38 Egyszerűbb telepítés Assembly-k (szerelvény?)
A kód elemi egysége telepítés, verziókezelés és biztonsági/jogosultsági szempontból Hasonlít a DLL-hez, de önleíró a manifest segítségével Manifest: a metadata hordozója Mellékhatások nélküli telepítés Közös vagy privát alkalmazások és komponensek ezt a szerző határozza meg! Egymás melletti futtatás Alkalmazáson / folyamatok belül is futhat egymás mellett több változat

39 ILDASM avagy mi van az assembly-ben?

40 Framework, nyelvek és eszközök
VB C++ C# JScript Visual Studio.NET Common Language Specification Webszolgáltatások Felhasználói felület Adat és XML Alaposztályok Common Language Runtime

41 A Framework koncepciója
Webes fogalmakra és megoldásokra épít Egységes alkalmazásmodell Egyszerűen használható Jól modularizált, kiterjeszthető

42 A webes gyakorlatot követi
HTML, XML, SOAP, XSLT, XPath… direktben támogatja Internetes, elosztott alkalmazások nem működik a hagyományos, szorosan csatolt modell a .NET Framework lazán csatolt, állapotmentes modellt preferál Az mindenre kihatással van: alapszolgáltatások, adatelérés, felhasználói felület, aktiváció, programozási modell, stb.

43 A Framework és a webes modell
A Framework biztosítja a kölcsönös leképezést Koncepció az alkalmazásban Web XML XSD WSDL SOAP Framework objektumok osztályok metódusok hívások Adat Séma Szolgáltatás Hívás

44 Nyelvtől és programozási modelltől független API-készlet
Egységesített modell .NET Framework Nyelvtől és programozási modelltől független API-készlet VB Forms RAD, építőkockák, delegált modell MFC/ATL Leszármaztatás, teljesítmény, kifejező modell ASP Állapotmentes, kód és HTML egy helyen Windows API

45 Egyszerű használni segít, hogy jó és helyes kódot írjunk
Szerveződés Hierarchikus osztályokba és névterekbe szervezett kód Egységes, gazdag típusrendszer Minden objektum, nincs VARIANT, egyfajta string, minden karakteres adat Unicode Komponens-orientált A tulajdonságok, metódusok, események, attribútumok nyelvi szinten jelennek meg Design-time funkcionalitás

46 Moduláris, kiterjeszthető
A Framework nem „fekete doboz” Bármely .NET osztály kiterjeszthető örökléssel Nem COM, nem „burkoló komponenst” készítünk, valódi öröklés! Akár nyelvek között is, forráskód nélkül

47 A .NET Framework Webszolgáltatások Felhasználói felület (WinForm)
Adatkezelés Xml Alaposztályok

48 A .NET Framework System System.Data System.Xml System.Web
Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Design ADO SQLTypes SQL XPath XSLT Runtime InteropServices Remoting Serialization SessionState Caching Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Printing System.WinForms ComponentModel

49 Alapszolgáltatások System Collections Security Configuration
ServiceProcess Diagnostics Text Globalization Threading IO Runtime InteropServices Net Remoting Reflection Serialization Resources

50 Adat és XML System.Data ADO SQL Design SQLTypes System.Xml XSLT
Serialization XPath

51 Web Form, szolgáltatások
System.Web Services UI Description HtmlControls Discovery WebControls Protocols Caching Security Configuration SessionState

52 Win Form, szolgáltatások
System.WinForms Design ComponentModel System.Drawing Drawing2D Printing Imaging Text

53 Framework, nyelvek és eszközök
VB C++ C# JScript Visual Studio.NET Common Language Specification Webszolgáltatások Felhasználói felület Adatok és XML Alaposztályok Common Language Runtime

54 Nyelvek A .NET platform nyelvfüggetlen Common Language Specification
Nincsenek másodrendű nyelvek A Framework minden szolgáltatása hozzáférhető minden nyelv számára Minden nyelv egyformn fordul, egyik sem interpretált Az eddigi tudás tovább használható Common Language Specification Consumer: a .NET Framework felhasználója Extender: a .NET Framework továbbépítője

55 Nyelvek Perl C Python C++ COBOL C# Haskell Visual Basic ML SmallTalk
JScript Ada APL Eiffel Pascal C C++ C# Visual Basic SmallTalk Oberon Scheme Mercury Oz Objective Caml

56 Visual Basic.NET Egyenrangú nyelv Jelentős nyelvi fejlődés
VBRUN helyett .NET Framework a .NET Framework minden lehetőségét direktben használhatja Jelentős nyelvi fejlődés Osztályok, öröklődés, konstruktorok, stb. Strukturált kivételkezelés (SEH) Egyfajta értékadás! Lehetőség a szigorú típusellenőrzésre Nincs többé VBSCRIPT az ASP-ben Lefordított VB.NET kód lesz

57 C++ Managed Extensions
Létező kód átvitele a .NET Framework környezetébe Még mindig C++ minimális kiterjesztések, az ANSI szellemében nem vesz el semmit Továbbra is „Total Control” natív és menedzselt kód keverése, akár nem szemétgyűjtött adattal is Lehetővé teszi a fokozatos átállást Teljes hozzáférés a .NET Framework-höz

58 C# A C/C++ család első komponens-orientált tagja Minden objektum
Properties, Methods, Events, Attributes, XML documentation Minden egy helyen, nincs IDL, stb. ASP+ lapokba is integrálható Minden objektum a primitív típusokhoz sem kell varázsolni A Framework is C#-ben van többmillió sor tesztelt kód ECMA szabvány

59 Framework, nyelvek és eszközök
VB C++ C# JScript Visual Studio.NET Common Language Specification Webszolgáltatások Felhasználói felület Adatok és XML Alaposztályok Common Language Runtime

60 Forráskód, kipróbálás A CLR Shared Source implementációja elérhető az MSDN-en (kódneve: Rotor) Windows source licenc a BME-n 1999 óta érdeklődni: dr Charaf Hasszán, Automatizálási tsz. Windows XP, Visual Studio a Campus Agreement-ben

61 Kérdések (és válaszok)
Itt és most portál és web-áruház ASP.NET alapon

62 © 2002 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

63 TPC-C top ten


Letölteni ppt "Gaál László rendszermérnök Microsoft Magyarország"

Hasonló előadás


Google Hirdetések