Conversion implicita y explicita entre tipos personalizados (Custom Types)

Solo para recodar, solo para recordar , conversión implícita:



int a = 35;
double b = a;


Y conversión explícita:



string num = “56”;
int
numero;
int.TryParse(num, out
numero);
//TryParse retorna falso si no se puede convertir la cadena
Console.WriteLine(numero); //56


Ahora que pasa si quiero que mi clase tipoB, se pueda convertir explícitamente o implícitamente a mi clase tipoA. Pues nosotros podemos implementar nuestras propias conversiones, tenemos la clase tipoB:



public class tipoB
{
  public string
name;

  public tipoB(string
pname)
  {
    name = pname;
  }

  public
override string
ToString()
  {
    return “tipoB-“
+ name;
  }
}


Ahora nuestro clase tipoA:



public class tipoA
{
  public string
name;

  public
tipoA (string
pname)
  {
    name = pname;
  }
 
  public
override string
ToString()
  {
    return “tipoA-“
+ name;
  }


  ////habilitando conversion implicita desde tipoB a tipoA
  //public static implicit operator tipoA(tipoB arg)
  //{
  // tipoA tip = new tipoA(arg.name);
  // return tip;
  //}

  /
/convertir explicitamente desde tipoB a tipoA
  public static explicit operator tipoA(tipoB
arg)
  {
    tipoA tip = new tipoA
(arg.name);
    return
tip;
  }
}


Como podemos ver usando las palabras reservadas implicit operator o explicit operator podemos definir conversiones explícitas/implícitas para nuestros tipos personalizados, veamos la aplicación:



static void Main(string[] args)
{
  tipoB tipB = new tipoB(“hola”);
  Console.WriteLine(“objeto inicial: “ + tipB.ToString());

  //conversion implicita a tipoA
  //tipoA tipA = tipB;

  //Conversion explicita a tipoA
  tipoA tipA = (tipoA)tipB;

  Console
.WriteLine(“despues de conversion: “
+ tipA.ToString());
  Console.ReadLine();
}


Hay que tener en cuenta solo se puede declarar un tipo de conversión, es decir declaramos la conversión como implicit o como explicit pero no podemos declarar las dos para convertir el tipoX al tipoY. Por eso hemos comentado la conversión implicit mostrada arriba, de lo contrario mostrará un error en tiempo de compilación. Ojo, eso solo en la declaración, ya que si declaramos una conversión implícita la podemos usar de forma implícita o explicíta, si la declaramos como explícita solo la podremos usar como explícita.


P.D.: Se pudo mejorar la construcción de la clase usando propiedades, y otras mejores prácticas, pero no es el objetivo de este post, el objetivo es mostrar la conversión de tipos personalizados .


Tarea: Investigar sobre TryParse


Saludos,



Post cruzado desde starrillo blog

Diagramas UML, Casos de Uso (Use Case), muniecos y pelotas

Los diagramas no son lo importante“, es la frase que tengo en la mente después de leer UML: Casos de Uso. Use Case, y aclara algo muy importante que a veces muchos, cuando empezamos en UML, no entendemos porque tenemos que hacer Casos de Uso, u otro diagrama UML, y pués tenian razón “los diagramas no son lo importante”.

Lo realmente importante de los diagramas UML, son los documento de descripción de casos de uso, este documento explica la forma de interactuar entre el usuario y el sistema. En algunos proyectos hasta solo se podría usar los Documentos de Descripción de Casos de Uso, claro dependiendo del proyecto, y la experiencia con UML, veamos un ejemplo de un Documento de Descripción de Casos de Uso:

Ahora que pasa si tenemos demasiados casos de uso, y es difícil concebir la interrelación de estos, entonces ahora si necesitamos una visión general del asunto, ahora necesiamos un Diagrama de Casos de Uso, en el artículo, los llaman muñecos y pelotas:

Fuente: “Prácticas y métodos para mejorar el desarrollo de Proyectos de Software” -> http://www.ingenierosoftware.com/.

A algunos usar Diagramas UML les puede no parecer util en los proyectos, Documentando software y… más motivos por los que UML no es la solución, leyendo el artículo queda un poco más claro, nuevamente “los diagramas no son lo importante“. Y para algunos imagino que será díficil aceptar, por todo lo que le enseñaron en la universidad, instituto, o algún otro centro, que los Diagramas UML lo eran todo, y hasta a veces caias en discuciones bizantinas si es extends, o include, imagino que a los que no presentaron atención a la clase de UML serán los mas contentos el post de Rodrigo… otro post interesante de Rodrigo Corral, es: Porque no me gusta UML.

P.D.: Se pudo haber detallado más, o obviado algunos detalles, en el caso de uso y en su descripción, pero eso ya depederá de los requeremientos que tengan, y de lo que esten haciendo.

Saludos,

