Académique Documents
Professionnel Documents
Culture Documents
Captulo 2
Adems se vern las diferentes tcnicas que hay en .NET para implementar
programacin asncrona tales como Threads, CallBacks, Eventos Asncronos
y Programacin Paralela.
Iniciamos nuestro primer ejemplo del libro con una aplicacin Windows
Forms que muestre informacin del sistema.
Demo 01
Demo 02
Demo 03
Imports Microsoft.Win32
Imports System.Security.Permissions
<RegistryPermission(SecurityAction.Demand)> _
Public Class frmRegistroWindows
Private Sub CrearNodos(ByVal nodo As TreeNode, ByVal reg As RegistryKey)
Dim secciones() As String = reg.GetSubKeyNames
Dim seccion As String
Dim nuevoNodo As TreeNode
Dim nuevoReg As RegistryKey
For Each seccion In secciones
nuevoNodo = nodo.Nodes.Add(seccion)
nuevoReg = reg.OpenSubKey(seccion)
If nuevoReg IsNot Nothing Then
CrearNodos(nuevoNodo, nuevoReg)
End If
Next
End Sub
Para trabajar con procesos o tareas del sistema, se usa la clase Process del
espacio de nombres System.Diagnostics, la cual tiene mtodos como
GetProcesses que devuelve una lista con los nombres de todos los procesos
que se encuentran actualmente en ejecucin, tambin podemos detectar
todos los procesos por nombre de un programa usando el mtodo
GetProcessesByName. Para iniciar el proceso (ejecutar el programa)
podemos usar el mtodo Start y para cerrarlo podemos usar los mtodos
Close o Kill, tal como se muestra en el siguiente ejemplo.
Demo 04
Hay clases que se usan para entrada y salida de archivos como Directory y
DirectortyInfo, DriveInfo, File y FileInfo, FileStream, FileSystemInfo, Path,
DeflateStream, GZipStream y SerialPort.
Otras clases se usan para leer y escribir secuencias o flujos, tales como
BinaryReader y BinaryWriter, StreamReader y StreamWriter, StringReader y
StringWriter, TextReader y TextWriter.
Para obtener ms informacin sobre este tema ver referencia 13 al final del
libro.
Imports System.IO
Para leer y escribir archivos en .NET existen muchas formas, por ejemplo
para leer secuencialmente archivos de texto podemos usar la clase
StreamReader y para escribir se usa la clase StreamWriter. Si deseamos
leer y escribir archivos binarios entonces debemos usar BinaryReader y
BinaryWriter.
Demo 06
Imports System.IO
Finalmente, para unir todos los archivos del directorio se debe crear un
flujo de escritura e ir leyendo todos los archivos y escribirlos en dicho flujo
tambin con la clase FileStream.
Demo 07
Demo 08
1. Servicios de Usuario
- Aplicacin Web
3. Servicios de Datos
Demo 09
Demo 10
Namespace LibUserCodeWinForms
End Namespace
Demo 11
Namespace LibBusinessEntity
End Namespace
Demo 12
Namespace LibDataAccess
End Namespace
Del men Project seleccionar Demo12 Properties, luego borrar
Demo12 del Root namespace.
Demo 13
Imports LibBusinessEntity
Imports LibDataAccess
Namespace LibBusinessRules
End Namespace
Demo 14
Imports LibBusinessEntity
Imports LibBusinessRules
Imports LibUserCodeWinForms
Programacin paralela
.NET tiene muchas clases que permiten implementar las diferentes tcnicas
de programacin asncrona mencionadas, entre las cuales tenemos:
Thread, ThreadPool, Delegate, Tasks, etc. La mayora se encuentran en el
espacio de nombres System.Threading.
4.1 Threads
La clase Thread se usa para manejar subtareas y puede ser til para iniciar
una subtarea en segundo plano e ir mostrando progresivamente los
resultados, por ejemplo leer un archivo de texto e ir mostrando sus lneas
en una Lista.
Esta clase tiene mtodos como Start que inician la ejecucin de un
subproceso, luego podemos pausar usando el mtodo Suspend y reanudar
este usando el mtodo Resume, si deseamos cancelar el subproceso
iniciado usaremos el mtodo Abort.
Thread Simple
Demo 15
Demo 16
Demo 17
Demo 18
Del men File, seleccionar New Web Site y luego WCF Service.
Namespace ServicioWCF
<ServiceContract()> _
Public Interface IEmpleado
<OperationContract()> _
Function ListarEmpleados() As DataSet
End Interface
End Namespace
Namespace ServicioWCF
Public Class Empleado
Implements ServicioWCF.IEmpleado
Public Function ListarEmpleados() As DataSet _
Implements ServicioWCF.IEmpleado.ListarEmpleados
Dim dst As New DataSet
Using con As New SqlConnection("uid=sa;pwd=123456; _
data source=Lduenas\MCTS;initial catalog=Northwind")
con.Open()
Dim dap As New SqlDataAdapter("WaitFor Delay '00:00:10'; _
Select EmployeeID,LastName,FirstName From Employees", con)
dap.Fill(dst, "Empleados")
End Using 'con.Close
Return (dst)
End Function
End Class
End Namespace
Nota: No puede cerrar el otro proyecto del Servicio WCF ya que debe estar
ejecutndose para poder consumirlo desde la aplicacin.
Namespace LibreriaDatos
Public Class daEmpleado
Public Function ListarEmpleados() As DataSet
Dim dst As New DataSet
Using con As New SqlConnection("uid=sa;pwd=123456; _
data source=Lduenas\MCTS;initial catalog=Northwind")
con.Open()
Dim dap As New SqlDataAdapter("WaitFor Delay '00:00:10'; _
Select EmployeeID,LastName,FirstName From Employees", con)
dap.Fill(dst, "Empleados")
End Using 'con.Close
Return (dst)
End Function
End Class
End Namespace
Para conocer ms sobre este tema ver la referencia 16 al final del libro. A
continuacin presentamos un ejemplo sobre Paralelismo de Datos y el otro
sobre Paralelismo de Tareas.
Paralelismo de Datos
Demo 22
Imports System.Drawing.Drawing2D
Imports System.Threading
Imports System.Threading.Tasks
Demo 23
Imports System.Data
Imports System.Data.SqlClient
Imports System.Threading.Tasks
Demo 24
El cifrado simtrico por bloques o cifrado de clave secreta es aquel que usa
la misma clave para encriptar o cifrar y para desencriptar o descifrar. Este
es muy rpido y se usa en gran cantidad de datos. Entre los ms populares
tenemos el DES, TripleDES, Estandar de Cifrado Avanazado (CA), etc.
Demo 25
Demo 26
8. Cmo se llama la clase de .NET que permite trabajar con una entrada o
clave del registro de Windows.
10. Cmo se llama la clase de .NET que permite trabajar con procesos o
tareas del sistema y en que espacio de nombres se encuentra?
11. Con qu mtodo de la clase Process se obtienen todos los procesos que
se encuentran actualmente en ejecucin?
16. Cul es la diferencia entre una clase instanciable y otra con miembros
compartidos?
24. Cules son los servicios lgicos en los que puede clasificarse toda
aplicacin.
33. Qu mtodo de la clase Thread debe usarse para que la subtarea actual
espere antes de ejecutar otra subtarea cuando hay dependencia de
subtareas?
40. Cual es el espacio de nombres de .Net que se usa para implementar las
tareas criptogrficas?
44. Cuales son los 2 arreglos de bytes que se usan en el cifrado simtrico
por bloques para cifrar y descifrar la data?