XperimentoS

Experiencias Profesionales…

Archivo para Abril, 2007

Trabajar con ficheros Zip en VB.Net y C#

Publicado por maitetxu en Abril 30th 2007

A pesar de que la continuidad de J# está mas que cuestionada, todavía puede ser útil para varias cosas entre ellas comprimir archivos.

Desarrollando una aplicación Web en .Net hemos tenido la necesidad de comprimir varios archivos en un fichero Zip y enviarlos al cliente Web de forma transparente para el usuario.

Existen numerosas librerías para trabajar con ficheros Zip, pero encontramos una forma sencilla de trabajar con los ficheros Zip desde un programa VB.Net (también válido para C#). El Framework 1.1 de Microsoft (y también el 2.0) incorporan el lenguaje J# que es un “pariente de Java”, luego “java.util.zip” debe existir en algún lado. Si alguien se pregunta si existe en C# la respuesta es no :-(
Efectivamente J# contiene “java.util.zip” y está dentro de “vjslib.dll”. Primero, nos aseguramos que tenemos en nuestro servidor/pc está librería, sino la tenéis podéis descargaros el “Paquete redistribuible de Microsoft Visual J# .NET versión 1.1” (o en inglés “Microsoft Visual J# .NET Version 1.1 Redistributable Package”) en esta dirección.

Añadiendo una referencia a la librería vjslib.dll en nuestro proyecto ya podemos utilizar las funciones que necesitamos para acceder a los ficheros zip como en el siguiente ejemplo:


Imports java.util
Imports java.util.zip
Imports java.io

‘ Función auxiliar que copia los bytes de un inputStream a un outputStream
Public Shared Sub CopyStream(ByVal inputStream _
       As java.io.InputStream, _
       ByRef outputStream As java.io.OutputStream)
  Dim buffer(8192) As SByte
  Dim got As Integer
  got = inputStream.read(buffer, 0, buffer.Length)
  While got > 0
    outputStream.write(buffer, 0, got)
    got = inputStream.read(buffer, 0, buffer.Length)
  End While
  outputStream.flush()
End Sub

Public Function createZip(ByVal zipPath As String, _
  ByVal files2Zip As System.Collections.ArrayList) _
  As Boolean  
  Dim zipOutputStream As zipOutputStream
  Dim zipEntry As zipEntry
  Dim fileInputStream As java.io.FileInputStream
  Dim file2Zip As String
  Dim auxObj As Object
  ‘ Esta variable contiene el valor que la
  ‘ función retornara

  Dim created = True Try
 
‘ Crea el fichero zip
  zipOutputStream = New _
    zipOutputStream(New _
    java.io.FileOutputStream(zipPath))
  If Not files2Zip Is Nothing Then
    For Each
auxObj In files2Zip
      file2Zip = CType(auxObj, String)
      zipEntry = New _
      zipEntry(System.IO.Path.GetFileName(file2Zip))
      ‘ Comprimimos los datos
      zipEntry.setMethod(zipEntry.DEFLATED)
      ‘ Añadimos el fichero al zip
      zipOutputStream.putNextEntry(zipEntry)
      Try
        fileInputStream = New _
          java.io.FileInputStream (file2Zip)
        Try
          CopyStream(fileInputStream, _
          zipOutputStream)
        Finally
          fileInputStream.close()
        End Try
      Catch
e As Exception
        created = False
      Finally

        zipOutputStream.closeEntry()
      End Try
    Next
  End If
Catch
e As Exception
  created = False
Finally
  If Not
zipOutputStream Is Nothing Then
    zipOutputStream.close()
  End If
End Try
Return created
End Function

Publicado en C#, Programación, VB.Net | 2 Comentarios »

ADO.Net retrasado

Publicado por lcflores en Abril 29th 2007

Hoy a publicado el equipo de ADO.Net que el nuevo Entity Framework de ADO.Net no será incluido en el Visual Studio Orcas planificado para el cuarto trimestre de 2007. El nuevo objetivo del equipo es tener una primera versión para la primera mitad del año 2008. 

Para más información sobre ADO.NET Entity Framework y Data Access Vision de Microsoft, ver el blog de ADO.NET team y el post en Data Blog sobre Microsoft’s Data Access Strategy. También Frans Bouma especula en su blog sobre cual ha sido el motivo para que Microsoft tomara esta decisión.

Publicado en Noticias | Sin Comentarios »

Publicidad

LISI - Ley de Impulso de la Sociedad de la Información

Publicado por ildapena en Abril 29th 2007

El Consejo de Ministros aprobó el viernes pasado (13 de abril de 2007)  la remisión al Congreso del Proyecto de Ley de Medidas de Impulso a la Sociedad de la Información.

En origen y tal y como se lee en la exposicion de motivos del borrador se encuentra dentro del marco establecido por el Plan Avanza para el impulso de la Sociedad de la Información en España.

La LISI en su articulado modificará la ley 34/2002, LSSICE, la ley 59/2003, ley de firma electronica.

Entre los objetivos de la ley se encuentran:

  • Eliminación de las barreras existentes a la expansión y uso de las tecnologías de la información y las comunicaciones.
  • Garantía de los derechos de los ciudadanos en la Sociedad de la Información.
  • impulsar el uso de la factura electronica y los medios electronicos para la contratación (uno de los puntos claves señalados por IDABC para el impulso de la Sociedad de la Información).

Sin embargo, la aprobación del proyecto de Ley ha sido muy polémico, en especial el famoso artículo 17, que, presuntamente, habilitaba a las gestoras de derechos de propiedad intelectual (por ejemplo, la SGAE) para exigir a las operadoras el bloqueo de webs y para controlar la actividad de los usuarios del P2P.

Veremos en qué queda.

Publicado en Noticias | Sin Comentarios »

Campus Party

Publicado por ildapena en Abril 28th 2007

Haciendome eco de una de las noticias que leo de uno de los blogs a los que me he auto-suscrito por su contenido (administración publica y TIC) y dado que conozco muchos frikis, se que esta noticia les parecerá cuando menos interesante.

Ya queda menos para la Campus Party, punto de encuentro de todos los amantes de la tecnología y en especial de los videojuegos. Aunque tienen muchas otras areas: desarrollo, sw libre, robots, simulaciones, modding,…

uff … lo malo es que me suenan todos los videojuegos de su area de competención (Counter Strike, Quake 4, Need for Speed: Carbono, FIFA 07,…) ¿por qué será?

¡A disfrutar!
:D

Publicado en Noticias | Sin Comentarios »

Publicidad

HTML 5

Publicado por klave en Abril 27th 2007

En WHATWG se está trabajando en el borrador de la especificación de HTML 5. Aun no está nada cerrado pero aquí os detallamos alguna de las novedades.

Dentro de ésta revisión tenemos nuevos elementos interesantes como son:

  • article: una sección de la página que que forma parte independiente de una pagina, documento o site.
  • dialog: una conversación.
  • footer: pie de página de una sección.
  • header: cabecera de una sección.
  • nav: representa la navegación de la página.
  • section: documento genérico o parte de una aplicación, es una agrupación temática de contenido, generalmente con cabecera.

Además de la creación nuevos elementos, también se introducen otras novedades como son:

  • Cambios de programación en el DOM, introduciendo la nueva versión del DOM.
  • Formularios web actualizados.
  • Eventos server-sent
  • Capacidades para gráficos dinámicos.

Articulos relacionados

HTML5 Elements and Attributes
Elements and Attributes in HTML 5
An Overview of HTML 5

Publicado en Internet, Noticias | 1 Comentario »

 
Cerrar
Enviar por Correo