miércoles, 19 de octubre de 2011

Visual Studio 11 Developer Preview Training Kit

El contenido es muy completo y se refiere a muchas áreas del Visual Studio 11. Entre los temas que nos vamos a encontrar tenemos,
  • Visual Studio Development Environment
  • Un vistazo al entorno de desarrollo en Visual Studio 11 y a sus lenguajes
  • Programación asíncrona en .NET 4.5 con C# y Visual Basic
  • Novedades en ASP.NET y en Visual Studio 11 Developer Preview
  • Novedades en ASP.NET Web Forms 4.5
  • Construcción de aplicaciones completamente REST con WCF Web API
  • Gestión del ciclo de vida de las aplicaciones
  • Construyendo el software correcto: generación de storyboards y recolección del feedback de los clientes con Visual Studio 11
  • Gestión de proyectos Agile en Team Foundation Server 11
  • Desarrolladores más productivos con Team Foundation Server 11
  • Diagnostico de incidencias en producción con IntelliTrace y Visual Studio 11
  • Pruebas de exploración y otras mejoras en Microsoft Test Manager 11
  • Pruebas unitarias con Visual Studio 11: MSTest, NUnit, xUnit.net y Code Clone
  • Aplicaciones Windows Metro Style

Descarga | Visual Studio 11 Developer Preview Training Kit
Vía | MSDN Blogs

Ayuda | Genbeta.
Descarga Windows8 : DESCARGA

martes, 18 de octubre de 2011

Cuaderno CSS

Lo comentaba mi jefe en Doblemente, y la verdad es que la imagen es muy clarificadora.

PDF css

Thanks!!

sábado, 8 de octubre de 2011

ZapaCabra

¿Esto es risa o una putada?

Borrar un directorio en VB

Función simplita por si alguien la necesitara:


 Public Sub BorrarDirectorio(ByVal pathDestino As String)

        Try
            ' Primero recogemos la colección de archivos y carpetas
            Dim files() As String = System.IO.Directory.GetFiles(pathDestino)
            Dim dirs() As String = System.IO.Directory.GetDirectories(pathDestino)


            ' Si posee ficheros, los eliminamos
            For Each fil As String In files
                Dim dirInfo As New IO.DirectoryInfo(fil)
                System.IO.File.Delete(dirInfo.FullName)
            Next

            ' Si posee carpetas nos introducimos en ellas de manera recursiva
            For Each dir As String In dirs
                Dim dirInfo As New IO.DirectoryInfo(dir)
                BorrarDirectorio(dirInfo.FullName)
            Next

            ' Segun vuelva de la recursividad, si poseen carpetas, las eliminamos
            For Each dir As String In dirs
                Dim dirInfo As New IO.DirectoryInfo(dir)
                System.IO.Directory.Delete(dirInfo.FullName)
            Next
        Catch ex As Exception
            MessageBox.Show("Error borrando directorio (" + pathDestino + "), tiene permisos?")
        End Try
    End Sub

Modificar firma de una publicación de ClickOnce

Buenos dias
Lo que explicare a continuación dependerá de saber como crear una publicación con clickOnce de nuestro proyecto con VisualStudio.

Para refirmar la publicación necesitaremos de esta aplicación (mage), pudiendo tanto utilizar una interfaz gráfica como trabajar bajo lineas de comandos de cmd o si lo necesitamos, crearnos un proceso en nuestro programa.

Que posibilidades nos puede ofrecer esta aplicación, pues posiblemente muchas, pero que haya trabajado una, que es generando una publicación podemos cambiarle el url de actualización.

Así pues, con clickOnce podemos decirle a nuestro programa que, por ejemplo, cuando arranque compruebe si existe una nueva actualización.
De tal forma, que si necesitamos diversificar nuestro programa por diversas empresas, posiblemente nos convenga que cada empresa pueda actualizarse a un repositorio distinto del resto, para mantener versiones distintas o simplemente para ahorrar coste, porque este repositorio podría estar en su propia red, evitando que cada maquina tenga que tirar de Internet para actualizarse.


