El Blog de Óscar Sotorrío Sánchez - MCP Application Development Foundation - C#

Todo lo que vaya aprendiendo de .NET, C#, ASP.NET, SQL Server, etc, lo compartiré con vosotros.

El autor:

Óscar Sotorrío Sánchez
Contacto Send mail

Encuéntralo

Álguien dijo...


La paciencia es amarga, pero sus frutos son dulces.

Jean Jacques Rousseau

Programación Orientada a Objetos en .NET con C# (3º parte)

2. Encapsulamiento

b- Clases y objetos


Las clases debemos verlas como moldes o plantillas para crear (instanciar) diferentes objetos a partir de ellas.


Un ejemplo. Supongamos que en una fábrica disponen de un molde para diseñar piezas de diferentes materiales. Este molde puede ser llenado con materia plástica, metal fundido o vidrio líquido, solo es un ejemplo…que ningún Ing.Industrial proteste ;-).


Al enfriarse el molde y su interior, tendremos 3 objetos con medidas idénticas pero cada uno tendrá sus características propias en función del material que se ha utilizado para su construcción.


De la misma forma una clase permite crear (instanciar) diferentes objetos que tendrán los mismos métodos y atributos pero cada uno guardará en la memoria unos datos diferentes.


Nota: He utilizado 2 veces el termino 'instanciar' en similitud con 'crear'. Instanciar un objeto es cargarlo en la memoria.


Otro ejemplo. Para administrar las necesidades de una empresa en relación con sus empleados podemos necesitar una clase llamada 'empleados'. Los atributos de esta clase pueden ser el nombre y la dirección de los empleados. De esta forma necesitaremos métodos para manipular estos atributos, es decir, un método para establecer el nombre y otro para obtenerlo. Y lo mismo para el dato de la dirección. Necesitaremos un método que nos permita cambiar la dirección de un empleado en el caso de que este cambie de domicilio.


Una vez tenemos nuestra clase definida, podemos cargar en memoria (instanciar) distintos objetos de esta clase. Dado que una imagen vale más que mil palabras, veamos el siguiente diagrama.

Diagrama de Clase y Objetos


Como podemos ver en la figura, la clase funciona como un contenedor (encapsulación) permitiendo agrupar tanto los datos (atributos) como los métodos.


También observamos que hemos creado dos objetos diferentes de la misma clase. Cada uno con sus datos particulares de nombre y dirección. Pero en los objetos no hemos incluido los métodos de la clase.


¿Porque?. Muy sencillo, porque cada objeto carga en memoria una copia de los datos propios (atributos) pero los métodos solo existen en la clase y son compartidos por todos los objetos creados a partir de la clase.


Esto quiere decir que cuando Pedro cambie de dirección, hará una llamada al método de la clase 'EstablecerDirección' y guardará los nuevos datos en la memoria del objeto Empleado1. Y exactamente lo mismo para el Empleado2, compartiendo de esta forma los métodos de la clase.


En la primera parte de este estudio dijimos que nuestra filosofía es que ¡todos son objetos!. ¿Pero qué pasa con las clases?, ¿son o no son objetos también?, ¿nos hemos contra decido?.


Las clases también son objetos (el molde de la fábrica es un objeto), de hecho en los lenguajes de .NET todo son objetos. Objetos que heredan de la clase base Object. Pero esto de la herencia lo veremos más adelante. De momento es suficiente con el concepto de que las clases son un tipo de objeto que nos permiten crear otros objetos con características similares.


En el siguiente artículo veremos cómo implementar clases e instanciar objetos por medio del lenguaje C#.


Posted by Oscar.SS on jueves, 30 de octubre de 2008 11:00
Permalink | Comentarios (2) | Post RSSRSS comment feed

Programación Orientada a Objetos en .NET con C# (2ª parte)

2. Encapsulamiento

a- Definición


Cuando hablamos de encapsulación en un lenguaje orientado a objetos (y algunos que no lo son totalmente) hablamos necesaria y evidentemente de las clases.
Como mencionamos anteriormente los objetos tienen dos características que los definen.


- Los atributos: que es donde se almacenan los datos del objeto.


- Los métodos: que nos permiten manipular y acceder a estos datos.


