2010-11-03 9 views
9

Sadece genel bir soru tartışmaya açık ... ben çok şimdiye kadar JSF sevmeye başladımMTU Kabulü ve Popülarite

, ben yeniyim, ama Struts tercih ediyorum. Profesyonel bir bakış açısından, JSF için güçlü bir gelecek görüyor musunuz? JSF 2.0'ı Struts veya başka bir benzer çerçeve üzerinden öğrenmek için genç bir programcı olarak yatırım yapmaya değer mi? Normal JSP'ye sadık mıyım? Ajax, JQuery ile JSF'den daha basit midir?

Yeni teknolojilerden hoşlanıyorum ve JSF'den şimdiye kadar gördüklerimi beğendim ama aynı zamanda pratik olmak istiyorum ve çok sayıda Google araştırması, JSF 2.0 hakkında bazı önemli eleştiriler içeriyor.

Düşünceler?

cevap

19

JSF'nin Struts ile karşılaştırılması, elmaları portakallarla karşılaştırmak gibidir. JSF, bileşen tabanlı bir MVC çerçevesi iken Struts istek/eylem tabanlı bir MVC çerçevesidir. Struts da yaşlıdır. BT'de hareket etmeye devam etmelisiniz. Genel olarak, bir bileşen tabanlı MVC çerçevesi, istek/eylem tabanlı bir MVC çerçevesinin daha ileri bir evrimi olarak görülmektedir.

JSF şu anda çok yaygın olarak kullanılmaktadır. Daha önce çok fazla eleştiri aldı. Bunların çoğunu What are the main disadvantages of JSF 2.0? numaralı telefondan okuyabilirsiniz. JSF'nin gücü, çoğunlukla bir Java EE standardını korumuştur ve nispeten çok sayıda 3. parti bileşen kitaplıklarının kullanılabilirliğidir (PrimeFaces, RichFaces, IceFaces, OpenFaces, Tomahawk, vb.). JSF ile, CRUD uygulamalarını ve web formlarını hızlıca güzel bir görünümle geliştirmeniz çok kolay. Ancak, bu komplekse girdiğinde, JSF bazı beklenmedik sürprizlere neden olabilir. JSF belirtimi ve referans uygulaması (Mojarra), en son 1.2 sürümünden bu yana oldukça olgun olmasına rağmen, sezgilerinize karşı gelen bazı çok spesifik davranışsal sorunlarla karşılaşabilirsiniz. Bazıları sadece "tasarıma göre" ve sadece ayrıntılı olarak anladığınızda anlaşılabilir JSF, JSF'nin, HTTP protokolünün vatansız niteliğine dönüşen kapakların altında nasıl çalıştığı konusunda anlaşılır. JSF bunu özünde "çok fazla" diye özetler ve artık görmezsiniz. Bazıları sadece kullanılan 3. parti bileşen kitaplıklarındaki hatalardır, ancak bu nedenle kesinlikle JSF uygulamalarına özgü değildir. Hata/sorun işleme, ana bileşen kitaplıklarının çoğunda oldukça iyidir - hataları zamanında bildirirseniz.

Ajaxical öğelerle ilgili olarak, JSF 2.0, ajaxical isteklerini manuel olarak ateşleme ve hem sunucu hem de istemci tarafında görünüm ağacını denetleme konusunda çok az manuel kontrol sağlar. Basitçe, ağaç durumunu her iki tarafta tutan bileşen tabanlı bir MVC çerçevesi olduğu için. Kendi elinizde ajaxical çalışmaları yaparken her iki tarafı da hesaba katmalısınız. gerçekten ajax/istek tabanlı eylemlerde daha fazla özgürlüğe ihtiyacınız varsa, o zaman bileşen tabanlı bir MVC çerçevesi yanlış seçimdir. JQuery gibi bir JS kütüphanesi ile birlikte Spring MVC, Struts veya Stripes gibi bir istek/eylem tabanlı MVC framework seçmelisiniz. Ancak bunun yerine kendiniz çok HTML/CSS/JS boilerplate yazmak zorundasınız.

+0

Ed Burns'ün Struts iştiraki olduğunu bilmiyordum. Bilgi için teşekkürler. – amorfis

+0

Bu iyi bir okuma, bana doğru yönde düşündüğümü gösteriyor. Teşekkürler !. – JHarnach

+0

BTW Sadece birkaç hafta boyunca http://balusc.blogspot.com/ adresinden blog'larınızı okuduğumu fark ettim, ÇOK faydalı! – JHarnach