45
.NET FRAMEWORK 3.5 Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Embed Size (px)

Citation preview

Page 1: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

.NET FRAMEWORK 3.5Equipe: Arthur AcciolyAlysson MeloAmarildo FilhoAmarildo PaiArthur CoutinhoRafael Portela

Page 2: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

.Net Framework 3.5

.NET Framework 2.0 + SP2

WPF WCF WF Windows CardSpace

.NET Framework 3.0 + SP2

.NET Framework 3.5

LINQ WF & WCF Melhorias

Add-in Framework

Melhorias Adicionais

ADO.NET Entity

Framework

ADO.NET Data Services

ASP.NET Dynamic Data

WPF & WCF Melhorias

Page 3: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

.NET 3.5 – O que há de novo?

ADO.NET Entity Framework Serviços de Dados no ADO.NET (Data Services) Dados Dinâmicos no ASP.NET (Dynamic Data) Roteamento ASP.NET (Router) Windows CardSpaces LinQ WCF WF WPF

Page 4: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

ADO.NET Entity Framework

Entity Data Model Define o modelo de sua aplicação Faz o mapeamento para o banco de dados Constitui três camadas:

Definição de Schema Conceitual (CSDL) Definição de Schema de Armazenamento ou Lógico (SSDL) Definição de Schema de Mapeamento (MSL)

Entity Framework Fornece serviços para usar com um EDM:

Object Services Entity Client Entity SQL LINQ To Entities

Link: http://www.macoratti.net/09/06/vb_iaef.htm

Page 5: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Serviços de Dados no ADO.NET (Data Services)

Publicação de dados através de WebServices adotando o padrão REST como interface

Expõe um modelo de objeto (não um banco de dados) através da Web: Entity Data Model LINQ To SQL model Custom IQueryable<T> provider

Poderoso e seguro Várias possibilidades de consumo Link: http://www.macoratti.net/09/02/adn_ds2.htm

ou http://www.devgoias.net/artigo_ler.aspx?ID=36

Page 6: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Dados Dinâmicos no ASP.NET (Dynamic Data)

Criação de telas automáticas de cadastro - scaffolding (Ruby on Rails) Operações CRUD 100% implementadas automaticamente Uso do AJAX

Baseado no modelo de objetos LINQ To SQL Entity Data Model

Estende seu modelo Metadata Validation

Modifique a UI base e adicione novos templates Adicione comportamentos dinâmicos à aplicações já

existentes Link:

http://imasters.uol.com.br/artigo/8964/aspnet/explorando_o_aspnet_35_dynamic_data_controls/

Page 7: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Roteamento ASP.NET

Define os pontos de entrada de URL da sua aplicação Státicos(/Produtos/Editar/23) Parametrizada (/Products/{action}/{id})

Mapeia essas URLS padronizadas para manipuladores de rotas

Gera URLs baseadas na sua tabela de roteamento Pode ser usado em vários níveis pelo ASP.NET…

WebForms MVC (usando) Dynamic Data (usando)

Link: http://msdn.microsoft.com/pt-br/magazine/dd347546.aspx

Page 8: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Windows CardSpaces (WCS)

Solução baseada em padrões para trabalhar e gerenciar várias identidades digitais

Usuário – Serviço ou Serviço – Serviço

Antigo “InfoCard” Link:

http://www.dei.unicap.br/~almir/seminarios/2006.2/ns06/MicrosoftFramework/cardspace.html

Page 9: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

WPF e SilverLigth

Entendendo MVVM Motivação e benefícios Desvantagens

Page 10: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

WPF

O WPF surgiu em meados de 2001, inicialmente conhecido por “Avalon”.

Flexibilidade da interface Funções da versão 2.0 (.net)

acrescentando 3D, animações, gráficos vetoriais, reconhecimento de voz

Usa os recursos do sistema operacional, de maneira a otimizar a performance

Page 11: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Silverligth

Mesmo padrão que o WPF Aplicação para a Web

Page 12: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

O Que é MVVM

É um padrão arquitetural criado por John Gossman para o WPF

Variação do padrão MVC É similar ao padrão

Presentation Model do Martin Fowler’s

Presentation Model

Page 13: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Motivação e benefícios

Clara separação entre designer e desenvolvedor

Modelo não precisa ser alterada para suportar as mudanças da camada de visão

ViewModel raramente precisa ser modificado para suportar as mudanças da visão

Page 14: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

MVVM

A View se comunica com a ViewModel

A ViewModel se comunica com a Model

Porém o Model não faz o sentido inverso

View ViewModel Model

Page 15: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Visão (View)

Representa a interface que o usuário verá

Pode ser o controle do usuário Pode conter qualquer lógica que

você deseja testar Manter a view o mais simples

possível

Page 16: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

VisãoModelo (ViewModel)

Uma abstração da visão Conector entre a visão e o modelo Mantém o ViewState Torna a ViewModel o mais testável

possível

Page 17: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Modelo (Model)

Pode ser um objeto simples ou objeto relacionado ao banco de dados.

Não se comunica com a camada ViewModel

Page 18: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Desvantagem

Pode ser um exagero para criação de aplicações simples

Page 19: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Workflow Foundation

1. Definição

2. BPM (Business Process Management)

3. Etapas BPM: 3.1. Design

3.2. Execução / Implantação 3.3. Gerenciamento / Monitoramento 3.4. Melhorias / Otimizações

