Cadastre-se Revistas DevMedia Cursos
 

Space de Felipe Pedroti Raymundo
Busca Autor


Últimas 20 atualizações de Felipe Pedroti Raymundo

Artigo - Aplicações Web Modernas – Revista easy .net Magazine 14

HTML

  O HTML é a linguagem padrão para criação de Web Sites. Hoje, a sua especificação é mantida pelo W3C (World Wide Web Consortium) e a versão 4.0 é a mais utilizada atualmente, juntamente com a versão XHTML 1.1.

 As páginas HTML devem seguir uma estrutura básica, contendo primeiramente uma tag <html> indicando o início da marcação, uma tag <head> que pode abrigar informações referentes a scripts e o título da página (tag <title></title>) que vai ser exibido no browser, além de uma tag <body>, que vai indicar o conteúdo da página. Nos exemplos, vamos utilizar as estruturas mais simples de HTML, para facilitar o entendimento e o aprendizado dos conceitos. Mais informações sobre o HTML podem ser encontradas na seção Saiba Mais e Links.

JavaScript

  O processamento das instruções Javascript é feito pelo browser (o chamado client-side), não sendo processada por um servidor (chamado server-side). Além disso, atualmente, o seu uso se estendeu para fora do browser, sendo incorporado em arquivos e programas, além de que pode ser usado também para processamento server-side.

  Suportado por quase todos os browsers mais comuns utilizados atualmente (como Opera, Google Chrome, Mozilla Firefox e Windows Internet Explorer), o Javascript se difundiu rapidamente entre os programadores, como uma forma fácil de criar interação com o usuário.

Uma listagem do código-fonte de exemplo pode ser visto na Listagem 1, e a execução da página na Figura 1.

 

  Listagem 1. HTML com Javascript simples

<html>

<head>

         <title>Alerta JavaScript</title>

</head>

<body onload="javascript: alert('Mensagem para o usuário');">

</body>

</html>

 

Observando o código, podemos notar uma chamada à função alert(string) do Javascript, que mostra uma mensagem de aviso, modal (que fica acima da janela do browser, no primeiro plano). A chamada à função é feita através do evento onload da tag <body> do HTML. Note que existe nessa tag um atributo chamado onload que aponta para uma rotina Javascript, dessa forma ele é disparado sempre que o elemento <body> for carregado pelo browser. É ideal para rotinas que precisam inicializar elementos de tela ou fazer algum processamento logo no carregamento da página.

Além de chamar as funções já prontas do Javascript, podemos criar nossas próprias funções, para aumentar a funcionalidade do script. Vamos dar uma olhada na Listagem 2 com mais um exemplo, agora melhorando o exemplo anterior.

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
10/08/2011 19:37:00





Artigo - ASP MVC - Revista Easy Net Magazine 13

  Ao pensarmos em aplicações web com o .NET Framework, não podemos deixar de lembrar do ASP.NET tradicional. Ainda hoje muitas empresas utilizam este tipo de programação, onde realmente podemos fazer aplicações incríveis, porém novas necessidades e novos padrões foram surgindo para que facilite ainda mais nosso trabalho. Desta forma, o MVC vem resolver alguns problemas que tínhamos, deixando o código da aplicação limpo e separando a responsabilidade entre as camadas.
  Uma aplicação tradicional ASP.NET é criada com o template padrão de projetos Web da plataforma .NET. Neste tipo de aplicação, temos o código da aplicação separado ou não da página web, no chamado code-behind, onde tratamos eventos e execução de código, como se fosse uma aplicação Windows Forms.
  Há algum tempo, a Microsoft tem dado extrema ênfase ao chamado ASP.NET MVC, que é uma forma de implementação da Microsoft para o padrão de projeto MVC, que significa Model – View – Controller, ou Modelo – Exibição – Controlador. Existem inúmeros outros frameworks para MVC no mercado, em quase todas as linguagens de programação mais utilizadas na web, como PHP, Ruby, dentre outros. Mas antes de aplicarmos este tipo de implementação nos nossos projetos, devemos entender o que é o padrão MVC, e no que ele pode nos ajudar.

