PROGRAMAÇÃO WEB AVANÇADO(ASP.NET)
M .SITOE
UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE
FACULDADE DE CIÊNCIAS E TECNOLOGIAS DE INFORMAÇÃO
CURSO: LDS, 3ºAno
Plano Temático
Objectivos
No final da cadeira o estudante deverá ser capaz de:
• Trabalhar no ambiente de desenvolvimento Visual Studio;
• Adicionar componentes padrão, componentes personalizados e Web Parts a qualquer página;
• Usar Master Pages, temas e skins para construir uma interface com o utilizador consistente;
• Gerir o acesso à aplicação;
• Utilizar o caché para ajudar a melhorar o desempenho da aplicação;
• Rastrear e depurar aplicações;
• Configurar e gerir o estado da sessão;
• Criar e usar web services;
• Compilar e implementar aplicações.
Plano Temático
CONTEÚDO PROGRAMÁTICO:
• Noções básicas de aplicações Web;
• Fundamentos de ASP.NET;
• Controlos personalizados;
• Controlos compostos;
• Web Parts;
• Configuração;
• Logging in;
• Databinding;
Plano Temático
• Personalização;
• Estado da sessão;
• Caché de Saída;
• Diagnóstico e depuração;
• A aplicação e módulos HTTP;
• Web Services;
• Gestão e implementação de
aplicações Web.
Plano Temático
METODOLOGIA:
A disciplina de PWA compreenderá como uma componente teórica e uma
prática laboratorial.
As aulas serão de caráter participativo.
◦ Metodologias participativas com análise e discussão de exercícios dedicados.
◦ Auto-estudo, relacionado com o trabalho autónomo do aluno.
Plano Temático
BIBLIOGRAFIA ELEMENTAR:
1. SHEPHERD, George (2005), “Microsoft ASP.NET 2.0 Step By Step”, Washington,
Microsoft Press;
2. ESPOSITO, Dino (2005), “Programming Microsoft ASPT 2.0 Core Reference”,
Washington, Microsoft Press;
3. SHARP, John (2005), “Microsoft Visual C# 2005 Step by Step”, Washington, Microsoft
Press;
4. MARSHALL, Donis (2005), “Programming Microsoft Visual C# 2005 The Language”,
Washington, Microsoft Press.
ASP.NET VISÃO GERAL
ASP. NET
ASP.NET é a plataforma da Microsoft para o desenvolvimento de aplicações Web e
é o sucessor da tecnologia ASP.
Permite, através de uma linguagem de programação integrada na .NET Framework,
criar páginas dinâmicas. Não é nem uma linguagem de programação como VBScript,
PHP, nem um servidor web como IIS ou Apache.
O ASP.NET é baseado no Framework .NET herdando todas as suas características,
por isso, como qualquer aplicação .NET, as aplicações para essa plataforma podem
ser escritas em várias linguagens, como C#, F# e Visual Basic.NET.
ASP. NET
• Programming Models:
• ASP.NET 4.x:
• Web Pages
• Web Forms
• ASP.NET 4.x and
ASP.NET Core:
• MVC
• Web API
• ASP.NET Core
• Razor Pages
ASP. NET Core
O ASP.NET Core é uma estrutura de software livre, multiplataforma, para a criação de
aplicativos Web modernos e baseados em nuvem, no Windows, no macOS ou no Linux.
Comparação entre ASP.NET Core com o ASP.NET 4. x.
ASP.NET Core ASP.NET 4.x
Build para Windows, macOS ou Linux Build para Windows
Razor Páginas é a abordagem recomendada para criar uma
interface do usuário da Web a partir do ASP.NET Core 2. x.
Consulte também MVC, API da Web e SignalR .
Usar Web Forms, SignalR , MVC, API da Web, WebHooks ou
páginas da Web
Várias versões por computador Uma versão por computador
Desenvolva com o Visual Studio, Visual Studio para Mac ou
Visual Studio Code usando C# ou F#
Desenvolva com o Visual Studio usando C#, vb ou F #
Desempenho superior ao do ASP.NET 4.x Bom desempenho
Usar o runtime do .NET Core Use o runtime do .NET Framework
Web Pages
Code in .CHTML files
Controle preciso sobre os ficheiros
HTML
◦ E Outors Web Services
Web Forms
Code in .apsx files code-behind files (C# por exemplo)
Create a UI by dragging controles onto a page
Contorls provide rich propriets and events
Bind controls to data
MVC - Modelo Visualização Controle
Originalmente desenvolvida para mapear as tarefas tradicionais de entrada, processamento e
saída para o modelo de interação com o usuário.
➢modelo representa os dados da aplicação e as regras do negócio que governam o acesso e a
modificação dos dados. O modelo mantém o estado persistente do negócio e fornece ao
controlador a capacidade de aceder as funcionalidades da aplicação encapsuladas pelo
próprio modelo.
➢visualização renderiza o conteúdo de uma parte particular do modelo e encaminha para o
controlador as ações do usuário;
➢controlador define o comportamento da aplicação, é ele que interpreta as ações do usuário e
as mapeia para chamadas do modelo.
MVC - Modelo Visualização Controle
ASP.NET MVC
O ASP.NET MVC é um padrão de arquitetura que provê uma alternativa ao ASP.NET Web
Forms, para criação de aplicações Web baseadas no MVC (Model View Controller). O
Framework MVC é definido pelo namespace System.Web.Mvc.
Algumas aplicações Web podem se beneficiar do framework MVC, enquanto outras
podem continuar a usar o padrão tradicional ASP.NET, que é baseado em Web Forms e
postbacks. Nenhuma abordagem, seja MVC ou Web Forms, exclui a outra, podendo
inclusive serem utilizadas ao mesmo tempo.
.NET MVC
Vantagens:
• Como o modelo MVC gerencia múltiplos visualizadores usando o mesmo modelo é fácil
manter, testar e atualizar sistemas múltiplos;
• É muito simples incluir novos clientes apenas incluindo seus visualizadores e controles;
• Torna a aplicação escalável;
• É possível ter desenvolvimento em paralelo para o modelo, visualizador e controle, pois são
independentes;
• É mais fácil gerenciar a complexidade da aplicação dividindo-a em modelo, visualizador e
controlador (MVC);
Aulas práticas
Sistema Web com ASP .NET Core MVC e Entity Framework!
ASP. NET Core MVC e o acessso ao banco de dados MySQL com Entity Framework.
Iremos fazer um pequeno sistema de vendedores, seus departamentos e suas vendas.
Vamos aprender os fundamentos de desenvolvimento MVC com template engine Razor
com layout Bootstrap, vamos fazer operações de CRUD e pesquisas usando LINQ.
Requisitos:
◦ Expressões lambda, delegates e LINQ
◦ MySQL instalado(Developer Default)
Expressões lambda, delegates e
LINQ
Programaçao Funcional e cálculo Lambda
Paradigmas de programação
Imperativo (C, Pascal, Fortran, Cobol)
Orientado a objetos (C++, Object Pascal, Java (< 8), C# (< 3))
Funcional (Haskell, Closure, Clean, Erlang)
Lógico (Prolog)
Multiparadigma (JavaScript, Java (8+), C# (3+), Ruby, Python, Go)
Transparência referencial
Uma função possui transparência referencial se seu resultado for sempre o mesmo
para os mesmos dados de entrada. Benefícios: simplicidade e previsibilidade.
public static int globalValue = 3;
static void Main(string[] args) {
int[] vect = new int[] { 3, 4, 5 };
ChangeOddValues(vect);
Console.WriteLine(string.Join(" ", vect));
}
public static void ChangeOddValues(int[] numbers) {
for (int i = 0; i < numbers.Length; i++) {
if (numbers[i] % 2 != 0) {
numbers[i] += globalValue;
}
}
}
Transparência referencial
Uma função possui transparência referencial se seu resultado for sempre o
mesmo para os mesmos dados de entrada. Benefícios: simplicidade e
previsibilidade.
public static int[] changeOddValues(int[] numbers, int increment) {
int[] result = new int[numbers.Length];
for (int i = 0; i < numbers.Length; i++) {
result[i] = (numbers[i] % 2 != 0) ? numbers[i] + increment :
numbers[i];
}
return result;
}
Funções são objetos de primeira ordem (ou primeira
classe)
Isso significa que funções podem, por exemplo, serem passadas como
parâmetros de métodos, bem como retornadas como resultado de
métodos.
Class Program {
static int CompareProducts(Product p1, Product p2) {
return p1.Name.ToUpper().CompareTo(p2.Name.ToUpper());
}
static void Main(string[] args) {
List<Product> list = new List<Product>();
list.Add(new Product("TV", 900.00));
list.Add(new Product("Notebook", 1200.00));
list.Add(new Product("Tablet", 450.00));
list.Sort(CompareProducts);
(...)
Inferência de tipos
List<Product> list = new List<Product>();
list.Add(new Product("TV", 900.00));
list.Add(new Product("Notebook", 1200.00));
list.Add(new Product("Tablet", 450.00));
list.Sort((p1,p2) =>
p1.Name.ToUpper().CompareTo(p2.Name.ToUpper()));
foreach (Product p in list) {
Console.WriteLine(p);
}
Expressividade / "como" vs. "o quê"
int sum = 0;
foreach (int x in list) {
sum += x;
}
VS
int sum = list.Aggregate(0, (x, y) => x +
y);
O que são "expressões lambda"?
Cálculo Lambda = formalismo matemático base da programação
funcional
Expressão lambda = função anônima de primeira classe.
O que são "expressões lambda"?
Em programação funcional, expressão lambda corresponde a uma função
anônima de primeira classe.
class Program {
static int CompareProducts(Product p1, Product p2) {
return p1.Name.ToUpper().CompareTo(p2.Name.ToUpper());
}
static void Main(string[] args) {
(...)
list.Sort(CompareProducts);
list.Sort((p1, p2) => p1.Name.ToUpper().CompareTo(p2.Name.ToUpper()));
(...)

Aula 1 ASP.NET Core com arquitetura MVC

  • 1.
    PROGRAMAÇÃO WEB AVANÇADO(ASP.NET) M.SITOE UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE FACULDADE DE CIÊNCIAS E TECNOLOGIAS DE INFORMAÇÃO CURSO: LDS, 3ºAno
  • 2.
    Plano Temático Objectivos No finalda cadeira o estudante deverá ser capaz de: • Trabalhar no ambiente de desenvolvimento Visual Studio; • Adicionar componentes padrão, componentes personalizados e Web Parts a qualquer página; • Usar Master Pages, temas e skins para construir uma interface com o utilizador consistente; • Gerir o acesso à aplicação; • Utilizar o caché para ajudar a melhorar o desempenho da aplicação; • Rastrear e depurar aplicações; • Configurar e gerir o estado da sessão; • Criar e usar web services; • Compilar e implementar aplicações.
  • 3.
    Plano Temático CONTEÚDO PROGRAMÁTICO: •Noções básicas de aplicações Web; • Fundamentos de ASP.NET; • Controlos personalizados; • Controlos compostos; • Web Parts; • Configuração; • Logging in; • Databinding;
  • 4.
    Plano Temático • Personalização; •Estado da sessão; • Caché de Saída; • Diagnóstico e depuração; • A aplicação e módulos HTTP; • Web Services; • Gestão e implementação de aplicações Web.
  • 5.
    Plano Temático METODOLOGIA: A disciplinade PWA compreenderá como uma componente teórica e uma prática laboratorial. As aulas serão de caráter participativo. ◦ Metodologias participativas com análise e discussão de exercícios dedicados. ◦ Auto-estudo, relacionado com o trabalho autónomo do aluno.
  • 6.
    Plano Temático BIBLIOGRAFIA ELEMENTAR: 1.SHEPHERD, George (2005), “Microsoft ASP.NET 2.0 Step By Step”, Washington, Microsoft Press; 2. ESPOSITO, Dino (2005), “Programming Microsoft ASPT 2.0 Core Reference”, Washington, Microsoft Press; 3. SHARP, John (2005), “Microsoft Visual C# 2005 Step by Step”, Washington, Microsoft Press; 4. MARSHALL, Donis (2005), “Programming Microsoft Visual C# 2005 The Language”, Washington, Microsoft Press.
  • 7.
  • 8.
    ASP. NET ASP.NET éa plataforma da Microsoft para o desenvolvimento de aplicações Web e é o sucessor da tecnologia ASP. Permite, através de uma linguagem de programação integrada na .NET Framework, criar páginas dinâmicas. Não é nem uma linguagem de programação como VBScript, PHP, nem um servidor web como IIS ou Apache. O ASP.NET é baseado no Framework .NET herdando todas as suas características, por isso, como qualquer aplicação .NET, as aplicações para essa plataforma podem ser escritas em várias linguagens, como C#, F# e Visual Basic.NET.
  • 9.
    ASP. NET • ProgrammingModels: • ASP.NET 4.x: • Web Pages • Web Forms • ASP.NET 4.x and ASP.NET Core: • MVC • Web API • ASP.NET Core • Razor Pages
  • 10.
    ASP. NET Core OASP.NET Core é uma estrutura de software livre, multiplataforma, para a criação de aplicativos Web modernos e baseados em nuvem, no Windows, no macOS ou no Linux. Comparação entre ASP.NET Core com o ASP.NET 4. x. ASP.NET Core ASP.NET 4.x Build para Windows, macOS ou Linux Build para Windows Razor Páginas é a abordagem recomendada para criar uma interface do usuário da Web a partir do ASP.NET Core 2. x. Consulte também MVC, API da Web e SignalR . Usar Web Forms, SignalR , MVC, API da Web, WebHooks ou páginas da Web Várias versões por computador Uma versão por computador Desenvolva com o Visual Studio, Visual Studio para Mac ou Visual Studio Code usando C# ou F# Desenvolva com o Visual Studio usando C#, vb ou F # Desempenho superior ao do ASP.NET 4.x Bom desempenho Usar o runtime do .NET Core Use o runtime do .NET Framework
  • 11.
    Web Pages Code in.CHTML files Controle preciso sobre os ficheiros HTML ◦ E Outors Web Services
  • 12.
    Web Forms Code in.apsx files code-behind files (C# por exemplo) Create a UI by dragging controles onto a page Contorls provide rich propriets and events Bind controls to data
  • 13.
    MVC - ModeloVisualização Controle Originalmente desenvolvida para mapear as tarefas tradicionais de entrada, processamento e saída para o modelo de interação com o usuário. ➢modelo representa os dados da aplicação e as regras do negócio que governam o acesso e a modificação dos dados. O modelo mantém o estado persistente do negócio e fornece ao controlador a capacidade de aceder as funcionalidades da aplicação encapsuladas pelo próprio modelo. ➢visualização renderiza o conteúdo de uma parte particular do modelo e encaminha para o controlador as ações do usuário; ➢controlador define o comportamento da aplicação, é ele que interpreta as ações do usuário e as mapeia para chamadas do modelo.
  • 14.
    MVC - ModeloVisualização Controle
  • 15.
    ASP.NET MVC O ASP.NETMVC é um padrão de arquitetura que provê uma alternativa ao ASP.NET Web Forms, para criação de aplicações Web baseadas no MVC (Model View Controller). O Framework MVC é definido pelo namespace System.Web.Mvc. Algumas aplicações Web podem se beneficiar do framework MVC, enquanto outras podem continuar a usar o padrão tradicional ASP.NET, que é baseado em Web Forms e postbacks. Nenhuma abordagem, seja MVC ou Web Forms, exclui a outra, podendo inclusive serem utilizadas ao mesmo tempo.
  • 16.
    .NET MVC Vantagens: • Comoo modelo MVC gerencia múltiplos visualizadores usando o mesmo modelo é fácil manter, testar e atualizar sistemas múltiplos; • É muito simples incluir novos clientes apenas incluindo seus visualizadores e controles; • Torna a aplicação escalável; • É possível ter desenvolvimento em paralelo para o modelo, visualizador e controle, pois são independentes; • É mais fácil gerenciar a complexidade da aplicação dividindo-a em modelo, visualizador e controlador (MVC);
  • 17.
    Aulas práticas Sistema Webcom ASP .NET Core MVC e Entity Framework! ASP. NET Core MVC e o acessso ao banco de dados MySQL com Entity Framework. Iremos fazer um pequeno sistema de vendedores, seus departamentos e suas vendas. Vamos aprender os fundamentos de desenvolvimento MVC com template engine Razor com layout Bootstrap, vamos fazer operações de CRUD e pesquisas usando LINQ. Requisitos: ◦ Expressões lambda, delegates e LINQ ◦ MySQL instalado(Developer Default)
  • 18.
  • 19.
    Programaçao Funcional ecálculo Lambda Paradigmas de programação Imperativo (C, Pascal, Fortran, Cobol) Orientado a objetos (C++, Object Pascal, Java (< 8), C# (< 3)) Funcional (Haskell, Closure, Clean, Erlang) Lógico (Prolog) Multiparadigma (JavaScript, Java (8+), C# (3+), Ruby, Python, Go)
  • 20.
    Transparência referencial Uma funçãopossui transparência referencial se seu resultado for sempre o mesmo para os mesmos dados de entrada. Benefícios: simplicidade e previsibilidade. public static int globalValue = 3; static void Main(string[] args) { int[] vect = new int[] { 3, 4, 5 }; ChangeOddValues(vect); Console.WriteLine(string.Join(" ", vect)); } public static void ChangeOddValues(int[] numbers) { for (int i = 0; i < numbers.Length; i++) { if (numbers[i] % 2 != 0) { numbers[i] += globalValue; } } }
  • 21.
    Transparência referencial Uma funçãopossui transparência referencial se seu resultado for sempre o mesmo para os mesmos dados de entrada. Benefícios: simplicidade e previsibilidade. public static int[] changeOddValues(int[] numbers, int increment) { int[] result = new int[numbers.Length]; for (int i = 0; i < numbers.Length; i++) { result[i] = (numbers[i] % 2 != 0) ? numbers[i] + increment : numbers[i]; } return result; }
  • 22.
    Funções são objetosde primeira ordem (ou primeira classe) Isso significa que funções podem, por exemplo, serem passadas como parâmetros de métodos, bem como retornadas como resultado de métodos. Class Program { static int CompareProducts(Product p1, Product p2) { return p1.Name.ToUpper().CompareTo(p2.Name.ToUpper()); } static void Main(string[] args) { List<Product> list = new List<Product>(); list.Add(new Product("TV", 900.00)); list.Add(new Product("Notebook", 1200.00)); list.Add(new Product("Tablet", 450.00)); list.Sort(CompareProducts); (...)
  • 23.
    Inferência de tipos List<Product>list = new List<Product>(); list.Add(new Product("TV", 900.00)); list.Add(new Product("Notebook", 1200.00)); list.Add(new Product("Tablet", 450.00)); list.Sort((p1,p2) => p1.Name.ToUpper().CompareTo(p2.Name.ToUpper())); foreach (Product p in list) { Console.WriteLine(p); }
  • 24.
    Expressividade / "como"vs. "o quê" int sum = 0; foreach (int x in list) { sum += x; } VS int sum = list.Aggregate(0, (x, y) => x + y);
  • 25.
    O que são"expressões lambda"? Cálculo Lambda = formalismo matemático base da programação funcional Expressão lambda = função anônima de primeira classe.
  • 26.
    O que são"expressões lambda"? Em programação funcional, expressão lambda corresponde a uma função anônima de primeira classe. class Program { static int CompareProducts(Product p1, Product p2) { return p1.Name.ToUpper().CompareTo(p2.Name.ToUpper()); } static void Main(string[] args) { (...) list.Sort(CompareProducts); list.Sort((p1, p2) => p1.Name.ToUpper().CompareTo(p2.Name.ToUpper())); (...)