Open Source Java CMS [zamknięty]

By Weronika Skotnicka

Strefa wiedzy – Framework – Spring

Spring Spring pomaga developerom tworzyć proste, przenośne, szybkie i elastyczne systemy oraz aplikacje oparte na JVM.

Spring jest frameworkiem aplikacyjnym oraz kontenerem odwrócenia sterowania dla aplikacji Java. Główne funkcje frameworku mogą być używane przez dowolną aplikację Java, ale jego rozszerzenia są przeznaczone głównie do tworzenia aplikacji webowych na platformie Java EE. Pomimo, że Spring nie narzuca żadnego konkretnego modelu programowania, jest często używany w alternatywie lub jako zamiennik czy dodatek do modelu Enterprise JavaBeans (EJB). Framework Spring jest projektem open source.

Zalety Spring MNOGOŚĆ MOŻLIWOŚCI Tworzenie czystego, łatwego do testowania kodu na komponentach wybranej infrastruktury i możliwość zrealizowania każdego zadania bez wymyślania prostych rozwiązań na nowo. PRZENOŚNOŚĆ ROZWIĄZAŃ Przenośność - aplikacje oparte o Spring działają na każdym środowisku z JVM i są możliwe do uruchomienia samodzielnie, na serwerze aplikacyjnym, w Chmurze, lub we wszystkich tych miejscach jednocześnie. ZAPEWNIONE WSPARCIE Programowanie bez obaw - Spring dostarcza otwarty, kompleksowy i spójny model oprogramowania, który jest szeroko rozumiany i dobrze wspierany.

Głównym celem Springa jest umożliwienie tworzenia złożonych systemów w łatwy sposób, z pominięciem modeli programowania wymuszających historyczne rozwiązania. Spring wprowadził i ustandaryzował wiele rozwiązań, które były wcześniej niedoceniane.

Elementy Spring Framework Spring zawiera wiele modułów odpowiedzialnych za różne usługi

Spring Core Container: Podstawowy moduł Spring, którego rolą jest udostępnianie kontenerów Spring (BeanFactory i ApplicationContext).

Podstawowy moduł Spring, którego rolą jest udostępnianie kontenerów Spring (BeanFactory i ApplicationContext). Programowanie aspektowe: Umożliwia realizację paradygmatu aspektowego.

Umożliwia realizację paradygmatu aspektowego. Uwierzytelnianie i autoryzacja: Konfigurowalne procesy zabezpieczeń, które wspierają szereg standardów, protokołów, narzędzie i praktyk przez pod-projekt Spring Security.

Konfigurowalne procesy zabezpieczeń, które wspierają szereg standardów, protokołów, narzędzie i praktyk przez pod-projekt Spring Security. Convention over configuration: Rozwiązanie umożliwiające błyskawiczne tworzenie oprogramowania dla aplikacji opartych na Spring, realizowane przez moduł Spring Roo

Rozwiązanie umożliwiające błyskawiczne tworzenie oprogramowania dla aplikacji opartych na Spring, realizowane przez moduł Spring Roo Dostęp do danych: Współpraca z systemami relacyjnych baz danych na platformie Java przy użyciu JDBC oraz narzędzi mapowania obiektowo-relacyjnego i baz NoSQL

Współpraca z systemami relacyjnych baz danych na platformie Java przy użyciu JDBC oraz narzędzi mapowania obiektowo-relacyjnego i baz NoSQL Kontener odwrócenia sterowania Konfiguracja komponentów aplikacji i zarządzanie przebiegiem życia obiektów Java realizowane głównie przez wstrzykiwanie zależności. Powiadomienia: Konfigurowalne deklarowanie obiektów nasłuchujących dla przeźroczystego pobierania wiadomości z kolejek JMS, udoskonalenie przesyłania wiadomości przez stndardowe API JMS.

Konfigurowalne deklarowanie obiektów nasłuchujących dla przeźroczystego pobierania wiadomości z kolejek JMS, udoskonalenie przesyłania wiadomości przez stndardowe API JMS. Model–view–controller: Framework oparty na HTTP oraz servletach, który umożliwia rozszerzanie i modyfikację aplikacji webowych oraz REST-owych Web Serwisów.

Framework oparty na HTTP oraz servletach, który umożliwia rozszerzanie i modyfikację aplikacji webowych oraz REST-owych Web Serwisów. Zdalne zarządzanie: Marshalling obiektów Java umożliwiający ich konfigurację przez sieci wspierające protokoły oparte na HTTP, RMI, COBRA, włączając Web Serwisy (SOAP).

