Pongo a su alcance la presentación que utilizare en la presentación del día de hoy.
Saludos
Pongo a su alcance la presentación que utilizare en la presentación del día de hoy.
Saludos
El presente es para informales que está confirmado el lugar para la reunión
mensual de la comunidad.NET del DF
El lugar será en el auditorio Carlos Graef de la facultad de ciencias de la
UNAM, se llega fácilmente por el metro Universidad.
Tentativamente la agenda será como sigue.
15:30 – 16:00 Bienvenida y Registro
16:00 – 16:50 Raúl Guerrero: C# para Programadores de Visual Basic (6 y .NET)
17:00 – 17:50 Héctor Obregón: Implementando un Framework Genérico de Seguridad con .NET
18:00 – 18:50 Por confirmar.
18:50 – 19:00 Recolección de evaluaciones y sesión abierta.
El horario está fijado tentativamente de 15:30 a 19:00
Descarga el 5to podcast de Superneurona
Como les platicábamos durante la primera parte de esta serie llamada Diario de un Migrante estamos descubriendo el impacto del Espacio de Nombres Microsoft.VisualBasic en nuestras aplicaciones. Como parte del proceso de migración a C#.
En esta ocasión tomamos un código que tiene entre sus características un amplio manejo de funciones de Fechas. Las cuales en el framework de .NET están agrupadas dentro del espacio de Nombres Microsoft.VisualBasic.DateAndTime
Una de la funciones mas utilizadas en visual basic es la función Now
Por lo tanto para obtener la fecha actual del sistema se hacia lo siguiente
Microsoft.VisualBasic
Dim x As Date
x = Now
Y ahora para hacer la misma operación en .NET se utiliza el método Now que proporciona el tipo DateTime.
Visual Basic .NET
Dim x As Date
x = Date.Now
Visual C#
DateTime x;
x = DateTime.Now;
Algunas otras operaciones que se realizan comúnmente con Visual Basic y que tienen que ver con la manipulación de fechas son aquellas en las que de una fecha dada queremos obtener una sección de la misma.
Como por ejemplo si tenemos una fecha y queremos el día en Visual Basic lo haríamos de la siguiente manera.
Microsoft.VisualBasic
Dim Dia as Integer
Dia=day(x)
Mientras que en visual basic .net una vez que se ha dejado de utilizar el Namespace se vería de la siguiente manera.
Visual Basic .NET
Dim Dia As Integer
Dia = x.Day
Visual C#
int Dia;
Dia=x.Day;
Existen algunos cambios mas que voy a ejemplificar de una manera que me parece mas práctica.
Dateadd
VB Dateadd(DateInterval.Day,3,X)
VB.NET x.AddDays(3)
C# x.AddDays(3);
DateDiff
VB DateDiff(DateInterval.Second, X, Y)
VB.NET Y.Subtract(X).TotalSeconds
C# Y.Subtract(X).TotalSeconds;
Mientras trabajo con C# me doy cuenta de algunas cosas que son diferentes y que vale la pena ir mencionando conforme me ocurren. Una de ellas fue que para asignar un valor a la variable X y Y tuve que utilizar el método TryParse de la siguiente manera
DateTime.TryParse (“12/01/2006”,out X);
cuando en Visual Basic seria tan solo
Dim X As Date = “12/01/2006”
DatePart
VB DatePart(DateInterval.Month, Now)
VB.NET DateTime.Now.Month
C# DateTime.Now.Month;
Sobre este tema les recomiendo lean este documento que trata sobre Mejores practicas de desarrollo usando DateTime en el NET Framework
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/datetimecode.asp
El buen Carlos madrigal nos recomienda que investiguemos mas sobre estos dos temas:
timestamp
convert
Así es que no dejen de hacer la tarea.
Sin mas por el momento, les envió un gran saludo.
Fecha: 16 de mayo de 2006
Hora: 8:30 a 13 hrs
Lugar: Universidad Tecnológica de México, Campus Cuitlahuac
Sala: Auditorio
Dirección: Norte 67 No. 2346
Col. San Salvador Xochimanca
02870 México, D.F.
Orador Internacional Invitado: “El Guille”
INETA es el siguiente paso en la evolución de grupos de usuarios. Es una organización independiente y sin fines de lucro, que da soporte a los grupos de usuarios interesados en la plataforma .Net de Microsoft.
Guillermo Som Cerezo, “El Guille” (España). Desarrollador conocido por su portal dedicado casi exclusivamente a la programación con Visual Basic. Es MVP y participa activamente en los grupos de discusión. Ahora es Mentor Asociado de Solid Quality Learning Iberoamericana. Ha publicado un libro sobre Visual Basic .NET y colabora en MSDN con artículos técnicos sobre tecnología .NET. Durante su tiempo libre gestiona una estación de radio que da cobertura a su pueblo Nerja (Málaga, España).
Además, contaremos con la participación de expositores locales de muy alto nivel.
Semana 1
Después de una muy exitosa reunión de la Comunidad .NET en la Ciudad de México y ya para terminar se presento nuevamente la pregunta que nos acecha en cada reunión.
¿Qué lenguaje de desarrollo es mejor C# o Visual Basic?
Y aunque la pregunta no tiene una respuesta concluyente, ya que cada quien tiene su punto de vista al respecto. Casi siempre se llega a un punto de acuerdo.
El lenguaje que cada quien debe usar es aquel que lo haga mas productivo.
Ya que al final debajo de la piel todos somos iguales o lo que es lo mismo detrás del lenguaje de programación todo es Lenguaje Intermedio de Microsoft. (MSIL)
Y entonces me he dado a la tarea de convertir a una hermano Visualero a C #. Y precisamente ese hermano del que les hablo es un servidor.
Y para responder a todos aquellos que se pregunten si me gusta la tarea de martir, la respuesta es por supuesto que no (eso se lo dejamos a AMLO). El punto es que he encontrado en estas ultimas semanas mucha mas información en C# que para Visual Basic y poco a poco me doy cuenta que por mucho esfuerzo que hace microsoft para implementar todas las caracteristicas que genera para C# en Visual Basic. Estas nunca estan disponibles al mismo tiempo en las dos plataformas. Y en el peor de los casos hay algunas caracteristicas que ni siquiera tienen un simil.
Y bueno platicando con el buen Octavio Telis sobre el camino que deberia seguir el migrante Visualero a C# (como si C# fuera la tierra prometida). El me dio una idea muy buena que utilizo para esta primera cronica.
Y su recomendación inicial fue quita el Namespace Microsoft.VisualBasic de las importaciones que estan el las propiedades del proyecto.
Para empezar escogi un proyecto ya viejo, de esos que realizamos cuando recien nos cambiamos de Visual 6 a .NET para identificar el impacto que tendria quitar el Namespace.
Lo primero que encontre fue una vieja función que en Visual Basic 6 se usaba todo el tiempo. La función MsgBox. La cual fue substituida por la Clase MessageBox del Namespace System.Windows.Forms.
Esta clase MessageBox es mucho mas poderosa que la función msgbox ya que te permite personalizar el cuadro de dialogo que le vas a mostrar al usuario. Permitiendote indicar que botones se van a mostrar, cual de ellos es el predeterminado, que icono va a contener el cuadro de mensaje, entre otras muchas caracteristicas mas.
Pero vamos ejemplificando los cambios
Microsoft.VisualBasic
MsgBox("Hola Mundo",
Microsoft.VisualBasic.MsgBoxStyle.OKOnly,
"Pantalla Ejemplo")
Visual Basic .NET
MessageBox.Show("Hola Mundo",
"Pantalla Ejemplo",
MessageBoxButtons.OK)
Visual C#
MessageBox.Show("Hola Mundo",
"Pantalla Ejemplo",
MessageBoxButtons.OK);
El segundo impacto que encontre en este código fue con todas las funciones que comprueban si un objeto es de un tipo numerico o tipo fecha. Como por ejemplo podemos poner las funciones isNumeric, isDate.
La solución equivalente que encontramos de estas funciones fue el metodo tryparse el cual es como el metodo parse el cual tiene la función de converir una cadena a otro tipo especifico, la diferencia entre el metodo parse y el metodo tryparse es que el primero si al momento de realizar la traducción de un tipo al otro falla, el metodo te arrojara una excepción. En cambio la función tryparse te devuelve un booleano indicandote si pudo o no realizar el parseo y el dato resultante te lo devuelve en la variable por referencia que le pones en los parametros.
Microsoft.VisualBasic
if isnumeric(Valor) then
Visual Basic .NET 2003
If Double.TryParse(Valor,
Globalization.NumberStyles.Any,
Globalization.CultureInfo.CurrentCulture,
ValorOut) Then
Visual C# 2003
if (Double.TryParse(Valor,
System.Globalization.NumberStyles.Any,
System.Globalization.CultureInfo.CurrentCulture,
out ValorOut))
Ahora en VisualStudio 2005 es un mas facil de relizar este TryParse
Visual Basic .NET 2005
If Double.TryParse(Valor, ValorOut) Then
Visual C# 2005
if (Double.TryParse(Valor,out ValorOut ))
Un asunto muy interesante a comentar es el hecho que Visual C# es Case Sensitive, por lo cual exige que cuando uno se refiere a una variable esta se escrita de la misma manera en la que se escribio a la hora de definirla. Que bonito es acordarse de los viejos desarrollos de C en la escuela.
Mientras realizabamos estos ejemplos nos topamos con la necesidad de mandar un mensaje utilizando la clase MessageBox y el metodo show. Para mostrar el dato contenido en la Variable ValorOut que es de tipo double.
En Visual Basic lo hicimos de esta manera:
MessageBox.Show(ValorOut)
En Visual C# pense que seria igual y lo escribi de esta manera:
MessageBox.Show(ValorOut);
Pero entonces me mando un error al compilar. Simplemente anunciandome que lo que estaba esperando era una valor de texto y por lo tanto no aceptaba este valor tipo double. Gracias al monton de horas que me he pasado ya corrigiendo código en los grupos de noticias me imagine lo que estaba sucediendo y es lo siguiente. Si lo que espera es texto entonces transformo el valor de double a texto gracias al metodo .ToString()
Y por lo tanto el código corregido quedo como sigue:
MessageBox.Show(ValorOut.ToString());
Bueno eso es todo por hoy le seguimos la siguiente semana.
Saludos
Aqui les dejo las ligas de donde saque algunas ideas sobre los que les he estado mencionando.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdoubleclasstryparsetopic.asp
http://www.thescarms.com/dotnet/IsNumeric.asp
http://dotnetjunkies.com/WebLog/warstar/archive/2004/04/22/11960.aspx
http://www.tangiblesoftwaresolutions.com/Articles/CSharp%20Equivalent%20to%20IsNumeric.htm
Un día leyendo en los comentarios de mi blog, empecé a ver varias entradas de PauloSay. Al menos así firma Paulo Arancibia que es uno de los podescuchas más destacados que tengo.
Hoy después de haber leído durante varios días su blog y también después de haber tenido algo de comunicación con el por medio del mió. Me he enterado que ha sacado un WebCast el cual ya he revisado y esta buenísimo.
Así es que he dedicado esta entrada con el único fin de acercarles las ligas para que puedan ver este WebCast.
Espero lo disfruten tanto como yo lo disfrute.
El viernes pasado se realizo la segunda reunión de la comunidad que se realiza este año.
En esta ocasión Guillermo Morales se encargo de presentar el tema de Desarrollo de Sitios Web Altamente Interactivos con ASP.net y Atlas.
Si bien es un tema del cual he visto muchos ejemplos, fue hasta ahora que tuve la oportunidad de ver un ejercicio que pasara del clásico ejemplo de Google y nos mostrara como van a interactuar los Data Grids con otras tecnologías que nos permitiran Insertar, Borrar y Actualizar sin necesidad de realizar postbacks con el servidor. Y si bien he visto muy buenos ejemplos como el que expone Carlos Madrigal en su blog cuando habla del Blog Roll. Fue hasta esta reunión en el que observe un ejercicio mas claro de cómo será Atlas en nuestras aplicaciones futuras..
Por lo que Guillermo se llevo un 10 en esta ocasión.
Luego le siguió el buen Octavio Telis el cual hablo de Clases Genéricas. Un tema algo complejo de explicar, pero al final fue domado por el buen Octavio, que es experto en explicar como trabajan estas nuevas características del framework. Y ya para finalizar el buen Héctor Obregón nos presento como se podrán integrar los Windows Forms con los objetos de Windows Presentation Fundation. Cuando en una sola aplicación se requieran utilizar en un solo entorno las dos tecnologías.
Y bueno pues ya para finalizar se agenda la siguiente reunión de la Comunidad para el ultimo Viernes del mes de Mayo que es el día 26.
Espero verlos por ahí.
Sin mas les envió un cordial saludo.