terça-feira, 4 de dezembro de 2012

Exame Microsoft 70-480 - Gratuito com Voucher Promocional


Umas das áreas mais atrativas hoje no mercado de Tecnologia da Informação é desenvolvimento de aplicações/soluções WEB.

 Essas aplicações precisam ser de alta qualidade e interativa na linha dos negócios atendendo as expectativas dos consumidores.

Diante desses fatos existem diversos profissionais no mercado de trabalho com muita qualidade, nesse caso um importante diferencial é investir em certificações, ou seja, um reconhecimento de sua experiência em determinada área de atuação.

Dentro desse cenário de desenvolvimento para soluções WEB a Microsoft oferece o pacote de certificação MCSD: Microsoft Certified Solutions Developer, Web Applications.


 
Como preparatório para o exame 70-480 a Microsoft oferece o curso gratuito, basta acessar o link https://www.microsoftvirtualacademy.com/tracks/developing-html5-apps-jump-start

Esse curso é destinado para desenvolvedores que tem pelo menos seis meses de experiência profissional e que estão interessados em desenvolver aplicações usando HTML5 e CSS3 com JavaScript.

Para obter maiores informação sobre o exame basta acessar o link abaixo:


AGORA O MELHOR DESTE ARTIGO

O Exame 70-480 está com voucher promocional, ou seja, a primeira prova está na conta de Microsoft.

Para isso basta acessar o site da prometric e efetuar o cadastro caso não tenha, escolher o exame 70-480 e no formulário informar no campo voucher HTMLJMP.

Esse voucher tem validade até 30/03/2013 ou enquanto durar a promoção.

 

 

 

quarta-feira, 19 de setembro de 2012

Exibindo dados em gráfico utilizando MVC 3 Razor - PARTE 1

Olá,

Esse artigo explicará como apresentar gráficos em uma pagina ASP.NET (Razor).

Chart Helper

Quando você tiver a necessidade de apresentar o gráfico em sua pagina web, você pode usar o Chart Helper. O Chart Helper pode renderizar que exibe uma imagem em diversos formatos de gráficos, suportando muitas opções para formatação e rotulos, conforme sua necessidade. O Chart Helper pode gerar mais de 30 tipos de gráficos, incluindo todos os tipos de gráficos que você pode estar familiarizado com o Microsoft Excel ou de outras ferramentas - gráficos de área, gráficos de barras, gráficos de colunas, gráficos de linha e gráficos de pizza, juntamente com mais gráficos especializados como gráficos de ações.


Chart Elements

Gráficos mostram dados e elementos adicionais, tais como legendas, eixos, séries, e assim por diante.

Criar um gráfico a partir de dados

Os dados que você mostra em um gráfico pode ser de uma matriz, a partir dos resultados retornados de um banco de dados, ou a partir de dados que está em um arquivo XML.

Usando uma matriz

Uma matriz permite armazenar uma coleção de itens semelhantes em uma única variável. Você pode usar matrizes para conter os dados que você deseja incluir no seu gráfico.
Este procedimento mostra como você pode criar um gráfico a partir de dados armazenados em matrizes, usando o tipo de gráfico padrão. Ele também mostra como para exibir o gráfico dentro da página.
  1. Crie um novo arquivo chamado ChartArrayBasic.cshtml .
  2. Substituir o conteúdo existente com o seguinte:
@{    
var myChart = new Chart(width: 600, height: 400)        
.AddTitle("Chart Title")        
.AddSeries( name: "Employee",
xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" },
  yValues: new[] { "2", "6", "4", "5", "3" }) .Write();
}

O primeiro código cria um novo gráfico e define sua largura e altura.

Você especifica o título do gráfico usando o AddTitle método.

Para adicionar dados, você usa o AddSeries método. Neste exemplo, você usar o nome , xValue , e yValues ​​parâmetros do AddSeries método.

O nome do parâmetro é exibido na legenda do gráfico. O xValue parâmetro contém uma matriz de dados que é exibida ao longo do eixo horizontal do gráfico. O yValues ​​parâmetro contém uma matriz de dados que é usado para traçar os pontos verticais do gráfico.
  1. Executar a página no navegador. O navegador exibe o gráfico.



Usando uma consulta de banco de dados para dados de gráficos

Se a informação que você quer apresentar está em um banco de dados, você pode executar uma consulta de banco de dados e, em seguida, usar os dados a partir dos resultados para criar o gráfico.
  1. Adicionar um App_Data pasta para a raiz do site, se a pasta não existir.
  2. No App_Data pasta, adicione o arquivo de banco de dados chamado SmallBakery.sdf que está descrito na introdução ao trabalho com um banco de dados em páginas ASP.NET Web Sites .
  3. Crie um novo arquivo chamado ChartDataQuery.cshtml .
  4. Substituir o conteúdo existente com o seguinte:
    @ {  
        var db = Database.Open ("SmallBakery");  
        dados var = db.Query ("SELECT nome, preço de produto");  
        var myChart = novo Plano (largura: 600, height: 400)  
            . AddTitle (Produto " Venda ")  
            . DataBindTable (dataSource: dados, xField: "Nome")  
            . Write ();  
    }
