Spring czy warto

0

Witam,
Potrzebuje pomocy w wyborze technologi webowych. Poważnie zastanawiam się nad Spring. Napiszę dlaczego.

  1. Mam miłe doświadczenia z moimi pierwszymi aplikacjami internetowymi w ASP.NET MVC3. Podobno Spring jest podobny.
  2. Jest duże community, nie brakuje ofert pracy.
  3. Stoi za tym duża firma i jest już szeroko stosowane.
  4. Jestem początkującym jeśli chodzi o web, więc ilość materiałów w tym przypadku jest bardzo zachęcająca.
  5. Przyzwyczaiłem się do drobnych wstawek kodu C# w widokach Razor View (początkowo było to nieco irytujące).

Czego oczekuje:

  1. Dobry maper ORM (coś jak Entity Framework). Zastanawiałem się nad Hibernate + PostgreSQL.
  2. Bezproblemowa współpraca z urządzeniami mobilnymi (Android, iOS) za pomocą REST (z tego co widzę Spring wydał toolkit na Androida, więc będzie mi po drodze).
  3. Naukę zacznę od frameworka niekomponentowego. Dzięki czemu lepiej poznam niskopoziomowe zagadnienia tzn. CSS + HTML i potem będę w stanie skutecznie docenić komponentowe wynalazki np. Wicket w celu tworzenia własnych widgetów oraz JSF jeśli będę musiał (tylko dlatego, że jest standardem).
  4. Przyjazne IDE. Z tego co widzę Spring wydało toolkit dla Eclipse.

Mój stan umiejętności:

  1. Dopiero wchodzę w technologie webowe. Mam zamiar uczyć się CSS, jQuery itp. Umiem na tyle, by zastosować gotowe szablony do aplikacji w ASP.NET MVC. Buduje w pełni funkcjonalne, ale nie do końca ładne aplikacje.

Chciałbym więc zapytać w czym Spring jest słabe. Słyszałem, że trzeba używać sporo XML. Ten sam problem pojawiał się w ASP.NET MVC, gdzie definiowało się łączenie z bazami danych tzn. connctionString. Będę wdzięczny za wskazanie wad tego rozwiązania.

Dlaczego nie używam ASP.NET:

  1. Mono nie spełnia moich oczekiwań.
  2. Hosting na IIS póki co nie wchodzi w grę.
  3. Zależy mi na dobrej cross-platformowości.

PYTANIA:

  1. Czy Spring ssie, jeśli tak dlaczego? Na co warto uważać?
  2. Czy tworząc RESTful WebService używać natywnych narzędzi czy JAX-RS?
  3. Czy korzystając ze Spring muszę tykać JSF, JSP i inne technologie mające złą sławę, w sensie niezbyt przyjemne.

Pozdrawiam,

1

Spring to nie tylko MVC i web
Jako ORM proponuje używać JPA, uniezależni cię to od dostawcy ORMa
Faktycznie jest do Springa Eclipse STS który jest dość fajny
W springu nie trzeba korzystać z XMLa. Wszystko można robić adnotacjami. Która wersja jest lepsza? Kwestia gustów

  1. Nie ssie, ale jest dość spory - musisz wybrać sobie które fragmenty cię interesują
  2. Nie, ale Spring wygodnie się z nimi integruje.
0

Polecam poczytac o JavaConfig - od springa 3 jest to nowa, pakowana razem ze springiem mozliwosc konfiguracji bez XML.
Przyklad:

@Configuration
public class AppConfig {
  @Bean
  public MyService myService() {
      return new MyServiceImpl();
  }
}

public static void main(String[] args) {
  ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
  MyService myService = ctx.getBean(MyService.class);
  myService.doStuff();
}

Moim zdaniem dziala swietnie, jest to moj ulubiony sposob konfiguracji DI (a uzywam na co dzien google guice, CDI, spring xml i @Autowired, nawet wlasne DI).

1