Marshalling obiektów Java umożliwiający ich konfigurację przez sieci wspierające protokoły oparte na HTTP, RMI, COBRA, włączając Web Serwisy (SOAP). Zarządzanie transakcjami: Ujednolicenie szeregu API zarządzających transakcjami i koordynacja transakcji dla obiektów Java.

Ujednolicenie szeregu API zarządzających transakcjami i koordynacja transakcji dla obiektów Java. Zarządzanie zdalne: Uwydatnienie obiektów Java dla lokalnej lub zdalnej konfiguracji przez JMX.

Uwydatnienie obiektów Java dla lokalnej lub zdalnej konfiguracji przez JMX. Testowanie: Wsparcie dla klas przy tworzeniu testów jednostkowych i integracyjnych.

Jak Spring wygląda w kodzie? package hello; import import org.springframework.stereotype.Component; @Component public class MessagePrinter { final private MessageService service; @Autowired public MessagePrinter(MessageService service) { this.service = service; } public void printMessage() { } } package hello; import import @Configuration @ComponentScan public class Application { @Bean MessageService mockMessageService() { return new MessageService() { public String getMessage() { return "Hello World!"; } }; } public static void main(String[] args) { ApplicationContext context = new MessagePrinter printer = printer.printMessage(); } } Prezentacja możliwości Spring

Przydatne linki

PHP (Personal Home Page) - język skryptowy do tworzenia aplikacji web

PHP (Personal Home Page) to jeden z najpopularniejszych języków skryptowych służący do tworzenia stron www i aplikacji webowych. Jest językiem interpretowanym, a więc odczytywanym przez program komputerowy (interpreter) w czasie rzeczywistym i nie wymaga kompilacji – tłumaczenia na kod maszynowy. Został stworzony w 1994 r. przez Rasmusa Lerdorfa, a w 1995 r. udostępniony, jako język open source. Ma za zadanie tworzenie skryptów obsługiwanych po stronie serwera. Dodatkowo można go stosować z poziomu wiersza poleceń w terminalu w celu przetwarzania danych.

PHP – najpopularniejszy język skryptowy

PHP udostępnia skrypty w plikach tekstowych. Jest osadzony w kodzie HTML lub XHTML, za pomocą odpowiednich dla niego znaczników, a serwer interpretuje jego składnie i zwraca po każdorazowym odświeżeniu witryny internetowej. Do jego analizy potrzebny jest odpowiedni serwer. I tak serwer WWW Apache z bazą danych to platforma AMP. W systemie Windows określana jest jako WAMP, a w Linux – Lamp. Jest dominującym językiem programowania i szacuje się, że obsługuje 3/4 wszystkich stron internetowych m.in. w systemach zarządzania treścią, poczcie elektronicznej, bazach klientów czy forach dyskusyjnych.

Wielka popularność PHP wiąże się również z tym, że to w oparciu o niego powstał najpopularniejszy CMS, jakim jest WordPress. Dodatkowo wysoka częstotliwość jego użycia wynika z faktu, iż należy do jednych z prostszych języków programowania. Charakteryzuje się stosunkowo prostą i zrozumiałą składnią, przejrzycie określonymi zmiennymi oraz jest w pełni darmowym i wydajnym narzędziem. Oferuje podobne możliwości co C++ i Java, jednak w przeciwieństwie do nich programista może stosować typowanie zmienne, co znacznie przyspiesza i ułatwia pracę. PHP umożliwia generowanie raportów w najpopularniejszych programach biurowych: Exel, Power Point, Word czy PDF. Ze względu na rozwój interdyscyplinarnych zespołów pracujących nad stronami www lub aplikacjami webowymi coraz częściej uczą się go graficy, pozycjonerzy, a nawet copywriterzy, ponieważ stosunkowo niski próg wejścia umożliwia wszechstronną komunikację i wydajniejszą pracę z nowoczesnymi technologiami. W przypadku witrynach opartych na PHP nie ma problemu ze znalezieniem hostingu i jest on kompatybilny z technologią AJAX, umożliwiającą budowę dynamicznych witryn umożliwiających interakcje z internautą.

Open Source Java CMS [zamknięty]

