jueves, 24 de diciembre de 2009
FELIZ NAVIDAD
viernes, 4 de diciembre de 2009
Conociendo Linq Parte II
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 sugerenciasjueves, 26 de noviembre de 2009
Conociendo LINQ Parte I
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
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.
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>
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
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.