ASP.NET MVC. View Engine: linguagem usada para gerar código HTML. Duas opções: Razor View Engine ou ASPX View Engine. Selecionar Razor.
|
|
- Pedro di Azevedo Lopes
- 8 Há anos
- Visualizações:
Transcrição
1 ASP.NET MVC ASP.NET MVC é um framework para desenvolvimento de aplicações web que usa os padrões MVC (Model View Controller) e Convention over Configuration. O padrão MVC aplicado a aplicações web conduz a uma separação de responsabilidades. Esta separação explícita de responsabilidades adiciona uma pequena quantidade de complexidade extra ao projecto de uma aplicação, mas os benefícios compensam o esforço extra. Modelos: são classes que representam o domínio. Os objectos do domínio encapsulam os dados armazenados numa base de dados assim como o código usado para manipular esses dados e para aplicar lógica de negócio específica do domínio. Incluiem a camada de acesso a dados (Data Access Layer DAL) podendo usar uma ferramenta como Entity Framework. Vistas: são templates para gerar dinamicamente HTML. Controladores: classes que respondem às interacções do utilizador, acedem ao Modelo e decidem que Vista usar. Em Asp.Net estas classes têm o sufixo Controller. O framework ASP NET MVC usa convenções em vez de configurações (Convention over Configuration), o que permite fazer assunções baseadas nos nomes dos diretórios. O uso de convenções reduz a quantidade de código que é necessário escrever, e também facilita a compreensão do projecto por outros desenvolvedores. Construção de uma aplicação ASP.NET MVC4 File > New Project > Visual C#, Web, ASP.NET MVC4 Web Application Name: MvcApplication1 Project Template: Internet Application contém o princípio de uma aplicação Web MVC, incluindo funções de gestão de contas (que correm no sistema Membership Asp.Net). É possível correr a aplicação logo após ser criada. View Engine: linguagem usada para gerar código HTML. Duas opções: Razor View Engine ou ASPX View Engine. Selecionar Razor. Os projectos Asp.Net MVC criados com o template Internet Application apresentam 9 directórios top level: /Controllers para colocar classes Controller que tratam os pedidos. /Models para colocar classes que representam e manipulam os dados e objectos de negócio. /Views para colocar ficheiros template responsáveis por gerar output, tal como HTML. /Scripts para colocar ficheiros JavaScript.
2 /Images para colocar imagens usadas no site. /Content para colocar código CSS e outro conteúdo do site sem ser scripts e imagens. /Filters para colocar código de filtros. /App_Data para colocar ficheiros de bases de dados para leitura e escrita. /App_Start para colocar ficheiros de configuração para Routing, Bundling, e API Web. É possível mudar esta estrutura, por exemplo colocar as classes do modelo num projecto class library separado. Contudo esta estrutura do projecto corresponde à convenção dos directórios por omissão. O directório /Controllers contém 2 classes Controller: HomeController e AccountController. O directório /Views contém 3 subdirectórios: Home, Account, e Shared. Os directórios /Content e /Script contêm um ficheiro Site.css e bibliotecas JavaScript jquery. 1. Controladores Os controladores respondem aos pedidos HTTP e retornam informação para o browser. Recebem os dados de entrada, muitas vezes efectuam mudanças no modelo e fornecem dados para a vista. São responsáveis pelo fluxo da aplicação. Nos frameworks Web tradicionais um URL era mapeado num ficheiro do disco do servidor web. Por exemplo um pedido feito com o URL /Produtos.aspx ou /Produtos.php é processado pelos ficheiros Produtos.aspx ou Produtos.php. Em MVC o mecanismo de routing mapeia um URL num método de uma classe Controller. O mecanismo de routing decide que classe Controller instanciar, que método de acção invocar, e fornece os argumentos necessários a esse método. O método de acção do controlador decide que vista usar e a vista gera o HTML. Asp.Net MVC implementa a variante Front Controller do padrão MVC. Analisemos o que está incluído no projecto criado usando o template Internet Application. 2 Controladores, subclasses da classe Controller: HomeController responsável pelas home page, about page e contact page na raiz do website. AccountController responsável por login e registo. F5 Start Debugging
3 HomeController O método Index é responsável pela home page: Colocar no IE o endereço ou ou Criar um novo Controlador Controllers > Add > Controller > StoreController Empty MVC Controller O Controlador já tem um método Index. Suponhámos que o método Index será para listar os itens, vamos acrescentar mais 2 métodos: Browse para pesquisar itens e Details para mostrar os detalhes de um item. Estes métodos dentro do controlador são chamados métodos de Acção têm a responsabilidade de responder aos pedidos, realizar as acções apropriadas e retornar a resposta para o browser. 1. Mudar a assinatura do método Index() para retornar uma string public string Index() return "Olá de Store/Index()"; 2. Adicionar métodos de acção para Browse e Details. // GET: /Store/ public string Index() return "Olá de Store/Index()"; // GET: /Store/Browse public string Browse() return "Olá de Store/Browse()"; // GET: /Store/Details public string Details() return "Olá de Store/Details()"; 3. Correr o projecto. Não usámos modelos nem vistas
4 4. Parâmetros nos Action Methods de um Controlador Vamos modificar o método de acção Browse() para receber um valor de uma query string // GET: /Store/Browse?genero=Disco public string Browse(string genero) return ("Olá de Store/Browse(), Género = " + genero; Testar: Vamos modificar o método de acção Details() para receber um parâmetro com o nome ID do tipo inteiro. // GET: /Store/Details/5 public string Details(int id) return "Olá de Store/Details(), ID = " + id; Testar: dá erro. É como se o browser invocasse directamente métodos no Controlador. Modificar o método de acção Details() colocando um valor por omissão para o parâmetro com o nome ID. // GET: /Store/Details/5 public string Details(int id = 0) return "Olá de Store/Details(), ID = " + id; Testar: já não dá erro.
5 2. Vistas A primeira impressão que um utilizador tem de uma Aplicação Web depende da vista e toda a interacção com a aplicação é realizada através de vistas. Os controladores e os modelos são muito importantes mas esse trabalho não é visível. Já vimos como um controlador poderia retornar uma string, mas a maior parte das acções dos controladores necessitam de mostrar informação dinâmica no formato HTML. A vista é responsável por construir a interface com o utilizador (UI). Recebe o modelo (a informação que o controlador necessita de mostrar) e a vista transforma esse modelo num formato próprio para ser apresentado ao utilizador. As vistas não são directamente acessíveis pelo browser. Uma vista é sempre invocada pelo controlador que lhe fornece os dados. Convenções em Asp.Net MVC As aplicações Asp.Net MVC, por omissão, funcionam com base em convenções. Isto evita ter de especificar tudo o que pode ser inferido através de convenções. MVC usa uma estrutura de nomes de directórios baseados em convenções que permite determinar os templates das vistas referidos pelos controladores sem especificar a localização. O ficheiro com o template da vista referido num método de um controlador encontra se no directório \Views\<Nome_do_Controlador>\ e tem o nome igual ao método do qual é invocado. As convenções do MVC podem ser substituídas quando necessário. Este conceito é designado por convenções em vez de configurações (convention over configuration). Este conceito foi introduzido pelo Ruby on Rails. Convenções Asp.Net MVC: O nome de cada classe Controlador termina em Controller, e é colocada no directório Controllers. Há um único directório Views para todas as vistas da aplicação. As vistas que cada Controlador usa são colocadas num subdirectório de Views com o nome do Controlador (excepto o sufixo Controller). Todas as vistas partilhadas são colocadas no subdirectório de Views com o nome Shared.
6 Especificação das Vistas O directório Views contém um subdirectório por controlador, com o mesmo nome do controlador, mas sem o sufixo controller. Dentro de cada um destes subdirectórios existe um ficheiro view para cada método de acção, com o mesmo nome do método de acção. Este é o processo base de associação de vistas a métodos de acção. Exemplo1: Se o método de acção do controlador não especificar o nome da vista aplica se a convenção para localizar o objecto ViewResult retornado pelo método View(): é retornada uma vista com o mesmo nome do método de acção dentro do directório Views/Nome_do_Controlador. Para o método /Store/Index a vista seleccionada será /Views/Store/Index.cshtml Modificar o método Index do Controlador StoreController: public class StoreController : Controller // GET: /Store/ public ActionResult Index() ViewBag.Mensagem = "Mensagem de Store/Index"; return View();... Botão direito do rato em cima do código deste método e Add View... View name: Index Retirar a selecção a Use a Layout or master page Obtém se o seguinte Layout = null; <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device width" /> <title>index</title> </head> <body> <div> </div> </body> </html>
7 Acrescentar no div do body: Executar: A vista mostra a mensagem colocada pelo controlador usando a expressão ViewBag.Mensagem. Exemplo2: Se pretendermos que o método de acção /Store/Index retornasse uma vista diferente colocada no subdirectório Store (por exemplo Teste.cshtml) temos de fornecer o nome da vista. Copiar o ficheiro Index.cshtml, colocar no mesmo directório com o nome Teste.cshtml, e fazer a modificação. <body> <div> <h1>da vista </div> </body> No Index de StoreController alterar: public ActionResult Index() ViewBag.Mensagem = "Mensagem de Store/Index"; return View("Teste"); Executar. Exemplo3: Se pretendermos que o método de acção /Store/Index retornasse uma vista diferente colocada num subdirectório diferente de Store (por exemplo Teste.cshtml em /Views/Home/) temos de fornecer o nome completo da vista usando sintaxe com ~. Nesta sintaxe com ~ também temos de fornecer a extensão porque não é usado o mecanismo interno de procura de vistas. Mudar a localização do ficheiro Teste.cshtml para Views/Home Executar. Dá erro. Alterar para return View("~/Views/Home/Teste"); Executar. Dá erro. Alterar para return View("~/Views/Home/Teste.cshtml"); Executar. Não dá erro
8 Vistas fortemente Tipadas Para passar um objecto modelo para a vista, podemos colocá lo como argumento do método View(). Na vista este objecto é colocado na propriedade Model. Mas esta propriedade é do tipo dinâmico, isto é, o seu tipo de dados só é determinado em tempo de execução. Podemos usá la deste modo mas também é possível atribuir lhe o tipo de dados correcto. Atribuindo o tipo correcto beneficiamos do Intellisense do Visual Studio quando acedemos às propriedades do objecto, e também às verificações em tempo de compilação (compile time checking). Para que lhe seja atribuído o tipo de dados correcto temos de indicar à vista o tipo de dados da propriedade Model com a seguinte IEnumerable<MvcApplication1.Models.Album> View Models Muitas vezes uma vista tem necessidade de mostrar informação que não mapeia directamente num objecto do modelo do domínio. Como na vista só podemos ter um objecto Model, uma possibilidade para mostrar informação extra que não faça parte do modelo da vista é enviá la através do ViewBag. Embora seja uma solução flexível, os dados obtidos pela vista através do VIewBag não são fortemente tipados, pelo que o programador da vista não terá a vantagem do intellisense do Visual Studio. Assim, pode ser útil construir uma classe para agregar toda a informação necessária para fornecer à vista, designada por ViewModel, um modelo (classe) construído com o único objectivo de fornecer informação para a vista. Uma classe ViewModel serve para encapsular múltiplos dados representados por instâncias de outras classes num objecto para passar à Vista. Não há nenhuma localização pré defenida para colocar os ViewModels. Normalmente cria se um directório ViewModels na raiz do projecto MVC. Nesse directório colocam se todos os ViewModels, um ficheiro para cada classe, com a designação do nome do Controlador seguida do nome do método de acção (ou Vista).
9 Exemplo1: MvcApplication1 > Add > New Folder: ViewModels ViewModels/StoreIndexViewModel.cs public class StoreIndexViewModel public int NumeroDeGeneros get; set; public List<string> Generos get; set; Consideremos o seguinte método de acção: Controllers/StoreController.cs using MvcApplication1.ViewModels; public ActionResult Index2() // Criar uma lista de géneros var generos = new List<string> "Rock", "Jazz", "Country", "Pop", "Disco"; var viewmodel = new StoreIndexViewModel NumeroDeGeneros = generos.count(), Generos = generos ; return View(viewModel); Criar uma Vista Uma vista pode ser criada escrevendo código e adicionada ao directório Views. Mas é muito mais fácil de criar através da ferramenta do Visual Studio Add View. Clicando com o botão direito do rato em qualquer parte do código de um método de acção, seleccionar Add View Na janela de diálogo Add View : View name: inicializado com o nome do método de acção. View engine: Razor ou ASPX. Create a strongly typed view: esta selecção permite escrever ou seleccionar uma classe para modelo a enviar à vista. A lista de classes para modelos é preenchida usando reflexão. Portanto é importante compilar o projecto antes de seleccionar uma classe para modelo. Scaffold template: A selecção de um modelo a enviar à vista permite seleccionar também um template para gerar a vista baseado no modelo seleccionado.
10 Scaffolding é usado por muitas tecnologias de software para significar geração rápida de um esquema do software que depois se pode editar. O template que gera este esquema inicial do código é usado como um andaime (scaffold) a partir do qual se constrói um programa mais poderoso. Tipos de templates: Empty: Cria uma vista vazia. Create: Cria uma vista com um formulário para criar instâncias do modelo. Delete: Cria uma vista com um formulário para apagar instâncias do modelo. Details: Cria uma vista que mostra o valor de cada propriedade do modelo. Edit: Cria uma vista com um formulário para editar instâncias do modelo. List: Cria uma vista com um tabela das instâncias do modelo. A tabela apresenta uma coluna para cada propriedade do modelo. O modelo que é passado pelo método de acção à vista tem de ser do tipo de dados IEnumerable<Modelo>. Esta vista também apresenta links para as acções create/edit/delete. Reference script libraries: a selecção desta opção na criação de uma vista que contenha entrada de dados, tal como Edit ou Create, faz com que a vista gerada referencie ficheiros JavaScript adequados para essa vista, tais como jquery Validation library. Create as a partial view: gera uma vista parcial, que vai constituir apenas parte de uma página, sem a opção layout. O layout, por omissão, está definido no ficheiro _ViewStart.cshtml. Use a layout or master page: permite determinar se a vista referencia um layout (ou master page) diferente do layout por omissão ou se é uma vista completa. Botão direito do rato no código do método public ActionResult Index2(): Seleccionar Add View Na janela de diálogo Add View : View name:index2 View engine: Razor Create a strongly typed view: selecionar Model class: StoreIndexViewModel (MvcApplication1.ViewModels) Scaffolf template: Details Reference script libraries: selecionar Create as a partial view: : não selecionar Use a layout or master page: não selecionar Add
11 O ficheiro Views/Store/Index2.cshtml é criado com o seguinte Layout = null; <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device width" /> <title>index2</title> </head> <body> <fieldset> <legend>storeindexviewmodel</legend> <div class="display => model.numerodegeneros) </div> <div class="display => model.numerodegeneros) </div> </fieldset> "Edit", new /* id=model.primarykey */ to List", "Index") </p> </body> </html> Alterar o conteúdo do <div> para: <div class="display => model.numerodegeneros) => model.numerodegeneros) </div> <div class="display => model.generos) => model.generos) </div>
12 Layouts Os layouts têm a mesma finalidade das master pages nas Web Forms. Podemos usar um layout para definir um template comum para o site ou parte do site. Este template conterá um ou mais placeholders. As outras vistas da aplicação fornecerão conteúdos para estes placeholders. Exemplo: Layout1.cshtml <!DOCTYPE html> <html> <head><title>@viewbag.title</title></head> <body> <header> <h1>@viewbag.title</h1> </header> <div id="main content">@renderbody()</div> <footer>@rendersection("footer", required: false)</footer> </body> </html> Layout = "~/Views/Shared/Layout1.cshtml"; ViewBag.Title = "Index"; <p>conteudo Footer Este é o é um placeholder que marca o lugar onde as vistas que usam este layout colocarão o seu conteúdo Footer ) é um placeholder que marca o lugar onde as vistas que usam este layout colocarão o conteúdo especificado na Footer. As vistas têm de fornecer conteúdo para todas as secções definidas no layout, a não ser que a secção seja definida como Footer, required: false) ViewStart Cada vista pode especificar a sua página de layout usando a propriedade Layout.
13 Mas para um grupo de vistas que usem o mesmo layout podemos colocar num directório um ficheiro com o nome _ViewStart.cshtml. Este código é executado antes do código de qualquer vista nesse directório ou subdirectórios. Layout = "~/Views/Shared/_Layout.cshtml"; Forms e HTML Helpers Html.Label O helper Html.Label( idtitulo ) cria o elemento html <lable for= idtitulo >Titulo</label> O objectivo do tag label é definir um label para um elemento input (tal como campo de texto, checkbox, ou radio button), e melhorar a acessibilidade, porque se o utilizador clicar no texto do label o browser transfere o foco para o controlo de input associado. O atributo for deve conter o id do elemento input associado. Html.DropDownList e Html.ListBox Estes helpers criam elementos select. Html.Label( idtitulo ) cria o elemento html <lable for= idtitulo >Titulo</label> O objectivo do tag label é definir um label para um elemento input (tal como campo de Exemplo de DropDownList Ficheiro Controllers/HomeController.cs: public ActionResult SelecionarCategoria() List<SelectListItem> itens = new List<SelectListItem>(); itens.add(new SelectListItem Text = "Ação", Value = "0", Selected = true ); itens.add(new SelectListItem Text = "Drama", Value = "1" ); itens.add(new SelectListItem Text = "Comedia", Value = "2" ); itens.add(new SelectListItem Text = "Ficção Científica", Value = "3" ); ViewBag.TipoFilme = itens; return View();
14 Ficheiro ViewBag.Title = "SelecionarCategoria"; (Html.BeginForm("CategoriaEscolhida", "Home", FormMethod.Get)) <fieldset> Tipo de <p> <input type="submit" value="submit" /> </p> </fieldset> Código html gerado: <h2>selecionarcategoria</h2> <form action="/home/categoriaescolhida" method="get"> <fieldset> Tipo de Filme <select id="tipofilme" name="tipofilme"> <option value="0">ação</option> <option value="1">drama</option> <option selected="selected" value="2">comedia</option> <option value="3">ficção Científica</option> </select> <p> <input type="submit" value="submit" /> </p> </fieldset> </form> Exemplo de ListBox Semelhante ao exemplo anterior excepto no Ficheiro SelecionarCategoria.cshtml: Código html gerado: <h2>selecionarcategoria</h2> <form action="/home/categoriaescolhida" method="get"> <fieldset>
15 Tipo de Filme <select id="tipofilme" multiple="multiple" name="tipofilme"> <option value="0">ação</option> <option value="1">drama</option> <option selected="selected" value="2">comedia</option> <option value="3">ficção Científica</option> </select> <p> <input type="submit" value="submit" /> </p> </fieldset> </form>
Criação de uma aplicação Web ASP.NET MVC usando Code First
Criação de uma aplicação Web ASP.NET MVC usando Code First Visual Studio > File > New Project > (Visual C#, Web) ASP.NET MVC 4 Web Application Name: MvcApplication11 Project Template: View Engine: Internet
Leia maisConstruindo uma ASP.Net MVC 4 Web Application usando Bootstrap no front-end
Construindo uma ASP.Net MVC 4 Web Application usando Bootstrap no front-end A partir de uma ASP.Net MVC 4 Web Application com o Project Template Basic, aprenda a incluir, "configurar" e "usar" alguns dos
Leia maisRepeater no GASweb. Regiões
Repeater no GASweb Por: Rodrigo Silva O controle de servidor Repeater é um container básico que permite a você criar uma lista de qualquer informação que deseja em uma página Web. Ele não tem uma aparência
Leia maisDOCUMENTAÇÃO DO FRAMEWORK - versão 2.0
DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando
Leia maisForms Authentication em ASP.NET
Forms Authentication em ASP.NET Em muitos sites web é necessário restringir selectivamente o acesso a determinadas áreas, ou páginas, enquanto para outras páginas pode permitir-se acesso livre. ASP.NET
Leia maisZS Rest. Manual Avançado. Ementas : Email e SMS. v2011
Manual Avançado Ementas : Email e SMS v2011 1. Índice 2. INTRODUÇÃO... 2 3. INICIAR O ZSRest FrontOffice... 3 1 4. CONFIGURAÇÃO INICIAL... 4 b) Configurar E-Mail... 4 c) Configurar SMS... 5 i. Configurar
Leia maisAjax Asynchronous JavaScript and Xml
Ajax Asynchronous JavaScript and Xml Ajax permite construir aplicações Web mais interativas, responsivas, e fáceis de usar que aplicações Web tradicionais. Numa aplicação Web tradicional quando se prime
Leia maisMódulo 3936 ASP.NET. Financiado pelo FSE
2 EISnt Centro de Formação Profissional, Engenharia Informática e Sistemas, Novas Tecnologias, Lda Avª D. João I, nº 380/384 Soutelo 4435-208 Rio Tinto Portal Internet : www.eisnt.com E-Mail : formação@eisnt.com
Leia maisGoogle Sites. A g r u p a m e n t o C a m p o A b e r t o 2 0 1 0 / 2 0 1 1
Google Sites A g r u p a m e n t o C a m p o A b e r t o 2 0 1 0 / 2 0 1 1 1. Google Sites A Google veio anunciar que, para melhorar as funcionalidades centrais do Grupos Google, como listas de discussão
Leia maisManual de Administração Intranet BNI
Manual de Administração Intranet BNI Fevereiro - 2010 Índice 1. Apresentação... 3 2. Conceitos... 5 3. Funcionamento base da intranet... 7 3.1. Autenticação...8 3.2. Entrada na intranet...8 3.3. O ecrã
Leia maisMicrosoft Office FrontPage 2003
Instituto Politécnico de Tomar Escola Superior de Gestão Área Interdepartamental de Tecnologias de Informação e Comunicação Microsoft Office FrontPage 2003 1 Microsoft Office FrontPage 2003 O Microsoft
Leia maisCriar uma aplicação JPA2 com EclipseLink e H2
Criar uma aplicação JPA2 com EclipseLink e H2 1) Criar uma aplicação Java no NetBeans. File > New Project > Java, Java Application > Project name: JPA2 Finish. 2) Acrescentar ao Projeto NetBeans a biblioteca
Leia maisO que é o JavaScript?
JavaScript Introdução O JavaScript é utilizado por milhões de páginas na web para melhorar o design, validar forms, e muito mais O JavaScript foi inicialmente desenvolvido pela Netscape e é a linguagem
Leia maisComo criar e gerir um blog?
Como criar e gerir um blog? Como criar um blog? Como escrever num blog? Como visualizar o meu blog? Como apagar ou emendar um texto que já tenha sido publicado? O Sistema de Comentários Configurações Importantes!!
Leia maisTECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO INTRODUÇÃO AO MACROMEDIA DREAMWEAVER MX 2004 O Macromedia Dreamweaver MX 2004 é um software que permite a criação de páginas de Internet profissionais, estáticas
Leia maisUniversidade da Beira Interior
Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação
Leia maisBem vindos ao Curso de ASP.NET MVC 3 Razor e C#
Bem vindos ao Curso de ASP.NET MVC 3 Razor e C# Pré-requisitos: O curso de C# Csharp veja aqui e o curso de ASP.NET Básico veja aqui Valor R$129.00 compre aqui Veja o video do curso aqui Aprenda ASP.NET
Leia maisEditor HTML. Composer
6 Editor HTML 6 Composer Onde criar Páginas Web no Netscape Communicator? 142 A estrutura visual do Composer 143 Os ecrãs de apoio 144 Configurando o Composer 146 A edição de Páginas 148 Publicando a sua
Leia maisPortal AEPQ Manual do utilizador
Pedro Gonçalves Luís Vieira Portal AEPQ Manual do utilizador Setembro 2008 Engenharia Informática - Portal AEPQ Manual do utilizador - ii - Conteúdo 1 Introdução... 1 1.1 Estrutura do manual... 3 1.2 Requisitos...
Leia maisScriptlets e Formulários
2 Scriptlets e Formulários Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Permitir ao aluno aprender a criar um novo projeto Java para web no Netbeans IDE,
Leia mais1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)
Sessão Prática II JPA entities e unidades de persistência 1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) a) Criar um Web Application (JPAsecond) como anteriormente:
Leia maisA VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO
DOMINE A 110% ACCESS 2010 A VISTA BACKSTAGE Assim que é activado o Access, é visualizado o ecrã principal de acesso na nova vista Backstage. Após aceder ao Access 2010, no canto superior esquerdo do Friso,
Leia mais1 2 3 W O R K S H O P 4 5 6 W O R K S H O P 7 W O R K S H O P 8 9 10 Instruções gerais para a realização das Propostas de Actividades Para conhecer em pormenor o INTERFACE DO FRONTPAGE clique aqui 11 CONSTRUÇÃO
Leia maisPACWEB Módulo de Pesquisa MANUAL DO UTILIZADOR
MANUAL DO UTILIZADOR Versão 1.3 ÍNDICE 1. INTRODUÇÃO 2 2. INSTALAÇÃO E CONFIGURAÇÃO 3 2.1 INSTALAÇÃO 3 Instalar o Pacweb 3 Alterar o Ficheiro Default.htm 3 Criar um Virtual Directory 3 2.2 CONFIGURAÇÃO
Leia maisCriando & Consumindo um WebService com ASP.NET 2.0 Publicado em: 25 de Agosto de 2007 Por Herman Ferdinando Arais
ASP.NET > WebService herman_arais@yahoo.com.br Introdução Um WebService é um componente, ou unidade lógica de aplicação, acessível através de protocolos padrões de Internet. Como componentes, esses serviços
Leia maisSoftware Adobe DreamWeaver. Requisitos para criar aplicações Web
Software Adobe DreamWeaver O Dreamweaver é uma ferramenta de desenvolvimento de sites que suporta diversas linguagens de scritpting para construir sites dinâmicos. Suporta várias linguagens como por exemplo:
Leia maisCOMO FUNCIONA UM FORMULÁRIO
FORMULÁRIOS Constitui-se numa das formas de a máquina cliente enviar informações para que um programa no servidor receba estes dados, processe-os e devolva uma resposta ao usuário, por meio do navegador,
Leia maisFerramentas Web, Web 2.0 e Software Livre em EVT
E s t u d o s o b r e a i n t e g r a ç ã o d e f e r r a m e n t a s d i g i t a i s n o c u r r í c u l o d a d i s c i p l i n a d e E d u c a ç ã o V i s u a l e T e c n o l ó g i c a MockFlow M a
Leia maisZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011
Manual Profissional BackOffice Mapa de Mesas v2011 1 1. Índice 2. Introdução... 2 3. Iniciar ZSRest Backoffice... 3 4. Confirmar desenho de mesas... 4 b) Activar mapa de mesas... 4 c) Zonas... 4 5. Desenhar
Leia maisWebSphere_Integration_Developer_D_Jan06 Script
WebSphere_Integration_Developer_D_Jan06 Script 1a Nesta demonstração, Will Dunlop, um programador de integração da JK, utiliza o IBM, [ IBM], ou WID para construir um novo serviço orientado para os processos
Leia maisJSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem
1 JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem orientada a objectos. Tal como em ASP e PHP, os ficheiros
Leia maisZS Rest. Manual Avançado. Menus. v2011 - Certificado
Manual Avançado Menus v2011 - Certificado 1 1. Índice 2. Introdução... 2 3. Iniciar o ZSRest... 3 4. Menus... 4 b) Novo Produto:... 5 i. Separador Geral.... 5 ii. Separador Preços e Impostos... 7 iii.
Leia mais1 Code::Blocks Criação de projetos
Programação MEEC Índice 1Code::Blocks Criação de projetos...1 2Code::Blocks Localização do projeto...5 3Code::Blocks Abertura de projetos já existentes...7 4Code::Blocks Funcionamento...8 5Code::Blocks
Leia maisHTML - 7. Vitor Vaz da Silva Paula Graça
HTML - 7 Vitor Vaz da Silva Paula Graça 1 Formulários Os formulários forms no HTML, são utilizados para a introdução de dados de uma determinada aplicação Os programas JavaScript têm como um dos seus maiores
Leia maisExibindo o Catálogo (Tarefa C) Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)
Exibindo o Catálogo (Tarefa C) Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Iteração C1: CRIANDO A LISTAGEM DO CATÁLOGO Feedback do Cliente O cliente foi queseonado sobre prioridades Gostaria de ver
Leia maisEDUTec Learning. José Paulo Ferreira Lousado
EDUTec Learning MANUAL DO UTILIZADOR José Paulo Ferreira Lousado Índice Página Principal... ii Página de Desenvolvimento de Conteúdos... iii Página de Comunicações...iv Página de Transferência de Ficheiros...vi
Leia maisWEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira
WEBDESIGN Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira Formulários e JavaScript Como visto anteriormente, JavaScript pode ser usada para
Leia maisCriação de Páginas Web - MS Word 2000
Gestão Comercial e da Produção Informática I 2003/04 Ficha de Trabalho N.º 9 Criação de Páginas Web - MS Word 2000 1. Criação de uma página Web (HTML): Escreva o seu texto e introduza as imagens pretendidas
Leia maisConteúdo Dinâmico. Introdução. Interação Browser x Servidor Web. Interação Browser x Servidor Web
Introdução Formulários rios & Conteúdo Dinâmico Mário Antonio Meireles Teixeira Dept o. de Informática - UFMA A Web surgiu inicialmente como uma nova forma de comunicação de informações, fazendo uso de
Leia maisHTML (Hyper Text Markup Language) É a linguagem com que se escrevem as páginas web;
HTML Introdução Introdução ao HTML HTML (Hyper Text Markup Language) É a linguagem com que se escrevem as páginas web; É uma linguagem de hipertexto; Permite escrever texto de forma estruturada, que está
Leia maisManual do Painel Administrativo
Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...
Leia maisMais sobre uso de formulários Site sem Ajax
Mais sobre uso de formulários Site sem Ajax Página com busca padrão 1 Página com o resultado da busca carregada no local da anterior (o formulário está vazio) Site com Ajax 2 Site usando Ajax para preencher
Leia maisConnection String usada por uma Class Library
Connection String usada por uma Class Library Vamos considerar uma Class Library com o modelo de dados e com acesso à base de dados através do Entity Framework. Aonde deve ser colocada a connection string
Leia maisEquipa PTE. Janeiro 2012
Janeiro 2012 Equipa PTE Índice Introdução... 3 Registo Online... 3 Instalação... 6 Dropbox Online... 9 Separador Files (Ficheiros)... 10 Restaurar arquivos... 11 Recuperar arquivos... 11 Separador "Events"...
Leia maisAplicações de Escritório Electrónico
Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Folha de trabalho
Leia maisI. COMO FAZER O REGISTO NA PLATAFORMA MOODLE 3 II. COMO ACEDER (ENTRAR) NO MOODLE DA ESCOLA 1
Novembro.2010 Índice I. COMO FAZER O REGISTO NA PLATAFORMA MOODLE 3 II. COMO ACEDER (ENTRAR) NO MOODLE DA ESCOLA 1 III. COMO INSERIR MATERIAL PEDAGÓGICO (ANEXAR FICHEIROS) 1 IV. CRIAR UM GLOSSÁRIO 5 V.
Leia maisConstrução Páginas de Internet
Construção Páginas de Internet Definir um Site no Frontpage Objectivos da sessão: No final da sessão os formandos deverão ser capazes de: Saber o que são os metadados do Frontpage; Distinguir entre Sites
Leia maisResumo Aplicação MVC Contoso University
Resumo Aplicação MVC Contoso University Parte 1. New Project MVC4: ContosoUniversity Html.ActionLink(string linktext, string actionname, string controllername) Retorna MvcHtmlString, uma string com o código
Leia maisAndroid e Bancos de Dados
(Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do
Leia maisSIMULADOS & TUTORIAIS
SIMULADOS & TUTORIAIS TUTORIAIS HTML Como criar formulários em HTML Copyright 2013 Todos os Direitos Reservados Jorge Eider F. da Silva Proibida a reprodução deste documento no todo ou em parte por quaisquer
Leia maisManual técnico. v2.2 2015/10
Manual técnico v2.2 2015/10 Índice 1. INTRODUÇÃO... 3 2. DESCRIÇÃO... 3 3. INTEGRAÇÃO DO SISTEMA... 4 3.1 DESCRIÇÃO... 4 3.2 INTEGRAÇÃO... 5 3.2.1. Geração de referências... 5 getreferencemb...5 getreferencemb2...7
Leia maisINTRODUÇÃO AO DESENVOLVIMENTO WEB
INTRODUÇÃO AO DESENVOLVIMENTO WEB PROFª. M.Sc. JULIANA H Q BENACCHIO Formulários Os formulários em HTML são usados para selecionar diferentes tipos de entradas do usuário. Um formulário é uma área que
Leia maisFerramentas Web, Web 2.0 e Software Livre em EVT
E s t u d o s o b r e a i n t e g r a ç ã o d e f e r r a m e n t a s d i g i t a i s n o c u r r í c u l o d a d i s c i p l i n a d e E d u c a ç ã o V i s u a l e T e c n o l ó g i c a Sketch2Photo
Leia maisConstrutor de sites SoftPixel GUIA RÁPIDO - 1 -
GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template
Leia maisManual de Utilização. Site Manager. Tecnologia ao serviço do Mundo Rural
Manual de Utilização Site Manager Tecnologia ao serviço do Mundo Rural Índice 1. Acesso ao Site Manager...3 2. Construção/Alteração do Menu Principal...4 3. Inserção/ Alteração de Conteúdos...7 4. Upload
Leia maisCRIAÇÃO DE UM SITE COMPLETO EM FLASH
CRIAÇÃO DE UM SITE COMPLETO EM FLASH Introdução A criação de sites completamente em Flash é uma boa indicadora do grau de experiência que alguém pode ter com este software. Escusado será dizer que a criação
Leia maisJSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul
JSF e PrimeFaces Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Introdução Desenvolvimento Web Java Server Faces Exercício 2 Introdução Ao longo dos anos diversas linguagens de programação foram
Leia maisCriação de um Web Services em.net
Web Service em.net 1 Criação de um Web Services em.net 1. Criar um novo Web Site com template ASP.NET Web Service, de acordo com a figura seguinte. O Visual studio cria um directório com os ficheiros indicados
Leia maisMÓDULO MULTIMÉDIA. Text PROFESSOR: RICARDO RODRIGUES. MAIL: rprodrigues@escs.ipl.pt esganarel@gmail.com. URL: http://esganarel.home.sapo.
MÓDULO MULTIMÉDIA PROFESSOR: RICARDO RODRIGUES MAIL: rprodrigues@escs.ipl.pt esganarel@gmail.com URL: http://esganarel.home.sapo.pt Text GABINETE: 1G1 - A HORA DE ATENDIMENTO: SEG. E QUA. DAS 11H / 12H30
Leia maiswww.coldfusionbrasil.com.br
www.coldfusionbrasil.com.br 2000 PASSANDO VARIÁVEIS ATRAVÉS DE FORM E URL 3 ALTERA.CFM 3 FORMALTERA.CFM 4 ALTERA.CFM 4 FORMALTERA.CFM 4 CRIANDO E MANIPULANDO VARIÁVEIS COM CFSET 4 VALORES ESTÁTICOS 5 PARÂMETROS
Leia maisLinguagem de. Aula 06. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br
Linguagem de Programação IV -PHP Aula 06 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Criação de Formulários o Um formulário consiste em uma série de campos que são preenchidos pelo usuário
Leia maisProxy. Krishna Tateneni Tradução: José Pires
Krishna Tateneni Tradução: José Pires 2 Conteúdo 1 Proxies 4 1.1 Introdução.......................................... 4 1.2 Utilização.......................................... 4 3 1 Proxies 1.1 Introdução
Leia maisO AMBIENTE DE TRABALHO DO WINDOWS
O AMBIENTE DE TRABALHO DO WINDOWS O Windows funciona como um Sistema Operativo, responsável pelo arranque do computador. Um computador que tenha o Windows instalado, quando arranca, entra directamente
Leia maisProgramação para Internet I
Programação para Internet I Aulas 09 e 10 Fernando F. Costa nando@fimes.edu.br Formulários O formulário representa o modo mais importante de interatividade que a linguagem HTML oferece. Um formulário pode
Leia maisAdministração da disciplina
Administração da disciplina Agrupamento Vertical de Escolas de Tarouca Documento disponível em: http://avetar.no-ip.org 1.Acesso e utilização da plataforma:. Seleccione a opção Entrar, que se encontra
Leia mais5 Detalhes da Implementação
Detalhes da Implementação 101 5 Detalhes da Implementação Neste capítulo descreveremos detalhes da implementação do Explorator que foi desenvolvido usando o paradigma MVC 45 e o paradigma de CoC 46 (Convention
Leia maisAjax Asynchronous JavaScript and Xml
Ajax Asynchronous JavaScript and Xml Ajax permite construir aplicações Web mais interactivas, responsivas, e fáceis de usar que aplicações Web tradicionais. Numa aplicação Web tradicional quando se prime
Leia maisMyiLibrary Search & View Website. Junho 2010
MyiLibrary Search & View Website Junho 2010 Página Inicial Comece por clicar num assunto ou em See All para ver todos os títulos que são relevantes para esse assunto Lista de todos os títulos na sua colecção
Leia maisTecnologias Web. Padrões de Projeto - Camada de Apresentação
Tecnologias Web Padrões de Projeto - Camada de Apresentação Cristiano Lehrer, M.Sc. Padrões da Camada de Apresentação (1/2) Intercepting Filter Viabiliza pré e pós processamento de requisições. Front Controller
Leia maisNoções de. Microsoft SQL Server. Microsoft SQL Server
Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados
Leia mais4.1. TRABALHAR COM O CALENDÁRIO
Calendário 2Calendário 14 INTRODUÇÃO O Calendário é uma grande ferramenta do Outlook que se pode usar como livro de reuniões para escalonar eventos, aperceber-se de datas importantes e gerir a lista de
Leia maisManual do Blogilo. Mehrdad Momeny Tradução: Marcus Gama
Mehrdad Momeny Tradução: Marcus Gama 2 Conteúdo 1 Introdução 5 2 Usando o Blogilo 6 2.1 Iniciando........................................... 6 2.2 Configurar um blog....................................
Leia mais4 O Workflow e a Máquina de Regras
4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu
Leia mais1. Lançamento em Contas Bancárias Liquidação de Clientes
Título: MÓDULO DE GESTÃO DE BANCOS & CONTROLO LETRAS Pag.: 1 Módulo Gestão Contas Bancárias O módulo Gestão de Contas Bancárias, tem como principal objectivo, permitir ao utilizador saber num exacto momento,
Leia maisGlobalPhone - Central Telefónica. Manual do Portal de Selfcare Utilizador
Manual do Portal de Selfcare Utilizador Índice 1 Introdução... 3 1.1 Âmbito do Documento... 3 1.2 Acesso... 4 1.3 Autenticação... 4 2 Extensões... 5 2.1 Reencaminhamentos (redireccionamentos)... 6 2.2
Leia maisPROJETOS EXEMPLO DE ASP.NET MVC
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIAS E TECNOLOGIAS DO RIO GRANDE DO NORTE PROFESSOR: JOSÉ ANTÔNIO DA CUNHA PROJETOS EXEMPLO DE ASP.NET MVC Projeto 1: Projeto 2: Implementando o CRUD em ASP.NET MVC,
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisEscola Superior de Tecnologia de Setúbal. Projecto Final
Instituto Politécnico de Setúbal Escola Superior de Tecnologia de Setúbal Departamento de Sistemas e Informática Projecto Final Computação na Internet Ano Lectivo 2002/2003 Portal de Jogos Executado por:
Leia mais1. Introdução. 2. A área de trabalho
Curso Criiar web siites com o Dreamweaver Parrttee II 1. Introdução O Macromedia DreamWeaver é um editor de HTML profissional para desenhar, codificar e desenvolver sites, páginas e aplicativos para a
Leia maisProgramando em PHP. Conceitos Básicos
Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Conceitos Básicos Todo o escopo deste estudo estará voltado para a criação de sites com o uso dos diversos recursos de programação web
Leia maisP S I 2. º A N O F 5 M E S T R E / D E T A L H E E P E S Q U I S A. Criar uma relação mestre-detalhe. Pesquisa de informação
P S I 2. º A N O F 5 M E S T R E / D E T A L H E E P E S Q U I S A Módulo 18 Ferramentas de Desenvolvimento de Páginas Web Criar uma relação mestre-detalhe 1. Cria uma cópia da página «listaferram.php»
Leia maisGuia rápido do utilizador
Guia rápido do utilizador Índice Relatório de roubo 3 Criar um novo relatório de roubo 4 Fornecer detalhes do relatório de roubo Secção 1. Especificar o computador 5 Fornecer detalhes do relatório de roubo
Leia maisPortal da Imprensa Regional. Actualizações e Correcções
Portal da Imprensa Regional Actualizações e Correcções Índice Versão: 3.1.3... 3... 3 BackOffice... 3 Versão: 3.0.1... 3... 3 BackOffice... 3 Versão: 3.0.0... 4... 4 BackOffice... 4 Histórico de Versões...
Leia maisMANUAL DO ANIMAIL 1.0.0.1142 Terti Software
O Animail é um software para criar campanhas de envio de email (email Marketing). Você pode criar diversas campanhas para públicos diferenciados. Tela Principal do sistema Para melhor apresentar o sistema,
Leia maisTutorial do administrador do HelpCenterLive (Sistema de Ajuda)
Tutorial do administrador do HelpCenterLive (Sistema de Ajuda) Sumário Introdução...3 Entrar (Login)...3 Página Inicial (Home Page)...4 Ajuda...5 Conversação (Chat)...6 Mensagens Registradas...7 Registros...8
Leia mais1. FILTRAR OS DADOS ATRAVÉS DE FORMULÁRIO (FILTER BY FORM)
Nesta aula prática iremos usar uma base de dados fictícia já preenchida com o nome Espaço Projecto - InfantJaundice2006.accdb. Este ficheiro foi criado pelo curso Data Management for Research, 2005, UCSF.
Leia maisZSRest. Manual Profissional. Comandos Rádio X64. V2011-Certificado
Manual Profissional Comandos Rádio X64 V2011-Certificado 1 1. Índice 2. INTRODUÇÃO... 2 3. Configuração inicial... 3 4. Configurações X64... 5 a) Definições Gerais... 5 b) Documentos e Periféricos... 8
Leia mais15. OLHA QUEM ESTÁ NA WEB!
7 a e 8 a SÉRIES / ENSINO MÉDIO 15. OLHA QUEM ESTÁ NA WEB! Sua home page para publicar na Internet SOFTWARES NECESSÁRIOS: MICROSOFT WORD 2000 MICROSOFT PUBLISHER 2000 SOFTWARE OPCIONAL: INTERNET EXPLORER
Leia maisA interface do Microsoft Visual Studio 2005
Tarefa Orientada 1 A interface do Microsoft Visual Studio 2005 Objectivos: Introdução à framework.net Iniciar o Visual Studio 2005. Criar um novo projecto de Windows Forms em Visual Basic Introdução à
Leia maisAula 03 - Projeto Java Web
Aula 03 - Projeto Java Web Para criação de um projeto java web, vá em File/New. Escolha o projeto: Em seguida, na caixa Categorias selecione Java Web. Feito isso, na caixa à direita selecione Aplicação
Leia maisMúltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II
O seguinte exercício contempla um processo com três estágios. Baseia-se no Inquérito de Satisfação Fase II, sendo, por isso, essencial compreender primeiro o problema antes de começar o tutorial. 1 1.
Leia maisParte I. Demoiselle Mail
Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework
Leia maisProcesso de submissão - Informação para autores
Processo de submissão - Informação para autores O sistema de submissão on-line da Colóquios Garcia de Orta oferece aos autores a possibilidade de enviarem as suas submissões directamente para a revista.
Leia maisAcessando um Banco de Dados
Acessando um Banco de Dados Introdução Agora que você já está craque em JSP e já instalou seu servidor, vamos direto para a parte prática! Neste tutorial vamos aprender a acessar um banco de dados. Para
Leia maisGuia do Signatário SAP DocuSign
Guia do Signatário SAP DocuSign Índice 1. Guia do Signatário SAP DocuSign... 2 2. Receber uma notificação por e-mail... 2 3. Assinar o documento... 3 4. Outras opções... 4 4.1 Terminar mais tarde... 4
Leia maisOs dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.
MySQL 101 Recapitulando Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas. As bases de dados são úteis quando necessitamos
Leia maisPASSO A PASSO GOOGLE DOCS - FORMULÁRIOS GOOGLE DOCS
CEEBJA - PALOTINA CENTRO ESTADUAL DE EDUCAÇÃO BÁSICA PARA JOVENS E ADULTOS NRE- Toledo MUNICÍPIO: PALOTINA PASSO A PASSO GOOGLE DOCS - FORMULÁRIOS GOOGLE DOCS O Google Docs é uma das recentes ferramentas
Leia maisgettyimages.pt Guia do site área de Film
gettyimages.pt Guia do site área de Film Bem-vindo à área de Film do novo site gettyimages.pt. Decidimos compilar este guia, para o ajudar a tirar o máximo partido da área de Film, agora diferente e melhorada.
Leia maisAplicações de Escritório Electrónico
Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Folha de trabalho
Leia mais