Buscar este blog

jueves, 19 de marzo de 2009

101 ejemplos : Visual Studio .NET 2003

Microsoft ha puesto a disposición de todos los programadores de 101 Ejemplos de Programación en Visual Basic.Net.
Estas descargas incluyen una compilación de ejemplos en Visual Basic.NET que demuestran varios aspectos importantes del lenguaje como: sintaxis, acceso a datos, Windows Forms, desarrollo web, servicios web, XML, seguridad, Framework, sistemas de archivos, entrada y salida de datos, interoperabilidad y migración, COM+, ADO.NET, y tópicos avanzados incluyendo gráficos con GDI+, remoting, serialización, MSMQ, y servicios Windows.

http://download.microsoft.com/download/6/4/7/6474467e-b2b7-40ea-a478-1d3296e78adf/VisualBasic.msi (tamaño 6.822MB)

http://www.microsoft.com/downloads/details.aspx?FamilyID=08e3d5f8-033d-420b-a3b1-3074505c03f3&DisplayLang=en

http://www.mistrucos.net/truco-visual-basic-net-101-en-visual-basicnet-708.htm Carlos Javier Martín Cano

Patrón Creador

Este patrón asigna a la clase B la responsabilidad de crear una instancia de la clase A si alguna de las siguientes premisas es cierta:
B agrega objetos de A.
B contiene objetos de A.
B registra instancias de objetos de A.
B usa mucho obbjetos de A.
B tiene la data inicial que sera pasada a A cuando es creada( asi B es un experto con respecto a la creacion de A). B es el creador de los objetos de A.
Si más de una opción aplica, se prefiere una clase de B que agrega o contiene a la clase A.
El uso de este patrón presenta un problema interesante que consiste en elegir quién debe ser el responsable de crear una nueva instancia de alguna clase.
La creación de objetos es una de las actividades mas comunes en un sistema orientado a objetos, Consecuentemente, es muy útil tener un principio general para la asignación de la creación de responsabilidades. Asignados de una manera correcta, el diseño soporta un bajo acoplamiento, incrementa la claridad, la encapsulacion y es posible reusarlo.
Aplicabilidad:
El creador guía la asignación de responsabilidades relacionadas a la creación de objetos, una tarea muy común en sistemas orientados a objetos. El intento básico del patrón creador es encontrar un creador que necesite estar conectado al objeto creado en un evento en particular.
El Agregar agrega partes, Contener contiene contenido, Grabar graba, todas estas son relaciones muy comunes entre clases en un diagrama de clases. El creador sugiere que el contenedor encerrado o grabado es un buen candidato por la responsabilidad de crear la cosa contenida o grabada. Por supuesto esto es una guía.
Es necesario darse cuenta de que el concepto de agregar ha sido usado considerando el patrón creador. La agregación envuelve cosas que están en una relación de parte completa o parte ensamblada, tales como el cuerpo agrega la pierna, o el párrafo agrega la oración. Algunas veces un creador es encontrado mirando la clase de tiene la data (información) inicial que será pasada durante la creación. Esto es un ejemplo del patrón experto. La data inicial es pasada durante la creación por vía de algún método de inicialización, tal como un constructor de Java que tiene parámetros.
Beneficios:
El bajo acoplamiento es soportado, lo cual implica bajo mantenimiento y altas oportunidades de reuso. Carlos Javier Martín Cano

jueves, 26 de febrero de 2009

Patrón Experto

Este patrón plantea asignar una responsabilidad al experto en información, es decir, la clase que tiene la información necesaria para cumplir con la responsabilidad.
El experto es usado mas que cualquier otro patrón en la asignación de responsabilidades, es un principio usado continuamente en el diseño orientado a objetos. Experto no significa una obscura idea, sino que expresa la "intuición" común mediante el cual los objetos hacen cosas relacionadas con la información que ellos tienen.
Hay que notar que al cumplimiento de una responsabilidad requiere información que está esparcida entre clases diferentes de objetos. Esto implica que hay muchos "expertos " parciales que colaboran en la tarea.

BENEFICIOS:
La encapsulación es mantenida, desde que los objetos usan sus propias informaciones para realizar tareas. Esto permite poco acoplamiento, lo cual conduce a sistemas mas robustos y de mantenimiento mucho mas fácil.


El comportamiento está distribuído a lo largo de clases que tienen la información requerida, así se alienta una clase "pesoligero" de definiciones que son fáciles de entender y mantener. La alta cohesián tmabién es soportada. Carlos Javier Martín Cano

jueves, 12 de febrero de 2009

Funcion para recorrer un directorio y copiarlo en una ruta especificada

Aqui os dejo una función util, encargada de copiar todo un directorio
en la ruta especificada.

Private Shared Sub DirectoryCopy( _
ByVal sourceDirName As String, _
ByVal destDirName As String, _
ByVal copySubDirs As Boolean)
Dim dir As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(sourceDirName)
Dim dirs As System.IO.DirectoryInfo() = dir.GetDirectories()
' If the source directory does not exist, throw an exception.
If Not dir.Exists Then
Throw New System.IO.DirectoryNotFoundException( _
"Source directory does not exist or could not be found: " _
+ sourceDirName)
End If
' If the destination directory does not exist, create it.
If Not System.IO.Directory.Exists(destDirName) Then
System.IO.Directory.CreateDirectory(destDirName)
End If
' Get the file contents of the directory to copy.
Dim files As System.IO.FileInfo() = dir.GetFiles()
Dim file As System.IO.FileInfo
For Each file In files
' Create the path to the new copy of the file.
Dim temppath As String = Path.Combine(destDirName, file.Name)
' Copy the file.
file.CopyTo(temppath, False)
Next file
' If copySubDirs is true, copy the subdirectories.
If copySubDirs Then
For Each dir In dirs
' Create the subdirectory.
Dim temppath As String = _
Path.Combine(destDirName, dir.Name)
' Copy the subdirectories.
DirectoryCopy(dir.FullName, temppath, copySubDirs)
Next dir
End If
End Sub

