AppDay 2013 em Belo Horizonte

587x292

O que é o AppDay?

Dia em que toda comunidade de desenvolvedores e entusiastas por tecnologia do país serão convidados a participar de um evento virtual único.

A Microsoft apoiará cada desenvolvedor que nesta data, tiver interesse em criar e submeter um aplicativo do Windows 8 para a Windows Store.

Todos participantes do evento AppDay receberão um treinamento online de 1 dia totalmente gratuito.

Em diversas regiões do país este evento acontecerá fisicamente, em universidades e demais instituições de ensino. Desta maneira, o desenvolvedor receberá o treinamento em pessoa, que será ministrado pelo time de Evangelistas da Microsoft Brasil e outros profissionais habilitados.

Caso o desenvolvedor não possa de deslocar para uma dessas unidades, será possível acompanhar o treinamento online, via Internet, em tempo real, de modo gratuito.

Em Belo Horizonte, teremos o AppDay em 4 locais: Inforium, PUC Minas São Gabriel, PUC Minas Barreiro e Bizmart. Abaixo seguem links para inscrições:

Maiores informação no site do AppDay ou envie email para comunidadetecnicamsbh@outlook.com

Iniciando com ASP.NET 4.5 Web Forms – Parte 3 – Criando o DAL (Data Access Layer)

Esse tutorial descreve como criar, acessar, e revisar dados de uma base de dados usando ASP.NET Web Forms e Entity Framework Code First. É continuação do tutorial anterior “Criando o Projeto” e é parte da série de tutoriais Wingtip Toy Store. Quando você completar esse tutorial, terá construído um grupo de classes de acesso a dados que estão na pasta Models do projeto.

1 O que aprenderá:

  • Como criar o modelo de dados.
  • Como inicializar e alimentar a base de dados.
  • Como atualizar e configurar a aplicação para suportar a base de dados.

Essas são as características introduzidas no tutorial:

  • Entity Framework Code First
  • LocalDB
  • Data Annotations

2 Criando o Modelo de Dados

Entity Framework é um framework ORM (Object-Relational Mapping). Permite que você trabalhe com dados relacionais como objetos, eliminando a maioria de código de acesso a dados que você usualmente precisa escrever. Usando Entity Framework, você pode emitir consultas usando LINQ, e então recuperar e manipular dados como objetos fortemente tipados. LINQ fornece padrões para consulta e atualização de dados. Usar Entity Framework permite que você foque em criar o resto de sua aplicação, ao invés de focar nos fundamentos de acesso a dados. Posteriormente nesse tutorial, será mostrado como usar dados para popular navegação e consulta de produtos.

Entity Framework suporta um paradigma de desenvolvimento chamado Code First. Code First permite que você defina seus modelos de dados usando classes. Uma classe é um construtor que permite que você crie seus próprios tipos customizados agrupando variáveis de outros tipos, métodos e eventos. Você pode mapear classes para uma base de dados existente ou usá-las para gerar uma base de dados. Nesse tutorial, você criará o modelo de dados escrevendo classes de modelos de dados. E então, permitirá que o Entity Framework crie a base de dados dessas novas classes.

Começaremos criando entity classes que definem modelos de dadps para a aplicação Web Forms. Depois criará uma context class que gerencia as entity classes e fornece acesso a dados à base de dados. Criará também uma classe inicializadora que será usada para popular a base de dados.

2.1 Entity Framework e Referências

Por padrão, Entity Framework está incluso quando você cria uma nova aplicação ASP.NET usando o template Web Forms. Entity Framework pode ser instalado, desinstalado, e atualizado com o NuGet.

O pacote NuGet inclui os seguintes assemblies no seu projeto:

  • EntityFramework.dll – código usado pelo Entity Framework.
  • EntityFramework.SqlServer.dll – provider do Microsoft SQL Server para Entity Framework.

2.2 Entity Classes

As classes que você cria para definir o schema dos dados são chamadas entity classes. Se você é novo no design de base de dados, pense nas entity classes como definições de tabelas de uma base de dados. Cada propriedade na classe especifica uma coluna na tabela da base de dados. Essas classes fornecem uma estrutura leve, interface objeto-relacional entre código orientado a objeto e a estrutura relacional da tabela da base de dados.

Nesse tutorial, você começará adicionando uma entity class simples representando os schemas para produtos e categorias. A classe produtos conterá definições para cada produto. O nome de cada membro da classe produtos será ProductID, ProductName, Description, ImagePath, UnitPrice, CategoryID, e Category. A classe categoria conterá definições para cada categoria que um produto pode pertencer, como Car, Boat, ou Plane. O nome de cada membro da classe categoria será CategoryID, CategoryName, Description, e Products. Cada produto pertencerá a uma das categorias. Essas entity classes serão adicionadas a pasta existente no projeto chamado Models.

  1. Na Solution Explorer, clique com o botão direito na pasta Models e então selecione Add -> New Item.
  2. Figura 1 - Parte 3

    A caixa de diálogo Add New Item é exibida.

  3. Em Visual C# do painel Installed do lado esquerdo, selecione Code.
  4. Figura 2 - Parte 3

  5. Selecione Class no painel do centro e nomeie essa classe como Product.cs.
  6. Clique em Add. O novo arquivo da classe é exibido no editor.
  7. Substitua o código padrão pelo seguinte:
  8. using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.ComponentModel.DataAnnotations;
    
    namespace WingtipToys.Models
    {
    public class Product
    {
            [ScaffoldColumn(false)]
            public int ProductID { get; set; }
    
            [Required, StringLength(100), Display(Name = "Name")]
            public string ProductName { get; set; }
    
            [Required, StringLength(10000), Display(Name = "Product Description"), DataType(DataType.MultilineText)]
    
            public string Description { get; set; }
    
            public string ImagePath { get; set; }
    
            [Display(Name = "Price")]
            public double? UnitPrice { get; set; }
    
            public int? CategoryID { get; set; }
    
            public virtual Category Category { get; set; }
        }
    }
    
    
  9. Crie outra class repetindo os passos 1 até 4, entretanto, nomeie a nova classe como Category.cs e substitua o código padrão pelo seguinte:
  10. 
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.ComponentModel.DataAnnotations;
    
    namespace WingtipToys.Models
    {
        public class Category
        {
            [ScaffoldColumn(false)]
            public int CategoryID { get; set; }
    
            [Required, StringLength(100), Display(Name = "Name")]
            public string CategoryName { get; set; }
    
            [Display(Name = "Product Description")]
            public string Description { get; set; }
    
            public virtual ICollection<Product> Products { get; set; }
        }
    }
    
    