O padrão MVC
O MVC é um padrão de projeto. Padrões de projeto podem ser entendidos como uma solução para algum problema, onde seja possível fazer reuso desta em situações semelhantes. O MVC vem como uma proposta bem simples, que se for entendida, fica muito fácil trabalhar com ele. Por ser de fácil implementação, este padrão pode não ser utilizado somente com aplicações Web, mais também com aplicativos Windows Forms ou WPF.
Por padrão, o MVC é dividido em três partes: O Model (modelo de dados), a View (a exibição dos dados) e o Controller (a ponte de ligação entre o Model e a View). Vamos entender cada um deles:
Model
O Model é a nossa representação do dado. Para facilitar o entendimento, vamos assumir que o Model é o que podemos mostrar ao usuário, quais informações vão estar disponíveis, e que valor vai ter cada informação. Um exemplo de Model bem simples pode ser visto na Listagem 1, onde definimos os atributos de um carro.

Listagem 1. Classe Carro.cs
public class Carro
{
    public int CarroId { get; set; }
    public string Marca { get; set; }
    public string Modelo { get; set; }
    public int AnoFabricacao { get; set; }
    public string Cor { get; set; }
    public decimal QuilometragemRodada { get; set; }
}

View
A View vai ser onde exibiremos o dado. Novamente facilitando o entendimento, vamos entender a View como sendo onde exibiremos o dado, se vai ser em tabelas, se vão ser colunas, se vai ser negrito, itálico ou sublinhado. Uma View é um arquivo com HTML e código C# junto, para exibição das informações, que veremos adiante como funciona. Um exemplo de uma View pode ser visto na Listagem 2. Uma View no ASP.NET MVC pode utilizar algumas View Engines para exibição do dado.
Uma View Engine para o ASP.NET MVC, é um framework de exibição das informações. Este framework define quais elementos podem ser exibidos e como devem ser utilizados. A partir da versão 3.0 do ASP.NET MVC, o Visual Studio nos dá duas opções padrão de View Engines, a sintaxe ASPX padrão, como era antigamente antes do code-behind, e o Razor, uma nova forma mais fluída de inserir código nas páginas. Porém, não ficamos limitados a estes dois, podemos utilizar outras View Engines como Spark e NHaml.

Listagem 2. View
    @ViewBag.Title
   
   
 
    @RenderBody()

Controller
Por fim, temos o Controller, que é o responsável pela comunicação entre o Model e a View. Novamente, podemos entender como se o Controller fosse quem definisse o que podemos fazer com o dado. Um Controller vai ter as ações que podem ser executadas dentro do sistema, limitando as opções do usuário. Um exemplo de um Controller pode ser visto na Listagem 3.

Listagem 3. Controller
public class CarrosController : Controller
{
    //
    // GET: /Carros/
    public ActionResult Index()
    {
        return View();
    }
 
