Curso IIS 7, AJAX.Net, ASP.Net MVC, Silverlight (Día 3) August 15, 2008
Posted by charly in .NET, ASP.NET, evento.Tags: dotnet, evento, opinion
add a comment
Como corolario del curso de las novedades de Visual Studio 2008, se hizo hincapié en los siguientes temas:
Primero se habló acerca de las mejoras en la integración con IIS7, se mostró el nuevo modelo de ejecución (Pipeline) integrado de ASP.NET con IIS7.
Otro de los temas vistos fue la facilidad para crear módulos adicionales a IIS7, y su facilidad de mantenimiento.
También se mostró la nueva Interfaz de administración totalmente renovada, que nos ofrece un mayor control.
Luego se hizo un recorrido por el framework de AJAX de ASP.NET, mostrando su arquitectura, y tanto la opción de utilizar la librería Javascript que nos ofrece, como el paquete de controles (Toolkit) para extender los tradicionales de ASP.NET.
Más tarde se hizo un recorrido por Silverlight y sus diferentes versiones (1.0 y 2.0 Beta), utilizamos las herramientas Expression para crear la UI (código XAML) y luego dentro de Visual Studio, poniendo el foco en la ventaja que nos ofrece la versión 2.0 de codificar nuestra funcionalidad en lenguajes .Net (C# y VB.Net).
Por último hicimos un recorrido por el nuevo Framework desarrollado por MS para la creación de aplicaciones web basadas en el patrón MVC, todavía en desarrollo. Que introduce un nuevo paradigma dentro del desarrollo sobre la plataforma .NET.
Habiendo visto estos temas se hizo un pantallazo por todas las novedades que esta introduciendo MS en el ámbito de los developers, dentro del contexto de Visual Studio 2008.
Curso Linq, Sql 2008, Parallel FX (Día 2) August 7, 2008
Posted by Leandro Romero in evento.Tags: dotnet, noticia, opinion
add a comment
Ayer asistí al workshop del Mug en el día “manejo de datos” y vimos Linq, Parallel FX y un chiquitín de SQL 2008.
LINQ
Para empezar vimos Linq, no voy a contar todo lo que dijo, pero básicamente es una linda manera de utilizar sintaxis “parecida” a sql para manejar colecciones. Entonces podemos tener algo asi:
public void Linq6() {
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };var numsPlusOne =
from n in numbers where n > 2
select n;
En este ejemplo se ve que podemos “consultar” sobre una colección.
Bien, Linq es re lindo, nos da un lenguaje copado, con intellisense, tipado y además parece útil, pero lo que lo hacen más útil son sus implementaciones: Linq To Objects, Linq To Sql, Linq To Entity, Linq To DataSets… etc.
Un ejemplo de Linq To Objects (la más fácil de entender):
ArrayList arrList = new ArrayList();
arrList.Add(new Student
{
FirstName = "Svetlana",
LastName = "Omelchenko",
Scores = new int[] { 98, 92, 81, 60 }
});
arrList.Add(new Student
{
FirstName = "Claire",
LastName = "O’Donnell",
Scores = new int[] { 75, 84, 91, 39 }
});
arrList.Add(new Student
{
FirstName = "Sven",
LastName = "Mortensen",
Scores = new int[] { 88, 94, 65, 91 }
});
arrList.Add(new Student
{
FirstName = "Cesar",
LastName = "Garcia",
Scores = new int[] { 97, 89, 85, 82 }
});
var query = from Student student in arrList
where student.Scores[0] > 95
select student;
Copado no?
Ahora sobre lo que mas me voy a explayar: Linq To Sql (Solo SQL Server). Vamos por partes como dijo Jack: Primero hay que tener en cuenta que hay que tener un contexto, esto es una clase que encapsula las tablas y las relaciones de esas tablas (algo MUY parecido a un dataset, pero en realidad es un .dbml). Una vez que se tiene un contexto podemos hacer cosas como esto:
DataContext db = new DataContext
(@“c:\linqtest5\northwnd.mdf”);
Table<Customer> Customers =
db.GetTable<Customer>();db.Log = Console.Out;
IQueryable<Customer> custQuery =
from cust in Customers
where cust.City = “London”
select cust;foreach (Customer cust in custQuery)
{
Console.WriteLine(“ID={0}, City={1}”,
cust.CustomerID,
cust.City);
}
Podemos ver que tiene un contexto (en el ejemplo se muestra una manera rapida de crear contextos sin el .dbml), se trae la tabla Customers (la tabla esta mapeada a una clase Customer) y ejecuta una búsqueda simple. La sentencia “db.Log = Console.Out;” Hace que muestre la sentencia sql que genera nuestra búsqueda. Bien, un dato importante es que la consulta no es ejecutada en el instante, sino que es “diferida” la ejecución, esto significa que recién al recorrer esa colección con el for each, ahi va a ejectuar la consulta en la base, esto es importante porque si surge alguna excepción va a saltar en la ejecución del for each y no en la creación de la consulta en si. Algunos datos para tener en cuenta: NO es un ORM (Como nhibernate), NO soporta complejas estructuras de tablas (lo de complejas es subjetivo, pero como métrica si tienen 30 tablas y tienen 90 relaciones, eso es complejo
) y lo mas importante de todo: las sentencias LIKE no estan soportadas, leyeron bien, no se puede hacer una consulta sobre un campo texto con un LIKE.
Ustedes dirán, y que tiene de bueno esto? Bueno, en principio si tenemos una aplicacion que no tiene una gran complejidad de relaciones, no hay que hacer busquedas de texto con like y nuestro dominio esta excelentemente modelado como para que cada atributo es una columna de una tabla y no hay muchas mas vueltas que eso aca tenemos la solución, en todos los proyectos por los que pasé, esto se me presentó en… mmmm bue.. nunca, pero bueno.. para hacer demos queda RE Lindo!!!
Sin embargo no crean que esto es algo malo, para solucionar esto es que existe Linq To Entities, en criollo es Linq con Entity Framework, ahora si tenemos un ORM, y podemos jugar lo que querramos con esto. Esta implementación es la que le pongo mas fichas, pero no seria Linq la solucion principal, el mayor poder reside en Entity Framework, que les dejo de tarea revisar que es
Parallel FX
Yo me acuerdo cuando empece la secundaria técnica en la vieja y querida Kennedy de Lanus en el 2000. Para esa época AMD e Intel peleaban cuerpo a cuerpo a ver quien era el que lograba el procesador con mayor cantidad de Ghz posible. Hoy por hoy, AMD e Intel pelean por ver quien pone mas procesadores en una pc. Ya sabemos que la mayoria de los procesadores tienen 2Ghz, un poco mas o un poco menos, pero todos andan por ahi. Esto es asi porque a mas Ghz nuestra pc pasaría a la categoría estufa (se calculaba que si esa tendencia de aumentar la velocidad se extendía por un par de años mas, los procesadores iban a alcanzar la temperatura del sol), por suerte a Roberto Intel, que estaba perdiendo mercado con AMD64, se le prendió la lamparita y sorprendio a todos con el Dual-Core, un procesador con 2 nucleos. A estas alturas ya existe el Quad-Core para escritorios y multiples Quad-Cores para servidores (los servidores grosos siempre soportaron muchos procesadores, pero ahora aceptan muchos procesadores que se componen de muchos nucleos). Y las aplicaciones? Bien, gracias, hagan la prueba los que tienen múltiples nucleos en su pc, agarren un archivo pesado de texto (1GB mas o menos) y abranlo con el notepad, vayan al administrador de tareas y van a ver como un procesador esta trabajando a full y el otro esta durmiendo la siesta, un claro ejemplo de una aplicación no está pensada para esta nueva tecnología (convengamos que es el notepad, no le pidan peras al olmo). Como hacemos nosotros para seguir a la tecnología? Simple, Parallel FX y que el framework se arregle como pueda. Ejemplo:
A la antigua el manejo de threads era asi:
for (int i = 0; i < 20; i++)
{
//Dormir 100 milisegundos
Thread.Sleep(100);
}
Ahora para aprovechar los procesadores hacemos asi:
System.Threading.Parallel.For(0, 20, delegate(int i)
{
//Dormir 100 milisegundos
Thread.Sleep(100);
});
Como funciona esto? Bueno, el framework se fija cuantos procesadores tiene a su disposición y ejecuta los threads en paralelo. Miren como es el for de Parallel, muy parecido al viejo for no?
SQL 2008
Por ultimo un chiquitín de SQL 2008: Cuando salga va a salir conjuntamente el release de Entity Framework, como el equipo de desarrollo de SQL se atrasó, el equipo de Entity Framework (muy unidos ellos) decidieron retrasarse también.
Bueno, como dirían los filósofos contemporáneos: Espero que les haya gustado.
Curso VS2008 – Framework 3.5 (Día 1) August 6, 2008
Posted by mlopezamador in evento.Tags: dotnet, noticia, opinion
add a comment
Al inicio del curso se presentaron las novedades de Visual Studio 2008. Las que mas me llamaron la atención fueron: Lambda expressions, variables de tipo anónimo y la posibilidad de hacer debug y seguimiento sobre funciones javascript. El instructor mostró algunos ejemplos prácticos (código) para afianzar los conocimientos. Luego se vieron algunas cuestiones sobre Framework 3.5: Garbage Collector,CLR Security entre otros. Finalmente vimos WorkFlow Foundation (WF) y Windows Communication Foundation (WCF) pero con poco detalle. La última media hora del curso la utilizamos para hacer un ejercio práctico sobre WCF.
El primer día del curso estuvo bueno ya que vimos de manera global lo nuevo de Visual Studio 2008. Lo ideal hubiera sido hacer algunos ejercicios más, pero no daban los tiempos.
Firefox 3 June 19, 2008
Posted by dariofederico in Tools.Tags: firefox, noticia, opinion
add a comment
El 17 de Julio se lanzo el nuevo Firefox 3, después de sus pruebas y versiones beta, con muchas innovaciones, más rápido, más efectivo y ya supero las 8 millones de descargas en un solo día.
La navegación es más rápida ya que limpia de manera automática la memoria y su gestor proporciona un bajo consumo de recurso cuando se está lo está ejecutando.
Su apariencia nueva es totalmente distinta a sus anteriores versiones. Firefox 3 se adapta a la apariencia que tienes en tu sistema operativo, ya sea Windows Vista, Windows XP, Linux o Mac. La barra de direcciones también fue modificada para poder obtener una búsqueda de páginas visitadas más rápidas.
Al igual que sus versiones anteriores posee la integración de complementos, aunque algunos no pueden ser utilizados y habrá que esperar las nuevas actualizaciones para la nueva versión.
En resumen, Firefox 3 es una nueva forma de navegación con millones de usuarios en el mundo utilizándolo. Esto parece generar un dolor de cabeza a Microsoft ya que hace competencia a su navegador IE.
Con Firefox 3 la Fundación Mozilla aspira a quitarle otro trozo de pastel a Microsoft, a quitarle otro argumento para que la gente deje de usar Windows. El reto es una nueva pelea entre David y Goliat. En este caso, David se compone de 140 empleados y una multitud de programadores voluntarios distribuidos por todo el mundo. Goliat (Microsoft), que estuvo cinco años sin actualizar su navegador, ha reaccionado a cada movimiento de Mozilla y también lo hará en esta ocasión. Si el Firefox 2 acabó con el monopolio del Explorer, la versión 3 intenta arrebatarle la mayoría.
Más información sobre Firefox 3 la encontraras acá: http://www.mozilla-europe.org/es/firefox/features/
Principios May 26, 2008
Posted by charly in agile, practices.Tags: opinion
add a comment
Leyendo un articulo en InfoQ.com, encontre una referencia a un tema que siempre fue tratado dentro de nuestro equipo de trabajo, estoy hablando de los Principios que pregonamos a la hora de trabajar como programadores profesionales.
Este es el parrafo que toca el tema en cuestion:
P is for Principles : “Not just the what. It’s also the why.”
Seeing beyond the simple execution of practices, the agile coach brings an insight and understanding driven by a set of principles. Practices without principles generally bring little benefit, yet principles without practices are often difficult to achieve (see Guidance). She helps teams live out the principles by guiding them through a set of practices, helping them understand the value these add, and adjusting them to what works for the team and organisation.
En nuestro caso los mismos son, entre otros:
- Ser consistente con uno mismo
- Aplicar criterio en cada decisión
- Hacer trabajo de calidad
- Mantener la mente abierta
Personalmente creo que es un gran acierto consensuar dentro de un equipo las bases de un trabajo correcto, teniendo en cuenta que todo ser humano se va a comprometer de otra manera conociendo el “porque”, aparte del “como” de sus practicas cotidianas.
De más esta decir que recomiendo la lectura del articulo.