O primeiro código abre o banco de dados SmallBakery e atribui a uma variável chamada db . Esta variável representa um banco de dados objeto que pode ser usado para ler e escrever para o banco de dados.
 
Em seguida, o código executa uma consulta SQL para obter o nome e preço de cada produto. O código cria um novo gráfico e passa a consulta de banco de dados a ele chamando o gráfico DataBindTable método. Este método tem dois parâmetros: o dataSource parâmetro é para os dados da consulta, e o xField parâmetro que permite definir qual coluna de dados é usado para o gráfico do eixo-x.
 
Como uma alternativa ao uso do DataBindTable método, você pode usar o AddSeries método do Gráfico ajudante. O AddSeries método permite que você defina os xValue e yValues ​​parâmetros. Por exemplo, em vez de usar o DataBindTable método como este:
 
DataBindTable ( dados , "Nome" )
 
Você pode usar o AddSeries método como este:
 
. AddSeries ( "Default" , xValue : dados , xField : "Nome" , yValues ​​: dados , yFields : "Preço" )
 
Ambos apresentam os mesmos resultados. O AddSeries método é mais flexível, pois você pode especificar o tipo de gráfico e os dados de forma mais explícita, mas o DataBindTable método é mais fácil de usar se você não precisa de flexibilidade extra.
 
Espero que tenha ajudado com esse exemplo de apresentação de gráficos no ASP.NET MVC.
 
Na conclusão deste artigo irei mostar como fazemos para trabalhar com XML e definir estilos ao gráficos.
 
 

 

segunda-feira, 10 de setembro de 2012

Configurando Log de Aplicação para registro no Event Viewer com C#

Olá Pessoal,

Nesse artigo vamos descrever como podemos criar um log de aplicação para monitoramento do seu sistema seja windows forms ou web site.

Existem diversas maneiras de criar um processo para registrar as operações do seu sistema para ser vizualizadas através do Event View do Windows.

Agora esse tópico é para você que tem extrema urgência em entregar essa funcionalidade.

Hoje vou mostrar como criar um log de aplicação utilizando o healt monitoring do web.config.



Para criar esse log vamos trabalhar com a sessão healthMonitoring do web.config.

Para habilitar é necessario efetuar o comando abaixo:

<healthMonitoring enable="true">

Para criar os logs vamos trabalhar com as sessões abaixo:

<rules>
  <add... />
  <remove... />
  <clear/>
</rules>


Add: Parametro opcional, mapea sua aplicação para monitorar o evento definido.
 
Clear: Parametro opcional, elimina todas as regras.
 
Remove: Parametro opcional, elimina a regra especifica.

Exemplo

A imagem abaixo mostra como configurar o web.config para capturar todos os logs da aplicação.


Após a configuração você pode gerar uma exceção em sua aplicação para visualizar o registro do erro no log de eventos do windows. Até a próxima.

domingo, 9 de setembro de 2012

Criptografando o WEB.CONFIG

Nesse mundo de Tecnologia da Informação a segurança da informação é a alma do negócio, geralmente publicamos nossos websites em lugares seguros e que nós somos administradores.

Agora um dia você pode deparar-se que uma situação inusitada! Você precisa publicar o site no client onde o mesmo solicita.

"Quero meu arquivo criptografado para não apresentar a senha do banco as demais administradores da reder". E agora???

Bom para resolver esse problema é muito simples, nesse artigo vou descrever como criptografar o arquivo WEB.CONFIG de maneira transparente para a aplicação. Vamos lá.

 A sessão connectionstring pode ser criptografada com a ferramenta aspnet_regiis. Na janela SDK Command Prompt do .NET Framwork.

Digite o comando abaixo:

aspnet_regiis -pe "connectionstring" -app "/MinhaAplicacaoWEB"

Tambem podemos utilizar o comando abaixo

aspnet_regiis -pe "connectionstring" "C:\MinhaAplicacaoWEB"

Após a executação do comando descrito acima o elemento no arquivo web.config será criptografado.

A opção app será executada com sucesso caso tenho um diretório virtual do IIS chamado MinhaAplicacaoWEB.




Engenharia de Requisitos - Grande recurso na maturidade de software

Modelos de Maturidade exigem implantação de processos e boas práticas da Engenharia de Software.

Engenharia de Requisitos é uma das principais atividades na construção de Software com qualidade e que agregue valor ao cliente.

Segundo Pressman "Enteder os requisitos de um problema está entre as tarefas mais dificies enfrentadas por um engenheiro de Software".

Segundo Brooks "A parte mais difícil ao construir um sistema de software é decidir o que construir. Nenhuma parte do trabalho afeta tanto o sistema resultante se for feita a coisa errada. Nenhuma outra parte é mais dificil de consertar depois".

Abaixo segue o fluxo de requisitos conforme a metodologia de desenvolvimento RUP.



Observando essas duas considerações podemos ver o quanto é importante a engenharia de requisitos no desenvolvimento de software.

Na engenharia de requisitos podemos obter o mecanismo apropriado para enteder a real necessidade do cliente, analisando o que deseja, avaliando a viabilidade, negociando a especificação e negociando uma solução viavel para o problema.