Como mencionado anteriormente, a classe Category representa o tipo de produto que a aplicação é projetada para vender (como Carros, Boats, Rockets, dentre outros), e a classe Product representa os produtos individuais (brinquedos) na base de dados. Cada instância de um objeto Product corresponderá a uma linha dentro de uma tabela de base de dados relacional, e cada propriedade da classe Product mapeará uma coluna na tabela de base de dados relacional. Posteriormente nesse tutorial, será revisado os dados dos produtos contidos na base de dados.

2.3 Data Annotations

Você deve ter notado que certos membros das classes tem atributos especificando detalhes sobre o membro, como ScaffoldColumn(false). Isso são data annotations. Os atributos data annotation podem descrever como validar entrada de usuário para aquele membro, especificar formatação para ele, e especificar como é modelado quando a base de dados é criada.

3 Context Class

Para começar usar as classes para acesso a dados, você deve definir uma context class. Como mencionado anteriormente, a context class gerencia as entity classes (como a classe Product e Category) e fornece acesso a dados para a base de dados.

Esse procedimento adicionada uma nova context class em C# para a pasta Models.

  1. Clique com o botão direito na pasta Models e então selecione Add -> New Item.
  2. Selecione Class do painel central, e nomeie como ProductContext.cs e clique em Add.
  3. Substitua o código padrão contido na classe pelo seguinte:
  4. using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data.Entity;
    
    namespace WingtipToys.Models
    {
        public class ProductContext : DbContext
        {
            public ProductContext()
                : base("WingtipToys")
            { }
    
            public DbSet<Category> Categories { get; set; }
            public DbSet<Product> Products { get; set; }
        }
    }
    
    

Esse código adiciona o namespace System.Data.Entity para que você possa ter acesso ao core de todas as funcionalidades do Entity Framework, que inclui a capacidade de consultar, inserir, atualizar, e deletar dados trabalhando com objetos fortemente tipados.

A classe ProductContext representa o contexto da base de dados do Entity Framework, que manipula a busca, armazenamento, e atualização das instâncias da classe Product na base de dados. A classe ProductContext deriva da classe base DbContext fornecido pelo Entity Framework.

4 Classe Inicializadora

Será necessário executar alguma lógica customizada para inicializar a base de dados na primeira vez que o context é usado. Isso permitirá alimentar os dados a serem adicionados na base de dados para que você possa imediatamente exibir produtos e categorias.

