Ask to The Experts Abril 29, 2008
Posted by elmercarias in .Net.Tags: .Net
add a comment
Les comento que a partir del día Lunes 28 de Abril inicio el Evento Online de Lanzamiento de Visual Studio 2008, y una de las tantas actividades que se realizaron se llamo “Ask to the Experts”
De la cual fui partícipe, y debido a que una persona en el Chat comento si alguien podía postear en el Blog todo el Chat,
Lo guarde, y lo comparto con todos.
El nombre del Chat fue “Descubre las novedades de Visual Studio 2008 y el .net Framework en desarrollo Web (Silverlight 2.0, ASP.NET 3.5, ASP.NET AJAX, MVC, IIS 7.0)”
http://www.cariasyasociados.com/downloads/Chat-AskToTheExperts.doc
Atte. Elmer Carías
“El fracaso tiene mil excusas, el éxito no requiere explicación”
Patrones de Diseño Abril 26, 2008
Posted by elmercarias in Arquitectura de Software.Tags: Arquitectura de Software, patrones
2 comments
El martes anterior en el tema que compartió Jorge Barrientos, compañero de la Comunidad de Desarrolladores MSNETSV, tratamos un tema bastante importante y que hizo recordar cuando leí al respecto por primera vez.
En ese entonces, fue en el año 2005 cuando encontré sobre ese tema en la red, la verdad no entendí mucho a lo que se refería el tema, ya que todavía pensaba en el desarrollo tradicional (aunque se suponía que ya empezaba a realizar tareas de Arquitectura de Software) y todavía no digería todo completamente.
Esta introducción la hago porque este tipo de temas es donde hay que pensar de una forma no tan tradicional para poder comprender los conceptos y la utilidad de los Patrones de Diseño.
Entonces surge la pregunta de rigor, ¿Que es un Patrón de Diseño?
El nombre por si solo no nos dice mucho, ya que talvez pensaremos que es sobre Diseño Web, o será Diseño de Datos, o bien puede ser Diseño de Interfaz de Usuario. Y realmente no tiene nada que ver con ninguna de las cosas que comento, para no ser tan dificil el asunto empezaremos por decir que un Patron de Diseño no es mas que la experiencia de resolver problemas especificos de programación expresados en un formato estándar para poder ser implementado en cualquier lenguaje de programación.
Tablas Cruzadas con DataWindow .Net Abril 10, 2008
Posted by elmercarias in .Net, DataWindow, PowerBuilder.Tags: .Net, DataWindow, PowerBuilder
3 comments
DataWindow .Net Abril 9, 2008
Posted by elmercarias in .Net, DataWindow, PowerBuilder.Tags: .Net, DataWindow, PowerBuilder
2 comments
Recientemente di una charla de DataWindow .Net y tuve que bajarme la nueva versión, yo conocía la versión 1.0 y actualmente existe la versión 2.5
Para los amantes de Power Builder, esta puede ser una alternativa para utilizar este control en aplicaciones .Net ya sean estas aplicaciones Windows o Web.
Una de las cosas importantes es que se puede llenar un DataWindow desde distintos origenes de datos como un Web Service, un DataSet y por supuesto manteniendo la forma que Power Builder maneja el DataWindow con ODBC, OleDB, Clientes Nativos de SQL Server, Sybase, Oracle, Informix, Direct Connect y algo nuevo que le incluyeron es ADO Net Provider.
LINQ una buena alternativa Abril 2, 2008
Posted by elmercarias in .Net.Tags: .Net, linq
2 comments
En las ultimas semanas he estado conociendo mas sobre las novedades de Visual Studio 2008, y una de las que mas me llama la atención es la tecnología LINQ, ya que ofrece mucha versatilidad para acceder los datos.
Pienso que es mas fácil de usar ya que no es necesario conocer mucho sobre SQL para realizar consultas complejas.
Como introducción les comento que LINQ ha sido creado para estandarizar el acceso a los datos, estos sean XML, una Base de Datos, ya sea Microsoft SQL Server, Oracle, Sybase etc.; así como tambien el manejo de Objetos en memoria. Esto es lo que mas llama la atención porque permitirá acostumbrarse a una sola sintaxis para acceder a los datos.
La manera mas fácil de tener acceso a objetos creados con LINQ, hay que adicionar a nuestro proyecto un nuevo Item llamado “LINQ to SQL”
Y en esta pantalla arrastrar los objetos que deseemos, en la imagen de ejemplo se utiliza la base de Datos Northwind,
Despues de seguir los pasos de previa configuración
Ejemplo #1:
Despues en cualquier ubicación de nuestra aplicación podemos hacer el siguiente ejemplo sencillo:
Dim query = from c in Customers
where c.Country = “Italy”
select c.CompanyName
El resultado de lo anterior es una Colección de Strings(que queda guardado en “query”), conteniendo los Nombres de Clientes(Customers) del país de Italia.
El query que genera y ejecuta es el siguiente:
Select CompanyName
From Customers
Where Country = “Italy”
Se preguntarán ¿Porque esta primero el FROM y despues el SELECT al escribirlo con LINQ?
Eso responde a que como .Net ofrece Intellisense en el SELECT y en el FROM es necesario decirle sobre que objeto se hará SELECT, y así el IDE nos ofrece el Intellisense.
El resultado obtenido en la variable “query” puede ser utilizado como origen de datos de un DropDownList, ListBox, etc.
Si notan en este primer ejemplo es completamente sencillo y no se ve la potencia de LINQ.
Ejemplo #2
En este ejemplo devolveremos los Clientes que tienen mas de 20 Ordenes de Compra(Orders) en el sistema
Dim query = from c in Customers
where c.Orders.Count > 20
select c.CompanyName
Esta ejecución genera el Query :
Select c0.CompanyName
From Customers AS c0
Where (Select Count(*)
From Orders AS c1
Where c1.CustomerID = c0.CustomerID
) > 20
En este ejemplo ya se empieza a ver que lo versatil de LINQ, ya que en sintaxis LINQ solamente se hace referencia a la relación con Orders y se utiliza la propiedad Count para comparar que sea mayor a 20,
si lo hubieramos hecho en SQL hubieramos que tenido que hacer el SubQuery para ese calculo.
Ejemplo #3
En este ejemplo a diferencia del anterior devolveremos las Ordenes de los Clientes que tienen mas de 20 Ordenes de Compra en el sistema
Dim query = from c in Customers
where c.Orders.Count > 20
select c.CompanyName, c.Orders
Esta ejecución genera los siguientes querys:
El primero es para devolver el listado principal de Compañias
SELECT [t0].[CompanyName], [t0].[CustomerID]
FROM [dbo].[Customers] AS [t0]
WHERE ((
SELECT COUNT(*)
FROM [dbo].[Orders] AS [t1]
WHERE [t1].[CustomerID] = [t0].[CustomerID]
)) > 20
El segundo es ejecutado para cada Customer del Query, en este caso son 3; esto es ejecutado en el RowDataBound del GridView donde se implementa el llenado de las Ordenes
SELECT [t0].[OrderID], [t0].[CustomerID], [t0].[EmployeeID], [t0].[OrderDate],
[t0].[RequiredDate], [t0].[ShippedDate], [t0].[ShipVia], [t0].[Freight],
[t0].[ShipName], [t0].[ShipAddress], [t0].[ShipCity], [t0].[ShipRegion],
[t0].[ShipPostalCode], [t0].[ShipCountry]
FROM [dbo].[Orders] AS [t0]
WHERE [t0].[CustomerID] = @CustomerID
Bueno esto es un poco de lo que se puede hacer con LINQ, en este caso LINQ con SQL, en proxima entrega hablare de LINQ sobre XML y LINQ sobre Objetos.
Atte. Elmer Carías
“El fracaso tiene mil excusas, el éxito no requiere explicación.”
