Merhabalar. Soruma geçmeden önce kısaca birşeyler bahsetmek istiyorum. Ben java backend teknolojileri ile uğraşan birisiyim. Ağırlık Spring üzerine yoğunlaşıyorum. Belli başlı bazı projeler yaptım. Ancak frontend developmen alanında çok bilgili değilim. Spring mvc ile çalışırken view kısmında en fazla bootstrap kullandım. Ancak son zamanlarda Vuejs öğrenip frontend uygulamalar deniyor, öğreniyor ve açık kaynak hazır templateleri indirip inceleyip anlayabilecek kadar biliyorum.Bilirsiniz neredeyse her js frameworkün CLI var. Bende bu şekilde geliştirme yapıyorum, anlayacağınız NPM ile geliştiriyorum.
Kısaca bahsettikten sonra asıl soruma geçeyim.
Başlıkta yazdığım gibi, backend tarafını java teknolojileri ile yazıp -tercih spring-, frontend de ise gelişmiş bir frontend framework teknolojileri -angular,react,vue- - -webpack,eslint,npm vs- ile geliştirme yapmak istiyorum. Görünüşte iki farklı projeyi nasıl tek çatı altında geliştirebilirim. Yada iki farklı projemi geliştirmem gerekiyor. Java taraflı deneyimliyim fakat ikisini kaynaştırma noktasında birşey yapmadım.
Ben biraz araştırdım arkadaşlarıma falan sordum şu şekilde duyma bilgiler edindim sizinle paylaşayım.
1. Vue ile ayrı bir proje yap - javada da REST api yaz, verilerini buradan çekersin (nasıl deploy edeceğim bu ikisini ?) 2. Spring Mvc proje oluştur, projenin içindeki web-inf klasoru içerisine npm ile projeyi oluştur, mappingleri falan burdan yap ( mantıksız geldi)
Şimdi duyduklarım bunlar, ne kadar doğru bilmiyorum. Java taraflı olanları yapabilirim. Frontend tarafınıda yapabilirim ayrı ayrı. Ama ben bütün bir proje istiyorum. Backend-frontend proje olacak.
Anlaşılmayan yerler olursa sorabilirsiniz. Sadece java taraflı düşünmeyin, diğer dillerden de örnek verebilirsiniz. Fikirlerinizi bekliyor ve teşekkür ediyorum.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
Deploy edecegin minimum 2 application olacak. Bir tanesi Front end. Bunu da herhangi bir static server ina yapabilirsin. Fiziksel olarak ayni makinede bulunmasi sart degil ama olabilir de. Sonucta SPA uygulamalari sadece static dosyalardan olusuyorlar. Angular'da da boyle, Vue'da da.
Backend'i de istedigin formatta "WAR" ya da "JAR" ya da "EAR" olarak ilgili bir server da konumlandirabilirsin.
Ornek: Bilgisayar - A - Apache ( ya da nginx ) - Front-end js dosyalari www.hedehodo.com
Ya da: Bilgisayar A: -Apache Proxy - Frontendwww.hedehodo.com ( proxy buraya yonlendirecek ) - Tomcat -> Backendwww.hedehodo.com/api ( /api** ile gelen requestler buraya )
Ikisini ayni code versiyonlama ile kontrol eder, gerekirse client ve server 'i ayri ayri deploy edersin.
Deploy yapacagin zaman eger frontend deploy ediyorsan staticleri ( /var/www/html ) , backend ediyorsan tomcat ( ya da weblogic, ya da websphere artik ne kullaniyosan ) dosyalarini degistireceksin.
Bilgi için sağolun, micro service için kaynak önerileriniz varmı. Bunun hakkında hiçbirşey bilmiyorum ki hiç bir projeyi de deploy etmedim ama basitce yapabilirim
Gerekmiyorsa Js Kütüpaneleri ile view manüple etmeye gerek yok. Projeye ek külfiyet getiyor. Sok serverside rendering yok build etc. Her projenin UI ihtiyacları bir framework gerektirecek kadar komplex değil. Projenizde tüm keyworkleri düşünün buna gerçekten ihtiyacım var mı diye.
Normalde .net core spa ile bütünleşik çalışacka default bir şablon veriyor. hatta içerisinde serverside rendering de sağlıyor.
Ancak kendin bunu kurman gerektiğinde ayrı projeler olarak ayrı klasörlerde kurup bittiğinde ikisini build edip aynı sunucuya koyabilirsin. Burada bunu otomatize etmek için mini bir script de yazabilirsin. Ancak dediğim gibi gerçekten gerekmedikçe projene karmaşıklık ekleme
Ben frontend alanında çok az bilgiliyim. SPA projeler sadece cümle içerisinde biliyorum. Geliştirmek istediğim proje fazla interaktif bir proje , discord, stackoverflow karşımı o tarz birşey olabilir, chat odalı, birebir pm, soru cevap, alan konu kanal, vs, yani anlayacagın baya interaktif bir uygulama. Hani biraz araştırdım ve en uygun Vue olur diye düşündüm. Çünkü çok karmaşık bir yapısı yok. Benim gibi birisi öğrenirken zorluk çekmez
ama cli ile kurmanız gerekirse de tavsiyem ayrı iki proje olarka başlayın ama ayrı iki proje olarak deploy etmek zorunda değilsiniz. bu gereksiz karmaşıklık getirir. tek başına iki tarafı da yazacak sizseniz.
https://github.com/jonashackt/spring-boot-vuejs#setup-vuejs--spring-boot bu tarz ikisini de aynı proje işerisinde barındıran template örnekleri var. Eğer .net core olsaydı daha iyi bilgi verebilirdim ama hepsi benzer kapıya cıktığı için eminim ki aynı project file da calısan templateler vardır.
veya ayrı klasörlerde olmuş olsa dahi npm run build dediğinizde size 2-3 tane (angular da 3-4 ) derlenmiş dosya verecektir. bunları proje dosyanıza eklerseniz direk kullanabilirsiniz ama dediğim gibi vue kullanmakla bitmez. serverside rendering de düşünülmeli. (Seo da önemliyse)
Soruma geçmeden önce kısaca birşeyler bahsetmek istiyorum. Ben java backend teknolojileri ile uğraşan birisiyim. Ağırlık Spring üzerine yoğunlaşıyorum. Belli başlı bazı projeler yaptım. Ancak frontend developmen alanında çok bilgili değilim. Spring mvc ile çalışırken view kısmında en fazla bootstrap kullandım.
Ancak son zamanlarda Vuejs öğrenip frontend uygulamalar deniyor, öğreniyor ve açık kaynak hazır templateleri indirip inceleyip anlayabilecek kadar biliyorum.Bilirsiniz neredeyse her js frameworkün CLI var. Bende bu şekilde geliştirme yapıyorum, anlayacağınız NPM ile geliştiriyorum.
Kısaca bahsettikten sonra asıl soruma geçeyim.
Başlıkta yazdığım gibi, backend tarafını java teknolojileri ile yazıp -tercih spring-, frontend de ise gelişmiş bir frontend framework teknolojileri -angular,react,vue- - -webpack,eslint,npm vs- ile geliştirme yapmak istiyorum.
Görünüşte iki farklı projeyi nasıl tek çatı altında geliştirebilirim. Yada iki farklı projemi geliştirmem gerekiyor. Java taraflı deneyimliyim fakat ikisini kaynaştırma noktasında birşey yapmadım.
Ben biraz araştırdım arkadaşlarıma falan sordum şu şekilde duyma bilgiler edindim sizinle paylaşayım.
1. Vue ile ayrı bir proje yap - javada da REST api yaz, verilerini buradan çekersin (nasıl deploy edeceğim bu ikisini ?)
2. Spring Mvc proje oluştur, projenin içindeki web-inf klasoru içerisine npm ile projeyi oluştur, mappingleri falan burdan yap ( mantıksız geldi)
Şimdi duyduklarım bunlar, ne kadar doğru bilmiyorum. Java taraflı olanları yapabilirim. Frontend tarafınıda yapabilirim ayrı ayrı. Ama ben bütün bir proje istiyorum. Backend-frontend proje olacak.
Anlaşılmayan yerler olursa sorabilirsiniz. Sadece java taraflı düşünmeyin, diğer dillerden de örnek verebilirsiniz.
Fikirlerinizi bekliyor ve teşekkür ediyorum.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.