Lección 3 - Streams de compresión.
.Net dispone de dos algoritmos de compresión, Gzip y Deflate, ambos libres de patentes y estándares de la industria. Ambos están limitados a un máximo de 4GB de datos sin compresión.
La clase GzipStream permite comprimir datos a través de otro Stream usando el método de compresión GZIP.
La clase DeflateStream permite comprimir datos a través de otro Stream usando el método de compresión DEFLATE.
La diferencia entre estos dos es que Gzip almacena más información de los datos comprimidos para poder usarse con herramientas como gzip. Deflate tiene menos información y por ello es más efectivo.
Como comprimir datos con un compresión stream?
Se debe abrir el archivo que se va a comprimir y crear un archivo nuevo en el que se va a escribir.
Crear un GZipStream donde le paso el stream de destino, y el modo de compresión (en este caso Compress)
Para comprimir los datos con un DeflateStream solo se debe cambiar la parte donde se crea el GZipSteam por DeflateStream
Como descomprimir datos con un compresión stream?
Para descomprimir los datos con un DeflateStream solo se debe cambiar la parte donde se crea el GZipSteam por DeflateStream
Lección 4 -Trabajando con almacenamiento aislado (Isolated storage)
En la actualidad hay una gran cantidad de malware (virus, spyware, adware, gusanos, troyanos, etc.).
La utilización de un almacenamiento aislado permite que las aplicaciones que no son de plena confianza almacenen datos de una forma controlada por la directiva de seguridad del equipo. Crea un área exclusiva de almacenamiento para una aplicación o un componente, al que sólo esta puede obtener acceso. Por lo tanto, cada aplicación tiene su propia área de archivos asignada automáticamente , completamente aislada de otras aplicaciones.
La clase IsaolatedStorageFile: permite crear archivos y directorios en el isolated storage. Se encuentra en el NameSpace System.IO.IsolatedStorage.
IsolatedStorageScope es un enumerador que describe el scope (ambito) del almacenamiento aislado.
IsolatedStorageFileStream: es un stream utilizado para crear archivos en el isolated storage. Deriva de la clase filestream, por lo tanto tiene casi las mismas propiedades y manejos.
Como crear un almacenamiento?
Antes de grabar información en tu Isolated storage, se debe de determinar el ámbito donde se quiere guardar la información. Se puede elegir entre 2 métodos:
- Assembly/Machine.- Crea un almacenamiento para mantener la informacion que es específica para la llamada del assembly y de la máquina local. Ideal para crear datos a nivel de aplicación:
- Assembly/User.- Este método crea un almacenamiento que guarda información que es específica para la llamada del assembly y el usuario actual. Es útil para crear datos a nivel de usuario:
Leyendo y escribiendo información en un almacenamiento aislado
Se crea un objeto IsolatedStorageFileStream creando una instancia de la clase, especificando cual el nombre del archivo IsolatedStorageFile que se va a incluir dentro.
Después de crear el almacenamiento se puede manejar de la misma manera que un fileStream. Por ejemplo para escribirlo:
Cuando usamos IsolatedStorage no se puede verificar si un archivo existe ahí, esto se debe realizar, por ejemplo preguntando si un arreglo que contiene los nombres de los archivos del IsolatedStorage es mayor a 0:
Como usar directorios en un almacenamiento aislado?
En un isolated storage también tenemos permitido crear directorios, esto es mediante CreateDirectory y después de crear el directorio se pueden crear archivos, especificando el nombre, el FileMode a usar y el objeto de almacenamiento creado:
Para obtener los archivos que tiene ese directorio se realiza de la siguiente forma:
IsolatedStrorageFilePermission es una clase que encapsula los permisos que especifican el acceso al isolated storage.
Propiedades:
Permitiendo el almacenamiento aislado
Para otorgar suficientes permisos, uno necesita demandar o pedir permisos. Para hacer que el framework se encargue de esto, se hace lo siguiente:
Antes de la clase a la que se desea otorgar permisos, se debe colocar el atributo

