weather-app

VAADİN

Vaadin is an open-source web framework for rich Internet applications. In contrast to JavaScript libraries and browser-plugin based solutions, it features a server-side architecture, which means that the majority of the logic runs on the servers. Ajax technology runs on the browser-side to ensure a rich and interactive user experience. On the client-side Vaadin is built on top of and can be extended with Google Web Toolkit.

FEATURES

Vaadin uses Java as the programming language for creating web content. The framework incorporates event-driven programming and widgets, which enables a programming model that is closer to GUI software development than traditional web development with HTML and JavaScript.

Vaadin uses Google Web Toolkit for rendering the resulting web page. While the way Vaadin uses Google Web Toolkit could lead to trust issues – it only operates client-side (i.e., in a web browser's JavaScript engine) – Vaadin adds server-side data validation to all actions. This means that if the client data is tampered with, the server notices this and doesn't allow it.

Vaadin's default component set can be extended with custom GWT widgets and themed with CSS.

Vaadin is distributed as a collection of JAR files (either as direct downloads, or with Maven or Ivy integration), which can be included in any kind of Java web project developed with standard Java tools. In addition, there exist Vaadin plugins for the Eclipse IDE and NetBeans for easing the development of Vaadin applications as well as direct support of (and distribution through) Maven.

Vaadin applications can be deployed as Java servlets for any Java web server, including Google App Engine. Applications can also be deployed as portlets to any Java portal like eXo Platform.[2] Vaadin also has some deeper integration with the Liferay Portal.

SPRİNG FRAMEWORK

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE (Enterprise Edition) platform. Although the framework does not impose any specific programming model, it has become popular in the Java community as an addition to, or even replacement for the Enterprise JavaBeans (EJB) model. The Spring Framework is open source.

MODULES

The Spring Framework includes several modules that provide a range of services:

Spring Core Container: this is the base module of Spring and provides spring containers (BeanFactory and ApplicationContext).[11]
Aspect-oriented programming: enables implementing cross-cutting concerns.
Authentication and authorization: configurable security processes that support a range of standards, protocols, tools and practices via the Spring Security sub-project (formerly Acegi Security System for Spring).
Convention over configuration: a rapid application development solution for Spring-based enterprise applications is offered in the Spring Roo module
Data access: working with relational database management systems on the Java platform using Java Database Connectivity (JDBC) and object-relational mapping tools and with NoSQL databases
Inversion of control container: configuration of application components and lifecycle management of Java objects, done mainly via dependency injection
Messaging: configurative registration of message listener objects for transparent message-consumption from message queues via Java Message Service (JMS), improvement of message sending over standard JMS APIs
Model–view–controller: an HTTP- and servlet-based framework providing hooks for extension and customization for web applications and RESTful (representational state transfer) Web services.
Remote access framework: configurative remote procedure call (RPC)-style marshalling of Java objects over networks supporting Java remote method invocation (RMI), CORBA (Common Object Request Broker Architecture) and HTTP-based protocols including Web services (SOAP (Simple Object Access Protocol))
Transaction management: unifies several transaction management APIs and coordinates transactions for Java objects
Remote management: configurative exposure and management of Java objects for local or remote configuration via Java Management Extensions (JMX)
Testing: support classes for writing unit tests and integration tests