Na engenharia de requisitos temos 7 tarefas: (Concepção, Levantamento, elaboração, negociação, especificação, validação e gestão).

Concepção: Como podemos iniciar o desenvolvimento de um software, procurado evento catalizados onde pode gerar a necessidade de construção.

Levantamento:  Validar quais são os objetivos do sistema e ao demais usuários

Problemas que vocês podem se deparar nessa etapa:

Problemas de Escopo, Problema de entendimento, Problemas de Volatilidade.

Elaboração: As informações obtidas nas etapas de Concepção e Levantamento nessa etapa são melhores elaboradas e trabalhadas. Elaboração é o refinamento de cenários onde os usuários terão que interagir.

Negociação: Não é icomum usuários solicitarem mais do que podemos construir ou que realmente se adeque a sua real necessidade, quando ocorrer esse situação será necessario negociar a melhor solução e assim gerenciar o conflito, para encontrar um denominador comum entre as partes.

Especificação: Pode ser um documento escrito, um conjunto de modelos de gráficos, um modelo matematico, um cenário contendo diversos casos de usos (nesse caso aqui é melhor ter apenas um artigo para tratar sua importância) ou até mesmo um protótipo. Alguns autores da area solicita um modelo-padrão para ser utilizado, para apresentar uma especificação de forma consistente.

Validação: Os artefatos produzidos nos itens anteriores são validados quanto a qualidade e garantir que todos os requisitos foram descritos conforme o solicitado, assim garantindo a qualidade do software.

Gestão: Os requisitos são passiveis de mudanças, nesse caso gestão de requisitos é um conjunto de atividades que ajuda a identificar, controlar e acompanhar as necessidades e suas mudanças, isso em qualquer etapa do ciclo de vida do software.

Agora você que não conhece nenhum template segu um link onde podemos obter um modelo padrão.

http://www.wthreex.com/rup/portugues/webtmpl/templates/req/rup_srs.htm

Dentro desse cenário apresentado vamos agora fazer uma explanação sobre os tipos de requisitos, já que agora conhecemos as suas etapas.

Requisitos Funcionais: São requisitos diretamentes ligados a funcionalidade de software, descrevem as funções que o software deve executar.

Requisitos Não Funcionais: São requisitos que expressam condiçoes que o software deve atender ou qualidades especificas que o mesmo deve contemplar.

Para obter um controle de requisitos com qualidade vamos seguir a lista de controle descrita no livro do Pressman Engenharia de Software. Alias muito bom recomendo.

  1. Os requisitos estão declarados de forma clara?
  2. A fonte do requisito foi identificada?
  3. O requisito está limitado em termos quantitativos?
  4. Que outros requisitos se relacionam a este requisito?
  5. O requisito viola quaisquer restrições de dominio de sistema?
  6. O requisito pode ser testado?
Bom acredito que de posse da lista de controle de requisitos, fluxo global para engenharia de requisitos, as fases dessa disciplina de engenharia de software e um template podemos construir ou iniciar o desenvolvimento do software, já adotando uma metodologia, coisa que convenhamos que não é muito utilizada podemos chegar a um resultado que apenas 16% dos projetos alcaçam, o término do projeto.

Abraços acredito que ja ajude essa breve explanação sobre Engenharia de Requisitos.

Até a proxima.

 









sábado, 8 de setembro de 2012

Introdução às consultas do LINQ

Uma query (consulta) é uma expressão que recupera dados de um fonte de dados. As consultas normalmente são expressas em uma linguagem especializada de consulta. Diferentes linguagens foram desenvolvidas ao longo do tempo para os diversos tipos de fontes de dados, como por exemplo SQL para bancos de dados relacionais e XQuery para XML. 

Portanto, os desenvolvedores tiveram que aprender uma nova linguagem de consulta para cada tipo de fonte de dados ou formato de dados que eles devem oferecer suporte. LINQ simplifica essa situação, oferecendo um modelo consistente para trabalhar com dados em vários tipos de fontes de dados e formatos. Em uma consulta LINQ, você está sempre trabalhando com objetos. Você usa a mesma codificação de padrões básicos para a query e transformar dados em documentos XML, bases de dados SQL, ADO.NET Datasets,coleções .NET, e qualquer outro formato para o qual um provedor LINQ esteja disponível.

Três Partes de uma consulta

Todas as operações de consulta LINQ consistem em três ações diferentes:
  1. Obter a origem de dados.
  2. Crie a consulta.
  3. executar a consulta.
O exemplo a seguir mostra como as três partes de uma operação de consulta são expressas em código-fonte. O exemplo usa uma matriz de inteiros como uma fonte de dados por conveniência; no entanto, os mesmos conceitos se aplicam a outras fontes de dados também.

class IntroToLINQ
{       
    static void Main()
    {
        // The Three Parts of a LINQ Query:
        //  1. Data source.
        int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };

        // 2. Query creation.
        // numQuery is an IEnumerable<int>
        var numQuery =
            from num in numbers
            where (num % 2) == 0
            select num;

        // 3. Query execution.
        foreach (int num in numQuery)
        {
            Console.Write("{0,1} ", num);
        }
    }
}


Consulta