Por lo tanto, la encapsulación nos facilita el poder agrupar en una sola entidad de código, tanto los datos (atributos) como la forma de manipularlos (métodos).
Esta funcionalidad la conseguimos con las clases, en las que "introduciremos" los atributos y métodos de los objetos.


Una de las ventajas de la encapsulación es la facilidad de cambiar y reutilizar el código. Si en algún momento de la vida de un proyecto, necesita cambiar un atributo de la clase, solo tendrá que hacerlo en la definición de la clase y el cambio de propagará por todos los objetos creados a partir de esta clase.


En el siguiente apartado hablaremos de la relación de las clases y los objetos.


Posted by Oscar.SS on miércoles, 15 de octubre de 2008 1:17
Permalink | Comentarios (0) | Post RSSRSS comment feed

Programación Orientada a Objetos en .NET con C# (1ª parte)

1. Introducción


¿Qué es un objeto?

Antesde nada deberíamos comenzar por saber que es un objeto para un lenguajede programación y que es un objeto para los lenguajes de la plataforma.NET.

En la vida real es muy fácil determinarque es un objeto. Por ejemplo cojamos un objeto cualquiera, unmartillo. Ahora pasemos a describir o explicar que es un martillo paraalguien que no sabe lo que es.

“Un martilloes una herramienta con un mango alargado (comúnmente de madera) con unacabeza pesada (comúnmente de metal) en su extremo, que se utiliza paradeformar o desplazar otros objetos”.

Seguroque álguien se está preguntando…¿Qué tiene que ver esto con laprogramación?. Pues bien, la respuesta es todo. En seguida lo vemos.

Prestemosatención a la definición que hemos dado de este objeto. Primeramentehemos mencionado a que “familia” pertenece este objeto.

“Un martillo es una herramienta…”

Seguido hemos descrito dos características o atributos del objeto.

“…con un mango alargado (comúnmente de madera) con una cabeza pesada (comúnmente de metal) en su extremo …”

A continuación hemos comentado cual es su función.

“…que se utiliza para deformar o desplazar otros objetos.”

Precisamenteesto es un objeto para un lenguaje de programación. Un fragmento decódigo (o bloque) fácilmente identificable que dispone de atributos ymétodos (o funciones).

¿Quieres másejemplos?. Supongamos que estas diseñando una aplicación de tipoadministrativo que actualiza los datos de una empresa. Esta empresaseguramente tiene empleados y clientes. Ambos, empleados y clientes,pueden ser objetos en nuestro código y en ambos podemos definir atributos (nombre, apellidos, dirección, teléfono, etc) y métodos(entrar y salir del trabajo, hacer pedidos, darse de alta como cliente,etc).

¿Otro ejemplo?. Hablemos ahora de unaaplicación bancaria. Una cuenta de ahorros puede ser un objeto ennuestro código con atributos (nombre de cliente, número de cuenta,saldo, tipo de interés, etc) y con métodos (ingreso, reintegro, mostrarsaldo actual, etc)

En el ejemplo del martillovimos también que pertenecía a una familia de objetos, la familia delas herramientas. Este concepto tiene que ver con la herencia, locomentaremos más adelante.

Por el momento es suficiente con tener la idea básica de que los objetos disponen de atributos y métodos.

 

¿Qué es un lenguaje orientado a objetos?

Ahoraque ya tenemos claro (más o menos) que es un objeto para un lenguaje deprogramación, parece lógico responder a esta pregunta.

Seconsidera que un lenguaje está totalmente orientado a objetos cuando escapaz de soportar las siguientes cualidades; encapsulación, herencia, ypolimorfismo.

Daremos brevemente una pequeñaintroducción de estos conceptos para que el lector comience afamiliarizarse con ellos. En los siguiente artículos profundizaremostodo lo posible en ellos por tratarse del pilar de la programaciónorientada a objetos.

- Encapsulamiento.Esta cualidad permite agrupar en un mismo bloque de código losatributos (que contendrán los datos) y los métodos (que manipularánestos datos).

- Herencia.Es la cualidad que permite que un objeto derive de otro implementandotoda su funcionabilidad, es decir, adquiriendo todas los atributos ymétodos del objeto base.

- Polimorfismo.Posiblemente esta cualidad es la más difícil de entender y de explicar.Por el momento basta con decir que permite que varios objetos distintostengan la misma funcionabilidad (atributos y métodos).

 

¿Qué es esto de la abstracción de datos?

