Persiste Tema - Servicio de Informática

Anuncio
Programación avanzada en .NET con C#
Servicio de Informática
PERSISTE Y CAMPUS VIRTUAL
PERSISTE Y CAMPUS VIRTUAL
Introducción
Los nuevos módulos de campus virtual se están desarrollando con .net y tienen que convivir
con los antiguos, que están en asp. Para que funcionen se tienen que mantener las variables de
sesión con los datos del usuario que se ha identificado. No es posible compartir variables de
sesión entre distintas plataformas. Para ello se ha creado la clase ClasePersiste, que lo que hace
es permitir el intercambio de datos entre diferentes plataformas
ClasePersiste
La ClasePersiste tiene como objetivo el poder pasar de una aplicación a otra, sin necesidad de
volver a identificarnos, y traspasando los datos que necesitemos con total seguridad.
Se puede usar entre aplicaciones .NET o entre aplicaciones ASP Clásico (lo más normal en la
mayoría de los casos) o incluso entre aplicaciones PHP.
Se ha rediseñado por completo la clase para cumplir con los requisitos de las directrices de
programación explicada en los cursos.
Incluir la DLL ClasePersiste
Primero debemos hacer una referencia a la DLL. Sobre el proyecto, botón derecho, Agregar
referencia.
Pulsar Examinar y acceder a la carpeta /toolsnet/DLLs/ y seleccionar ClasePersiste.dll
1
Programación avanzada en .NET con C#
Servicio de Informática
PERSISTE Y CAMPUS VIRTUAL
Ilustración 1: Agregar referencia a ClasePersiste
Ahora debemos hacer referencia desde nuesto ASPX al Namespace en el que se encuentra
nuestra clase ("ua").
using ua;
Creación
Como cualquier otro objeto lo crearemos mediante una llamada a new más el nombre de la
clase.
ClasePersiste persiste = new ClasePersiste();
Uso de ClasePersiste
Almacenar datos
Los datos los dividimos en 6 grupos: Form, QueryString, ServerVariables, Session, Application y
datos definidos por el usuario.
2
Programación avanzada en .NET con C#
Servicio de Informática
PERSISTE Y CAMPUS VIRTUAL
Podemos elegir almacenar todos estos datos o elegir los que queramos.
Para almacenar todos los datos se utiliza el método Guarda. Almacena el contenido de las
colecciones Form, QueryString, ServerVariables, Session, Application y la colección de usuario
creada con los métodos Escribe y EscribePorTipo.
Devuelve el Id de base de datos asignado al registro. Si devuelve 0 es que se ha producido
algún error.
Los datos sólo se podrán recuperar con el método Recupera.
Sintaxis:
var idDatos = persiste.Guarda();
Parámetros:
idDatos: Identificador de los datos guardados, necesario para luego recuperarlos
Selección de colecciones que se van a guardar
Podemos especificar que colecciones de las antes mencionadas se van a guardar y cuales no.
Por defecto sólo se guardan las variables definidas por el usuario.
Para modificar los valores por defecto se se utilizan los métodos:
•
GuardaForm: Indicamos que queremos almacenar todas las variables Form (POST)
•
GuardaQueryString: Indicamos que queremos almacenar todas las variables QueryString (GET)
•
GuardaServerVariables: Indicamos si guardamos los datos ServerVariables
•
GuardaSession: Indicamos que queremos almacenar todas las variables Session
•
GuardaApplication: Indicamos que queremos almacenar todas las variables
Application
Ejemplo:
persiste.GuardaSession = true;
Inclusión de datos particulares
En vez de guardar todas las colecciones o todos los datos de una colección una mejor práctica
es almacenar sólo los datos que necesitemos. Sean de la colección que sean. Para ello se
utilizan los métodos:
3
Programación avanzada en .NET con C#
Servicio de Informática
PERSISTE Y CAMPUS VIRTUAL
Escribe
Añade un dato a la colección de usuario, incluye el valor. No se especifica el tipo. Los
parámetros que recibe son:
•
Nombre: Nombre de la variable que queremos añadir
•
Valor: Valor de la variable
void Escribe(string Nombre, string Valor)
Ejemplo:
var persiste = new ClasePersiste();
persiste.Escribe("nombre","Sergio");
EscribePorTipo
Igual que el método Escribe pero le indicamos el tipo de variable. Los parámetros que recibe
son:
•
Nombre: Nombre de la variable que queremos añadir
•
Valor: Valor de la variable
•
Tipo: Tipo de la variable:
Q – QueryString
F – Form (Post)
V – Server
S – Session
A – Application
void EscribePorTipo(string Nombre, string Valor, string Tipo)
Ejemplo:
var persiste = new ClasePersiste();
persiste.EscribePorTipo("nombre","Sergio","S");
4
Programación avanzada en .NET con C#
Servicio de Informática
PERSISTE Y CAMPUS VIRTUAL
Lectura de datos almacenados
Una vez hemos almacenado los datos podemos leerlos desde cualquier otra aplicación simplemente
sabiendo el identificador que nos ha devuelto el método Guarda. Para leer en modo genérico
utilizaremos el método Recupera.
Recupera lee de la BD los valores del identificador que recibe como parametro y lo guarda en las
colecciones. El único parámetro que necesita es el identificador que identifica la sesión a
recuperar.
void Recupera(string IdSession)
Ejemplo:
var persiste = new ClasePersiste();
persiste.Recupera(idDato);
Para leer datos específicos utilizaremos los métodos Lee y LeePorTipo de forma análoga a los
métodos de escritura Escribe y EscribePorTipo
Siempre se llaman después de invocar a Recupera
Lee
Devuelve el valor de un dato. Al no especificar el tipo busca en este orden:
1. Sin tipo (general)
2. QueryString
3. Form (Post)
4. Session
5. Application
6. Server
Como parámetro recibe el nombre de la variable que queremos leer
string Lee(string nombre)
5
Programación avanzada en .NET con C#
Servicio de Informática
PERSISTE Y CAMPUS VIRTUAL
LeePorTipo
Devuelve el valor de un dato especificando el tipo. Siempre se llama después de invocar a
Recupera. Recibe como parámetros:
Nombre: Nombre de la variable que queremos leer
Tipo: Tipo de la variable:
Q – QueryString
F - Form (Post)
V – Server
S – Session
A - Application
public string LeePorTipo(string Nombre, string Tipo)
Borrado de los datos de la BD
Por defecto cuando se recuperan los datos almacenados estos se borran de la base de datos,
por lo que ya no se pueden volver a recuperar. Este es el comportamiento normal, ya que una
vez pasadas las variables de una aplicación a otra ya no es necesario mantenerlos en la base de
datos, que de otra forma creceria innecesariamente.
Para casos particulares esta característica se puede cambiar mediante la propiedad
BorrarDatos.
BorrarDatos
Indicamos que los datos no se deben borrar una vez leídos. Por defecto, y por medidas de
seguridad, los borra.
bool BorrarDatos
por defecto está a true
Si hemos desactivado esta característica podemos borrar de forma manual los datos de la base
de datos pasando le el identificador al método BorrarBatosBD
6
Programación avanzada en .NET con C#
Servicio de Informática
PERSISTE Y CAMPUS VIRTUAL
void BorrarDatosBD(Int32 id)
Gestión de variables de sesión
GeneraVariablesSession
Recuperamos todas las variables sesión y adecuamos aquellas que sean delicadas: cadena de
conexión
void GeneraVariablesSession()
GeneraVariableSession
Recuperamos una variable sesión. En caso de que no exista la inicializa a ""
nombreVariable: variable a recuperar
void GeneraVariableSession(string nombreVariable)
Propiedades y métodos de apoyo
NumeroParametros
Nos indica el Número de parámetros que hay almacenados
int NumeroParametros
LimpiaDatos
Vacía el contenido de TODOS los diccionarios para comenzar de cero a asignar variables
void LimpiaDatos()
7
Programación avanzada en .NET con C#
Servicio de Informática
PERSISTE Y CAMPUS VIRTUAL
Encriptación
Es importante encriptar el identificador de los datos guardados y desencriptarlo antes de
utilizarlo, ya que normalmente ese dato va por query string y se puede leer. Para ello la
ClasePersiste dispone de dos métodos.
Encriptar
Encripta la cadena que se le envia como parámetro y la devuelve encriptada
string Encriptar(string Texto)
Desencriptar
Desencripta la cadena que se le envia como parámetro y la devuelve desencriptada
string Desencriptar(string Texto)
8
Programación avanzada en .NET con C#
Servicio de Informática
PERSISTE Y CAMPUS VIRTUAL
Aplicaciones .NET en Campus Virtual
El principal problema que surge a la hora de crear nuevos módulos para Campus Virtual en .net
es la integración con el antiguo entorno desarrollado en asp. Sobretodo el mantenimiento de
las varibles de sesión que contienen los datos del usuario.
Hasta ahora se estaban creando los módulos de .net en una carpeta llamada WebCVNet. pero
esta práctica no ha resultado correcta.
•
Cada aplicación tendrá su propia carpeta, ya no estará dentro de WebCvNet.
•
Dentro de cada aplicación se creará una carpeta CV para los aspx de Campus virtual si
la aplicación tiene módulos para este. Si la aplicación es pura de CV irá en el raiz.
•
Los datos de session y demás se pasarán mediante ClasePersiste en un asp dentro de
WebCV
•
En el web config de la aplicación habrá que poner en la seccion system.web:
<system.web>
<sessionState cookieName="ASP.NETCV_SessionId"></sessionState>
para que cuando se salga de campus virtual se eliminen todas las varibles de sesión de
sus aplicaciones.
9
Descargar