Szoftverarchitektúrák. Webalkalmazás architektúrák
|
|
- Attila Balázs
- 9 évvel ezelőtt
- Látták:
Átírás
1 Szoftverarchitektúrák Webalkalmazás architektúrák
2 Miről lesz szó? Web alkalmazások Miért fontosak? Miért speciálisak? Hogyan működnek? Alapvető felépítés Szerveroldal Kommunikáció Kliensoldal
3 Miről lesz szó? Szerveroldal Architektúra típusok: rétegzett architektúra MVC Pipes and Filters Átszövő vonatkozások (Crosscutting concerns) Függőségek kezelése Tesztelés Kommunikáció RESTful vs SOAP Kliensoldal (böngésző) Separation of Concerns: HTML + JavaScript + CSS Single-Page Application MVC/MVP/MVVM
4 Bevezetés
5 Miről lesz szó? Web alkalmazások Miért fontosak? Miért speciálisak? Hogyan működnek? Alapvető felépítés Szerveroldal Kommunikáció Kliensoldal
6 Miért speciálisak? Nem kell telepíteni elég a böngésző Nincs upgrade Platformfüggetlenség Kevés kliensoldali erőforrás használat (pl. diszk) Elosztott architektúra Hálózatfüggőség Nehezebb fejlesztés
7 Miért speciálisak? Alapvető működés: Kliens-szerver architektúra Webdokumentumok elérése Kliensoldal: Böngészőben Vékonykliens HTML + Javascript (dinamikus tartalom) + CSS Állapotmentesség HTTP Szerveroldal Dokumentum előállítás Session kezelés Üzleti logika
8 Szerveroldal
9 Miről lesz szó? Web alkalmazások Miért fontosak? Miért speciálisak? Hogyan működnek? Alapvető felépítés Szerveroldal Kommunikáció Kliensoldal
10 Szempontok Célok: biztonság, teljesítmény, komplexitás csökkentése Feladatok szétválasztása újrafelhasználható komponensekre Lazán csatolt komponensek (Facade minta alkalmazása) Pooling resources Rétegzett architektúra Átszövő vonatkozások (Crosscutting concerns) Cache-elés Felhasználó hitelesítése Kivétel kezelés Kommunikáció felügyelete Érzékeny adatok titkosítása Adatok validálása minden réteg között Navigáció
11 Szerveroldal
12 Rétegelt architektúra Megjelenítési réteg (presentation layer) Elosztott (szerver és kliens oldal) UI komponensek szétválasztása Újrafelhasználhatóság Kliens oldali validáció ismétlése a szerveren
13 Rétegelt architektúra Üzleti logika (business logic layer) Több lazán csatolt komponens Adattovábbítás ( üzeleti objektumok ) Állapotmentes megvalósítás? Teljesítménynövelés Üzenet alapú interfész Kritikus műveletek tranzakciókba foglalása
14 Rétegelt architektúra Adatelérési réteg Erőforrások kihasználása Connection pooling Batch operations Kevesebbszer kelljen pl. adatbázishoz fordulni Bonyolultabb exception kezelés
15 Rétegelt architektúra +1 Szolgáltatás réteg (service layer) Külön réteg, ha: az üzleti réteget távolról elérhetővé akarjuk tenni, mert fizikailag másik gépre akartuk tenni, vagy webserviceként publikussá akarjuk tenni. Nem egy adott klienshez fejlesztünk, hanem önmagában használható kell legyen ez a réteg Metódusok legyen tömörek, hogy ne kelljen sokszor fordulni a DBhez Kommunikációs protokoll legyen általános
16 Rétegelt architektúra szempontok Telepítés
17 Crosscutting concerns Egy program olyan aspektusai, amelyek tipikusan sok komponenst érintenek Nem lehet szétválasztani ezeket a program többi részétől Pl. Authentikáció Loggolás Cache-elés sok belső függőség
18 Probléma a függőségekkel Lazán csatolt komponensek (helyi komponensek, vagy szolgáltatások) egymásra hivatkozása A függőségek változtatásához újra kell fordítani Fordítási időben elérhetők kell legyenek a függőségek Nehéz külön tesztelni Ismételt kód a szogláltatások betöltésére Célok: szétválasztani az osztályokat és a függőeségeiket olyan osztályokat akarunk hazsnálni, amiknek az intefészét igen, de konkrét implementációját nem ismerjük fordítási időben külön akarunk tesztelni elválasztani a függőségek felderítését és betöltésének kódját, mert ez nem fontos a logika szempontjából.
19 Függőségek kezelése Separation of concerns Pl. HTML + JavaScript + CSS Inversion of Control Dependency injection Service Locator minta Programozási paradigmák Aspektus Orientált Programozás (AOP)
20 Függőségek
21 Kétféle konkrét megoldás
22 Dependency Injection A szolgáltatás, vagy komponens konkrét implementációjának betöltését egy külön objektum végzi 3 féle stílus : Constructor injection A hivatkozott ojecktumot a konstruktorban kapjuk meg Setter/Property injection A hivatkozott objektum beállítására setter függvényt/property készítünk Interface injection A beállítás egy interfészen keresztül történik
23 Microsoft Extensibility Framework IoC konténer alapú Dependency Injection megvalósítás Konfiguráció nélkül lehessen az alkalmazásunkat kiterjeszteni Interfész alapú függőségkezelés Milyen interfész implementációra van szükség? Milyen interfészt biztosítunk?
24 MEF Példa alkalmazás public interface ILogger { void Log(string texttolog); } public class ConsoleLogger : ILogger { public void Log(string texttolog) { Console.WriteLine(textToLog); } }
25 MEF Példa alkalmazás public class LogManager { private static LogManager _Instance = null; public static LogManager Instance { get { return _Instance?? (_Instance = new LogManager()); } } } public void LogText(string texttolog) { //LOG }
26 MEF Példa alkalmazás class Program { static void Main(string[] args) { //LOG //LogManager.LogText( ); } } Probléma: a MyApplication-nek ismernie kell az implementációs osztályt
27 MEF működése System.ComponentModel.Composition assembly IoC konténer: ComponentContainer Típusok betöltése és felismerése futásidőben Hivatkozások kérése Hivatkozások automatikus kitöltése Implementáció osztályok publikálják az intefészüket: Export Függősek interfészét hivatkozzuk Import
28 MEF Export A publikált intefész megjelölése [Export(typeof(ILogger))] public class ConsoleLogger : ILogger { public void Log(string texttolog) { Console.WriteLine(textToLog); } }
29 MEF IoC konténer public class LogManager { //... private CompositionContainer container; } private LogManager() { var catalogcollection = new AggregateCatalog(); var catalog = new DirectoryCatalog(Environment.CurrentDirectory); catalogcollection.catalogs.add(catalog); } Függőségek betöltésének koordinálása container = new CompositionContainer(catalogCollection); try { this.container.composeparts(this); } catch (CompositionException compositionexception) { //TODO } Katalógus: ahol a függőségeket keressük! Függőségek betöltése futásidőben
30 MEF Import public class LogManager { //... } [Import(typeof(ILogger))] public ILogger logger; A hivatkozott függőség megjelölése public void LogText(string texttolog) { //LOG logger.log(texttolog); } Sehol nem inicializáljuk a property-t kézzel!
31 MEF Példa alkalmazás tesztelése class Program { static void Main(string[] args) { LogManager.Instance.LogText("Program started"); //... LogManager.Instance.LogText("Program finished"); } }
32 MEF Import public class LogManager { //... Több példány, különböző implementációs osztállyal } [ImportMany(typeof (ILogger))] private IEnumerable<Lazy<ILogger>> loggers; public void LogText(string texttolog) { //LOG foreach (var logger in loggers) logger.value.log(texttolog); } Lazy: késleltett betöltés Példányosítás az első lekérdezésnél
33 MEF - Metaadatok Metaadatok Az egyes típusok, példányok testreszabására, azonosítására Export metadata (kulcs érték pár) Import: Lazy<IMyInterface, IDictionary<string, object>> Vagy: Lazy<IMyInterface, IMyMetaData
34 AOP Az objektum orientált paradigma továbbfejlesztése Főbb OO tulajdonságok: Önálló entitások (objektumok): adatok és műveletek egységbezárása A működést az objektumok közötti kommunikáció valósítja meg áttekinthető programok, biztonságosabb működés, kód újrafelhasználhatóság OO vs. más logikai rendező elvek: Kódban elszórtan jelennek meg nehézkes karbantartás, nyomonkövetés Átszövő vonatkozások (crosscutting concerns): A program különböző egységein áthúzódó, de logikailag egybetartozó kódrészletek Pl. naplózás
35 AOP a programkódokat aszerint osztja részekre, hogy azok milyen szempontból járulnak hozzá a program működéséhez A szempontokat aspektusokba tömörítjük Az aspektusokat önállóan kódoljuk Az aspektusszövő (aspect weaver) alkalmazás gondosodik a különböző kódrészletek egyesítéséről (futási, vagy fordítási időben)
36 AOP
37 AOP Csatlakozási pontok: Specifikálja, hogy egy átszövő aspektus adott kódrészlete hol jelenjen meg, hogy kerüljön meghívásra. Statikus: a forráskód egy szövegéhez csatlakozik Dinamikus: futási időben történő hozzárendelés
38 AOP vs. architektúra Miért fontos az AOP architekturális szempontból? Az aspektusok átszövik az alkalmazás logikáját megváltoztatják az architektúrát Tervezési szinten megvalósítható az aspektus-orientált gondolkodás modularitás Modularitás: A logikailag egy egységbe tartozó részek valóban egy fizikai egységbe tömörüljenek Erős belső kohézió a modulon belül, lazább csatolás a modulok között Kisebb redundancia
39 AOP Példák: AspectJ, HyperJ, PostSharp
40 PostSharp.NET AOP kiterjesztés Kódrészletek fordításidejű transzformáció Új kódrészletek beszúra A régi kód kisebb átalakítása Fogalmak: Aspect: egy kódrészlet transzformálását leíró objektum A transzformáció eredményeként az erdeti kódból az aspektus metódusai is meghívásra kerülnek Advice: az aspektus metódusai, amelyek meghívásra kerülnek Attribútum alapú megközelítés
41 PostSharp példa [Serializable] public class LoggingAspect : OnMethodBoundaryAspect { public override void OnEntry(MethodExecutionArgs args) { Console.WriteLine("The {0} method has been entered.", args.method.name); } } public class MyClass { [LoggingAspect] public string Greet(string name) { return "Hello " + name; } } Aspektus alkalmazása Egy lehetséges aspektus ősosztály, egy metódus transzformációját szabhatjuk vele testre Transzformáland ó metódus Egy Advice, ami meghívásra kerül a transzformált kódból
42 PostSharp MethodExecutionArgs paraméter Argumentumok Exception az éppen dobott kivétel FlowBehavior Hogyan folytatódjon a végrehajtás (pl. Return, Continue) Instance az objektum, amin történik a végrehajtás Method Az aktuális metódus ReturnValue Az aktuális visszatérési érték
43 PostSharp példa class Program { static void Main(string[] args) { var myclass = new MyClass(); var ret = myclass.greet("world"); Console.WriteLine(ret); } } The Greet method has been entered. Hello World
44 PostSharp Transzformált kód public string Greet(string name) { string text; MethodExecutionArgs args = new MethodExecutionArgs(); //... args feltöltése MethodBase.LoggingAspect.OnEntry(args); try { text = "Hello " + name; } catch (Exception exception) { } finally { return text; } } Az eredeti függvény transzformáltja Minden függvényhez létrejön egy Aspect objektum Try catch finally beágyazás
45 PostSharp további funkciók Kilépéskor meghívódó függvény Sikeres végrehajtás esetén meghívásra kerülő kód public override void OnExit(MethodExecutionArgs args) { Console.WriteLine("The {0} method has exited", args.method.name); Console.WriteLine("The return value is : {0}", args.returnvalue); } public override void OnSuccess(MethodExecutionArgs args) { Console.WriteLine("The {0} method executed successfully.", args.method.name); }
46 PostSharp további funkciók public override void OnException(MethodExecutionArgs args) { Console.WriteLine("An exception was thrown in {0}.", args.method.name); if (args.exception.gettype() == typeof(dividebyzeroexception)) { //args.flowbehavior = FlowBehavior.RethrowException; args.exception = new DivideByZeroException("This was thrown from an aspect", args.exception); args.flowbehavior = FlowBehavior.ThrowException; } } Hiba esetén meghívásra kerülő függvény
47 PostSharp további funkciók A MethodExecutionArgs további adatai public override void OnEntry(MethodExecutionArgs args) { var argvalues = new StringBuilder(); foreach (var argument in args.arguments) { argvalues.append(argument.tostring()).append(","); } Console.WriteLine("The {0} method was entered with the parameter values: {1}", args.method.name, argvalues.tostring()); } //args.flowbehavior = FlowBehavior.Return;
48 PostSharp további funkciók Állapotmegőrzés [Serializable] public class ExecutionDurationAspect : OnMethodBoundaryAspect { public override void OnEntry(MethodExecutionArgs args) { args.methodexecutiontag = Stopwatch.StartNew(); } } public override void OnExit(MethodExecutionArgs args) { var sw = (Stopwatch)args.MethodExecutionTag; sw.stop(); Console.WriteLine("{0} executed in {1} seconds", args.method.name, sw.elapsedmilliseconds / 1000); }
49 PostSharp további askpektusok Aspektusok: OnMethodBoundaryAspect Try catch finally blokk Advices: OnEntry, OnSuccess, OnException, OnExit OnExceptionAspect Try catch blokk OnException MethodInterceptionAspect OnInvoke EventInterceptionAspect OnAddHandler, OnRemoveHandler, OnInvokeHandler LocationInterceptionAspect OnGetValue, OnSetValue
50 Kommunikáció
51 Webszolgáltatás Webszolgáltatás Elosztott rendszerek közötti kommunikációs protokoll Hogyan (milyen formátumban) tudunk információt kérni egy szervertől? SOAP megközelítés Simple Object Access Protocol A webszolgáltatás funkciójához kapcsolódó szabványosított nyelvezet REST megközelítés REpresentational State Transfer Általános Egyszerű Ahogyan a web működik
52 SOAP Szabványosított adatkommunikációs protokoll XML alapú üzenetek nehézkes előállítás, de automatizálható Eredetileg régi, interneten nehezen használható technológiák (pl. DCOM, CORBA) lecserélésére Kiterjeszthető szabványos funkciókkal (pl. titkosítás) A szolgáltatás leírása (WSDL Web Service Description Language) XML előállítása automatizálható (proxy-k generálásával) Átviteli protokollok: HTTP, SMTP, vagy más Alkalmazásfüggő nyelvezet
53 REST A világháló működésének egy absztrakciója Egy architekturális stílus elosztott alkalmazásokhoz Bonyolult kommunikációs protokollok helyett: egyszerű HTTP kérések Minden CRUD műveletre Erőforrások elérése és címzése URI alapján Kommunikációs protokoll Állapotmentes Kliens-szerver Cache-elést lehetővé tévő Egyszerű alternatívája más kommunikációs protokolloknak pl. RPC, SOAP
54 REST REST megkötések 1. Kliens-szerver felépítés 2. Állapotmentesség 3. Cache-elés lehetősége 4. Egységes interfész (URI) 5. (Rétegelt rendszer) 6. [Code-on-demand] opcionális Az architektúra céljai Teljesítmény növelése, skálázhatóság Egyszerűség, könnyű fejlesztés A kommunikáció tárgyai Erőforrások egyedi azonosítókkal (URI) Metódusok (HTTP igék) Média típusok (milyen típusú adat adunk vissza, pl. CSV, JSON, XML
55 REST vs SOAP Azok a web szolgáltatások, amik eleget tesznek a REST megkötéseinek: RESTful A SOAP használata sok overhead-et jelenthet, pl. JavaScriptben Nem kötődik XML-hez URL gyakran elég a címzéshez Csak HTTP felett Kihasználja a HTTP eszközkészletet Jellemzők Teljesítmény, skálázhatóság Formátum Kiegészítő szolgáltatások: hibakezelés, titkosítás, tranzakciókezelés Melyiket érdemes választani?
56 Kliensoldal
57 Kliensoldali programozás Separation of concerns HTML dokumentum JavaScript kód Stílus: CSS Sablon alapú megközelítések mind szerver, mind kliensoldalon Egyre összetettebb működés REST Code-on-demand A JavaScript dinamikus nyelv Nagy funkcionalitású JavaScript könyvtárak A kliens oldali kód tervezést igényel A hagyományos programozási környezetben megismert módszerek és minták megjelennek JavaScriptben Jó ez? Megoldások Statikus oldalak AJAX hívások SPA (Single Page Application)
58 MVVM Architekturális minta, MVC, MVP alapon Cél: a megjelenítési, üzleti logika és a felhasználó felület szétválasztása UI fejlesztés Eredetileg: WPF-ben, Martin Fowler: Presentation Model Eseményvezérelt programozási környezet Feladatok: Adattárolás, Üzleti logika - adatmanipuláció Adatok megjelenítése (megjelenítési logika) UI (vezérlők) UI logika (vezérlőkön keresztül a felhasználói interakciók kezelése)
59 MVVM
60 MVVM - View A felhasználó számára látható megjelenítés (UI) Hivatkozik a ViewModelre, mint adat kontextusra A ViewModel adattagjait, műveleteit (command) kötjük hozzá Testre szabhatja az adatkötést: validációval, konvertálással Viselkedés testreszabása: animáció, tranzíciók A túl bonyolult viselkedést lehet hagyományos kódban írni Az adatok formázása Aktív nézet: felhasználói interakciók kezelése vs. passzív nézet: nincs tudomása a modellről, a controller kezeli Felhasználói események kezelése
61 MVVM - ViewModel Megjelenítési logika Adatok a nézetnek Nem tud a Viewról A View-t az adatkötésen keresztül, állapotváltozás értesítésen keresztül implicit módon változtatja A UI azokat a funkciókat nyújtja, amiket a ViewModel proeprty-ken és Commandokon keresztül definiál, a View ezeket csak rendereli Több modell osztályért is felelhet, de lehet 1-1 az összerendelés és akár ViewModel funkcionalitása (pl. adatkötés) lehet közvetlenül a modellben is Származtatott értékek definiálhat ahhoz, hogy a View megfelelően tudja megjeleníteni a modellt Pl. összefűzhet két adatot Bevezethet újabb logikai állapotokat, amik a UI kinézetét befolyásolhatják (pl. aszinkron hívás alatt) Művelet (command/action): olyan felhasználható által elérhető funkciók, amik a UI-on keresztül elérhetők a felhasználó számára Nem fontos, hogy ehhez egy gomb lesz kint, vagy link, tehát a megjelenítés megint elválik az implementációtól. Önmagában tesztelhető a View-tól, modelltől függetlenül
62 MVVM Model Szakterület-specifikus entitás (pl. User Account/name, stb.) Információt tárolnak + üzleti logikát Üzleti logika: az adatok kinyerése, menedzselése és annak biztosítása, hogy az üzleti szabályok, amik az adatok konzisztenciájára, validációjára vonatkoznak teljesüljenek Perzisztálás Cache Újrafelhasználható entitás: nem tartalmaz Use-case, User specifikus adatot Nem kezelnek viselkedést Kivéve: validáció Nem formázzák meg az információt a megjelenítéstől függően
63 Együttműködés Adatkötés Műveletek Validáció és hibakezelés
64 MVVM vs MVC Controller = ViewModel + Binder Binder implicit elvárt a technológiától Deklaratív adatkötés Deklaratív műveletkötés
65 Knockout.js JavaScript MVVM keretrendszer Deklaratív adatkötés Kétirányú: automatikus UI és model frissítés Származtatott értékek esetében a függőségek automatikus felderítése Sablonok használata
66 Knockout.js A ViewModel egy tagváltozójához kötjük a belül található szöveget <!-- VIEW --> <p>first name: <strong data-bind="text: firstname"></strong></p> <p>last name: <strong data-bind="text: lastname"></strong></p> // ViewModel + model function AppViewModel() { this.firstname = "Bert"; this.lastname = "Bertington"; } // Activates knockout.js ko.applybindings(new AppViewModel()); ViewModel létrehozása Modell : itt statikus adatok MVVM rendszer indítása First name: Bert Last name: Bertington
67 Knockout.js minden kód együtt <html> <head> <script type='text/javascript' src=' </head> <body> <h1>knockout test</h1> <p>first name: <strong data-bind="text: firstname"></strong></p> <p>last name: <strong data-bind="text: lastname"></strong></p> <script type='text/javascript'> function AppViewModel() { this.firstname = "Bert"; this.lastname = "Bertington"; } ko.applybindings(new AppViewModel()); </script> </body> </html>
68 Knockout.js <p>first name: <strong data-bind="text: firstname"></strong></p> <p>last name: <strong data-bind="text: lastname"></strong></p> <p>first name: <input data-bind="value: firstname" /></p> <p>last name: <input data-bind="value: lastname" /></p> Kétirányú adatkötés function AppViewModel() { this.firstname = ko.observable("bert"); this.lastname = ko.observable("bertington"); } ko.applybindings(new AppViewModel());
69 Knockout.js Változásértesítés az adat megváltozásáról function AppViewModel() { this.firstname = ko.observable("bert"); this.lastname = ko.observable("bertington"); } this.fullname = ko.computed(function() { return this.firstname() + " " + this.lastname(); }, this); this.capitalizelastname = function() { var currentval = this.lastname(); this.lastname(currentval.touppercase()); }; ko.applybindings(new AppViewModel()); Származtatott adat (automatikus függőség követés) Command: ahol elérhető a scope, vagyis az aktuális ViewModel this.lastname = ko.observable( ) erdménye: függvényként érhető el a tárolt adat
70 Knockout.js <p>first name: <strong data-bind="text: firstname"></strong></p> <p>last name: <strong data-bind="text: lastname"></strong></p> <p>first name: <input data-bind="value: firstname" /></p> <p>last name: <input data-bind="value: lastname" /></p> <p>full name: <strong data-bind="text: fullname"></strong></p> <button data-bind="click: capitalizelastname">go caps</button> Command kötése
71 Knockout.js
72 Knockout.js DEMO
73 Értékelés Előnyök Tesztelhetőség Karbantarthatóság Kód újrafelhasználás Fejlesztők és UI designerek együttműködésének segítése Hátrányok Egyszerű UI overkill Bonyolult UI memória
74 AngularJS JavaScript MVVM/MVC keretrendszer Sablon alapú megközelítés Kétirányú adatkötés Vezérlők (controllers) írják le a DOM elemek viselkedését URL routing Parciális nézetek Kliens oldali validáció Egyszerűsített kommunikáció a szerverrel Direktívák új HTML elemek Újrafelhasználható komponensek Komplexitás elrejteése Több AngularJS komponens beágyazása egy alkalmazásba Moduláris kialakítás Kiterjeszthetőség Dependency Injection Tesztelhetőség
75 AngularJS <!doctype html> <html ng-app> JS könyvtár <head> referálása <script src=" </head> <body> <div> <label>name:</label> Angular alkalmazás <input type="text" ng-model="yourname" placeholder="enter a name here"> <hr> <h1>hello {{yourname}}!</h1> </div> </body> Kétirányú adatkötés Egyirányú adatkötés (sablon alapú)
76 AngularJS <!doctype html> <html lang="en" ng-app="phonecatapp"> <head> <meta charset="utf-8"><title>google Phone Gallery</title> <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css"> <link rel="stylesheet" href="css/app.css"> <script src="bower_components/angular/angular.js"></script> <script src="js/controllers.js"></script> </head> <body ng-controller="phonelistctrl"> <ul> <li ng-repeat="phone in phones"> <span>{{phone.name}}</span> <p>{{phone.snippet}}</p> </li> </ul> </body> </html> Egyirányú adatkötés sablon alapon Angular alkalmazás Angular JS modell (scope) inicializálása Adatkötés listához
77 AngularJS var phonecatapp = angular.module('phonecatapp', []); phonecatapp.controller('phonelistctrl', function($scope) { $scope.phones = [ {'name': 'Nexus S', 'snippet': 'Fast just got faster with Nexus S.'}, {'name': 'Motorola XOOM with Wi-Fi', 'snippet': 'The Next, Next Generation tablet.'}, {'name': 'MOTOROLA XOOM ', 'snippet': 'The Next, Next Generation tablet.'} ]; }); Modul regisztrálása Scope inicializálása
78 AngularJS
79 AngularJS var phonecatapp = angular.module('phonecatapp', []); Hivatkozott modulok (függőségek): $scope, $http phonecatapp.controller('phonelistctrl', ['$scope', '$http', function($scope, $http) { $http.get('phones/phones.json').success(function(data) { $scope.phones = data; }); $scope.orderprop = 'age'; }]); Adatok dinamikus betöltése $http modul: egyszerű ajax hívások Még egy attribútum a modellben
80 AngularJS <body ng-controller="phonelistctrl"> <div class="container-fluid"> <div class="row"> <div class="col-md-2"> Search: <input ng-model="query"> Sort by: <select ng-model="orderprop"> <option value="name">alphabetical</option> <option value="age">newest</option> </select> </div> <div class="col-md-10"> <ul class="phones"> </li> </ul> </div> </div> </div> </body> Kétirányú adatkötés Kétirányú adatkötés <li ng-repeat="phone in phones filter:query orderby:orderprop"> <span>{{phone.name}}</span> <p>{{phone.snippet}}</p> Egyirányú adatkötés Kétirányú adatkötés egy gyűteményhez
81 AngularJS
82 AngularJS
83 AngularJS Dependency Injection A függőséget jelentő modulok inicializálásról és betöltéséről a keretrendszer gondoskodik Csak a nevüket kell megadni
84 AngularJS DEMO
85 Egyre bonyolultabb kliensoldali kódok A kód komplexitása a szerveroldalról a kliensoldal felé mozog Jó ez? Case Study: LinkedIn Leaving JSPs in the dust: moving LinkedIn to dust.js client-side templates Sok UI komponens cél az újrafelhasználhatóság Többféle szerveroldali technológia nehéz a kódhordozhatóság Cél: gyors, skálázható, gazdag UI a böngészőben
86 Case Study LinkedIn
Web-fejlesztés NGM_IN002_1
Web-fejlesztés NGM_IN002_1 Rich Internet Applications RIA Vékony-kliens generált (statikus) HTML megjelenítése szerver oldali feldolgozással szinkron oldal megjelenítéssel RIA desktop alkalmazások funkcionalitása
JAVA webes alkalmazások
JAVA webes alkalmazások Java Enterprise Edition a JEE-t egy specifikáció definiálja, ami de facto szabványnak tekinthető, egy ennek megfelelő Java EE alkalmazásszerver kezeli a telepített komponensek tranzakcióit,
Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 8. előadás (ASP.NET WebAPI) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto A webszolgáltatás
MVC. Model View Controller
MVC Model View Controller Szoftver fejlesztés régen Console-based alkalmazások Pure HTML weboldalak Assembly, C Tipikusan kevés fejlesztő (Johm Carmack Wolfenstein, Doom, Quake..) Szűkös erőforrások optimális
Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez
Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez Székely István Debreceni Egyetem, Informatikai Intézet A rendszer felépítése szerver a komponenseket szolgáltatja Java nyelvű implementáció
Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft
Flash és PHP kommunikáció Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft A lehetőségek FlashVars External Interface Loadvars XML SOAP Socket AMF AMFphp PHPObject Flash Vars Flash verziótól függetlenül
Java Programozás 11. Ea: MVC modell
Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát
WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();
WEB-PROGRAMOZÁS II 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: a) Legyen a Felhasznalo osztálynak egy osztály szintű publikus változója, amelyben számolja a létrehozott példányai
WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK
WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Fájl/Adatbázis 3 4 Szerver 2 CGI
Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe
Webes alkalmazások fejlesztése Bevezetés az ASP.NET MVC 5 keretrendszerbe ASP.NET MVC Framework 2009-ben jelent meg az első verziója, azóta folyamatosan fejlesztik Nyílt forráskódú Microsoft technológia
Webszolgáltatások (WS)
Webszolgáltatások (WS) Webszolgáltatások fogalma IBM (lényege) Egy interface, mely a hálózaton keresztül szabványos XML üzenetekkel érhető el és hozzá formálsi XML leírás tartozik. (soap, wsdl) Sun Szoftverelemek,
COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group
COMET webalkalmazás fejlesztés Tóth Ádám Jasmin Media Group Az előadás tartalmából Alapproblémák, fundamentális kérdések Az eseményvezérelt architektúra alapjai HTTP-streaming megoldások AJAX Polling COMET
Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 04. 17. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
Google Web Toolkit. Elek Márton. Drótposta kft.
Google Web Toolkit Elek Márton Drótposta kft. Tartalom A GWT általában Java forrás, Web mód, Hosted mód Speciális szolgáltatások History kezelés, távoli eljárás hívás, Külső függvénykönyvtárak GWT-Ext,
A Java EE 5 plattform
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11. 13. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
API tervezése mobil környezetbe. gyakorlat
API tervezése mobil környezetbe gyakorlat Feladat Szenzoradatokat gyűjtő rendszer Mobil klienssel Webes adminisztrációs felület API felhasználói Szenzor node Egyirányú adatküldés Kis számítási kapacitás
Webes alkalmazások fejlesztése. 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe
Webes alkalmazások fejlesztése 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe ASP.NET MVC Framework 2009-ben jelent meg az első verziója, azóta folyamatosan fejlesztik Nyílt forráskódú Microsoft technológia
Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor
Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10 1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig
Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22
Szerializáció Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 1 / 22 Tartalomjegyzék 1 Szerializációs Alapfogalmak 2 Szerializációs Megoldások Object Szerializáció XML
Szoftvertechnolo gia gyakorlat
Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot
OOP és UML Áttekintés
OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés
Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa
Web Technológiák Java Server Pages - JSP Répási Tibor egyetemi tanársegéd Miskolc Egyetem Infomatikai és Villamosmérnöki Tanszékcsoport (IVM) Általános Informatikai Tanszék Iroda: Inf.Int. 108. Tel: 2101
Mai program. Web Technológiák. Webalkalmazások. Webalkalmazás, mint UI
Web Technológiák Mai program Répási Tibor egyetemi tanársegéd Miskolc Egyetem Infomatikai és Villamosmérnöki Tanszékcsoport (IVM) Általános Informatikai Tanszék Iroda: Inf.Int. 108. Tel: 2101 Webalkalmazás
Komponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT richard.jonas@tsoft.
Komponensek együttműködése web-alkalmazás környezetben Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT Komponensek a gyakorlatban A szoftverkomponenseket fejlesztő csoportoknak szüksége van olyan
Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés
Tartalom D Szoftvertechnológia elıadás Architektúra D vs CORBA Példá 2 1987 Dynamic Data Exchange (DDE) Windows 2.0-ban Windows alkalmazások közötti adatcsere Ma is használatos (pl. vágólap) NetDDE NetBIOS
SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.
Service-Oriented Architecture, SOA Az elosztott rendszerek fejlesztésének módja. Célja:az IT eszközök komplexitásának a kezelésének egyszerűsítése könnyebben újrafelhasználhatóság, egymással integrálhatóság
Webes alkalmazások fejlesztése
Webes alkalmazások fejlesztése 3. gyakorlat Authentikáció, adatok feltöltése Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu Authentikáció Manapság már elvárás, hogy a felhasználó regisztrálni
Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java
Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:
S04-2 Elosztott alkalmazások készítése
S04-2 Elosztott alkalmazások készítése Tartalom 1. Többrétegű architektúra, elosztott szerveroldal 2. Kommunikációs eszközök: távolieljárás-hívás és üzenet alapú infrastruktúra (point-to-point és publish-subscribe
12.óra jquery Framework #1. Gyimesi Ákos
12.óra jquery Framework #1 Gyimesi Ákos gyimesi.akos@gmail.com http://webprog.gy-i-m.com 12.óra jquery Framework #1 Miről lesz szó? JavaScript nyelv alapjai plusz: a JavaScript objektummodellje JavaScript
webalkalmazások fejlesztése elosztott alapon
1 Nagy teljesítményű és magas rendelkezésreállású webalkalmazások fejlesztése elosztott alapon Nagy Péter Termékmenedzser Agenda Java alkalmazás grid Coherence Topológiák Architektúrák
Bánsághi Anna anna.bansaghi@mamikon.net
ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - C# ÁTTEKINTÉS - 2 2015 Bánsághi Anna 1 of 64 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 64
CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )
Célok: a Java DB adatbázis-kezelő rendszer használatának ismertetése, adatbázisok használata Java alkalmazásokban - kétrétegű architektúra, egyszerű kliens-szerver architektúra használata hálózati alkalmazásokhoz.
Web-fejlesztés NGM_IN002_1
Web-fejlesztés NGM_IN002_1 Dinamikus tartalom 3. Template feldolgozás Template feldolgozás Statikus (HTML) fájlok dinamikus tartalom beszúrással (speciális tagek) Template processzor PHP Cold Fusion ASP
Bevezető. Servlet alapgondolatok
A Java servlet technológia Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 06. Servlet Bevezető Igény a dinamikus WEB tartalmakra Előzmény: CGI Sokáig
Komponens alapú fejlesztés
Komponens alapú fejlesztés Szoftver újrafelhasználás Szoftver fejlesztésekor korábbi fejlesztésekkor létrehozott kód felhasználása architektúra felhasználása tudás felhasználása Nem azonos a portolással
Osztálytervezés és implementációs ajánlások
Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv
Osztálytervezés és implementációs ajánlások
Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv
Adatbázisok webalkalmazásokban
Sapientia - EMTE, Pannon Forrás,,Egységes erdélyi felnőttképzés a Kárpát-medencei hálózatban 2010 A JDBC API A Data Access Object tervezési minta Adatforrás - DataSource JDBC architektúra A JDBC API java.sql
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén
.NET Microsoft.Net Framework és programozása II.
1.oldal.NET Microsoft.Net Framework és programozása II. Előadás jegyzet Előadó: Pócza Krisztián ELTE,2012 Egy 3 rétegű ASP.NET alkalmazás (4) Model View Controller (MVC) A Model View Controller a szoftvertervezésben
Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN
Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.
Ajax és Echo 2. Bokor Attila
Ajax és Echo 2 Bokor Attila attila.bokor@netvisor.hu Tartalom Ajax áttekintés Echo2 Echo2 kiegészítések Asynchronous JavaScript and XML Webfejlesztési technika interaktív webalkalmazásokhoz Kifejezés közösen
SZAKKÉPZÉSI KERETTANTERV a(z) 55 213 04 MOBILALKALMAZÁS FEJLESZTŐ SZAKKÉPESÍTÉS-RÁÉPÜLÉSHEZ
SZAKKÉPZÉSI KERETTANTERV a(z) 55 213 04 MOBILALKALMAZÁS FEJLESZTŐ SZAKKÉPESÍTÉS-RÁÉPÜLÉSHEZ I. A szakképzés jogi háttere A szakképzési kerettanterv a nemzeti köznevelésről szóló 2011. évi CXC. törvény,
Stateless Session Bean
Stateless Session Bean Készítsünk egy stateless session bean-t, amellyel összeadhatunk két számot. Hozzunk létre egy Dynamic Web projectet File New Other itt a következőket kell választani: Web Dynamic
RIA Rich Internet Application
Áttekintés RIA Rich Internet Application Komplex felhasználói felülettel rendelkező web-alkalmazások Bevezető Flex áttekintés ActionScript Felhasználói felület tervezése Események Szerver oldali szolgáltatásokkal
JavaServer Pages (JSP) (folytatás)
JavaServer Pages (JSP) (folytatás) MVC architektúra a Java kiszolgálón Ügyfél (Böngésző) 5 View elküldi az oldal az ügyfélez View (JSP) Ügyfél üzenet küldése a vezérlőnek 1 3 4 Kérelem továbbítása a megjelenítőnek
Nyilvántartási Rendszer
Nyilvántartási Rendszer Veszprém Megyei Levéltár 2011.04.14. Készítette: Juszt Miklós Honnan indultunk? Rövid történeti áttekintés 2003 2007 2008-2011 Access alapú raktári topográfia Adatbázis optimalizálás,
JNDI - alapok. Java Naming and Directory Interface
JNDI - alapok Java Naming and Directory Interface Naming Service Naming service: nevek hozzárendelése objektumokhoz, elérési lehetőség (objektumok/szolgáltatások lokalizálása), információk központosított
Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 12. fejezet Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2016. évi jegyzetpályázatának
Bevezetés Működési elv AJAX keretrendszerek AJAX
AJAX Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek
Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET) Webfejlesztés MVC architektúrában Fejlesztés ASP.
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 2. előadás Webfejlesztés MVC architektúrában (ASP.NET) 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Java és web programozás
Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:
Szoftvertechnológia alapjai Java előadások
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?
Web programoz as 2009 2010
Web programozás 2009 2010 Áttekintés A web rövid története Kliens szerver architektúra Néhány alapfogalom Kliens- illetve szerver oldali technológiák áttekintése Áttekintés: miről lesz szó (kurzus/labor/vizsga)
Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans
Enterprise JavaBeans Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans (EJB) server oldali komponens, amely Az üzleti
1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11
Tartalomjegyzék 1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11 Géptől gépig... 11 Számok a gépeknek... 13 Nevek az embereknek... 14 Programok egymás
Kivételkezelés, naplózás. Exception handling, logging
Kivételkezelés, naplózás Exception handling, logging Try-catch try { // Kódrészlet, amely kivételt eredményezhet catch (Exception1 object1 ) { // Az Exception1 kivétel kezelésének megfelelő kód catch (Exception2
Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?
Szálkezelés 1. A szekvencia diagram feladata az objektumok egymás közti üzenetváltásainak ábrázolása egy időtengely mentén elhelyezve. Az objektumok életvonala egy felülről lefelé mutató időtengely. A
Bánsághi Anna anna.bansaghi@mamikon.net. 2015 Bánsághi Anna 1 of 31
ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 5. ELŐADÁS - ABLAKOK, ERŐFORRÁSOK 2015 Bánsághi Anna 1 of 31 TEMATIKA I. C# áttekintés II. WPF 2015 Bánsághi Anna 2 of 31 II. WPF 1.
Java és web programozás
Budapesti Műszaki Egyetem 2015. 04. 08. 9. Előadás Kivétel kezelés a kivétel (exception) egy esemény, mely futás közben megbontja a program normális futási folyamatát például kivétel dobódik amikor 0-val
Access adatbázis elérése OLE DB-n keresztül
Access adatbázis elérése OLE DB-n keresztül Készítsünk egy grafikus felülető alkalmazást, ami lehetıvé teszi egy Access adatbázisban tárolt hallgatói adatok (EHA, Név, e-mail cím) lekérdezését (összes
1. Az Android platform bemutatása (Ekler Péter)... 1 1.1. Az Android sikerességének okai... 1 1.2. Az Android platform története... 3 1.3. Android-verziók... 5 1.4. Android Market (Google Play)... 13 1.5.
ISA szimulátor objektum-orientált modell (C++)
Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált
Kommunikáció. 3. előadás
Kommunikáció 3. előadás Kommunikáció A és B folyamatnak meg kell egyeznie a bitek jelentésében Szabályok protokollok ISO OSI Többrétegű protokollok előnyei Kapcsolat-orientált / kapcsolat nélküli Protokollrétegek
AJAX Framework építés. Nagy Attila Gábor Wildom Kft. nagya@wildom.com
AJAX Framework építés Wildom Kft. nagya@wildom.com Mi az AJAX? Asynchronous JavaScript and XML Ennél azért kicsit több: Koncepció váltás a felhasználói interface tervezésben Standard kompatibilis HTML!
Szolgáltatás Orientált Architektúra és több felhasználós adatbázis használata OKF keretein belül. Beke Dániel
Szolgáltatás Orientált Architektúra és több felhasználós adatbázis használata OKF keretein belül Beke Dániel Alap Architektúrák ESRI építőelemek Gazdag (vastag) Kliens Alkalmazások Web Alkalmazások Szolgáltatások
Testreszabott alkalmazások fejlesztése Notes és Quickr környezetben
Testreszabott alkalmazások fejlesztése Notes és Quickr környezetben Szabó János Lotus Brand Manager IBM Magyarországi Kft. 1 Testreszabott alkalmazások fejlesztése Lotus Notes és Quickr környezetben 2
A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A J2EE fejlesztési si platform (application model) 1.4 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. A J2EE application model A Java szabványok -
A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.
Vizuális programozás 1. A gyakorlat célja A gyakorlat célja a Könyvtár alkalmazás folytatása az előző gyakorlaton elkészített grafikus felület felhasználásával. Elsőként lemásoljuk az előző gyakorlat eredményeként
Objektumelvű programozás
Objektum, osztály Objektumelvű programozás Az elemzés együttműködő objektumok rendszereként fogalmazza meg a feladatot. Objektum-központú elemzés A tervezés a feladat tárgyköreit egy-egy objektum felelősségévé
Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése
Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése Somogyi Ferenc Attila 2016. December 07. Szoftver verifikáció és validáció kiselőadás Forrás Mathijs Schuts and Jozef
MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák
Java Web technológiák Bevezetés Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés
S01-7 Komponens alapú szoftverfejlesztés 1
S01-7 Komponens alapú szoftverfejlesztés 1 1. A szoftverfejlesztési modell fogalma. 2. A komponens és komponens modell fogalma. 3. UML kompozíciós diagram fogalma. 4. A szoftverarchitektúrák fogalma, összetevői.
Enterprise JavaBeans 1.4 platform (EJB 2.0)
Enterprise JavaBeans 1.4 platform (EJB 2.0) Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök
Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész
3. előadás Protokollok Kommunikáció 2. rész RPC (Remote Procedure Call) távoli eljáráshívás RMI (Remote Method Invocation) távoli metódushívás MOM (Message-Oriented Middleware) üzenetorientált köztesréteg
Objektumorientált paradigma és programfejlesztés Bevezető
Objektumorientált paradigma és programfejlesztés Bevezető Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján
JEE tutorial. Zsíros Levente, 2012
JEE tutorial Zsíros Levente, 2012 A J2EE részei Webkonténer Szervletek JSP oldalak EJB (Enterprise Java Bean) konténer Session Bean Entity Bean (Java Persistence API-t használják) A Glassfish és JBoss
Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET Core) Cserép Máté
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 2. előadás Webfejlesztés MVC architektúrában (ASP.NET Core) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Fejlesztés
Bevezetés az SAP világába. 5. Kommunikációs és integrációs technológiák
Bevezetés az SAP világába Zolnai László zolnai@elte.hu http://zolnai.web.elte.hu/bev_sap.html 5. Kommunikációs és integrációs technológiák 1 Rendszerek közötti kapcsolatok SAP és nem-sap rendszerek Vállalaton
Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok
Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int
Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu
Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:
ENTERPRISE PORTAL. Egy modern portál esetén
ENTERPRISE PORTAL ENTERPRISE PORTAL OpenSource eszközök alkalmazásával robosztus, költséghatékony web portálok kialakítására van lehetőség. Igény esetén piacvezető, licenc díjas termékek is alkalmazhatók.
Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 8. előadás Webszolgáltatások megvalósítása (ASP.NET WebAPI) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Multimédia 2017/2018 II.
Multimédia 2017/2018 II. 1. gyakorlat HTML5, CSS3 alapok Alapvető HTML5 elemek Egyszerű HTML dokumentum Oldal cime
WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31
Web programozás 2011 2012 1 / 31 Áttekintés Mi a web? / A web rövid története Kliens szerver architektúra Néhány alapfogalom Kliens- illetve szerver oldali technológiák áttekintése Miről lesz szó... (kurzus/labor/vizsga)
Adatbányászat és Perszonalizáció architektúra
Adatbányászat és Perszonalizáció architektúra Oracle9i Teljes e-üzleti intelligencia infrastruktúra Oracle9i Database Integrált üzleti intelligencia szerver Data Warehouse ETL OLAP Data Mining M e t a
Előszó... 13. 1. A Windows alkalmazásfejlesztés rövid története... 15. A Windows életútja... 15 A Windows 8 paradigmaváltása... 16
Előszó... 13 1. A Windows alkalmazásfejlesztés rövid története... 15 A Windows életútja... 15 A Windows 8 paradigmaváltása... 16 A Microsoft megteszi az első lépéseket a fogyasztók felé... 17 A Windows
Autóipari beágyazott rendszerek. Komponens és rendszer integráció
Autóipari beágyazott rendszerek és rendszer integráció 1 Magas szintű fejlesztési folyamat SW architektúra modellezés Modell (VFB) Magas szintű modellezés komponensek portok interfészek adattípusok meghatározása
JavaScript Web AppBuilder használata
JavaScript Web AppBuilder használata Kiss András Esri Magyarország Kft. 2015. október 8. Az ArcGIS Platform lehetővé teszi a Web GIS-t Térinformatika elérése bárhonnan Desktop Web Eszköz Egyszerű Egységes
Szervlet-JSP együttműködés
Java programozási nyelv 2007-2008/ősz 10. óra Szervlet-JSP együttműködés Kérés továbbítás technikái legradi.gabor@nik.bmf.hu szenasi.sandor@nik.bmf.hu Szervlet-JSP együttműködés Témakörök Osztálykönyvtár
Komponens alapú programozás Bevezetés
Komponens alapú programozás Bevezetés Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Ez a tananyag felhasználja a TEMPUS S_JEP-12495-97 Network Computing Chapter 8 Developing of Network Computing
Integrációs mellékhatások és gyógymódok a felhőben. Géczy Viktor Üzletfejlesztési igazgató
Integrációs mellékhatások és gyógymódok a felhőben Géczy Viktor Üzletfejlesztési igazgató Middleware projektek sikertelenségeihez vezethet Integrációs (interfész) tesztek HIÁNYA Tesztadatok? Emulátorok?
ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu
ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu Számonkérés 2 Papíros (90 perces) zh az utolsó gyakorlaton. Segédanyag nem használható Tematika 1. félév 3 Óra Dátum Gyakorlat 1. 2010.09.28.
HTML és CSS. Horváth Árpád május 6. Óbudai Egyetem Alba Regia M szaki Kar (AMK) Székesfehérvár
Óbudai Egyetem Alba Regia M szaki Kar (AMK) Székesfehérvár 2015. május 6. Vázlat 1 2 A világháló Története statikus és dinamikus oldal URL DNS-feloldás IP-cím ügyfél (kliens, böngész ) és szerver (kiszolgáló)
Szoftver újrafelhasználás
Szoftver újrafelhasználás Szoftver újrafelhasználás Szoftver fejlesztésekor korábbi fejlesztésekkor létrehozott kód felhasználása architektúra felhasználása tudás felhasználása Nem azonos a portolással
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális
Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;
Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely
Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.
JSON tutorial Készítette: Cyber Zero Web: www.cyberzero.tk E-mail: cyberzero@freemail.hu Msn: cyberzero@mailpont.hu Skype: cyberzero_cz Fb: https://www.facebook.com/cyberzero.cz BEVEZETÉS: A JSON (JavaScript