Professional Documents
Culture Documents
FRAMEWORK FUNDAMENTALS
Este captulo busca gestionar datos en una aplicacin del .Net FW usando los tipos:
Tipos por valor: Son variables que contienen sus datos directamente en lugar de
contener referencias a los datos almacenados en algn lugar de la memoria (Built-in
Types, User-defined types, Enumerations).
El tipo tipos por valor en el .Net Fw, de esta forma cuando usted asigna entre
variables del tipo por valor, el dato es copiado de una variable a la otra y almacenado
en dos locaciones diferentes de la pila.
Ejemplo: (Aplicacin de consola)
Module Module1
Public Sub Main ()
Dim B as Nullable (Of Boolean) = Nothing
If B.HasValue Then
Console.WriteLine ("b is {0}. B.Value)
Else
Console.WriteLine ("b is not set.")
End If
Console.ReadLine ()
End Sub
End Module
User Defined Types: Tambin llamados estructuras, al igual que los tipos por valor,
estos son almacenados en la pila y contienen sus datos directamente.
Built-in types, son los tipos base provistos por el .Net FW con los cuales, otros
tipos son construidos. Ejemplo de ello son los tipos numricos en donde la seleccin
del tipo vara en referencia al tamao y precisin que se espera de ello.
Las estructuras son muy similares a las clases pero ms eficientes, de este modo
usted debe definir una estructura en vez de una clase, si el tipo se desarrollar mejor
como un tipoi por valor que como una referencia, las estructuras se caracterizan por:
Enumeraciones: Son smbolos que tienen valores fijos, estas se deben usar para
proveer una lista de elecciones en las clases.
Ejemplo: (Aplicacin de consola)
Module Module1
Public Sub Main ()
Dim t As Titles = Titles.Dr
Console.WriteLine ("{0}", t)
Console.ReadLine ()
End Sub
Enum Titles As Integer
Mr
Ms
Mrs
Dr
End Enum
End Module
End Sub
Structure Numbers
Public Val As Integer
Public Sub New(ByVal _Val As Integer)
Val = _Val
End Sub
Public Overloads Overrides Function tostring () As String
Return Val.ToString
End Function
End Structure
End Module
Construyendo Clases
En lenguages orientados a objetos el grueso del trabajo debe ser desarrollado dentro
de objetos requiriendo construir clases cada c/u de ellos con mltiples prepiedades y
mtodos usados para desarrollar tareas relacionades al objeto.
Herencia
La herencia en .Net Fw tiene miles de clases y cada clase tiene diferentes mtodos y
propiedades, mantener el seguimiento de todos ellos sera imposible si no fuera por la
consistencia, la cual a su vez es posible gracias a la herencia y las interfaces. La
herencia se utiliza para crear nuevas clases a partir de unas ya existentes.
Ejemplo: (Fragmento de cdigo)
Class DerivedException
Inherits System.ApplicationException
Public Overrides ReadOnly Property Message () As String
Get
Return "Un Error ocurro en la aplicacin"
End Get
End Property
End Class
Interfaces
Tambien conocidas como los contratos, definen un set de miembros comunes para
todas las clases que la interface debe proveer.
Genricos
Son parte de los tipos en el .Net Fw que permiten definir un tipo mientras dejan
algunos detalles especificados. Los tipos Genricos ofrecen mayores ventajas sobre la
clase Objeto como:
El compilador en los tipos Objeto no puede detectar errores cuando se hacen
transformaciones de la clase objeto o hacia dicha clase. Adicionalmente se pueden
especificar constrias para limitar las clases usadas en Genricos, habilitando el
compilador para detectar tipos incompatibles.
Mejoran el performance, ya que las conversiones boxing y el unboxing disminuyen
el rendimiento.
INPUT/OUTPUT (I/O)
Este captulo pretende ensear cmo trabajar con el sistema input/output dentro del
.Net Fw, las bases incluyen acceso a archivos, carpetas en el sistema, trabajar con
streams y con el almacenamiento.
Navegando en el Sistema de Archivos.
Una de las tareaas ms comunes es trabajar con el sistema de archivos, compartir
informacin en undades, carpetas y archivos. El responsable de estas tareas es el
nameSpace denominado System.IO, de este modo de derivan dos de sus clases:
(FileInfo y
DirectoryInfo).
Imports System.IO
Module Module1 Public Sub Main ()
Dim ourDir As DirectoryInfo = New DirectoryInfo ("C:\windows")
Console.WriteLine ("Directory: {0}", ourDir.FullName)
For Each file As FileInfo In ourDir.GetFiles Console.WriteLine ("File:{0}", file. ame)
Next
Console.ReadLine ()
End Sub
End Module
Leyendo y Escribiendo Archivos:
Streams. Los Streams son una forma comn para tratar el acceso a datos
secuenciales y randmicos dentro del .Net Fw, las clases de streams ms comunes
son:
FileStream (System.Io)
MemoryStream (System.Io)
CryptoStream (System.Security)
NetWorkStream (System.Net)
GzipStream (System.Compression)
El denominador comn para estos streams es que todos trabajan los datos como un
flujo.
FCL (FRAMEWORK CLASS LIBRARY)
Provee la API que las aplicaciones gestionadas en .NET invocan.
Incluye ms de 7000 tipos y est particionada en ms de 100 espacios de nombres:
Desde Int32 y String a tipos como Regex o Form
System es la raz de la mayora
Define tipos bsicos como Int32 y Byte y clases de utilidad como Math y TimeSpan o
Collections
FCL (FRAMEWORK CLASS LIBRARY)
En este apartado veremos algunas de los espacios de nombres ms importantes de
la FCL:
System.IO
System. Collections
System.XML
System.Reflection
System.GC
System.NET y System. Web
SYSTEM. WEB Y SYSTEM.NET
System.Net provee clases para llevar a cabo tareas relacionadas con Internet
System.Net.Sockets permite la comunicacin a travs de Sockets
System. Web, System.Web.Mail y System.Web.Services, estn construidas encima
de System.Net
Listando enlaces de pgina web
Using System; using System.IO; using System.Net; using
System.Text.RegularExpressions; class ListLink {static void Main (string [] args) {if
(args.Length == 0) {
Console.WriteLine ("Error: Indica URL para listar enlaces"); return;
}
StreamReader reader = null; try {
WebRequest request = WebRequest.Create (args[0]);
WebResponse response = request.GetResponse ();
Listando enlaces de pgina web
reader = new StreamReader (response.GetResponseStream ()); string content =
reader.ReadToEnd ();
Regex regex = new Regex ("href\\s*=\\s*\"([^\"]*)\"",
RegexOptions.IgnoreCase);
MatchCollection matches = regex.Matches (content); foreach (Match match in
matches)
Console.WriteLine (match.Groups [1]);
} Catch (Exception e) {
Console.WriteLine (e.Message);
} Finally {if (reader!= null) reader.Close ();
}
}
}
Enviando un mail con .NET
Using System.Web.Mail;
MailMessage message = new MailMessage (); message.From = Sender.Text;
message.To = Receiver.Text; message.Subject = Subject.Text; message.Body =
Body.Text;
SmtpMail.SmtpServer = "localhost";
SmtpMail.Send (message);
Todas las aplicaciones que hospedan Common Language Runtime (CLR) necesitan
iniciar o activar CLR para ejecutar cdigo administrado. Normalmente, una aplicacin
de .NET Framework se ejecuta en la versin de CLR en la que se compil, pero puede
cambiar este comportamiento para las aplicaciones de escritorio mediante un archivo
de configuracin de la aplicacin (que suele recibir el nombre de archivo
app.config). Sin embargo, no puede cambiar el comportamiento predeterminado de
activacin para las aplicaciones de la Tienda Windows o Windows Phone mediante un
archivo de configuracin de la aplicacin. En este artculo se explica cmo permitir que
la aplicacin de escritorio se ejecute en otra versin de .NET Framework y se
proporciona un ejemplo de cmo establecer la versin 4 o 4.5 como destino.
La versin de .NET Framework en la que se ejecuta una aplicacin se determina en el
orden siguiente:
Archivo de configuracin.
Si el archivo de configuracin de la aplicacin incluye
entradas <supportedRuntime> que especifican una o varias versiones de .NET
Framework y una de estas versiones est presente en el equipo del usuario, la
aplicacin se ejecuta en esa versin. El archivo de configuracin lee las
entradas <supportedRuntime> en el orden en que aparecen y utiliza la primera versin
de .NET Framework de la lista que est presente en el equipo del usuario. (Use
el elemento <requiredRuntime> para la versin 1.0.).
Versin compilada.
Si no hay ningn archivo de configuracin pero la versin de .NET Framework en la
que se compil la aplicacin est presente en el equipo del usuario, la aplicacin se
ejecuta en esa versin.
ltima versin instalada.
Si la versin de .NET Framework en la que se compil la aplicacin no est presente y
el archivo de configuracin no especifica ninguna versin en el elemento
<supportedRuntime>, la aplicacin intenta ejecutarse en la ltima versin de .NET
Framework que est presente en el equipo del usuario.
Sin embargo, las aplicaciones de .NET Framework 1.0, 1.1, 2.0, 3.0 y 3.5 no se
ejecutan automticamente en .NET Framework 4 o posterior, y en algunos casos,
puede que aparezca un error y que se le solicite instalar .NET Framework 3.5. El
comportamiento de activacin tambin puede depender del sistema operativo del
usuario, ya que las distintas versiones del sistema Windows incluyen diferentes
versiones de .NET Framework. Si la aplicacin admite .NET Framework 3.5 y 4 o
posterior, es recomendable que lo indique con varias entradas en el archivo de
configuracin para evitar errores de inicializacin de .NET Framework. Para ms
informacin, consulte Versiones y dependencias de .NET Framework.
1. Agregue o busque el archivo de configuracin del proyecto de .NET Framework. El
archivo de configuracin de una aplicacin est en el mismo directorio y tiene el
mismo nombre que la aplicacin, pero su extensin es .config. Por ejemplo, en el
caso de una aplicacin denominada MiEjecutable.exe, el nombre del archivo de
configuracin sera MiEjecutable.exe.config.
Para agregar un archivo de configuracin, en la barra de mens de Visual Studio,
elija Proyecto, Agregar nuevo elemento. Elija General en el panel izquierdo y
elija Archivo de configuracin. Asigne al archivo de configuracin el
nombre appName.exe.config. Estas opciones de men no estn disponibles para los
proyectos de aplicaciones de la Tienda Windows o Windows Phone, ya que no se
puede cambiar la directiva de activacin de estas plataformas.
2. Agregue el elemento <supportedRuntime> de la forma siguiente al archivo de
configuracin de la aplicacin:
<Configuration>
<Startup>
<supportedRuntime version="<version>"/>
</Startup>
</Configuration>
Donde <version> especifica la versin de CLR correspondiente a la versin de .NET
Framework que admite la aplicacin. Use las siguientes cadenas:
.NET Framework 1.0: "v1.0.3705"
.NET Framework 1.1: "v1.1.4322"
.NET Framework 2.0, 3.0 y 3.5: "v2.0.50727"
.NET Framework 4 y 4.5 (incluidas las versiones secundarias como 4.5.1): "v4.0"
Puede agregar varios elementos <supportedRuntime>, indicados por orden de
preferencia, para especificar la compatibilidad con varias versiones de .NET
Framework.