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