A consulta especifica quais informações recuperar a partir da (ou das) fonte de dados.Opcionalmente, uma consulta também especifica como as informações devem ser classificadas, agrupadas e moldadas antes que algo seja retornado.Uma consulta é armazenada em uma variável de consulta e inicializada com uma expressão de consulta. 

Para tornar mais fácil escrever consultas, translation from VPE for Csharp apresentou a nova sintaxe de consulta.

A consulta no exemplo anterior retorna todos os números pares da matriz de inteiros. A expressão de consulta contém três cláusulas: from, where e select. 

(Se você estiver familiarizado com SQL, você terá observado que a ordem das cláusulas é invertida da ordem em SQL.) 

A cláusula from especifica o fonte de dados, a cláusula where aplica o filtro, e a cláusula select especifica o tipo dos elementos retornados.Essas e outras cláusulas de consulta são discutidas em detalhes na seção http://msdn.microsoft.com/pt-br/library/bb397676.aspx. 

Por enquanto, o ponto importante é que no LINQ, a variável de consulta não pratica nenhuma ação e não retorna dados. Ela apenas armazena as informações que são necessárias para produzir os resultados quando a consulta for executada em algum momento posterior

Exemplos

 var evenNumQuery =
    from num in numbers
    where (num % 2) == 0
    select num;

int evenNumCount = evenNumQuery.Count();


List<int> numQuery2 =
    (from num in numbers
     where (num % 2) == 0
     select num).ToList();

// or like this:
// numQuery3 is still an int[]

var numQuery3 =
    (from num in numbers
     where (num % 2) == 0
     select num).ToArray();



 

Expressões de consulta LINQ

LINQ (consulta integrada à linguagem) é o nome de um conjunto de tecnologias baseadas na integração de recursos de consulta diretamente para o idioma translation from VPE for Csharp (também no Visual Basic e potencialmente qualquer Outros linguagem .NET). Com LINQ, uma consulta é agora uma linguagem de construção de primeira classe como classes, métodos, eventos e assim por diante.

Para um desenvolvedor que grava consultas, o máximo visível " Language-integrated" parte do LINQ é a expressão de consulta.Expressões de consulta são gravados em um declarativa consulta sintaxe introduzido no C# 3.0.Usando a sintaxe de consulta, você pode executar mesmo complexos filtragem, classificação e operações de agrupamento em Fonte de Dados com um mínimo de código.Você usa os mesmos padrões de expressão de consulta básica para consultar e transformar dados em bancos de dados SQL, ADO.NET DataSets, documentos XML e fluxos e coleções do .NET.

O exemplo a seguir mostra a operação de consulta completa. A operação completa inclui criar uma fonte de dados, definir a expressão de consulta e executar a consulta em uma instrução foreach.

class LINQQueryExpressions
{
    static void Main()
    {

        // Specify the data source.
        int[] scores = new int[] { 97, 92, 81, 60 };

        // Define the query expression.
        IEnumerable<int> scoreQuery =
            from score in scores
            where score > 80
            select score;

        // Execute the query.
        foreach (int i in scoreQuery)
        {
            Console.Write(i + " ");
        }           
    }
}
// Output: 97 92 81



Necessidade de Metodologia para o sucesso de um Software


Analisando os dados abaixo.
Segundo estatísticas da Scientific American [Filho, 2000] que demonstram que o tempo empenhado nos projetos de softwares excede em 50% o prazo planejado no cronograma, e da estatitica Standish Groups [Standish, 2004] onde revela que apenas 16% dos projetos de software atingem seu objetivo dentro do cronograma e do orçamento previstos.

Diante desses números podemos considerar que mesmo nos dias de hoje com tanto avanço tecnologico e método para desenvolver software ainda temos um grande desavio pela frente no que refere-se a desenvolvimento de software.

Agora você que está lendo esse artigo pode estar se questioanando, "nossa eu pensei que apenas meus projetos atrasavam ou estorava o custo!!! Mas como resolver isso???"

Podemos dizer que existem diversos processos, métodos e etc para auxiliar você nessa tarefa, porem hoje vou aprensentar um site onde podemos obter um guia prático de como proceder na tarefa de construir um software sendo que tudo está de graça e ainda com diversos templates para vocÊ que nem sabe por onde começar.

Esse site aborda a metodologia de desenvolvimento de software baseado no RUP. Você irá se deparar com diversas informações, segue a dica faça uma análise exploratória dos assuntos. Feito isso garimpe as informações que no seu projeto será util, assim vocÊ não precisa entender todos os processos ou templates logo no inicio.

Dentro do RUP vocÊ poderá trabalhar seu projeto dentro das disciplinas abaixo:

Requisitos, Arquitetura, Desenvolvimento, Testes, Gestão de Projeto, Gestão de Configuração e Implantação.

Acredito que de posse deste material você terá subsidios para iniciar uma gestão confiavel durante todo o ciclo de vida de seu projeto, lembrando que isso não será a sua receita do sucesso, porem já serve de base para você ter uma metodologia com forte aceitação no mercado se adequando a esse mundo que tenta se organizar no que refere-se a desenvolvimento de software.

Segue o link.


 


terça-feira, 4 de setembro de 2012