Page 20: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Workflow Foundation

4. Tipos de Workflow: 4.1. Ordered Workflow 4.2. Event-Driven

5. Workflow Complexo 5.1. Interação entre sistemas

Page 21: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

WCF - Windows Communication Foundation

Introdução

Conceitos Básicos

Page 22: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

WCF - Windows Communication Foundation

EndPointAdress

Page 23: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

WCF - Windows Communication Foundation

Service EndPoint

Page 24: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

WCF - Windows Communication Foundation

Service Binding

Page 25: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

WCF - Windows Communication Foundation

Os Serviços do WCF expõe uma coleção de Endpoints, na qual cada Endpoint é um portal para

se comunicar com o mundo. Cada Endpoint tem um ABC (Address, Binding e Contract). O

Address é onde reside o Endpoint, a Binding é como o Endpoint se comunica e o Contract é o

que o Endpoint comunica.

No Service, uma ServiceDescription mantém a coleção de ServiceEndpoints, cada uma

descrevendo um Endpoint exposto pelo Service. A partir dessa descrição ServiceHost cria um

tempo de execução que contém um EndpointListener para cada ServiceEndpoint na

ServiceDescription. O endereço do Endpoint, a Binding e o Contract (representando onde, o que

e como), correspondem ao endereço de escuta do EndpointListener, filtragem e despacho de

mensagens e pilha de canal respectivamente.

Da mesma forma, no Client, uma ChannelDescription mantém o único ServiceEndpoint com o

qual o Client se comunica. Dessa ChannelDescription, ChannelFactory cria a pilha de canal que

pode se comunicar com o Endpoint do Service.

Page 26: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq – Como funciona? Várias Formas de usar LINQ Vantagens de usar LINQ

LINQ

Page 27: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

É um conjunto de recursos introduzidos no .NET Framework 3.5 que permitem a realização de consultas em:

base de dados

documentos XML

LINQ

Page 28: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

estrutura de dados

coleção de objetos

-usando uma sintaxe parecida com a linguagem SQL.

LINQ

Page 29: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq

Como funciona?

Page 30: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq – Como Funciona

A estrutura básica de uma consulta LINQ é a mesma se estiver trabalhando com datasets ADO.NET, bancos de dados SQL, coleções do .NET Framework ou documentos XML.

Page 31: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq – Como Funciona

A consulta começa com uma cláusula de From , que é seguida por cláusulas de consulta, como Where e Select.

Page 32: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq – Como funciona?

List<Bar> listaBares;

var baresEmLisboa = from bar in listaBareswhere bar.Localidade == “Lisboa”select bar.Nome;

Page 33: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq – Como funciona?

Page 34: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq

Existem várias formas de usar LINQ:

• LINQ to SQL • LINQ to XML • LINQ to Objects • LINQ to DataSet • LINQ to Entities

Page 35: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq SQL

É uma implementação específica do LINQ para o SQL Server que converte consultas escritas em C# ou Visual Basic em SQL dinâmico.

Page 36: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq SQL - OBJETIVO

Isso permite mapear os objetos do banco de dados gerando as classes para realizar as operações usando a sintaxe LINQ; também permite realizar alterações nos objetos e atualizar o banco de dados.

Page 37: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq DATASET

É usado para ligar dados a controles em um aplicativo.

Page 38: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq DATASET - Exemplo

Em vez de se conectar diretamente a um banco de dados, pode usar um DataSet para criar um cache off-line de dados, que pode incluir subconjuntos de várias fontes de dados, para ser usado com um aplicativo.

Page 39: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq DATASET - Exemplo

Quando o aplicativo for colocado on-line, o banco de dados pode ser atualizado com as alterações na DataSet.

Page 40: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq DATASET - Vantagens

A consulta sobre dados armazenados em cache fica mais rápida e mais fácil.

Page 41: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq XML

LINQ to XML permite criar e modificar documentos XML facilmente usando expressões de consulta LINQ em vez de precisar aprender XPath ou XQuery.

Page 42: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq Obejtos

O termo " LINQ a objetos " refere-se ao uso de consultas de LINQ com qualquer coleção diretamente, sem o uso de um provedor de intermediário LINQ ou uma API como Linq to SQL ou Linq to XML.Pode ser usado LINQ para consultar qualquer coleções enumeráveis.

Page 43: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq Entities

O recurso LINQ To Entities permite que o desenvolvedor escreva consultas contra um banco de dados a partir da mesma linguagem usada para construir a lógica de negócio.

Page 44: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Linq Entities

O LINQ To SQL esta restrito ao SQL Server, já o LINQ To Entities é mais flexível e pode ser usado com qualquer banco de dados relacional (como já faz hoje o Hibernate).

O LINQ To SQL pode ser visto como um subconjunto do LINQ to Entities.

Page 45: Equipe: Arthur Accioly Alysson Melo Amarildo Filho Amarildo Pai Arthur Coutinho Rafael Portela

Vantagens do LINQ

-Sintaxe familiar para escrever consultas ;-Verificação em tempo de compilação de erros de sintaxe e segurança de tipo ;-Capacidade para trabalhar diretamente com elementos XML;-Poderosas capacidades de filtragem, classificação e agrupamento; -Modelo consistente para trabalhar com dados em vários tipos de fontes de dados e formatos;