Transcript Csikor Akos
Technológiák összehasonlítása J2EE - PHP Csikor Ákos [email protected] ELTE IK Bevezetés – J2EE • • • • Java Platform Enterprise Edition Készítette: Sun Microsystems Objektumorientált programozási nyelv Platformfüggetlen („Írd meg egyszer és futtasd bárhol”) • JVM: Java Virtual Machine • Nagyvállalatoknál használatos technológia • Fejlesztés hordozható, robosztus, skálázható, biztonságos szerveroldali alkalmazások 2 Bevezetés – PHP • • • • • • • • PHP Hypertext Preprocessor Kitalálta: Rasmus Lerdorf Létrejötte után gyorsan fejlődött Jelenleg: Zend cég fejleszti Script programozási nyelv Oldalak dinamikus működéséhez Kis- és középvállalatoknak készült Jelenleg több mint 10 millió webhelyen található 3 Nyelvi elemek a JSP J2EEben és a PHP-ban • Alapjaiban különböznek • OOP ↔ Scriptnyelv • Tag-ek: • JSP: adott tag library-t milyen prefix segítségével • PHP: egyszerűbb: <?php ?> • Beágyazott kódok: • JSP: engedélyezett a forráskódok beillesztése – <h:inputText binding="#{backing_topic.topicName}" id="topicname" required="false” /> • PHP: az csak így működik, nem lehet különválasztani – <input type=”text” name=”felhasználónév”> 4 A megjelenítő és logikai réteg szétválaszthatósága • Nagy méretű programoknál elkülönül • Előnye: – Egyszerre így akár két különböző csapat dolgozhat a különböző rétegeken – Sokkal olvashatóbb rétegek • J2EE: – JSF: backing bean-ek kapcsolása JSP-khez – JSP oldalon binding tulajdonsággal változót rendelni szerveroldalon – Egy backing bean akár több oldalhoz is – Action esetén String visszatérésű függvények (facesconfig.xml-ben navigáció) • PHP: – Nem annyira áll távol egymáshoz képest a két réteg – PHP mellett megjelennek a HTML elemek – Keretrendszerrel lehetne a két réteget „szétválasztani” 5 Adatelérés • J2EE: – Entity Bean-eket használjuk az EJB rétegből – Bean-ekhez a kezelő a Session Bean – Bean-eket táblákhoz rendeljük egy ObjectRelational Mapping-gel – Adat = objektum • PHP: – Nincs ilyen réteg – SQL parancsok gépelése a forráskódban • A legtöbb adatbázishoz a függvények biztosítottak – Adat = adat 6 Példakód - PHP <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Language" content="hu"> <title>Proba Php</title> <body> <?php if( isset($_POST["username"]) && !empty($_POST["username"]) && isset($_POST["username"]) && !empty($_POST["password"]) ) print "Username: " . $_POST["username"] . "<br />"; print "Password: " . $_POST["password"] . "<br />"; ?> <form id="form1" name="form1"> <input type="text" name="username" /><br /> <input type="password" name="password" /><br /> </form> </body> </html> 7 Példakód – J2EE (JSP file) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ page contentType="text/html;charset=windows-1250"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <f:view> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Index</title> </head> <body> <h:form binding="#{backing_topic.form1}" id="form1"> <h:inputText binding="#{backing_topic.topicName}" id="topicname" required="false" /> <h:commandButton value="Add" style="font-family: Verdana, sans-serif, Arial; font-weight: normal; font-size: 11px; color: #404040; background-color: #fafafa; text-align: left; padding-left: 3px;" action="#{backing_topic.addTopicButton_action}" /> <br /> </h:form> </body> </html> 8 Példakód – J2EE (JSF file) public class Topic { private HtmlForm form1; private HtmlInputText topicName; . . . public void setForm1(HtmlForm form1) { this.form1 = form1; } public HtmlForm getForm1() { return form1; } public void setTopicName(HtmlInputText topicName) { this.topicName = topicName; } public HtmlInputText getTopicName() { return topicName; } public void setTopic(HtmlInputText topicName){ cm.addTopics(topicName.toString()); } public String addTopicButton_action(){ try{ cm.addTopics(topicName.getValue().toString()); } catch(NullPointerException ex){ } return ""; } 9 Technológiákat segítő fejlesztői környezetek • Számos fejlesztői környezet • Vannak fizetősek és ingyenesek • Mégtöbb editor, ami csak a szintaxist ismeri • Mindegyik internetről beszerezhető • Mindkét technológiát kitaláló cég írt hozzá keretrendszert 10 J2EE fejlesztői környezetek • NetBeans: www.netbeans.org – – – – Sun fejleszti, ingyenes Standard-tól enterprise-ig támogat GUI-t Drag’nDrop technikával Jelenleg: 6.0 Beta2, 5.5.1 stabil 11 J2EE fejlesztői környezetek • JDeveloper Studio Edition: http://www.oracle.com/technology/products/jdev/ – Oracle fejleszti, ingyenes, adatbázisához – Jelenleg: 11.1.1, 10.1.3.3 12 J2EE fejlesztői környezetek • Eclipse: www.eclipse.org – Ingyenes, nagyon sok plugin van hozzá – Nagyon sok programozási nyelvet ismer – Jelenleg: 3.3.1.1 13 PHP fejlesztői környezetek • Zend Studio: www.zend.com – Zend fejleszti, egyik legnagyobb, fizetős($254) lassú, beépített webserver 14 PHP fejlesztői környezetek • NuSphere PhpED: www.nusphere.com – NuSphere fejleszti, másik legnagyobb, fizetős ($249), beépített webserver 15 Fejlesztői környezetek • Funkcionalitásukban megegyeznek: • Kinézetük: – ProjectExplorer: projectünket láthatjuk fa struktúrában – ServerExplorer: projektünket nézhetjük a háttértároló szemszögéből – ComponentPalette: GUI-hoz a grafikai elemek – ConnectionExplorer: adatbázis menedzseléséhez • Refactoring … • Dokumentációgenerálás – Javadoc, PHPDocumentor • Működésük megegyezik 16 Összegzés • Másképp és más célból születtek • Célközönségük különböző – J2EE: nagyvállalat – PHP: kis- és középvállalat • PHP egyszerű nyelv – sokan ismerik • J2EE sokkal komplexebb – komoly háttértudás 17 Köszönöm a figyelmet ! Technológiai összehasonlítás J2EE – PHP ----------------------------------------------------------- Csikor Ákos [email protected] ELTE IK