Supongoque hasta ahora todo lo dicho es un poco confuso. Sobre todo si es laprimera vez que el lector se enfrenta con estos conceptos que sonbastante abstractos.

No hay que desesperar,al principio cuesta bastante pero poco a poco, el lector seacostumbrará a esta manera de pensar que no deja de ser un ejercicio deabstracción.

¿Por qué abstracción?. Es unaforma de coger los datos reales de la vida cotidiana e implementarlosen líneas de código. Por ejemplo, un coche es un objeto tangible en lavida real, se puede tocar, conducir, etc. Pero en el mundo de loslenguajes de programación es algo intangible.

Enalgunos libros, se refieren a la “abstracción de datos” como a laposibilidad de acceder a los datos de un objeto sin importarnos comoestén internamente implementados en el objeto.

Personalmenteopino que este tipo de definiciones no ayudan en nada a la comprensiónde la programación orientada a objetos. Por lo menos a mi no meayudaron. Por lo tanto, en la medida de lo posible intentaremosevitarlas en este estudio.

Seamos prácticos,de momento es suficiente con que el lector, sobre todo los que vienende lenguajes procedurales (o secuenciales), cambien el chip y comiencena pensar que la vida real puede ser representada por objetos deprogramación. Nuestro axioma es que…¡¡todo son objetos!!

En el siguiente artículo trataremos la encapsulación a fondo.


Posted by Oscar.SS on miércoles, 24 de septiembre de 2008 17:24
Permalink | Comentarios (0) | Post RSSRSS comment feed

Resumen de System.Collections

Este breve resumen puede servir de guía a la hora de elegir lacolección más apropiada en nuestras aplicaciones. No es gran cosa peroda pistas.

Referente al uso que se le puede dar a cada colecciónincluida en el espacio de nombres System.Collections podríamosdividirlo de este modo:

1- Colecciones de acceso por un índice numérico.
2- Colecciones almacenadas con pares de clave-valor.
3- Colecciones tipo ‘colas’.

Dentrode estas categorías, podemos hacer dos divisiones más, en función de sivamos a utilizar las colecciones de .NET “directamente” o si vamos autilizarlas para crear colecciones personalizadas.

1.1- Colecciones de “uso directo” con acceso por un índice numérico.

- ArrayList: Siempreque queramos almacenar datos como en una matriz pero con la ventaja deaumentar el número de elementos dinámicamente deberíamos utilizar estacolección.

- BitArray: Colección muy concreta que almacena valores de bit representados como valores boléanos.

1.2- Colecciones para crear nuestras propias colecciones con acceso por un índice numérico.

- CollectionBase: Permite modificar los elementos de nuestra colección.

- ReadOnlyCollectionBase: Una versión de la anterior de solo lectura.

2.1- Colecciones de “uso directo” almacenando los datos con pares de clave-valor.

- Hashtable: Se puede acceder a los valores de los elementos solamente por medio de la clave.

NOTA:Esta clase es la única de System.Collections que expone funcionabilidadpara controlar la serialización y la deserialización.

- SortedList: Esta colección permite tener acceso a los valores de los elementos tanto por la clave como por índice.

2.2- Colecciones para crear nuestras propias colecciones con almacenamiento por pares de clave-valor.

- DictionaryBase.

3- Colecciones tipo colas.

- Queue: Primeroen entrar primero en salir (FIFO). Utilizar cuando necesitemosalmacenar una cantidad definida de datos en el orden que son creados.

- Stack: Ultimo en entrar primero en salir (LIFO).

Tags:
Categories: Desarrollo .NET
Posted by Oscar.SS on jueves, 07 de agosto de 2008 4:34
Permalink | Comentarios (0) | Post RSSRSS comment feed

1- Desarrollando aplicaciones que usen tipos y colecciones System.

A- Manage data in a .NET Framework application by using the .NET Framework 2.0 system types. (Refer System namespace)

Value types

Nullable type

Reference types

Attributes

Generic types

Exception classes

Boxing and UnBoxing

TypeForwardedToAttribute Class

 


B- Manage a group of associated data in a .NET Framework application by using collections. (Refer System.Collections namespace)

ArrayList class

Collection interfaces

ICollection interface and IList interface

IComparer interface and IEqualityComparer interface

IDictionary interface and IDictionaryEnumerator interface

IEnumerable interface and IEnumerator interface

