8 de agosto de 2012

web.config

Web.config es un archivo basado en XML para almacenar valores de configuración para personalizar y controlar cómo funciona un sitio web creado en ASP.NET, esa es una definición corta y sencilla, no hay porque darle mas vueltas así que empecemos a mostrar lo realmente importante.

Para almacenar valores de configuración en las aplicaciones de escritorio (ya sea VB.NET o C#) se utiliza App.Config, algunos desarrolladores lo utilizan porque piensan es la manera correcta de hacer las cosas, otros porque los jefes se lo imponen, si aquí es la primera vez que escuchas de App.Config entonces te recomiendo este link donde te muestra lo que debes saber con respecto a manejar los valores de una cadena de conexión a SQL desde un app.config http://pabletoreto.blogspot.com/search/label/App.Config

Lo que nos compete aquí es utilizar el Web.Config para manejar nuestra cadena de conexión a una base de datos en SQL, asi que deberemos trabajar con ASP.NET, pero aparte de escoger el lenguaje de programacion viene otra parte igual de importante, que necesitas, un web site o un web application? para nuestro ejemplo no nos importa cual usar, es decir, nos vale, pero para esclarecer algunas dudas aqui dejo este poquito de teoria, por tu parte puedes investigar mas...

Uso de WebSite o Web Application puede aparecer, según los casos, indiferente, por lo que es necesario analizar su entorno, su manera de gestionar el código fuente, versiones y la generación de Build y publicaciones, en mi experiencia con ASP.NET, me di cuenta de que el WebSite ya ha causado algunos problemas en la empresa donde trabajo para las referencias, versiones e implementaciones con Source Safe (a veces incluso la falta de conocimiento).

En un Web Application usted tiene mayor control sobre la configuración, sobre todo porque tenemos las propiedades del proyecto y las propiedades de cada archivo en Visual Studio. Debido a estas propiedades es mejor que se puede trabajar con objetos COM+ (por ejemplo, el establecimiento de Copy Local = true en la referencia). También puede generar build en el modo Debug o Release y su código fuente está organizado en namespaces.

Probablemente, si usted utiliza Visual Studio sólo en casa para proyectos personales pueden acabar gustando el WebSite, pero utilizando en proyectos de gran empresa en la generación de Build y publicación son parte clave del proceso, el Web Application termina siendo la mejor opción.

Bueno, entonces creemos una Web Application asi:


y luego segun sea el lenguaje en que vayas a desarrollar pues seleccionas ese, en mi caso selecciono el C#, ahora también fíjate que para nuestro ejemplo se tienen dos opciones: ASP.NET Web Application y ASP.NET Empty Web Application, usa la que desees, solo ten en cuenta que los nombres son los distintivos de cada aplicacion, en el empty solamente te entregan el Web.Config, tu debes agregar todo lo demás según lo necesites, en el otro caso, se te entregan mas ejemplos para trabajar, ero eso no incube en esta entrada asi que por mi parte selecciono el ASP.NET Empty Web Application 

luego en el Solution Explorer se tiene esto:

Luego, damos doble click sobre el Web.config y escribimos esto, claro qeu es para mi caso particular, tu lo cambias a lo que te interese
<configuration>
<connectionStrings>
    <add name="conex" connectionString="Data
Source=.\LINGONET;Initial Catalog=aspData;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>
Luego para probarlo agregamos un nuevo Webform y a este le agregamos las directivas siguientes:
using System.Data.SqlClient;
using System.Web.Configuration;
un Gridview que en mi caso he llamado gv y sobre el evento Load de nuestro Webform ponemos este codigo
protected void Page_Load(object sender, EventArgs e)
    {
SqlConnection sql = new SqlConnection(WebConfigurationManager.ConnectionStrings["conex"].ConnectionString);
        try
        {      
sql.Open();          
Response.Write("se logro la conexion");
SqlDataAdapter da = new SqlDataAdapter("select * from empleado", sql);
DataTable dt = new DataTable();
            da.Fill(dt);
            gv.DataSource = dt;
            gv.DataBind();
        }
        catch (SqlException ex)
       {
            Response.Write(ex.Message);
        }
        finally {         
sql.Close();
        }
    }
eso es todo :)