Esto permite seleccionar qué assemblies requieren permisos, y si no los tiene, con este atributo, se hace el pedido.
....................................................................................................................................................
Bajar este capítulo en formato PDF Codigo Ejemplo
....................................................................................................................................................
.Net dispone de dos algoritmos de compresión, Gzip y Deflate, ambos libres de patentes y estándares de la industria. Ambos están limitados a un máximo de 4GB de datos sin compresión.
La clase GzipStream permite comprimir datos a través de otro Stream usando el método de compresión GZIP.
La clase DeflateStream permite comprimir datos a través de otro Stream usando el método de compresión DEFLATE.
La diferencia entre estos dos es que Gzip almacena más información de los datos comprimidos para poder usarse con herramientas como gzip. Deflate tiene menos información y por ello es más efectivo.
Como comprimir datos con un compresión stream?
Se debe abrir el archivo que se va a comprimir y crear un archivo nuevo en el que se va a escribir.
Crear un GZipStream donde le paso el stream de destino, y el modo de compresión (en este caso Compress)
Para comprimir los datos con un DeflateStream solo se debe cambiar la parte donde se crea el GZipSteam por DeflateStream
Como descomprimir datos con un compresión stream?
Para descomprimir los datos con un DeflateStream solo se debe cambiar la parte donde se crea el GZipSteam por DeflateStream
Lección 4 -Trabajando con almacenamiento aislado (Isolated storage)
En la actualidad hay una gran cantidad de malware (virus, spyware, adware, gusanos, troyanos, etc.).
La utilización de un almacenamiento aislado permite que las aplicaciones que no son de plena confianza almacenen datos de una forma controlada por la directiva de seguridad del equipo. Crea un área exclusiva de almacenamiento para una aplicación o un componente, al que sólo esta puede obtener acceso. Por lo tanto, cada aplicación tiene su propia área de archivos asignada automáticamente , completamente aislada de otras aplicaciones.
La clase IsaolatedStorageFile: permite crear archivos y directorios en el isolated storage. Se encuentra en el NameSpace System.IO.IsolatedStorage.
IsolatedStorageScope es un enumerador que describe el scope (ambito) del almacenamiento aislado.
IsolatedStorageFileStream: es un stream utilizado para crear archivos en el isolated storage. Deriva de la clase filestream, por lo tanto tiene casi las mismas propiedades y manejos.
Como crear un almacenamiento?
Antes de grabar información en tu Isolated storage, se debe de determinar el ámbito donde se quiere guardar la información. Se puede elegir entre 2 métodos:
- Assembly/Machine.- Crea un almacenamiento para mantener la informacion que es específica para la llamada del assembly y de la máquina local. Ideal para crear datos a nivel de aplicación:
- Assembly/User.- Este método crea un almacenamiento que guarda información que es específica para la llamada del assembly y el usuario actual. Es útil para crear datos a nivel de usuario:
Leyendo y escribiendo información en un almacenamiento aislado
Se crea un objeto IsolatedStorageFileStream creando una instancia de la clase, especificando cual el nombre del archivo IsolatedStorageFile que se va a incluir dentro.
Después de crear el almacenamiento se puede manejar de la misma manera que un fileStream. Por ejemplo para escribirlo:
Cuando usamos IsolatedStorage no se puede verificar si un archivo existe ahí, esto se debe realizar, por ejemplo preguntando si un arreglo que contiene los nombres de los archivos del IsolatedStorage es mayor a 0:
Como usar directorios en un almacenamiento aislado?
En un isolated storage también tenemos permitido crear directorios, esto es mediante CreateDirectory y después de crear el directorio se pueden crear archivos, especificando el nombre, el FileMode a usar y el objeto de almacenamiento creado:
Para obtener los archivos que tiene ese directorio se realiza de la siguiente forma:
IsolatedStrorageFilePermission es una clase que encapsula los permisos que especifican el acceso al isolated storage.
Propiedades:
UsageAllowed | Obtiene o establece los tipos de permisos a los usuarios. |
UserQuota | Obtiene o establece el tamaño de almacenamiento máximo por usuario. |
Permitiendo el almacenamiento aislado
Para otorgar suficientes permisos, uno necesita demandar o pedir permisos. Para hacer que el framework se encargue de esto, se hace lo siguiente:
Se usa System.Security.Permissions.
Antes de la clase a la que se desea otorgar permisos, se debe colocar el atributo
Esto permite seleccionar qué assemblies requieren permisos, y si no los tiene, con este atributo, se hace el pedido.
....................................................................................................................................................
Bajar este capítulo en formato PDF Codigo Ejemplo
....................................................................................................................................................
Hola como estas, me gustaría saber si podrías arreglar el link para descargar el PDF ya que no funciona, muchas gracias y felicitaciones, esta excelente todo.
ResponderEliminarListo! arreglado ;)
ResponderEliminar