Iterators

Hashtable class

CollectionBase class and ReadOnlyCollectionBase class

DictionaryBase class and DictionaryEntry class

Comparer class

Queue class

SortedList class

BitArray class

Stack class

 


C- Improve type safety and application performance in a .NET Framework application by using generic collections. (Refer System.Collections.Generic namespace)

Collection.Generic interfaces

Generic IComparable interface (Refer System Namespace)

Generic ICollection interface and Generic IList interface

Generic IComparer interface and Generic IEqualityComparer interface

Generic IDictionary interface

Generic IEnumerable interface and Generic IEnumerator interface IHashCodeProvider interface

Generic Dictionary

Generic Dictionary class and Generic Dictionary.Enumerator structure

Generic Dictionary.KeyCollection class and Dictionary.KeyCollection.Enumerator structure

Generic Dictionary.ValueCollection class and Dictionary.ValueCollection.Enumerator structure

Generic Comparer class and Generic EqualityComparer class

Generic KeyValuePair structure

Generic List class, Generic List.Enumerator structure, and Generic SortedList class

Generic Queue class and Generic Queue.Enumerator structure

Generic SortedDictionary class

Generic LinkedList

Generic LinkedList class

Generic LinkedList.Enumerator structure

Generic LinkedListNode class

Generic Stack class and Generic Stack.Enumerator structure


D- Manage data in a .NET Framework application by using specialized collections. (Refer System.Collections.Specialized namespace)

Specialized String classes

StringCollection class

StringDictionary class

StringEnumerator class

Specialized Dictionary

HybridDictionary class

IOrderedDictionary interface and OrderedDictionary class

ListDictionary class

Named collections

NameObjectCollectionBase class

NameObjectCollectionBase.KeysCollection class

NameValueCollection class

CollectionsUtil

BitVector32 structure and BitVector32.Section structure


E- Implement .NET Framework interfaces to cause components to comply with standard contracts. (Refer System namespace)

IComparable interface

IDisposable interface

IConvertible interface

ICloneable interface

IEquatable interface

IFormattable interface

 


F- Control interactions between .NET Framework application components by using events and delegates. (Refer System namespace)

Delegate class

EventArgs class

EventHandler delegates


Posted by Oscar.SS on sábado, 12 de abril de 2008 10:51
Permalink | Comentarios (0) | Post RSSRSS comment feed

2- Implementando servicios, procesos, y dominios de aplicación en una aplicación de la plataforma .NET.

A- Implement, install, and control a service. (Refer System.ServiceProcess namespace)

Inherit from ServiceBase class

ServiceController class and ServiceControllerPermission class

ServiceInstaller and ServiceProcessInstaller class

SessionChangeDescription structure and SessionChangeReason enumeration

 

 

B- Develop multithreaded .NET Framework applications. (Refer System.Threading namespace)

Thread class

ThreadPool class

ThreadStart delegate and ParameterizedThreadStart delegate

Timeout class, Timer class, TimerCallback delegate, WaitCallback delegate, WaitHandle class, and WaitOrTimerCallback delegate

ThreadState enumeration and ThreadPriority enumeration

ReaderWriterLock class

AutoResetEvent class and ManualResetEvent class

IAsyncResult interface (Refer System namespace)

EventWaitHandle class, RegisterWaitHandle class, SendOrPostCallback delegate, and IOCompletionCallback delegate

Interlocked class

ExecutionContext class, HostExecutionContext class, HostExecutionContext Manager class, and ContextCallback delegate

LockCookie structure, Monitor class, Mutex class, and Semaphore class


C- Create a unit of isolation for common language runtime in a .NET Framework application by using application domains. (Refer System namespace)

Create an application domain.

Unload an application domain.

Configure an application domain.

Retrieve setup information from an application domain.

Load assemblies into an application domain.


Posted by Oscar.SS on sábado, 12 de abril de 2008 10:49
Permalink | Comentarios (0) | Post RSSRSS comment feed

3- Agregando configuración, diagnóstico, gestión, e instalación en una aplicación de la plataforma .NET.

A- Embed configuration management functionality into a .NET Framework application. (Refer System.Configuration namespace)

Configuration class and ConfigurationManager class

ConfigurationElement class, ConfigurationElementCollection class, and ConfigurationElementProperty class

