Fejlett Programozási Technikák 2.

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

4. alkalom – Hálózat Kezelés
Windows Communication Foundation (WCF)

Kamarai prezentáció sablon
Néhány fontosabb nyelvi elem
Gaál László rendszermérnök Microsoft Magyarország
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Erőállóképesség mérése Találjanak teszteket az irodalomban
Mellár János 5. óra Március 12. v
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Adatbányászati technikák (VISZM185)
RMI = Remote Method Invocation
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Osztályok Garbage collection.  általában minden osztálynak vannak adattagjai és/vagy metódusai ◦ adattagok megadása:  [láthatóság] [static] [final]
.NET web szolgáltatások
1.NET web szolgáltatások WSE 2.0 BPEL Beadandó feladat A félév áttekintése Bilicki Vilmos
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Ember László XUBUNTU Linux (ami majdnem UBUNTU) Ötödik nekifutás 192 MB RAM és 3 GB HDD erőforrásokkal.
1. IS2PRI2 02/96 B.Könyv SIKER A KÖNYVELÉSHEZ. 2. IS2PRI2 02/96 Mi a B.Könyv KönyvelésMérlegEredményAdóAnalitikaForintDevizaKönyvelésMérlegEredményAdóAnalitikaForintDeviza.
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Osztott alkalmazások kezelése. VIR elosztott architektúra indítékai: - meglévő komponensek integrációja - WEB / Internet elterjedése (nemzetköziség) -
C# tagfüggvények.
C# osztályok Krizsán Zoltán 1.0.
1.NET CLR Krizsán Zoltán Általános Informatikai Tanszék Miskolci Egyetem 1.0.
C# tagfüggvények.
Krizsán Zoltán iit 1.2.  Nem kell vizuális felületnek lennie.  Delegátumok segítségével valósíthatja meg a.NET. Krizsán Zoltán iit Delegátumok C#-ban2.
6. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
Annotációk a Java 5 nyelvben Kozsik Tamás. Annotációk Módosítószavak bővítése A programszöveg elemeihez rendelhetők –Csomagokhoz, típusokhoz, metódusokhoz,
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
Egyszerű webes alkalmazás fejlesztése Készítette: Simon Nándor.
Egyszerű webes alkalmazás fejlesztése
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
V 1.0 ÓE-NIK, Programozás I. A Microsoft Visual Studio 2010 használata.
szakmérnök hallgatók számára
ARCHITECTArchitect AcademyFoundationsInsidersMCPtréningekvizsgákgyakorlatprojektek Novák István eEvangelist – „Dive deeper” Grepton Zrt. Technológiai vezető.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
2007. május 22. Debrecen Digitalizálás és elektronikus hozzáférés 1 DEA: a Debreceni Egyetem elektronikus Archívuma Karácsony Gyöngyi DE Egyetemi és Nemzeti.
Bevezetés a PRADO keretrendszerbe Kardos Gergely.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
A D programozási nyelv Angeli Dávid. Nagy vonalakban  C++  
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
2006. Peer-to-Peer (P2P) hálózatok Távközlési és Médiainformatikai Tanszék.
QualcoDuna interkalibráció Talaj- és levegövizsgálati körmérések évi értékelése (2007.) Dr. Biliczkiné Gaál Piroska VITUKI Kht. Minőségbiztosítási és Ellenőrzési.
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Java web programozás 11..
> aspnet_regiis -i 8 9 TIPP: Az „Alap” telepítés gyors, nem kérdez, de később korlátozhat.
A KÖVETKEZŐKBEN SZÁMOZOTT KÉRDÉSEKET VAGY KÉPEKET LÁT SZÁMOZOTT KÉPLETEKKEL. ÍRJA A SZÁMOZOTT KÉRDÉSRE ADOTT VÁLASZT, VAGY A SZÁMOZOTT KÉPLET NEVÉT A VÁLASZÍV.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Haladó Programozás Reflexió OE-NIK HP.
DLL használata és készítése Feladat
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
Informatikai gyakorlatok 11. évfolyam
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
„Designer-barát” játéklogika
A CLIPS keretrendszer
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Web programozás és haladó fejlesztési technikák – C#
Előadás másolata:

Fejlett Programozási Technikák 2. 15/13

Web szolgáltatások Mik a web szolgáltatások? URL-címekkel elérhető hálózaton meghirdetett funkciók Internet technológia alapúak Építő elemek A jövő elosztott alkalmazásainak alapkövei

Szolgáltatás Orientált Architektúra Szolgáltatás Bróker Szolgáltatás Nyújtó Szolgáltatás Fogyasztó Publikál Keres Köt

Web szolgáltatás architektúra áttekintése UDDI (Web Szolgáltatás Bróker) Web szolgáltatás nyújtó Web szolgáltatás felhasználó Publikál Keres Köt Internet