Esse procedimento adiciona uma nova classe inicializadora em C# na pasta Models.

  1. Crie outra classe na pasta Models e nomeie como ProductDatabaseInitializer.cs.
  2. Substitua o código padrão contido na classe pelo seguinte:
  3. 
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data.Entity;
    
    namespace WingtipToys.Models
    {
        public class ProductDatabaseInitializer : DropCreateDatabaseIfModelChanges<ProductContext>
        {
            protected override void Seed(ProductContext context)
            {
                GetCategories().ForEach(c => context.Categories.Add(c));
                GetProducts().ForEach(p => context.Products.Add(p));
            }
    
            private static List<Category> GetCategories()
            {
                var categories = new List<Category> {
                    new Category
                    {
                        CategoryID = 1,
                        CategoryName = "Cars"
                    },
                    new Category
                    {
                        CategoryID = 2,
                        CategoryName = "Planes"
                    },
                    new Category
                    {
                        CategoryID = 3,
                        CategoryName = "Trucks"
                    },
                    new Category
                    {
                        CategoryID = 4,
                        CategoryName = "Boats"
                    },
                    new Category
                    {
                        CategoryID = 5,
                        CategoryName = "Rockets"
                    }
                };
    
                return categories;
            }
    
            private static List<Product> GetProducts()
            {
                var products = new List<Product> {
                    new Product
                    {
                        ProductID = 1,
                        ProductName = "Convertible Car",
                        Description = "This convertible car is fast! The engine is powered by a neutrino based battery (not included)." + 
                                      "Power it up and let it go!", 
                        ImagePath="carconvert.png",
                        UnitPrice = 22.50,
                        CategoryID = 1
                   },
                    new Product 
                    {
                        ProductID = 2,
                        ProductName = "Old-time Car",
                        Description = "There's nothing old about this toy car, except it's looks. Compatible with other old toy cars.",
                        ImagePath="carearly.png",
                        UnitPrice = 15.95,
                         CategoryID = 1
                   },
                    new Product
                    {
                        ProductID = 3,
                        ProductName = "Fast Car",
                        Description = "Yes this car is fast, but it also floats in water.",
                        ImagePath="carfast.png",
                        UnitPrice = 32.99,
                        CategoryID = 1
                    },
                    new Product
                    {
                        ProductID = 4,
                        ProductName = "Super Fast Car",
                        Description = "Use this super fast car to entertain guests. Lights and doors work!",
                        ImagePath="carfaster.png",
                        UnitPrice = 8.95,
                        CategoryID = 1
                    },
                    new Product
                    {
                        ProductID = 5,
                        ProductName = "Old Style Racer",
                        Description = "This old style racer can fly (with user assistance). Gravity controls flight duration." + 
                                      "No batteries required.",
                        ImagePath="carracer.png",
                        UnitPrice = 34.95,
                        CategoryID = 1
                    },
                    new Product
                    {
                        ProductID = 6,
                        ProductName = "Ace Plane",
                        Description = "Authentic airplane toy. Features realistic color and details.",
                        ImagePath="planeace.png",
                        UnitPrice = 95.00,
                        CategoryID = 2
                    },
                    new Product
                    {
                        ProductID = 7,
                        ProductName = "Glider",
                        Description = "This fun glider is made from real balsa wood. Some assembly required.",
                        ImagePath="planeglider.png",
                        UnitPrice = 4.95,
                        CategoryID = 2
                    },
                    new Product
                    {
                        ProductID = 8,
                        ProductName = "Paper Plane",
                        Description = "This paper plane is like no other paper plane. Some folding required.",
                        ImagePath="planepaper.png",
                        UnitPrice = 2.95,
                        CategoryID = 2
                    },
                    new Product
                    {
                        ProductID = 9,
                        ProductName = "Propeller Plane",
                        Description = "Rubber band powered plane features two wheels.",
                        ImagePath="planeprop.png",
                        UnitPrice = 32.95,
                        CategoryID = 2
                    },
                    new Product
                    {
                        ProductID = 10,
                        ProductName = "Early Truck",
                        Description = "This toy truck has a real gas powered engine. Requires regular tune ups.",
                        ImagePath="truckearly.png",
                        UnitPrice = 15.00,
                        CategoryID = 3
                    },
                    new Product
                    {
                        ProductID = 11,
                        ProductName = "Fire Truck",
                        Description = "You will have endless fun with this one quarter sized fire truck.",
                        ImagePath="truckfire.png",
                        UnitPrice = 26.00,
                        CategoryID = 3
                    },
                    new Product
                    {
                        ProductID = 12,
                        ProductName = "Big Truck",
                        Description = "This fun toy truck can be used to tow other trucks that are not as big.",
                        ImagePath="truckbig.png",
                        UnitPrice = 29.00,
                        CategoryID = 3
                    },
                    new Product
                    {
                        ProductID = 13,
                        ProductName = "Big Ship",
                        Description = "Is it a boat or a ship. Let this floating vehicle decide by using its " + 
                                      "artifically intelligent computer brain!",
                        ImagePath="boatbig.png",
                        UnitPrice = 95.00,
                        CategoryID = 4
                    },
                    new Product
                    {
                        ProductID = 14,
                        ProductName = "Paper Boat",
                        Description = "Floating fun for all! This toy boat can be assembled in seconds. Floats for                   minutes!" + 
                                      "Some folding required.",
                        ImagePath="boatpaper.png",
                        UnitPrice = 4.95,
                        CategoryID = 4
                    },
                    new Product
                    {
                        ProductID = 15,
                        ProductName = "Sail Boat",
                        Description = "Put this fun toy sail boat in the water and let it go!",
                        ImagePath="boatsail.png",
                        UnitPrice = 42.95,
                        CategoryID = 4
                    },
                    new Product
                    {
                        ProductID = 16,
                        ProductName = "Rocket",
                        Description = "This fun rocket will travel up to a height of 200 feet.",
                        ImagePath="rocket.png",
                        UnitPrice = 122.95,
                        CategoryID = 5
                    }
                };
    
                return products;
            }
        }
    }
    
    

Como você pode ver no código acima, quando a base de dados é criada e inicializada, a propriedade Seed é substituída e definida. Quando a propriedade Seed é definida, os valores de categorias e produtos são usados para popular a base de dados. Se você tentar atualizar os dados alimentados modificando o código acima depois que a base de dados for criada, você não verá nenhuma atualização quando executar a aplicação Web. A razão é que o código acima usa uma implementação da classe DropCreateDatabaseIfModelChanges para reconhecer se o model foi alterado antes de resetar os dados alimentados. Se nenhuma alteração for feita às entity classes Category e Product, a base de dados não será reinicializada com os dados alimentados.

Nota: se você quisesse que a base de dados fosse recriada toda hora que a aplicação for executada, poderia usar a classe DropCreateDatabaseAlways ao invés da classe DropCreateDatabaseIfModelChanges. Entretanto para essa série de tutoriais, use a classe DropCreateDatabaseIfModelChanges.

Nesse ponto do tutorial, você terá uma pasta Models com quatro novas classes e uma classe padrão:

Figura 3 - Parte 3

5 Configurando a Aplicação para usar Data Model

Agora que você criou as classes que representam os dados, deve-se configurar a aplicação para usar as classes. No arquivo Global.asax, você adiciona código para inicializar o model. No arquivo Web.config você adiciona informação que diz a aplicação qual base de dados será usada para armazenar os dados que são representados pelas novas classes de dados. O arquivo Global.asax pode ser usado para manipular eventos ou métodos da aplicação. O arquivo Web.config permite que você controle a configuração de sua aplicação Web.

5.1 Atualizando o arquivo Global.asax

Para inicializar os data models quando a aplicação executar, você atualizará o manipulador Application_Start no arquivo Global.asax.

Nota: na Solution Explorer, você pode selecionar o arquivo Global.asax ou Global.asax.cs para editar o arquivo Global.asax.cs.

  1. Adicione o seguinte código no método Application_Start no arquivo Global.asax.cs.
  2. 
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Optimization;
    using System.Web.Routing;
    using System.Web.Security;
    using System.Web.SessionState;
    using System.Data.Entity;
    using WingtipToys.Models;
    
    namespace WingtipToys
    {
        public class Global : HttpApplication
        {
            void Application_Start(object sender, EventArgs e)
            {
                // Code that runs on application startup
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                BundleConfig.RegisterBundles(BundleTable.Bundles);
    
                //Initialize the product database.
                Database.SetInitializer(new ProductDatabaseInitializer());
            }
        }
    }
    
    