ConfigurationSection class, ConfigurationSectionCollection class, ConfigurationSectionGroup class, and ConfigurationSectionGroupCollection class

Implement ISettingsProviderService interface

Implement IApplicationSettingsProvider interface

ConfigurationValidatorBase class

 

 

B- Create a custom Microsoft Windows Installer for the .NET Framework components by using the System.Configuration.Install namespace, and configure the .NET Framework applications by using configuration files, environment variables, and the .NET Framework Configuration tool (Mscorcfg.msc).

Installer class

Configure which runtime version a .NET Framework application should use.

Configure where the runtime should search for an assembly.

Configure the location of an assembly and which version of the assembly to use.

Direct the runtime to use the DEVPATH environment variable when you search for assemblies.

AssemblyInstaller class

ComponentInstaller class

Configure a .NET Framework application by using the .NET Framework Configuration tool (Mscorcfg.msc).

ManagedInstallerClass class

InstallContext class

InstallerCollection class

InstallEventHandler delegate

Configure concurrent garbage collection.

Register remote objects by using configuration files.


C- Manage an event log by using the System.Diagnostics namespace.

Write to an event log.

Read from an event log.

Create a new event log.


D- Manage system processes and monitor the performance of a .NET Framework application by using the diagnostics functionality of the .NET Framework 2.0. (Refer System.Diagnostics namespace)

Get a list of all running processes.

Retrieve information about the current process.

Get a list of all modules that are loaded by a process.

PerformanceCounter class, PerformanceCounterCategory, and CounterCreationData class

Start a process both by using and by not using command-line arguments.

StackTrace class

StackFrame class

 

 

E- Debug and trace a .NET Framework application by using the System.Diagnostics namespace.

Debug class and Debugger class

Trace class, CorrelationManager class, TraceListener class, TraceSource class, TraceSwitch class, XmlWriterTraceListener class, DelimitedListTraceListener class, and EventlogTraceListener class

Debugger attributes

DebuggerBrowsableAttribute class

DebuggerDisplayAttribute class

DebuggerHiddenAttribute class

DebuggerNonUserCodeAttribute class

DebugeerStepperBoundaryAttribute class

DebuggerStepThroughAttribute class

DebuggerTypeProxyAttribute class

DebuggerVisualizerAttribute class

 

 

F- Embed management information and events into a .NET Framework application. (Refer System.Management namespace)

Retrieve a collection of Management objects by using the ManagementObjectSearcher class and its derived classes.

Enumerate all disk drivers, network adapters, and processes on a computer.

Retrieve information about all network connections.

Retrieve information about all services that are paused.

ManagementQuery class

EventQuery class

ObjectQuery class

Subscribe to management events by using the ManagementEventWatcher class.


Posted by Oscar.SS on sábado, 12 de abril de 2008 10:48
Permalink | Comentarios (0) | Post RSSRSS comment feed

4- Implementando serializacion y la funcionalidad de entrada/salida en una aplicación de la plataforma .NET.

A- Serialize or deserialize an object or an object graph by using runtime serialization techniques. (Refer System.Runtime.Serialization namespace)

Serialization interfaces

IDeserializationCallback interface

IFormatter interface and IFormatterConverter interface

ISerializable interface

Serilization attributes

OnDeserializedAttribute class and OnDeserializingAttribute class

OnSerializedAttribute class and OnSerializingAttribute class

OptionalFieldAttribute class

SerializationEntry structure and SerializationInfo class

ObjectManager class

Formatter class, FormatterConverter class, and FormatterServices class

StreamingContext structure

 

 

B- Control the serialization of an object into XML format by using the System.Xml.Serialization namespace.

Serialize and deserialize objects into XML format by using the XmlSerializer class.

Control serialization by using serialization attributes.

Implement XML Serialization interfaces to provide custom formatting for XML serialization.

Delegates and event handlers are provided by the System.Xml.Serialization namespace.


C- Implement custom serialization formatting by using the Serialization Formatter classes.

SoapFormatter class (Refer System.Runtime.Serialization.Formatters.Soap namespace)

BinaryFormatter class (Refer System.Runtime.Serialization.Formatters.Binary namespace)


D- Access files and folders by using the File System classes. (Refer System.IO namespace)

File class and FileInfo class

Directory class and DirectoryInfo class

DriveInfo class and DriveType enumeration

FileSystemInfo class and FileSystemWatcher class

