ARCHITECTArchitect AcademyFoundationsInsidersMCPtréningekvizsgákgyakorlatprojektek Novák István eEvangelist – „Dive deeper” Grepton Zrt. Technológiai vezető.

Slides:



Advertisements
Hasonló előadás
Windows Communication Foundation (WCF)
Advertisements

Grafikus felhasználói felület Windows alatt
Flex: csak rugalmasan! Kiss-Tóth Marcell Magyarországi Web Konferencia március 18.
Hatékonyságnövelés Office System alapon az E.ON csoportnál
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Piacképes programozói tudás a középiskolában
Webszolgáltatások PHP-ben
Iratkezelő rendszer fejlesztése WPF alapokon
Informatika érettségi tapasztalatai és változásai
Programozási feladatok az érettségin
.NET web szolgáltatások
Az ETR technológia DEXTER Informatikai kft..
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
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) -
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
ASP.NET „röviden” Krizsán Zoltán ver: 0.2.
Authentication & Authorization Belinszki Balázs terméktámogató mérnök Juhász Mihály alkalmazásfejlesztési tanácsadó.
Felső tagozatosok programozás oktatása
Előadó: Kárpáti Péter Üzleti folyamatvezérlés nagyvállalati környezetben (BizTalk Server 2004, Office InfoPath 2003 és Windows.
SQL Server 2005 Reporting Services Kószó Károly rendszermérnök Microsoft Magyarország.
Instant alkalmazások SharePoint platformon. A fejlesztés és a testre szabás határai elmosódtak. A testre szabást végző legtöbbször nem programozó A.
Számítógépes grafika OpenGL 1. gyakorlat.
Programozási technológia 1
Egyszerű webes alkalmazás fejlesztése Készítette: Simon Nándor.
Egyszerű webes alkalmazás fejlesztése
ISZAM III.évf. részére Bunkóczi László
1 Operációs rendszerek Az NT folyamatok kezelése.
Új technológiák a web alkalmazásokhoz Nacsa Sándor Fejlesztői és technológia programok Microsoft Magyarország Kft. NJSzT VIII. Országos Neumann-centenáriumi.
Hibrid felhő Privát-, publikus és hoster felhők összekapcsolása
Programozás alapismeretek
Microsoft.NET Alapok.
V 1.0 ÓE-NIK, Programozás I. A Microsoft Visual Studio 2010 használata.
Tantárgyi tanév-előkészítő informatika Szűcs Gergely
Az AJAX technológia használata Ez az előadó neve beosztása vállalata.
Bátyai Krisztián NetAcademia Oktatóközpont oktató, fejlesztő MCT, MCPD
Vezérlők használata és írása Ez az előadó neve beosztása vállalata.
A program a „Tudáshasznosulást, tudástranszfert segítő eszköz-, és feltételrendszer kialakítása, fejlesztése a Műegyetemen” (TÁMOP /1/KMR )
LOGO Webszolgáltatások Készítette: Kovács Zoltán IV. PTM.
Szoftverek. szoftver (software): A számítógép hardver elemeinek mûködtetését végzõ programok, a gép használatához szükséges szellemi termékek összessége.
Virág András MSDN Kompetencia Központ Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék.
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.
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ú,
Visual Basic 2008 Express Edition
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Java web programozás 11..
Varga Viktor – G36ECF 1/5 Vendéglátói szoftverek sajátosságai Varga Viktor.
Szoftverek.
Egyéb interpreterek Windows Script Host Internet Explorer Hypertext application.
Software - Ismeretek Avagy mitől megy a Hardware.
A Visual Basic és a programozás oktatása
Webes MES keretrendszer fejlesztése Kiss Miklós Dániel G-5S8 Tervezésvezető: Dr. Hornyák Olivér.
Java Csoport Antal Péter Bátfai Norbert Jeszenszky Péter.
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ó)
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Informatikai gyakorlatok 11. évfolyam
kialakulása, fejlődése, generációk
Programok készítése és futtatása. Integrált fejlesztői környezet (IDE) tartalmaz:  szövegszerkesztőt a program forráskódjának szerkesztésére,  fordítóprogramot.
Kiss Balázs Geográfus MSc/I. évf..  Hazánkban leginkább használt levelezőrendszerek  Üzleti levelezőrendszerek  Thunderbird  Gmail  Apple Mail 
Adatstruktúrák Algoritmusok Objektumok
Programozási nyelvek Programozási alapismeretek
Avagy mitől megy a Hardware
Informatikai gyakorlatok 11. évfolyam
Web programozás és haladó fejlesztési technikák – C#
Előadás másolata:

