O documento fornece informações sobre o framework Spring, incluindo sua origem, filosofia, conceitos como inversão de controle e injeção de dependência, e como desenvolver aplicações web com Spring MVC.
Descrição introdutória de uma arquitetura para o desenvolvimento de aplicações web com funcionalidades offline.
Tecnologias envolvidas: HTML5, Javascript, Handlebards, etc.
O documento discute o desenvolvimento de aplicações web usando Java Server Faces (JSF). Aborda os principais conceitos como camadas, arquitetura MVC, ciclo de vida JSF e navegação entre páginas. Também apresenta o uso de managed beans para navegação dinâmica.
Apresentação da disciplina de Projeto Detalhado de Software do curso de Engenharia de Software da UFC. A Apresentação fala sobre a motivação para criação e como é estruturado o framework Spring.
O documento apresenta uma introdução sobre Ionic 3 e Firebase. Discute brevemente Angular 4 e Ionic antes de explicar como configurar autenticação no Firebase usando Facebook e integrar um banco de dados Firebase em um projeto Ionic.
Desenvolvendo aplicações web com o framework cakephpRodrigo Aramburu
O documento resume as principais características e funcionalidades do framework CakePHP para desenvolvimento web, incluindo sua arquitetura MVC, o uso de modelos, views e controllers, helpers, components e formulários.
O documento descreve a evolução do framework AngularJS, desde sua criação em 2009 até as mudanças trazidas pela versão 2.0. Apresenta os principais recursos de cada versão e explica como alguns conceitos foram modificados ou removidos para aproveitar melhorias na linguagem JavaScript.
Descrição introdutória de uma arquitetura para o desenvolvimento de aplicações web com funcionalidades offline.
Tecnologias envolvidas: HTML5, Javascript, Handlebards, etc.
O documento discute o desenvolvimento de aplicações web usando Java Server Faces (JSF). Aborda os principais conceitos como camadas, arquitetura MVC, ciclo de vida JSF e navegação entre páginas. Também apresenta o uso de managed beans para navegação dinâmica.
Apresentação da disciplina de Projeto Detalhado de Software do curso de Engenharia de Software da UFC. A Apresentação fala sobre a motivação para criação e como é estruturado o framework Spring.
O documento apresenta uma introdução sobre Ionic 3 e Firebase. Discute brevemente Angular 4 e Ionic antes de explicar como configurar autenticação no Firebase usando Facebook e integrar um banco de dados Firebase em um projeto Ionic.
Desenvolvendo aplicações web com o framework cakephpRodrigo Aramburu
O documento resume as principais características e funcionalidades do framework CakePHP para desenvolvimento web, incluindo sua arquitetura MVC, o uso de modelos, views e controllers, helpers, components e formulários.
O documento descreve a evolução do framework AngularJS, desde sua criação em 2009 até as mudanças trazidas pela versão 2.0. Apresenta os principais recursos de cada versão e explica como alguns conceitos foram modificados ou removidos para aproveitar melhorias na linguagem JavaScript.
Este documento apresenta as principais tecnologias do framework MEAN (MongoDB, Express, AngularJS e Node.js). Ele discute como construir uma aplicação utilizando essas tecnologias e mostra passo-a-passo a instalação e configuração do ambiente de desenvolvimento com essas ferramentas.
CakePHP - Configurando o ambiente de desenvolvimento no WindowsEmerson Soares
O documento discute frameworks para desenvolvimento de software em PHP, introduzindo o framework CakePHP. Ele explica que CakePHP usa arquitetura MVC, inclui vários helpers, componentes e recursos como validação e cache para tornar o desenvolvimento rápido e flexível. Também cobre a instalação do ambiente de desenvolvimento necessário para usar o CakePHP.
O documento introduz o framework Spring, descrevendo seus principais conceitos como Inversão de Controle, Injeção de Dependência e uso de POJOS. Também apresenta exemplos de como configurar e usar o Spring para gerenciar o ciclo de vida de objetos e suas dependências.
O documento fornece um resumo sobre o framework Spring, descrevendo:
1) Por que foi criado o Spring para substituir o EJB do Java EE, tornando o desenvolvimento Java mais leve e flexível;
2) Os principais conceitos do Spring como injeção de dependência e gerenciamento de beans;
3) As principais partes do framework Spring e projetos relacionados como Spring Boot, Spring MVC e Spring Data.
Desenvolvimento Front end (AngularJS e Bootstrap)Julian Cesar
O documento apresenta uma agenda de um curso de formação front-end com AngularJS e Bootstrap. O curso abordará introdução ao JavaScript, AngularJS, diretivas, controllers, serviços, views, requisições AJAX, armazenamento local e Bootstrap. Não será abordado ferramentas como IDEs, Bower, Grunt, Node ou outras bibliotecas auxiliares.
O documento resume as principais funcionalidades do ASP.NET MVC 5, incluindo novas versões mais fáceis de instalar e atualizar, suporte a Bootstrap, identidade com autenticação por vários provedores, melhorias nos helpers HTML, suporte a enums e routing por atributos.
O documento apresenta um resumo sobre:
1) O livro ensina a desenvolver aplicações web usando a arquitetura MVC do ASP.NET;
2) Explica os principais conceitos do ASP.NET MVC como Model, View e Controller e como eles se relacionam;
3) Fornece instruções sobre como configurar o ambiente de desenvolvimento com o Visual Studio e o IIS para criar e executar projetos ASP.NET MVC.
1. O documento descreve como criar diretivas no AngularJS, apresentando as propriedades e funcionalidades básicas para isso, como template, templateUrl, replace, restrict, scope e transclude.
2. Inclui exemplos de como usar essas propriedades para criar diretivas simples, como uma alerta, e também diretivas mais complexas, como um item de acordo.
3. Fornece detalhes sobre como utilizar a função link para interagir com a DOM dentro das diretivas.
O documento descreve 10 passos para aprender a criar diretivas no AngularJS. Os passos incluem: 1) Determinar se uma diretiva é apropriada; 2) Criar uma diretiva com template interno; 3) Usar template externo e modos de restrição; 4) Criar um módulo para a diretiva.
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
O documento fornece uma introdução ao framework PHP Zend, descrevendo suas principais características e componentes. Em particular, explica como o Zend Framework implementa o padrão MVC, fornecendo classes para controle, visão e modelo, além de ferramentas como Zend_Form, Zend_Db e Zend_Layout. O documento também discute como o Zend Framework promove boas práticas de programação PHP e ajuda a criar aplicações seguras, performáticas e flexíveis.
O documento resume um mini curso sobre aplicativos híbridos usando Phonegap e Ionic. Em particular, o documento discute: 1) Uma introdução aos aplicativos híbridos e Phonegap; 2) Como criar um projeto básico usando Cordova ou Phonegap; 3) Como testar e emular aplicativos localmente; e 4) Uma visão geral do framework Ionic para criar interfaces de usuário para aplicativos híbridos.
1. O documento discute abraçar o framework AngularJS para implementar arquitetura MVC no lado do cliente.
2. É explicado que frameworks como o Angular resolvem problemas como manipulação de dados e lógica nas views.
3. O framework AngularJS é então apresentado, com ênfase em sua abordagem declarativa usando diretivas e two-way data binding.
O documento apresenta o framework PHP Zend Framework, descrevendo suas principais características como arquitetura MVC, componentes, vantagens e exemplos de uso. O autor é um engenheiro certificado pela Zend que discute como o framework torna o desenvolvimento web mais rápido e simplificado.
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Rodrigo Urubatan
O documento descreve uma aplicação web criada com Ruby on Rails no backend e React.js no frontend. A aplicação é um blog simples onde os usuários podem criar, editar e visualizar posts. Componentes React são usados para construir as interfaces do usuário enquanto Backbone.js facilita a comunicação entre o cliente e o servidor. O objetivo é demonstrar como criar uma Single Page Application usando essas tecnologias.
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphereJuliano Martins
Esta apresentação contem um passo a passo mostrando a criação de um Web Service RESTFul utilizando a API Jersey no Eclipse, rodando nos servidores de aplicação Tomcat, JBoss e Websphere
AngularJS é um framework JavaScript para desenvolvimento de aplicações web que estrutura a aplicação em camadas bem definidas como View, Controller e Scope. Ele fornece recursos como componentes reusáveis, integração com back-end e facilitação de testes automatizados.
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Rafael Ponte
O documento lista 10 maus hábitos comuns de desenvolvedores JSF. Estes incluem usar tags JSTL para esconder componentes em vez de atributos rendered, alterar estado de componentes no lado cliente, e não entender completamente o ciclo de vida do JSF. O documento fornece soluções como usar atributos rendered, alterar estado via AJAX, e estudar o ciclo de vida do JSF para desenvolver de forma mais eficiente.
O documento apresenta um exemplo de como criar um serviço em AngularJS para interagir com uma API RESTful. Ele mostra como construir um serviço que encapsula chamadas HTTP para recuperar e adicionar contatos de uma lista telefônica, utilizando o método $http do Angular e retornando as funções do serviço de uma factory.
O documento descreve o framework Zend Framework, definindo-o como um framework PHP de código aberto orientado a objetos. Detalha suas principais características como MVC, componentes, ferramentas como o Zend Tool e exemplos de uso para criar formulários, realizar operações no banco de dados e validações.
The document discusses UML with action semantics (xUML), which allows UML models to be executed. It covers key concepts like actions, which are the fundamental unit of computational behavior, and action semantics, which remove assumptions about specific computing environments. xUML models can be used to define executable analysis models. The document also provides an overview of behavioral modeling elements in UML like use cases, and covers the action metamodel which defines how actions work through inputs, outputs, data flow, and control flow. It distinguishes between primitive actions and procedures as an action container.
A framework is the design of an application or subsystem expressed as a set of abstract classes and the way objects in those classes collaborate. Users build applications using a framework by creating subclasses, configuring objects together, and modifying examples. Frameworks invert control so the reused code calls the user's code. Parts of a framework application include new classes and a script that creates, connects, and parameterizes components.
Este documento apresenta as principais tecnologias do framework MEAN (MongoDB, Express, AngularJS e Node.js). Ele discute como construir uma aplicação utilizando essas tecnologias e mostra passo-a-passo a instalação e configuração do ambiente de desenvolvimento com essas ferramentas.
CakePHP - Configurando o ambiente de desenvolvimento no WindowsEmerson Soares
O documento discute frameworks para desenvolvimento de software em PHP, introduzindo o framework CakePHP. Ele explica que CakePHP usa arquitetura MVC, inclui vários helpers, componentes e recursos como validação e cache para tornar o desenvolvimento rápido e flexível. Também cobre a instalação do ambiente de desenvolvimento necessário para usar o CakePHP.
O documento introduz o framework Spring, descrevendo seus principais conceitos como Inversão de Controle, Injeção de Dependência e uso de POJOS. Também apresenta exemplos de como configurar e usar o Spring para gerenciar o ciclo de vida de objetos e suas dependências.
O documento fornece um resumo sobre o framework Spring, descrevendo:
1) Por que foi criado o Spring para substituir o EJB do Java EE, tornando o desenvolvimento Java mais leve e flexível;
2) Os principais conceitos do Spring como injeção de dependência e gerenciamento de beans;
3) As principais partes do framework Spring e projetos relacionados como Spring Boot, Spring MVC e Spring Data.
Desenvolvimento Front end (AngularJS e Bootstrap)Julian Cesar
O documento apresenta uma agenda de um curso de formação front-end com AngularJS e Bootstrap. O curso abordará introdução ao JavaScript, AngularJS, diretivas, controllers, serviços, views, requisições AJAX, armazenamento local e Bootstrap. Não será abordado ferramentas como IDEs, Bower, Grunt, Node ou outras bibliotecas auxiliares.
O documento resume as principais funcionalidades do ASP.NET MVC 5, incluindo novas versões mais fáceis de instalar e atualizar, suporte a Bootstrap, identidade com autenticação por vários provedores, melhorias nos helpers HTML, suporte a enums e routing por atributos.
O documento apresenta um resumo sobre:
1) O livro ensina a desenvolver aplicações web usando a arquitetura MVC do ASP.NET;
2) Explica os principais conceitos do ASP.NET MVC como Model, View e Controller e como eles se relacionam;
3) Fornece instruções sobre como configurar o ambiente de desenvolvimento com o Visual Studio e o IIS para criar e executar projetos ASP.NET MVC.
1. O documento descreve como criar diretivas no AngularJS, apresentando as propriedades e funcionalidades básicas para isso, como template, templateUrl, replace, restrict, scope e transclude.
2. Inclui exemplos de como usar essas propriedades para criar diretivas simples, como uma alerta, e também diretivas mais complexas, como um item de acordo.
3. Fornece detalhes sobre como utilizar a função link para interagir com a DOM dentro das diretivas.
O documento descreve 10 passos para aprender a criar diretivas no AngularJS. Os passos incluem: 1) Determinar se uma diretiva é apropriada; 2) Criar uma diretiva com template interno; 3) Usar template externo e modos de restrição; 4) Criar um módulo para a diretiva.
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
O documento fornece uma introdução ao framework PHP Zend, descrevendo suas principais características e componentes. Em particular, explica como o Zend Framework implementa o padrão MVC, fornecendo classes para controle, visão e modelo, além de ferramentas como Zend_Form, Zend_Db e Zend_Layout. O documento também discute como o Zend Framework promove boas práticas de programação PHP e ajuda a criar aplicações seguras, performáticas e flexíveis.
O documento resume um mini curso sobre aplicativos híbridos usando Phonegap e Ionic. Em particular, o documento discute: 1) Uma introdução aos aplicativos híbridos e Phonegap; 2) Como criar um projeto básico usando Cordova ou Phonegap; 3) Como testar e emular aplicativos localmente; e 4) Uma visão geral do framework Ionic para criar interfaces de usuário para aplicativos híbridos.
1. O documento discute abraçar o framework AngularJS para implementar arquitetura MVC no lado do cliente.
2. É explicado que frameworks como o Angular resolvem problemas como manipulação de dados e lógica nas views.
3. O framework AngularJS é então apresentado, com ênfase em sua abordagem declarativa usando diretivas e two-way data binding.
O documento apresenta o framework PHP Zend Framework, descrevendo suas principais características como arquitetura MVC, componentes, vantagens e exemplos de uso. O autor é um engenheiro certificado pela Zend que discute como o framework torna o desenvolvimento web mais rápido e simplificado.
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Rodrigo Urubatan
O documento descreve uma aplicação web criada com Ruby on Rails no backend e React.js no frontend. A aplicação é um blog simples onde os usuários podem criar, editar e visualizar posts. Componentes React são usados para construir as interfaces do usuário enquanto Backbone.js facilita a comunicação entre o cliente e o servidor. O objetivo é demonstrar como criar uma Single Page Application usando essas tecnologias.
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphereJuliano Martins
Esta apresentação contem um passo a passo mostrando a criação de um Web Service RESTFul utilizando a API Jersey no Eclipse, rodando nos servidores de aplicação Tomcat, JBoss e Websphere
AngularJS é um framework JavaScript para desenvolvimento de aplicações web que estrutura a aplicação em camadas bem definidas como View, Controller e Scope. Ele fornece recursos como componentes reusáveis, integração com back-end e facilitação de testes automatizados.
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Rafael Ponte
O documento lista 10 maus hábitos comuns de desenvolvedores JSF. Estes incluem usar tags JSTL para esconder componentes em vez de atributos rendered, alterar estado de componentes no lado cliente, e não entender completamente o ciclo de vida do JSF. O documento fornece soluções como usar atributos rendered, alterar estado via AJAX, e estudar o ciclo de vida do JSF para desenvolver de forma mais eficiente.
O documento apresenta um exemplo de como criar um serviço em AngularJS para interagir com uma API RESTful. Ele mostra como construir um serviço que encapsula chamadas HTTP para recuperar e adicionar contatos de uma lista telefônica, utilizando o método $http do Angular e retornando as funções do serviço de uma factory.
O documento descreve o framework Zend Framework, definindo-o como um framework PHP de código aberto orientado a objetos. Detalha suas principais características como MVC, componentes, ferramentas como o Zend Tool e exemplos de uso para criar formulários, realizar operações no banco de dados e validações.
The document discusses UML with action semantics (xUML), which allows UML models to be executed. It covers key concepts like actions, which are the fundamental unit of computational behavior, and action semantics, which remove assumptions about specific computing environments. xUML models can be used to define executable analysis models. The document also provides an overview of behavioral modeling elements in UML like use cases, and covers the action metamodel which defines how actions work through inputs, outputs, data flow, and control flow. It distinguishes between primitive actions and procedures as an action container.
A framework is the design of an application or subsystem expressed as a set of abstract classes and the way objects in those classes collaborate. Users build applications using a framework by creating subclasses, configuring objects together, and modifying examples. Frameworks invert control so the reused code calls the user's code. Parts of a framework application include new classes and a script that creates, connects, and parameterizes components.
Processing is an open-source programming language and environment used primarily for visual design, prototyping, and data visualization. It is useful for animating data in a visual way, creating things that can be embedded in web pages, and as an educational tool. While still a work in progress, Processing has been around since 2001 and is used by designers, artists, and programmers to create both static and interactive digital artwork.
Architecture Description Languages: An Overviewelliando dias
This document provides an overview of architecture description languages (ADLs). It defines architecture and discusses the positives and negatives of ADLs. It explores different ADL approaches including ACME, Rapide, Wright, Aesop, and others. It examines the differences between architecture and design. The document also includes examples of specifications written in different ADLs.
The document provides an overview of Java reflection, which allows examining and modifying program behavior at runtime. It discusses the main reflection API classes like Class, Field, Method, and Constructor. It describes how to obtain class and member information, invoke methods, get and set field values, and make members accessible despite access restrictions.
Towards a Common Metamodel for the Development of Web Applicationselliando dias
The document discusses the development of a common metamodel for web application development called UWE (UML-based Web Engineering). [1] It presents UWE as an approach that uses UML and the Unified Process for systematic design and semi-automatic code generation of web applications. [2] The authors define the UWE metamodel based on MOF and as a conservative extension of UML to provide a basis for the OpenUWE tool suite. [3] The metamodel is mapped to a UML profile for use in standard UML modeling tools.
ClojureScript allows developers to use the Clojure programming language to build applications that compile to JavaScript. This enables Clojure code to run in environments where JavaScript is supported, like web browsers and mobile apps. ClojureScript leverages the Google Closure compiler and library to provide whole program optimization of Clojure code compiling to JavaScript.
Spring Boot - Uma app do 0 a Web em 30 minutosphelypploch
O documento descreve Spring Boot, um framework Java que permite alta produtividade no desenvolvimento de aplicações. Spring Boot utiliza convenções para configuração automática e elimina a necessidade de XML, permitindo foco na lógica de negócio. O documento também explica como construir uma aplicação simples de lista de convidados usando Spring Boot e suas dependências.
Spring + Tapestry Um novo paradigma de desenvolvimento webelliando dias
O documento discute o framework Spring, incluindo sua organização, inversão de controle, integração com bancos de dados e frameworks web, transações declarativas, uso de mocks e projetos relacionados. O Spring é um container leve que facilita o desenvolvimento web, diminui código e integra com diversas tecnologias de forma portável e testável.
O documento apresenta a tecnologia JavaServer Faces (JSF) e demonstra a aplicação ScrumToys desenvolvida com JSF 2.0. Apresenta os benefícios e novidades da JSF 2.0 como suporte a AJAX, templates baseados em XHTML e melhorias na navegação. Por fim, demonstra a aplicação ScrumToys e responde perguntas.
O documento descreve o framework JavaServer Faces (JSF), que incorpora características do padrão MVC para desenvolvimento de interfaces web. JSF permite a criação de UIs através de componentes pré-definidos e segue o padrão MVC, separando a aplicação em modelo, visualização e controle. É possível desenvolver aplicações JSF utilizando tags JSP, beans gerenciados e expressões unificadas.
O documento resume os principais conceitos e ferramentas do framework Ruby on Rails. Apresenta os pilares do MVC, models, views e controllers, e explica como o Rails promove princípios como DRY e convenções sobre configuração. Também discute recursos como testes, internacionalização, deploy e ferramentas de apoio como Capistrano.
Este documento descreve como criar e testar requisições GET e POST em Java usando servlets. Ele explica como configurar um projeto com um arquivo HTML, um descritor de implantação e um servlet para lidar com as requisições. O documento também discute quando usar GET versus POST e mostra exemplos de código para obter e exibir parâmetros de requisição.
O documento discute JavaServer Faces (JSF), um framework para desenvolvimento web em Java. JSF facilita a criação de interfaces gráficas, expressões de linguagem para acessar objetos e validação de campos. O documento também explica como configurar beans, formulários, controllers e arquivos de configuração para construir aplicações web simples com JSF.
O documento explica como configurar e usar o framework DWR para realizar chamadas AJAX entre páginas Java e JavaScript. Nos primeiros passos, ele descreve como criar um projeto no Eclipse, adicionar as bibliotecas necessárias e configurar o servlet e arquivo de configuração. Depois, ele detalha a codificação das classes Java e página JSP envolvidas, incluindo a interface remota e conversão de objetos. Por fim, ele mostra como testar a aplicação fazendo uma chamada remota que retorna uma concatenação de strings.
Moacir Casemiro apresenta suas credenciais e experiência em arquitetura e gestão de software, incluindo certificações como MCP, MCAD, MCTS e MCPD. Ele fornece seus contatos e detalhes sobre palestras e treinamentos sobre padrões de projeto, MVC e ASP.NET MVC.
O documento apresenta um resumo sobre frameworks para desenvolvimento web em Java. Apresenta a estrutura do curso, dividido em 5 aulas, abordando tópicos como Maven, Spring, Spring Boot, Spring MVC, Spring Data e Spring Security. O objetivo é fornecer uma visão geral das principais ferramentas e frameworks para construção de aplicações web com Java.
Este documento descreve um curso de formação para desenvolvedores .NET 4.0, abordando tópicos como ASP.NET, C#, Visual Studio, Windows Forms, LINQ, MVC e relatórios com CrystalReports. O curso tem duração de 160 horas e inclui disciplinas como orientação a objetos, programação web, bancos de dados e padrões .NET avançados.
[1] ASP.NET MVC é um framework para desenvolvimento web que implementa o padrão MVC, fornecendo mais controle sobre o código gerado em comparação ao ASP.NET Web Forms. [2] A apresentação discute conceitos como Razor, model binding, validação, filtros e autenticação no ASP.NET MVC. [3] Exemplos práticos demonstram como criar controllers, views e aplicar conceitos como layout, passagem de dados e formulários.
Mini-curso realizado no CESOL 2009 em Fortaleza na UFC campos do PICI, ministrado por mim Targino Silveira.
Nesse mini-curso viso preparar as pessoas para iniciarem a fazer pequenas aplicações e ao terminarem o mini-curso já sabendo com incluir, editar, excluir, pesquisar registros; alterar templates, trabalhar com migrations e uma outra serie de procedimentos.
Desenvolvendo aplicações com Angular e Laravel no Back-endGiovanny Valente
O documento apresenta Angular e Laravel, abordando: (1) Angular como plataforma para desenvolvimento de interfaces utilizando HTML, CSS e JS; (2) Elementos fundamentais do Angular como templates e componentes; (3) Como Laravel é um framework MVC para PHP que facilita a construção de aplicações; (4) Desenvolvimento de uma aplicação simples utilizando Angular e Laravel integrados.
O documento introduz os conceitos de AOP e como ele é implementado no Spring Framework. Apresenta as motivações para AOP, como ele permite a implementação modular de aspectos transversais e benefícios como evolução mais fácil de sistemas. Explica os principais conceitos de AOP no Spring como aspectos, joinpoints e advisors e demonstra um exemplo prático de como aplicar um advice de logging em uma classe de negócio usando Spring AOP.
O documento apresenta uma sessão sobre ASP.NET MVC, discutindo os objetivos do framework MVC, os principais conceitos como Model, View e Controller, e como o ASP.NET MVC RC1 implementa este padrão. O documento também compara ASP.NET MVC com ASP.NET Web Forms e fornece demonstrações práticas do framework.
O documento apresenta Alexandre Tarifa e seu currículo, incluindo sua experiência com ASP.NET MVC. O documento também fornece uma breve introdução ao ASP.NET MVC, explicando sua arquitetura Model-View-Controller e características como roteamento, modelos, controladores e views.
O documento apresenta Alexandre Tarifa e seu currículo, incluindo sua experiência com ASP.NET MVC. O documento também fornece uma breve introdução ao ASP.NET MVC, discutindo sua arquitetura MVC, rotas, modelos, controladores, views e helpers HTML.
Why you should be excited about ClojureScriptelliando dias
ClojureScript allows Clojure code to compile to JavaScript. Created by Rich Hickey and friends, it provides optimizations for performance while maintaining readability and abstraction. As a Lisp for JavaScript, ClojureScript controls complexity on the web and benefits from JavaScript's status as a compilation target for many languages.
Functional Programming with Immutable Data Structureselliando dias
1. The document discusses the advantages of functional programming with immutable data structures for multi-threaded environments. It argues that shared mutable data and variables are fundamentally flawed concepts that can lead to bugs, while immutable data avoids these issues.
2. It presents Clojure as a functional programming language that uses immutable persistent data structures and software transactional memory to allow for safe, lock-free concurrency. This approach allows readers and writers to operate concurrently without blocking each other.
3. The document makes the case that Lisp parentheses in function calls uniquely define the tree structure of computations and enable powerful macro systems, homoiconicity, and structural editing of code.
O documento lista e descreve as principais partes de um contêiner de carga seco, incluindo o painel frontal, laterais, traseira, teto, piso e estrutura inferior. Muitos componentes como painéis laterais, travessas do teto e fundo são numerados de acordo com sua localização. As portas traseiras contêm quadros, painéis, dobradiças e barras de fechamento.
O documento discute a história da geometria projetiva, desde Euclides até seu uso em computação gráfica. Aborda figuras-chave como Pascal, que foi pioneiro na área, e como a perspectiva foi aplicada nas artes ao longo dos séculos.
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
This document discusses the benefits of polyglot and poly-paradigm programming approaches for building more agile applications. It describes how using multiple languages and programming paradigms can optimize both performance and developer productivity. Specifically, it suggests that statically-typed compiled languages be used for core application components while dynamically-typed scripting languages connect and customize these components. This approach allows optimizing areas that require speed/efficiency separately from those requiring flexibility. The document also advocates aspects and functional programming to address cross-cutting concerns and concurrency challenges that arise in modern applications.
This document discusses JavaScript libraries and frameworks. It provides an overview of some popular options like jQuery, Prototype, Dojo, MooTools, and YUI. It explains why developers use libraries, such as for faster development, cross-browser compatibility, and animation capabilities. The document also discusses how libraries resemble CSS and use selector syntax. Basic examples are provided to demonstrate common tasks like hover effects and row striping. Factors for choosing a library are outlined like maturity, documentation, community, and licensing. The document concludes by explaining how to obtain library code from project websites or Google's AJAX Libraries API.
How to Make an Eight Bit Computer and Save the World!elliando dias
This document summarizes a talk given to introduce an open source 8-bit computer project called the Humane Reader. The talk outlines the goals of providing a cheap e-book reader and computing platform using open source tools. It describes the hardware design which uses an AVR microcontroller and interfaces like video output, SD card, and USB. The talk also covers using open source tools for development and sourcing low-cost fabrication and assembly. The overall goals are to create an inexpensive device that can provide educational resources in developing areas.
Ragel is a parser generator that compiles to various host languages including Ruby. It is useful for parsing protocols and data formats and provides faster parsing than regular expressions or full LALR parsers. Several Ruby projects like Mongrel and Hpricot use Ragel for tasks like HTTP request parsing and HTML parsing. When using Ragel with Ruby, it can be compiled to Ruby code directly, which is slow, or a C extension can be written for better performance. The C extension extracts the parsed data from Ragel and makes it available to Ruby.
A Practical Guide to Connecting Hardware to the Webelliando dias
This document provides an overview of connecting hardware devices to the web using the Arduino platform. It discusses trends in electronics and computing that make this easier, describes the Arduino hardware and software, and covers various connection methods including directly to a computer, via wireless modems, Ethernet shields, and services like Pachube that allow sharing sensor data over the internet. The document aims to demonstrate how Arduinos can communicate with other devices and be used to build interactive systems.
O documento introduz o Arduino, uma plataforma de desenvolvimento open-source. Discute as características e componentes do Arduino, incluindo microcontroladores, software e exemplos de código. Também fornece instruções básicas sobre como programar o Arduino usando linguagem C.
O documento apresenta um mini-curso introdutório sobre Arduino, abordando o que é a plataforma Arduino, como é estruturado seu hardware, como programá-lo, exemplos básicos de código e aplicações possíveis como controle residencial e robótica.
The document discusses various functions for working with datasets in the Incanter library for Clojure. It describes how to create, read, save, select rows and columns from, and sort datasets. Functions are presented for building datasets from sequences, reading datasets from files and URLs, saving datasets to files and databases, selecting single or multiple columns, and filtering rows based on conditions. The document also provides an overview of the Incanter library and its various namespaces for statistics, charts, and other functionality.
Rango is a lightweight Ruby web framework built on Rack that aims to be more robust than Sinatra but smaller than Rails or Merb. It is inspired by Django and Merb, uses Ruby 1.9, and supports features like code reloading, Bundler, routing, rendering, and HTTP error handling. The documentation provides examples and details on using Rango.
Fab.in.a.box - Fab Academy: Machine Designelliando dias
This document describes the design of a multifab machine called MTM. It includes descriptions of the XY stage and Z axis drive mechanisms, as well as the tool heads and network used to control the machine. Key aspects of the design addressed include the stepper motor selection, drive electronics, motion control firmware, and use of a virtual machine environment and circular buffer to enable distributed control of the machine. Strengths of the design include low inertia enabling high acceleration, while weaknesses include low basic resolution and stiffness unsuitable for heavy milling.
The Digital Revolution: Machines that makeselliando dias
The document discusses the results of a study on the effects of a new drug on memory and cognitive function in older adults. The double-blind study involved giving either the new drug or a placebo to 100 volunteers aged 65-80 over a 6 month period. Testing showed those receiving the drug experienced statistically significant improvements in short-term memory retention and processing speed compared to the placebo group.
The document discusses using Clojure for Hadoop programming. Clojure is a dynamic functional programming language that runs on the Java Virtual Machine. The document provides an overview of Clojure and how its features like immutability and concurrency make it well-suited for Hadoop. It then shows examples of implementing Hadoop MapReduce jobs using Clojure by defining mapper and reducer functions.
This document provides an overview of Hadoop, including:
1) Hadoop solves the problems of analyzing massively large datasets by distributing data storage and analysis across multiple machines to tolerate node failure.
2) Hadoop uses HDFS for distributed data storage, which shards massive files across data nodes with replication for fault tolerance, and MapReduce for distributed data analysis by sending code to the data.
3) The document demonstrates MapReduce concepts like map, reduce, and their composition with an example job.
Hadoop and Hive Development at Facebookelliando dias
Facebook generates large amounts of user data daily from activities like status updates, photo uploads, and shared content. This data is stored in Hadoop using Hive for analytics. Some key facts:
- Facebook adds 4TB of new compressed data daily to its Hadoop cluster.
- The cluster has 4800 cores and 5.5PB of storage across 12TB nodes.
- Hive is used for over 7500 jobs daily and by around 200 engineers/analysts monthly.
- Performance improvements to Hive include lazy deserialization, map-side aggregation, and joins.
Multi-core Parallelization in Clojure - a Case Studyelliando dias
The document describes a case study on using Clojure for multi-core parallelization of the K-means clustering algorithm. It provides background on parallel programming concepts, an introduction to Clojure, and details on how the authors implemented a parallel K-means algorithm in Clojure using agents and software transactional memory. They present results showing speedups from parallelization and accuracy comparable to R's implementation on both synthetic and real-world datasets.
From Lisp to Clojure/Incanter and RAn Introductionelliando dias
This document provides a comparison between the statistical computing languages R and Clojure/Incanter. It discusses the histories and philosophies behind Lisp, Fortran, R and Clojure. Key differences noted are that Clojure runs on the Java Virtual Machine, allowing it to leverage Java libraries, while R is primarily written in C and Fortran. Incanter is presented as a Clojure-based platform for statistical computing and graphics that is more immature than R but allows easier access to Java capabilities. Basic syntax comparisons are provided.
Gestão de dados: sua importância e benefíciosRafael Santos
O gerenciamento de dados abrange todos os aspectos do gerenciamento de dados ao longo de seu ciclo de vida — desde a criação até a exclusão ou arquivamento. Isso inclui atividades como entrada de dados, transformação de dados, armazenamento de dados, gerenciamento de metadados e governança de dados.
Esses tópicos de gerenciamento de dados são extremamente importantes. Pense no gerenciamento de dados como a infraestrutura — a espinha dorsal das organizações — permitindo que você tome decisões acertadas com base em dados confiáveis.
Teoria de redes de computadores redes .docanpproferick
O documento "Teoria de redes de computadores redes" oferece uma visão abrangente dos princípios e elementos fundamentais das redes de computadores. Começando com uma introdução sobre o que constitui uma rede, seus componentes e mecanismos de comunicação, o texto explora a diversidade de redes existentes, desde as redes pessoais de curto alcance (PAN) até as extensas redes de longa distância (WAN), incluindo redes metropolitanas (MAN) e redes de armazenamento (SAN).
Além disso, o documento aprofunda a análise dos tipos de redes cliente-servidor e ponto a ponto, elucidando suas vantagens e desvantagens em diferentes cenários. A transmissão de dados é outro ponto crucial abordado no texto, que detalha os meios físicos de transmissão, como cabos de par trançado, cabos coaxiais e fibra óptica, além das tecnologias sem fio que permitem a comunicação sem a necessidade de cabos.
O documento também apresenta os principais equipamentos de rede, como repetidores, modems, hubs, switches, roteadores, bridges e gateways, detalhando suas funções e a importância de cada um para o funcionamento eficiente de uma rede. Adicionalmente, o texto introduz o conceito de comutação de pacotes, um mecanismo essencial para a transmissão de dados em redes modernas, que permite que múltiplos usuários compartilhem recursos de rede de forma eficiente.
Em resumo, o documento "Teoria de redes de computadores redes" serve como um guia completo para entender os conceitos básicos e os componentes essenciais das redes de computadores, desde os diferentes tipos de redes até os equipamentos que as compõem e os protocolos que regem a comunicação entre dispositivos.O documento "Teoria de redes de computadores redes" oferece uma visão abrangente dos princípios e elementos fundamentais das redes de computadores. Começando com uma introdução sobre o que constitui uma rede, seus componentes e mecanismos de comunicação, o texto explora a diversidade de redes existentes, desde as redes pessoais de curto alcance (PAN) até as extensas redes de longa distância (WAN), incluindo redes metropolitanas (MAN) e redes de armazenamento (SAN).
Além disso, o documento aprofunda a análise dos tipos de redes cliente-servidor e ponto a ponto, elucidando suas vantagens e desvantagens em diferentes cenários. A transmissão de dados é outro ponto crucial abordado no texto, que detalha os meios físicos de transmissão, como cabos de par trançado, cabos coaxiais e fibra óptica, além das tecnologias sem fio que permitem a comunicação sem a necessidade de cabos.
O documento também apresenta os principais equipamentos de rede, como repetidores, modems, hubs, switches, roteadores, bridges e gateways, detalhando suas funções e a importância de cada um para o funcionamento eficiente de uma rede. Adicionalmente, o texto introduz o conceito de comutação de pacotes, um mecanismo essencial para a transmissão de dados em redes modernas, que permite que múltiplos usuários compartilhem recursos de rede de forma eficiente.
PRATICANDO O SCRUM Scrum team, product owneranpproferick
Scrum: Uma Estrutura Ágil para Projetos Complexos
Scrum é uma estrutura ágil amplamente utilizada para gerenciar e concluir projetos complexos. Sua abordagem iterativa e incremental permite que equipes multifuncionais colaborem de forma eficaz, respondam a mudanças e entreguem produtos de alta qualidade que atendam às necessidades dos clientes.
Princípios Fundamentais do Scrum
Transparência: Todos os aspectos do projeto, incluindo metas, progresso e desafios, são visíveis para todos os membros da equipe e partes interessadas.
Inspeção: O trabalho em andamento é revisado regularmente para identificar desvios do plano e oportunidades de melhoria.
Adaptação: As mudanças necessárias são feitas com base nas informações coletadas durante a inspeção, garantindo que o projeto permaneça no caminho certo.
Papéis no Scrum
Product Owner: Responsável por definir a visão do produto, priorizar as funcionalidades e garantir que o produto entregue valor ao cliente.
Scrum Master: Facilita a implementação do Scrum, remove obstáculos e garante que a equipe siga os princípios e práticas do Scrum.
Equipe de Desenvolvimento: Um grupo multifuncional responsável por entregar um incremento de produto "Pronto" potencialmente utilizável ao final de cada Sprint.
Eventos do Scrum
Sprint: Um período de tempo fixo (normalmente de 1 a 4 semanas) durante o qual um incremento de produto utilizável é criado.
Sprint Planning: Uma reunião no início de cada Sprint para definir as metas da Sprint e planejar o trabalho a ser realizado.
Daily Scrum: Uma breve reunião diária de 15 minutos onde os membros da equipe discutem o progresso, os desafios e o plano para o dia seguinte.
Sprint Review: Uma reunião no final de cada Sprint para apresentar o incremento de produto às partes interessadas e obter feedback.
Sprint Retrospective: Uma reunião após a Sprint Review para que a equipe reflita sobre o processo e identifique oportunidades de melhoria.
Artefatos do Scrum
Product Backlog: Uma lista ordenada de tudo o que é necessário para desenvolver e entregar o produto.
Sprint Backlog: Uma lista de itens do Product Backlog selecionados para serem concluídos durante a Sprint.
Incremento de Produto: Um resultado concreto do trabalho realizado durante a Sprint, que deve ser utilizável e agregar valor ao produto.
Benefícios do Scrum
Maior adaptabilidade a mudanças: O Scrum permite que as equipes respondam rapidamente às mudanças nas necessidades do cliente ou do mercado.
Melhora na qualidade do produto: A ênfase na entrega de incrementos de produto utilizáveis em cada Sprint garante que o produto seja testado e validado regularmente.
Maior satisfação do cliente: O envolvimento do cliente em todo o processo de desenvolvimento garante que o produto final atenda às suas necessidades e expectativas.
Maior produtividade da equipe: O Scrum promove a colaboração, a comunicação e a autonomia da equipe, resultando em maior produtividade e motivação.
Redução de riscos: A abordagem iterativa e incrementa
Como fui de 0 a lead na gringa em 3 anos.pptxtnrlucas
Esse documento conta a história do autor em sua jornada na área de Desenvolvimento de Software e como ele conseguiu chegar numa vaga de liderança numa empresa internacional em um curto período de tempo.
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Annelise Gripp
Você vai encontrar nessa apresentação ferramentas e técnicas que podem ser usadas em todo o processo de Engenharia de Software ponta a ponta, com seu time.
3. Desenvolvendo aplicações com o
Spring Framework
● Histórico do Framework
● Desenvolvendo para Interfaces não para classes
concretas
● Inversão de Controle e Injeção de Dependências
● Facilidades AOP do framework
● Desenvolvimento WEB com Spring MVC
Framework
http://www.immediate.com.br http://www.rsjug.org
4. Origem e Filosofia
● Expert One-to-One J2EE Design and Development – by Rod Johnson
● J2EE deve ser mais fácil de utilizar
● Design OO é mais importante do que qualquer tecnologia Utilizada
(Incluindo J2EE)
● Checked Exceptions são utilizadas em excesso no java
● É melhor programar para Interfaces do que para Classes
● Programar com o Spring deve ser um prazer
● A sua aplicação não deve depender do Spring (ou depender o menos
possível)
● Desenvolvedores principais: Jürgen Höller e Rod Johnson
http://www.immediate.com.br http://www.rsjug.org
5. Desenvolvendo para Interfaces e não
para classes concretas
● Facilidade para a troca de implementação
● Menor acoplamento entre os componentes
● Indiferença se o componente utilizado é local ou
remoto
● Compatibilidade com a futura utilização de AOP
e criação de proxies para adicionar verificações e
features não incluídas no projeto inicial
http://www.immediate.com.br http://www.rsjug.org
6. Inversão de Controle e Injeção de
dependências
● O que é Inversão de Controle
● O que é Injeção de dependências
● Formas de Injeção de dependência
● BeanFactory o Container de injeção de
dependências do Spring Framework.
http://www.immediate.com.br http://www.rsjug.org
7. Utilizando AOP de maneira fácil
● Conceitos AOP
– Aspect - um conceito distribuido pela aplicação, por exemplo,
gerenciamento de transações
– Advice - uma ação executada em um JointPoint
– JointPoint - a especificação de onde uma ação deve ser executada
– Pointcut - um conjunto de JointPoints especificando quando um advice
deve ser executado
– Introduction - a adição de metodos ou campos a objetos
– TargetObject - um objeto que contem um advice
– AOP Proxy - um objeto criado pelo framework AOP
– Weaving - o ato de juntar aspectos para criar um TargetObject
● Capacidades AOP do Spring Framework
● Utilização do AOP
http://www.immediate.com.br http://www.rsjug.org
8. Capacidades AOP do Spring
Framework
● O spring traz um framework AOP muito poderoso e totalmente integrado com a
BeanFactory utilizada por toda a aplicação, mas não suporta todos os recursos AOP
suportados por outras implementações de AOP.
● O spring não suporta interceptação de campos, apenas de métodos.
● O suporte a AOP do spring implementa as interfaces definidas pela AOP Aliance.
● Por default são suportados os seguintes tipos de Advices:
– MethodInterceptor
– ThrowsAdvice
– BeforeAdvice
– AfterReturningAdvice
http://www.immediate.com.br http://www.rsjug.org
9. Utilização do AOP
● Um exemplo clássico de utilização transparente
do suporte a AOP do spring framework, é o
gerenciamento de transações declarativas nativo
do Spring, que é implementado como um Advice
AOP.
● podemos ver também, diversas implementações
de logging, controle de exceções, adição de
interfaces em objetos (por exemplo, uma interface
IsModified)
http://www.immediate.com.br http://www.rsjug.org
10. Adicionando uma interface a um
objeto via AOP
public class IsModifiedInterceptor extends <bean id=quot;isModifiedInterceptorquot;
DelegatingIntroductionInterceptor class=quot;IsModifiedInterceptorquot;/>
implements IsModified {
private boolean modified; <bean id=quot;modifiedBeanNameProxyCreatorquot;
public boolean isModified() {
return modified; class=quot;org.springframework.aop.framework.au
} toproxy.BeanNameAutoProxyCreatorquot;>
public void resetModified(){ <property
modified=false; name=quot;beanNamesquot;><value>*</value></prop
} erty>
public Object invoke(MethodInvocation <property name=quot;interceptorNamesquot;>
invocation) throws Throwable { <list>
if (invocation.getMethod().getName().indexOf <value>isModifiedInterceptor</value>
(quot;setquot;) == 0) </list>
modified=true; </property>
return super.invoke(invocation); </bean>
}
}
http://www.immediate.com.br http://www.rsjug.org
11. Desenvolvendo aplicações WEB
● Configuração do framework
● Controllers
● Validação de formulários
● Mapeando requests
● Resolvendo Views
● Integrando tecnologias de visualização
● Localização e utilização de themas
● Tratamento de exceções
● Exposição de objetos de negocio como serviços remotos via XML-RPC,
Hesian e Burlap
● Chamada de objetos remotos utilizando XML-RPC, Hesian, Burlap e EJBs
http://www.immediate.com.br http://www.rsjug.org
12. Aplicação WEB Completa com o
Spring Framework
http://www.immediate.com.br http://www.rsjug.org
13. Configurando a aplicação
● O primeiro passo para utilizar o spring em uma aplicação
WEB, é informar ao framework quais serão os arquivos de
configuração globais.
– arquivos web.xml e applicationContext.xml
● Configurar o listener que ira carregar o contexto.
● e opcionalmente configurar um contexto para cada
servlet/dispatcher do framework utilizado.
– Arquivo <servletname>-servlet.xml
● Opcionalmente configurar o framework MVC escolhido,
caso este não seja o default do spring.
http://www.immediate.com.br http://www.rsjug.org
15. Controllers
● Controllers no framework MVC do Spring são equivalentes as Actions do
Struts ou do WebWork.
● No framework MVC do Spring, existem 3 tipos básicos de Controllers
– Controllers Simples - Apenas estender a classe AbstractController
– MultiActionController - Um Controller implementa diversas ações,
semelhante a uma action implementando a interface Command do
WebWork
– CommandController - são Controladores utilizados para facilitar a
utilização de formulários e o binding dos parametros destes formulários a
estes JavaBeans
● SimpleFormController - Trás diversas funcionalidades de formulário,
validação de input e página de sucesso
● WizardController - facilita a implementação de formulários multi
página, como wizards, controla o estado de cada página, ...
http://www.immediate.com.br http://www.rsjug.org
17. Validando Formulários
● Utilizando o framework MVC do Spring, existem duas formas default de
validação de formulários:
– utilizando o commons-validator do projeto jakarta, para isto basta
informar no XML do spring a utilização deste validator para um controller
especifico.
– Utilizar uma classe implementando a interface Validator, desta forma
tendo uma validação muito mais flexivel e podendo ser realizada mesmo
dentro do Dao responsável pelo objeto, facilitando validações do tipo: o
objeto ja existe, o nome de usuário solicitado ja esta sendo utilizado, ...,
este é o metodo preferido de validação de formulários no Spring
● Ao utilizar outro framework MVC a validação deste devera ser utilizada, mas
o spring pode continuar utilizando o framework de validação nas camadas
mais baixas, como os beans de negócio ou acesso a dados.
http://www.immediate.com.br http://www.rsjug.org
18. Mapeando Requests
● BeanNameUrlHandlreMapping <bean id=quot;urlMappingquot;
– Direciona os requests para um bean class=quot;org.springframework.web.se
rvlet.handler.SimpleUrlHandler
com o mesmo nome do excedente Mappingquot;>
da URL. <property name=quot;mappingsquot;>
● SimpleUrlHandlerMapping <props>
– Mapeia requests baseado em <prop
WildCards parecidos com os key=quot;/delegate/*.htmlquot;>delegat
utilizados para diretórios no ANT eMA</prop>
<prop
● HandlerInterceptors key=quot;/form.htmlquot;>exampleForm</
– Podem ser adicionados interceptors prop>
a qualquer mapeamento de requests, <prop
por exemplo para controlar o key=quot;/wiz.htmlquot;>exampleWizard<
horario de acesso as páginas ou /prop>
<prop
alguma coisa relacionada a key=quot;/ma/*.htmlquot;>exampleMA</pr
segurança op>
</props>
</property>
</bean>
http://www.immediate.com.br http://www.rsjug.org
19. Resolvendo Views - viewResolver
● A resolução de views no framework MVC do Spring, é bem
flexivel e suporta diversos tipos de recursos.
● Esta é ralizada como a maior parte do framework por um Bean
configurado no contexto.
● Os viewResolvers que vem implementados por default são os
seguintes:
– AbstractCachingViewResolver
– ResourceBundleViewResolver
– UrlBasedViewResolver
– InternalResourceViewResolver
– VelocityViewResolver
http://www.immediate.com.br http://www.rsjug.org
20. Tecnologias de Visualização
● Configurando um dos viewResolvers disponiveis, pode-se
utilizar o spring com as seguintes tecnologias de View:
– JSP/JSTL
– Tiles
– Velocity
– XSLT
– PDF
– Excel
http://www.immediate.com.br http://www.rsjug.org
21. Localizando a aplicação e utilizando
temas
● A maior parte do Spring Framework é localizavel.
● existem os seguintes localeResolvers ja implementados:
– AcceptHeaderLocaleResolver
– CookieLocaleResolver
– SessionLocaleResolver
● LocaleChangeInterceptor
– este interceptor pode ser adicionado ao hander resolver, e ira detectar um parâmetro
com o nome siteLanguage no request para alterar o locale do usuário chamando no
localeResolver do contexto o método setLocale
http://www.immediate.com.br http://www.rsjug.org
22. Tratando Exceções
● SimpleMappingExceptionResolver
– Habilita a mesma feature da API servlet, possibilita mapear um
nome de classe de exceção que pode ser jogada de um controller
para uma view.
● HandlerExceptionResolver
– implementando esta interface em qualquer bean do contexto, o
que se resume ao metodo: resolveException(Exception,
Handler) pode-se programaticamente ficar sabendo qual
exceção foi gerada e em qual controller do sistema, o que traz
muito mais flexibilidade.
http://www.immediate.com.br http://www.rsjug.org
23. Enviando e-mails
● A API javamail não é exatamente fácil de ser utilizada.
● O spring possui uma API de abstração para o envio de
mensagens/e-mails, estes podem ser enviados utilizando
JavaMail ou então o MailSender desenvolvido pelo Jason
Hunter, do pacote com.orreily.servlet.
● Qualquer uma destas implementações é totalmente
compatível e utilizável dentro do ambiente IoC do Spring,
podendo até ser mascarada através do framework de AOP,
como veremos depois.
http://www.immediate.com.br http://www.rsjug.org
25. Como utilizar a configuração feita.
public class OrderManagerImpl implements OrderManager {
private JavaMailSender mailSender;
public interface OrderManager { private SimpleMailMessage message;
public void setMailSender(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
void placeOrder(Order order); public void setMessage(SimpleMailMessage message) {
this.message = message;
} }
public void placeOrder(Order order) {
SimpleMailMessage msg = new SimpleMailMessage
(this.message);
msg.setTo(order.getCustomer().getEmailAddress());
msg.setText(
quot;Dear quot;
+ order.getCustomer().getFirstName()
+ order.getCustomer().getLastName()
+ quot;, thank you for placing order. Your order number is
quot;
+ order.getOrderNumber());
try{
mailSender.send(msg);
}
catch(MailException ex) {
System.err.println(ex.getMessage());
}
}
}
http://www.immediate.com.br http://www.rsjug.org
26. Acessando EJBs
● Acessar EJBs a partir do container IoC do spring é exatamente a
mesma coisa que acessar qualquer outro componente de negócios,
ou seja, é como utilizar um POJO.
● O spring prove suporte para a utilização de session beans locais ou
remotos, bastando para isto, trocar a factory utilizada na
configuração, de
org.springframework.ejb.access.LocalStatelessSessionProxyFactory
Bean para
org.springframework.ejb.access.RemoteStatelessSessionProxyFacto
ryBean
● e também prove facilidades para ser utilizado a partir de um EJB,
que será criado pelo EJB Container, e não pelo Spring.
http://www.immediate.com.br http://www.rsjug.org
27. Configurando o acesso a um EJB
<bean id=quot;mySessionBeanquot; class=quot;org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBeanquot;>
<property name=quot;jndiNamequot;>
<value>mySessionBean</value>
</property>
<property name=quot;businessInterfacequot;>
<value>br.com.usiinformatica.palestra.spring.ejb.MyBusinessInterface</value>
</property>
</bean>
<bean id=quot;myControllerquot; class = quot;br.com.usiinformatica.palestra.spring.ejb.EjbControllerquot;>
<property name=quot;mySessionBeanquot;>
<ref bean=quot;mySessionBeanquot;/>
</property>
</bean>
http://www.immediate.com.br http://www.rsjug.org
28. Implementando o Cliente para o EJB
public class EjbController {
private MyBusinessInterface mySessionBean;
/**
* @return Returns the mySessionBean.
*/
public MyBusinessInterface getMySessionBean() {
return this.mySessionBean;
}
/**
* @param mySessionBean The mySessionBean to set.
*/
public void setMySessionBean( MyBusinessInterface mySessionBean ) {
this.mySessionBean = mySessionBean;
}
public void metodoDeNegocio(){
mySessionBean.executarCompra(quot;usuarioquot;,Collections.EMPTY_LIST);
}
}
http://www.immediate.com.br http://www.rsjug.org
30. Expondo objetos remotos via Hesian
• Hesian é um protocolo binário para <bean name=quot;/User-hessianquot;
comunicação via HTTP desenvolvido class=quot;org.springframewor
pela BEA. k.remoting.caucho.Hessian
• A publicação de serviços neste ServiceExporterquot;>
protocolo via o container IoC do <property
Spring Framework é extremamente name=quot;servicequot;><ref
fácil, basta declarar um bean do tipo bean=quot;userBOquot;/></property
HessianServiceExporter e informar a >
este qual o bean deve ser exposto
como serviço e a interface que este <property
deve utilizar. name=quot;serviceInterfacequot;>
<value>justjava.example.web
.business.UserBO</value>
</property>
</bean>
http://www.immediate.com.br http://www.rsjug.org
31. Expondo objetos remotos via Burlap
• Burlap é o equivalente em XML ao <bean name=quot;/Pedido-burlapquot;
Hessian, também desenvolvido pela class=quot;org.springframewor
BEA. k.remoting.caucho.BurlapS
• A publicação de serviços neste erviceExporterquot;>
protocolo via o container IoC do <property
Spring Framework é extremamente name=quot;servicequot;><ref
fácil, basta declarar um bean do tipo bean=quot;pedidoBOquot;/></proper
BurlapServiceExporter e informar a ty>
este qual o bean deve ser exposto
como serviço e a interface que este <property
deve utilizar. name=quot;serviceInterfacequot;>
<value>justjava.example.web
.business.PedidoBO</value
>
</property>
</bean>
http://www.immediate.com.br http://www.rsjug.org
32. Expondo objetos remotos via JaxRPC
• Jax-RPC é a implementação de <service name=quot;PedidoServicequot;
WebServices em padrão Java. provider=quot;java:RPCquot;>
<parameter name=quot;allowedMethodsquot;
• O SpringFramework prove uma maneira value=quot;*quot;/>
fácil de expor serviços neste protocolo, e <parameter name=quot;classNamequot;
compatível com qualquer implementação value=quot;justjava.example.web.xmlrpc.Pe
deste. didoServicequot;/>
• Neste exemplo, será utilizado o Axis. <beanMapping qname=quot;justjava:Pedidoquot;
xmlns:jpetstore=quot;urn:JustJavaquot;
• Neste caso basta declarar normalmente o languageSpecificType=quot;java:justjava.e
servlet do Axis e criar um Bean que xample.web.vo.Pedidoquot;/>
estenda a classe ServletEndpointSupport <beanMapping qname=quot;justjava:Itemquot;
para ser exposto como serviço, e logo xmlns:jpetstore=quot;urn:JustJavaquot;
após expolo como serviço na languageSpecificType=quot;java:justjava.e
xample.web.vo.Itemquot;/>
implementação de WebServices <beanMapping qname=quot;justjava:Enderecoquot;
escolhida. xmlns:jpetstore=quot;urn:JustJavaquot;
• No caso do axis, isto se faz utilizando o languageSpecificType=quot;java:justjava.e
arquivo server-config.wsdd. xample.web.vo.Enderecoquot;/>
<beanMapping qname=quot;justjava:Userquot;
xmlns:jpetstore=quot;urn:JustJavaquot;
languageSpecificType=quot;java:justjava.e
xample.web.vo.Userquot;/>
</service>
http://www.immediate.com.br http://www.rsjug.org
33. Acessando objetos remotos via
Hesian
• A chamada de objetos remotos <bean id=quot;userBOquot;
pelo protocolo Hessian é tão class=quot;org.springframework.
fácil quanto a exposição deste remoting.caucho.HessianPr
serviço. oxyFactoryBeanquot;>
<property
• Para esta, basta conhecer a name=quot;serviceUrlquot;>
interface publica do serviço e a
URL, e declarar um Bean como <value>http://localhost:808
0/spring/caucho/User-
no exemplo. hessian</value>
</property>
<property
name=quot;ServiceInterfacequot;>
<value>justjava.example.web
.business.UserBO</value>
</property>
</bean>
http://www.immediate.com.br http://www.rsjug.org
34. Acessando objetos remotos via
Burlap
• A chamada de objetos remotos <bean id=quot;pedidoBOquot;
pelo protocolo Burlap é tão class=quot;org.springframework.
fácil quanto a exposição deste remoting.caucho.BurlapPro
serviço. xyFactoryBeanquot;>
<property
• Para esta, basta conhecer a name=quot;serviceUrlquot;>
interface publica do serviço e a
URL, e declarar um Bean como <value>http://localhost:808
0/spring/caucho/Pedido-
no exemplo. burlap</value>
</property>
<property
name=quot;ServiceInterfacequot;>
<value>justjava.example.web
.business.PedidoBO</value
>
</property>
</bean>
http://www.immediate.com.br http://www.rsjug.org
35. O que esta por vir
● Spring 1.1
– JMS Support
– JMX Support
– declarative Rules-Based validator
– AOP pointcut expression Language, JSR-175 preview
● Spring 1.2
– OGNL Support
– JCA Support
– enhanced RMI support
● Spring 1.3?
– JSF
– Portlets
http://www.immediate.com.br http://www.rsjug.org
36. Projetos Relacionados
● Rich Client Platform (Sandbox)
– Spring RCP
● Validation (Sandbox)
– Commons-Validator
– Attribute Based
● Security
– Acegi Secutiry System for Spring
http://acegisecutiry.sourceforge.net
http://www.immediate.com.br http://www.rsjug.org
38. Site do Spring framework
http://www.springframework.org
Javadoc do Sprign Framework
http://www.springframework.org/docs/api/
Spring + Hibernate
http://hibernate.bluemars.net/110.html
Spring + WebWork 1
http://wiki.opensymphony.com/space/Spring+Framework+Integration
The Server Side
http://www.theserverside.com
http://www.immediate.com.br http://www.rsjug.org
39. Rodrigo Urubatan Ferreira Jardim
Consultor/Desenvolvedor J2EE
Immediate Consultoria
Sun Certified Web Component Developer for J2EE 1.4
Sun Certified Programmer for the Java 2 Platform 1.4
rodrigo@usiinformatica.com.br
http://www.usiinformatica.com.br
http://www.immediate.com.br
http://www.immediate.com.br http://www.rsjug.org