1 / 57

.NET web szolgáltatások

.NET web szolgáltatások. .NET, C# áttekintés Bilicki Vilmos bilickiv@inf.u-szeged.hu www.inf.u-szeged.hu/~bilickiv. A mai előadás tartalma:. .NET Architektúra Objektumok Meta Adatok Futtató környezet Szemétgyűjtő . DEMÓ: WEB Service. A .NET keretrendszer áttekintése.

landen
Télécharger la présentation

.NET web szolgáltatások

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. .NET web szolgáltatások .NET, C# áttekintés Bilicki Vilmos bilickiv@inf.u-szeged.hu www.inf.u-szeged.hu/~bilickiv

  2. A mai előadás tartalma: • .NET • Architektúra • Objektumok • Meta Adatok • Futtató környezet • Szemétgyűjtő 

  3. DEMÓ: WEB Service

  4. A .NET keretrendszer áttekintése • A .NET keretrendszer • Common Language Runtime • A .NET keretrendszer osztálykönyvtára • ADO.NET: Adatés XML • Web szolgáltatások

  5. Message Queuing COM+ (Transactions, Partitions, Object Pooling) IIS WMI A .NET keretrendszer VB C++ C# Perl Python … Web Services User Interface ASP.NET ADO.NET: Data and XML .NET Framework Class Library Common Language Runtime Win32

  6. Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debugger MSIL to Native Compilers Code Manager Garbage Collection Common Language Runtime .NET Framework Class Library Support Class Loader

  7. A .NET osztálykönyvtár • Átfogja a használható programozási nyelveket • Nyelvközi öröklődést és hibakeresést tesz lehetőve • Jól integrálódik az eszközökkel • Objektum orientált és konzisztens • Növeli a produktivitást mert csökkenti a megtanulandó API-k számát • A közös típus rendszeren készült • Bővíthető • Egyszerűen módosíthatjuk a keretrendszer tulajdonságait • Biztonságos • Biztonságos alkalmazásokat írhatunk

  8. System.Data System.Xml OleDb SqlClient XSL Serialization Common SQLTypes XPath ADO.NET: Adatés XML ADO.NET: Data and XML

  9. Web űrlapok és szolgáltatások ASP.NET System.Web Services UI Description HtmlControls Discovery WebControls Protocols Caching Security SessionState Configuration

  10. Névterek System Collections IO Security Runtime Configuration Net ServiceProcess Diagnostics Reflection Text Globalization Resources Threading

  11. .NET keretrendszer fontosabb megoldásai • Windows Forms • Web Forms • XML Web Services

  12. Demó C#, VB

  13. Menedzselt futtatás EXE/DLL(MSIL and metadata) SourceCode Compiler ClassLibraries(MSIL and metadata) Class Loader JIT Compilerwith optionalverification Call to anuncompiledmethod Trusted,pre-JITedcode only ManagedNative Code Execution Security Checks Runtime Engine

  14. Meta adat • Fordításkor minden fontos információt megtart • Minden .NET fájl és szerelvény tartalmazza • Lehetővé teszi a futtató környezet számára: • Kód megtalálását és betöltését • Kód biztonság növelését • Gépközeli kód generálását • Reflexiót

  15. Microsoft Köztes Nyelv • MSIL • Minden támogatott fordító erre fordít • JIT fordítók fordítják gépközeli nyelvre

  16. .gif .html Szerelvények (Assemblies) Managed Module (MSIL and Metadata) Managed Module (MSIL and Metadata) Assembly Manifest Multiple Managed Modules andResource FilesAre Compiled to Produce an Assembly Resource Files

  17. Demó ILDASM

  18. Alkalmazás tartományok • Processz határok jelentették az alkalmazások határát • A CLR-ben Alkalmazás Tartományok jelentik ezt • A kód ellenőrzés miatt sokkal kisebb költséggel menedzselhetőek • Több alkalmazás tartomány futhat egy processzben • Egy alkalmazás meghibásodása nem hat a másikra

  19. Alkalmazások telepítése • Közös koncepció • Egyszerű alkalmazások • Komponensre bontott alkalmazások • Konfiguráció és elosztás

  20. Közös Koncepció • Az osztályok és típusok: • Névterekbe vannak rendezve • PE fájlokba tárolódnak (DLL, EXE) • Teljesen dokumentáltak (Meta Data) • Szerelvények (Assemblies): • Egy vagy több PE fájl tartalmaznak • Tartalmaz egy leíró fájlt mely megadja a benne szereplő fájlokat • Specifikálja az importált és expoprtált osztályokat • Az alap eleme a telepítésnek, verzió kezelésnek

  21. Egyszerű alkalmazások • .NET futtató környezete szükséges • Távolról és helyi gépről is futtatható • Nem készítenek Registry bejegyzéseket • Nem tehet tönkre más alkalmazást • Megszűnik a DLL pokol • A helyi fájlok törlésével eltávolítható

  22. Komponensre bontott alkalmazások • Saját szerelvények • Tulajdonképpen az alkalmazás • Összefüggő alkalmazások szerevényei: • Közös alkönyvtárba telepítve • Megosztott szerelvények • Erős név és verzió információ szükséges • A globális szerevény gyorstárba települnek

  23. Konfiguráció és telepítés • Konfiguráció • Egyszerű szövegfájlok • Telepítés • MSI, CAB formátum • Windows 2000 IntelliMirror or Microsoft Systems Management Server

  24. Komponensek használata • Mások által használt szerelvény: • Stringer.dll szerelvény a Stringer.cs –ből gyártva: • Kliens hivatkozása csc /target:library Stringer.cs csc /reference:Stringer.dll Client.cs

  25. Saját szerelvények specifikálása • Könyvtár megadása • Client.exe.config privatePathelem <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath=“MyStringer"/> </assemblyBinding> </runtime> </configuration>

  26. Erős nevű szerelvény • Globális szerelvény gyorstár • Nem összetartozó programok által közösen használt szerelvényeket tartalmazza • Erős nevekre van szükség • PKI használat: • Verzió és kulcs információ: • Fordítás: sn –k orgKey.snk #if STRONG [assembly: System.Reflection.AssemblyVersion("1.0.0.0")] [assembly: System.Reflection.AssemblyKeyFile("orgKey.snk")] #endif csc /define:STRONG /target:library /out:AReverser.dll AReverser.cs

  27. Megosztott komponensek telepítése • A központ gyűjteménybe • Központi gyűjtemény vizsgálata • Eltávolítás gacutil /i AReverser.dll gacutil /l gacutil /u AReverser

  28. Demó: Verzió, Kulcs, Telepítés

  29. Közös típus rendszer • Common Type System • Elemei • OO tulajdonságok

  30. Közös Típus Rendszer arch.

  31. Érték típusok és Referencia típusok • Érték típusok primitív vagy a felhasználó által definiált adatstruktúrák • A Stack-ben helyezkednek el • Alapértelmezésben másolatként adódnak át • Referencia típusok objektumok: • A heap memóriában jönnek létre a new kulcsszóval • Referencia szerint adódnak át

  32. A CTS elemei • Primitív típusok • Objektumok • Konstruktorok • Tulajdonságok • Saját Típusok • Felsorolásos típusok • Interfészek

  33. Primitív típusok • A legtöbb nyelvben közös kis típusok • Elnevezési különbségek • C# támogatás • Konverziók

  34. Objektumok • Minden osztály a System.Object-ből származik • Specifikálják az adatot és a viselkedést • A mezők definiálják az adatot • A metódusok a viselkedést class Accumulator { public float Result; public void Add(float amount) { Result += amount; } }

  35. Konstruktorok • Inicializálás • Nulla vagy több paraméter class Rectangle { private int x1,y1,x2,y2; public Rectangle(int x1, int y1, int x2,int y2) { this.x1 = x1; this.x2 = x2; this.y1 = y1; this.y2 = y2; } }

  36. Tulajdonságok • Hozzáférés mezőkhöz (CORBA attribute) • Get/Set public float Start { get { return start; } set { if (start >= 0) start = value; } }

  37. Saját típusok • A System.ValueType-ből származnak • A struct kulcsszóval definiáljuk (C#) • Nem származtatható struct Employee { public string Name; public ushort Age; public DateTime HireDate; public float Tenure() { TimeSpan ts = DateTime.Now – HireDate; return ts.Days/(float)365; } }

  38. Felsorolások • .NET keretrendszer felsorolások • ASystem.Enum-ból származnak • Az enumkulcsszóval enum SeatPreference : ushort { Window, //Assigned value 0 Center, //Assigned value 1 Aisle //Assigned value 2 }

  39. Interfészek • Metódusok és tulajdonságok megjelölése interface ICDPlayer { void Play(short playTrackNum); void Pause(); void Skip(short numTracks); short CurrentTrack { get; set; } }

  40. Polimorfizmus • Sealed • Abstract • New • Virtual • Override

  41. Demó: Kutya

  42. Meta adatok • Hordozható kód (reflexió) • CORBA IDL • Java bájtkód

  43. Attribútumok • Az attribútumok: • Olyan elemek melyek a futtató környezet számára biztosítanak információkat • A meta adatok között vannak tárolva • .NET –ben előre definiált attribútumokat is használhatunk • A futtató környezet az attribútumoknak megfelelően viselkedik [attribute(positional_parameters,named_parameter=value, ...)] element

  44. Használható attribútumok class MyClass { [Conditional ("DEBUGGING")] public static void MyMethod( ) { ... } } [DllImport("MyDLL.dll", EntryPoint=“MyFunction")] public static extern int MyFunction(string param1); public class MyClass( ) { ... int result = MyFunction("Hello Unmanaged Code"); ... } using EnterpriseServices; ... [Transaction(TransactionOption.Required)] public class MyTransactionalComponent : ServicedComponent { ... }

  45. Saját attribútumok • Hatókör specifikálása AttributeUsage [AttributeUsage(AttributeTargets.Method)] public class MyAttribute: System.Attribute { ... } [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)] public class MyAttribute: System.Attribute { ... }

  46. Példa [AttributeUsage(AttributeTargets.Property)] public class SPEPPAttribute : System.Attribute { private String _name; private FType _ftype; private String _values; public SPEPPAttribute(String name) { _name = name; } public String Name { get{return _name;} set{_name = value;} } public FType FieldType { get{return _ftype;} set{_ftype = value;} } public String FieldValues { get{return _values;} set{_values = value;} } }

  47. Példa [SPEPPAttribute("Way", FieldType=FType.Enum, FieldValues = "MessageDirection")] public string Way { get { return this._way; } set { this._way = value; } }

  48. Példa pF.Text = this.GetType().Name+" Properties"; foreach(System.Reflection.PropertyInfo pinf in GetType().GetProperties()) attrs = pinf.GetCustomAttributes(typeof(SPEPPAttribute),true); foreach(SPEPPAttribute sa in attrs) { label = new Label(); label.Text = sa.Name; if(label.Text.Length > maxSizeX) maxSizeX = label.Text.Length; label.Location = p; pF.Controls.Add(label); switch(sa.FieldType) { case FType.Enum: try { typ = Type.GetType("spepp."+sa.FieldValues,true,true); } catch(Exception e) {MessageBox.Show(e.Message);} langAr = Enum.GetNames(typ); ..

  49. Meta adatok vizsgálata • MemberInfo osztály a System.Reflection névtérben • System.Type.GetMembers • System.Type System.Reflection.MemberInfo[ ] memberInfoArray; memberInfoArray = typeof(MyClass).GetMembers( ); System.Reflection.MemberInfo typeInfo; typeInfo = typeof(MyClass); object[ ] attrs = typeInfo.GetCustomAttributes(false);

  50. Memória menedzsment • Memória Menedzsment alapok • Erőforrás menedzsment (nem memória) • Implicit erőforrás menedzsment • Explicit erőforrás menedzsment

More Related