Web szolgáltatás szolgáltató Például: Web szerverek .NET Common Language Runtime

Web szolgáltatás fogyasztó Minimális funkcionalitás Szolgáltatás keresés Proxi-k Aszinkron hívások

Web szolgáltatás bróker Együttműködés a brókerek és a szolgáltatók között Együttműködés a brókerek és a fogyasztók között UDDI tárlolók

A web szolgáltatás programozói modell Web protokollok Állapotmentes Lazán csatolt Univerzális adatformátum

BPEL4WS XML nyelv Elődei: Üzleti folyamatok definiálása IBM WSFL Microsoft XLANG Üzleti folyamatok definiálása Web szolgáltatások összekapcsolása Üzleti folyamat Egy új web szolgálatatást hoz létre egy adott web szolgáltatás halmazon értelmezett végrehajtási sorrend segítségével Kivétel kezelés Hosszú tranzakciók kezelése Hogyan használja fel a web szolgáltatásokat Hogyan nyújt web szolgáltatásokat

Hol, hogyan használhatjuk? Bpel szerverek Microsoft BizTalk 2004 Oracle BPEL Process Manager IBM BPEL4WS Editor and Java Run-Time OpenStorm Service Orchestrator ... Szolgáltatásai: Vezérlés (elágazás, hurok, ...) Aszinkron kommunikáció (join, source, target) Nem determinisztikság pick, onAlarm Hosszú tranzakciók (kompenzáció)

Folyamatot definiál Activity Partnerek Egyszerű Komplex Invoke Receive Reply Wait Assign Throw Terminate Empty Komplex Sequence Switch While Pick Flow Partnerek Olyan szolgáltatás melyet meghív - portType1 Olyan szolgáltatás mely meghívja - portType2 A kettő kombinációja – serviceLink (szerepkörök)

Példa

Példa

Példa

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

.NET Framework Class Library Common Language Runtime 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 Message Queuing COM+ (Transactions, Partitions, Object Pooling) IIS WMI Win32

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

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

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

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

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

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

Menedzselt futtatás Runtime Engine Compiler Class Loader EXE/DLL (MSIL and metadata) Source Code Compiler Class Libraries (MSIL and metadata) Class Loader JIT Compiler with optional verification Trusted, pre-JITed code only Call to an uncompiled method Managed Native Code Execution Security Checks Runtime Engine

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

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

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

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

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

Közös Koncepció Az osztályok és típusok: Szerelvények (Assemblies): 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

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ó

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

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

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

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

Közös Típus Rendszer arch.

É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

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

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;

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; }

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

Polimorfizmus Sealed Abstract New Virtual Override

Eseménykezelés Függvény mutatók használata Delegate Event C# t public delegate void ButtonEventHandler(); class TestButton { public event ButtonEventHandler OnClick; public void Click() { OnClick(); } } TestButton mb = new TestButton(); mb.OnClick += new ButtonEventHandler(TestHandler); mb.OnClick += delegate { System.Console.WriteLine("Hello, World!"); }; mb.Click();

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

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

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 { }

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 { ... }

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

A .NET típusok memória menedzsmentje Az érték típusok a vermet használják A memória foglalás és felszabadítás automatikus és biztonságos Menedzselt objektumok a halomba tárolódnak (heap) New operátor Szemét gyűjtő takarít

Egyszerű szemét gyűjtés Egyszerű szemét gyűjtő algoritmus Addig vár míg a menedzselt kód szálai várakozó állapotba nem kerülnek Az elérhető objektumokból gráfot készít Átmozgatja az elérhető objektumokat a tömörített halomba - Az elérhetetlen objektumok területe felszabadul Frissíti az átmozgatott objektumok referenciáit Körkörös referencia hivatkozások automatikusan kezelve vannak

Finalizáció A Befejező kódot a GC hívja meg C#-ban destruktor class Foo { private System.IO.FileStream fs; //... public Foo() { fs = new System.IO.FileStream( "bar", FileMode.CreateNew); } ~Foo() { fs.Close(); }

GC befejezés A futtató környezet rendelkezik egy listával azokról az objektumokról melyek befejezést igényelnek Várakozó sor Az elérhetetlen befejezésre váró objektumok: A referenciák hozzáadódnak az freachable sorhoz Az objektumok így elérhetőek és nem szemetek A többi szokás szerint…

Befejzés Finalize szál fut Végrehajtja az objektumok Finalize metódusát A referenciákat eltávolítja a sorból Ha nem lettek feltámasztva akkor szemétté lesznek nyilvánítva GC…

Köszönöm az egész féléven át tartó töretlen lelkesedést és figyelmet! Sikeres vizsgaidőszakot, jó nyaralást!