jueves, 24 de diciembre de 2009

FELIZ NAVIDAD


Hola gente del blog, este post tiene un motivo mas que el de compartir conocimiento, es para desearles una MUY FELIZ NAVIDAD y que Dios los colme de Bendiciones, si son ateos o creyentes de otra religion informenmen las fechas de sus fiestas asi les envio un saludo para ese dia jajaja, Simplemente GRACIAS y FELIZ NAVIDAD

viernes, 4 de diciembre de 2009

Conociendo Linq Parte II

Hola gente, aqui estoy de nuevo, cumpliendo con lo prometido, la segunda parte de LINQ o al menos eso intentare :D


Vamos a seguir con el proyecto que creamos para la primera parte de este post dedicado a LINQ, aqui les dejo una pequeña modificacion que le hice al WHERE, para que ahora la consulta se haga sobre la categoria de los productos y no sobre el nombre del producto en si



where pro.Category.CategoryName == txt_Productos.Text



Para hacer el INSERT, UPDATE y DELETE vamos a agregar unos textbox mas, para el nombre del producto o id segun lo que necesitemos y botones para guardar los cambios en la Base de Datos y por supuesto una label para saber sobre que campos estamos haciendo la :D



Aqui le dejo una imagen muy poco estetica, pero es como me quedo el aspx



Ah! y aqui esta un link para que descargen los proyectos


http://cid-80aa70e1decc8552.skydrive.live.com/browse.aspx/.Public/Linq?uc=1&isFromRichUpload=1


En el proximo post de LINQ veremos algo de la clase TransactionScope y el operador Lamda.

Saludos y espero sus comentarios y sugerencias



jueves, 26 de noviembre de 2009

Conociendo LINQ Parte I

Hola gente, aquí estoy de nuevo, en esta oportunidad les voy hablar de LINQ (Language Integrated Query), solo un par de ideas básicas como para saber lo que se viene en Acceso Avanzado a Datos.

Bueno manos a la obra, si mal no recuerdo la idea de crear store procedure (procedimientos almacenados) nació de la necesidad de evitar el Sql injection que trajo unos cuantos dolores de cabeza a más de un programador y además evitar que se hagan consultas SQL del lado del code-behind, ya se seguro están pensando y que se le dio a la gente de MICROSOFT, porque ahora volvamos a usar consultas SQL del lado del code-behind, por ahora le doy la primera razón, a medida que avancemos en el post les mostrare otras razones, la primera razón es evitar los "Impactos" en el motor de la Base de Datos como así también el desgaste del mismo, suena algo extraño pero es una de las razones, si queda duda después me preguntan y yo consulto con algún DBA :P

En este proyecto y en futuros vamos a utilizar la base de datos Northwind, aquí les dejo el link de descarga http://www.microsoft.com/downloads/details.aspx?FamilyId=06616212-0356-46A0-8DA2-EEBC53A68034&displaylang=en

por si no la tiene en sus pc's u ordenadores, creamos una web page en blanco de asp.net en Visual Studio 2008, como nombre de proyecto elegí ponerle Linq01, que original lo mío ¿no? jajaja ahora al default.aspx que trae nuestro proyecto le agregamos un Gridview de nombre Gridview1, hoy estoy a full con los nombres jejeje, en nuestro web.config agregamos la siguiente cadena de conexión:

<add name="NorthwindConnectionString" connectionString="Data Source=.;Initial Catalog=Northwind;Integrated Security=True" providerName="System.Data.SqlClient">

en el solution explorer y sobre el nombre del proyecto, damos click boton derecho del mouse y ahora add new item y seleccionamos "LINQ to SQL Classes" y le daremos por nombre que lleva la base de datos que estamos usando (Northwind), no es obligatorio que lleve este nombre, solo lo hago para hacer mas entendible el código y además que si se trabaja con más de una base de datos este nombre nos ayudara a diferenciar sobre cual estamos trabajando. aquí les dejo una imagen

http://yfrog.com/4jscreen01tp

Una vez hecho esto, se nos abrirá el archivo Northwind.dbml, ahora nos vamos a la pestaña server explorer o la buscamos en el menú "ver" elegimos la base de datos Northwind nos vamos a la carpeta que contiene las tablas y seleccionamos las tablas que necesitamos, por mi parte voy a seleccionar todas, y las arrastramos sobre el archivo Northwind.dbml así como se muestra a continuación.

http://yfrog.com/7fscreen02rp

Ustedes se preguntaran que es lo que hace el achivo Northwind.dbml, dando una vision general podemos decir que hace un "Mapeo" de la base de datos y encapsula todo esto en una clase NorthwindDataContext, es importante declarar la cadena de conexion antes de agregar esta clase, dado que se basa en la misma para encapsular la cadena de conexion, como se ve en la siguiente imagen (lo que se ve aqui, es el archivo Northwind.designer.cs).

