WEBES ALKALMAZÁSFEJLESZTÉS 1.
|
|
- Hanna Budainé
- 10 évvel ezelőtt
- Látták:
Átírás
1 WEBES ALKALMAZÁSFEJLESZTÉS 1. Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, Tel: (1) /1816
2 Tartalom 2 Adatbázis-biztonság Model-View-Controller minta MVC keretrendszerek CodeIgniter
3 3 Adatbázis-biztonság
4 Biztonsági szempontok 4 Különböző vetületek Programozás Adminisztrációs Üzemeltetés Munkaszervezés Különböző rétegek Adatbázis Csatorna Kliens
5 Biztonsági szempontok 5 Adatbázis Ne a tulajdonos vagy adminisztrátor nevében kapcsolódjunk Saját felhasználó vagy csoport létrehozása Adatbázis, tábla, mező szintű jogosultságok beállítása Magasabb szintű elemek használata Nézetek Tárolt eljárások Triggerek Adatok titkosítása (pl. jelszó)
6 Biztonsági szempontok 6 Csatorna a szerver és kliens között Hálózati forgalom titkosítása Kliens SQL összeállításának módja Szövegösszefűzés (SQL injection) Paraméterkötés Adatok ellenőrzése Black list White list Megfelelő típusra hozatal Veszélyes karakterek escape-elése
7 SQL injection 7 Ellenőrizetlen adatok és kevésbé biztonságos SQL előállítási módszerek használata hibához illetéktelen hozzáféréshez vezethet
8 SQL injection 8 Elvárt működés $user = 'alma'; $pwd = 'korte'; $q = "SELECT count(1) from users where userid='" + $user + "' and passwd='" + $pwd + "'; "; $q === "SELECT count(1) from users where userid='alma' and passwd='korte'; " DE: $user = ''; $pwd = "' or '1'='1"; $q === "SELECT count(1) from users where userid='' and passwd='' or '1'='1'; "
9 SQL injection 9 //Elvárt mûködés $offset = 10; $q = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;"; $q === "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET 10;"; //DE: $offset = "0; insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd) select 'crack', usesysid, 't','t','crack' from pg_shadow where usename='postgres';"; $q === "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET 0; insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd) select 'crack', usesysid, 't','t','crack' from pg_shadow where usename='postgres';;";
10 SQL injection 10 További példák union a selectben xp_cmdshell Linkek
11 SQL injection elkerülése 11 Adatok ellenőrzése Speciális karakterek szűrése, escape-elése mysql_real_escape_string() Összefűzés helyett szövegsablon használata sprintf Összefűzés helyett adatkötés használata binding
12 Adatkötés (binding) 12 Adatbázis-kezelőnek támogatnia kell SQL utasításban csak paramétereket tüntetünk fel, nem konkrét értékeket A sablont az adatbázis-kezelő dolgozza fel, készíti elő A paraméterek konkrét értéket kapnak (típusos) Végrehajtás kezdeményezése
13 Adatkötés (binding) 13 Előnyei Nincs manuális escape-elés SQL utasítások többszöri futtatása újraértelmezés nélkül Bináris adatok hatékonyabb közlekedtetése Olvashatóbb kód Hátrányai Egyszer futó lekérdezéseknél lassabb Általában csak DML-re működik
14 14 Model-View-Controller minta
15 Model-View-Controller 16 Modell Alkalmazás adatai és folyamata Üzleti logika Nézet Web design, sablon, HTML, CSS, JavaScript Modell adatait jeleníti meg megfelelően formázva Vezérlő Folyamatot irányítja, begyűjti az input adatokat és azokat a modellnek és a nézetnek átadja
16 MVC architektúra 17 Vezérlő Modell Nézet
17 18 MVC a weben
18 19 MVC a weben
19 20 MVC a weben
20 Modell 21 Üzleti logika Alkalmazás adatai Tárolás, feldolgozás, absztrahálás Független a nézettől és a HTTP kérés feldolgozásától Általában nincs benne HTML és pl. $_GET Általában adatbázisokkal dolgozik Adatbázis-elérési absztrakció (réteg) Adatbázis-absztrakció (réteg)
21 Nézet 22 Megjelenítés HTML, CSS, JavaScript, XML, PDF, szöveg, kép Nem tartalmazhat logikát, adatfeldolgozást Sablonnyelv használata PHP alternatív szintaxis limitált utasításkészlet Smarty, stb.
22 PHP mint sablonnyelv (Savant2) 23 require_once 'Savant2.php'; $tpl =& new Savant2(); $tpl->assign('title', 'Colors of the Rainbow'); $tpl->assign('colors', array('red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet')); $tpl->display('rainbow.tpl.php'); <html><head> <title><?php echo $this->title?></title> </head><body> <h1><?php echo $this->title?></h1> <ol> <?php foreach ($this->colors as $color):?> <li><?php echo $color?></li> <?php endforeach;?> </ol> </body></html>
23 Vezérlő 24 Az MVC minta legáltalánosíthatóbb része Kérés feldolgozása, adatok továbbítása a modellnek és nézetnek Több további részekre bontható bootstrap file Front Controller Action Controller
24 MVC előnye 25 Fejlesztési munkafolyamatokat támogatja Három fő szerepkör van egy fejlesztői csapatban Fejlesztők Modellen dolgoznak (PHP, adatbázis, algritmus, architektúra) Tervezők Nézeten dolgoznak (HTML, CSS, JavaScript, grafikus elemek, mockup, stb.) Integrátorok Vezérlőn dolgoznak, ők kapcsolják össze a modellt a nézettel, kevésbé képzettek, mint a fejlesztők
25 26 MVC keretrendszerek
26 Keretrendszerek 27 bizonyos filozófiának megfelelő szabályok gyűjteménye ahány keretrendszer, annyi féle szabályok korlátokat is jelentenek egységesebb alkalmazásfejlesztés szétválasztott kód és logika meghatározott könyvtárszerkezet csoportmunka támogatott rétegek szétválasztása
27 MVC-s keretrendszerek 28 Az MVC filozófiájára épülő keretrendszerek Nem egységesek, sokféle megoldás Alkalmazott minták Front Controller egy belépési pont MVC
28 Hogyan válasszunk keretrendszert 29 Architektúra Dokumentáció Közösség Támogatás Rugalmasság
29 30 CodeIgniter
30 CodeIgniter 31 PHP MVC keretrendszer Jó dokumentáció: Egyik legrégebbi PHP MVC keretrendszer Nagy közösség
31 33 Oldal életciklusa
32 34 Könyvtárszerkezet
33 CodeIgniter URL-ek 35 Szegmens alapú URL kezelés pelda.hu/index.php/class/action/par1/par2 pelda.hu/class/action/par1/par2.htaccess beállítás Keresőbarát forma Könnyű könyvjelzőzni Beszédes RewriteEngine on RewriteCond $1!^(index\.php images robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L]
34 Konfiguráció 36 application/config könyvtárban config.php routes.php database.php autoload.php
35 Vezérlők 37 pelda.hu/index.php/products/detail/12 application/controllers/products.php Vezérlő egy osztály, amely a CI_Controller-ből származik Alapértelmezések Ha nincs class, akkor default_controller a config/routes.php-ban $route['default_controller'] = 'Main'; Ha nincs action, akkor: index Privát metódusok _-sal kezdődnek: _belso()
36 Vezérlő 38 class Products extends CI_Controller { public function construct() { parent:: construct(); //Konstruktor kódja } public function index() { //Alapértelmezett action } public function detail($id) { // $id-jú termék megjelenítése } private function _belso() { } }
37 Nézetek 39 application/views könyvtárba Vezérlő tölti be $this->load->view('detail') Több nézet betöltésekor az eredmény összefűzésre kerül Adatokat a nézetnek átadni 2. paraméterként lehet asszociatív tömbként A kulcsból változónevek lesznek a view-ban a megfelelő értékkel 3. paraméterként megadott true értékkel a view eredményét szövegesen vissza lehet kapni $string = $this->load->view('nezet', '', true);
38 Nézetek 40 class Products extends CI_Controller { public function index() { $data = array( 'alma' => 'piros', 'korte' => 'kukacos', ); $this->load->view('proba', $data); } } <html> <head> <title>my Blog</title> </head> <body> <p>az alma <?php echo $alma;?>.</p> <p>a körte <?php echo $korte;?>.</p> </body> </html>
39 Modellek 41 application/models könyvtárba Osztály CI_Model-ből származik Osztály nevének első betűje nagy Fájlnév kisbetűs Vezérlő tölti be általában $this->load->model('product_model'); Használata $this->product_model->get_products();
40 Modellek 42 class Product_model extends CI_Model { function construct() { parent:: construct(); $this->load->database(); } function get_products() { $query = $this->db->get('products'); return $query->result(); } } class Products extends CI_Controller { public function index() { $this->load->model('product_model'); $products = $this->procuct_model->get_products(); $this->load->view('proba', array( 'products' => $products, )); } }
41 Adatbázis használat 43 CodeIgniter tartalmaz egy adatbázis-elérési és adatbázis-absztrakciós réteget Adatbázis-kezelő független kód írása Konfiguráció: config/database.php Betöltés: $this->load->database(); Tipikusan a modellben használjuk Automatikus betöltés: config/autoload.php
42 Lekérdezések 44 $q = $this->db->query('sql') Adatkötés $this->db->query( 'select * from table where mezo1=? and mezo2=?', array('alma', 12) ); Eredmények $q->result() $q->result_array() $query = $this->db->query("sql"); foreach ($query->result() as $row) { echo $row->mezo1; echo $row->mezo2; }
43 Active record 46 $this->db->get('table') $this_>db->select() $this_>db->from() stb. $this_>db->insert('table', array()) $this_>db->update('table', array()) $this_>db->delete('table', array()) array(): kulcs-érték párok
44 Könyvtárak és segédfüggvények 47 Library $this->load->library(); Form Validation Input Helper Form helper URL helper HTML helper
45 49 Fejlesztői környezet
46 Fejlesztői környezet részei 50 Szerver oldalon webszerver PHP adatbázis-kezelő Kliens oldalon böngésző Fejlesztői környezet HTML, CSS és PHP szerkesztésére egyaránt alkalmas IDE Adatbázis kliens: adatbázisok elérésére és kezelésére SFTP, SCP kliens az állományok webszerverre töltéséhez
47 Szerver oldal 51 webprogramozas.inf.elte.hu Felhasználónév: ETRAZON Jelszó: almafa1 SSH klienssel bejelentkezve passwd paranccsal változtatható meg
48 Webszerver 52 Apache 2 Dokumentumok gyökérkönyvtára: Ez a szerveren a következő mappa: ~/public_html/
49 PHP 53 Modulként telepítve nem processként, hanem threadként fut phpinfo()
50 Adatbázis-kezelő 54 MySQL webprogramozas.inf.elte.hu Csak localhostból érhető el Felhasználónév: neptun Jelszó: almafa1 Adatbázis: neptun
51 Böngésző 55 Bármelyik kurrens böngésző választható Kényelmesen és gyorsan lehessen fejlesztésre használni Kiegészítő modulok: http figyelése, validátorok Fejlesztőeszközök Forrás színezése Keresés a forrásban is Sütik, képek kezelése Funkciók letiltása Gyorsítótár ürítése
52 IDE 56 Kényelmi funkciók PHP, HTML és CSS szerkesztése szintaxis alapján színezés kódkiegészítés blokkok jelölése, össszecsukása behúzások intelligens kezelése nyomkövetés támogatása utasítások szignatúrája, leírása projektek kezelése állományok szerverre feltöltése verziókövető rendszerek integrálása kódrészletek definiálása pluginek kezelése Notepad++ Netbeans IDE Eclipse Aptana
53 Adatbázis kliensek 57 Sokféle funkciót kell ellátnunk Felhasználók és jogosultságok kezelése Táblák, nézetek, tárolt eljárások kezelése Adminisztrációs teendők Kliensek parancssori kliensek: mysql, mysql_dump, stb webes kliens: phpmyadmin asztali kliens: MySQL Workbench
54 SFTP, SCP kliensek 58 WinScp FileZilla Néhány IDE ezt automatikusan megteszi
55 Otthoni fejlesztéshez 59 XAMPP telepítőcsomag Multiplatform XAMPP tartalmazza Apache (IPv6 enabled) + OpenSSL 0.9.8l MySQL PBXT engine PHP phpmyadmin Perl FileZilla FTP Server Mercury Mail Transport System 4.72
56 60 XAMPP telepítés
57 61 XAMPP kezdőlap (
58 XAMPP Biztonsági figyelmeztetés 62 A feltelepült rendszerben A MYSQL adminisztrátornak nincs jelszó beállítva MYSQL démon a hálózaton elérhető phpmyadmin elérhető a hálózaton A XAMPP kezdőlap elérhető a hálózaton A Mercury és FileZilla alkalmazások alapértelmezett felhasználói adatai ismertek Ha nyilvános webszervert készítünk, akkor biztonságossá kell tenni
59 63 XAMPP biztonsági beállítások (Security)
60 64 XAMPP biztonsági beállítások (Security)
61 XAMPP portable 65 Nem kell telepíteni, pendriveról is működik Lépések Mappa létrehozása XAMPP ZIP változatának letöltése, kitömörítése a mappába setup_xampp.bat elindítása xampp-control.exe elindítása és a vezérlőpulton elindítható a kívánt szolgáltatás
WEBES ALKALMAZÁSFEJLESZTÉS 1.
WEBES ALKALMAZÁSFEJLESZTÉS 1. 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 Tartalom 2 Adatbázis-biztonság Model-View-Controller minta MVC keretrendszerek
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
WEBFEJLESZTÉS 2. MUNKAMENET-KEZELÉS, HITELESÍTÉS
WEBFEJLESZTÉS 2. MUNKAMENET-KEZELÉS, HITELESÍTÉS 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 PHP beadandó 2 Honlapról elérhető Labirintus-játék
Megtanuljuk, hogyan lehet egy web-alkalmazással adatbázishoz csatlakozni Pontosan megnézzük a PHP lehetőségeit o MySQL-hez o Oracle-höz
PHP Adatbázis Tartalomjegyzék PHP ADATBÁZIS...1 TARTALOMJEGYZÉK...1 EDDIG VOLT...1 MAI ANYAG...1 TEHÁT RÉSZLETESEBBEN...1 Kapcsolódás web-alkalmazásokból adatbázisokhoz...1 Biztonsági kérdések...2 PHP...2
SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC
SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC ADATBÁZISOK Adatbázis = adott formátum és rendszer szerint tárolt adatok összessége. DBMS feladatai: adatstruktúra (adatbázisséma)
PHP-MySQL. Adatbázisok gyakorlat
PHP-MySQL Adatbázisok gyakorlat Weboldalak és adatbázisok Az eddigiek során megismertük, hogyan lehet a PHP segítségével dinamikus weblapokat készíteni. A dinamikus weboldalak az esetek többségében valamilyen
PHP. Adatbázisok gyakorlat
PHP Adatbázisok gyakorlat Mi a PHP? A PHP (PHP: Hypertext Preprocessor) egy nyílt forráskódú, számítógépes szkriptnyelv, legfőbb felhasználási területe a dinamikus weboldalak készítése. A PHP-kódunk általában
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.
SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő A PHP programozási nyelv JDBC, ODBC
SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS A MySQL adatbáziskezelő A PHP programozási nyelv JDBC, ODBC ADATBÁZISOK Adatbázis = adott formátum és rendszer szerint tárolt adatok összessége. DBMS feladatai: adatstruktúra
Webtárhely létrehozása a WWW.freeweb.hu helyen. Lépések Teendő 1. Böngészőbe beírni: www.freeweb.hu. 2. Jobb oldalon regisztrálni (tárhelyigénylés).
Lépések Teendő 1. Böngészőbe beírni: www.freeweb.hu Kép 2. Jobb oldalon regisztrálni (tárhelyigénylés). 3. 4. Értelemszerűen kitölteni a regisztrációs lapot, és elküldeni. 5. Postafiókomra érkező levélben
10.óra CodeIgniter Framework #3. Gyimesi Ákos
10.óra CodeIgniter Framework #3 Gyimesi Ákos gyimesi.akos@gmail.com http://webprog.gy-i-m.com Ismétlés Model View Controller Ismétlés Model application/models/books_model.php: class Books_model extends
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
Gyakorlati vizsgatevékenység A
Gyakorlati vizsgatevékenység A Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés
Gyakorlati vizsgatevékenység B
Gyakorlati vizsgatevékenység Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés
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
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
Model View Controller alapú alkalmazásfejlesztés
10. Laboratóriumi gyakorlat Model View Controller alapú alkalmazásfejlesztés A gyakorlat célja: Az MVC elv megértése és ismerkedés egy egyszerű MVC keretrendszerrel. Felkészüléshez szükséges anyagok: 1.
Web programozás I. 4. előadás
Web programozás I. 4. előadás CSS Pozícionálás http://www.brainjar.com/css/positioning/def ault.asp Design kialakívása http://www.albinoblacksheep.com/livedesign/ http://www.dynamicdrive.com/style/ http://www.opendesigns.org/
PHP MySQL, Java JDBC MySQL. Adatbázisok az iskolában 2012 Dr. Balázs Péter Palatinus Endre és Erdőhelyi Balázs diái alapján
PHP MySQL, Java JDBC MySQL Adatbázisok az iskolában 2012 Dr. Balázs Péter Palatinus Endre és Erdőhelyi Balázs diái alapján Mi a PHP? A PHP (PHP: Hypertext Preprocessor) egy nyílt forráskódú, számítógépes
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,
A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:
1 Adatbázis kezelés 3. gyakorlat A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: Tábla kapcsolatok létrehozása,
CodeIgniter keretrendszer
1 CodeIgniter keretrendszer 1.1. Bemutatása A készítéskor kitűzött cél az volt, hogy létrehozzanak egy olyan eszközt, amivel lényegesen gyorsabb egy PHP oldalt elkészíteni, mint a nyers PHP-val, mindezt
WEBFEJLESZTÉS 2. ADATTÁROLÁS, FÁJLOK
WEBFEJLESZTÉS 2. ADATTÁROLÁS, FÁJLOK 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 Dinamikus szerveroldali webprogramozás:
AdoDB a gyakorlatban
Harmadik Magyarországi PHP Konferencia 2005 http://www.phpconf.hu/ Előadó: Török Gábor gabor.torok@webdevil.hu (WebDevil Oktatási Központ) Mi? ADOdb: Active Data Objects Database Megvalósítás függetlenül
Biztonságos PHP a gyakorlatban
Biztonságos PHP a gyakorlatban Ahhoz, hogy meg tudjuk védeni PHP alkalmazásainkat, az elsõ és legfontosabb lépés a biztonsági veszélyek felismerése és megértése. Az elmúlt két évben a PHP magfejlesztõi
Webapp (in)security. Gyakori hibákról és azok kivédéséről fejlesztőknek és üzemeltetőknek egyaránt. Veres-Szentkirályi András
Webapp (in)security Gyakori hibákról és azok kivédéséről fejlesztőknek és üzemeltetőknek egyaránt Veres-Szentkirályi András Rövid áttekintés Webalkalmazások fejlesztése során elkövetett leggyakoribb hibák
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,
9.óra CodeIgniter Framework #1. Gyimesi Ákos
9.óra CodeIgniter Framework #1 Gyimesi Ákos gyimesi.akos@gmail.com http://webprog.gy-i-m.com Miért van szükség keretrendszerre? Keretet ad, hogyan álljunk neki a feladatnak Előre definiált felépítés, ami
Miért érdemes váltani, mikor ezeket más szoftverek is tudják?
Néhány hónapja elhatároztam, hogy elkezdek megismerkedni az Eclipse varázslatos világával. A projektet régóta figyelemmel kísértem, de idő hiányában nem tudtam komolyabban kipróbálni. Plusz a sok előre
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
WEBES ALKALMAZÁSFEJLESZTÉS 1.
WEBES ALKALMAZÁSFEJLESZTÉS 1. 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 Tartalom 2 MVC ismétlés Mini MVC saját MVC keretrendszer MVC részeinek
Szerver oldali technológiák Szerver oldali script nyelvek PHP
Szerver oldali technológiák Szerver oldali script nyelvek Áttekintés Szerver oldali technológiák Szerver oldali script nyelvek Formkezelés Állománykezelés Cookie (süti) Szessziókövetés MySQL adatbázishozzáférés
Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET) Cserép Máté.
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás (ASP.NET) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Készült Giachetta Roberto jegyzete alapján
Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET Core) Cserép Máté
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás Megjelenítés és tartalomkezelés (ASP.NET Core) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Nézetek
Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás (ASP.NET) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Nézetek kezelése Sok esetben
Postfilter. Kadlecsik József KFKI RMKI <kadlec@sunserv.kfki.hu>
Postfilter Kadlecsik József KFKI RMKI Tartalom Bevezetés Postfilter rendszer felépítése Szűrési feltételek CGI felületek Demo Előzmények Postfix per_user_uce patch: 1999-2002 postfilter
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
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
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
Microsoft SQL Server telepítése
Microsoft SQL Server telepítése Az SQL Server a Microsoft adatbázis kiszolgáló megoldása Windows operációs rendszerekre. Az SQL Server 1.0 verziója 1989-ben jelent meg, amelyet tizenegy további verzió
Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009
Adatbázisok elleni fenyegetések rendszerezése Fleiner Rita BMF/NIK Robothadviselés 2009 Előadás tartalma Adatbázis biztonsággal kapcsolatos fogalmak értelmezése Rendszertani alapok Rendszerezési kategóriák
<Insert Picture Here> Migráció MS Access-ről Oracle Application Express-re
Migráció MS Access-ről Oracle Application Express-re Sárecz Lajos Oracle Hungary Izsák Tamás Független szakértő Program Miért migráljunk Microsoft Access-ről? Mi az az Oracle Application
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
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS 2015-2016 Adatbázis alapú alkalmazások készítése PHP-ben Adatbázis alapú alkalmazás 2 A leggyakrabban használt dinamikus alkalmazások
SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók
SQL*Plus Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP dolgozó), DEPT osztály) "közönséges" felhasználók Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:
10. évfolyam 105 óra 10817-12 azonosító számú Hálózatok, programozás és adatbázis-kezelés 105 óra Adatbázis- és szoftverfejlesztés gyakorlat tantárgy
9. évfolyam 70 óra 10815-12 azonosító számú Információtechnológiai alapok gyakorlat 70 óra Információtechnológiai gyakorlat tantárgy 70 óra Számítógép összeszerelése Számítógép szétszerelése. Pontos konfiguráció
OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.
OO PDO PDO VS MYSQLi VS MYSQL ================================================================================ A PHP mysql metódusai elavultak, helyette lehet hazsnálni a MYSQLi metódusokat, amelyek szinte
Tartalomjegyzék. Weboldalüzemeltetői praktikák... 1 Átlag weboldal... 1 Wordpress praktikák... 2
2019. August 14. 20:43 1/2 Weboldalüzemeltetői praktikák Tartalomjegyzék Weboldalüzemeltetői praktikák... 1 Átlag weboldal... 1 Wordpress praktikák... 2 Last update: 2018. January 05. 12:02 web:web http://wiki.mav-it.hu/web/web
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
Moodle -egy ingyenes, sokoldalú LMS rendszer használata a felsőoktatásban
Moodle -egy ingyenes, sokoldalú LMS rendszer használata a felsőoktatásban Vágvölgyi Csaba (vagvolgy@kfrtkf.hu) Kölcsey Ferenc Református Tanítóképző Főiskola Debrecen Moodle??? Mi is ez egyáltalán? Moodle
Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor
Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése Készítette: Simon Nándor Integrált fejlesztő környezet Egységes (vizuális) fejlesztési lehetőségek Bőséges segítség (help) Hibakeresési, nyomkövetési
Kedvenc Linkek a témakörben: MySQL mindenkinek Vizuális adatbázis tervezés
Nagyon fontos, hogy az adatbázis tervezések folyamán is, ugyan úgy mint a megvalósítandó programhoz, legyenek modelljeink, dokumentációk, diagramok, képek, stb.., ezek segítségével könnyebben átlátjuk
Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra
Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama 10. évfolyam: 105 óra 11. évfolyam: 140 óra 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra 36 óra OOP 14 óra Programozási
A NetBeans IDE Ubuntu Linux operációs rendszeren
A NetBeans IDE Ubuntu Linux operációs rendszeren Készítette: Török Viktor (Kapitány) E-mail: kapitany@lidercfeny.hu 1/10 A NetBeans IDE Linux operációs rendszeren Bevezető A NetBeans IDE egy Java-ban írt,
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
Web programozás I. tantárgyi információk
Web programozás I. tantárgyi információk Nagy Gusztáv honlap: http://nagygusztav.hu jegyzet e-mail: nagy.gusztav@gamf.kefo.hu tantárgy honlapja: http://webprog.hu/ tantárgyi hírek (nem ETR kurzusfórum!)
JAVA SE/ME tanfolyam tematika
JAVA SE/ME tanfolyam tematika TANFOLYAM TEMATIKA: A JAVA MEGISMERÉSE Java története, miért készült, miért népszerű NETBEANS környezet telepítése, megismerése Programozási alapok java nyelven Változók,primitív
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
MIKOVINY SÁMUEL TÉRINFORMATIKAI EMLÉKVERSENY
FVM VIDÉKFEJLESZTÉSI, KÉPZÉSI ÉS SZAKTANÁCSADÁSI INTÉZET NYUGAT MAGYARORSZÁGI EGYETEM GEOINFORMATIKAI KAR MIKOVINY SÁMUEL TÉRINFORMATIKAI EMLÉKVERSENY 2008/2009. TANÉV Az I. FORDULÓ FELADATAI NÉV:... Tudnivalók
web works hungary Rövid technikai tájékoztató Mars (mars.intelliweb.hu) szerverünkkel kapcsolatban meglévő és új ügyfeleink számára.
web works hungary Rövid technikai tájékoztató Mars (mars.intelliweb.hu) szerverünkkel kapcsolatban meglévő és új ügyfeleink számára. Ebben a tájékoztatóban több helyen hivatkozunk különböző azonosítókra
A Matarka szerszámosládája
A Matarka szerszámosládája Szeged, 2007 Perlaki Attila perlaki@kvtlinux.lib.uni-miskolc.hu 1. Feltöltés A Matarka adatbázis feltöltését a közvetlen kézi bevitelen túl XML állományokból is el lehet végezni.
A WORDPRESS TELEPÍTÉSÉNEK LÉPÉSEI
Mgr. Námesztovszki Zsolt A WORDPRESS TELEPÍTÉSÉNEK LÉPÉSEI Eötvös Loránd Tudományegyetem, Pedagógiai és Pszichológiai Kar Oktatásinformatikai rendszerek - szöveggyűjtemény Budapest, 2013. Bevezető A WordPress
WEB PROGRAMOZÁS 3.ELŐADÁS. Űrlapok
WEB PROGRAMOZÁS 3.ELŐADÁS Űrlapok 2 Globális és környezeti változók Globális és környezeti változók 3 A globális változók azok a változók, amelyeket a program legfelső szintjén, azaz a függvényeken kívül
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)
Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0
Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0 Az Ön letölthető fájl tartalmazza az Evolut Főkönyv 2013. program telepítőjét. A jelen leírás olyan telepítésre vonatkozik, amikor Ön
Dspace fejlesztési tapasztalatok, problémák és megoldások
Dspace fejlesztési tapasztalatok, problémák és megoldások Takács Ákos, fejlesztő takacs.akos@lib.pte.hu Könyvtári igények Az egyetemen keletkezett dokumentumok tárolása Disszertációk Publikációk Szakdolgozatok
Bemutatkozás. Heilig Szabolcs cece@phphost.hu Hojtsy Gábor goba@php.net Illés Szabolcs illes.szabolcs@netkey.hu Palócz István pp@phpconf.
Bemutatkozás Heilig Szabolcs cece@phphost.hu Hojtsy Gábor goba@php.net Illés Szabolcs illes.szabolcs@netkey.hu Palócz István pp@phpconf.hu Második Magyarországi PHP Konferencia 2004. március 27. Tartalomjegyzék
Digitális aláíró program telepítése az ERA rendszeren
Digitális aláíró program telepítése az ERA rendszeren Az ERA felületen a digitális aláírásokat a Ponte webes digitális aláíró program (Ponte WDAP) segítségével lehet létrehozni, amely egy ActiveX alapú,
Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 1. előadás Webes alkalmazások és biztonságuk 2014.02.10. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:
1 Adatbázis kezelés 2. gyakorlat A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: Táblák létrehozása,
Az SQL*Plus használata
Az SQL*Plus használata Célkitűzés Bejelentkezés az SQL*Plus-ba SQL utasítások szerkesztése Az eredmény formázása SQL*Plus utasításokkal Szkriptfájlok használata Az SQL és az SQL*Plus kapcsolata SQL*Plus
Elektronikus levelek. Az informatikai biztonság alapjai II.
Elektronikus levelek Az informatikai biztonság alapjai II. Készítette: Póserné Oláh Valéria poserne.valeria@nik.bmf.hu Miről lesz szó? Elektronikus levelek felépítése egyszerű szövegű levél felépítése
Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás
Petőfi Irodalmi Múzeum A Digitális Irodalmi Akadémia megújuló rendszere technológiaváltás II. Partnerek, feladatok Petőfi Irodalmi Múzeum Megrendelő, szakmai vezetés, kontroll Konzorcium MTA SZTAKI Internet
Szathmáry László Debreceni Egyetem Informatikai Kar
Szathmáry László Debreceni Egyetem Informatikai Kar 1. Gyakorlat bevezető JSON telepítés (utolsó módosítás: 2018. szept. 12.) 2018-2019, 1. félév MongoDB https://www.mongodb.com/ A MongoDB egy nem-relációs,
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
Olyan eszközre van szükség, amelynél a webszerkesztés folyamatát a fejlesztő, nem pedig a program vezérli
Fejlesztőeszközök Olyan eszközre van szükség, amelynél a webszerkesztés folyamatát a fejlesztő, nem pedig a program vezérli Szerkesztők 2 alapvető szolgáltatása: kódszínezés, kódkiegészítés Alapvetően
S, mint secure. Nagy Attila Gábor Wildom Kft. nagya@wildom.com
S, mint secure Wildom Kft. nagya@wildom.com Egy fejlesztő, sok hozzáférés Web alkalmazások esetében a fejlesztést és a telepítést általában ugyanaz a személy végzi Több rendszerhez és géphez rendelkezik
Oracle Audit Vault and Database Firewall. Gecseg Gyula Oracle DBA
Oracle Audit Vault and Database Firewall Gecseg Gyula Oracle DBA TÖBB FENYEGETETTSÉG MINT VALAHA TÖBB FENYEGETETTSÉG MINT VALAHA A támadások 70%-a tűzfalon belülről jön A támadások 90%-át hozzáféréssel
KnowledgeTree dokumentumkezelő rendszer
KnowledgeTree dokumentumkezelő rendszer Budapest, 2011. január 11. Tartalomjegyzék Tartalomjegyzék... 2 Dokumentum információ... 3 Változások... 3 Bevezetés... 4 Funkciók... 5 Felhasználói felület... 5
A telepítési útmutató tartalma
1 A telepítési útmutató tartalma 3 Kompatibilitás és rendszerkövetelmények A telepítési folyamat röviden 4 A telepítés indítása 5 Adatbáziskezelő beállítása / telepítése 8 Telepítési módozatok 11 Az ENSO
Apache, MySQL, PHP/Perl NetWare-n
Apache, MySQL, PHP/Perl NetWare-n www.novell.hu termékleírás Bevezető Az alábbi dokumentumban szeretnénk segítséget adni a NetWare 6, az Apache, a MySQL* és a PHP/Perl (továbbiakban NetWare AMP) környezet
Egészítsük ki a Drupal-t. Drupal modul fejlesztés
Egészítsük ki a Drupal-t Drupal modul fejlesztés Drupal 6.0 2008. február 13. Miért írjunk Drupal modult? Nincs az igényeinknek megfelelő modul Valamilyen közösségi igény kielégítése Valami nem úgy működik
MŰSZAKI DOKUMENTÁCIÓ. Aleph WebOPAC elérhetővé tétele okostelefonon. Eötvös József Főiskola 6500 Baja, Szegedi út 2.
Telefon: Fax: E-mail: (+36-1) 269-1642 (+36-1) 331 8479 info@ex-lh.hu www.ex-lh.hu Eötvös József Főiskola 6500 Baja, Szegedi út 2. MŰSZAKI DOKUMENTÁCIÓ Aleph WebOPAC elérhetővé tétele okostelefonon Pályázati
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
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
2F Iskola fejlesztői dokumentáció
2F Iskola fejlesztői dokumentáció Tartalomjegyzék 2F Iskola fejlesztői dokumentáció...1 1. Vizió...1 2. Követelmények...1 3. Üzleti modell...4 4. Telepítési modell...6 5. Használati esetek...7 6. Felhasználói
Internet programozása. 1. előadás
Internet programozása 1. előadás Áttekintés 1. Mi a PHP? 2. A PHP fejlődése 3. A PHP 4 újdonságai 4. Miért pont PHP? 5. A programfejlesztés eszközei 1. Mi a PHP? Egy makrókészlet volt, amely személyes
WordPress segédlet. Bevezető. Letöltés. Telepítés
WordPress segédlet Bevezető A WordPress egy ingyenes tartalomkezelő rendszer (Content Management System - CMS), amely legnagyobb előnye az egyszerű telepítés és a letisztult kezelhetőség és a változatos
CentOS 7 OTRS telepítése, beállítása
CentOS 7 OTRS telepítése, beállítása Az OTRS egy nagyon jól használható hibajegykezelő rendszer. Az IBM cég áll a szoftver mögött, ami Perl nyelven íródott. A közösségi verziót a https://www.otrs.com/try/
Iroda++ 2010 DEMO telepítési útmutató
Az Iroda++ 2010 DEMO csomag telepítésének lépései Az alábbi pontok szerint telepítheti számítógépére a revolution Iroda++ 2010 program DEMO változatát. Fontos, hogy az Iroda++ rendszere SQL szerveres adatmotort
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
Adatbázis használata PHP-ből
Adatbázis használata PHP-ből Adatbázis használata PHP-ből...1 Nyílt forráskódú adatbázisok...1 A mysql függvények...2 A mysqli függvények...4 Bináris adatok adatbázisban való tárolása...8 Adatbázis csatoló
Felhasználói leírás a DimNAV Server segédprogramhoz ( )
Felhasználói leírás a DimNAV Server segédprogramhoz (1.1.0.3) Tartalomjegyzék Bevezetés...3 1. Telepítés...3 2. Eltávolítás...4 Program használata...5 1. Kezdeti beállítások...5 2. Licenc megadása...6
A NÉGY BŰVÖS HÁRMAS WWW FTP SQL PHP. BRKK::Békéscsaba Linux rendszergazda képzés 2008
A NÉGY BŰVÖS HÁRMAS WWW FTP SQL PHP BRKK::Békéscsaba Linux rendszergazda képzés 2008 Beszerzés Bő a választék, mi most a PRO-FTP Apache PHP5 MYSQL Postgree SQL rendszereket telepítjük Telepítés Hmmm mondjuk
PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19
PHP II. WEB technológiák Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19 Tartalomjegyzék Objektum Orientált Programozás 1 Objektum Orientált Programozás Öröklődés 2 Fájlkezelés
Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése Bevezetés Célkitűzés, tematika, követelmények A.NET Core keretrendszer Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu
Miért jó ez: A Xampp csomag előnyös tulajdonságai: rendkívül jól felszerelt naprakész telepíteni-és frissíteni gyerekjáték.
Ez a leírás a xampp.org oldalon található Windows-ra telepíthető csomagjához készült. A doksi segítségével lokális fejlesztéshez (localhoston 127.0.0.1) új domaint hozhatunk létre. Miért jó ez: hasonló
Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása
DBMS spektrum Excel ODBC-ADO API Tevékenységpontok: - DBMS telepítés - ODBC driver telepítése - DSN létrehozatala -Excel-ben ADO bevonása - ADOConnection objektum létrehozatala - Open: kapcsolat felvétel
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ó
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