tények és tévhitek a .net keretrendszer körül
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!