miércoles, febrero 17, 2010

+60 librerias .net que todo desarrollador debería conocer

Todo buen desarrollador nunca sabe que volver a inventar la rueda, sobre todo si hay software por ahí que ha sido probado por otros, y tiene una trayectoria establecida. Como desarrollador utilizando. NET Framework, he encontrado algunas de estas bibliotecas de valor incalculable, así que voy a compartir algunas de las otras dev que hay ahí fuera con una breve reseña sobre como utilizarlas.

Yedda Twitter Library.


URL: http://devblog.yedda.com/index.php/twitter-c-library/

He utilizado este en una serie de proyectos de Twitter muy sencillos, donde era necesaria para enviar una actualización. Como dice su sitio mas que una libreria real es un wrapper para la API de Twitter. He aquí cómo usarla.
[sourcecode lang="vb"]
Dim objYedda As New Yedda.Twitter
Dim status as String
Dim strTwitterUser as String = “username”
Dim strTwitterPassword as String = “password”
status = “Hello World”
objYedda.Update(strTwitterUser, strTwitterPassword, strStatus, Yedda.Twitter.OutputFormatType.RSS)
[/sourcecode]

Este pequeño trozo de código actualizará tu estado de Twitter.

FileHelpers Library


URL: http://filehelpers.sourceforge.net/

La librería FileHelpers fue creada para evitar que los desarrolladores parseen sus CSVs a mano. Si estas haciendo cualquier tipo de importación y exportación dentro de su aplicación con el formato CSV para obtener los datos, no busques más.

Puedes escribir un archivo de texto CSV  simplemente mediante una clase que le asigna un tipo de datos para cada registro. De esta forma mejora la consistencia y la fiabilidad de la escritura y lectura de CSV.

Primero definimos la clase de la estructura...
[sourcecode lang="vb"]
_
Public Class Product
Public ProductName As String
Public ProductCode As Integer
etc..
End Class
[/sourcecode]
Añadimos una referencia a FileHelper.dll, leemos del archivo y hacemos un cast a un array de objetos producto.
[sourcecode lang="vb"]
Dim engine As New FileHelperEngine(GetType(Product))
Dim myProduct As Product() = DirectCast(engine.ReadFile(“product.txt”), Product())
[/sourcecode]
Trabajamos con el array de productos.
[sourcecode lang="vb"]
For Each pro As Product In myProduct)
Response.Write(pro.ProductName)
Next
[/sourcecode]

Elmah


URL: http://code.google.com/p/elmah/

Elmah es un significa (en inglés): Error Logging Module And Handlers. Es un sistema de conectores para la gestión de errores en .Net. Captura las excepciones lanzadas y no controladas dentro del ámbito de tu aplicación, las loguea, y permite navegar por la pila de llamadas, sin mostrar el error a los usuarios. No tienes la perdida de velocidad por activar el modo debug y puedes resolver problemas directamente en un servidor en producción.

Elmah trabaja como un módulo HTTP, no requiere apenas esfuerzo de configuración. Toda la configuración se realiza en un fichero de configuracion, donde se indica donde se quiere loguear los errores, base de datos, memoria o fichero de texto. Incluso puedes recibir los errores por RSS.

Log4Net


URL: http://logging.apache.org/log4net/

Log4Net es un port de la famosa libreria de log para Java Log4J.

Con Log4net es posible sacar logs en ejecución sin modificar el binario de la aplicación y sin penalización de rendimiento. Varios niveles de loggin se pueden fijar en el programa, para determinar rapidamente donde ocurren los errores críticos y donde las advertencias que pueden ser ignoradas.

Permite el mismo nivel de control y formatos de log que la libreria anterior. Puedes enviar el mensaje a la base de datos, a un fichero de texto o a un puerto TCP. Además puedes desarrollar un conector personalizado para enviar los mensajes donde quieras (cuenta twitter por ejemplo con la libreria anterior). Se configura en el ficheor web.config.