Path class

ErrorEventArgs class and ErrorEventHandler delegate

RenamedEventArgs class and RenamedEventHandler delegate


E- Manage byte streams by using Stream classes. (Refer System.IO namespace)

FileStream class

Stream class

MemoryStream class

BufferedStream class

 

 

F- Manage the .NET Framework application data by using Reader and Writer classes. (Refer System.IO namespace)

StringReader class and StringWriter class

TextReader class and TextWriter class

StreamReader class and StreamWriter class

BinaryReader class and BinaryWriter class


G- Compress or decompress stream information in a .NET Framework application (refer System.IO.Compression namespace), and improve the security of application data by using isolated storage. (Refer System.IO.IsolatedStorage namespace)

IsolatedStorageFile class

IsolatedStorageFileStream class

DeflateStream class

GZipStream class


Posted by Oscar.SS on sábado, 12 de abril de 2008 10:45
Permalink | Comentarios (0) | Post RSSRSS comment feed

5- Mejorando la seguridad de la aplicación de la plataforma .NET usando las características de seguridad de la plataforma .NET 2.0.

A- Implement code access security to improve the security of a .NET Framework application. (Refer System.Security namespace)

SecurityManager class

CodeAccessPermission class

Modify the Code Access security policy at the computer, user, and enterprise policy level by using the Code Access Security Policy tool (Caspol.exe).

PermissionSet class and NamedPermissionSet class

Standard Security interfaces

IEvidenceFactory interface

IPermission interface

 

 

B- Implement access control by using the System.Security.AccessControl classes.

DirectorySecurity class, FileSecurity class, FileSystemSecurity class, and RegistrySecurity class

AccessRule class

AuthorizationRule class and AuthorizationRuleCollection class

CommonAce class, CommonAcl class, CompoundAce class, GenericAce class, and GenericAcl class

AuditRule class

MutexSecurity class, ObjectSecurity class, and SemaphoreSecurity class


C- Implement a custom authentication scheme by using the System.Security.Authentication classes. (Refer System.Security.Authentication namespace)

May include but is not limited to: Authentication algorithms and SSL protocols



D- Encrypt, decrypt, and hash data by using the System.Security.Cryptography classes. (Refer System.Security.Cryptography namespace)

DES class and DESCryptoServiceProvider class

HashAlgorithm class

DSA class and DSACryptoServiceProvider class

SHA1 class and SHA1CryptoServiceProvider class

TripleDES and TripleDESCryptoServiceProvider class

MD5 class and MD5CryptoServiceProvider class

RSA class and RSACryptoServiceProvider class

RandomNumberGenerator class

CryptoStream class

CryptoConfig class

RC2 class and RC2CryptoServiceProvider class

AssymetricAlgorithm class

ProtectedData class and ProtectedMemory class

RijndaelManaged class and RijndaelManagedTransform class

CspParameters class

CryptoAPITransform class

Hash-based Message Authentication Code (HMAC)

HMACMD5 class

HMACRIPEMD160 class

HMACSHA1 class

HMACSHA256 class

HMACSHA384 class

HMACSHA512 class

 

 

E- Control permissions for resources by using the System.Security.Permission classes. (Refer System.Security.Permission namespace)

SecurityPermission class

PrincipalPermission class

FileIOPermission class

StrongNameIdentityPermission class

UIPermission class

UrlIdentityPermission class

PublisherIdentityPermission class

GacIdentityPermission class

FileDialogPermission class

DataProtectionPermission class

EnvironmentPermission class

IUnrestrictedPermission interface

RegistryPermission class

IsolatedStorageFilePermission class

KeyContainerPermission class

ReflectionPermission class

StorePermission class

SiteIdentityPermission class

ZoneIdentityPermission class

 

 

F- Control code privileges by using System.Security.Policy classes. (Refer System.Security.Policy namespace)

ApplicationSecurityInfo class and ApplicationSecurityManager class

ApplicationTrust class and ApplicationTrustCollection class

Evidence class and PermissionRequestEvidence class

CodeGroup class, FileCodeGroup class, FirstMatchCodeGroup class, NetCodeGroup class, and UnionCodeGroup class

Condition classes

AllMembershipCondition class

ApplicationDirectory class and ApplicationDirectoryMembershipCondition class

GacInstalled class and GacMembershipCondition class