Po pierwsze, mogę stwierdzić, że jest to całkowicie rozsądne pytanie, biorąc pod uwagę znaczenie technologii internetowych CMS, które obsługują dużą część WWW, i słusznie zadawane przez wielu ludzi znających Javę, ponieważ istnieją poważne problemy ze wszystkimi wieloma (mimo to popularnymi) systemami bazującymi na PHP, takimi jak Drupal, Wordpress i Joomla, w tym: {]}

Brak możliwości dobrej integracji z graphical Unified Modeling Language (UML) engineering

Masowe wykorzystanie w 2007 roku, po raz pierwszy w Polsce, w 2008 roku, w Polsce i za granicą, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w 2009 roku, w]}

W konsekwencji gorsza integracja z IDE i IDE niż API Java CMS by na to pozwalało.

Jest bardzo dobra lista Java CMS w:

Strona dotCMS porównuje swoją popularność z głównymi konkurentami Java CMS: Magnolia, Hippo, Jahia.

Interesujące jest to, że OpenCMS nie tworzy tej listy:

Jest porównywarka CMS na:

CMSmatrix pozwala łatwo porównać funkcje w ponad 1200 treści produkty systemu zarządzania.

Fakt, że istnieje 1200 wskazuje, że poproszenie innych o wskazówki lub opinie na temat ich doświadczeń z wariantami Java CMS jest uczciwe, ponieważ trudno jest przetestować wszystkie opcje.

Z tego co wiem, dotCMS jest najszybciej rozwijającym się i najlepszym rozwiązaniem w zależności od twoich wymagań.

Wreszcie, pozwól mi w moja odpowiedź na interpelację w sprawie kwestii PHP vs Java CMS. Moim głównym językiem jest Java, zawsze, przynajmniej w pewnym stopniu, w ramach graficznej inżynierii opartej na modelu UML (jeśli tylko czasami poprzez monitorowanie inżynierii odwrotnej), ale pracowałem intensywnie z PHP i Drupal PHP napędzany przez wiele lat, jeden z "wielkiej trójki" wraz z Joomla i Wordpress.

Z tego co wiem, żadna z opcji Java CMS nie jest nawet zbliżona do zestawu funkcji Drupala, gdy ogromny zakres dodane moduły są uważane, lub (po zapoznaniu się z nim) łatwość konfiguracji łatwych lub bardzo złożonych firmowych witryn CMS z Drupal. W szczególności moduł widoki w połączeniu z łatwością tworzenia niestandardowych typów treści ułatwia tworzenie bardzo bogatych wyświetlaczy stron ze strukturyzowanymi danymi, relacjami i bogatymi raportami widoku zapytań. Nie znam żadnego CMS Java, który ma coś, co może nawet zbliżyć się do dopasowania interfejsu administratora widoki Drupal do tworzenia niestandardowych raporty widoku zapytań. Jestem wdzięczny, że Drupal istnieje i czasami pomógł mi nakarmić siebie i moje dziecko, a nawet używać go do śledzenia moich projektów rozwoju oprogramowania Java dla przedsiębiorstw, i używać go jak na ironię dla edukacyjnych stron internetowych promujących Unified Modeling Language (UML) i Java oparte na UML.

Również aspekty CMS moich własnych aplikacji internetowych Java celowo naśladują Drupala.

Nie ukrywam jednak, że absolutnie nie mogę znieść podstawowego Drupala model programowania, dołączone API modułów i to, co uważam za przerażający brak orientacji obiektowej w it, oraz styl programowania, który obejmuje prawie każdy grzech, którego jako pedagog zniechęcałbym w dowolnym kursie programowania 101 {54]}. Nie lubię kodowania modułów z jego API, a Drupal hook system jest zupełnie niepotrzebny i nie ma żadnych zalet nad prostymi wzorcami rejestracji interfejsu, które zna każdy programista Java i pozwoli kompilator OO zrób.

Ubolewam każdego dnia roboczego nad brakiem dobrze zaprojektowanego CMS opartego na Javie, który w przeciwnym razie może pasować do Drupala(a zawsze pozostaje wdzięczny za to, co można zrobić z Drupalem).

Z technologiami hot reload dla Javy, takimi jak JRebel, powinno być teraz możliwe posiadanie CMS opartego na Javie, który jest tak łatwy do opracowania, jak CMS oparty na PHP, ale z przyzwoitym i odpowiednio zorientowanym obiektowo API. społeczność modułów jak te oparte na PHP, takie jak Drupal mają.