Si quieren leer algunas de las cosas que se estan haciendo y mejorando en la version 2.0 de Smart Client Software Factory, les recomiendo leer este post de Juan Arguello, quien participa en el team de desarrollo de esta nueva version, junto con Matias Woloski, Mariano Szklanny, Miguel Saez y el P&P Team.
Mes: marzo 2007
SaaS Technight en Buenos Aires
Este post es solo para recordarles que este viernes 16 de marzo, va a realizarse un technight sobre Software as a Service (pueden ver mis post sobre este tema aca).
Oradores: Ramiro Iturregui, Roberto Schatz, Ariel Schapiro y Alejandro Jack.
Pueden registrarse aca.
Smart Client Software Factory: Registrando y Recuperando Servicios
Hola, en este post voy a intentar explicarles las diferentes formas que existen en SCSF/CAB para registrar y recuperar servicios. Empezemos 🙂
How To: Registrando Servicios
Existen dos formas de implementar la registracion de un servicio.
-
Usando el atributo [Service]
Este atributo nos indica que nuestra clase va a ser automaticamente registrada como un servicio dentro del root WorkItem de nuestra aplicacion.
Usage:
public interface IMyService
{
int GetSomeData();
}[Service(
typeof(IMyService))]
public class MyService : IMyService
{
public int GetSomeData()
{
return 1;
}
}Con el codigo anterior CAB crea una instancia de esta clase y la registra como un servicio durante el inicio de nuestra aplicacion. El parametro del constructor del atributo le esta a diciendo a CAB que key usar para registrar el servicio (para usarla en la localizacion)
Usando WorkItem.Services.Add<TService>()
Ahora bien, si queremos registrar nuestro servicio de una forma mas programatica, lo que tenemos que hacer es llamar al metodo Add o al metodo AddNew de la coleccion de servicios del WorkItem en el que queremos usar el servicio.Usage:
RootWorkItem.Services.Add<MyService>(myServiceInstance); RootWorkItem.Services.AddNew<MyService>();
RootWorkItem.Services.AddNew<MyService, IMyService>();
How To: Recuperando servicios
Ahora que ya tenemos nuestros servicios registrados, lo mas logico es que queramos recuperarlos para poder usarlos. Veamos las dos maneras que hay para realizarlo.
-
Usando el atributo [ServiceDependency]
Este atributo (que puede ser usando tanto en propiedades como en parametros) indica que esa propiedad o parametro es una dependencia a un servicio y el cual tiene que ser «inyectado» cuando el objeto es agregado a nuestro WorkItem.Usage:
private IMyService myService; [ServiceDependency]
public IMyService MyService
{
set { myService = value; }
}Con este codigo, CAB tiene claro que estamos teniendo una dependencia con IMyService, la cual ya fue creada y esta disponible para ser usada. Para realizar esto CAB usa Inversion of Control (IoC) / Dependency Injection (DI). Cuando el objeto (por ejemplo una View) es agregado al Workitem, la instancia que corresponda al servicio va a ser inyectada en nuestra propiedad o parametro.
- Usando WorkItem.Services.Get<TService>()
Por este camino la recuperacion del servicio es mas bajo demanda que usando el atributo [ServiceDependency].
Imaginemos que tenemos un segundo servicio llamado AnotherService que implementa la interface IAnotherService a la cual decoramos con el atributo [Service].
En nuestra View, no vamos a crear un propiedad para acceder a nuestro servicio, por lo tanto no vamos a estar usando el atributo [ServiceDependency].
Usage: (por ejemplo en un metodo)
public void MyMethod()
{
IAnotherService mySecondService = rootWorkItem.Services.Get<IAnotherService>();
// …
}Aclaremos que el atributo [ServiceDependency] no hace magia, sino que «behind the scenes» o en criollo por abajo, esta llamando a Services.Get.
Espero que esta guia les sea util.
Crossposting con mi blog en Ingles.
Voy a empezar a postear en Geeks los post que vaya publicando en mi blog en ingles.
En esos posts, voy a dejarles el link original al post por si lo prefieren leer en ingles.
Saludos!!
LitwareHR -> Ahora disponible para XP
Hace unos dias les hable de SaaS y de LitwareHR (pueden leer este post si se lo perdieron), y como habran visto si es que bajaron la aplicacion, la misma se tenia que ejecutar en Windows 2003.
Pero la comunidad se hizo escuchar :), y ahora tenemos un instalador de LitwareHR para poder correr LitwareHR en XP.
En este post, Ariel Schapiro nos cuenta con mas detalles cuales fueron los cambios que se realizaron, y a su vez nos deja un link con una guia para hacer funcionar LitwareHR en Windows Vista.
Espero que les sirva y que se animen a usar LitwareHR.
Software as a Service (SaaS) – LitwareHR
¿Que es SaaS? ¿Donde puedo obtener informacion?
«Software deployed as a hosted service and accessed over the Internet.»
Obviamente esto es solo una definicion muy simple, la idea es que lean estos articulos y vean la aplicacion LitwareHR
Links:
- Architecture Strategies for Catching the Long Tail
- Multi-Tenant Data Architecture
- Architects in Action (skyscrapr) – Videos, documentacion, etc
- ¿Es la opción «Software-as-a-Service» (software como servicio») adecuada para su negocio?
Blogs que postean sobre SaaS:
- Gianpaolo Carraro
- Fred Chong
- Ariel Schapiro (Co-Worker en Southworks)
¿Que es LitwareHR?
LitwareHR is a fictitious HR application providing recruitment management software delivered as a service. But the important aspects are not what the application does but how it is implemented.
LitwareHR is implemented as a Single Instance Multi Tenant application, which means that all LitwareHR customers (or tenants) share the same instance of the application including a single database. Showing how to be multi tenant efficient as well as allowing tenant specific customization in a single instance environment was one of the key objective of LitwareHR.
Links:
Les recomiendo que para entender un poco mas, vean el screencast que hizo Ariel Schapiro sobre «Datacenter Provisioning».
Este screencast explica como instalar en un datacenter toda la estructura que se necesita para soportar a LitwareHR, interesante si quieren saber que es lo que hace el script de instalacion.
Esten atentos, porque muy pronto habra nuevos screencast.
Tambien para los que estan en Argentina, los inivito a concurrir al evento de SaaS que se va a realizar el 16 de Marzo.
Les dejo el link al evento:
Nos vemos el 16.
Saludos!!