ARCHITECTArchitect AcademyFoundationsInsidersMCPtréningekvizsgákgyakorlatprojektek Novák István eEvangelist – „Dive deeper” Grepton Zrt. Technológiai vezető

ARCHITECT Academy Foundations Bemutatni a.NET keretrendszer legfontosabb technológiai é.s elvi alapjait Bemutatni, hol áll a.NET keretrendszer ma és hová tart a közeli jövőben Segítséget nyújtani.NET technológiára épülő fejlesztési projektek kialakításához, irányításához

ARCHITECT Academy Foundations 1.A világ és fejlesztések a.NET előtt 2.A.NET keretrendszer céljai 3.A.NET futtatókörnyezet 4.A.NET fontos rétegei, elemei 5.Architektúra elemek a.NET-ben 6.Adatelérési technológiák 7.Kérdések, válaszok

ARCHITECT Academy Foundations Alkalmazások változatos fejlesztőeszközökkel készülnek Monolit alkalmazások Kliens-szerver alkalmazások Többrétegű alkalmazások Szolgáltatásalapú rendszerek Uralkodó kliens operációs rendszer: Windows Több szerver oldali rendszerszoftver

ARCHITECT Academy Foundations Különböző programozási nyelvek C, C++, VB, Delphi (Turbo Pascal), Object Builder Különböző futásidejű könyvtárak Microsoft Foundation Classes (MFC) Active Template Library (ATL) Borland Visual Component Library (VCL) Msvbvm60.dll (Visual Basic) Különböző IPC mechanizmusok RPC, WinSocket MTS, COM, COM+, DCOM HTTP „.DLL-Hell” jelenség

Windows API-k (User.exe, GDI.exe, Kernel32.dll, netapi32.dll, stb.) Windows API-k (User.exe, GDI.exe, Kernel32.dll, netapi32.dll, stb.) Delphi App 2 VCL Delphi App 1 VCL VB App MFC runtime VB runtime Common Controls MFC App 2 MFC App 1 MFC runtime

Üzleti funkciók (30%) Infrastruktúra kód (70%) Erőforrás ráfordítás általában

ARCHITECT Academy Foundations Alkalmazásfejlesztési keretrendszerek 1996: Java  J2EE 2000:.NET Önállóan fejlődtek, „inspirálták egymást” Melyik a jobb? Ebben a formában értelmetlen a kérdés... Jelen, várható jövő: Minden nagyvállalatnál mindkét technológiának megvan a helye Nem a homogenizálás a cél, hanem az együttműködés A két technológia folyamatosan javítja a másikkal való együttműködést

Üzleti funkciók (30%) Infrastruktúra kód (70%) Erőforrás ráfordítás általában Erőforrás ráfordítás keretrendszer alkalmazásával Üzleti funkciók (70%) Infrastruktúra kód (30%) Erőforrás ráfordítás (keretrendszer, kitöltött időkeret) Infrastruktúra kód (30%) Üzleti funkciók (70%)

FuttatókörnyezetÉpítőelemek Hatékonyságjavító eszközök Fejlesztési életciklus kezelése

.NET változatMegjelenés 1.0 Beta november 1.0 Beta június 1.0 SP március 1.0 SP augusztus 1.0 SP augusztus 1.1 SP március 2.0 SP november SP12008 Q2

Common Language Runtime Base class library Security, Soap 1.2, XML, Generic collections, I/O, stb. Architektúra szolgáltatások ASP.NET v1.0 WinForms 1.0

Felügyelt kód [ managed code ]: az operációs rendszer szolgáltatásait kizárólag a.NET futtatókörnyezeten keresztül veszi igénybe. „Flat” API helyett objektumok:  Egyértelmű paraméterek  Elfelejthetjük a „Handle”-t  „buffer overrun” elkerülése  Típusbiztonság (lebegőpontos szám helyén nem lesz string...) Windows API-k (User.exe, GDI.exe, Kernel32.dll, netapi32.dll, stb.) Windows API-k (User.exe, GDI.exe, Kernel32.dll, netapi32.dll, stb.).NET alkalmazás.NET alkalmazásmotor (mscoree.dll).NET alkalmazásmotor (mscoree.dll) Felhasználói.NET objektumok.NET alapobjektum- könyvtár