Exibindo Mensagem de Notificação com Jquery - MessageBox

Olá

Nesse artigo vamos aprender como apresentar mensagens de notificação em nossas paginas web, diferente da maneira convencional.

Quem não se lembra do famoso window.Altert('Hello World'). Pois é nesse caso aqui vamos fazer alguma coisa diferente.

Para esse artigo vamos utilizar o plugin jquery, que podemos obter no link abaixo:

https://github.com/akquinet/jquery-toastmessage-plugin

Abaixo segue exemplo das mensagens

Podemos observar como é diferente do padrão utilizado, o melhor é que temos como apresenta-las de maneira fixa ou temporaria.

Agora para que quebrar a cabeça se eu já fiz isso,segue o código fonte.

Para funcionar basta salvar o codigo como HTML e fazer o download do link acima no mesmo diretório, caso fiquem com alguma duvida de como fazer funcionar mandem e-mail.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>IF Consulters Solutions</title>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
   
    <script src="jquery.toastmessage.js" type="text/javascript"></script>
   
    <link href="jquery.toastmessage.css" rel="stylesheet" type="text/css" />
   
    <script type="text/javascript">

        function showSuccessToast() {
            $().toastmessage('showSuccessToast', "Dialogo Exibido com Sucesso...");
        }
        function showStickySuccessToast() {
            $().toastmessage('showToast', {
                text: 'Dialogo Exibido com Sucesso - Dialogo Fixo',
                sticky: true,
                position: 'top-right',
                type: 'success',
                closeText: '',
                close: function () {
                    console.log("toast is closed ...");
                }
            });

        }
        function showNoticeToast() {
            $().toastmessage('showNoticeToast', "Notice  Dialog ");
        }
        function showStickyNoticeToast() {
            $().toastmessage('showToast', {
                text: 'Notice Dialog Fixo',
                sticky: true,
                position: 'top-left',
                type: 'notice',
                closeText: '',
                close: function () { console.log("toast is closed ..."); }
            });
        }
        function showWarningToast() {
            $().toastmessage('showWarningToast', "Warning Dialog ");
        }
        function showStickyWarningToast() {
            $().toastmessage('showToast', {
                text: 'Warning Dialog Fixo',
                sticky: true,
                position: 'middle-right',
                type: 'warning',
                closeText: '',
                close: function () {
                    console.log("toast is closed ...");
                }
            });
        }
        function showErrorToast() {
            $().toastmessage('showErrorToast', "Error Dialog  ...");
        }
        function showStickyErrorToast() {
            $().toastmessage('showToast', {
                text: 'Error Dialog Fixo',
                sticky: true,
                position: 'center',
                type: 'error',
                closeText: '',
                close: function () {
                    console.log("toast is closed ...");
                }
            });
        }

</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>

   
    <p>
        <span class="description">Dialogo de Sucesso</span> <a href="javascript:showSuccessToast();"> Temporario </a>|<a href="javascript:showStickySuccessToast();"> Fixo </a>
        </p>

        <p>
            <span class="description">Dialogo de Informação</span> <a href="javascript:showNoticeToast();"> Temporario </a>|<a
                href="javascript:showStickyNoticeToast();"> Fixo </a>
        </p>

        <p>
            <span class="description">Dialogo de Atenção </span> <a href="javascript:showWarningToast();"> Temporario </a>|<a href="javascript:showStickyWarningToast();">Fixo</a>
        </p>

        <p>
            <span class="description">Dialogo de Erro </span> <a href="javascript:showErrorToast();"> Temporario </a>|<a
                href="javascript:showStickyErrorToast();"> Fixo </a>
        </p>
       
    </div>
    </form>
</body>
</html>

fonte original: http://www.ashishblog.com/blog/display-notification-messages-using-jquery/





sábado, 1 de setembro de 2012

Curso online SQL Server 2008 Gratis - 1 Aula

Olá,

Vamos iniciar uma série de vídeo aula mostrando como trabalhar com consultas no SQL Server 2008.

Nesse artigo segue a primeira aula dessa série que no final estaremos aptos para trabalhar com consultas SQL.


  • Usando T-SQL Select
  • Filtrando Dados
  • Trabalhando com valores Nulos
  • Formatando Resultados



quarta-feira, 29 de agosto de 2012

Comparando Vantanges de Web MVC e Web Forms

Você deve considerar cuidadosamente se a implementar um aplicativo da Web usando o ASP.NET MVC ou o Web ASP.NET modelo de formulários. O framework MVC não substitui o modelo de Web Forms, você pode usar um framework para aplicações web. (Se você já tiver Web aplicativos baseados em formulários, estes continuam a funcionar exatamente como sempre.)
Antes de você decidir usar o framework MVC ou o modelo de Web Forms para um site específico, devemos pesar as vantagens de cada abordagem.

Vantagens de uma aplicação Web MVC-Based

