Java EE 5 Teknolojileri Jboss Seam Hakan Uygun
İçerik Kurumsal Uygulama Nedir? Java Teknolojileri Web Uygulaması Java EE Bileşenleri JBoss Seam
Yazılım İhtiyaçları Bireysel Kullanıcı Eğitim Eğlence İletişim Kurumsal Kullanıcı İş Çözümleri Güvenlik Veri İşleme Farklı İhtiyaçlar Farklı ölçekler
Kurumsal Uygulama Kullanıcı sayısı Süreklilik Ağ Güvenlik Veri yoğunluğu Tekrar kullanılabilirlik Entegrasyon olanakları / Birlikte çalışabilirlik
Kurumsal Uygulama Uzaktan Erişim Yük dengeleme / Kümeleme Otomatik hata giderme Veri bütünlüğü Sistem yönetimi Güvenlik Entegrasyon sistemi
Java Teknolojileri Ağ Çözümleri Donanım ve Platform Bağımsız Bir kez yaz her yerde çalışsın Açık Mühendislik ve Standartlar JCP, JSR Özgür Yazılım Apache, java.net Seçim Özgürlüğü
Java EE Katmanlı Uygulama Mimarisi Sunum Katmanı Uygulama Katmanı Kalıcılık Katmanı Haberleşme Katmanı Bileşen Tabanlı Uygulama Ağ Uygulamaları
MVC Model View Control DRY Don't Repeat Yourself %80-%20 oranı
Java EE Sunum Katmanı Kalıcılık Katmanı Tarayıcı Masaüstü Uygulama (Java) Web Suncu Uygulama Sunucu - İş Kuralları Masaüstü Uygulama
Masaüstü Sunum Katmanı AWT / JFC ( Swing ) / SWT Web Teknolojileri Applet Servlet JSP
JSP - Servlet JSP Servlet.java Servlet Nesne yönelim API Bileşen tabanlı uygulama Tanımlama tabanlı Sorumluluk zinciri Etiket tanımlama ( TagLib )
Web Uygulama Çatıları Strust WebWorks Wicket Tapestry Spring MVC JSF
JSF Bileşen Tabanlı Görsel Yorumlayıcılar Değişebilir Uygulama Akış Yönetimi MVC ( Model-View-Control ) yalıtımı İyi tanımlanmış yaşam döngüsü İyi tanımlanmış makro dili ( EL )
JSF - Facelet Tek bir servlet ( Facelet-servlet ) xhtml tabanlı - şablon sistemi Gerçek kod yalıtımı
JSF Görsel Bileşenleri Standart JSF bileşenleri ( RI ve MyFaces ) Trinidad Woodstock Richfaces IceFaces...
Kalıcılık Araçları Veri Tabanları Dosyalar Ağ Bileşenleri Kalıcılık Katmanı Kalıcılık Katmanına Erişim JDBC Nesne Yönelimli Programlama
JPA ORM : Nesne Veri Tabanı Eşleme CRUD işlemleri JPA Gerçeklemeleri Hibernete Toplink OpenJPA
JPA @Entity @Table( accounts ) public class Account extends AuditBase implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Column( name="code", length=20, nullable=false, unique=true ) private String code; @Column( name="name", length=50 ) private String name; @Column( name="info" ) private String info;
Session Bean EJB Stateless - Durumsuz Statefull - Durumlu Message Bean Entity Bean
EJB İş kurallarını merkezileştirir Ağ dağıtık bileşenler Transaction Güvenlik Süreklilik
XML tanımları yok @Stateless @Statefull @Local @Remote POJO tabanlı EJB3 Uygulama sunucuları arasında taşınabilirlik artışı
Mevcut Gerçeklemeler Özgür Yazılım Glasfish Jboss AS Geronimo Ticari Yazılımlar WAS WebLogic OC4J
Avantajlar Java EE 5 - Sonuç Standartlar ile çalışmak Kurumsal uygulama geliştirme olanakları Geniş kullanıcı desteği Geniş kurum desteği Dezavantajlar Öğrenim zorluğu Seçim zorluğu
Seam Nedir? Yeni bir tane daha uygulama çerçevesi mi? Gavin King / Jboss / RedHat LGPL Java EE 5
Java EE 5 Teknolojileri Annotation / Bijection JSF EJB3 / JPA Facelet Ajax TestNG
Seam Uygulaması JSP EJB Facelet JSF Seam Portal ORM
Seam Bileşenleri @Name EJB3 Entity Bean EJB3 Session Bean EJB Message Bean POJO Spring Bean
@Scope Event Page Conversation Session Application Seam Süreçleri
Seam Navigasyonu Standart JSF yöntemleri Page.xml View.page.xml JBPL Seam Event Mekanizması
Basit Kullanıcı Hak Yönetimi Denetleyici tanımı Login Formu Gelişmiş JAAS Drools SSL Captcha
Genel Kullanım Login Formu Login Forma Yönlendirme Exception Login Requried @Restrict s:hasrole s:haspermission
Varsayılan Bileşenler Log Session EntityManager Debug Locale, TimeZone, Theme v.b.
Ajax Ajax ve Javascript desteği ( Seam Remoting ) Ajax4Jsf RichFaces IceFaces Trinitad Woodstock
Seam-gen ve IDE Desteği seam-gen ve seam framework seam new-project seam new-action... Eclipse NetBeans Exadel / JBoss Developer Studio
Java EE İçin araçlar JBoss AS Hibernate NetBeans Ant TestNG Hudson Sun JDK JBoss Seam
Örnek Kod www.tekir.com.tr JBoss Seam Örnekleri SourceForge Projeleri Google Code Search
Teşekkürler