Como mostrado no código acima, quando a aplicação iniciar, a aplicação especifica o inicializador que irá executar durante a primeira vez que o dado é acessado. Os namespaces adicionais (using System.Data.Entity e WingtipToys.Models) são necessários para acessar o objeto Database e o objeto ProductDatabaseInitializer.

5.2 Modificando o arquivo Web.config

Embora o Entity Framework Code First gerará uma base de dados para você num local padrão quando a base de dados é populada com dados, adicionar sua própria informação de conexão na sua aplicação te dá controle a localização da base de dados. Você especifica essa conexão da base de dados usando uma connection string no arquivo Web.config da aplicação na raíz do projeto. Adicionando uma nova connection string, você pode direcionar a localização da base de dados (wingtiptoys.mdf) para ser construída no diretório de dados da aplicação (App_Data), em vez de sua localização padrão. Fazer essa mudança permite que você encontre e inspecione posteriormente o arquivo da base de dados nesse tutorial.

  1. Na Solution Explorer, encontre e abra o arquivo Web.config.
  2. Adicione a connection string abaixo na seção do arquivo Web.config, como segue:
  3. 
    <connectionStrings>
        <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-WingtipToys-20140407092028.mdf;Initial Catalog=aspnet-WingtipToys-20140407092028;Integrated Security=True" providerName="System.Data.SqlClient" />
        <add name="WingtipToys" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\wingtiptoys.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
      </connectionStrings>
    
    

Quando a aplicação for executada pela primeira vez, construirá a base de dados no local especificado pela connection string. Mas antes de executar a aplicação, vamos fazer o build da mesma.

6 Buildando a Aplicação

Para garantir que todas as classes e alterações da sua aplicação Web funcionaram, você deve buildar a aplicação.

  1. No menu Debug, selecione Build WingtipToys. A janela Output é exibida, e se tudo correu bem, você verá uma mensagem de sucesso.

Figura 4 - Parte 3

Se sua execução der erro, cheque os passos anteriores. A informação na janela Output indicará quais arquivos tem um problema e onde no arquivo uma mudança e requerida. Essa informação permitirá que você determine qual parte dos passos anteriores precisam ser revisados e corrigidos no seu projeto.

Sumário

Nesse tutorial você criou o modelo de dados, assim como, adicionou o código que será usado para inicializar e alimentar a base de dados. Você também configurou a aplicação para usar o modelo de dados quando a aplicação é executada.

No próximo tutorial, você atualizará a Interface de Usuário, adicionar navegação, e recuperar os dados da base de dados. Isso resultará na base de dados sendo automaticamente criada baseada em entity classes que você criou nesse tutorial.


O conteúdo desta página resulta da tradução do artigo Getting Started with ASP.NET 4.5 Web Forms – Create the Data Access Layer, escrito pelo autor Erik Reitan, originalmente presente no site do asp.net. A página correspondente pode ser conferida aqui.

Programa Students to Business 2013

Microsoft-20120823120845

O Programa Students to Business (S2B) iniciou suas inscrições hoje. É uma iniciativa da Microsoft, dos parceiros da Microsoft e as principais universidades do país com o objetivo de capacitar estudantes nas áreas de TI e oferecer oportunidades de emprego.

Para isso inclui diversas ações, sendo as principais capacitações gratuitas nas plataformas Microsoft e aproximação com empresas que buscam mão-de-obra com esse perfil. O programa é constituído de treinamento Online e também Presencial. Para o treinamento presencial, é necessário verificar disponibilidade na sua cidade:

  • Araraquara
  • Belo Horizonte
  • Brasília
  • Catanduva
  • Curitiba
  • Fortaleza
  • Goiânia
  • Guaratinguetá
  • Joinville
  • Marília
  • Morrinhos
  • Porto Alegre
  • Presidente Prudente
  • Recife
  • São Carlos
  • São José do Rio Preto
  • São José dos Campos
  • São Paulo (Itaquera)
  • São Paulo (Lapa)
  • São Paulo (Santana)
  • São Paulo (Santo Amaro)
  • São Paulo (Vila Prudente)
  • Sorocaba
  • Vitória

Faça sua inscrição no site do S2B e participe! 🙂

Iniciando com ASP.NET Web Forms 4.5 – Parte 2 – Criando o Projeto

Nesse tutorial você irá criar, revisar, e executar o projeto padrão no Visual Studio, que permitirá que se familiarize com as características do ASP.NET. Também irá revisar o ambiente do Visual Studio.

1 O que aprenderá:

  • Como criar um novo projeto Web Forms.
  • A estrutura de arquivos do projeto Web Forms.
  • Como executar o projeto em Visual Studio.
  • As diferentes características da aplicação padrão Web Forms.
  • Alguns conceitos básicos de como usar o ambiente do Visual Studio.

2 Criando o Projeto

  1. Abra o Visual Studio.
  2. Selecione New Project do menu File no Visual Studio.
  3. Figura 1 - Parte 2

  4. Selecione Templates  Visual C#  Web do grupo de templates do lado esquerdo.
  5. Escolha o template ASP.NET Web Application na coluna do meio.
  6. Nomeie seu projeto como WingtipToys e clique no botão OK.
  7. Figura 2 - Parte 2

    Nota: o nome do projeto nesse tutorial é WingtipToys. É recomendado que você use exatamente o mesmo nome de projeto para que o código fornecido através do tutorial funcione como esperado.

  8. Selecione o template Web Forms e clique no botão Create Project.
  9. Figura 3 - Parta 3

Levará um tempo até que o projeto seja criado. Quando estiver pronto, abra a página Default.aspx.

Figura 4 - Parte 2

Você pode mudar entre Design e Source view selecionando uma opção no fundo da janela do centro. Design view exibe páginas ASP.NET, master pages, páginas de conteúdo, páginas HTML, e controle de usuário usando a visão WYSIWYG (What You See Is What You Get). Source view exibe a marcação HTML para sua página web, que você pode editar.

3 Entendendo o ASP.NET Framework

