Introdução

A Accendis lança no mercado um curso intensivo e totalmente inovador destinado a pessoas que trabalham há algum tempo com o .NET e que costumam desenvolver aplicações corporativas comuns.

Com este modelo de treinamento, nós buscamos trazer para os desenvolvedores, líderes e gerentes de equipes de desenvolvimento uma visão mais moderna de como arquitetar e implementar aplicações .NET de forma mais objetiva e atual. Tudo isso em apenas 5 dias ou 10 noites! As aulas são todas realizadas em C#. Este curso está disponível também em versão in-company, permitindo que seus funcionários tenham um treinamento intensivo e qualificado sem custos com transportes e acomodação.

Vamos detalhar agora o que você aprenderá em cada aula.

Parte 1 – Conceitos modernos de orientação a objetos com C#

Conhecendo melhor o LINQ to Objects e LINQ to XML

Nesta parte do curso, após conhecermos melhor o que o C# tem a oferecer, vamos investir no conhecimento do LINQ em si. Vamos entender sobre o que faz o LINQ, quais suas aplicações e suas revolucionárias formas de se trabalhar com dados. Vamos também lidar com arquivos XML utilizando LINQ to XML, que por si só já é outra forma revolucionária de se trabalhar com dados XML.  Vamos falar sobre tipos anônimos, IEnumerable, IEnumerable<T>, IQueryable<T> e LINQ providers para quaisquer tipos de fonte de dados.

Coleções genéricas e concorrência

Você aprenderá sobre coleções genéricas com .NET, como filas, listas e pilhas. Para acrescentar ao tema, vamos explicar também sobre como usar estas listas utilizando múltiplas threads e também, aprenderá sobre as novas coleções que suportam concorrência, recém-surgidas no .NET 4.0. Você verá exemplos de múltiplas threads manipulando os mesmos objetos tanto para leitura como escrita simultânea. Vamos mostrar também operações que possam ser realizadas utilizando o PLINQ, isto é, paralelismo utilizando LINQ. Também serão expostas práticas comuns para criar coleções customizadas a partir de coleções existentes no framework.

Tipos genéricos e Herança

Vamos explicar sobre design de tipos genéricos, como classes, métodos, interfaces e delegates. O aluno receberá uma aula de cultura geral destinados mostrar o que é e o que não é legal fazer quando se trata de montar uma estrutura de classes. Vamos ver boas práticas ao montar herança, polimorfismo, eventos e muito mais!

Novidades no C# no Framework 3.5 e 4.0

Vamos fazer uma caminhada desde o C# do .NET Framework, explicando a teoria de métodos anônimos, uso de delegates e suas aplicações até chegar nas novidades que surgiram no .NET 3.5, como lambda expressions, delegates genéricos, utilização de LINQ, selectors, tratamento de coleções e enumerações, utilização de Extension Methods e suas implicações tanto ao utilizar LINQ como para outros tipos de situações. Vamos demonstrar novidades do C# no .NET 4.0 como métodos nomeados e introdução a linguagens dinâmicas.

Organização e boas práticas do dia-a-dia

Com todo o conhecimento adquirido, vamos fechar este módulo do curso falando sobre boas práticas no design de classes, métodos, eventos e boas práticas utilizando LINQ, Herança e todas as funcionalidades do C# disponíveis. Vamos mostrar como criar projetos organizados e como evitar que os projetos virem uma bola de neve. Este tema será revisto nos módulos seguintes.

Parte 2 – Arquitetura N-Camadas e Engenharia de Software

Este módulo é o coração deste curso. O treinamento deverá expor para os alunos noções básicas de engenharia de software, clarificando pontos-chave do processo de criação de sistemas modernos como a divisão/necessidade de camadas, testes, protótipos, provas de conceito e não menos importante, opções de projeto considerando requisitos não-funcionais como performance, segurança, escalabilidade e demais requisitos.

Conceito de camadas e fluxo de dados

Vamos abrir o segundo módulo deste treinamento tocando em um tema que invariavelmente todos os desenvolvedores de aplicações corporativas precisam conhecer: a organização do software em camadas. Vamos falar sobre fluxo de dados, processos, criação de componentes, responsabilidades de área do sistema. Vamos falar sobre testabilidade, modelagem de classes, provas de conceito e muito mais.

Acesso a dados

Aqui nós explicamos as funções das camadas de acesso a dados assim como explicamos também a necessidade de ferramentas ORM e também, explicamos sobre transações no banco de dados e também, boas práticas no design de camadas de acesso a dados. Os exemplos são apresentados com o SQL Server 2008. Também falaremos sobre as ferramentas ORM mais comuns.

Regras de negócio

Nesta parte do curso nós focamos na construção de uma camada de negócios forte, reutilizável e concentrando todo o domínio da aplicação. Utilizaremos conceitos de Domain-Driven Design. O aluno aprenderá sobre como construir o domínio e os processos que utilizam este domínio.

Camadas de Serviços

Nesta parte o aluno aprende a expor as regras e processos de sua aplicação para o mundo exterior através da exposição de serviços. Vamos falar sobre troca de dados entre sistemas, web services, WCF, formas de comunicação entre módulos e sistemas, entre outros conceitos. Vamos estabelecer as bases para a criação de sistemas distribuídos modernos, onde poderemos ter múltiplos tipos de aplicações acessando os mesmos serviços expostos. Vamos falar sobre SOA, mas não entraremos em detalhes sobre extenso assunto.

Camadas de apresentação