[sourcecode lang="vb"]
Imports log4net
Imports log4net.Config
Private Shared log As log4net.ILog
Public Sub Page_Load(Byval s as Object, Byval e As EventArgs) Handles MyBase.Load
log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
BasicConfigurator.Configure()
log.Debug(“Debug Message”)
log.Warn(“Warning Message”)
log.Fatal(“Fatal Message”)
End Sub
[/sourcecode]

Enterprise DT FTP Library


URL: http://www.enterprisedt.com/products/edtftpnet/overview.html

Enterprise DT es una pequeña pero potente libreria FTP, permite realizar todas las tareas posibles con un FTP de manera sencilla. Funciona tanto en web como en web, es un port de una libreria java.

Como vemos en el código su uso es extremadamente sencillo:
[sourcecode lang="vb"]
Dim ftp as FTPConnection = new FTPConnection()
ftpConnection.ServerAddress = “myserver”
ftpConnection.UserName = userName
ftpConnection.Password = password
ftpConnection.Connect()
ftpConnection.UploadFile(localFilePath, remoteFileName)
ftp.Close()
[/sourcecode]

HtmlAgilityPack


URL: http://www.codeplex.com/htmlagilitypack

La libreria Html Agility Pack is sirve para parsear HTML. Es particularmente util si necesitas obtener un documento HTML de una web en código y quieres obtener el arbol DOM para trabajar con el desde tu código. Soporta XPATH y XSLT para analizar el HTML para extraer el texto. No es necesario conocer estas dos tecnologías para trabajar con la libreria.
[sourcecode lang="vb"]
Dim hw As New HtmlAgilityPack.HtmlWeb
Dim doc As HtmlAgilityPack.HtmlDocument
doc = hw.Load(“http://blog.webdistortion.com”)
For Each s As HtmlAgilityPack.HtmlNode In doc.DocumentNode.SelectNodes(“//a[@href]“)
Dim att As HtmlAgilityPack.HtmlAttribute = s.Attributes(“href”)
Response.Write(att.Value & vbCrLf)
Next
[/sourcecode]

OpenAuth Library


URL: http://code.google.com/p/oauth-dot-net/

Open Auth, como su nombre indica, es una forma de autenticación cada vez mas utilizada. Esta libreria te permite implementarla en tu aplicación rapidamente. Google, Yahoo, Netflix y Twitter permiten interaccionar mediante OpenAuth. Esta libreria requiere más código que las anteriores.

Merece la pena ver estos enlaces:

  • Shannon Whitley ofrece este ejemplo: Code | Live demo

  • Ejemplos de Daniel Crenna:


OAuth Specificacion

The OAuth Workflow

OAuth Walkthrough

Microsoft AntiXSS library


URL: http://bit.ly/toCrt

Este es uno de los packs de seguridad que ofrece microsoft para ayudar a los desarrolladores de .NET a generar código mas seguro. Esencialmente es una libreria de codificación diseñada para proteger las aplicaciones web en ASP.NET de los ataques XSS.

Tan sencillo como utilizar estos métodos con las cadenas no seguras:

  1. Microsoft.Security.Application.AntiXss.HtmlEncode(strNotrust)

  2. Microsoft.Security.Application.AntiXss.JavaScriptEncode(strNotrust)


C5 Collections – Collections for .NET


URL: http://www.itu.dk/research/c5/

C5 ofrece funcionalidad y estructuras de datos no estandar. Merece la pena echarle un ojo antes de implementar nuestros propios tipos de datos.

Menciones honorables (librerias para multitud de propósitos)


Dependency Injection/Inversion of Control

Logging

Compresión

Ajax

Mapeo de Datos


ORM

Gráficos

Creador de PDF Creators/Generadores

Pruebas unitarias

Pruebas automatizadas web

Reescritura de URLs

Controles

Sin clasificar


Fuente: http://blog.webdistortion.com/2010/02/16/60-net-libraries-every-developer-should-know-about/

2 comentarios:

Fran dijo...

Increible recopilación de librerías, con esto ASP.net es más digestible.
Gracias por un arduo trabajo

Kenny dijo...

Tras un rapido repaso yo tambien añadiria MEF y PRISM de microsoft para UIs.
Saludos