O ASP.NET MVC oferece as seguintes vantagens:
  • Ela torna mais fácil para gerenciar a complexidade, dividindo uma aplicação para o modelo, a vista, e do controlador.

  • Ele não usa o estado de exibição ou baseados em servidor formas. Isso torna o ideal framework MVC para desenvolvedores que querem o controle total sobre o comportamento de um aplicativo.

  • Ele usa um padrão Front Controller que processa as solicitações de aplicativos da Web através de um único controlador. Isso permite que você crie um aplicativo que suporte uma infra-estrutura de roteamento rico. Para mais informações, consulte Front Controller .

  • Ele oferece melhor suporte para desenvolvimento orientado a testes (TDD).

  • Ele funciona bem para aplicativos da Web que são suportados por grandes equipes de desenvolvedores e para Web designers que precisam de um alto grau de controle sobre o comportamento do aplicativo.

Vantagens de um aplicativo Web Web Forms-Based

O framework web baseado em formulários oferece as seguintes vantagens:
  • Ele suporta um modelo de evento que preserva estatal sobre HTTP, que beneficia de linha de negócios, desenvolvimento de aplicações web. O aplicativo Web baseado em formulários oferece dezenas de eventos que são suportados em centenas de controles de servidor.

  • Ele usa um padrão Controller Page que adiciona funcionalidade a páginas individuais. Para mais informações, consulte Controller Page .

  • Ele usa o estado de exibição em formulários baseados em servidor, o que pode tornar mais fácil gerir as informações de estado.

  • Ele funciona bem para pequenas equipes de desenvolvedores da Web e designers que querem aproveitar o grande número de componentes disponíveis para o desenvolvimento rápido de aplicações.

  • De um modo geral, ela é menos complexa para o desenvolvimento de aplicações, porque os componentes (a página de classe, os controlos, e assim por diante) são integrados e geralmente requerem menos código do que o modelo MVC.

Referencia: http://msdn.microsoft.com/en-us/library/dd381412(v=vs.108)


ASP.NET MVC - Uma visão geral

O Model-View-Controller (MVC) de arquitetura separa uma aplicação em três componentes principais: o modelo, a vista, e do controlador. O ASP.NET MVC fornece uma alternativa ao padrão ASP.NET Web Forms para a criação de aplicações web. O ASP.NET MVC é um peso leve, estrutura de apresentação altamente testável que (como Web com aplicativos baseados em formulários) é integrado com os recursos existentes ASP.NET, como páginas mestras e baseada em membros de autenticação. O quadro MVC é definido na System.Web.Mvc montagem.


MVC é um padrão de projeto padrão que muitos desenvolvedores estão familiarizados. Alguns tipos de aplicativos Web irão beneficiar do framework MVC. Outros vão continuar a usar o padrão de aplicação ASP.NET tradicional que se baseia na Web Forms e postagens. Outros tipos de aplicações Web irá combinar as duas abordagens, nem abordagem exclui a outra.
O framework MVC inclui os seguintes componentes:
  • Modelos. Objetos do modelo são as partes da aplicação que implementam a lógica de domínio de dados do aplicativo. Muitas vezes, os objetos do modelo recuperam e armazenam o modelo em um banco de dados. Por exemplo, um objeto produto pode recuperar informações de um banco de dados, operar sobre ele, e em seguida, escrever informações atualizadas de volta a uma tabela de produtos em um banco de dados SQL Server.
    Em pequenas aplicações, o modelo é muitas vezes uma separação conceitual em vez de um físico. Por exemplo, se o aplicativo só lê um conjunto de dados e envia-lo a View, o aplicativo não tem uma camada de modelo físico e classes associadas. Nesse caso, o conjunto de dados assume o papel de um objecto modelo.

  • View. São os componentes que mostrar a interface do usuário (UI). Normalmente, esta interface é criada a partir dos dados do modelo. Um exemplo seria um modo de edição de uma tabela de produtos que exibe caixas de texto, listas suspensas e caixas de seleção com base no estado atual de um produto objeto.

  • Controladores. Controladores são os componentes que lidam com a interação do usuário, o trabalho com o modelo e, finalmente, selecionar a fim de tornar essa exibe interface do usuário. Em uma aplicação MVC, a visão só exibe informações, o controlador manipula e responde à entrada do usuário e interação. Por exemplo, o controlador manipula seqüência de consulta de valores, e passa esses valores para o modelo, que por sua vez pode usar estes valores para consultar o banco de dados.
O padrão MVC ajuda a criar aplicações que separam os diferentes aspectos da aplicação (entrada lógica, a lógica de negócio e lógica UI), enquanto fornece um acoplamento entre esses elementos. O padrão especifica onde cada tipo de lógica deve estar localizado na aplicação. A lógica da interface do usuário pertence a vista. Lógica de entrada pertence ao controlador. A lógica do negócio pertence ao modelo. Essa separação ajuda a gerenciar a complexidade, quando você cria um aplicativo, porque ele permite que você se concentrar em um aspecto da aplicação de cada vez. Por exemplo, você pode se concentrar na visão sem depender da lógica de negócios.
O acoplamento entre os três componentes principais de uma aplicação MVC também promove o desenvolvimento paralelo. Por exemplo, um desenvolvedor pode trabalhar na vista, um segundo desenvolvedor pode trabalhar na lógica do controlador, e um desenvolvedor terceiro pode se concentrar na lógica de negócio no modelo.

