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

Slides:



Advertisements
Hasonló előadás
Windows Virtualizáció
Advertisements

Windows Communication Foundation (WCF)
A Windows Azure egy skálázható számításifelhő-platform, amelyet a Microsoft hosztol a világ több pontján lévő adatközpontjaiban. Az Azure egyszerű,
RESTful Web Service tesztelése
KEVESEBB FELÜGYELET ÚJ ÜZLETI MODELLEK NAGYOBB TERMELÉKENYSÉG.
... manapság BizSpark WebsiteSpark Empower for ISVs MAPS (Web Solutions Toolkit ) Microsoft Partner Network Regisztrált szintCertified és Gold Certified.
Licencelés Kovács Nóra Ker-Soft Kft.
Flex: csak rugalmasan! Kiss-Tóth Marcell Magyarországi Web Konferencia március 18.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Intranet portál bemutató
Piacképes programozói tudás a középiskolában
Webszolgáltatások PHP-ben
Hálózati architektúrák
A Microsoft rendszermenedzsment víziója A Dynamic Systems Initiative A System Definition Model Az üzemeltetésre tervezett szoftverek A SDM jelentősége.
Windows Azure Infrastruktúra és platform a felhőben
SQL Server 2005 Reporting Services a gyakorlatban
2 Forrás: The Standish Group International, Extreme Chaos, The Standish Group International, Inc., 2000.
Microsoft fejlesztőeszközök a szakképzésben Farkas Bálint Visual Studio 2008.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
ASP.NET MVC 3 platform áttekintés
Adatbányászati technikák (VISZM185)
A Windows 7 automatizált telepítése Windows AIK használatával
.NET web szolgáltatások
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
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) -
WSDL alapismeretek A WSDL (Web Services Description Language – Web szolgáltatások leíró nyelv) egy XML-alapú nyelv a Web szolgáltatások leírására és azok.
Dokumentumkezelés. A 2007-es Microsoft Office rendszer dokumentumkezelési szolgáltatásai Kőnig Tibor szakmai vezető Microsoft Magyarország
A CRM bevezetési projektek sajátosságai
SQL Server 2005 Reporting Services Kószó Károly rendszermérnök Microsoft Magyarország.
Egy ISA szerver naplója Sárosi György Terméktámogatási Tanácsadó 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.
Látványos vektrorgrafikus és deklaratív prezentációs réteg 3D támogatássalLátványos vektrorgrafikus és deklaratív prezentációs réteg 3D támogatással Egységesített.
Célkeresztben az érettségi! A legjobb és leghatékonyabb eszközt akarjuk Kevesebb hibalehetőség, barátságos hibaüzenetek Kiváló fejlesztőeszköz Gyorsan.
Egyszerű webes alkalmazás fejlesztése Készítette: Simon Nándor.
Egyszerű webes alkalmazás fejleszté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.
XML támogatás adatbázis-kezelő rendszerekben
Szaktanácsadás SQL Server UpgradeTeljesítményoptimalizálás Replikáció kialakítás Disaster Recovery tervezés.NET Framework alapú fejlesztések.
ARCHITECTArchitect AcademyFoundationsInsidersMCPtréningekvizsgákgyakorlatprojektek Novák István eEvangelist – „Dive deeper” Grepton Zrt. Technológiai vezető.
Optimalizálás Ez az előadó neve beosztása vállalata.
Bátyai Krisztián NetAcademia Oktatóközpont oktató, fejlesztő MCT, MCPD
Az ASP.NET programozási modell Ez az előadó neve beosztása vállalata.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
LOGO Webszolgáltatások Készítette: Kovács Zoltán IV. PTM.
Virág András MSDN Kompetencia Központ Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék.
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.
Copyright 2007, SPSS Hungary. 1 SPSS 16 újdonságok.
Visual Basic 2008 Express Edition
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
HTML5 alapú fejlesztő és futtató környezet megvalósítása
Fontos információk.
Java web programozás 11..
Rugalmas, moduláris felépítés Rugalmas telepítés Jól tervezhető szerepkörök Folyamatos rendelkezésre állás Egyszerű felügyelet Elérés bárhonnan Postafiók.
Bevezetés a Visual Studio .NET használatába
Christopher Chapman | MCT Content PM, Microsoft Learning, PDG Planning, Microsoft.
A Windows Server 2003 termékcsalád A Windows Server 2003 termékcsaládnak 4 tagja van: Windows Server 2003, Standard Edition Windows Server 2003, Enterprise.
Webes MES keretrendszer fejlesztése Kiss Miklós Dániel G-5S8 Tervezésvezető: Dr. Hornyák Olivér.
2. Operációs rendszerek.
DLL használata és készítése Feladat
A projekt az Európai Unió társfinanszírozásával, az Európa terv keretében valósul meg. Számítógép- hálózatok dr. Herdon Miklós dr. Kovács György Magó Zsolt.
.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
Kiss Tibor System Administrator (MCP) ISA Server 2006.
Farkas Bálint | Technical Evangelist | Microsoft.
Adatstruktúrák Algoritmusok Objektumok
Hálózati architektúrák
Informatikai gyakorlatok 11. évfolyam
Előadás másolata:

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

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

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.

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.

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

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

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

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)

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

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.

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

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

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

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)

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.

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ó)

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

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

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

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

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

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)

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ó

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

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

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

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

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

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

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

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

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

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

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…

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

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)

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ó

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

ILDASM avagy mi van az assembly-ben?

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Kérdések (és válaszok) Itt és most laszlog@microsoft.com http://msdn.microsoft.com/net http://www.gotdotnet.com/ http://msdn.microsoft.com/soap http://msdn.microsoft.com/xml http://www.ibuyspy.com/ portál és web-áruház ASP.NET alapon

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

TPC-C top ten