quinta-feira, 23 de janeiro de 2014

Dica - Deploy WCF - HTTPS Environment

Geralmente quando desenvolvemos nosso WCF, e testamos localmente, ficamos felizes ao vê-lo executar com sucesso. Porém, um pequeno pesadelo pode ocorrer quando implantamos nosso serviço em um servidor do nosso cliente e erros estranhos começam a acontecer. Por exemplo, se o seu cliente instalou um certificado de segurança no IIS deste servidor (serviço SSL), as coisas podem ficar complicadas para nós. E como nosso serviço é por padrão criado no modelo HTTP, e não HTTPS, geralmente vamos nos deparar com a seguinte mensagem

Could not find a base address that matches scheme https for the endpoint with binding WebHttpBinding. Registered base address schemes are [http].

Nestes casos, uma dica rápida seria simplesmente [desabilitar] o modo de segurança do Binding usado no seu Endpoint.

Ao abrir seu Web.config padrão, gerado pelo Visual Studio, procure pela frase [security mode=] e altere para a sugerida abaixo. Inclusive, como outra dica, para funcionar a execução do seu WCF via execução JavaScript, use o Bind do tipo [webHttp].


<webHttpBinding> 
<binding crossDomainScriptAccessEnabled="true" name="webBinding"> 
<security mode="None">        
<transport clientCredentialType="None">
</transport>
</security> 
</binding> 
</webHttpBinding>


E se você estiver executando seu WCF em um servidor sem certificado (sem SSL) poderá verficar um exemplo completo neste Artigo.

Desta forma seu serviço vai ser executado com sucesso e o dia será ganho!... :)
[]s

Fontes: webHttpBinding

terça-feira, 7 de janeiro de 2014

What's New ASP.NET MVC 5

Embarcado no novo Visual Studio 2013 temos algumas novidades no desenvolvimento Web.
Por exemplo, agora existe apenas uma interface para criação de projetos Web, que oferece suporte para os múltiplos frameworks ASP.NET (Web Forms, MVC e Web API).

Desta forma, quando clicamos em [Novo Projeto] no Visual Studio, notamos no painel a esquerda apenas um template chamado [ASP.NET Web Application]



Ao clicar em Ok, aparecerá os diversos frameworks para desenvolvimento ASP.NET



Inclusive podemos adicionar suporte de um tipo de framework em outro. Por exemplo, ao criar um projeto do tipo [Web Forms] podemos adicionar alguns recursos do framework MVC ou Web API





E se quisermos alterar o método de autenticação de nossa aplicação, existe agora um botão chamado [Change Authentication]





Notou novidades nas formas de autenticação? Vamos a elas:


1 - No Authentication
Selecionando esta opção a sua aplicação não conterá qualquer página para autenticação de usuários, nenhuma tela indicando quem entrou no sistema ou qualquer classe de entidade em apoio ao conjunto de membros (membership) ou [connection string] com o banco de dados. 

2 - Individual User Accounts
Com esta opção sua aplicação será configurada para usar o recurso ASP.NET Identity (formalmente conhecida como ASP.NET membership). Desta forma poderemos criar um novo usuário/senha pela aplicação ou autenticar o usuário usando um provedor externo como Google, Facebook, Microsoft Account ou Twitter. Semelhante ao anterior ASP.NET membership, os dados dos usuários ficarão armazenados em um banco de dados local (localDB).

3 - Organizational Accounts
Finalmente temos uma forma nativa de acesso a biblioteca [WIF - Windows Identity Foundation] para autenticação baseada em usuários do AD - Active Directory da empresa ou WAAD - Windows Azure Active Directory.

[WAAD]


[AD]


Não entraremos em detalhes sobre este tipo de autenticação neste momento pois ele merece um novo artigo! :-)

4 - Windows Authentication
Com esta opção sua aplicação usará o módulo de autenticação por IIS do Windows. A aplicação mostrará o ID do domínio/usuário do AD ou da conta do usuário que entrou no Windows. Use esta opção para criar aplicações que rodarão na sua [intranet] somente.

Já que estamos falando em autenticação, vamos treinar uma forma de autenticação externa, no Google, em ASP.NET MVC 5!

Abra o Visual Studio 2013 (ou Express) e clique em Novo Projeto, Visual C# -> Web -> e na opção ASP.NET Web Application





Agora rode a aplicação (F5) e note que existe uma novidade, um painel de navegação flutuante para as opções de menu padrão da aplicação (este opção aparece dependendo do tamanho do seu Browser)





Vamos agora habilitar o recurso para autenticação pelo provedor - Google OpenID

Abra o arquivo [App_Start\Startup.Auth.cs] e habilite a linha [app.UseGoogleAuthentication()].



Pressione F5 para iniciar a aplicação e clique no Link [Log In]. Note que na parte final da tela vai aparecer um botão para conexão com seu usuário do Google





A partir de agora basta efetuar o login no provedor do Google e aceitar o termo de condição para que sua aplicação visualize informações básicas do usuário do Google.









Bootstrap in the Visual Studio 2013
O template de projeto MVC foi atualizado para usar Bootstrap de forma a prover um design mais produtivo, responsivo e mais fácil de customizar.

Por exemplo, quando criamos um novo projeto ASP.NET MVC 5, ao rodar a aplicação você vai notar que o design se adapta bem a diferentes tamanhos de janela do navegador.

Ao Iniciar a aplicação



Com a janela mais estreita, note que as informações do site se movem para o centro do browser



Estreite um pouco mais e o menu se adapta e se transforma



E para alterar este stilo padrão do Visual Studio basta incluir um novo CSS no seu projeto - por exemplo, buscando temas no site http://bootswatch.com - e referenciar este novo css no arquivo [App_Start/Bundle.config] do projeto





Attribute routing

ASP.NET MVC agora suporta atributos de roteamento, ou seja, você especifica suas rotas como anotações nas suas classes de controle e nas [actions] da classe.

Para começar a usar este recurso instale-o via nuget package, através do comando [Install-Package AttributeRouting]:



Com isto será criada a classe [~/App_Start/AttributeRouting.cs/vb] no seu projeto. Já podemos então trabalhar com este novo recurso.

De forma limitada nós já trabalhamos com roteamento de atributos, sendo eles: GET, POST, PUT e DELETE. Com o apoio deste novo recurso podemos estender e muito esta funcionalidade.
O interessante é que isto é uma contribuição adotada pela Microsoft e o contribuidor se chama Tim McCall.

A explicação completa deste importante recurso MVC pode ser encontrada em http://attributerouting.net.

Fontes:
ASP.NET and Web Tools for Visual Studio 2013 Release Notes
Create an ASP.NET MVC 5 App with Facebook and Google OAuth2 and OpenID Sign-on (C#)
Creating ASP.NET Web Projects in Visual Studio 2013