07/08/2014
Apresentações
• Eu
TECNOLOGIA DE
PROGRAMAÇÃO II
–
–
–
–
Técnico em Eletrônica (CEFET‐RS, 2000)
Graduado em Sistemas de Informação (UNERJ, 2005)
Pós‐graduado em Engenharia de Software (PUC‐PR, 2008)
Mestrado em Informática (PUCPR, 2012)
• Vocês
Capítulo I – Introdução
Prof. Msc. Cleiton Garcia
<cleitonsg@catolicasc.org.br>
Bacharelado em Sistemas de Informação
–
–
–
–
–
Nome? Idade?
Experiência profissional?
Qual posição pretende na área de TI?
Linguagens em que programam? A quanto tempo?
Qual a expectativa de vocês com a nossa disciplina?
07/08/2014
Referências bibliografia
•
•
•
•
•
•
•
•
•
Prof. Msc. Cleiton Garcia
2
Referências bibliográficas
LOTAR, Alfredo. Como programar com ASP.NET MVC. São Paulo: Novatec, 2012.
FREEMAN, Adam. Pro ASP.NET MVC 4. New Yourk: APRESS, 2013
GALLOWAY, Jon; HAACK, Phil; WILSON, Brad; ALLEN, K. Scott. Professional
ASP.NET MVC 4. Indianapolis: John Wiley & Sons, Inc.
SHEPHERD, George. Microsoft® ASP.NET 3.5: passo a passo. Porto Alegre:
Bookman, 2009.
AHAMADA, Mesabaha. ASP.NET: guia do desenvolvedor web. 2. ed. Rio de
Janeiro: Alta Books, c2006.
EVJEN, Bill. Professional ASP.NET 2.0. Indianapolis: Wiley Computer Publishing,
2006.
LOTAR, Alfredo. Como programar com ASP.NET e C#. 2. ed., rev. e atual. São
Paulo: Novatec, 2012.
http://www.k19.com.br/downloads/apostilas/dotnet/k19‐k32‐
desenvolvimento‐web‐com‐aspnet‐mvc
http://www.asp.net/mvc/tutorials
07/08/2014
Prof. Msc. Cleiton Garcia
3
Prof. Msc. Cleiton Garcia
4
• Quem faz os exercícios, seminários, projeto
logicamente terá:
• PE
– Maior probabilidade de aprovação
– Maior médias nas avaliações
– Maior conhecimento teórico e prático para as
avaliações então não são apenas 3 pontos
• Carga horária:
– Presencial : 72 horas (aula 50 min.)
Prof. Msc. Cleiton Garcia
07/08/2014
Pré‐requisitos da
disciplina de
Tecnologia de
programação I
Avaliação e o peso dos trabalhos
Plano de Ensino
07/08/2014
5
07/08/2014
Prof. Msc. Cleiton Garcia
6
1
07/08/2014
Avaliação
Seminário – Pontos de avaliação
• Avaliações 3 avaliações: Peso 10 cada
– Avaliação 1:
• Prova 1 25/09/2014 (peso 7)
• Seminário (peso 3)
– Avaliação 2:
• Prova 2 30/10/2014 (peso 7)
• Projeto parte1 (peso 3)
– Avaliação 3:
• Prova 3 27/11/2014 (peso 7)
• projeto parte 2 (peso 3)
– N‐1 ‐ 04/12/2014: Irá substituir uma das 3 avaliações
(prova + trabalhos) com menor peso
07/08/2014
Prof. Msc. Cleiton Garcia
7
• 1‐Clareza e coerência e Domínio do
conhecimento na exposição
• 2‐Sintese, Aproveitamento do tempo,
Participação do grupo durante a exposição
• 3‐Qualidade (principalmente do artigo)
• 4‐Conclusões e críticas ao assunto / teoria‐
prática / complexidade da prática
• 5‐Questionamentos
07/08/2014
07/08/2014
Prof. Msc. Cleiton Garcia
9
• No mínimo 8 entidades com no mínimo 6 relacionamentos referente ao
domínio da aplicação (sem contar requisitos não funcionais);
• Layout visual personalizado pela equipe;
• Tradução das duas principais telas do sistema apresentando as
informações em inglês e português;
• Validações de entrada de dados. Todos os campos necessário para que o
usuário não veja a tela padrão de erro do ASP.NET;
• Utilizar em uma tela o Chart e/ou WebGrid ou WebMail (ou jqueryui)
• Duas funcionalidades aplicando o Helper Ajax;
• Projeto com testes automatizados de pelo menos 5 classes com métodos
de negócio com cobertura de pelo menos 90% do código;
• Implementação da camada de segurança autenticação e autorização
(integração com provedores externos de segurança como google ou redes
sociais).
07/08/2014
Projeto ‐ Sugestão de assunto
1.
2.
3.
4.
5.
6.
7.
Planejamento de projetos clássico
Planejamento de projetos ágil
Gestão de riscos e problemas
Gestão de requisitos
Ferramenta de estimativa de software
Gestão de incidentes
Gestão de conhecimento e talentos
07/08/2014
Prof. Msc. Cleiton Garcia
8
Projeto – Pontos de avaliações
Seminário – Sugestão de assuntos
1. MVC, MVP e MVVM (Page e 8. Lucene.NET
Front controller)
9. T4MVC
2. Themes, Skins & Master
10. C# Dynamics
Pages
11. Scaffolding
3. jQuery e Integração com
12. Desenv. p/ Window Phone
jquery com exemplos
13. Padrões como: Dao,
práticos
command, Intercepting Filter
4. Silverlight e Expression Blend
e Observer
5. Razor
14. RavenDB ou Brightstardb ou
6. Web API
KitaroDB
7. Injeção de dependência
Ninject
Prof. Msc. Cleiton Garcia
Prof. Msc. Cleiton Garcia
10
Pesquisa
• http://www.unerj.br/pesquisa/index.php
– PROINPES
– CNPQ
11
07/08/2014
Prof. Msc. Cleiton Garcia
12
2
07/08/2014
Tiobe Programming community index
Object‐Oriented Languages
Procedural Languages
Functional
07/08/2014Languages
Logical Languages
57,1%
37,0%
Prof.3,4%
Msc. Cleiton Garcia
2,5%
+1,7%
‐3,0%
+0,1%
+1,1%
1C
2Java
3Objective‐C
4C++
5PHP
6C#
7(Visual) Basic
8Python
9Perl
10JavaScript
11Ruby
12Transact‐SQL
13Visual Basic .NET
14PL/SQL
15Lisp
16Pascal
17Delphi
18MATLAB
19Bash
13
20Assembly
17,6%
15,9%
10,2%
8,7%
7,2%
6,2%
4,3%
4,0%
2,1%
1,8%
1,5%
1,5%
1,3%
0,9%
0,8%
0,8%
0,7%
0,7%
0,6%
0,6%
O Padrão Model View Controller
• Técnica para separar dados ou lógica de
negócios (Model) da interface do usuário
(View) e do fluxo da aplicação (Control)
Exibida
Model
Usa
07/08/2014
Model
Prof. Msc. Cleiton Garcia
15
Prof. Msc. Cleiton Garcia
14
• Também chamado de visão.
07/08/2014
Prof. Msc. Cleiton Garcia
16
O que é ASP.NET MVC?
• Controller recebe as requisições do usuário e faz o
tratamento
• Comanda o fluxo da apresentação das informações
fazendo a intermediação entre as camadas View e
Model.
• Permite realizar escolha da apresentação em função da:
– Informações enviadas na requisição do usuário;
– Dados a serem apresentados;
– Informações do usuário (permissões de acesso ou linguagem)
• Framework que implementa o padrão MVC
• MVC é um padrão arquitetural
e o ASP.NET MVC é a
Model
implementação da Microsoft
Consulta
o estado
View
• Chamado de Controlador.
Prof. Msc. Cleiton Garcia
Manipula
• Implementa o design da aplicação.
• Responsável pela interação com o usuário e
por apresentar as diversas visões dos dados
do modelo de domínio.
• Não se preocupa em como os dados foram
obtidos, apenas em apresentá‐los.
Controller
07/08/2014
Controller
View
• Model contém o código da camada de dados
• Os objetos desta camada são os dados e as regras do
negócio que ditam como acessar e modificar os
dados de maneira consistente.
• Encapsula os dados e os comportamentos do
negócio e persiste os mesmos sem se preocupar em
como serão mostrados.
• Alguns autores preferem o termo modelo do
domínio, pois nem todos os sistemas são comerciais.
Exemplo: simulador de oleodutos as regras não são
de negócio, são leis da física.
07/08/2014
Atualiza
View
17
07/08/2014
Manipula
Controler
Atualiza
apresentação18
Prof. Msc. Cleiton Garcia
Requisição do navegador
18
3
07/08/2014
ASP.NET Web Forms
• Agradável aos desenvolvedores de Windows
Forms, pois é o mesmo padrão utilizado para
desktop
• Padrão maduro com mais de 10 anos de
mercado
• Vasta variedade de controles
• Requer pouco conhecimento sobre
desenvolvimento web
07/08/2014
Prof. Msc. Cleiton Garcia
19
07/08/2014
ASP.NET WEB FORMS
Prof. Msc. Cleiton Garcia
21
• Padrão arquitetural com:
– Responsabilidades e conceitos bem definidos
– Maior coesão
– Maior clareza
– Facilidade no desenvolvimento
• Tudo é testável (TDD)
• Controle sobre o HTML
07/08/2014
Histórico
•
•
•
•
•
•
•
•
•
•
Prof. Msc. Cleiton Garcia
Prof. Msc. Cleiton Garcia
22
Instalar ASP.NET MVC
1996 ASP
2002 ASP.NET Web Forms 1.0
2003 ASP.NET Web Forms 1.1
2005 ASP.NET Web Forms 2.0
2007 ASP.NET AJAX
2008 ASP.NET Web Forms 3.5
2009 ASP.NET MVC 1.0
2010 ASP.NET MVC 2.0 e Web Forms 4.0
2011 ASP.NET MVC 3.0
2012 ASP.NET MVC 4.0 e Web Forms 4.5
07/08/2014
20
ASP.NET MVC
• Problemas
– Pouca formalização na separação de lógica de domínio
e a user interface
– Ciclo de vida muito complexo
– Páginas grandes com alto tráfego na rede
– Baixo controle do código HTML enviado ao browser
– Difícil de trabalhar com ajax (MS Ajax não é muito
agradável)
– Web server processa os controles dedicando
ocupando CPU do servidor com a user interface
– Dificuldade em testar
07/08/2014
Prof. Msc. Cleiton Garcia
23
• Instalar SP1 do Visual Studio 2010
• ASP.NET MVC3 with Tools
– http://go.microsoft.com/fwlink/?LinkID=215693
• ASP.NET MVC 4 for Visual Studio 2010 SP1
– http://www.microsoft.com/en‐
us/download/confirmation.aspx?id=30683
07/08/2014
Prof. Msc. Cleiton Garcia
24
4
07/08/2014
Dicas de migração para o ASP.NET MVC
• Quando deve‐se continuar com o ASP.NET
WebForms?
– Quando o projeto já está nesta tecnologia e é
necessário uma melhoria ou extensão.
– Quando quiser desenvolver algo rapidamente com
o clicar e arrastar.
– Não se possui um web designer ou profissional
que irá desenvolver as páginas controlando o
HTML das user interfaces.
07/08/2014
Prof. Msc. Cleiton Garcia
25
Template de Projeto ASP.NET MVC
• App_data: local de repositórios de dados como:
bancos de dados ou arquivos xml
• Content: arquivos estáticos como imagens e CSS.
• Controller: Classes controladoras que recebem as
requisições do usuário
• Models: Contém as entidades que manipulam as
informações e realizam regras de negócio
• Scripts: Arquivos JavaScript em geral (.js)
• Views: Responsável pela exibição das interfaces do
usuário, como: .aspx, .ascx, .master, .cshtml
07/08/2014
O que há de novo?
• Dynamic ViewModel
– Uma forma de criar as views (View engine)
– Criado para facilitar o trabalho com as views
– Transição transparente de HTML para server side
– Simplesmente use o “@”, ao invés de <% %>
– Possibilidade executar o código da view antes de
carregar
• Facilitar o uso com:
– Helpers que produzem código HTML
– Functions métodos sem saída HTML
Prof. Msc. Cleiton Garcia
– Facilidade no uso do ViewData
– Utiliza programação dinâmica (.NET 4)
– Funciona no lado do controller e view
– Código mais legível
• Validações
– Compare
– Remote
• IoC e Ninject
27
07/08/2014
O que há de novo?
Prof. Msc. Cleiton Garcia
Prof. Msc. Cleiton Garcia
28
O que há de novo?
• WebHelpers
– Facilitar o reaproveitamento do trabalho
– Facilita atividades como: Envio de emails; Exibição
de gráficos; Manipulação de dados em tabelas
(grids); Criptografia; Json
• Global Filters
– Filtros definidos para controllers
– Consegue‐se interceptar as actions
– Permite a execução de atividades em momentos
chaves
– DRY ‐ Don't Repeat Yourself
07/08/2014
26
O que há de novo?
• Razor
07/08/2014
Prof. Msc. Cleiton Garcia
29
• IDependencyResolver
–
–
–
–
–
Forma simples de resolver dependências
Somente através de configuração
Facilita TDD
Responsabilidade bem separadas
Necessário apenas informar quem sabe resolver
• Sessionless controllers
– HTTP é stateless
– Este tipo ajuda a evitar o uso indevido de sessions
– Session não é: para passar parâmetros; Para usar como um bancos
de dados; Thread safe (cuidado com rotinas paralelas).
07/08/2014
Prof. Msc. Cleiton Garcia
30
5
07/08/2014
Prática
• Desenvolvendo uma nova aplicação
• Página 20 a 43.
07/08/2014
Prof. Msc. Cleiton Garcia
31
6