Mar
28
2011

Kısaca Play çatısı (framework) ve bir örnek

Kodu İndir

Java dünyasında çatılar aldı başını gidiyor, bunların arasında seçim yapmak hepimizin aklını karıştırıyordur. Eğer seçimleriniz az ise kendininizi kapana kısılmış hissedersiniz, eğer seçenekleriniz çok fazla ise (Java dünyasında olduğu gibi), o zamanda kafanız karışabilir. Java dünyasındaki durumda bence tam olarak bu.

Bu da yeni çatımız : Play çatısı, Java dünyasındaki seçim karmaşasını bir anlamda sona erdirmek için ortaya çıkmış. Hibernate, Spring ve önyüz teknolojilerini içerisinde barındıyor. Kısacası size bir patika izlemesinizi şart  koşuyor (bu nokta tartışılır).

Play çatısının web sitesi gayet iyi organize olmuş. Dökümantasyonu harika. Benim dikkatimi çeken en önemli özelliği tek bir hareket ile birçok şeyi başarıyor olmanız. Örneğin web uygulamasınızı Play çatısının zaten içerisine gömdüğü (built-in) Selenium ile testlerinizi yapabilirsiniz. İkinci dikkatimi çeken yaklaşımı ise Play ‘in stateless (durumsuz) bir mimarı kullanması; yani bu çatı kullanıcıların sayfa bilgilerini bir yerde saklama ihtiyacı duymuyor, çok derinlemesine incelmedim ama sanırım senaryo şu : Kullanıucı geri (back) tuşuna basarsa tüm verileri tekrardan girmek zorunda kalacak.. Durum bilgisi hiç bir şekilde tutulmuyor.  Bu yaklaşıma hiç birşey paylaşma (shared-nothing) deniyor . Zekice…

Gelelim uygulamıza :

  1. Öncelikle Play çatısını indirin - http://www.playframework.org/download
  2. Daha sonra kurulum dökümanını okuyunuz (çok basit)- http://www.playframework.org/documentation/1.1.1/install
  3. play.bat dosyasını path ‘e ekleyin -ki heryerden play deyince çalışsın.

 

Eğer bu aşamaları geçtiyseniz, bir adet command window açıp, play dediğiniz  aşağıdaki ekrana benzer bir görüntü alıyorsanız, işlem tamam demektir..

 

 

Uygulamayı çalıştırmak  için önce kodu yukarıdaki bağlantıdan indirin ve çalıştırın..

 

 

  • Önce uygulamanın olduğu dizine gidin ve 1 numaradaki komutu çalıştırın
  • Sonra uygulamanın 9000 portdan çalıştığını görüp rahatlıyoruz

Uygulama çok super sonik değil, bunu baştan söylemek isterim. Şimdi tarayıcınızı açıp bakabilirsiniz

 

 

Kodu didikleme zamanı !

index.html :

 

 

Html ile mantık (yani döngüler – if else blokları) bence iç içe giriyor, tabii bu yorumu Apache Wicket kullanan birine göre yapıyorum, yoksa jsf ile karşılaştırıldığında gayet esnek.

 

 

Tüm yordamların statik olmasına dikkat çekmek istiyorum. Play’de herhangi bir durum (state) bilgisinin tutulmadığının açık bir delili diyebilirim. Harika! Yanlız extends Controller bana Struts çatısını hafiften andırdı,  siz ne dersiniz ?

 

Bu örneği Play’in dışında Tomcat veya Glassfishde çalıştırmak için

> play war guestbook -o guestbook.war

Oluşan war dosyasını artık istediğiniz yerde çalıştırabilirsiniz.

Eposta listesi gerçekten çok aktif,  1 hafta boyunca üşenmeyip Play ve Wicket listelerine gelen epostaları saydım sonuç hayret vericiydi,  Play eposta listesi gelen eposta sayısı : 98, Apache wicket gelen ise 69‘du.   Bu sonuç mevsimsel de olabilir veya Play sadece bir önyüz teknolojisi olmadığı için her türlü soru sorulabliyor olamasının etkiside var deyip biraz rahatladım :) – Rahatlama kısmı elbette şaka …

Ben Play çatısının uzmanı değil ve fakat kesinlikle yakın takipte olması gereken bir teknoloji olduğunu söylemeliyim, gelecek vaad ediyor. Ayrıca üzerinde çalıştığımız bu örneği bize gönderen sevgili Steve Chaloner arkadaşımıza tekrardan teşekkürü borç bilirim.

Kodu İndir

 

Yorum yapabilirsiniz..

  • Play ‘de sevmediğim bir durum: HTML sayfalarının düz HTML olmaması, içinde frameworke özel taglar ve kendine ait expression dili (Groovy heralde) içermesi. Düz HTML olmadıgı için, bunu bir Tasarımcıya veremezsin çünkü Browser ‘da bu haliyle calısmaz. Dolayısıyla Tasarımcı ve Geliştiricilerin, Play framework ile parallel ve agile calısması mümkün değil. Günümüzde Agile Development kavramının sürekli prim yaptıgını düşünürsek, Play sanki bu yönteme uygun değil gibi geldi bana..

    Diğer bir can sıkıcı durum da: Play ‘de Ajax cagrıları yapabilmek için baya bir JQuery ve JSON bilgisine sahip olmak gerekiyor. Play kullandıgında, sadece Java+HTML hayat kurtarmaya yetmiyor ne yazık ki, başka birsürü şeyden de anlamak zorunda kalıyorsun..

En son haber ve ücretsiz eğitimlere ulaşmak için üye olabilirsiniz