. Net: ¿Qué es una asamblea fuerte y qué es una asamblea débil?
El primer paso para generar un ensamblado con nombre seguro es obtener un par de claves de cifrado. de. NET framework SDK incluye una herramienta de "nombre seguro" (Sn.exe) que se puede utilizar para generar pares de claves. Los pares de claves generados por la herramienta de nombre seguro se pueden guardar en un archivo o almacenar en el proveedor de servicios criptográficos (CSP) de la computadora local. El siguiente comando utiliza la herramienta de nombre seguro para generar un nuevo par de claves y lo almacena en un archivo llamado TestKey.snk:
sn -k Testkey.snk
Obtener la clave Después de eso , debe agregar las propiedades personalizadas correctas a sus archivos fuente para que el compilador pueda emitir un ensamblado con nombre seguro. Las propiedades se eligen correctamente dependiendo de si el par de claves utilizado para la firma está contenido en un archivo o en el contenedor de claves del CSP. Para claves almacenadas en archivos, utilice system. Para claves almacenadas en CSP, utilice system. reflexión .assemblykeynameattribute .Interoperabilidad entre componentes NET y componentes COM
. NET es la tecnología de plataforma de próxima generación lanzada por Microsoft. Desde que se lanzó oficialmente la versión Beta2. NET, esta tecnología ha madurado y estabilizado gradualmente. Teniendo en cuenta la cuota de mercado de los sistemas de plataforma Microsoft, es fácil de imaginar. La tecnología NET ingresará a la plataforma tecnológica convencional en los próximos uno o dos años. Si una nueva plataforma tecnológica quiere desarrollarse rápidamente, el requisito previo más importante es no abandonar por completo la tecnología anterior. Tecnología NET.
En términos generales, en el campo de la tecnología de TI y la industria del hardware, la velocidad de actualización de la tecnología es asombrosa. Es una convención que todas las nuevas tecnologías seguirán el principio de compatibilidad con versiones anteriores, pero. NET no sólo logra esto, sino que incluso implementa las llamadas respectivas, lo cual es muy loable. Es decir, no sólo podemos estar dentro. NET, pero también podemos llamarlo. NET generalmente se encuentran dentro de componentes COM. Los beneficios de esto son obvios. Por un lado, podemos conservar los recursos técnicos existentes; por otro, podemos hacer uso de diversas tecnologías nuevas. NET recursos existentes.
Antes de comenzar, echemos un vistazo. NET y componentes COM que utilizamos a menudo en la actualidad.
Los componentes NET se pueden dividir en dos categorías: * *Compartidos. Componentes NET y privados. Ingredientes netos.
. * * * Los componentes .NET de Enjoyed deben garantizar su singularidad mediante tecnología de criptografía de clave pública estándar, similar al número de identificación único global GUID de COM. Sin embargo, debemos intentar evitar su uso. NET componentes * * * Disfrútelo tanto como sea posible, porque en los sistemas Windows es posible caer en el "infierno de DLL" que ha plagado a los desarrolladores durante mucho tiempo.
Privado. NET son componentes. NET, que usaremos con frecuencia. Eso es todo lo que necesitamos hacer al publicar. NET simplemente los copian. Parece que hemos regresado a la antigua era de DOS. Ahora ya no necesitamos preocuparnos por el complejo registro del sistema, ni sobrescribir la versión DLL.
Los componentes COM son un marco de tecnología de reutilización de código que Microsoft ha promovido durante muchos años. También se ha desarrollado y aplicado enormemente en los últimos años, pero sus deficiencias se han vuelto cada vez más obvias. Tenemos que enfrentarnos al control de versiones y al terrible infierno de DLL entre numerosos componentes COM, así como el registro, GUID, etc. Cuando instalamos un software, también traemos a nuestro sistema operativo una gran cantidad de componentes COM desconocidos de varias versiones.
Sin embargo, las ventajas técnicas de los componentes COM también son obvias. La reutilización de código en la plataforma Windows se ha logrado en gran medida, por lo que hemos propuesto un tema de este tipo: cómo protegerlo y utilizarlo a medida que madura. Una gran cantidad de software y productos existentes utilizan tecnología COM.
¿Tecnología NET?
Analicemos cómo implementar llamadas y operaciones entre reuniones. Componentes NET y componentes COM.
Primero, veamos cómo llamar al componente que escribimos. Componentes COM existentes en NET:
Aquí usamos C# para escribir el componente más simple, que solo devuelve una cadena. El código detallado es el siguiente:
Está arriba. NET, implementamos un miembro de la clase: digamos. Su propósito es simplemente devolver una cadena.
Cambie a la línea de comandos de MS-DOS y ejecute:
c:\>CSC /t:library/out class biblioteca 1. DLLClassLibrary1.cs
El parámetro del compilador /t:library anterior le indica al compilador de C# que ahora estamos creando una aplicación de biblioteca. De esta manera obtenemos un componente .NET llamado ClassLibrary1.DLL.
Pero si queremos utilizar este componente en un componente COM existente, tenemos los siguientes pasos:
Cambiemos a la línea de comandos de MS-DOS y ejecute:
c:\> regasm fuera de la biblioteca de clases 1. DLL/regfile: biblioteca de clases 1. reg
La línea de comando anterior es para registrarnos. NET y generar archivos de registro de respaldo. Debe recordar que en nuestro anterior win9x/NT/2000, el comando utilizado para registrar componentes COM era:
regsvr32 c:\test.dll
A continuación. NET, registrándose. NET requieren el comando regasm anterior. Vale la pena señalar que este método solo lo llaman los componentes COM. ¡NET en sí no requiere ningún registro para llamar componentes entre sí!
Aún no ha terminado. Lo siguiente que debemos hacer es:
Cambiar a la línea de comandos de MS-DOS y ejecutar:
c:\>tlbExp biblioteca de clases 1. dll/out:clase biblioteca 1. TLB
Las instrucciones de la línea de comando anteriores. NET para que podamos vincular componentes COM de antemano.
Bien, entonces podemos usarlo fácilmente. NET están basados en la tecnología COM actual y escritos en C# con nuestro propio código. Aquí usamos VB6.0 para escribir un pequeño código de prueba. Antes de comenzar, debemos usar la opción "Referencia" en el menú del entorno integrado de VB y seleccionar el tipo de archivo de biblioteca ClassLibrary1.tlb que acabamos de generar.
El código de prueba de VB es el siguiente:
Private subform_Load()
Prueba atenuada como nueva biblioteca de clases 1.hola
Dim cadena como cadena
str = test.say("dddd ")
cadena MsgBox
Conector final
A continuación, veamos cómo para utilizar componentes COM existentes. Ingredientes netos.
Porque. NET, componentes COM más fáciles de usar. Al comienzo del diseño. NET considera cómo utilizar convenientemente los recursos técnicos existentes, que también es el estilo consistente de Microsoft. También puedes verlo en línea. . NET proporciona una gran cantidad de bibliotecas de clases para facilitar la interoperabilidad con COM. El espacio de nombres más importante es: System.Runtime.InteropServices A través del nombre de este espacio de nombres, también podemos ver literalmente "servicios de interoperabilidad". Sistema de espacio de nombres. InteropServices proporciona una serie de clases que operan en objetos COM.
En el siguiente ejemplo, llamemos a la función Win32 propia del sistema MessageBoxA. Esta función se encuentra en user32.dll, que es un componente com del sistema. El código que llamamos es el siguiente:
Usar el sistema;
Usar el sistema.
Tiempo de ejecución . InteropServices
Prueba de clasificación
{
[DllImport("user32.dll")]
public static extern int messagebox a. (en thnd, cadena strMsg, cadena strCaption, tipo intn);
Public static void Main()
{
int myMsg
myMsg=MessageBoxA(0, "Hello!", "Test", 0);
}
}
Cambiar a la línea de comando de MS-DOS y ejecutar:
c:\>csc test. cs
Después de compilar nuestra aplicación C#, puede ver el cuadro de diálogo ejecutándolo directamente.
Cabe señalar que antes de llamar al componente COM, debemos consultar el espacio de nombres: System. en el mando. Programa NETO. Porque necesitamos utilizar un método proporcionado por este espacio de nombres: DllImport.
De todos modos, es muy conveniente utilizar componentes COM en formato . neto. Lo anterior es el componente DLL del sistema que llamamos. De manera similar, también podemos usar este método para llamar a nuestros propios componentes COM escritos en VB/VC.
Hemos terminado de discutir ¿cómo? NET y COM, lo hemos visto claramente. Tecnología NET. Cuanto antes lo consigamos. NET, será más fácil ocupar una posición de liderazgo en el futuro. Trabajemos juntos para dominar a los poderosos. Tecnología de plataforma NET.
(El programa anterior fue probado en el servidor Windows200VS.NET Beta2).