Componente transaccional en .NET

23/03/2005 - 16:43 por Jaimito | Informe spam
Hola compañeros...

He creado una clase que hereda de la clase ServicedComponent del espacio de
nombres System.EnterpriseServices. Esta clase es prácticamente una fábrica de
transacciones que luego pueden ser usadas por otros componentes para
empaquetar todas sus operaciones en una transacción.

Bueno, tengo otra clase que hace uso de la fábrica de transacciones para
ejecutar sus operaciones en un contexto transaccional.

Ya tengo generados los assemblies (con strong name) de cada una de estas
clases.

La pregunta radica en:

Al pasar estos assemblies al servidor de PRODUCCIÓN cuál clase debo meter en
el MTS? sólo la fábrica de transacciones? ambos?

Cómo hago para meter una clase en el MTS? hay que registrar los assemblies
DLL's como se hacía con las antiguas DLL's?

En fin agradezco la asesoría para utilizar estos assemblies en PRODUCCIÓN.

Gracias...

Preguntas similare

Leer las respuestas

#6 Jaimito
23/03/2005 - 21:45 | Informe spam
Ok, Gracias otra vez...

Ya implementé un GUID para cada una de las clases públicas e interfaces.

Te molesto nuevamente preguntando:

Qué gano con colocar estos GUID a cada clase?
Para qué un GUID en el assemblyinfo y otro para las clases e intefaces?
Mejora algo? Seguridad? Implementación? qué?
También hay necesidad de generar un GUID para las clases e interfaces
privadas y protegidas?

Ya que veo que manejas bastante el tema:
Qué otras cosillas de configuración de los componentes COM en .NET debería
de tener en cuenta?

Gracias y qué pena molestarte tanto :-)
Respuesta Responder a este mensaje
#7 A.Poblacion
23/03/2005 - 22:19 | Informe spam
"Jaimito" wrote in message
news:
Ya implementé un GUID para cada una de las clases públicas e interfaces.

Te molesto nuevamente preguntando:

Qué gano con colocar estos GUID a cada clase?
Para qué un GUID en el assemblyinfo y otro para las clases e intefaces?
Mejora algo? Seguridad? Implementación? qué?



Los distintos Guids que vas introduciendo son los que van a parar al
Registro de Windows cuando tu componente se registra ahi (dado que COM+ se
apoya en COM para trabajar, .Net usa COM Interop para que tu componente
tenga interfaces COM). Si lo consumes desde algún programa que sea
consumidor de COM, estos son los Guids que va a usar ese programa. Si dejas
que sean aleatorios, tendrás que recompilar los programas consumidores que
usen early binding cada vez que modifiques el componente.

También hay necesidad de generar un GUID para las clases e interfaces
privadas y protegidas?



En principio, no, dado que no las vas a llamar desde fuera.

Ya que veo que manejas bastante el tema:
Qué otras cosillas de configuración de los componentes COM en .NET debería
de tener en cuenta?



Hay toda una serie de atributos que puedes aplicar a tu fuente que
sirven para que el componente se configure correctamente en COM+ cuando lo
registres, sin que tengas que acudir a los Servicios de Componentes en el
panel de control y manipular a mano la configuración.

Por ejemplo, si en el AssemblyInfo pones estos atributos:
<Assembly: ApplicationName("Nombre de la aplicacion")>
<Assembly: ApplicationID("BF904EC5-E521-4ef2-A51C-4C818586B178")>
consigues que se registre en los Servicios de Componentes con este nombre y
este Guid.

También tienes el
<Assembly: ApplicationActivation(ActivationOption.Library)>
Para indicar si quieres que sea una aplicacion de libreria o servidora (de
las que ruedan en dllhost.exe)

Y también
<Assembly: ApplicationAccessControl(True,
AccessChecksLevel:=AccessChecksLevelOption.ApplicationComponent)>
y otros atributos similares para manipular la seguridad basada en roles de
COM+.

De la misma forma, en las clases tienes los atributos del tipo
Transaction(TransactionOption.Supported), JustInTimeActivation(),
Synchronization(SynchronizationOption.Required),
ConstructionEnabled([Default]:="cadena")
que configuran las correspondientes opciones en la pantalla de configuración
del componente.

Y en los métodos, es posible que quieras añadir el
<AutoComplete()>
para simplificar la necesidad de llamadas a SetComplete y SetAbort.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida