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
 

terça-feira, 7 de agosto de 2012

Listando índices da tabela com sp_helpindex (Transact-SQL)

Olá,

Mais uma dica sobre SQL SERVER.

Para listar informações sobre os índices em uma tabela podemos usar o comando abaixo:

EXEC sp_helpindex 'Cidade'


Se os índices tiverem sido definidos com o uso da opção NORECOMPUTE de UPDATE STATISTICS, essas informações serão incluídas na coluna index_description.
sp_helpindex expõe apenas as colunas de índices que podem ser solicitadas; por isso, não expõe informações sobre índices XML ou índices espaciais.

http://msdn.microsoft.com/pt-br/library/ms188771(SQL.105).aspx

DICA: Saber se sua base tem o maior consumo de índice com consultas ou escritas?

Olá,

Segue mais uma dica de SQL Server.

Para saber qual é a caracteristica predominante em sua base de dados em relação a utilização dos indices, executem o script abaixo:

SELECT

CAST(SUM(user_seeks + user_scans + user_lookups) AS decimal) / CAST(SUM(user_updates) + SUM(user_seeks + user_scans + user_lookups) AS decimal) * 100 AS ReadPercent ,
CAST(SUM(user_updates) AS decimal) / CAST(SUM(user_updates) + SUM(user_seeks + user_scans + user_lookups) AS decimal) * 100 AS WriteRatio
FROM

sys.dm_db_index_usage_stats

Ele irá apresentar o percentual de utilização do mesmo.

Com essa dica você terá a noção se poderá criar índices sem ter muita preocupação com perca de desempenho em operações do tipo (Insert, Update e Delete).

Até a próxima.

Tipos de índices SQL SERVER

Olá,

Nesse breve artigo sobre vamos abordar os tipos de índices existentes no SQL Server.

Clusterizado

O índice clusterizado classifica e armazena as linhas de dados da tabela ou exibição em uma ordem com base na chave do índice clusterizado. O índice clusterizado é implementado como uma estrutura de índice da árvore B que oferece suporte à recuperação rápida de linhas com base em seus valores da chave de índice clusterizado.


Não clusterizado

Um índice não clusterizado pode ser definido em uma tabela ou exibição com um índice clusterizado ou em um heap. Cada linha do índice não clusterizado contém o valor da chave não clusterizada e um localizador de linha. Esse localizador aponta para a linha de dados no índice clusterizado ou heap que possui o valor da chave. As linhas do índice são armazenadas na ordem dos valores da chave de índice, mas não há garantias de que as linhas de dados estejam em uma determinada ordem, a menos que um índice clusterizado seja criado na tabela.


Exclusivo

Um índice exclusivo garante que a chave de índice não contenha valores duplicados; portanto, cada linha em uma tabela ou exibição é, de alguma forma, única.
Tanto os índices clusterizados quanto os não clusterizados podem ser exclusivos.

Índice com colunas incluídas


Um índice não clusterizado que é estendido para incluir colunas que não são de chave, além das colunas de chave.


Texto completo




Um tipo especial de índice funcional com base em token que é criado e mantido pelo Mecanismo de Texto Completo da Microsoft para o SQL Server. Ele fornece suporte eficiente para pesquisas sofisticadas de palavras em dados de cadeias de caracteres.

Espacial

Um índice espacial fornece a habilidade de realizar determinadas operações de forma mais eficiente em objetos espaciais (dados espaciais) em uma coluna do tipo de dados geometria. O índice espacial reduz o número de objetos nos quais operações espaciais relativamente dispendiosas precisam ser aplicadas.

Filtrado

Um índice não clusterizado aperfeiçoado, especialmente indicado para abranger consultas que selecionam de um subconjunto bem definido de dados. Ele usa um predicado de filtro para indexar uma parte das linhas da tabela. Um índice filtrado bem projetado pode melhorar o desempenho das consultas e reduzir os custos de manutenção e armazenamento do índice em comparação com os índices de tabela completa.

XML

Uma representação fragmentada e persistente de BLOBS (objetos grandes binários) XML na coluna de tipo de dados xml.

http://msdn.microsoft.com/pt-br/library/ms175049(v=sql.105)

segunda-feira, 6 de agosto de 2012

Monitorar CPU SQL SERVER

Olá,

Segue aqui uma dica muito interessante, onde pode ajudar muitos administradores do SQL Server que não tem acesso a máquina, monitorar o consumo de CPU tanto do Servidor quanto ao do SQL Server.

Para conseguir acessar esse recurso vamos utilizar asDMV

 sys.dm_os_sys_info (Transact-SQL)



Essa DMV retorna informações sobre o computador no qual o SQL Server foi instalado, inclusive os recursos disponíveis e consumidos pelo SQL Server.

WITH MonitorCPUSQLSERVER AS

(

SELECT DATEADD(ms,(select [ms_ticks]-[timestamp] from sys.dm_os_sys_info),

GETDATE()) AS 'EventDateTime',

CAST(record AS xml) AS 'record'

FROM sys.dm_os_ring_buffers

WHERE ring_buffer_type = 'RING_BUFFER_SCHEDULER_MONITOR'

AND [timestamp] > (select [ms_ticks] - 30*60000 -- Visualizar os ultimos 30 min.

from sys.dm_os_sys_info)

)

SELECT

CONVERT (varchar, EventDateTime, 126) AS EventTime,

SysHealth.value('ProcessUtilization[1]','int') AS 'CPU (SQL Server)',

100 - SysHealth.value('SystemIdle[1]','int') AS 'CPU (Todos os Processos)'

FROM MonitorCPUSQLSERVER CROSS APPLY record.nodes('/Record/SchedulerMonitorEvent/SystemHealth') T(SysHealth)

ORDER BY EventDateTime DESC

É isso espero que essa dica seja util!