En algún momento nos puede ser práctico obtener la versión de un ensamblado, por ejemplo para un formulario “Acerca de”. Si no sabes qué es un ensamblado te recomiendo esta lectura sobre dominio de aplicaciones y ensamblados que está disponible en la MSDN.
El código para averiguar esto es muy simple tan solo hay que hacer
string appName = Assembly.GetAssembly(this.GetType()).Location;
AssemblyName assemblyName = AssemblyName.GetAssemblyName(appName);
string message = assemblyName.Name + " - " + assemblyName.Version + System.Environment.NewLine;
MessageBox.Show(message);
Si investigamos un poco, veremos que no es complicado averiguar la versión de todos los ensamblados que usa nuestra aplicación. Hemos de tener en cuenta que son lo que “usa” y no los que referencia, ya que el compilador, se encarga de eliminar las referencias a los ensamblados que no usamos. El código es el siguiente:
AssemblyName[] assemblyNames = Assembly.GetEntryAssembly().GetReferencedAssemblies();
string message = string.Empty;
foreach (AssemblyName assemblyName in assemblyNames)
{
message += assemblyName.Name + " - " + assemblyName.Version + System.Environment.NewLine;
}
MessageBox.Show(message);
Saludos y hasta la próxima.
Categorías: .NET Framework
Etiquetado: assembly, assembly version, c#, version
En algunos entornos de producción puede ser práctico notificar por correo electrónico las excepciones que se produzcan en nuestra aplicación. Para hacer esto podemos crear un simple método estático como el siguiente
public class Log
{
public static void ExceptionToEmail(string host, int port, string userName, string password, string from, string to, string subject, Exception ex)
{
string body =
"Type: Exception." + System.Environment.NewLine +
"Date: " + DateTime.Now.ToString() + System.Environment.NewLine +
"Message: " + ex.Message + System.Environment.NewLine +
"Source" + ex.Source + System.Environment.NewLine +
"StackTrace: " + ex.StackTrace + System.Environment.NewLine +
"TargetSite: " + ex.TargetSite.ToString() + System.Environment.NewLine +
"ExceptionType: " + ex.GetType().ToString() + System.Environment.NewLine +
"MachineName: " + Environment.MachineName + System.Environment.NewLine +
"OSVersion: " + Environment.OSVersion.ToString() + System.Environment.NewLine +
"UserDomainName: " + Environment.UserDomainName + System.Environment.NewLine +
"UserName: " + Environment.UserName + System.Environment.NewLine +
"Version: " + Environment.Version.ToString();
Log.EventToEmail(host, port, userName, password, from, to, subject, body);
}
public static void EventToEmail(string host, int port, string userName, string password, string from, string to, string subject, string body)
{
try
{
SmtpClient smtpClient = new SmtpClient(host, port);
smtpClient.Credentials = new NetworkCredential(userName, password);
MailMessage mailMessage = new MailMessage(from, to, subject, body);
smtpClient.Send(mailMessage);
}
catch
{
}
}
}
}
Para notificar la excepción tan sólo tendremos que llamar al método ExceptionToEmail con los parámetros de nuestro servidor de correo y la excepción a notificar. Este método, creara un mensaje con la excepción, intentado capturar la mayor información posible.
El método de envio asume que el servidor de correo electrónico necesita un nombre de usuario y contraseña para realizar en envio, aunque con poco esfuerzo podremos modificar este comportamiento.
Categorías: .NET Framework
Etiquetado: c#, correo electronico, email, excepcion, exception
Bueno, tras una pequeña andadura con un dominio propio he decido mudarme a wordpress. Los motivos son varios y creo que no merece la pena explicarlos. Creo que lo verdaderamente importante es que continuaré publicando, aunque he decidido ampliar el aspecto de mi noticias, y en vez de centrarme en el desarrollo web con .NET, ampliaré los post a todo los relacionado con el Framework de .NET o cualquier otra noticia tecnológica de interes.
Categorías: Personal
Etiquetado: Personal