viernes 10 de julio de 2009

Uso de las Sentencias SQL Selec, Insert, Update y Delete en VIsual Basic .NET

A petición de unos jóvenes que programan en Visual Basic .NET he publicado el siguiente post donde explico detalladamente estas operaciones básicas hacia una Base de Datos.
Se supone que ya se tiene creado un proyecto en donde vamos agregar los elementos que se describen a continuación.
1. Se agrega un archivo de Clase de Visual Basis .NET lo guardamos con cualquier nombre (en mi caso lo nombre AccesoBd.vb)
2. Dentro de esa clase de VB.net copiamos los siguientes Namespaces (Librerias de Clases) y lo pegamos en la parte de arriba de nuestro archivo de clase.
Imports System
Imports System.Diagnostics
Imports System.Data
Imports System.Data.Odbc
3. Dentro de nuestro cuerpo de la clase copiamos el siguiente código, que son los métodos que vamos a utilizar desde cualquier formulario que hagamos.
Dim conexion As New OdbcConnection("dsn=bd;")
Public Sub conectar()
Try
conexion.Open()
Catch ex As Exception
Trace.WriteLine(ex.ToString())
End Try
End Sub
Public Sub desconectar()
Try
conexion.Close()
Catch ex As Exception
Trace.WriteLine(ex.ToString())
End Try
End Sub
Public Function consultaDS(ByVal sqlCad As String) As DataSet
Dim ds As New DataSet()
Try
Dim adaptador As New OdbcDataAdapter(sqlCad, conexion)
adaptador.Fill(ds)
Catch ex As Exception
Trace.WriteLine(ex.ToString())
End Try
Return ds
End Function
Public Function EjecutarSql(ByVal cadenaSQL As String) As OdbcCommand
Dim orden As New OdbcCommand(cadenaSQL, conexion)
Return orden
End Function

domingo 28 de junio de 2009

Utilizando Visual Studio 2008, Framework 3.5

Recomiento ampliamente utilizar Visual Studio 2008 y mucho mas recomendable para los que trabajan con Windows Vista, el 2008 no es mas pesado, no alenta la computadora porque en lo personal tengo 4 meses trabajando con el VS 2008 y se siente mas estabilidad, mejor entorno y lo mejor de todo que tambien trabaja sin nigún inconveniente en Windows XP.

Con respecto a la programación lo único que difiere es que en el paquete se eliminó ya el VJ#.net, es lo mejor que hicieron ya que ese lenguaje derivado de Java y C pues no ha tenido mucho auge aun desde cuando se llamaba J++ en VS Studio 6.0.


Por lo demás tenemos los lenguajes que hemos utilizado desde el VS 2002 C#.net, VB.net y C++.net, así tambien como el VWeb Developer para programación de Sitios en ASP.net en la versión 3.0 de este lenguaje.


Por este lado de las herramientas de desarrollo que crea Microsoft osea lo que es el Visual Studio y en particular esta versión no tengo queja alguna, lo recomiento ampliamente, migren a la versión 2008.
A continuación enlisto una de las tantas mejoras que trae:
  • Visual Studio 2008 permite incorporar características del nuevo Windows Presentation Foundation sin dificultad tanto en los formularios de Windows existentes como en los nuevos. Ahora es posible actualizar el estilo visual de las aplicaciones al de Windows Vista debido a las mejoras en Microsoft Foundation Class Library (MFC) y Visual C++. Visual Studio 2008 permite mejorar la interoperabilidad entre código nativo y código manejado por .NET. Esta integración más profunda simplificará el trabajo de diseño y codificación.
  • LINQ (Language Integrated Query) es un nuevo conjunto de herramientas diseñado para reducir la complejidad del acceso a Base de Datos, a través de extensiones para C++ y Visual Basic así como para Microsoft .NET Framework. Permite filtrar, enumerar, y crear proyecciones de muchos tipos y colecciones de datos utilizando todos la misma sintaxis, prescindiendo del uso de lenguajes especializados como SQL o XPath.
  • Visual Studio 2008 ahora permite la creación de soluciones multiplataforma adaptadas para funcionar con las diferentes versiones de .Net Framework: 2.0. (Incluido con Visual Studio 2005), 3.0 (incluido en Windows Vista) y 3.5 (incluido con Visual Studio 2008).
  • .NET 3.5 incluye biblioteca ASP.NET AJAX para desarrollar aplicaciones web más eficientes, interactivas y altamente personalizadas que funcionen para todos los navegadores más populares y utilicen las últimas tecnologías y herramientas Web, incluyendo Silverlight y Popfly.

viernes 26 de junio de 2009

El Objeto TimeSpan en C#.net