Hash class and HashMembershipCondition class

Publisher class and PublisherMembershipCondition class

Site class and SiteMembershipCondition class

StrongName class and StrongNameMembershipCondition class

Url class and UrlMembershipConditon class

Zone class and ZoneMembershipCondition class

PolicyLevel class and PolicyStatement class

IApplicationTrustManager interface, IMembershipCondition interface, and IIdentityPermissionFactory interface


G- Access and modify identity information by using the System.Security.Principal classes. (Refer System.Security.Principal namespace)

GenericIdentity class and GenericPrincipal class

WindowsIdentity class and WindowsPrincipal class

NTAccount class and SecurityIdentifier class

IIdentity interface and IPrincipal interface

WindowsImpersonationContext class

IdentityReference class and IdentityReferenceCollection class


Posted by Oscar.SS on sábado, 12 de abril de 2008 10:44
Permalink | Comentarios (0) | Post RSSRSS comment feed

6- Implementando interoperabilidad, reflexión, y correos electrónicos en una aplicación de la plataforma .NET.

A- Expose COM components to the .NET Framework and the .NET Framework components to COM. (Refer System.Runtime.InteropServices namespace)

Import a type library as an assembly.

Add references to type libraries.

Type Library Importer (Tlbimp.exe)

Generate interop assemblies from type libraries.

Imported Library Conversion

Imported Module Conversion

Imported Type Conversion

Imported Member Conversion

Imported Parameter Conversion

TypeLibConverter class

Create COM types in managed code.

Compile an interop project.

Deploy an interop application.

Qualify the .NET Framework types for interoperation.

Apply Interop attributes, such as the ComVisibleAttribute class.

Package an assembly for COM.

Deploy an application for COM access.


B- Call unmanaged DLL functions in a .NET Framework application, and control the marshaling of data in a .NET Framework application. (Refer System.Runtime.InteropServices namespace)

Platform Invoke

Create a class to hold DLL functions.

Create prototypes in managed code.

DllImportAttribute class

Call a DLL function.

Call a DLL function in special cases, such as passing structures and implementing callback functions.

Create a new Exception class and map it to an HRESULT.

Default marshaling behavior

Marshal data with Platform Invoke

Marshal data with COM Interop

MarshalAsAttribute class and Marshal class


C- Implement reflection functionality in a .NET Framework application (refer System.Reflection namespace), and create metadata, Microsoft intermediate language (MSIL), and a PE file by using the System.Reflection.Emit namespace.

Assembly class

Assembly attributes

AssemblyAlgorithmIdAttribute class

AssemblyCompanyAttribute class

AssemblyConfigurationAttribute class

AssemblyCopyrightAttribute class

AssemblyCultureAttribute class

AssemblyDefaultAliasAttribute class

AssemblyDelaySignAttribute class

AssemblyDescriptionAttribute class

AssemblyFileVersionAttribute class

AssemblyFlagsAttribute class

AssemblyInformationalVersionAttribute class

AssemblyKeyFileAttribute class

AssemblyTitleAttribute class

AssemblyTrademarkAttribute class

AssemblyVersionAttribute class

Info classes

ConstructorInfo class

MethodInfo class

MemberInfo class

PropertyInfo class

FieldInfo class

EventInfo class

LocalVariableInfo class

Binder class and BindingFlags

MethodBase class and MethodBody class

Builder classes

AssemblyBuilder class

ConstructorBuilder class

EnumBuilder class

EventBuilder class

FieldBuilder class

LocalBuilder class

MethodBuilder class

ModuleBuilder class

ParameterBuilder class

PropertyBuilder class

TypeBuilder class

 

 

D- Send electronic mail to a Simple Mail Transfer Protocol (SMTP) server for delivery from a .NET Framework application. (Refer System.Net.Mail namespace)

MailMessage class

MailAddress class and MailAddressCollection class

SmtpClient class, SmtpPermission class, and SmtpPermissionAttribute class

Attachment class, AttachmentBase class, and AttachmentCollection class

SmtpException class and SmtpFailedReceipientException class

SendCompletedEventHandler delegate

LinkedResource class and LinkedResourceCollection class

AlternateView class and AlternateViewCollection class


Posted by Oscar.SS on sábado, 12 de abril de 2008 10:43
Permalink | Comentarios (0) | Post RSSRSS comment feed