    //
    // POST: /Carros/Create
     [HttpPost]
    public ActionResult Create(FormCollection collection)
    {
        try
        {
            // TODO: Add insert logic here
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }
 
    //
    // POST: /Carros/Edit/5
    [HttpPost]
    public ActionResult Edit(int id, FormCollection collection)
    {
        try
        {
            // TODO: Add update logic here
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }
}

Quando criamos um projeto do tipo web MVC no Visual Studio 2010, temos dois projetos padrão: o MVC Application (um template onde temos algumas funcionalidades básicas implementadas) e o MVC Empty Web Application (solução vazia, somente com a estrutura de pastas, que vamos tratar a seguir). Para trabalharmos com versões mais recentes do MVC, como a versão 3, devemos instalar o Visual Studio 2010 SP1 e o ASP.NET MVC 3 Tools Update, os quais o download está na seção links no final deste artigo. Podemos ver a criação do projeto MVC na tela ilustrada pela Figura 1.
Além deste padrão de tipos de projeto, o ASP.NET MVC mantém algumas convenções de nomes de pasta e estrutura de arquivos que devemos respeitar. Desta forma, o próprio MVC se encarrega de saber o que é o que dentro do projeto, facilitando a vida do programador. Ao criar um projeto com o MVC no Visual Studio 2010, podemos ver que temos algumas pastas pré-definidas no Solution Explorer. A Figura 2 mostra esta estrutura.
    Vamos entender o que cada uma destas pastas faz. A pasta Content é a pasta padrão de conteúdo da página, é nela que vão ficar os temas, arquivos CSS e imagens da nossa aplicação. Controllers é a pasta em que os arquivos .cs dos Controllers da aplicação serão colocados. É pelo nome do Controller e sua Action interna que podemos acessar as diferentes páginas da nossa aplicação. O padrão que o MVC assume para todos os arquivos que estão dentro desta pasta é que eles tenham um nome mais “Controller”, como podemos ver que um Controller para o model Carros tem o nome CarrosController.
A pasta Models é onde estarão localizados os nossos modelos, os dados que serão trafegados dentro da aplicação. É nessa pasta em que podemos ter, por exemplo, o contexto do Entity Framework, fazendo o acesso aos dados, ou qualquer outro framework ORM (Object Relational Mapping, em inglês). Um framework ORM vem com o intuito de mapear as tabelas existentes em um banco de dados para classes do nosso modelo, além de implementar todas as formas de persistência dos dados mapeados, tratando inclusão, exclusão e alteração dos mesmos. No MVC, se pensarmos em uma aplicação onde existe consumo de dados em uma base de dados, ou persistência dos mesmos, fazer uso de um ORM pode facilitar muito o trabalho, como veremos mais a frente no exemplo.
A pasta Scripts contém todos os arquivos de Javascript e/ou outras linguagens de script. Por padrão, quando criamos uma aplicação do zero, esta pasta vem preenchida com os scripts para uso do jQuery. Muito comum nas criações de páginas web com interatividade, o Javascript não é uma linguagem nova, mas somente nos últimos anos vem ganhando melhorias e destaque. Uma das principais bibliotecas Javascript hoje é a library jQuery, a qual facilita muito o trabalho do programador, com efeitos, seletores e extensões para os mais diversos fins em aplicações web.
A pasta Views é onde estarão os arquivos .cshtml (para aplicações MVC utilizado a View Engine Razor) e aspx. É nela que a parte visual do site vai estar armazenada, sendo tanto páginas com ou sem código. A pasta Shared interna é onde ficam armazenadas as Views que vão ser compartilhadas entre si. Como convenção, ao criar uma View que é retornada por uma Action dentro do Controller, normalmente deixa-se o nome da View como o nome da Action.
Entendido os princípios anteriores, podemos colocar a mão na massa e experimentar a criação de um controle de Estacionamento em MVC, onde poderemos cadastrar os carros que vão estar estacionados. Vamos fazer um modelo simples, com uma classe, acessando um banco de dados SQL Server para cadastro, e vamos ter quatro páginas, uma página para mostrar os carros cadastrados (nossa página Index.cshtml), uma de cadastro (Create.cshtml), uma de edição (Edit.cshtml) e também uma de exclusão (Delete.cshtml). Nestas páginas vamos utilizar os helpers do Razor e do MVC para nos ajudar com a edição, além do que muitas das ações que vamos fazer serão feitas por Wizards, agilizando ainda mais a criação do exemplo.
O ASP.NET MVC tem o que chamamos de Helpers. Estes helpers na verdade são funções do próprio MVC, que facilitam o nosso trabalho. Por exemplo, temos um Helper que pode gerar os campos de um formulário, como vamos ver nas Views de edição do projeto de exemplo. Outros Helpers podem ter mais funcionalidades, como também podemos criar os nossos conforme houver necessidade. Eles são utilizados diretamente no código HTML das Views.
Criando uma aplicação ASP.NET MVC
Vamos criar um projeto do tipo ASP.NET MVC, e na pasta Model, vamos adicionar (botão direito do mouse > Add > New Item) um ADO.NET Entity Data Model (Figura 3), acessando um banco de dados SQL Server. O script do banco de dados, vocês podem ver na Listagem 4. Vou chamar o Data Model de EstacionamentoModel. Vamos manter as configurações padrão do modelo, a exceção da pluralização de nomes, por isso vamos desmarcar esta opção ao gerar o modelo, como mostrado na Figura 4.

Listagem 4. Script do Banco de Dados
CREATE TABLE [dbo].[Carros] (
  [CarroId] int IDENTITY(1, 1) NOT NULL,
  [Marca] varchar(20) COLLATE Latin1_General_CI_AS NULL,
  [Modelo] varchar(20) COLLATE Latin1_General_CI_AS NULL,
  [AnoFabricacao] int NULL,
  [Cor] varchar(30) COLLATE Latin1_General_CI_AS NULL,
  [QuilometragemRodada] decimal(15, 3) NULL,
  CONSTRAINT [PK_Carros] PRIMARY KEY CLUSTERED ([CarroId])
)
ON [PRIMARY]

Tendo o modelo configurado, agora podemos focar nos Controllers da aplicação. Ao criá-los com os Wizards do Visual Studio, podemos criar um Controller específico para as classes que compõem o Model, porém precisamos compilar o nosso projeto antes. Por isso, vamos realizar um Build da solução completa, e vamos adicionar um novo Controller em sua respectiva pasta, clicando com o botão direito do mouse > Add > Controller.
Ao abrir o Wizard, podemos ver que precisamos informar o nome deste Controller (sempre tendo em mente as convenções de nome, no caso teremos um Controller CarrosControler), e podemos escolher dentre três opções: criar um Controller vazio, criar um Controller com a geração automática das Views e das Actions de leitura e escrita de dados (opção mais rápida) e gerar um Controller com as Actions de leitura e escrita vazias. Vamos escolher este último para podermos entender cada parte do Controller enquanto codificamos a sua execução. A Figura 5 vai ilustrar a criação do Controller.
   Vamos nos atentar às informações que foram colocadas na geração do arquivo. Primeiro vamos ver as ações que foram criadas, que por padrão são Index, Details, duas Actions Create, duas Actions Edit e duas Actions Delete. A Action Index vamos manter como Index mesmo, porém, podemos notar que foram criadas duas Actions para as outras tarefas do Controller, uma sendo GET e outra POST, sendo a POST decorada com o atributo HttpPost por padrão na criação do Controller. Na Action GET vamos escrever o código que vai nos retornar as informações iniciais que queremos, por exemplo, ao editarmos um Carro, temos que mostrar as informações originais do mesmo. O POST vai enviar as informações para o formulário, usando método HTTP POST. Podemos modificar o comportamento para o método GET do HTTP, mudando de [HttpPost] para [HttpGet].

Nota do DevMan
O HTTP tem dois métodos de envio de formulários, GET e POST. Em um formulário html comum, informamos por qual método HTTP vamos enviar os dados para processamento através do atributo method da tag . No método GET as informações transmitidas pelo formulário vão fazer parte da URL que foi processada, sendo passado para processamento através das QueryStrings, que são aquelas informações passadas depois de um sinal de interrogação (?) na URL da página, por exemplo cliente.aspx?codigoCliente=5. Já no método POST, estas informações ficam invisíveis para o usuário. O POST é o padrão utilizado pelo MVC.

Então vamos codificar a primeira Action da página, a Index. Será por ela que vamos criar os caminhos que vão nos direcionar às outras ações da página. Ao abrirmos o Controller, podemos ver que ainda não temos nada, por isso vamos inserir algumas linhas de código que vão retornar todos os carros que temos no nosso banco de dados. A Listagem 5 vai mostrar o necessário para retornar os dados dos Carros, utilizando Entity Framework. O interessante de utilizarmos um ORM como o Entity Framework para trabalhar com o MVC é que, no nosso modelo temos todas as classes prontas, criadas na geração do Entity Data Model, porém não necessariamente precisamos ficar preso a ele. Outros frameworks ORM também são uma excelente escolha para trabalhar com o MVC, como NHibernate. O interessante é que tenhamos as classes bem desenhadas no nosso Model, pois a partir delas que teremos o resto da aplicação. Na primeira linha, vamos ter a declaração do nosso contexto de acesso a dados, e em seguida estou pedindo para retornar a tabela toda de carros, sem nenhum filtro, para que possamos enviá-la no construtor da View, para que ela seja mostrada em forma de tabela também.

Listagem 5. Action Index
public ActionResult Index()
{
     var contexto = new EstacionamentoEntities();
     return View(contexto.Carros);
}

Para que possamos facilitar a criação da View, podemos clicar com o botão direito do mouse em cima da palavra View, e selecionar a primeira opção Add View. Feito isso podemos fazer algumas configurações da View, e depois o próprio Visual Studio vai criá-la na pasta correta. A Figura 6 vai ilustrar esta tela. Um detalhe importante é que, como estamos criando uma View que vem de um Model específico, podemos “tipar” a View, para que ela saiba que vai mostrar informações da classe Carros, por exemplo. Neste caso, essa nossa primeira View vamos marcar Create a strongly-typed view, e em Model class vamos selecionar a nossa classe Carros, e em Scaffold Templates (são templates padrão de controles), vamos selecionar que esta View vai fazer um List das informações que lhe são passadas. A View Engine vamos deixar como a Razor.
Ao término da criação da View, podemos já executar o nosso projeto, e vamos poder ver que ele está funcionando, sem precisarmos fazer mais nada. Ao abrir o browser, no endereço vamos complementar com /Carros. Assim que a página carregar, vamos poder ver que ele já vai nos listar os carros, e ainda inserir alguns controles padrão, como Adicionar um Novo registro, editar ou excluir os já existentes, sem termos escrito código para isso.
Para entender como isso foi feito, vamos dar uma olhada na View que foi gerada, em seu código. Na Listagem 6 podemos ver que a estrutura da página é HTML comum, o que vai fazer a diferença são os Helpers que estão inseridos na página. Para trabalharmos com os Helpers e acessar as funções do C# utilizando Razor. Primeiro devemos inserir o sinal de arroba “@”. Dessa forma ele sabe que a partir daquele ponto haverá comandos em linguagem de programação. Na primeira linha, dizemos à View que tipo de Model ela está recebendo, neste caso como retornamos a tabela do banco através do Entity Framework, a View Index vai receber um IEnumerable do tipo Carros. Embaixo podemos ver uma variável dynamic ViewBag. Quando precisamos enviar alguma informação para a view, que não está diretamente relacionada ao Model desta, podemos utilizar a variável ViewBag. Neste caso, estamos passando o Title da página para a View _Layout.cshtml, dentro da pasta Shared. Esta View, se fizermos uma relação com os Web Forms, podemos considerar como uma Master Page. Se abrirmos o seu código, podemos ver o Helper RenderBody(), fazendo o mesmo papel que o ContentPlaceHolder faz nas Master Pages. Seguindo, vamos ter um Helper chamado Html.ActionLink(). Este Helper pode criar links para as ações dentro de Controllers. Neste caso, estamos criando um link para a Action Create dentro do Controller Carros. Se quiséssemos redirecionar para outra Action dentro de outro Controller, devemos passar como parâmetro também para este Helper o nome do Controller. Para deixarmos menos mecânico, vamos modificar o Create New para Adicionar Carro. Em seguida temos a criação da tabela que vai mostrar os dados, lembrando que a maioria das telas vai utilizar HTML puro para criação dos controles de exibição, contudo existem também componentes próprios para MVC prontos, que podem facilitar o trabalho. 
Continuando, temos um foreach percorrendo os items do Model, e temos mais um Helper, o Html.DisplayFor(). Com este Helper, vamos fazer a exibição dos dados do Model, neste caso passando uma expressão lambda indicando que campo do item do modelo deve ser exibido. Para finalizar, ainda temos uma nova sobrecarga do Helper Html.ActionLink, onde vamos passar através de um tipo anônimo a informação que precisamos passar como parâmetro da Action, por exemplo a Action Edit precisa do id do carro que queremos editar. Vamos trocar também de Edit, Details e Delete para Editar, Detalhes e Excluir.

Listagem 6. Index.cshtml
@model IEnumerable
@{
    ViewBag.Title = "Index";
}

Index

    @Html.ActionLink("Adicionar Carro", "Create")

   
       
            Marca
       
       
            Modelo
       
       
            AnoFabricacao
       
       
            Cor
       
       
            QuilometragemRodada
       
       
   
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
07/07/2011 00:00:00





Artigo - Mapeamento O/R com ADO.NET Entity Framework - Revista easy .net Magazine 12

Ao se criar uma aplicação, seja para estudo, para clientes ou para utilização interna, é uma boa prática usar um padrão que seja reutilizável e que possa se adaptar a uma nova necessidade. Desta forma, ao se tratar do assunto banco de dados é preciso ter em mente que uma forma simples e direta, deve-se desacoplar a aplicação para que o cliente não fique obrigado a utilizar um determinado SGBD. Neste artigo, será criada uma aplicação console que consumirá um banco de dados através do Entity Framework, consultando, incluindo e alterando informações no mesmo.

Com o .NET Framework 4.0 a Microsoft trouxe várias melhorias e dentre elas o ADO.NET Entity Framework também conhecido apenas como EF. O EF está disponível também no .NET Framework 3.5 SP1.

Bancos de Dados

Bancos de dados são, basicamente, repositórios de dados que permitem consulta, inclusão, remoção e alteração de informações pré-existentes. Existem inúmeros bancos de dados no mercado hoje, podendo citar o SQL Server da Microsoft, o Oracle da Oracle Corporation, o MySQL também pertencente a Oracle, dentre outros. Uma das maiores dificuldades hoje, dentro de um projeto de software, é criar um sistema que atenda clientes que possuam bancos de dados diferentes sem haver a necessidade de se alterar o software ou, com menor impacto possível. A primeira coisa que vem à cabeça é utilizar uma arquitetura ou tecnologia que permita que a implementação de um método RetornarClientesPorCnpj, por exemplo, seja a mesma caso o banco de dados utilizado seja um SQL Server ou Oracle.

Um framework altamente escalável e consolidado hoje é o NHibernate. Com ele, é possível construir software totalmente independente do SGBD. Contudo, a Microsoft resolveu integrar uma solução própria para isto criando o ADO.NET Entity Framework. Ferramenta que faz a mesma função que o NHibernate, tirando a responsabilidade da aplicação de saber em qual SGBD os dados serão persistidos. A Figura 1 explica de forma gráfica qual a relação entre as camadas de um software que faz uso do EF.

 

O Mapeamento Objeto-Relacional

Quando se pensa em mapeamento objeto relacional, se pensa em uma forma de fazer com que a linguagem de programação utilizada entenda e saiba lidar com os tipos complexos no banco de dados, no caso, representar uma tabela ou um registro do banco de dados na forma de classes e objetos. Qual a vantagem de trabalhar com uma aplicação construída desta maneira? A partir do momento em que se começa a trabalhar com objetos, se trabalha com o próprio framework em si, o que não limita o desenvolvimento ao que o framework fornece para classes de acesso a dados comuns. O EF, a partir da versão 4 disponível no .NET 4.0, permite trabalhar com duas formas de mapeamento:

·         Modelo Model-First: geralmente a primeira coisa que se pensa é em como fazer o banco de dados; depois de feito ele é implementado no SGBD ficando pronto para o uso e todo o sistema de baseia nessa estrutura de dados. Este modo utiliza uma abordagem um pouco diferente. Ao compreender a regra de negócio, classes são construídas para atender os requisitos para então, construir o banco de dados baseando-se nas classes. Modelo Schema-First: Este emprega a forma tradicional; O banco de dados é escrito primeiro e depois somente é que o mesmo é importado para o modelo do EF.

O ADO.NET Entity Framework

O Entity Framework, seguindo uma definição bem simples, é um conjunto de utilidades e recursos que desobriga o desenvolvedor a codificar manualmente o acesso a dados em uma aplicação, deixando um Framework realizar a forma mais rápida e eficiente de construção. Com o Entity Framework, o programador não tem mais a necessidade de, por exemplo, saber a fundo a linguagem SQL, fazendo com que ele mantenha o foco na regra de negócio da aplicação. No coração de uma aplicação que utiliza o Entity Framework como forma de acesso a dados, existe um arquivo com a extensão EDMX, que é chamado de Entity Data Model. Neste arquivo é que vai estar contida toda a informação relevante para que o mapeamento entre as classes de uma aplicação e o banco de dados seja feito de forma correta. Existem alguns comandos específicos para poder consumir o EDMX, o que será visto a seguir ao implementar o primeiro exemplo. Juntamente com o Entity Framework é utilizado o LINQ para que os objetos sejam manipulados de forma semelhante ao SQL.

Language Integrated Query (LINQ)

A LINQ é uma forma de consulta a coleções de objetos em que a sua sintaxe é parecida com um comando SQL. Existem vários tipos de LINQ, como a LINQ to Entities (utilizado para trabalhar com o Entity Framework), a LINQ to SQL, a LINQ to DataSets etc. Com a LINQ é possível “esquecer” o SQL e trabalhar diretamente com objetos. O código a seguir mostra um exemplo de consulta em LINQ que traz todos os números pares de uma coleção de inteiros:

 

 var inteiros =

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
06/06/2011 00:00:00





 

Estudante de Análise e Desenvolvimento de Sistemas de Informação na Universidade Tecnológica Federal do Paraná (UTFPR), Campus Cornélio Procópio, há 4 anos estudando a plataforma .NET e atualmente trabalhando com suporte e atendimento ao cliente em Cornélio Procópio.
Arquivo de atualizações
 2011

Estatísticas do Autor:
Número de posts: 3
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
Todos os Direitos Reservados a DevMedia Group