Post cruzado desde starrillo blog

XML en ofimatica: Microsoft Office Open XML Formats (http://openxmldeveloper.org)

Como se sabe XML es un formato independiente de la plataforma y del lenguaje, y la adopción que vienen surgiendo desde hace años, en el manejo de documentos en ofimática, es usar el formato XML y ya no el formato binario para el almacenamiento de archivos (como los son los formatos Open XML y OpenDocument)


Microsoft Office 2007, la siguiente version su suite de Office, usará un nuevo formato para el manejo de sus archivos estamos hablando del formato Open XML.


Este nuevo formato es compacto, un formato de archivo robusto que habilitará una mejor integración entre documentos y los back-end de los sistemas. Este nuevo formato, Open XML, introduce un número de beneficios no solo para los desarrolladores y las soluciones que ellos construyen, sino también para usuarios individuales y organizaciones de todos los tamaños… [url1].


El formato Open XML, que viene esta siendo estarizado por ECMA [url2.1 y url2.2], usa un empaquetamiento basado en el formato zip, es decir que cualquier herramienta zip puedes abrir estos archivos. Para hacerlo solo tenemos que renombre el archivo y cambiar la extensión a *.zip, miDocumento.docx a miDocumento.zip. Dentro de la carpeta veremos varios archivos y otras carpetas, el formato Open XML es mostrado en la siguiente figura [url3]:


The file format container in the 2007 release


Actualmente en este site: http://openxmldeveloper.org/, encontraremos información sobre Open XML, pero sobre todo para los desarrolladores, hay dos artículos: Creando un Documento Open XML en .NET y lo mismo pero versión Web: con los cuales podemos crear documentos tanto en una aplicación Windows y Web despues los podemos abrir con Office Word 2007:


 


 


 



Ahora lo que podemos hacer con OpenXML es espectacular, acá podemos ver mas artículos de desarrollo sobre OpenXML: http://openxmldeveloper.org/articles.aspx 


Una última noticia anuncia por Microsoft, y para expandir la interoperatividad de los documentos office [url4], es un proyecto Open Source para la conversión de documentos Open XML y OpenDocument (ODF) [url5]. Será un add-in que se integrará con la suite Microsoft Office 2007. Actualmente se esta desarrollando la versión para Office Word 2007, y esta disponible en el sitio web SourceForge bajo la licencia BSD (Berkeley Software Distribution), en esta versión podemos abrir archivos de formato ODF [url6]:



Quieres desarrollar o saber un poco más de Open XML?:



P.D.: Cuando haya un tiempito trataré de hacer un artículo de desarrollo sobre Open XML, hasta ahora lo que no he visto son visores para Open XML, si sabes de alguno me lo haces saber ;).


Saludos,


Post cruzado desde starrillo blog

Fotos del DevDays 2006 en Lima, Peru (22 y 23 de mayo)

Estan son algunas fotos del Developer Days 2006 realizado en Lima, Perú  (22 y 23 de Mayo), en donde tuve la oportunidad de ser co-expositor de Guino Henostroza en la charla de "Evolucion de las Aplicaciones Distribuidas: Windows Communication Foundation". Por otro lado se aprovecho la prescencia de Nilda D. para reunirnos con las Comunidades y hablar de los planes de Ineta y sobretodo de la próxima gira de Ineta.

 

Guino Henostroza y Sergio Tarrillo

 

Edgar Sanchez, Sergio Tarrillo, Alex Taya, Martin Vergara, y el delfin porsupuesto :p!

 

Reunión de Comunidades con Nilda D. (INETA LATAM)!

P.D.: Recién tuve un poco de tiempo para subir las fotos :D, si deseas ver más fotos, estan en mi galería y en mi space.

Saludos,

Post cruzado desde starrillo blog

Todo acerca de Acceso a Datos en ASP.NET 2.0 (uso de controles, manejo de capas, y mas)

Holas!, estaba revisando mi lector de RSS y me encontré con este artículo: Tutorial 2: Creating a Business Logic Layer. Este artículo parte de un tutorial de Scott Mitchell, te muestra como crear la capa de lógica de negocios para nuestra aplicación. Buscando el tutorial 1 me encontre con muchos artículos interesantes:


En http://www.asp.net:



 Working with data in ASP.NET 2.0 home


Introduction

Basic Reporting

Master/Detail (Filtrados Maestro/Detalle con controles y queryString)

Custom Formatting (formato personalizado para mostrar data usando templates)

Editing, Inserting, and Deleting Data

En http://msdn.microsoft.com/aspnet



ASP.NET 2.0 Articles



Retrieving Data



Displaying Data



Y por último siempre podemos revisar la sección de Data en el blog de ScottGu’s Blog.


P.D.: Ahora si no se pueden quejar con toda esta información.


Saludos,



Post cruzado desde starrillo blog