Alain López Jiménez

sábado, 6 de marzo de 2010

Leer Feed (RSS y ATOM) en .NET

Hola.

Hoy me levante con una locura en la cabeza, y para implementarla necesitaba leer RSS.

Pues como saben los RSS son XML, en fin que se puede implementar un código para leer este formato y listo.

Cuando más dispuesto estaba para empezar, me da por buscar y encuentro la clase SyndicationFeed que representa un objeto de fuente de nivel superior, feed en Atom 1.0 y rss en RSS 2.0.

Pues aquí les dejo el mini-ejemplo:

XmlReader reader = XmlReader.Create("http://localhost:8000/diagnostics/feed/?format=rss");

SyndicationFeed feed = SyndicationFeed.Load(reader);
foreach (SyndicationItem i in feed.Items.Reverse())
{
      //Hacer lo que deseen con i.
}

Saludos :)

viernes, 18 de diciembre de 2009

Ejemplo de Formulario de Contacto ASP.NET

Hola.

Voy a poner el código que siempre uso para los formularios de contactos en los sitios que hago. Ejemplo: http://www.addevolution.es/Contact.aspx

En el web.config introducimos el siguiente código (dentro de configuration):

Nota: Yo uso como servidor de envio de correos SMTP el live.com. Esta cuenta de correo que uno pone aquí es el que envía los emails.




Ahora bien, luego de diseñar nuestro formulario de contacto (cosa que no ejemplificaré), programamos el evento OnClick="SendButton_Click" de nuestro botón de Enviar Email. El código seria algo como:

protected void SendButton_Click(object sender, EventArgs e)
    {
        try
        {
            const string ToAddress = "xxxx@ymail.com"; // Este sería el email a donde envio los correos.

            MailMessage email = new MailMessage(EmailTextBox.Text, ToAddress);
            email.Subject = SubjectTextBox.Text;

            string body = "Company: " + CompanyTextBox.Text + "\n Name: " + NameTextBox.Text + "\n Address: " + AddressTextBox.Text;

            email.Body = body + "\n" + BodyTextBox.Text;
            email.IsBodyHtml = false;

            SmtpClient smtp = new SmtpClient();
            smtp.EnableSsl = true;

            smtp.Send(email);
        }
        catch
        {
            //Tratamiento si sucede algún error.
            return;
        }
        //Tratamiento si se ha enviado el emial.
    }

Espero que les sirva mi código para un formulario de contacto en asp.net.

Saludos :)

Etiquetas:

martes, 20 de octubre de 2009

Agregar un sitio a IIS7

Mi caso particular:
- SO: Vista Home Premiun

1. Abrimos el IIS7.
2. Agregar Aplicación.


3. Añadir un Alias y seleccionar la ruta de acceso física. En este caso un WebSites de Visual Studio.


4. Probar configuración...


Si le da el aviso como la imagen anterior que "No se puede verificar el acceso a la ruta de acceso (....)"
Lo que tiene que hacer es en el formulario de Agregar Directorio Virtual seleccionar Conectar como... y establecer las credenciales de un usuario con acceso (el administrador por ejemplo). Ver siguiente figura:


5. Examinar.

Puede que le de un "Error de servidor en la aplicación", de tipo Acceso Denegado y número Mensaje de error 401.3.

Para arreglar este error:

1. Editar Permisos

2. Elegir pestaña Seguridad
2.1. Opciones Avanzadas
2.2. Seleccionar Editar en la pestaña Permisos
2.3. Seleccionar Agregar...
2.4. Seleccionar Avanzadas...


2.5 Buscar Ahora
2.5.1 Seleccionar IIS_IUSRS
2.5.2 Aceptar


2.4.1 Aceptar

2.6. Entrada de permisos
2.6.1 Seleccionar Permitir - Control Total

Aceptar todos los formularios.

Volver a examinar y listo.

Saludos :D

Etiquetas: ,

viernes, 9 de octubre de 2009

Url Rewriting

Si han encontrado este post es que andan buscando como reescribir una URL, así que ya sabrán las ventajas de lograr este cometido, aquí explicaré como fueron mis primeros pasos.

Para empezar me documente en:
Un documento más práctico que consulte fue:
La 1ra conclusión es que existen módulos que hay que instalar en el IIS y también hay librerías que con incluirlas en tu proyecto es suficiente.

Las librerías que probé fueron UrlRewriting.net y UrlRewriter.net (para IIS6 y IIS7) y van de maravilla en los exámenes que realice en el localhost, la documentación de ambos está muy completo en sus sitios además que el UrlRewriter.net es la que usan de ejemplo en el 2do documento que recomendé.

Bueno, en mi proyecto al final no tuve que hacer uso de estas librerías, solo fue con carácter educativo los exámenes realizados.

En el hosting donde subí el sitio web tenía instalado el URL Rewrite Module 1.1 para IIS7 http://www.iis.net/extensions/URLRewrite

La duda que me surgió fue:
Si no tengo IIS7 o no tengo instalado el URL Rewrite Module o mi hosting no cuenta con un editor para las reglas (q es lo más probable) como en el ejemplo http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/

¿Dónde puedo definir mis reglas? , ¿Dónde va el código de reescritura en el web.config?


<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Rewrite to services.aspx">
<match url="service(.*)/" />
<action type="Rewrite" url="services.aspx?category=service{R:1}" />

...


Esto se puede comprobar creando una regla mediante el editor como muestra el ejemplo del link anterior, para luego abrir en el Explorador Windows: %SystemDrive%\inetpub\wwwroot\ y ver su web.config: D

¿Solo con definir mis reglas en esa localidad del web.config resuelvo?
Pues sí, no hace falta nada más.

¿Cuándo edito el web.config me dice qué <rewrite> no es un miembro de <system.webServer>?
Pero no se preocupe, agregue su sitio al IIS7(el cual tiene instalado el URL Rewrite Module) y cuando lo abra podrá comprobar que va de maravilla.

Como ven es sencillo el uso de URL Rewrite Module 1.1, y los videos y ayuda están como todo lo de Microsoft. Ahh, las reglas pueden ser expresiones regulares, pero para eso leerse la ayuda: D

Saludos

Etiquetas: , ,

lunes, 31 de agosto de 2009

TINYINT en LINQ to SQL

El problema me ocurrió al tener una tabla (SQL Server Express 2005) cuya primary key es un campo de tipo tinyint autoincrementado. Al insertar mediante un LinqDataSource me salía el siguiente error:

“The primary key column of type 'TinyInt' cannot be generated by the server.”

Buscando en Google encontré que no eran compatibles. Pero ningún ¿Por qué? o posible solución que no fuera cambiar el Data Type.

Al final opté por cambiar a smallint y funciona correctamente, pero me parece muy raro esta incompatibilidad. Asi que le escribi un email a Octavio (MVP de C# y autor del libro "C# 3.0 y LINQ") y a los pocos dias me escribio dandome la siguiente respuesta en su blog, les dejo su enlace:


Como pueden leer ahí la solución es la que yo opté y solo queda seguir el dicho de "ajo y agua" (a jod... y aguantarse) ya que el VS 2010 sigue el mismo problema.

Por último, agradecer a Octavio por su tiempo.

Fin :D

Etiquetas: , ,