ASP.NET Web Forms te permite construir websites dinâmicos usando o modelo familiar drag-and-drop e event-driven. A superfície do design e milhares de controles e componentes te permite criar rapidamente sofisticado, poderosa interface gráfica com acesso a dados. A loja Wingtip Toy é baseada no ASP.NET Web Forms, mas muitos dos conceitos que você aprenderá nessa série de tutoriais são aplicáveis a todo ASP.NET.

ASP.NET oferece quatro frameworks de desenvolvimento primários:

  • ASP.NET Web Forms
    O framework Web Forms é o alvo dos desenvolvedores que preferem programação declarativa e baseada em controles, assim como Microsoft Windows Forms (WinForms) e WPF/XAML/Silverlight. Oferece um WYSIWYG modelo de desenvolvimento de design, então é popular com desenvolvedores olhando para um rápido ambiente de desenvolvimento de aplicação (RAD) para desenvolvimento web. Se você é novo em programação web e familiar com as tradicionais ferramentas de desenvolvimento cliente RAD (por exemplo, para Visual Basic e Visual C#), você pode rapidamente construir uma aplicação web sem ter experiência em HTML e JavaScript.

  • ASP.NET MVC
    ASP.NET MVC é o alvo para desenvolvedores que estão interessados em padrões e princípios como desenvolvimento de teste dirigido, separação de interesses, inversão de controle (IoC), e injeção de dependências (DI). Esse framework encoraja separação da BLL (Business Logic Layer – Camada de Regra de Negócios) de uma aplicação web da sua camada de apresentação.

  • ASP.NET Web Pages
    ASP.NET Web Pages é o alvo para desenvolvedores que querem um desenvolvimento web simples, ao longo de linhas do PHP. No modelo Web Pages, você cria páginas HTML e então adiciona código baseado em servidor a fim de controlar dinamicamente como a marcação é renderizada. Web Pages é especificamente desenhada para ser um framework leve, e é o ponto de entrada mais fácil para o ASP.NET para pessoas que conhecem HTML mas não tem experiência em programação – por exemplo, estudantes ou hobbistas. É também uma boa maneira para desenvolvedores web que sabem PHP ou frameworks similares para começar usar ASP.NET.

  • ASP.NET Single Page Application
    ASP.NET Single Page Application (SPA) te ajuda a construir aplicações que incluem interações cliente-side significantes usando HTML5, CSS3 e JavaScript. O ASP.NET e Web Tools 2012.2 Update envia um novo template para construir aplicações single page usando knockout.js e ASP.NET Web API. Em adição ao novo template SPA, novos templates SPA criados pela comunidade também estão disponíveis para download.

Em adição aos quatro principais frameworks de desenvolvimento, ASP.NET também oferece tecnologias adicionais que são importantes estar cientes e familiarizados, mas não são cobertos nessa série de tutoriais:

  • ASP.NET Web API – um framework para construção de serviços HTTP que alcançam uma ampla gama de clientes, incluindo navegadores e mobile devices.
  • ASP.NET SignalR – uma biblioteca que torna o desenvolvimento web em tempo real fácil.

4 Revisando o Projeto

No Visual Studio, a janela Solution Explorer permite que você gerencie arquivos para o projeto. Vamos dar uma olhada nas pastas que foram adicionadas na sua aplicação na Solution Explorer. O template web application adiciona uma estrutura básica de pastas:

Figura 5 - Parte 2

Visual Studio cria alguns pastas e arquivos iniciais para seu projeto. Os primeiros arquivos que você trabalhará posteriormente no tutorial são os seguintes:

Arquivo Propósito
Default.aspx Tipicamente a primeira página exibida quando a aplicação é executada no navegador.
Site.Master Uma página que permite que você crie um layout consistente e use comportamento padrão nas páginas de sua aplicação.
Global.asax Um arquivo opcional que contém código para responder eventos appication-level e session-level levantados pelo ASP.NET ou pelos módulos HTTP.
Web.config Dados de configuração para uma aplicação.

5 Executando a Aplicação Web Padrão

A aplicação Web padrão fornece uma experiência rica baseada em suporte e funcionalidade embutidos. Sem nenhuma mudança no projeto padrão Web Forms, a aplicação está pronta para ser executada no seu navegador Web local.

  1. Aperte a tecla F5 enquanto estiver no Visual Studio. A aplicação será compilada e exibida no seu navegador Web.
  2. Figura 6 - Parte 2

  3. Quando você tiver completado a revisão da aplicação em execução, feche a janela do navegador.

Existem três páginas principais nessa aplicação Web: Default.aspx (Home), About.aspx e Contact.aspx. Cada uma dessas páginas podem ser obtidas pela barra de navegação. Existem também duas páginas adicionais contidas na pasta Account, as páginas Register.aspx e Login.aspx. Essas duas páginas permitem que você use o membership do ASP.NET para criar, armazenar, e validar credenciais de usuário.

6 ASP.NET Web Forms Background

ASP.NET Web Forms são páginas que são baseadas nas tecnologias Microsoft ASP.NET, em que cada código que executa no servidor dinamicamente gera saída de uma página Web no browser ou dispositivo client. Uma página ASP.NET Web Forms automaticamente renderiza o navegador compatível correto com HTML para características como estilos, layout, dentre outros. Web Forms são compatíveis com qualquer linguagem suportada pelo CLR (Common Language Runtime), assim como Microsoft Visual Basic e Microsoft Visual C#. Também, Web Forms são construídas no Microsoft .NET Framework, que fornece benefícios tanto como um ambiente gerenciado, tipo de segurança e herança.

Quando uma página ASP.NET Web Forms é executada, a página vai através de um ciclo de vida em que executa uma série de etapas de processamento. Essas etapas incluem inicialização, controles de instanciação, restauração e manutenção de estado, executando código de manipulação de eventos, e renderizando. Assim que você tornar mais familiarizado com o poder do ASP.NET Web Forms, é importante para você entender o ciclo de vida da página para que assim você possa escrever código no estágio apropriado de ciclo de vida para o efeito que você pretender.

Quando um web server recebe uma requisição de uma página, ele encontra a página, processa, envia para o navegador, e então desfaz toda a informação da página. Se o usuário requisitar a mesma página novamente, o servidor repete toda a sequencia, reprocessando a página a partir do zero. Dito de outra forma, um servidor não possui nenhuma memória de páginas que foram processadas – páginas são sem estado. O framework de uma página ASP.NET automaticamente manipula as tarefas de manutenção do estado de sua página e seus controles, e fornece a você caminhos explícitos para manter o estado de informação de sua específica aplicação.

6.1 Características de uma Aplicação Web nos templates de uma Aplicação Web Forms

Um template de Aplicação ASP.NET Web Forms fornece um rico conjunto de funcionalidades de construção. Não somente fornece a você com uma página Home.aspx, About.aspx, Contact.aspx, mas também inclui funções de membros que registra usuários e salva suas credenciais assim eles podem fazer login no seu website. Essa visão geral fornece mais informação sobre algumas das características contidas no template ASP.NET Web Forms Application e como eles são usados na aplicação Wingtip Toys.

6.2 Memberships

ASP.NET Identity armazena as credenciais dos seus usuários numa base de dados criada pela aplicação. Quando seus usuários fazem o login, a aplicação valida suas credenciais lendo a base de dados.
A pasta Account do seu projeto contém os arquivos que implementam as várias partes do membership (membros): registrando, logando, trocando uma senha, e autorizando acesso. Adicionalmente, ASP.NET Web Forms suporta OAuth e OpenID. Essas melhorias de autenticação permite aos usuários logar dentro do seu site usando credenciais existentes, de várias contas como Facebook, Twitter, Windows Live and Google.

Figura 7 - Parte 2

Por padrão, o template cria uma base de dados de membros usando um nome padrão de base de dados numa instância do SQL Server Express LocalDB, o servidor da base de dados de desenvolvimento que vem com Visual Studio 2013 Express for Web.

6.3 SQL Server Express LocalDB

SQL Server Express LocalDB é uma versão leve do SQL Server que tem muitas características de programabilidade da base de dados do SQL Server. SQL Server Express LocalDB executa em modo usuário e tem uma instalação rápida e sem configuração que tem uma pequena lista de pré-requisitos para instalação. No Microsoft SQL Server, qualquer base de dados ou código T-SQL pode ser movido do SQL Server Express LocalDB para SQL Server e SQL Azure sem nenhum passo de upgrade. Então, SQL Server Express LocalDB pode ser usado como um ambiente de desenvolvimento para alvo de aplicações de todas as edições do SQL Server.

SQL Server Express LocalDB habilita características como stored procedures, funções definidas de usuário e agregados, integração com .NET Framework, tipos especiais e outros que não estão disponíveis no SQL Server Compact.

6.4 Master Pages

Uma ASP.NET master page define uma aparência consistente e comportamento para todas as páginas de sua aplicação. O layout da master page funde com o conteúdo de uma página de conteúdo individual para produzir a página final que o usuário vê. Na aplicação Wingtip Toys, você modifica a master page Site.master para que assim todas as páginas no website Wingtip Toys compartilhem o mesmo logo e barra de navegação.

6.5 HTML5

O template ASP.NET Web Forms Application suporta HTML5, que é a última versão da linguagem de marcação HTML. HTML5 suporta novos elementos e funcionalidades que torna mais fácil criar Web sites.

6.6 Modernizr

Para navegadores que não suportam HTML5, você pode usar o Modernizr. Modernizr é uma biblioteca JavaScript que pode detectar se um navegador suporta as características do HTML5, e habilita caso contrário. No template ASP.NET Web Forms Application, Modernizr é instalado como um pacote NuGet.

6.7 NuGet Packages

O template ASP.NET Web Forms Application inclui um conjunto de pacotes NuGet. Esses pacotes fornecem funcionalidades de componentes no formulário de ferramentas e bibliotecas open source. Há uma ampla variedade de pacotes para ajudar você criar e testar suas aplicações. O Visual Studio torna fácil adicionar, remover, e atualizar pacotes NuGet. Desenvolvedores podem criar e adicionar pacotes ao NuGet como quiserem.

Figura 8 - Parte 2

Quando você instala um pacote, NuGet copia arquivos para sua solução e automaticamente faz quaisquer mudanças que são necessárias, assim como adiciona referencias e troca seu arquivo Web.config. Se você decidir remover a biblioteca, NuGet remove arquivos e inverte quaisquer mudanças que foram feitas em seu projeto de modo que não cause nenhuma desordem. NuGet está disponível no menu Tools no Visual Studio.

6.8 jQuery

jQuery é uma rápida e concisa biblioteca JavaScript que simplifica documentos HTML, manipulação de eventos, animação, e interações Ajax para rápido desenvolvimento web. A biblioteca jQuery do JavaScript está inclusa no template ASP.NET Web Forms Application como um pacote NuGet.

6.9 Unobtrusive Validation

Controles de validação embutidos tem sido configurados para usar JavaScript discretamente para validação de lógica do lado cliente. Isso reduz significantemente a quantidade de JavaScript renderizando inline na marcação da página e reduz o tamanho global da página. Validação discreta é adicionada globalmente ao template ASP.NET Web Forms Application baseado na configuração do elemento do arquivo Web.config na raíz da aplicação.

6.10 Entity Framework Code First

Além das características do template ASP.NET Web Forms Application, a aplicação Wingtip Toys usa Entity Framework Code First, que é uma biblioteca NuGet que habilita o desenvolvimento de código centrado quando você trabalha com dados. Simplificando, ele cria uma parte da base de dados de sua aplicação para você baseado no código que você escreve. Usando o Entity Framework, você recupera e manipula dados como objetos fortemente tipados. Isso permite que você foque na regra de negócio de sua aplicação em vez dos detalhes de como o dado é acessado.

7 Tour pelo Visual Studio

A janela primária no Visual Studio inclui a Solution Explorer, o Server Explorer (Database Explorer no Express), a Properties Window, o Toolbox, a Toolbar, e o Document Window.

Figura 9 - Parte 2

Sumário

Nesse tutorial você criou, revisou e executou a aplicação padrão do Web Forms. Você revisou as diferentes características da aplicação padrão do Web Forms e aprendeu alguns conceitos básicos sobre como usar o ambiente do Visual Studio. Nos próximos tutoriais você irá criar o DAL (Data Access Layer – Camada de Acesso a Dados).


O conteúdo desta página resulta da tradução do artigo Create the Project, escrito pelo autor Erik Reitan, originalmente presente no site do asp.net. A página correspondente pode ser conferida aqui.

Iniciando com ASP.NET Web Forms 4.5 e Visual Studio 2013 – Parte 1 – Introdução e Visão Geral

1 Introdução

Essa série de tutoriais guia você através de passos requeridos para criar uma aplicação em ASP.NET Web Forms usando Visual Studio Express 2013 e ASP.NET 4.5.

A aplicação que você criará se chama Wingtip Toys. É um exemplo simples de uma loja online que vende itens online. A série de tutoriais destaca novas características disponíveis no ASP.NET 4.5.

1.1 Download do projeto completo

Você pode fazer o download do projeto em C# que contém o tutorial completo.

1.2 Revise o conteúdo respondendo o ASP.NET Web Forms Quiz

Depois que você completar o tutorial, teste seu conhecimento e reforce conceitos chaves respondendo o ASP.NET Web Forms Quiz. Esse Quiz foi especialmente criado do conteúdo contido nessa série de tutoriais. Cada questão no quiz fornece uma explicação sobre os links com guia adicional.

1.3 Público-alvo

O público-alvo desta série de tutoriais são desenvolvedores experientes que são novos no ASP.NET Web Forms. O desenvolvedor interessado nessa série de tutoriais deve ter os seguintes skills (habilidades):

  • Familiar com alguma linguagem de programação orientada a objeto.
  • Familiar com conceitos de desenvolvimento Web (HTML, CSS, JavaScript).
  • Familiar com conceitos relacionais da base de dados.
  • Familiar com conceitos de arquitetura em camadas.

1.4 Características da Aplicação

As características do ASP.NET Web Forms apresentadas nesta série inclui:

  • O Web Application Project (não Web Site Project)
  • Web Forms
  • Master Pages, configuração
  • Bootstrap
  • Entity Framework Code First, LocalDB
  • Request Validation
  • Data Controls fortemente tipados, Model Binding, Data Annotations, e Value Providers
  • OAuth e OpenID
  • ASP.NET Identity, Configuração e Autorização
  • Unobtrusive Validation (Validação Discreta)
  • Routing
  • ASP.NET Error Handling

1.5 Cenários de Aplicação e Tarefas

Tarefas demonstradas nessa série inclui:

  • Criando, revisando e rodando o novo projeto.
  • Criando a estrutura da base de dados.
  • Inicializando e povoando a base de dados.
  • Customizando User Interface usando estilos, gráficos e master page.
  • Adicionando páginas e navegação.
  • Exibindo detalhes do menu e dados do produto.
  • Criando um carrinho de compras.
  • Adicionando suporte OpenID.
  • Adicionando método de pagamento.
  • Incluindo uma regra de administrador e um usuário a aplicação.
  • Restringindo acesso a páginas e pastas específicas.
  • Carregando um arquivo para a aplicação web.
  • Implementando validação de input (entrada).
  • Registrando rotas para a aplicação web.
  • Implementando error handling e error logging.

2 Visão Geral

Se você é novo com ASP.NET Web Forms mas tem familiaridade com conceitos de programação, você está no tutorial correto. Se você já é familiarizado com ASP.NET Web Forms, você pode se beneficiar através desta série de tutoriais das novas características do ASP.NET 4.5. Se você não possui familiaridade com conceitos de programação e ASP.NET Web Forms, veja Getting Started no ASP.NET Web Site.

As últimas características especificadas fornecidas nessa série de tutoriais incluem o seguinte:

  • Uma simples interface de usuário para criar projetos que oferecem suporte para múltiplos ASP.NET frameworks (Web Forms, MVC e Web API).
  • Boostrap, um layout e framework para tema que fornece design responsivo e capacidades de tema.
  • ASP.NET Identity, um novo sistema de ASP.NET membership que trabalha da mesma forma em todos frameworks ASP.NET e trabalha com web hosting exceto IIS.
  • Entity Framework 6, uma atualização do Entity Framework que permite que você recupere e manipule dados como objetos fortemente tipados, acesso a dados assíncronos, manipular falhas de conexão transitórios, e log de SQL.

2.1 A Aplicação Wingtip Toys

Os screenshots a seguir fornecem uma rápida visão da aplicação em ASP.NET Web forms que você criará nesta série de tutoriais. Quando você executa a aplicação no Visual Studio Express 2013 para Web, você verá a Home Page a seguir.

Wingtip Toys [1]

Você pode se registrar como um novo usuário, ou logar como um usuário existente. A navegação é fornecida no topo para cada categoria de produto recuperando os produtos disponíveis da base de dados.

Selecionando o link Products (Produtos), você será capaz de ver uma lista de produtos disponíveis.

Wingtip Toys [2]

Você pode também ver detalhes dos produtos individuais selecionando qualquer um dos produtos listados.

Wingtip Toys [3]

Como um usuário, você pode registrar e fazer login utilizando funcionalidades padrões do modelo de Web Forms. Também, esse tutorial explica como fazer login usando uma conta do Gmail existente. Adicionalmente, você pode fazer login como administrador para adicionar e remover produtos da base de dados.

Wingtip Toys [4]

Uma vez que você esteja logado, você pode adicionar produtos ao carrinho de compras e pagar com PayPal. Note que essa aplicação é desenvolvida para funcionar com PayPal sandbox. Nenhuma transação atual com dinheiro terá lugar.

Wingtip Toys [5]

PayPal confirmará sua conta, encomenda, e informação de pagamento.

Wingtip Toys [6]

Depois de retornar do PayPal, você pode revisar e completar sua encomenda.

Wingtip Toys [7]

3 Pré-requisitos

Antes de começar, certifique-se de que você tenha os seguintes softwares instalados no seu computador:

  • Microsoft Visual Studio 2013 ou Microsoft Visual Studio Express 2013 para Web. O .NET Framework é instalado automaticamente.

Esta série de tutoriais utiliza Microsoft Visual Studio 2013 para Web. Você pode também utilizar Microsoft Visual Studio 2013 Express para Web ou Microsoft Visual Studio 2013 para completar a série de tutoriais.

4 Download da Aplicação

Depois de instalar os pré-requisitos, você está pronto para começar a criar o novo projeto Web que é apresentado nesta série de tutoriais. Se você quer executar a amostra da aplicação que esse tutorial cria, você poderá fazer download do site MSDN Samples. Esse download contém:

  • A Amostra da Aplicação na pasta Wingtip Toys.
  • Os recursos usados para criar a amostra da aplicação na pasta WingtipToys-Assets na pasta WingtipToys.

4.1 Faça o download do arquivo no site do MSDN Samples

Getting Started with ASP.NET 4.5 Web Forms and Visual Studio 2013 – Wingtip Toys (C#)

O download é um arquivo .zip. Para ver o projeto completo que essa série de tutoriais cria, encontre e selecione a pasta C# no arquivo .zip. Salve a pasta C# para a pasta que você usará para trabalhar com projetos do Visual Studio 2013. Por padrão, os projetos do Visual Studio 2013 se localizam na seguinte pasta:

C:\Users\\Documents\Visual Studio 2013\Projects

Renomeie a pasta C# para WingtipToys.

Para executar o projeto completo, abra a pasta WingtipToys e dê um duplo-clique no arquivo WingtipToys.sln. Visual Studio 2013 abrirá o projeto. Depois, dê um clique com o botão direito no arquivo Default.aspx na janela da Solution Explorer e clique em View In Browser no menu mostrado após o clique com o botão direito.


O conteúdo desta página resulta da tradução do artigo Getting Started with ASP.NET 4.5 Web Forms – Introduction and Overview, escrito pelo autor Erik Reitan, originalmente presente no site do asp.net. A página correspondente pode ser conferida aqui.

Os números de 2012

Os duendes de estatísticas do WordPress.com prepararam um relatório para o ano de 2012 deste blog.

Aqui está um resumo:

4,329 films were submitted to the 2012 Cannes Film Festival. This blog had 28.000 views in 2012. If each view were a film, this blog would power 6 Film Festivals

Clique aqui para ver o relatório completo

Fazendo upload de um projeto de Web Site no Windows Azure através do Visual Studio 2012

Neste artigo será demonstrado como fazer upload de um projeto de Web Site no Windows Azure através do Visual Studio 2012. Vale ressaltar que, esse processo através do Visual Studio 2012 veio para facilitar a vida dos desenvolvedores, pois o mesmo feito no Visual Studio 2010 não trabalha de forma tão integrada.

Para desenvolver esse post será utilizado:

– Visual Studio Express 2012 para Web

– Conta do Windows Azure: a mesma pode ser criada através do seu Live ID no site https://www.windowsazure.com/pt-br/. O serviço oferece uma versão trial de 90 dias.

O primeiro passo é criar uma conta do Azure, caso você ainda não tenha criado. Acesse o portal de gerenciamento, onde você terá possibilidades de configuração e controle dos aplicativos e serviços do Windows Azure.

Criaremos um projeto de Web Site somente para exemplificar o processo de upload.

Abra o Visual Studio Express 2012 for Web e clique em File – New Project – Visual C# – ASP.NET Web Forms Application. O projeto será nomeado como DemoAzure. Clique em OK para salvar o projeto.

Projeto criado, voltaremos ao portal de gerenciamento do Windows Azure e criaremos um Web Site no mesmo.

Clique na opção New, na parte inferior da página.

Agora, clique em COMPUTE – WEB SITE – QUICK CREATE e insira um nome para o domínio. No exemplo, criei como demoazure. Não há necessidade de alteração da opção region.

Clique em Create Web Site.

Uma mensagem será mostrada se o seu Web Site no Azure foi criado com sucesso e, observe que, na parte superior da página, tem-se uma grid com o Name, Status, Subscription, Location, Mode e URL do Web Site.

Clique na opção referente ao Web Site que você acabou de criar, e seremos levados ao dashboard do mesmo.

O próximo passo é fazer o download do publish profile. No caso, o nome do download do meu arquivo é demoazure.azurewebsites.net.PublishSettings.

Volte ao seu projeto no Visual Studio, clique no menu Build – Publish DemoAzure.

Uma nova janela será aberta, onde, primeiramente, deve-se importar o publish profile que fora feito o download.

Automaticamente, o Visual Studio preenche os campos necessários para a publicação do projeto de Web Site na sua conta do Windows Azure.

Clique em Publish.

Observe que na janela de Output do Visual Studio é mostrado todo o processo de upload dos arquivos do projeto.

Assim que o processo é completado, o browser abre o seu Web Site, já publicado no Windows Azure, com o domínio escolhido na etapa de criação do mesmo no portal de gerenciamento.

No caso do exemplo o domínio é http://demoazure.azurewebsites.net/.

Pronto. Agora o Web Site já está publicado no Windows Azure através do Visual Studio 2012 e online.

Digite seu endereço de email para acompanhar esse blog e receber notificações de novos posts por email.

Junte-se a 2.731 outros seguidores

Quantidade de Acessos

  • 375,895 visitas