tények és tévhitek a .net keretrendszer körül

Upload: ruzsinszki-gabor

Post on 02-Jun-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    1/32

    Tnyek s

    tvhitek a .NETkeretrendszerkrlKsztette:

    Ruzsinszki Gbor

    http://webmaster442.hu

    http://webmaster442.hu/http://webmaster442.hu/
  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    2/32

    ElszA .NET j pr ve jelen van

    A Mono Framework szintn

    Open Source technolgik

    A C# s a .NET technolgiailag jvalfejlettebb, mint a Java s a JDK/JRE

    Ennek ellenre sokak szerint a .NET s C#csak Windows-on hasznlhat

    Sok a tves informci

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    3/32

    ElszCl: Informcikzls, tnyek kzlse s

    tvhitek cfolsa

    .NET alap szoftverfejlesztssel 2008 tafoglalkozom hobbi -sszabadszprogramozknt.

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    4/32

    Mirl lesz sz? .NET rvid bemutat

    Pr tvhit s tny a Mono s .NETkeretrendszerrel kapcsolatban

    Nmi C# nyelvi dem

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    5/32

    Mi az a .NET? A keretrendszer trtnelme az 1990-es vek

    vgig nylik vissza.

    1998 krnykn a Microsoft ksztett egy sajtJava implementcit, ami a Windowsplatformhoz specifikus kiegsztsekettartalmazott.

    A SUN ezrt perelt, mivel szerintk ez visszals

    volt a Java nvvel. Azta nincs elteleptve a Java keretrendszer

    egy Microsoft termkre sem.

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    6/32

    Mi az a .NET?

    A cl eredetileg egy Java szer nyelvmegalkotsa volt, amely a kvetkez

    genercis Windows rendszerek alapjtkpezi majd. Fejleszts eredmnye: C# s .NETNem Java msolat, mivel erteljesen

    tovbbfejlesztett.A C# nyelv a C++ tovbbfejlesztsnek

    tekinthet, amire hatssal volt a Java

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    7/32

    Mi az a .NET?

    A keretrendszer egy programknyvtr,amiben gyrilag elg sok minden van.

    A keretrendszerre fordtott programok egyvirtulis processzor utastskszletrefordulnak -> Intermediate Language

    A futtatkrnyezet a program indtsakorJIT fordtssal fordtja le a programot afuttat tnyleges fizikai gputastskszletre.

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    8/32

    Mi az a .NET?

    Ezltal a program platformfggetlentudlenni.

    A keretrendszer, a fordt, s a futtatkrnyezet is nylt forrskd

    ISO s ECMA szabvnyok vonatkoznak akeretrendszerre s a C# nyelvre is.

    .NET hivatalosan csak Windowsrendszerekre van.

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    9/32

    Tnyek s tvhitek

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    10/32

    #1 llts:A .NET nem multi-platform

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    11/32

    #1: tvhit Krds: Mit rtnk azon, hogy valami

    multi-platform?

    Ha architektrt nznk: X86, X64, ARM,akkor bizony multi-platform.

    Ha viszont opercis rendszert, akkor aMicrosoft implementci nem az, mivelcsak Windows rendszeren fut.

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    12/32

    #1: Tvhit Linux s OS-X rendszerekre: Mono

    framework

    Ez a .NET platform fggetlenimplementcija

    Nem minden szolgltatst tmogatja a.NET keretrendszernek.

    A nem tmogatott rszek tlzottanWindows / Microsoft specifikusak.

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    13/32

    #1: Tvhit Ennek ellenre teljesen hasznlhat, ha

    nincsenek irrelis elvrsok.

    Van pr megkts, amit figyelembe kellvenni az alkalmazsok fejlesztsekor, hogymkdkpes legyen Mono alatt.

    Van automatizlt teszt eszkz is a

    kompatibilits tesztelsre.

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    14/32

    #2 llts:A C# s a .NET lass

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    15/32

    #2: tvhit JIT fordtssal lesz a IL kdbl tnyleges

    gpi kd

    Ez idt vesz ignybe

    De nem a teljes hivatkozott kdmennyisglesz JIT fordtva!

    Gyorsts cljbl a Framework tartalmazegy Assembly cache-t, ami gpi kdbantrolja a Framework f komponenseit.

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    16/32

    #2: tvhit gy tnyleges JIT fordtson csak a

    program kd esik t.

    Mono esetn lehetsg van AOTfordtsra is, ami elre natv binrist isgenerl.

    Ennek ellenre 100%-ban nem jelenthet

    ki, hogy nem lass, mivel ez viszonytskrdse

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    17/32

    #2: tvhit Ha assembly kddal hasonltom ssze, akkor

    persze, hogy lass.

    Korrekt, ha a Java-hoz hasonltjuk a .NETalkalmazsokat. Itt is nehz mrni a tnyleges gyorsasgot,

    mivel feladat -splatform fgg, hogy melyiklesz a gyorsabb.

    PC (x86 s x64) esetn a Mono s .NETgyorsabb a Java-nl ARM esetn a .NET gyorsabb Windows alatt.

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    18/32

    #3 llts:A .NET nem nylt forrskd

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    19/32

    #3: Tny Ha a nylt forrskd alatt a GPL s BSD

    licencek variciit rtjk, akkor valban

    nem az.MS-RSL licenc alatt van kiadva a

    keretrendszer forrsa Ez alapjn brki kszthet .NET

    implementcit, viszont az eredeti kdnem hasznlhat CTRL+C, CTRL+V alapon

    A Mono viszont GPL

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    20/32

    #3: TnyA helyzet vltozban van* Idn ltrejtt a .NET alaptvnyAz alaptvny felgyelete al kerlt egy

    csom kd, ami a .NET rszt kpezi. Ezek valban nylt forrskd

    komponensek

    A jvben egyre tbb lesz Hasonl a folyamat a SUN JDK nylt

    forrskdv ttelhez.

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    21/32

    #4 llts:

    .NET alkalmazsokat csakWindows alatt hasznlnak

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    22/32

    #4: TvhitMivel a Mono nylt forrskd, szmos

    helyen alkalmazott:

    Lehet vele Android-ra alkalmazstfejleszteni

    Lehet vele iOS-re alkalmazst fejleszteni

    A Unityjtkfejleszt rendszerben is

    megtallhat, ersen pt r.

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    23/32

    #4: TvhitWindows (Phone s 8.1 is!) alkalmazsok

    nagy rsze C#-ban fejlesztett

    ASP.NET technolgin szmos weboldalfut.

    Szmos Mono-ra rt alkalmazs is van.Tbbek kztt: Banshee, F-SPOT, Beagle.

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    24/32

    C# demk

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    25/32

    C# demkA pldk leginkbb C++ s Java

    felhasznlknak szlnak.

    Nem felttlen kezd programozknaklettek sznva az egyes kdrszletek

    Id szke miatt nem egy teljes nyelvibemutat

    Ennl jval tbb mindent tud s jvaltbb mindenre alkalmazhat

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    26/32

    C# demk Feladat: rjunk egy olyan osztlyt, ami

    felhasznlk adatait tudja trolni:

    keresztnv, vezetknv, szletsi v. public class Felhasznalo

    {public KeresztNev { get; set; }

    publicVezetekNev { get; set; }publicSzuletesiEv { get; set; }

    }

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    27/32

    C# demkAdott egy Felhasznalo objektumokbl ll

    tmb. Ebbl keressk ki azon Kovcs

    vezetkneveket, akik 1986 eltt szlettek.A tallatokat szletsi v szerinti nvekvsorrendben adjuk vissza

    varq = fromi intomb wherei.

    VezetekNev.ToLower() == kovacs && i.SzuletesiEv < 1986 orderbyi. SzuletesiEvascending selecti;

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    28/32

    C# demkAz elz feladatban megrt kd mkdik,

    viszont lass. Optimalizljuk gy, hogy

    tbb processzoron fusson varq = fromi intomb.AsParalell()wherei.

    VezetekNev.ToLower() == kovacs && i.SzuletesiEv < 1986 orderbyi. SzuletesiEv

    ascendingselecti;

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    29/32

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    30/32

    C# demkAszinkron vgrehajts szlak nlkl: public assync void NagyFeladat()

    {//ide valami sok ideig fut kd

    }

    Ksbb pedig:awaitNagyFeladat()

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    31/32

    Krdsek?

  • 8/10/2019 Tnyek s tvhitek a .NET keretrendszer krl

    32/32

    Ksznm a figyelmet!