ORCAS La nueva generación de Visual Studio Octavio Hernández Plain Concepts Developer Advisor David Salgado Microsoft División de desarrollo y Plataforma
¿Qué hay de nuevo en Orcas?
LINQ
Your software, our passion
WPFWPF
AJAXAJAX WPFWPF
AJAXAJAX WCF / WF WPFWPF
AJAXAJAX OfficeOffice WPFWPF
AJAXAJAX OfficeOffice WPFWPF ……
Siguiente VSTS/TFS
Integrated solutions, not just tools
RequisitosRequisitos
TestingTesting RequisitosRequisitos
TestingTesting ReportingReporting RequisitosRequisitos
TestingTesting ReportingReporting ManagementManagement RequisitosRequisitos
TestingTesting ReportingReporting ManagementManagement RequisitosRequisitos DSIDSI
TestingTesting ReportingReporting ManagementManagement RequisitosRequisitos …… DSIDSI
IDE ORCAS
LINQ
IEnumerable dramas = from f in Film.Datos where f.Género == Género.Drama select new { f.Nombre, f.Año }; Expresiones de consulta
IEnumerable dramas = from f in Film.Datos where f.Género == Género.Drama select new { f.Nombre, f.Año }; var dramas = Film.Datos.Where(f => f.Género == Género.Drama).Select(f => new { f.Nombre, f.Año }); Expresiones de consulta
IEnumerable dramas = from f in Film.Datos where f.Género == Género.Drama select new { f.Nombre, f.Año }; var dramas = Film.Datos.Where(f => f.Género == Género.Drama).Select(f => new { f.Nombre, f.Año }); Expresiones de consulta Métodos extensores Expresiones lambda Inicializadores de objetos Tipos anónimos Inferencia de tipo de variables locales Árboles de expresiones
LINQ to Objects
HoyHoy XmlDocument doc = new XmlDocument(); XmlElement films = doc.CreateElement(films"); foreach (Film f in Film.Datos) if (f.Género == Género.Drama) { XmlElement elem = doc.CreateElement(film"); XmlElement n = doc.CreateElement("nombre"); n.InnerText = f.Nombre; elem.AppendChild(n); XmlElement a = doc.CreateElement(año"); a.InnerText = f.Año; elem.AppendChild(a); films.AppendChild(elem); } doc.AppendChild(films); doc.Save(DRAMAS.XML); CASABLANCA 1942 … Modelo imperativo Orientado al documento Sin consultas integradas Alta exigencia de memoria
Con LINQ to XMLCon LINQ to XML Sintaxis especial en VB 9.0Sintaxis especial en VB 9.0 XElement films = new XElement(films", from f in Film.Datos where f.Género == Género.Drama select new XElement(film", new XElement("nombre", f.Nombre), new XElement(año", f.Año)) ); Films.Save(DRAMAS.XML); Modelo declarativo Orientado a elementos Consultas integradas Más compacto y rápido
LINQ to XML
HoyHoy SqlConnection c = new SqlConnection(cadenaCon); c.Open(); SqlCommand cmd = new c.NombreApellidos FROM Personas WHERE Sexo c); sexo); DataReader dr = cmd.ExecuteReader(); while (dr.Read()) { string nombreApellidos = dr.GetString(0); } dr.Close(); Consultas entre comillas Parámetros sin control de tipos estricto Resultados sin control de tipos estricto Sin comprobación del compilador
Con LINQ to SQLCon LINQ to SQL public class Persona { … } public class FilmsDataContext : DataContext { public Table Personas; … } var db = new FilmsDataContext(); var delMismoSexo = from f in db.DBPersonas where f.Sexo == sexo select f.NombreApellidos; Clases que describen los datos Conexiones fuertemente tipadas Consultas integradas Resultados fuertemente tipados Tablas como colecciones
LINQ to SQL
Mapeado lógico/físicoMapeado lógico/físico –Por defecto, 1:1 con la BB.DD. –Modelo de datos basado en ENTIDADES Proveedor de mapeadoProveedor de mapeado Entidades, relaciones, herenciaEntidades, relaciones, herencia –Renombrar tablas y campos, crear jerarquías entre tablas, eliminar las tablas de relación, etc. –Flexibilidad –Acceso al proveedor del almacén en caso necesario
MSDNMSDN – MSDN en castellanoMSDN en castellano – os/architec/fecha/2007.mspx os/architec/fecha/2007.mspxhttp:// os/architec/fecha/2007.mspx Especificación de C# 3.0Especificación de C# 3.0 El proyecto LINQEl proyecto LINQ Operadores de consulta estándar de.NETOperadores de consulta estándar de.NET Acceso a datos de próxima generaciónAcceso a datos de próxima generación Presentación técnica de ADO.NETPresentación técnica de ADO.NET El Marco de Entidades de ADO.NETEl Marco de Entidades de ADO.NET
dotNetManíadotNetManía –Lo que nos traerá Orcas Novedades en C# 3.0 (Nº 24, marzo de 2006)Novedades en C# 3.0 (Nº 24, marzo de 2006) La tecnología LINQ (Nº 25)La tecnología LINQ (Nº 25) VB 9.0 y LINQ (Nº 27)VB 9.0 y LINQ (Nº 27) LINQ to XML (Nº 29)LINQ to XML (Nº 29) LINQ to DataSet (Nº 32)LINQ to DataSet (Nº 32) LINQ to SQL (Nº 36, abril de 2007)LINQ to SQL (Nº 36, abril de 2007) Serie sobre ADO.NET vNext y LINQ to Entities (próxima aparición)Serie sobre ADO.NET vNext y LINQ to Entities (próxima aparición) Web de El GuilleWeb de El Guille –