Archive for the ‘ C# ’ Category

Open Source Framework Ext.Net


Ext.NET
Hacía tiempo que quería postear sobre este Framework para .NET, de momento es de los mejores que he encontrado. Tiene una curva de aprendizaje alta al principio, pero una vez que te metes en la cabeza una serie de procesos mecánicos, así como el uso de Stores, todo funciona correctamente y el tiempo de se recorta significativamente. Se pueden obtener efectos como los que podemos ver en la siguiente web de , en el pasado he tenido que usar el escritorio virtual, de momento la única pega en concreto a este componente es la redimensión en una tablet. Espero con el tiempo ir añadiendo más información sobre este Framework.

Anuncios

Crear un excel con una imagen en C#


En primer lugar deberíamos agregar la librería del Excel y luego el using Microsoft.Office.Interop.Excel ;

object oMissing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.Application apl = new Microsoft.Office.Interop.Excel.ApplicationClass();

//Creo mi workbook de Excel
Workbook libro = apl.Workbooks.Open(@”C:\Pruebas\Prueba.xls”, oMissing, oMissing, oMissing, oMissing,oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

//Una hoja que asociaremos al excel anterior.
Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)libro.Sheets[1];

//Imagen a agregar (notese el tamaño 500×450 configurable)
System.Drawing.Image logo1 = System.Drawing.Image.FromFile(@”C:\Pruebas\Prueba.JPG”);
sheet.Shapes.AddPicture(@”C:\Pruebas\Prueba.JPG”, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 1f, 1f, 500, 450);

//Guardamos el archivo
libro.SaveAs(@”C:\Pruebas\PruebaImg.xls”, Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel9795, null, null, false,false,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Microsoft.Office.Interop.Excel.XlSaveConflictResolution.xlLocalSessionChanges, false, null, null, 0);

Envío correos C#


Para enviar un correo facilmente desde C# solo tendremos que agregar el siguiente using System.Net.Mail; y el código que vemos a continuación:

//Creamos Correo
MailMessage correo = new MailMessage();
correo.From = new System.Net.Mail.MailAddress(“correo@correo.com”,”Fulano de tal”);
correo.To.Add(“destinatario@correo.com”);
correo.Subject = “Subject – hola”;
correo.Body = “Body – Hola”;
correo.IsBodyHtml = false;
correo.Priority = System.Net.Mail.MailPriority.Normal;

//SMTP
SmtpClient smtp = new SmtpClient();
smtp.Host = “mi.correo.com”;
smtp.Credentials = new System.Net.NetworkCredential(“usuarioMiCorreo”, “password”);

//Enviar Correo
smtp.Send(correo);

“sgen.exe” exited with code 1


Para solventar este error con vs2005 cuando ejecutamos nuestro proyecto (el cual tiene referencias a servicios web) seguimos los siguientes pasos:
1.- Abrir propiedades del proyecto.
2.- Pestaña Build
3.- Poner “Generate Serialization Assembly” a “Off”

Acceder HtmlInput desde C# (ASP.NET)


Al final las cosa más tonta es lo que nos tiene un buen rato… buscando el error. Por ello y para no olvidarme aquí os muestro el siguiente post:

En primer lugar creamos en el ASP nuestro Input:

<input type=”text”  name=”text_field” id=”text_field”  value=”hola” />

Para llamarlo desde el codebehind, escribimos en C# lo siguiente:

public  string getValue()
{
if (Request.Form.Get(“text_field”) != null)
return Request.Form.Get(“text_field”).ToString();
else
return string.Empty;
}

Si llamamos a getValue() nos debería devolver “Hola”.

Espero que os sirva de ayuda, yo estuve un buen rato, por culpa de no ponerle el name=”text_field”, parece que con el ID no le llega solo… para poder acceder al input, lo cual cabrea bastante porque la especificación de la función pone algo así como acceder a la Key, y ya me dirás que pensarías vosotros, pero yo al menos pensaría en ID y no en el name…

C# – Conversión Hexadecimal.


Nunca me acuerdo de estas cosas porque solo las utilizo cada mucho tiempo… así que más que una post innovador sea más un recordatorio de como hacer dichas conversiones de hexadecimal a decimal y viceversa.

byte decimal = 64;

//hexadecimal tendrá el valor 40

hexadecimal = byte.Parse( String.Format(“{0 : x}”, decimal));

byte hexadecimal = 40;

//decimal tendrá el valor 64

decimal = Convert.ToByte(“0x” + hexadecimal, 16);

Espero que os sirva de ayuda…

Error Servicio web – WebMethodAttribute


Me he creado algunos constructores de clase en mi servicio web, con la siguiente estructura muy básica:

[WebMethod(Description = “Descripción Constructor Objeto.”)]

public tipoObjeto NombreObjeto()
{
return new tipoObjeto();
}

Recibo el siguiente mensaje de error:

The XML element ‘Object’ from namespace ‘http://tempuri.org/&#8217; references a method and a type. Change the method’s message name using WebMethodAttribute or change the type’s root element using the XmlRootAttribute.”

Para solucionarlo aquí estaría el código para ponerselo de cabecera:

[WebMethodAttribute(Description = “Descripción Constructor Objeto.”)]
[return: XmlRootAttribute(Namespace = “http://www.test.com/&#8221;,
ElementName = “NombreObjeto”, DataType = “tipoObjeto”,IsNullable = false)]