A teraz z nieco innej strony - nie znosze springa. Nie znosze sposobu w jaki jest napisany. Nie znosze tego ze jest to typowy 'glue framework'. Ma takie troche 'starodawne' odczucie - nie jest to framework nowy, jest w nim sporo nalecialosci, ktore dodatkowo przez jego popularnosc ciezko jest usunac ze wzgledu na kompatybilnosc wsteczna. Nie lubie tego jak wielkie jest to kure****...

0
mućka napisał(a):

A teraz z nieco innej strony - nie znosze springa. Nie znosze sposobu w jaki jest napisany. Nie znosze tego ze jest to typowy 'glue framework'. Ma takie troche 'starodawne' odczucie - nie jest to framework nowy, jest w nim sporo nalecialosci, ktore dodatkowo przez jego popularnosc ciezko jest usunac ze wzgledu na kompatybilnosc wsteczna. Nie lubie tego jak wielkie jest to kure****...

A jaki framework dla Javy jest nowoczesny i zarazem popularny z dobrym community? Odnoszę wrażenie, że różnych opcji masa, ale jest to takie niespójne i pomieszane.

0

W Javie jest wiele frameworków, ale według mnie nie ma tak fajnego jak ASP.NET MVC. Nie wiem dlaczego przesiadasz się na dużo bardziej toporny język. Teraz wielu programistów przechodzi z Javy na C#.

0

Cipo wiem, zes durak.

0

Nie mam możliwości postawienia IIS ze względu na koszt utrzymania serwera z Windows (powiedzmy projekt non-profit i mamy ograniczony budżet na utrzymanie naszego stuffu, do tego sami musimy skonfigurować serwer itp. Z Java nie ma pod tym względem żadnego problemu.). Mono jeszcze się do tego nie nadaje. Może w przyszłych projektach, gdy otwarte ASP.NET będzie współgrało z PostgreSQL się zastanowimy, bo czas uczenia się ASP.NET jest nieduży.

MVC poznałem przez przypadek na studiach i na pewno korzystałbym z niego nadal, bo jestem w szoku jak szybko można generować funkcjonalny soft, czekam aż Mono dojrzeje i będzie gotowe na produkcje.

Tymczasem czytam następujące porównanie:
http://blog.42.nl/articles/java-and-the-frontend-what-to-choose

Teraz pytanie z innej beczki: czy jest coś od czego można przyjemnie rozpocząć naukę Spring? Konkretna książka / strona z howto? Sam zaraz poszukam, ale tego jest dość dużo i będę wdzięczny za wskazówki.

Zapoznałem się z JPA vs Hibernate i wiem, że Hibernate to JPA + dużo ułatwień i nowoczesnego softu, dostępnego również dla .NET. Dlatego najchętniej znajdę budowę strony:

  1. Kontroler CRUD: Hibernate + Spring.
0

Jest Spring in Action wydanie 3 (czytalem po angielsku) - uwazam za dobre wprowadzenie.

0

Ok zajrzę tam. Co fajnego zrobił MS: http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc
Dlatego pisałem, że nauka ASP trwa szybko - genialne tutoriale. Jeśli ktoś zna podobne zasoby to będę wdzięczny.

Ale trzeba być otwartym i poradzić sobie wszędzie. :) Java to jednak świat przemysłu więc większy wysiłek niekoniecznie musi być stratą czasu. Dzięki za rekomendacje. Z tego co widziałem po osobach chcących w przyszłości programować w tym języku wymaga się znajomości kilku frameworków, więc sensownie poznać ten świat, nie wszystko musi być sexy.

Po głowie chodzą mi jeszcze dwie rzeczy:

  1. Czy widok z użyciem JSP w Spring to coś zupełnie normalnego i poprawnego w 2012 r. coś jak Razor View? Czy raczej nastawiać się na coś innego. Pytam, ponieważ JSP to stara technologia.
  2. Czy JRuby On Rails to dojrzały produkt czy też hipsterska technologia, której nikt nie używa. Na stronie jest napisane iż jest to szybkie jak JVM, umożliwia korzystanie z dobrodziejstw bibliotek Javy itp. Wpadłem na pomysł, aby uczyć się tego równolegle ze względu na zbliżoną filozofię do MVC (pisałem kiedyś skrypty w Ruby i podoba mi się). Widzę dużo analogii. Nie brakuje materiałów do zwykłych Railsów. Jeśli ktoś tego używa i jest ok to chyba warto mieć takiego asa w kieszeni oprócz czystej Javy?