Un objeto TimeSpan representa un intervalo de tiempo medido como número positivo o negativo de días, horas, minutos, segundos y fracciones de segundo. La unidad de tiempo más grande utilizada para medir la duración es un día. Los intervalos de tiempo se miden en días por cuestión de coherencia, ya que el número de días en unidades de tiempo mayores, como meses y años, varía.
Veamos un pequeño ejemplo en que queremos medir el tiempo que tarda en ejecutarse cierto proceso:
DateTime inicio = DateTime.Now;
// EJECUCIÓN de un proceso
DateTime final = DateTime.Now;
TimeSpan duracion = final - inicio;
double segundosTotales = duracion.TotalSeconds;
int segundos = duracion.Seconds;
Como vemos, se recoge el momento de inicio, se ejecuta el proceso (por ejemplo mil accesos a una base de datos) y se recoge el final. Calculamos la diferencia, que nos da el resultado en TimeSpan, y almacenamos en una variable double el total de segundos transcurridos, y en una variable int los segundos... pero, ¿Cuál es la diferencia?Por ejemplo, si el proceso ha tardado en ejecutarse un minuto y medio, TotalSeconds nos devuelve el total de los segundos, es decir 90, mientras que Seconds nos devuelve los segundos que veríamos, por ejemplo, en un reloj digital, es decir 30.
Esto es muy importante saberlo, y lo mismo sucede con Days - TotalDays, Minutes - TotalMinutes y el resto de unidades de medida... personalmente tuve algunos problemas con esto, pues yo quería averiguar los segundos totales y le pedía duracion.Seconds... y errores como éste son muy difíciles de localizar.
Para finalizar sólo decir que el TimeSpan se puede sumar y restar entre sí muy fácilmente con los típicos operadores '+' y '-' o con sus funciones Add y Substract.

domingo 24 de mayo de 2009

Comparando Java, ASP.NET y PHP (Lenguajes de Programación que se ejecutan del lado del Servidor)

  • Sintaxis: Java es el que mejor sintaxis tiene, PHP aún usa '::' y '->' y algunas funciones podrían ser usadas dentro de los objetos y no como procedimientos. Para ASP.NET lo más sencillo es VB.NET.
  • Curva de aprendizaje: PHP es el más sencillo, aunque a mí me pasa que siempre tengo que estar mirando en algunas funciones el orden de los parámetros porque a veces no siguen la misma lógica. ASP.NET también es bastante sencillo y J2EE el más complicado de aprender.
  • Velocidad de desarrollo: ASP.NET es el más rápido, debido a la cantidad de componentes que tiene que te hacen todo el trabajo. PHP es rápido si se usa algún framework. J2EE es el más lento.
  • Plataforma: PHP trabaja mejor en LAMP, aunque funciona también en otras plataformas, ASP.NET es Windows y J2EE trabaja bien en cualquier plataforma.
  • Base de datos: normalmente es MySQL para PHP, Oracle para J2EE y MSSQL para ASP.NET.
  • IDE (Integrated Development Environments): ASP.NET tiene Visual Studio que es una gran aplicación, pero de coste elevado. J2EE tiene varias herramientas comerciales, pero Eclipse es la mejor (incluso alguna de las comerciales como WASD está basada en Eclipse). Para PHP no existe una que destaque sobre las demás, aunque también puedes usar Eclipse.
  • Soporte orientado a objetos: J2EE y ASP.NET son los mejores, aunque PHP ha mejorado en las últimas versiones.
  • Seguridad: J2EE parece el más seguro, aunque PHP tiene mala fama, pero es debido sobre todo a los desarrolladores, no al lenguaje de programación. ASP.NET tiene también mala fama debido a fallos de seguridad debidos a Windows.
  • Rendimiento: Suele ganar PHP en cuestión de velocidad y recursos. J2EE es más pesado, parecido a ASP.NET.
  • Servidor Web: ASP.NET solo funciona con IIS, PHP y J2EE tiene versiones comerciales y open source.
  • Librerías y frameworks: Todos tiene muchas librerías y frameworks disponibles, siendo para PHP y J2EE la mayoría gratuitas y open source.
  • Soporte y comunidad: para ASP.NET la mayoría de los foros, grupos de usuarios y comunidades de desarrolladores están manejados por Microsoft, mientras que para PHP y J2EE existen muchos grupos independientes.
  • Coste: PHP es la alternativa totalmente gratuita, ASP.NET tiene licencias bastante caras, mientras que J2EE puede desarrollarse con herramientas gratuitas y de pago.

domingo 10 de mayo de 2009

Visual Studio 2010 y .Net Framework 4.0

Dentro lo nuevo que trae tenemos:
    • Soporte a multiples diagramas incluyendo UML

    • Un nuevo Architect Explorer

    • Inclusión de caraterísticas enfocadas a metodologías ágiles

    • Con el nuevo Test Impact View ahora podremos identificar y ejecutar solo aquellas pruebas que son afectadas con un cambio en el código.

    • La opción de que los testers guarden la información de bugs incluyendo características del SO, estado de la memoria e incluso de una captura de video de la pantalla durante la ejecución de la prueba fallida, con la posibilidad de que el desarrollador pueda reproducir el error con toda la información posible

    • Se han unificado las versiones Develpment y Database en una sola

viernes 10 de abril de 2009

Enviar Correo Electrónico con CSharp.net

Es posible enviar un correo electrónico mediante C#, mediante las clases System.Net, System.Net.Mail y System.Net.Mime

