</head>
Archive for January, 2008
Código fuente del .NET Framework
Jan 30th
Cómo muchas ya sabrán se liberó el código fuente del .NET Framework.
Siguien los pasos del post [VS2008] Finally !!! liberado el codigo del .Net Framework (conociendo el interior del lado oscuro) de El Bruno.
Me encontré que no podía instalar el HotFix, luego de Googlear por un rato encontré el post Software that sucks #2: How to not write a patch en el cúal dicen que hace falta tener insertado el DVD del Visual Studio en la unidad de DVD. Luego de insertarlo y volver a intentar, el HotFix se instalo correctamente.
Conexiones FTPS (FTP over SSL) desde .NET
Jan 30th
Hola a todos, desde hace ya un par de días estoy trabajando en una aplicación que debe conectarse a un servidor FTPS (FTP over SSL) y en modo PASSIVE.
Hasta la fecha había utilizado la clase Systme.Net.FtpWebRequest que funcionaba muy bien para lo que necesitaba (siempre con FTP común), y decía que soportaba SSL.
Bueno lo que sucedió es que la conexión la podía efectuar bien pero al momento de entrar en modo PASSIVE obtenía la siguiente excepcion “The server returned an address in response to the PASV command that is different than the address to which the FTP connection was made.”
Googleando un rato, vi que esto no tenía solución, y sucede porque el equipo responde al comando FTP PASV con una IP diferente a la que con la cual nos conectamos.
Buscando en la Web no encontré ninguna librería gratuita para realizar esto (si algunas pagas: Compare SFTP (SSH File Transfer Protocol) components for .NET (C#, VB.NET))
Y luego buscando implementar una solución en PHP, llegué a MOVEit Freely.
La verdad es simple y sencillo de usar, lo que andaba buscando algo que cumpla el principio KISS (Keep It Simple, Stupid)
Obtener la salida de un proceso en .NET
Jan 30th
Hola todos,
Aquí les dejo un código que nos permite ejecutar una aplicación y obtener la salida que produce el mismo.
Dim ftps As New Process() ftps.StartInfo.RedirectStandardOutput = True ftps.StartInfo.FileName = “ftps.exe” ftps.StartInfo.Arguments = args ftps.StartInfo.UseShellExecute = False ftps.Start() ftps.WaitForExit() ‘Get the output of ftps.exe Dim out As String = ftps.StandardOutput.ReadToEnd() Console.WriteLine(out) log.Debug(out)
Corrector ortográfico para ASP.NET
Jan 30th
Hoy releyendo los post del genio El Bruno encontré este post: [VS2005/2008] Corrector ortografico para ASP.Net
Realmente muy bueno!
Como manipular colecciones en VB.NET con delegados
Jan 27th
Hola a todos. Hoy me encontré con una consulta que no pude responder enseguida: El uso de delegados en VB.NET. Hasta ahora siempre los había usado en C#; pero en VB.NET no todavía asi que empecé haciendo un ejemplo simple, e investigando un poco.
Llegué al post: http://vbnotebookfor.net/2007/08/23/how-to-use-the-action-and-predicate-delegates/ que me sirvió de mucha ayuda. En el se explica como usar los delegados de Predicate y Action para operar en colecciones.
Bueno aquí les dejo el ejemplo:
Imports System.Text
Module Module1
Sub Main()
Dim personas As New List(Of Persona)
Dim p1 As New Persona(1, “Walter”, “Poch”, “Italia 65?)
personas.Add(p1)
Dim p2 As New Persona(2, “Wilfredo”, “Mata”, “San Luis 1928?)
personas.Add(p2)
Dim p3 As New Persona(3, “Carlos”, “Memem”, “Anillaco 1000?)
personas.Add(p3)
Console.WriteLine(“Personas que empiezan con W”)
Console.WriteLine(“—————————”)
Dim personasEmpiezanConW As List(Of Persona)
personasEmpiezanConW = personas.FindAll(AddressOf empiezaConW)
personasEmpiezanConW.ForEach(AddressOf mostrarPersona)
Console.WriteLine()
Console.WriteLine(“Persona llamada Carlos”)
Console.WriteLine(“———————-”)
Dim elCarlos As Persona
elCarlos = personas.Find(AddressOf buscarElCarlos)
Console.Write(elCarlos)
Console.WriteLine()
Console.ReadKey()
End Sub
Public Function empiezaConW(ByVal persona As Persona) As Boolean
Return persona.Nombre.StartsWith(“”, StringComparison.InvariantCultureIgnoreCase)
End Function
Public Function buscarElCarlos(ByVal persona As Persona) As Boolean
Return persona.Nombre.Equals(“carlos”, StringComparison.InvariantCultureIgnoreCase)
End Function
Public Sub mostrarPersona(ByVal persona As Persona)
Console.Write(persona)
End Sub
Class Persona
Private _id As Integer
Private _nombre As String
Private _apellido As String
Private _direccion As String
Public Property Id() As Integer
Get
Return Me._id
End Get
Set(ByVal value As Integer)
Me._id = value
End Set
End Property
Public Property Nombre() As String
Get
Return Me._nombre
End Get
Set(ByVal value As String)
Me._nombre = value
End Set
End Property
Public Property Apellido() As String
Get
Return Me._apellido
End Get
Set(ByVal value As String)
Me._apellido = value
End Set
End Property
Public Property Direccion() As String
Get
Return Me._direccion
End Get
Set(ByVal value As String)
Me._direccion = value
End Set
End Property
Public Sub New(ByVal id As Integer, _
ByVal nombre As String, _
ByVal apellido As String, _
ByVal direccion As String)
Me._id = id
Me._nombre = nombre
Me._apellido = apellido
Me._direccion = direccion
End Sub
Public Overrides Function ToString() As String
Dim sb As New StringBuilder()
sb.AppendFormat(“ID: {0}{1}”, Me._id, ControlChars.NewLine)
sb.AppendFormat(“Nombre: {0}{1}”, Me._nombre, ControlChars.NewLine)
sb.AppendFormat(“Apellido: {0}{1}”, Me._apellido, ControlChars.NewLine)
sb.AppendFormat(“Direccion: {0}{1}”, Me._direccion, ControlChars.NewLine)
sb.AppendLine()
Return sb.ToString()
End Function
End Class
End Module
Espero que les sirva!
Happy Coding!