.NET alkalmazásmotor.NET forráskód (C#, VB.NET, stb.).NET forráskód (C#, VB.NET, stb.).NET fordítóprogram.DLL vagy.EXE assembly (MSIL és metaadat).DLL vagy.EXE assembly (MSIL és metaadat) Class Loader Jitter Gépi kódú utasítás Gépi kódú utasítás Végrehajtás Windows API-k (User.exe, GDI.exe, Kernel32.dll, netapi32.dll, stb.) Windows API-k (User.exe, GDI.exe, Kernel32.dll, netapi32.dll, stb.)

ARCHITECT Academy Foundations static void Main(string[] args) { int result = 1; for (int i = 1; i <= 5; i++) result *= i; Console.WriteLine("5! = {0}", result); } A programot lefordítjuk Az ILDASM (MSIL Disassembler) megvizsgáljuk az MSIL kódot Megnézzük a futás közben előálló (JIT) gépi kódot

// Lokális változók.locals init ([0] int32 result, [1] int32 i) // result = 1; IL_0000: ldc.i4.1 IL_0001: stloc.0 // for (int i = 1; i <=5; i++) IL_0002: ldc.i4.1 IL_0003: stloc.1 IL_0004: br.s IL_000e // result *= i; IL_0006: ldloc.0 IL_0007: ldloc.1 IL_0008: mul IL_0009: stloc.0

// for (int i = 1; i <=5; i++) IL_000a: ldloc.1 IL_000b: ldc.i4.1 IL_000c: add IL_000d: stloc.1 // for (int i = 1; i <=5; i++) IL_000e: ldloc.1 IL_000f: ldc.i4.5 IL_0010: ble.s IL_0006 // Console.WriteLine(„5! = {0}”, result); IL_0012: ldstr "5! = {0}" IL_0017: ldloc.0 IL_0018: box [mscorlib]System.Int32 IL_001d: call void [mscorlib]System.Console::WriteLine(string, object)

// int result = 1; mov ebx,1 // for (int i = 1; i <= 5; i++) mov dword ptr [ebp-44h], f nop jmp D // result *= i; mov eax,dword ptr [ebp-44h] imul eax,ebx mov ebx,eax // for (int i = 1; i <= 5; i++) a inc dword ptr [ebp-44h] d cmp dword ptr [ebp-44h], setle al movzx eax,al mov dword ptr [ebp-48h],eax a cmp dword ptr [ebp-48h], e jne

Common Language Runtime (CLR) Common Type System (CTS) Common Language Specification (CLS) Base Class Library (Infrastruktúra szolgáltatások) Biztonság XML/SOAP Konfiguráció Nyomkövetés Biztonság Többszálúság Fájlkezelés Konténerek Diagnosztika P/Invoke... Architektúra szolgáltatások ASP.NET/Webszolgáltatások ADO.NET/Entity Framework WinForms WF WCF WPF CardSpace...

Érték: a típust a memóriában lévő bitsorozat írja le (pl. Int32) Referencia: a típust a bitsorozat helyére vonatkozó referencia azonosítja be (pl. String) :44:23 (&Customer) 42 true (&String) Color.AliceBlue Kovács Mihály Hello, World (&String) Kiértékelési verem [ evaluation stack ] Felügyelt blokk [ managed heap ]

ARCHITECT Academy Foundations Felsorolt (enum) típusok Önálló érték, bitkombináció Struktúra (C, C++, VB, Delphi szemantika) Primitív (CLR által kezelt) típusok Boolean Byte, Sbyte, Char Int16, Int32, Int64, UInt16, UInt32, UInt64, Single, Double, Decimal

Primitív (CLR által kezelt) típusok: System.Object System.String „Boxing”: Érték típus  Referencia típus „Unboxing”: Referencia típus  Érték típus System.Object System.ValueType Érték típusok Referencia típusok

ARCHITECT Academy Foundations Class: Legfontosabb típus, az OOP alapja Láthatóság: private, public, protected, internal Absztrakció: absztrakt/konkrét Lezártság: nyitott/ lezárt [ sealed ] Öröklés: egy alaposztály, 0, 1 vagy több interfész Elemei: Mező [ field ] Metódus [ method ] Tulajdonság [ property ] Esemény [ event ]

Interface: absztrakt metódusok, tulajdonságok és események gyűjteménye Nem származnak le egyetlen típusból sem Típusok megvalósítják őket (nem öröklik!) Interfész megvalósíthat egy másik interfészt public interface IShapePoints { int PointCount { get; } Point GetPoint(int index); } public struct SingleLine: IShapePoints {... } public IShapeDraw: IShapePoints { void Draw(); }

A.NET eseménykezelésének alapja A C/C++ programozásban megszokott metódusmutató szerepét tölti be Egy időben több metódusra hivatkozhat public delegate void Log(string message);... public static event Log OnLog;... public static void LogToConsole(string message) { Console.WriteLine("{0}: {1}", DateTime.Now, message); } static void Main(string[] args) { OnLog += new Log(LogToConsole); OnLog += new Log(delegate(string message) { Console.WriteLine("TRACE: {1}", DateTime.Now, message); } ); OnLog("Test message"); }

ARCHITECT Academy Foundations Assembly: a legkisebb fizika egység a.NET-ben Lehet:.DLL vagy.EXE Tartalmazhat: futó kódot, erőforrást (pl. képek) Önleíró: tartalmazza a benne foglalt metaadatok leírását saját verzió és hivatkozott szerelvények verziói Nyelvfüggetlen: bármely nyelven készülhet, illetve felhasználható Verziókezelt: Ugyanazon assembly verziói egymás mellett élhetnek! Alkalmazás és rendszerszintű házirendek a verziók kezelésére Biztonságos: Az assembly-k aláírással láthatók el Hozzáférési házirendek, jogosultságok definiálhatók

ARCHITECT Academy Foundations Telepítés: XCOPY, egyszerű másolás Felhasználási szándék: Privát szerelvény: egy konkrét alkalmazás használja Osztott szerelvény: több alkalmazás közösen használja GAC: Global Assembly Cache Az osztott szerelvények tára Több verziót tárol (verziószám, lokalizáció) Szerelvények betöltése Exact, nyomon követhető mechanizmus Házirendekkel, konfigurációval befolyásolható

Megjelenítés Üzleti logika Adatelérés Adatok Adatbázis Szolgáltatás Adatelérés (Data Access) Adatelérés (Data Access) Szolgáltatás elérés (Service Agent) Szolgáltatás elérés (Service Agent) Entitások Szolgáltatás objektumok Szolgáltatás objektumok Munkafolyamatok Üzleti szolgáltatások homlokzata Felhasználói felület folyamatok Felhasználói felület elemek Infrastruktúra réteg (Diagnosztika, kommunikáció, security, utility) Infrastruktúra réteg (Diagnosztika, kommunikáció, security, utility)

Kompozit szolgáltatás Szolgáltatás 1 Homlokzat 1 Szolgáltatás 2 Homlokzat 2 Szolgáltatás elérés 1 Szolgáltatás elérés 2 Szolgáltatás logikája Szolgáltatás homlokzata Szolgáltatás fogyasztó (Service Agent) Szolgáltatás fogyasztó (Service Agent) Szolgáltatás fogyasztó (Megjelenítés réteg) Szolgáltatás fogyasztó (Megjelenítés réteg)

Adatbázis 1 Adatbázis 2 Szolgáltatás 1 Szolgáltatás logikája Terheléselosztás Megjelenítés (Web) Web farm Megjelenítés (vastag kliens) Megjelenítés (vastag kliens) Megjelenítés (vastag kliens) Megjelenítés (vastag kliens)

ARCHITECT Academy Foundations Milyen szoftver rétegeket használok? Milyen rétegeket „olvasztok” össze más rétegekkel Egy logikai komponensbe Egy fizikai komponensbe Hogyan oldom meg a komponensek kommunikációját? Egyéb nem minőségi elvárások: Teljesítmény Skálázhatóság Hibatűrés Tesztelhetőség Stb.

Monolit alkalmazás: Egyetlen.EXE? Egybemosott rétegek? Adatbázis Szolgáltatás Adatelérés (Data Access) Adatelérés (Data Access) Szolgáltatás elérés (Service Agent) Szolgáltatás elérés (Service Agent) Entitások Szolgáltatás objektumok Szolgáltatás objektumok Munkafolyamatok Üzleti szolgáltatások homlokzata Felhasználói felület folyamatok Felhasználói felület elemek Infrastruktúra réteg (Diagnosztika, kommunikáció, security, utility) Infrastruktúra réteg (Diagnosztika, kommunikáció, security, utility)

Elosztott alkalmazás: Több fizikai komponens? Jól határolt rétegek? Adatbázis Szolgáltatás Adatelérés (Data Access) Adatelérés (Data Access) Szolgáltatás elérés (Service Agent) Szolgáltatás elérés (Service Agent) Entitások Szolgáltatás objektumok Szolgáltatás objektumok Munkafolyamatok Üzleti szolgáltatások homlokzata Felhasználói felület folyamatok Felhasználói felület elemek Infrastruktúra réteg (Diagnosztika, kommunikáció, security, utility) Infrastruktúra réteg (Diagnosztika, kommunikáció, security, utility)

Adatbázis SQL Server 2005 CLR integráció SQL Server 2008 Adatelérés réteg (Data Access) ADO.NET v1.0ADO.NET v2.0 TransactionScope SQL Server 2005 XML adattípus, felhasználói típusok Szolgáltatás elérés (Service Agent), Üzleti homlokzat HTTP, TCP.NET Remoting SOAP webservice Message Queue WS Extensions

Üzleti entitások Common Type System.NET Generics Szolgáltatás objektumok Munkafolyamatok

Felhasználói felület elemek ASP.NET v1.0ASP.NET v2.0 WinForms v1.0WinForms v2.0 Felhasználói felület folyamatok

.NET Framework Data Providers Data Sources SQL Server OracleOracle Other SQL ISAMISAM ODBCODBC Native SQL Server Native Oracle Provider for OLEDB Provider for ODBC

DataSetDataSet DataTableCollectionDataTableCollection.NET Framework Data Provider ConnectionConnection TransactionTransaction CommandCommand ParametersParameters DataReaderDataReader DataAdapterDataAdapter SelectCommandSelectCommand InsertCommandInsertCommand UpdateCommandUpdateCommand DeleteCommandDeleteCommand DataTableDataTable DataRowCollectionDataRowCollection DataColumnCollectionDataColumnCollection ConstraintCollectionConstraintCollection DataRelationCollectionDataRelationCollection DatabaseDatabase

Adattábla 1 Adattábla N Adattábla 3 Adattábla 2 Mapping 1 Mapping 2 Entitásséma 1 Entitásséma 2

ARCHITECT Acadey Foundations Absztrakció az adatbázis logikai modellje felett: koncepcionális modell Object-Relational Mapping Entity Data Model Entitások Relációk Schema Definition Language Entity SQL

ARCHITECT Acadey Foundations Language Integrated Query Natív adatlekérdezési lehetőség a.NET keretredszerhez Run-time: elérhető a.NET 2.0-ban is.NET 3.0/3.5: erős nyelvi támogatás Általános adatelérési mechanizmus Standard Query Operators „Halasztott” végrehajtás Végrehajtás LINQ provider-eken keresztül

ARCHITECT Acadey Foundations LINQ to Objects: memóriaobjektumok LINQ to XML: XML információk LINQ to SQL: SQL Server LINQ to Datasets: ADO.NET DataSet-ek LINQ to Data Services: ADO.NET DS LINQ to Entities: Entity Framework PLINQ LINQ 4 SPS (L&M Solutions)

ARCHITECT Academy Foundations A.NET keretrendszer alapvetően megváltoztatja azt, ahogyan alkalmazásaink az operációs rendszer szolgáltatásait használják Fókusz: Erőforrásfelhasználás hatékonysága Infrastruktúra funkciók  Üzleti funkciók A.NET folyamatosan fejlődik Erősődőben az architektúra szolgáltatások.NET v3.5 Adat és információkezelés új korszaka kezdődik

ARCHITECT Academy Foundations

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.