Saludos Carlos Javier Martín Cano

domingo, 1 de febrero de 2009

Obtener punto medio de una via

Try
pPolyline = obtenervias()
pMidPoint = New Point
If Not pPolyline Is Nothing Then
pPolyline.QueryPoint(0, 0.5, True, pMidPoint)
Else
pMidPoint = Nothing
End If
Return pMidPoint
Catch ex As Exception
Throw ex
Finally
End Try Carlos Javier Martín Cano

Conversion de tipos de campos arcGis-.NET

Public Function getConversionTipo(ByVal Field As IField) As String
Select Case Field.Type
Case esriFieldType.esriFieldTypeSingle
Return "System.Double"
Case esriFieldType.esriFieldTypeOID
Return "System.Int32"
Case esriFieldType.esriFieldTypeString
Return "System.String"
Case esriFieldType.esriFieldTypeInteger
Return "System.Int32"
Case esriFieldType.esriFieldTypeDouble
Return "System.Double"
Case esriFieldType.esriFieldTypeDate
Return "System.DateTime"
Case esriFieldType.esriFieldTypeSmallInteger
Return "System.Int16"
End Select
Return Nothing
End Function Carlos Javier Martín Cano

viernes, 30 de enero de 2009

Google y el Museo del Prado

Las 14 obras maestras del museo del Prado en mega alta resolución en Google Earth
Con el lanzamiento de este proyecto por parte de Google, el Museo del Prado se ha convertido en el primer museo del mundo que facilita el acceso y la navegación por imágenes en mega alta resolución de sus obras maestras a través de Internet. Se podrán apreciar detalles imperceptibles para el ojo humano en cuadros como Las Meninas o Las Tres Gracias.
Madrid, 13 de enero de 2009.- El Museo del Prado y Google presentan hoy el proyecto “Obras maestras del Prado en Google Earth”, que permite admirar detalles imperceptibles para el ojo humano de 14 obras maestras de la pintura conservadas en la pinacoteca. Las Meninas, El Caballero de la Mano en el Pecho o Las Tres Gracias son algunos de las pinturas que se han fotografiado y que ya se pueden contemplar en Google Earth activando la capa de Edificios en 3D y haciendo clic sobre el Prado. Google Earth se puede descargar en http://earth.google.es/ Carlos Javier Martín Cano

lunes, 12 de enero de 2009

Jornada formativa de cambio de datum a ETRS89

La jornada organizada por el Ilustrísimo Colegio Oficial de Ingenieros T. en Topografía de España en colaboración con el Ayuntamiento de Vitoria-Gasteiz, servirá para transmitir los métodos y soluciones a los posibles problemas planteados por la nueva forma de referenciar la tierra, provocados por la adaptación de los sistemas de coordenadas de todos los países de Europa, a un sistema homogéneo y común a todos ellos.
Desde 1988, el Servicio de Rotación de la Tierra (IERS) ha sido establecido conjuntamente por la Unión Astronómica Internacional (IAU) y la Unión Internacional de Geodesia y Geofísica (IUGG). La misión del IERS es proporcionar a los científicos mundiales y a la comunidad técnica valores de referencia para los parámetros de orientación de la Tierra y realizaciones de referencia de los internacionalmente aceptados sistemas de referencia terrestre y celeste. A partir de los estudios del IERS, se ha puesto de manifiesto que la Placa Continental Europea mantiene un movimiento bastante uniforme, de unos 3 cm por año, con relación al ITRS, con excepción del extremo sur-este de Europa (Grecia, Turquía). Por esta razón, con el fin de mantener unas coordenadas razonablemente estables para Europa, la Subcomisión EUREF decidió definir un Sistema ligado a la placa Europea. Este sistema (datum) se denomina ETRS, o ETRS89. La adopción de este nuevo sistema regulado por Real Decreto 1071/2007 en julio de 2007, implicará que todos los mapas oficiales deberán cambiar sus coordenadas.
Las ponencias serán impartidas por los doctores Ingenieros en Geodesia y Cartografía D. JAVIER GONZALEZ MATESANZ, Jefe de Área de Cartografía, Subdirección de Producción Cartográfica del Instituto Geográfico Nacional y D. DAVID HERNANDEZ LOPEZ, Profesor de la Escuela Técnica Superior de Ingenieros Agrónomos de la Universidad de Castilla-La Mancha.
En las ponencias, se tratarán las diferentes problemáticas en los cambios de sistemas aplicados a los mapas en papel, mapas digitales y fotografías aéreas, las implicaciones del paso a ETRS89 en el ejercicio de la topografía, la coordinación con los marcos de referencia nacionales, autonómicos y locales, las estaciones permanentes de referencia, y las actuales herramientas que facilitarán estos complicados procesos matemáticos.
La jornada se celebrará el próximo día 28 de marzo en Vitoria-Gasteiz de 16:00 a 20:30 en el Palacio de Villa Suso. La inscripción es libre y gratuita, y se puede realizar a través de la página web de la Delegación de Álava del Colegio Oficial de Ingenieros T. en Topografía http://www.coittalava.es/ETRS89.html. Más información en el teléfono 945251870 en horario de lunes a viernes de 18:30 a 20:30. Carlos Javier Martín Cano