AddThis Feed Button
AddThis Social Bookmark Button
IMGP1165
IMGP1166
IMGP1143
IMGP1144
IMGP1145
IMGP1146
IMGP1147
IMGP1148
IMGP1149
IMGP1150
Categories

This Month Last Year

Julio 2008
L M X J V S D
« Jun «-»  
 123456
78910111213
14151617181920
21222324252627
28293031  
links
22
Oct

Perfiles con ASP.NET 2.0

En ASP.NET 2.0 podemos definir perfiles para nuestros usuarios, estos son una o mas propiedades que nosotros definimos que se guardaran junto con la información de cada usuario registrado en la pagina y que serán también almacenados en la base de datos SQL Server que suele integrar por defecto el ASP.NET, esto nos permitirá por ejemplo añadir a un usuario un contador de visitas que guarde el numero de veces que ha visitado la pagina.

 

Lo primero que tendremos que hacer es añadir al web.config en el espacio System.Web la información de los campos que queremos añadir al perfil de ese usuario.

 

  1. <profile enable=“true”>
  2. <properties>
  3. <add name=“visitas” type=“System.Int32″ defaultValue =“0″ />
  4. </properties>
  5. </profile>

 

 

El campo name define el nombre de la propiedad y es obligatorio, el resto de campos es opcional. Type define el tipo de datos, ha de ser un tipo de datos serializable y defaultValue define el valor inicial que le asignamos.

 

Con esto definimos una propiedad nueva para el perfil del usuario. La propiedad visitas es accesible ahora desde el objeto Profile, cualquier modificación que hagamos a las propiedades de Profile se guardara automáticamente en los datos del perfil.

 

  1. Label1.Text= “Visitas” & Profile.visitas.ToString
  2. Profile.visitas+=1

 

 

Con esto mostraríamos la información de la propiedad visitas almacenada y acto seguido añadiríamos 1 a las visitas guardándose este valor en el perfil de usuario automáticamente.


14
Oct

Programación orientada a objetos (POO) en PHP4

Algo que no es muy com&úacute;n ver en PHP4 es la programación Orientada a objetos y sin embargo puede ser muy &úacute;til, sobre todo a la hora de encapsular nuestras operaciones en la base de datos en una &úacute;nica clase que facilite la escalabilidad de la misma.

 

 

Ejemplo de una clase PHP4: 

  1. class MyClase{
  2. var _variable;
  3. function MyClase($a=0){
  4. $this->_variable=$a;
  5. }
  6. function DaVariable(){
  7. return $this->_variable;
  8. }
  9. }

 

 

El constructor de una clase PHP4 es igual al nombre de dicha clase. Solo puede haber una función con dicho nombre.

Para construir una clase PHP4 utilizaremos la palabra reservada new.

  1. // cremos un objeto de la clase MyClase
  2. $miObjeto = new MyClase(5);
  3. // Llamamos al metodo DaVariable() de miObjeto y mostramos
  4. // en pantalla el resultado.
  5. echo $miObjeto->DaVariable();

 

 

Dentro de una clase se usa la variable $this para llamar a las variables y métodos de la instancia actual de la clase. También podemos ver los símbolos “->” estos se usan para definir la variable o método al que queremos acceder, asi si tenemos un objeto $poo creado de una clase Cpoo el cual contiene una función llamada DiAlgo() para llamar a dicha función haremos $poo->DiAlgo() .

 

También podemos acceder directamente a los métodos de una clase (llamada a métodos estáticos) usando los símbolos “::”. este es el operador de resolución de contexto y también lo podremos usar para acceder a clases heredadas.

  1. Cpoo::DiAlgo();

 

 

Las Clases PHP4 Pueden heredar, para ello se usa la palabra reservada extends. PHP 4 no llama constructores de la clase base automáticamente desde un constructor de una clase derivada. Por lo que es responsabilidad nuestra llamarlo si lo necesitamos.

  1. Class Padre{
  2. function Padre(){}
  3. funcion HazPadre(){}
  4. }
  5. Class Hija extends Padre{
  6. function Hija(){}
  7. function HazHija(){}
  8. }
  9. $a = new Hija();
  10. $a->HazHija();
  11. $a->HazPadre();

 

 

