Mostrando las entradas con la etiqueta WCF. Mostrar todas las entradas
Mostrando las entradas con la etiqueta WCF. Mostrar todas las entradas

lunes, marzo 15, 2010

Config WCF with two host headers (english)

Scenario: WCF with .net framework 3.5 Sp1, Windows 2003 SP2, IIS 6.0 with two host headers.

In this, my first post in english, I write about the configuration details when we need install a WCF service hosting in IIS 6.0 when the Information Server have two or more host header configurated.

Suppose a simplified version of classic WCF sample:

IService1.cs

namespace WCFTest

{

[ServiceContract]

public interface IService1

{

[OperationContract]

string GetData(int value);

}
}

Service1.cs

namespace WCFTest

{

public class Service1 : IService1

{

public string GetData(int value)

{

return string.Format("You entered: {0}", value);

}

}

System.ServiceModel Web.config section:

In this case we use windows authetication, but this issue is not mandatory.

<system.serviceModel>

.....
<bindings>

<basicHttpBinding>

<binding name="BasicHttpBinding_IService1">

<security mode="TransportCredentialOnly">

<transport clientCredentialType="Windows" />

</security>

</binding>

</basicHttpBinding>

</bindings>

<services>

<service behaviorConfiguration="WCFTest.ServiceBehavior" name="WCFTest.Service1">

<endpoint address="" binding="basicHttpBinding" contract="WCFTest.IService1">

<identity>

<dns value="localhost" />

</identity>

</endpoint>

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

</service>

</services>

<behaviors>

<serviceBehaviors>

<behavior name="WCFTest.ServiceBehavior">

<serviceMetadata httpGetEnabled="true" />

<serviceDebug includeExceptionDetailInFaults="true" />

</behavior>

</serviceBehaviors>

</behaviors>

.....

</system.serviceModel>



The error that ocurrs when the IIS 6.0 has configurated two or more host header is the folowing

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

This error ocurrs because the WCF runtime cannot know the host header where the service was implemented. In this case we must be configurate in explicit form what is the the IP of the host header when the service should run.

First , we add other System.ServiceModel section

<system.serviceModel>

.....
<serviceHostingEnvironment>

<baseAddressPrefixFilters>

<add prefix="http://<host header IP>" />

</baseAddressPrefixFilters>

</serviceHostingEnvironment>


The sevice and behaviors sections change too.

<service behaviorConfiguration="WCFTest.ServiceBehavior" name="WCFTest.Service1">

<endpoint address=http://<host header IP>/WCFTest/Service1.svc

binding="basicHttpBinding"

contract="WCFTest.IService1">

</endpoint>

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

</service>


<behaviors>

<serviceBehaviors>

<behavior name="WCFTest.ServiceBehavior">

<serviceMetadata httpGetEnabled="true"
httpGetUrl="http://<host header IP>/CASServices/Services.svc/>

<serviceDebug includeExceptionDetailInFaults="true" />

</behavior>

</serviceBehaviors>

</behaviors>

.....

</system.serviceModel>


Note: In the production environment is recomended the set in false the httpGetEnabled and includeExceptionDetailInFaults attributes.

miércoles, mayo 27, 2009

Microsoft Architecture Day

En el día de hoy se hizo la reunión de la Comunidad de Arquitectos de Microsoft. Fue una reunión muy interesante en la que gente de Microsoft y otra empreass presentaron sus experiencias en soluciones de sistemas utilizando las últimas tecnologías de Microsoft,también se presentaron nuevos feactures de tecnologias como Windows 7 , WPF , Siverligh etc. Los asistentes pudieron preserciar presentaciones como:

Andres Vetori y equipo de VMBC Caso de exito de un sistema con .Net 3.5 SP1, WCF, Retina.Net ,Geneva framework, AOP, IVR con Speech Server 2007 entre otra tecnologías. Fue un proyecto contruido utilizando la metodología Agile / Scrum.
Como herramientas de desarrollo utilizaron Team System con integración continua en base a Team Build y deploy con scripts de MSDeploy.

Conclusiones generadas del proyecto:
- Es deseable automatizar las implementaciones en producción
- Adaptar la metodología de desarrollo a las particularidades del proyecto.
- El merge continuo no es siempre justificable.
- Se debe tener un adecuado control de los builds y que objetos contiene cada iteración.

Recomendaciones para un exito de un proyecto de este tipo:
- Virtualización (Hiper-V).
- Equipo con buen señority.
- No reiventar la rueda (patrones, frameworks etc).
- No subestimar el test (automzatizarlo y controlar su correcta ejecución como entregable de la iteración).
- No olvidarse del monitoreo.
- Tener un adecuado procedimiento de control de cambios.
- Mantener una cultura de motivación para hacer las cosas bien hechas.
- Crear una cultura de calidad continua.

Diego Gonzales de lagash presentó una visió de las tendencias en arquitectura de software

- Arquitecturas elásticas
- Base de datos no relacionales.
- (des) orientación a servicios.
- Programación dinámica.

En el tema de arquitectura elástica se vió consideraciones sobre escalabilidad en ambientes Cloud, planificación de arquitectura y modelos de arquitectura.
Diego presentó el concepto de que las arquituras deben ser emergentes y no prescriptivas, es decir se deben diseñar en conjunto con el desarrollo del sistema.

Dentro del tema de escalabilidad horizontal existe el nuevo paradigma de Microsoft que es Azure y el sistema operativo Windows Azure, creado para aplicaciones distribuidas en infraestructura Cloud. La escalabilidad vertical ya está llegando a su límite.
Para scar provecho a este nuevo paradigma es necesario especialización en programación concurrente.
Respecto a la planificación de arquitectura Diego mencionó que en muchas ocaciones conviene que el diseño de la arquitectura sea emergente en vez de prescriptiva, haciendo participar al aquipo de desarrollo ensu definición, esto tiene la ventaja de motivarlos en la creación de la misma y el desarollo del sistema y permite un mejor refinamiento mientra se crea el sistema.
Planteó conceptos de modelado de arquitecturas que pueden ser centralizadas o satelitales.

Un tema que recordó es que por lo general es una desición por defecto que la base de datos a utilizar sea del tipo relacional, esto no siempre es una correcta elección, hay casos donde se requieren datos temporarios, no es tan exigible que sea transaccional en donde la RDBMS no resultan ser lo más apropiado. Ejemplos de uso de este tipo de base de datos son aplicaciones del tipo redes sociales como Facebook.
Las bases de datos no relacionales tienen entre otras las siguientes características:

- key-value db y document db.
- Buen soporte para lenguajes dinámicos.
- Facil cambio en la aplicación.
- Datos a-normalizados. etc.

Productos: SQL Services, Drizzle,Amazon WebServices etc.

lunes, mayo 25, 2009

Windows Communication Fundation

El WCF fue dado a la luz junto con el framework .Net 3.0 en 2006. En ese momento existían addíns para el Visual Studio 2005 que permitían generar proyectos WCF en forma simple, muchas de esas herramientas eran beta, y se debían usar un poco por linea decomandos y un poco dentro del VS2005,algo muy poco práctico para implementar en una empresa o sector de desarrollo de software.
No voy a describir los problemas que tuve con el desarrollo de proyectos WCF en VS2005 pues el el Visual Studio 2008 incluye todas esas herramientas que se debian agregar a la anterior versión del IDE pudiendo generar proyectos WCF en forma mucho más simple.

Para aquellos que aún no han trabajado con el WCF o necesitan una capacitación de diferentes aspectos que provee esa tecnología les sugiero los siguientes recursos. Los WebCasts están basado enel Visual Studio 2008, por ese motivo es conveniente usar ese entorno.

En ingles
WCF Getting Started
http://msdn.microsoft.com/en-us/library/ms734712.aspx

Microsoft Windows Communication Foundation Step by Step, John Sharp
Disponible para su compra en Microsoft-Press

http://www.microsoft-press.co.uk/scripts/product.asp?ref=811252

O bien en librerias online como http://www.books24x7.com

Pro WCF: Practical Microsoft SOA Implementation

by Chris Peiris, Dennis Mulder et al.
Apress © 2007 (505 pages) Citation
ISBN:9781590597026

Providing coverage of the unified programming model, reliable messaging, security, peer-to-peer programming, and more, this is a complete guide to WCF from the SOA architecture perspective and shows why WCF is important to web service development.
(este aun no lo lei,pero me parece muy interesante)

En Portugues (Brasil)

MSDN Webcast: Melhores práticas no uso do WCF
https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=es-ar&eventid=1032409560&flag=3

Webcast Arquitetura: Arquitetura Orientada a Serviços: WCF Boas práticas (do levantamento, construção e hospedagem
https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=es-ar&eventid=1032415471&flag=3