En el siguiente ejemplo se muestra un formulario que envia un simple correo electrónico a través del Servidor SMTP de GMAIL y se le adjunta una imagen ".jpg"
Clases que se deben de declarar:
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
//Se crea un Objeto llamado "msg" de la
clase
"MailMessage"

System.Net.Mail.MailMessage msg = new
System.Net.Mail.MailMessage();


//Se establece el destinatario

msg.To.Add("adrianmevi@hotmail.com");


/*Se establece el remitente, asi como el nombre que aparecerá en la

bandeja de entrada, así como el formato de codificación
*/

msg.From = new MailAddress("adrianmevi@gmail.com",
"Soy adry", System.Text.Encoding.UTF8);


//Se establece el asunto del mail

msg.Subject = "Prueba de envío de correo desde Cuenta Gmail en c# by
adryan";


//Formato de codificación del Asunto

msg.SubjectEncoding =
System.Text.Encoding.UTF8;


//Se establece el cuerpo del mail
msg.Body
= "Si veo este correo en una cuenta mía esque si se pudo jjejejejej !!!! by
adryan";


//Se establece la
codificación del Cuerpo

msg.BodyEncoding =
System.Text.Encoding.Unicode;


//Se indica si al cuerpo del mail, se interpretara como código
HTMl

msg.IsBodyHtml =
false;


//Se establece la cadena de texto con la ubicación del archivo a
adjuntar
string
file =
"d:/foto.jpg";

//Se adjunta el archivo

Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);

ContentDisposition disposition = data.ContentDisposition;

disposition.CreationDate = System.IO.File.GetCreationTime(file);

disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);

disposition.ReadDate = System.IO.File.GetLastAccessTime(file);

msg.Attachments.Add(data);


//Se prepara el envio del mail creando un objeto de tipo
SmtpClient

SmtpClient client = new
SmtpClient();


//Se establecen las credenciales para enviar el mail, muy importante
autentificarse con la cuenta de correo y la contraseña

client.Credentials = new System.Net.NetworkCredential("adrianmevi@gmail.com",
"*************");


//Se establece el puerto de envio

client.Port =
587;


//Se establece el servidor SMTP, en este caso GMAIL

client.Host =
"smtp.gmail.com";

//Seguridad SSL si o
no

client.EnableSsl = true;


//Se envia el Mail controlando la
ecepción

try

{

client.Send(msg);

}
catch
(System.Net.Mail.SmtpException
ex)

{

MessageBox.Show(ex.Message);

}
Este código puede ir en el evento clic de un botón, en el evento load de un form o en donde se requiera colocarlo.
Como se menciono antes, es necesario contar con las clases indicadas, así como el archivo a adjuntar. Acerca de las credenciales, es importante tener una cuenta de correo electrónico en el cual podamos utilizar su servidor SMTP. GMAIL lo permite, pero parece ser que Hotmail no. Habría que probar con algún otro servidor de correo, como sería nuestro proveedor de internet, el del trabajo, etc.

domingo 5 de abril de 2009

Mostrar un MessageBox en una página ASP.net

Si es posible mostrar un MessageBox al estilo de un Form de Windows, el único inconveniente esque el mensaje aparece como un elemento externo, si no me entiendes hasta este momento lo entenderás al fina, los pasos son sencillos y aquí te lo pongo (Estos pasos que coloco son mi lógica de programación si alguien puede mejorarlo y lo publica en otro sitio de internet estaría muy agradecido que como referencia coloque mi dirección web).

Antes que nada se supone que ya saben crear un nuevo sitio en Visual Studio 2005 y que ya se tiene agregado un form por lo menos el "Default.aspx".

Se inserta un ASPBUTTON dentro del form (este es solo un ejemplo sencillo) le configuramos las propiedaades que nosotros queramos, yo le cambie el text a "Mostrar Mensaje" y el id del botón a "btnMostrarMensaje".

Le damos clic derecho en el explorador de soluciones y elegimos la opción "Agregar Referencia".

Nos aparece la siguiente Ventana; y elegimos el ensamblado "System.Windows.Forms" que es el contiene el espacio de nombres (namespace) System.Windows.Forms el utilizado en los programas de "WindowsForms", cosa muy diferente en los programas con ASP.net que son "WebForms".

Lo seleccionamos y damos clic en "Aceptar", hasta ahora solo hemos agregado el ensamblado.
En la página de código agregamos el "Espacio de Nombres" "System.Windows.Forms" declarándolo en el encabezado de Namespaces.

En el evento "clic" del Botón escribimos el código correspondiente para mostrar un mensaje con el objeto "Message" y su método "Show()" este ejemplo está en c#.net pero es lo mismo para VB.net.

Listo!!!, ya tienes tu mensaje emergente de Windows y NO es un JavaScript!!!, ejecútalo y compruebalo, te aparederá de la siguiente forma:
¿Ven el inconveniente? El mesaje ocupa un lugar en la barra de tareas independiente de la página. Si alguien lo mejora que me lo haga saber, saludos a todos.