1

Spring - jak najbardziej warto.
Nawet można olać MVC, ale głównie Spring jako middleware i/lub Security jest naprawdę przydatne i upraszcza życie.

0

Sprobuj guice plus apache shiro. Podejrzewam ze cala kariere robiles tylko w springu i spring security i nie znasz nic innego.
Wiadomo ze warto sie uczyc springa, ale sa tez inne mozliwosci.

0

Sorry, ale dość zależy mi na odpowiedzi na to pytanie:

  1. Czy widok z użyciem JSP w Spring to coś zupełnie normalnego i poprawnego w 2012 r. coś jak Razor View? Czy raczej nastawiać się na coś innego. Pytam, ponieważ JSP to stara technologia.

Nie mam nic do JSP, po prostu chcę wiedzieć czy to na pewno dobra i w 100% poprawna praktyka.

0

JSP jest podstawą dla części frameworków, np JSF. Z drugiej strony chbya większość frameworków ma własne systemy szablonów. Dobrze byłoby, gdybyś go poznał - jest prosty, jego zrozumienie zajmie dzień lub dwa, włączając zabawę z nim.

JRuby wygląda mi na dość dojrzały projekt. Jeśli dobrze się czujesz z kaczym typowaniem, to powinieneś być zadowolony. A skoro interesujesz się językami innymi niż te mainstreamowe, to polecam Scalę: http://www.typesafe.com/stack/ :]

0

Mowisz ze Ruby nie jest mainstreamowy?

0

Aha, czyli mainstreamowe jest to co jest mainstreamowe w Polsce?

0

Nie jest mainstreamowy z punktu widzenia .NOTowca :P

1

Bym sie nie zdziwil jakby .netowiec nie wiedzial co to Ruby... wiec moze i racja.

1
mućka napisał(a):

Bym sie nie zdziwil jakby .netowiec nie wiedzial co to Ruby... wiec moze i racja.

Prawie żaden nie wie. Tak samo prawie żaden nie wie co to Scala. Ogólnie, ci którzy wąsko wyspecjalizowali się w .net uważają że .net jest taki świetny że reszta może nie istnieć.

Ostatni cytat jaki słyszałem "w .net jest wszystko co jest ci potrzebne, nawet jeśli nie wiesz jeszcze że jest to ci potrzebne, więc nie pytaj mnie czy w .net to jest, bo na pewno jest - a jak nie ma, to znaczy że nikomu to nie jest potrzebne". Była to odpowiedź na pytanie javowca (pytał o coś z javy, czy jest to i w .net). Zastanawia mnie, czy wszyscy .netowcy (ale tacy "rasowi", którzy nigdy prawie nie liznęli żadnej innej technologii) zawsze mają takie podejście? Czy to jest reguła? Bo z tego co widzę to raczej tak.

2
othello napisał(a):
mućka napisał(a):

Bym sie nie zdziwil jakby .netowiec nie wiedzial co to Ruby... wiec moze i racja.

Prawie żaden nie wie. Tak samo prawie żaden nie wie co to Scala. Ogólnie, ci którzy wąsko wyspecjalizowali się w .net uważają że .net jest taki świetny że reszta może nie istnieć.

Warto zauważyć, że prawie żaden Javowiec nie wie, co to Scala.

Zastanawia mnie, czy wszyscy .netowcy (ale tacy "rasowi", którzy nigdy prawie nie liznęli żadnej innej technologii) zawsze mają takie podejście? Czy to jest reguła? Bo z tego co widzę to raczej tak.

Reguła, bo jeden idiota z Twojej pracy opowiada głupoty? :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1