Tuesday, June 19, 2007

Struts ve Spring MVC kullanımı

Struts ilk MVC framework'ü olduğu için yaygın bir şekilde kullanılıyor. Şimdi Struts 2 eksik yönlerine göre yazılmış olan webwork2 ile yeniden gündeme geldi.

Apache Struts 2 requires:
  • Servlet API 2.4
  • JSP API 2.0
  • Java 5
Dependency olarak yüksek bir kabul yapmış bizim için.

Spring MVC'de struts'daki eksiklikleri görerek geliştirilmiş. Bu konuda güzel bir makale okudum.

12 BENEFITS of Spring MVC over Struts

Sonuçta struts 2 ile spring mvc arasında bir seçim yapmak gerekiyor. Bence application katmanndada spring kullanılacağına göre presentation katmanında da spring mvc kullanımı mimarinin bütünlüğü ve geliştirme kolaylığı açısından bize rahatlık sağlayacaktır. Ayrıca struts 2 yeni bir framework olduğu için gerekli dokümantasyon konusunda da bir eksikliği var.

Struts 2 ve spring mvc konusunda spring forumunda güzel bir thread'de buldum.

Spring MVC vs. Struts 2 (WebWork 2)

2 comments:

Uysal KARA said...

Struts 2 java 1.4 uzerinde kullanılabiliyor.

----------
* For Java 1.4 deployments, RetroWeaver or RetroTranslater may be used to provide Java 1.4 support
* A pre-packaged set of RetroTranslator JARs is being provided with the distribution.
---------
Eğer elinizde struts 1.x ile yapılmış bir projeniz var ise
struts 2 ile yola devam etmek akıllıca olabilir.

Kanımca Spring MVC, spring ailesinin en zayıf halkası.

Spring ailesi ne zaman var olan açık kaynak kodlu projelerle entegrasyon yerine kendisi boşluğu doldurmaya kalksa şüphe ile yaklaşmak lazım

bakınız spring-webservices, spring rich client vs..

Kemal said...

Struts 1.4 kullanabiliyor ama aslında 1.5 için yazıldığı için böyle workaroundların doğru bir yaklaşım olduğunu düşünmüyorum.

Ayrıca struts2'nin weblogic 8.1 için desteğine de bakmak lazım. Hatta strusts'ın sayfasında özel bir bölüm ayrılmış

http://struts.apache.org/2.0.6/docs/
weblogic-81.html

struts2'nin spring entegrasyonunu da göz önünde bulundurmak lazım.

Elimizde struts 1.x ile yazılmış bir proje var ama bunun haricinde de bir çok proje var herhangi bir framework ile yazılmamış.

Sonuçta bence struts2 daha çok yeni ve büyük bir geçiş için karşılaşacağım sorunlar ile ilgili knowledgebase tam olarak oluşmamış. Bizim bu konularda uzun araştırma ve entegrasyon ile uğraşacak zamanımız olmayabilir. Kullandığımız sistemlerde zaten bir çok entegrasyon noktası varken bir böyle bir entegrasyon noktasının sorunları ile uğraşmak ek yük olarak getirecektir.

Spring MVC'nin zayıf noktalarına gelince en azından bunları biliyoruz ve ona göre pozisyon alabiliriz. Ama struts2'nin zayıf noktaları hakkında fikir sahibi değiliz. Bu da yolda karşımıza çıkacağı için daha büyük sorunlara neden olabilir.