Desenvolvimento Efetivo na Plataforma Microsoft: o livro.

Desenvolver software é complexo. E fazer isso de forma ágil, manutenível, gerando soluções escaláveis, performáticas, seguras e com alta disponibilidade é mais complexo ainda.

Diante desses desafios, o time de engenheiros de suporte a campo Modern Apps Brazil decidiu por reunir um conjunto de práticas e lições aprendidas em campo com a plataforma Microsoft em um livro. Esses engenheiros são focados na resolução de problemas críticos relacionados a ALM, IIS e .NET Framework na plataforma Microsoft.

clip_image001

Leia mais »

Publicidade

Erro 404 ao acessar rota do ASP.NET MVC no IIS 7 / KB980368

Ao acessar uma URL do ASP.NET MVC, exposto no IIS 7, é lançado o erro 404 Page/Directory not found.

Existem duas maneiras de resolver este erro:

1) Adicionando o atributo runAllManagedModulesForAllRequests na seção Modules do Web.Config.

2) Instalação do KB980368 (http://support.microsoft.com/kb/980368).

A utilização do runAllManagedModulesForAllRequests é necessária para o roteamento de requisições quando não temos o KB instalado, mas a utilização da tag runAllManagedModulesForAllRequests acarreta em overheads de execução desnecessários.

Leia mais »

The Hidden expression for the subreport (…) contains an error: Request for the permission of type ‘System.Security.Permissions.SecurityPermission’

Outro dia me deparei com a seguinte exception ao renderizar um report local:

The Hidden expression for the subreport ‘<DataSetName>’ contains an error: Request for the permission of type ‘System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’ failed.

Quando processamos um report localmente (leia: fora do Reporting Services) e o Report Viewer carrega uma expressão associada com um assembly, é criado um sandboxed Application Domain (AppDomain) na memória. Esse AppDomain é criado com um conjunto de restrições de segurança.

Leia mais »

Your client certificate is either not trusted or is invalid (com Windows Server 2012 e IIS 8.0 (ou IIS 8.5))

A combinação de Windows Server 2012 com IIS 8.0 (ou IIS 8.5) pode funcionar um pouco diferente da combinação Windows Server 2012 com IIS 7.5.

Algumas alterações na funcionalidade Schannel Security Support Provider (SSP) impactaram no funcionamento do modelo de segurança e autenticação de aplicações. O SSP inclui recursos como Transport Layer Security (TLS), Secure Sockets Layer (SSL), e Datagram Transport Layer Security (DTLS). Todos esses recursos são muito importantes, pois envolvem tarefas de segurança e autenticação de aplicações.

Leia mais »

Sobreposição de objetos com Javascript

Com o aumento da quantidade de funcionalidades construídas com Javascript novos requisitos surgem a cada dia. Requisitos que antes não eram tão comuns (como a manipulação/movimentação de objetos gráficos em um browser) tornam-se triviais, pois aumentam a usabilidade da aplicação tornando o seu uso fácil, agradável, rápido e de fácil assimilação.

O exemplo abaixo demonstra como é possível identificar a sobreposição de objetos HTML utilizando código Javascript.

Leia mais »

ReportViewer – Problemas de compatibilidade com a funcionalidade de zoom

Essa semana encontrei um problema ao trabalhar com o componente de ReportViewer do ASP.Net: quando acionada a funcionalidade de zoom do componente ReportViewer, os dados eram apresentados descentralizados, tortos e sobrepondo outros componentes da página web.

Esse é um cenário péssimo, pois atrapalha o usuário que deseja ver dados mais detalhados do report e de difícil solução, pois não está associado a um comportamento de alguma funcionalidade do sistema, e sim a um erro de um componente do qual não temos total conhecimento de seu funcionamento e dependências.

Leia mais »

Criando gráficos com o ASP.Net 4.0 Chart Controls

Olá,

Como bom admirador de dados (técnicas e formatos de persistência em sua maioria) também gosto da parte de visualização de dados. E quando pensamento em “visualização de dados”, logo surge em nossa mente inúmeros tipos de gráficos. Diante disso, gostaria de neste post demonstrar como podemos criar dois tipos de gráficos muito comuns: pizza e colunas. Para tanto utilizaremos o ASP.Net 4.0 Chart Controls, este não é um recurso novo, na verdade seu lançamento veio junto com o ASP.Net 4.0, em 2010.

Para fazer o download do exemplo acesse este link: http://code.msdn.microsoft.com/Criando-grficos-com-o-43caf1a4

chart

Leia mais »

Utilização de Impersonation para execução de PowerShell via ASP.Net

Dentre os meus últimos desafios surgiu-me a necessidade de executar um comando PowerShell em um servidor via uma página ASP.Net, mas com a premissa de executar este comando dentro de um contexto seguro, isto é baseado em permissões de usuário distintas daquelas que estão rodando o Application Pool do IIS.

Desta forma, de acordo com as credenciais do usuário logado na aplicação, seria permitido ou não a execução dos comandos via PowerShell. Entretanto, como princípio de segurança, a execução deste comando seria feita sobre um contexto diferente do usuário do Application Pool.

Para tanto, me baseei em dois posts: o primeiro de Antoine Habert (MVP de PowerShell) que ensina como executar comandos PowerShell via páginas ASP.Net (http://devinfra-us.blogspot.com/2011/02/using-powershell-20-from-aspnet-part-1.html) e um segundo post do Microsoft Support que demonstra como implementar Impersonation programaticamente em aplicações ASP.Net (http://support.microsoft.com/kb/306158).

Para a execução deste exemplo será preciso fazer download e instalação do Windows PowerShell 2.0 Software Development Kit (http://http://www.microsoft.com/download/en/details.aspx?id=2560).Leia mais »