Son muchas las propiedades o comandos con los que trabaja mage, pero hablare de las que mas conozco:
  • –Update Como dije, lo que haremos sera refirmar una publicación
  • –Sign Utiliza un certificado para firmar un archivo
  • –AppManifest Path del manifest o supondrá que su manifiesto de aplicación reside en el mismo directorio que el manifiesto de implementación dentro de un subdirectorio
  • –CertFile Path del directorio
  • –Password Ademas, necesitaremos también de la contraseña del certificado
A continuación pondré una función muy simple, que os lo hará comprender mas fácilmente

 Public Function FirmarPublicacion(ByVal path_programa As String, ByVal nombrePrograma As String, ByVal urlAct As String, ByVal manifest As String, ByVal cetificado As String, ByVal passCertificado As String, ByVal mage_path As String) As Boolean
        Dim resul As Boolean = True
        Try      
            Dim comando1 As String = " -Update """ + path_programa + "\" + nombrePrograma + ".application""" + " -ProviderUrl """ + urlAct + """"
            Dim comando2 As String = " -Update """ + path_programa + "\" + nombrePrograma + ".application""" + " -Publisher " + """Panel de Control (PC)""" + " -AppManifest """ + manifest + """"
            Dim comando3 As String = " -Sign """ + path_programa + "\" + nombrePrograma + ".application""" + " -CertFile """ + cetificado + """ -Password " + passCertificado

            ' Comprobamos si existe manifest los ficheros
            If Not File.Exists(path_programa + "\" + nombrePrograma + ".application") Then
                Throw New Exception("Archivo application erroneo: (" + path_programa + "\" + nombrePrograma + ".application" + ")")
            End If
            If Not File.Exists(manifest) Then
                Throw New Exception("Archivo manifest erroneo: (" + manifest + ")")
            End If
            If Not File.Exists(cetificado) Then
                Throw New Exception("Archivo certificado erroneo: (" + cetificado + ")")
            End If
            If Not File.Exists(mage_path) Then
                Throw New Exception("Archivo mage erroneo: (" + mage_path + ")")
            End If
            If Not ValidarURL(urlAct) Then
                Throw New Exception("URL ACTUALIZACIÓN mal introducida: (" + urlAct + ")")
            End If
            If Not urlAct.Contains(nombrePrograma + ".application") Then
                Throw New Exception("URL ACTUALIZACIÓN no esta asociada con archivo .application: (" + urlAct + ")")
            End If

            Dim returnS1 As String = FirmaPublicacion2(mage_path, comando1)
            Dim returnS2 As String = FirmaPublicacion2(mage_path, comando2)
            Dim returnS3 As String = FirmaPublicacion2(mage_path, comando3)

            Dim firma As Boolean = True

            If not returnS1.Contains("successfully updated") Or not returnS1.Contains("successfully signed") Then
                
            Throw New Exception(returnS1)
            End If

            If not returnS2.Contains("successfully updated") Or not returnS2.Contains("successfully signed") Then
            Throw New Exception(
returnS2)
            End If

            If not returnS3.Contains("successfully updated") Or not returnS3.Contains("successfully signed") Then
            Throw New Exception(
returnS3)
            End If

        Catch ex As Exception
            resul = False
        End Try
        Return resul
    End Function

Espero que os ayude la función, ademas no se si hasta cierto punto es mejor depender de un booleano que para la ejecución con excepciones, hay ya que cada uno la edite como quiera.

Thanks!!

lunes, 3 de octubre de 2011

Modificar un archivo de texto

Es un ejercicio simple de programación que he tenido que implementar hoy en el trabajo.
Si hubiera tenido tiempo me hubiera gustado poder haberlo hecho sin tener que recurrir a utilizar memoria para leer todo el archivo, pero no pude ni plantearlo.
StringBuilder newFile = new StringBuilder();
string temp = "";
string[] archivo = File.ReadAllLines(@"C:\................txt");
foreach (string linea in archivo)
{
    if (linea .Contains("string"))
    {
        temp = linea .Replace("string", "String");
        newFile.Append(temp + "\r\n");
        continue;
    }
    newFile.Append(line + "\r\n");
}
File.WriteAllText(@"C:\......................txt", newFile.ToString());
Thanks!!
 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Online Project management