http://yfrog.com/7bscreen03gp

Ahora si, empecemos a hacer consultas con LINQ, junto a la Gridview1 agregaremos un label cde nombre: lbl_Productos y en la propiedad text le asignamos Productos, junto a este un textbox de nombre txt_Productos y un boton de nombre btn_consultar y en el text del boton le asignamos Consultar, damos doble click en este boton, para ya en el code-behind empezar con las consultas, veamos la siguiente imagen

http://yfrog.com/13screen04wp

Con esto doy por finalizada la primera parte del post de Linq, en la segunda parte veremos cómo hacer un ABM y un poco de expresiones Lamda.
Como siempre espero sus comentarios y/o sugerencias.
Hasta el próximo post :D

viernes, 20 de noviembre de 2009

Agregando la estructura de un Template en Asp.Net

Hola gente, hoy voy a comentarles algo más que practico al menos para mí, la idea es poder bajar un témplate (plantillas web) con un css asociado y poder utilizar la estructura del html en una máster page de ASP.Net. Bueno basta de rodeos y empecemos, lo que primero vamos hacer es bajar un témplate de la página http://www.freecsstemplates.org/ puede ser cualquiera, todos sirven para este ejemplo :D

Una vez ya elegido bajado y descomprimido el template, vamos a nuestro Visual Studio y creamos una página web, como se muestra en la imagen a continuación.





Ahora en el explorador de soluciones, nos paramos sobre el Default.aspx y dando click con el botón derecho del ratón hacemos un exclude project, ¿porque hacer esto? es para poder agregar una MasterPage, que la que va contener la estructura del template que anteriormente descargamos, bueno ahora dando click con el botón derecho del ratón sobre el proyecto nos vamos a "add new item" y elegimos una master.page. Una vez más damos click con el botón derecho del ratón pero esta vez elegimos la opción "add ASP.NET Folder" y luego la opción "Theme", como se muestra en la siguiente imagen






Una vez terminado esto veremos que se crea una carpeta con el nombre de "app_themes", ahora vamos a la carpeta donde está ubicado el template que descargamos y seleccionamos la carpeta "image" y el archivo "default.css" y lo arrastramos hasta nuestro proyecto dentro de la carpeta "app_themes" y dentro de la carpeta que llevara el nombre de nuestro tema (MiTema), bien, ya tenemos el archivo de hoja de estilo en cascada (default.css) y también la carpeta de imágenes.


Ahora viene lo bueno jejeje volvemos a la carpeta donde está el archivo html del template y abriéndolo con un editor html (en mi caso uso el pspad o el notepad++, pero para este ejemplo usare el pspad) seleccionamos todo lo que está entre los tag


<body> y </body>


Como se muestra en la imagen, noten que en ningún momento seleccioné los tag <body> y </body> solo lo que está dentro de ellos lo aclaro porque no se logra ver toda la imagen


Con esta cantidad de líneas de código ahora almacenadas en el portapapeles, nos vamos a nuestro proyecto web y elegimos las master.page y vamos al source, ahora pegamos todo el contenido html que habíamos copiado entre los tag


<form id="form1" runat="server"> y </form>


Quedando al último de lo copiado el código del ContenPlaceHolder final del formulario.


<div>

<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder>

</div>


Miren la imagen









Ya queda poco gente a no desesperar, solo un par de líneas mas y estamos. Vamos al solution explorer y le damos doble click al web.config, ahora una vez abierto el web.config nos ubicamos debajo del tag



</compilation>



Y pegamos la siguiente línea



<pages theme="MiTema" smartNavigation="true" buffer="true" asyncTimeout="45" styleSheetTheme="MiTema" maintainScrollPositionOnPostBack="true">



En donde dice MiTema va el nombre de la carpeta que está dentro de la app_themes y que contiene el default.css y la carpeta imágenes aquí le muestro en esta captura de pantalla la carpeta de la que les hablo resaltando el texto del web.config también.




Bueno eso es todo gente, ahora cuando muestren en la vista de diseño de la master.page, se verá una estructura igual a la que se encontraba en el html del template que descargamos, hay veces o casi siempre hay que modificar la ubicación del ContentPlaceHolder y eliminarles los div :)

Espero les sea de utilidad y también espero sus comentarios y/o sugerencias.

Saludos

miércoles, 18 de noviembre de 2009

Les Doy La Bienvenida

Buenas!!!

En este primer post doy comienzo a mi blog.

La idea es compartir experiencias adquiridas en el desarrollo de aplicaciones, basadas en la plataforma .Net de Microsoft, sin importar el lenguaje, obviamente también se incluye a SQL, quien va de la mano con .Net.

También habrá un poco de vivencias cómicas y demás que ayuden a mantener el buen humor, y así poder "Descomprimir" el cerebro.

Es mi mayor deseo servirles de utilidad a través de este blog, espero lograrlo.