Asimismo tal y como existía $this para acceder a las variables y métodos de el objeto actual existe la palabra reservada parent para acceder a los métodos de una clase padre sin necesidad de saber de que clase se trata.

  1. Class Padre{
  2. function Padre(){}
  3. function HazPadre(){}
  4. }
  5. Class Hija extends Padre{
  6. function Hija(){}
  7. function HazHija(){
  8. // Esto llamaria a HazPadre solo para la clase Padre
  9. Padre::HazPadre();
  10. // Esto llamaria a HazPadre de la clase padre sin
  11. // importar cual sea
  12. parent::HazPadre();
  13. }
  14. }

 

 

 

En la herencia también tenemos que la clase padre puede tener una función con el nombre del constructor de la clase hija. En este caso la función de la clase padre Funcionara como constructor de la clase Hija.

  1. class A{
  2. function A(){}
  3. function B(){}
  4. }
  5. class B extends A {
  6. function hazAlgo();
  7. }
  8. // el constructor que se esta usando corresponde
  9. // con la funcion B de la clase A
  10. $obj = new B();

 

 

Para ayudar a la con los problemas de serialización las clases pueden tener las “funciones mágicas” (como las define el manual de PHP) __sleep y __wakeup que serán ejecutadas por serialize() y unserialize() respectivamente para que haga las operaciones que crea necesarias.

  1. class A{
  2. function A(){}
  3. function __sleep(){
  4. // operaciones antes de serializar
  5. }
  6. function __wakeup(){
  7. // operaciones despues de desserializar
  8. }
  9. }

 

 

Las clases PHP4 y sus métodos aceptan el uso de variables y clases por referencia.

Se pueden instanciar clases usando el operador “&” para crearlas como referencia, con esto el nuevo objeto apuntara a otro existente de la misma clase en lugar de crear una nueva copia (aun así llama al constructor), en este caso $this apuntara a las variables y métodos del primer objeto creado

  1. $a= &new MyClase();

 

 

Por ultimo, en PHP4 no existen destructores para la clase. Esta se destruye al finalizar su ciclo de vida (ciclo de vida normal de una pagina PHP).

 

Como truco podemos usar register_shutdown_function() para llamar a una función al final del ciclo de la pagina que actué como destructor, aunque normalmente no es necesario usar destructores.


07
Oct

Configuración de aplicaciones con VS2005

Uno de los elementos más comunes de una aplicación es un espacio donde guardar los datos de configuración de nuestra aplicación. Con VS 2005 esto se hace muy sencillo ya que provee un sistema para tener nuestras configuraciones.

Para crear un archivo de configuraciones hemos de ir al panel de configuración del proyecto (My Project) y en el encontraremos una solapa “Configuración” donde crearemos nuestra configuración, asignándole un nombre, si es configuración de usuario o de aplicación y si queremos un valor inicial.

 

Cofiguracion

Las configuraciones de usuario son aquellas que se pueden cambiar en tiempo de ejecución y las de Aplicación son configuraciones fijas de la aplicación de solo lectura.

Una vez tenemos nuestro esquema creado para acceder a las propiedades desde Visual Basic.NET solo tenemos que usar el objeto especial “My” especial de VS2005, entre los elementos que encontraremos hay uno llamado “settings” el cual contiene para cada valor que insertamos en “Configuración” una propiedad, de lectura y escritura si la clave era de usuario o solo lectura si era de aplicación.

En el objeto settings también encontramos algunos métodos &úacute;tiles como son:

 

 

  • Reset, devuelve las propiedades a sus valores por defecto
  • Reload, vuelve a cargar las propiedades
  • Save, salva los valores que hemos cambiado en las propiedades

 

 

 

En el objeto settings se puede tener cualquier objeto serializable por lo que se puede guardar una gran cantidad de tipos de datos.
Los datos se guardan en una subcarpeta de “Configuración local\Datos de programa” de el perfil actual. Por lo que la configuración es independiente para cada perfil.
Los datos se guardan en un archivo XML por lo que no es un sistema recomendable para guardar contraseñas u otros datos sensibles.


04
Oct

Generar un GUID con .NET

En el post anterior hablaba sobre la creación de plugins para el Windows Live Writer y un poco del GUID, ahora voy a enseñaros como crear un GUID con .NET.

La verdad que es una chorrada. El .NET implementa una clase System.Guid la cual tienen un método estático para generar nuevos elementos Guid, y usando el método ToString de dicho elemento podemos obtener la cadena del GUID.

 

  1. Me.txtguid.Text = System.Guid.NewGuid.ToString

 

Y para terminar he creado una pequeña utilidad para los GUID (simple simple xD)

 

Guidgen 1.0 (requiere .NET 2.0)