O ASP.NET MVC oferece os seguintes recursos:
  • Separação de tarefas do aplicativo (entrada lógica, a lógica de negócio e lógica UI), testabilidade e Test-Driven Development (TDD). Todos os contratos principais no framework MVC é baseado na interface e pode ser testado usando objetos simulados, que são objetos simulados que imitam o comportamento de objetos reais da aplicação. Pode-unidade testar o aplicativo sem ter que executar os controladores em um processo ASP.NET, o que torna o teste de unidade rápida e flexível. Você pode usar qualquer estrutura de testes de unidade, que é compatível com o quadro. NET.

  • Uma estrutura extensível e conectável. Os componentes da estrutura do ASP.NET MVC foram concebidos de modo a poderem ser facilmente substituídos ou personalizado. A política de roteamento de URL, método de ação de serialização parâmetro, e outros componentes. O ASP.NET MVC também suporta o uso de injeção de dependência (DI) e Inversão de modelos de controle (COI) de contêineres. DI permite injetar objetos em uma classe, em vez de confiar na classe para criar o objeto em si. COI especifica que, se um objeto requer um outro objeto, os primeiros objetos deve começar o segundo objeto a partir de uma fonte externa, como um arquivo de configuração. Isto facilita o teste.

  • Amplo suporte para ASP.NET roteamento, que é um componente de mapeamento URL-poderoso que lhe permite construir aplicações que têm URLs compreensível e pesquisável. URLs não tem que incluir o arquivo extensões de nome, e são projetados para suportar padrões de URL de nomenclatura que funcionam bem para Search Engine Optimization (SEO) e transferência de estado representacional (REST) ​​endereçamento.

  • Suporte para usar a marcação na página ASP.NET (. Aspx), controle de usuário (. Ascx arquivos), e na página principal (arquivos. Master) arquivos de marcação como modelos de visão. Você pode usar os recursos do ASP.NET existentes com o ASP.NET MVC framework, como páginas mestras aninhadas, em linha de expressões ( <% =%> ), controles de servidor declarativas, modelos de vinculação de dados, localização, e assim por diante.

  • Suporte para recursos ASP.NET existentes. ASP.NET MVC permite que você use recursos como formas de autenticação e autenticação do Windows, a autorização de URL, associação e funções, saída e armazenamento em cache de dados de sessão e gerenciamento de estado do perfil, vigilância da saúde, o sistema de configuração, ea arquitetura provedor.
Referencia: http://msdn.microsoft.com/en-us/library/dd381412(v=vs.108)

segunda-feira, 27 de agosto de 2012

O que há de novo no Windows Communication Foundation 4.5

Em .NET Framework 4.5, os seguintes recursos foram adicionados para torná-lo mais simples escrever e manter aplicativos do Windows Communication Foundation (WCF):
  • Simplificação de arquivos de configuração gerados.
  • Suporte para desenvolvimento do primeiro contrato.
  • Capacidade de definir mais facilmente o modo de compatibilidade do ASP.NET.
  • Alterações em valores de propriedade de transporte padrão para reduzir a probabilidade que você precisará definir.
  • Atualizações para a classe XmlDictionaryReaderQuotas reduzem a probabilidade de você precisar configurar manualmente as cotas para leitores do dicionário XML.
  • Validação de arquivos de configuração WCF pelo Visual Studio como parte do processo de compilação, para que você possa detectar erros de configuração antes de executar o aplicativo.
  • Novo suporte de streaming assíncrono.
  • Novo mapeamento de protocolo HTTPS para facilitar a exposição de um ponto de extremidade por HTTPS com o IIS (Serviços de Informações da Internet).
  • Capacidade de gerar metadados em um único documento WSDL acrescentando ?singleWSDL à URL de serviço.
  • Suporte de Websockets para habilitar comunicação bidirecional real sobre as portas 80 e 443 com as características de desempenho semelhantes para transporte TCP.
  • Suporte para configurar serviços no código.
  • Dicas do editor XML.
  • ChannelFactory suporta o armazenamento em cache.
  • Suporte compactação do codificador binário.
  • Suporte para um transporte UDP que habilita os desenvolvedores a gravarem os serviços que usam a mensagem "atirar e esquecer". Um cliente envia uma mensagem para um serviço e não espera nenhuma resposta do serviço.
  • Capacidade de suportar vários modos de autenticação em um único ponto de extremidade WCF ao usar o transporte HTTP e a segurança de transporte.
  • Suporte para serviços WCF que usam nomes de domínio internacionalizados (IDNs).
Para obter mais informações, consulte O que há de novo no Windows Communication Foundation.

O que há de novo no ASP.NET 4.5

O ASP.NET 4.5 inclui os seguintes novos recursos:
  • Suporte para novos tipos de formulário HTML5.
  • Suporte para as pastas modelo nos Formulários da Web. Eles permitem associar controles de dados diretamente a métodos de acesso a dados, e converter automaticamente a entrada do usuário em e a partir de tipos de dados do .NET Framework.
  • Suporte para JavaScript discreto em scripts de validação do lado do cliente.
  • Manuseio melhorado do cliente script através da agregação e minimização do desempenho da página melhorada.
  • Rotinas de codificação integrada a partir da biblioteca AntiXSS (anteriormente uma biblioteca externa) para proteger contra ataques de scripts entre sites.
  • Suporte para o protocolo WebSockets.
  • Suporte para ler e gravar solicitações e respostas HTTP de forma assíncrona.
  • Suporte para módulos e manipuladores assíncronos.
  • Suporte para retorno da rede de distribuição de conteúdo (CDN) no controle ScriptManager.