O aluno terá entendimento sobre o papel das interfaces de usuário nos sistemas, considerando toda a arquitetura do sistema. Vamos levar a discussão para o modelo de software orientado a serviços, onde é necessário que a camada de apresentação contenha apenas o mínimo de regras de negócio. Vamos mostrar falar sobre tecnologias atuais para se montar a camada de apresentação, como ASP.NET,ASP.NET MVC, Silverlight, WPF, Windows Forms e Compact Framework.

Construção de bibliotecas utilitárias

Aqui o workshop estimula o aluno a pensar sobre a criação de componentes de uso geral, tanto no projeto como em vários projetos. Com estes conceitos o aluno também aprende a não misturar lógica reutilizável com as camadas da aplicação.

Guia para testes unitários

Vamos explicar como criar testes unitários de forma prática, mostrando ferramentas que já vêm instaladas no Visual Studio e também, utilizando ferramentas de terceiros. Vamos apresentar conceitos sobre testes unitários simples, testes com banco de dados, teste de camadas de negócios. Não vamos abordar o teste automático de interface pois é um tema relativamente extenso, que não cabe numa proposta de workshop. Vamos falar também sobre criação de mocks e stubs. Vamos explicar também sobre a importância de testes unitários para o ciclo de desenvolvimento da aplicação, tornando-o como uma ferramenta importantíssima na gestão do software como um todo.

Endereçando requisitos diversos

Neste ponto o treinamento de volta para opções comuns de solução encontradas no ecossistema .NET para vários tipos de situação como segurança, caching, log, auditoria, performance, etc… O treinamento busca trazer para a sala de aula situações vividas em grandes projetos e claro, lessons-learned de nossa experiência de mercado.

Frameworks de uso geral disponíveis no mercado

O aluno conhecerá alguns dos frameworks úteis mais famosos como o Enterprise Library, NUnit e Telerik. Com isso, o aluno poderá evitar a reinvenção da roda ao utilizar bibliotecas prontas.

Parte 3 – Entity Framework

As ferramentas ORM são muito utilizadas no mundo das aplicações corporativas pois aceleram o desenvolvimento de sistemas simples a moderadamente complexos. Com este tipo de ferramenta o desenvolvedor não precisa ficar escrevendo explicitamente o código para manipular um banco de dados específico.

Com o surgimento do LINQ, o desenvolvedor ganhou a possibilidade de escrever código similar a consultas SQL dentro do .NET. Como conseqüência direta, a Microsoft criou o Entity Framework para mapear tabelas do banco de dados em objetos do .NET, de maneira automática. O NHIbernate já faz isso há algum tempo. A primeira versão do EF foi particularmente ruim para se trabalhar, embora ainda seja um grande auxílio para o desenvolvedor. O .NET 4.0 trouxe grandes evoluções nesta ferramenta, que agora torna muito mais fácil atuar em situações onde seja necessário lazy-loading, model-first development (seguindo assim uma prática do Domain-Driven Design) e também, facilidades na hora de salvar e alterar objetos ou grafos de objetos.

Vamos aprender a lidar com todos os cenários comumente encontrados como manipulação de tabelas simples, relações 1-N, N-N e também, as conseqüências do uso do Entity Framework na sua camada de negócios. Você verá que o uso do EF poderá ser uma excelente forma de economizar na construção do seu aplicativo e com isso, entregar seu projeto de forma mais rápida.

Os exemplos já serão mostrados utilizando o Visual Studio 2010 e o .NET Framework 4.0. Com isso, você terá em suas mãos o que há de mais moderno de tecnologia Microsoft para realizar acesso a dados.

Parte 4 – Windows Communication Foundation (WCF)

Este módulo é mais do que a simples explicação do que é o WCF. Antes de tudo, visamos motivar o aluno a ganhar mais cultura, expondo sobre o que são serviços e aplicações modernas, que hoje em dia não rodam apenas num mesmo tipo de cliente, mas podem rodar de diversas formas simultaneamente.

Vamos apresentar idéias e opções para o aluno de forma que ele tenha em suas mãos a total capacidade de decidir sobre como e qual tecnologia usar para resolver um determinado problema. Queremos passar ao aluno o senso crítico de como criar aplicações realmente escaláveis, distribuídas e simples de serem criadas.

Vamos entrar no detalhe da criação de serviços, exposição de serviços e dicas de construção e organização do serviço. O aluno poderá atender cenários Windows e não-Windows em suas aplicações. Suas soluções poderão conversar com serviços feitos tanto em uma linguagem .NET como outra como Java, por exemplo.

Finalmente, vamos contemplar cenários onde as camadas de apresentação fazem acesso ao serviço, mostrando o poder do uso da tecnologia .NET atual. Também vamos expor sobre tecnologias novas que a Microsoft está lançando para complementar o WCF e com isso, acelerar o ciclo de desenvolvimento de novos sistemas. E obviamente, vamos demonstrar alguns conceitos de SOA para que o aluno consiga seguir adiante nesta linha arquitetura de sistemas.

Parte 5 – Práticas estendidas com aplicação Real

Com tudo o que foi lecionado até o momento, os alunos terão este módulo para desenvolver em conjunto com os professores uma aplicação de exemplo com situações reais de integração, usando tudo o que foi mencionado até o momento. Vamos fazer uma aplicação que utilize Entity Framework, SQL Server 2008, WCF, utilizando uma arquitetura em camadas. E como exemplo de clientes, vamos utilizar o ASP.NET e também, um cliente Silverlight para demonstrar outras possibilidades com o .NET 4.0.

Grande Abraço!

Equipe Accendis

Adicionar aos Favoritos BlogBlogs Adicionar esta notícia no Linkk

Related Post

Trackback

no comment untill now

Add your comment now