Para obter mais informações sobre esses recursos, consulte ASP.NET 4.5 e Visual Studio 2012.

Fonte: http://msdn.microsoft.com/pt-br/library/ms171868

 

Novidade .NET Framework 4.5

Olá Pessoal Boa noite, hoje vamos ver o que há de novo do .NET Framework.

Biblioteca de Classes Portateis
O projeto Biblioteca de Classes Portátil em Visual Studio 2012 permite que você criar assemblies gerenciados que funcionem em várias plataformas do .NET Framework. Ao usar um projeto Biblioteca de Classes Portátil, você escolhe as plataformas (como o Windows Phone e o .NET for Windows Store apps).  Os tipos e membros disponíveis em seu projeto são restritos automaticamente aos tipos e membros comuns através dessas plataformas.
 
Para mais informações, consulte Biblioteca de classe portátil.

Novos Recurso e Aprimoramentos Principais
Os recursos e aprimoramentos a seguir foram adicionados ao tempo de execução de idioma comum e às classes do .NET Framework:
  • Capacidade de reduzir as reinicializações do sistema detectando e fechando os aplicativos do .NET Framework 4 durante a implantação. Consulte Reduzir o sistema for reiniciado durante.NET Framework 4.5 RC instalações.
  • Suporte para matrizes maiores do que 2 gigabytes (GB) em plataformas de 64 bits. Esse recurso pode ser ativado no arquivo de configuração do aplicativo. Consulte o elemento <gcAllowVeryLargeObjects>, que também lista outras restrições ao tamanho de objetos e de matrizes.
  • Melhora o desempenho através de coleta de lixo em segundo plano para servidores. Ao usar a coleta de lixo do servidor no .NET Framework 4.5, a coleta de lixo em segundo plano é automaticamente ativada.
  • Compilação em segundo plano just-in-time (JIT), que está disponível opcionalmente em vários processadores multi-core para melhorar o desempenho do aplicativo. Consulte ProfileOptimization.
  • Capacidade de limitar quanto tempo o mecanismo de expressões regulares irá tentar resolver uma expressão regular antes de expirar. Consulte a Regex.MatchTimeout .
  • Capacidade de definir a cultura padrão para um domínio de aplicativo. Consulte a classe CultureInfo .
  • Suporte de console para a codificação Unicode (UTF-16). Consulte a classe Console.
  • Suporte para controle de versão de solicitações de cadeia de caracteres culturais e dados de comparação. Consulte a classe SortVersion.
  • Melhora o desempenho ao recuperar recursos. Consulte Empacotamento e implantação de recursos em aplicativos de Desktop.
  • Faça melhorias na compactação para reduzir o tamanho de um arquivo compactado. Consulte o namespace System.IO.Compression.
  • Capacidade para personalizar um contexto de reflexão para substituir o comportamento de reflexão padrão através da classe CustomReflectionContext.
  • Suporte para a versão 2008 do padrão de Nomes de Domínios Internacionalizados em Aplicativos (IDNA) quando a classe System.Globalization.IdnMapping é usada no Windows 8.
  • A delegação de comparação de cadeia de caracteres para o sistema operacional, que implementa o Unicode 6.0, quando o.NET Framework é usado no Windows 8. Ao executar em outras plataformas, o.NET Framework inclui seus próprios dados de comparação de cadeia de caracteres, que implementam o Unicode 5.x. Consulte a String e a seção Comentários da classe SortVersion.
  • Capacidade de calcular os códigos de hash para cadeias de caracteres em uma base do domínio de aplicativo. Consulte Elemento <UseRandomizedStringHashAlgorithm>.

Estrutura de Extensibilidade Gerenciada (MEF)

O Managed Extensibility Framework (MEF) fornece os seguintes recursos novos:
  • Suporte para tipos genéricos.
  • O modelo de programação baseado em convenção permite que você crie partes com base nas convenções de nomenclatura em vez de atributos.
  • Vários escopos.
  • Um subconjunto de MEF que você usa ao criar aplicativos do Metro style. Esse subconjunto está disponível como um pacote disponíveis para download na NuGet Gallery. Para instalar o pacote, abra o projeto no Visual Studio 2012, escolha Gerenciar Pacotes NuGet no menu Project , e procure online pelo pacote Microsoft.Composition .
Para mais informações, consulte Visão geral sobre estrutura de extensibilidade gerenciada.

Operação Assincronas de Arquivo
Em .NET Framework 4.5, os novos recursos assíncronos foram adicionados para as linguagens C# e Visual Basic. Esses recursos adicionam um modelo com base na tarefa para executar operações assincrônicas. Para usar este novo modelo, use os métodos assíncronos nas classes I/O. Consulte E/S de arquivo assíncrono.
 
fonte: http://msdn.microsoft.com/pt-br/library/ms171868