Me ocurrió algo curioso hoy dia. Estaba paseando por el área donde estan los stands de especialistas de producto (hay de Sharepoint, SQL Server, Team System etc.), cuando me detuvo una chica que estaba exponiendo y me preguntó de que queria saber (sobre SQL Server) y lo primero que me vino a la mente fue el tipo FileStream y, coincidencias de la vida, ella, Joanna Omel, es Program Manager del SQL Server Engine y responsable de características como el manejo del FileStream en SQL Server 2008.
Para ser sincero, he logrado despejar varias dudas en ese tiempo que estuvimos conversando, que si hubiera asistido a varias charlas del evento. Primero le comenté la preocupación mia debido a que siempre me preguntan: "donde deben, mis aplicaciones, almacenar los archivos, en la base de datos o en el File System?". Si, ya sé que muchos dirán "depende", lo mismo que diria yo:) y en realidad aunque no hay una respuesta absoluta al tema, me recomendo un link muy interesante en el que recomienda para archivos mayores a 1MB usar el File System, el documento se titula: To BLOB or not To BLOB y está escrito por gente de Microsoft Research.
Le comentaba que porque Sharepoint guarda los archivos en la base de datos y me explico que lo que hace Sharepoint realmente es dividir el documento en varias partes que se almacenan y luego cuando se accede a ellos, Sharepoint los recompone. Ademas, me comento que probablemente en siguientes versiones Sharepoint usara el File System para almacenar los archivos, de modo que pueda manejar archivos de gran tamaño cion una óptima performance. Y que usara para almacenar los archivos en el File System?? Nada mas y nada menos que que la nueva opcion FileStream de SQL Server 2008, ojo ella misma me aclaro que NO es un nuevo tipo de dato, sino una opcion mas que tiene varbinarymax().
Para configurar el uso de FileStream hay una serie de pasos que seguir, desde activar opciones de la configuración, crear un FileGroup especial para ellos y activar el uso de FileStream en la Instancia de SQL Server, ah! tambien crear un File Share en el File System, no son pocos pasos :)
Lo bueno es que asi use Attach/Dettach o Backup/Restore se guardará tambien la carpeta con los archivos referenciados. Lo malo es que solo hay soporte local, por ahora, es decir que los archivos se mantendran en la misma maquina donde este instalado SQL Server.
Además le comente el caso de un cliente mio que queria almacenar archivos de 4 Gigabytes en Sharepoint y realmente es una mejor alternativa usar el File System. Ella me comento en la etapa de pruebas un cliente de ellos habia llevado a Microsoft un archivo de 9GB y lo probaron con el FileStream sin ningun problema. cool!!!
En cuanto a la programación, en el SP1 de Visual Studio 2008 habra soporte completo para crear aplicaciones .NET que utilicen esta característica.
Esta semana estoy en el Tech-Ed for Developers 2008 en Orlando. Quise escribir antes pero aqui el tiempo se va rápido y por las noches uno llega tan cansado que se va directo a la cama :)
Hay muchas cosas por contar de este evento que, básicamente, se centra en lo ultimo que ha sacado Microsoft (lo futuro se ve en el PDC). Realmente, uno de los expositores que marca la diferencia es David Chappell, lo digo no solo por su experiencia y conocimiento, sino por su forma de hacer de las cosas "complicadas" para muchos, algo entendible para todos....o casi todos.
Bueno me toco ver ayer su comparacion entre plataformas Java vs. .NET muy bueno, pero de eso no hablare ahora, sino de la charla de hoy que fue sobre la comparacion entre SOAP/WS-* y REST.
Son dos estilos diferentes, para escenarios distintos. Primero hizo una explicacion de WFC con SOAP, haciendo incapie en que SOAP define una forma de mensaje XML descriptiva de la operacion y usa POST para el envio. Tambien hablo sobre WS-*, algo que no es reciente, pero que es soportado tambien por WCF Describio los binding que se usan en cada caso:
BasicHttpBinding, para SOAP
WSHttpBinfing, para SOAP/WS-*
NetTcpBinding, para usar TCP
Sobre WS-* mencionó que no es el predominante para Web Services en Windows y que la interoperabilidad entre vendedores sigue siendo imprefecta.
Luego, le toco el turno a REST, nos hablo que usa verbos HTTP (GET, POST, PUT, DELETE) y que todo es accedido a través de URIs. El binding que usa es "webHttpBinding". El Transporte HTTP puede enviar XML, JSON o datos binarios sobre HTTP.
SOAP/WS-* viene de una larga historia : RPC, RMI, CORBA, DCOM, etc. REST es Web Services puro.
REST es mas Internet, SOAP-WS-* no necesariamente fue creado para Internet sino para entornos corporativos y tambien internet.
En seguridad REST usa HTTPs, mientras que SOAP/WS-* puede usar HTTPs y estandares de seguridad WS.
La mejor decision debe ser por la razon, no por la emocion.
Lo mejor de todo, WCF soporta ambos!! :)
Antes de terminar, para los interesados en conocer más sobre REST, Chappell recomendo un libro RESTful Web Services por Leonard Richardson, de hecho estara pronto en mi biblioteca personal.
BasicHttpBinding
Esta máquina virtual reemplaza a una anterior que expiraba el 1ro de Abril. Esta nueva versión expira el 31 de Diciembre de 2008.
En la maquina virtual están instalados:
-
Windows Server 2003 Enterprise Edition, SP2
-
Team Foundation Server 2008
-
Team Build 2008
-
Team Explorer 2008
-
Visual Studio Team System 2008 Team Suite
-
Power Tools December Release
-
Office 2007 SP1
Team Foundation Server esta instalado en workgroup edition, por lo que no requiere un controlador de dominio. Este release contiene 38 Hands-On Labs y datos de ejemplo.
Pueden bajar esta maquina virtual desde:
Visual Studio® Team System 2008 Team Foundation Server and Team Suite VPC Image
En realidad queria comenzar una serie de posts sobre User Experience (UX) comentando otro tipo de informacion, sin embargo encontre este que me parecio muy interesante y listo para ser aplicado ;-)
El documento online es : Windows Vista User Experience Guidelines, y en el pueden encontrar cosas como:
- Un catalogo de los controles Windows. Aparte de los tipicos como TextBox, Check-boxes, Command button, Drop-down list, etc,. hay otros que aparecen bastante en Windows Vista, como Command links, Baloon, Progressive disclosure controls, Infotips, etc.
- Las reglas a seguir para crear interfaces de usuario de alta calidad en Windows Vista.
- Un Guia de Diseño de Experiencia de Usuario para Windows Vista, cuyos principios de diseño nos pueden servir tambien para aplicarlos en otros tipos de diseño Windows o Web, o inclusive con Windows Presentation Foundation (WPF)
La semana pasada tuve la oportunidad de comprar algunas cosas en el Microsoft Store (en Redmond). Revisando algunos libros vi uno y dije “umm, ese libro me parece conocido...” y efectivamente era uno de los libros favoritos de mi biblioteca, el “Head First Software Development” de O’Really. Creo que Microsoft también reconoce cuales son los buenos libros y que no todos son de Microsoft Press :)
Me compre ese libro hace un mes, recién ha sido publicado este año, y yo ya habia usado antes otro de la misma serie, el Head First Design Patterns que también es muy bueno.
Así que si tienen oportunidad de adquirirlo se los recomiendo, en realidad presenta de una forma simple y muy didáctica, los conceptos de Ingeniería de Software, Gestión de Proyectos y Metodología. Por ejemplo va desde los Requerimientos, definición de iteraciones, diseño, control de versiones, test-drive development, manejo de releases, bug tracking, etc. Es "casi" agnóstico a las herramientas, aunque si usa algunas que están disponibles en Internet. Personalmente yo uso las herramientas integradas que vienen en Visual Studio Team System :)
El libro es muy recomendable para entornos academicos y para todo profesional en el desarrollo de software.
Acaba ya la semana santa, y aparte de ver las clásicas películas de esta época y reflexionar, también aproveche para descansar algo y revisar algunas conclusiones que me dejo el ultimo evento al que asistí (VSTS InnerCircle Airlift).
La comprobación (conversando con gente de diversos paises) de que no solo en mi País, ni solo en Latinoamérica sino a nivel Mundial, el porcentaje de proyectos exitosos sigue estando en un promedio de 30%, nadie pudo decir lo contrario. :)
Primeramente, considero importantes todas las iniciativas que se vienen dando para determinar y mejorar el nivel de madurez de los Procesos de Desarrollo de Software (como CMMI) o de la madurez en Gestión de Proyectos (como OPM3)
Sin embargo, el que una empresa de desarrollo de software no tenga un nivel CMM o no tenga entre sus profesionales algunos PMPs, no los exime de pensar siempre en una mejora continua de sus procesos, el de saber “Donde estoy hoy?”, “Donde quiero estar mañana”?” y “Que hago para llegar allí?”. Existe una forma de hacerse esa evaluación, Microsoft proporciona una evaluación del nivel de madurez en la Gestión del Ciclo de Vida del Desarrollo de Aplicaciones (Arquitectura, PM, Usabilidad, Desarrollo, Testing, etc.), inclusive la evaluación ya tiene su versión en español (asi que no hay pretexto), la encuentran en:
https://www.microsoft.com/almassessment/es-ES/default.aspx
Uno de los objetivos que espero cumplir, a través de este blog, es ir explicando los puntos que se miden en esta evaluación a fin de tener una mejor idea, de cómo lograr esa madurez en el SDLC.
La programación de aplicaciones y las nuevas tecnologías Microsoft que van apareciendo también es algo con lo que trabajo y sigo con mucho interes, así que cuando pueda escribiré sobre WPF, WCF, WWF, ASP.NET 3.5 y ADO.NET 3.5, pero siempre teniendo en cuenta que "lo que da valor no es la tecnología sino la forma como se aplica", y eso se logra teniendo una vision mas amplia de las cosas :)
Así como existe el “Project Management Body of Knowledge (PMBOK)”, que es una colección de procesos y áreas de conocimiento generalmente aceptadas como mejores prácticas dentro de la disciplina de Gestión de Proyectos, también existe el “Business Analysis Body of Knowledge (BABOK)”, promovido por el “International Institute of Business Analysis".
Esta guía identifica las Áreas de Conocimiento del Análisis de Negocio que están normalmente reconocidas y aceptadas como buenas prácticas.
Las Áreas de Conocimiento no definen una metodología de Análisis de Negocios. Definen lo que un Analista de Negocio (BA) necesita conocer para trabajar dentro de un proceso de Análisis o sobre una Metodología de Desarrollo de Soluciones.
En la guía se encuentran definidas las áreas de Análisis Empresarial, Planeamiento y Gestión de Requerimientos (incluye el control de cambios) , Obtención de Requerimientos (con sus diversas técnicas), Análisis y Documentación de los Requerimientos, Evaluación y Validación de la Solución y finalmente Comunicación de los Requerimientos (Plan de comunicación, conflictos, formatos, aceptación).
Me parece una guía bastante completa y a pesar que algunas de las cosas que dice allí lo sabemos por la misma experiencia en proyectos, esta guía consolida todo ese conocimiento y muchas cosas más como practicas recomendadas.
Tal como lo señala Carey Schwaber (la hija de Ken Schwaber, el autor de “Agile Project Management with Scrum”) en el articulo “The Root Of The Problem: Poor Requirements” de Forrester, hay dos frentes en lo que se refiere al tema de Requerimientos: la Definición de los Requerimientos y la Gestión de los Requerimientos. Aunque el mercado ha puesto énfasis en las herramientas para la Gestión de los Requerimientos, la oportunidad de mejora realmente esta en la definición y la Gestión de los cambios en los mismos.Hay un documento de reciente publicacion: “Requirements Management with Visual Studio Team System”. En este documento se nos explica como manejar todo el Ciclo de Vida de los Requerimientos con VSTS, desde la definición, pasando por la ejecución y posteriormente la medición, además, claro esta, de la Gestión de los Cambios.Ciertamente no existen, en VSTS, características completas para Gestión de Requerimientos como funcionalidades por defecto o plantillas incorporadas en la herramienta. O bien uno se organiza con lo que viene en la herramienta o tiene la opción de usar herramientas de terceros como Borland Caliber RM, Compuware Optimal Trace, entre otros, gracias a la extensibilidad que tiene TFS. En el documento se habla de las distintas alternativas que existen, además de lo que vendrá en la siguiente versión de VSTS sobre trazabilidad de requerimientos y que tuve la oportunidad de ver, como prototipos, en el ultimo evento VSTS InnerCircle al que asistí, prototipos que se implementarán en los siguientes CTPs de “Rosario”, habrá que estar atentos.
El día de ayer Doug Seven, para mí el mejor de los expositores de este evento VSTS Inner Circle, nos mostros algunas novedades de la siguiente versión de VSTS Codename "Rosario". Una de las cosas que me llamo la atención fue la herramienta cuyo codename es "Camano", está basada en Windows Presentation Foundation (según Doug), y esta diseñada para ayudar a los administradores de prueba y al equipo de pruebas planificar, organizar y analizar su proceso de pruebas.No está integrado con Visual Studio, así que no se necesita tener Visual Studio instalado, se pueden crear distintos tipos de prueba, me llamo la atención las pruebas manuales (funcionales) donde la herramienta capturaba printscreens automáticamente y hasta creaba un video del preciso instante del error (como para que los demás no digan que no se puede reproducir), y luego lo podía adjuntar a un Workitem.Aquí pueden encontrar mayor información y algunas pantallas de "Camano":
http://blogs.msdn.com/nnaderi/default.aspx
http://ozgrant.com/2007/12/09/november-rosario-ctp-planning-a-testing-effort-with-camano/
Estoy, desde este Lunes 17, en un evento en Bellevue,WA para los partners de Microsoft que formamos parte de un programa denominado Visual Studio Inner Circle. Entre otros temas, se estuvo hablando a la importancia de la diferenciacion en las estrategicas de negocios (tiempo de salida al mercado, menores costos, servicio al cliente, etc), ademas del problema actual que las empresas gastan el 80% en mantenimiento de sus aplicaciones y solo el 20% en nuevas innovaciones, lo que se espera es invertir esas cifras y que sea 20% en mantenimiento y 80% en innovacion.
Se mostraron varios estudios de Gartner y Forrester al respecto y un caso interesante de negocio en la que una empresa innovadora como NetFlix se adelanta a otras tradicionales como BlockBuster que ahora reacciona tratando de recuperar protagonismo.
En el Application Platform Optimizacion Model, se trata de cómo alcanzar un grado de madurez gradual (desde Básico a Dinámico) pasando por etapas y midiendo la madurez a través de las siguientes capacidades: Experiencia de Usuario, Inteligencia de Negocios, SOA y Procesos de Negocio, Gestión de Datos y Desarrollo.
Para mayor informacion sobre Application Platform Optimizacion, revisar http://www.microsoft.com/business/peopleready/appplat/default.mspx
Para bajar abundante informacion sobre toda la iniciativa de Optimizacion de Infraestructura, revisar: http://www.microsoftio.com/
Ahora que se está lanzando Visual Studio 2008 a nivel mundial y para los interesados en lo que sucederá con las certificaciones actuales, lo que se sabe es que habrá 6 nuevos exámenes para las certificaciones MCTS (Microsoft Certified Technology Specialist). En lugar de orientarse al tipo de aplicación (Web, Windows, Distribuido), se orientarán a las tecnologías basadas en el .NET Framework 3.5 como WPF, WWF, WCF, ADO.NET 3.5 y ASP.NET 3.5.Los exámenes son los siguientes:
70-502 TS: Microsoft .NET Framework 3.5 - Windows Presentation Foundation
70-503 TS: Microsoft .NET Framework 3.5 - Windows Communication Foundation
70-504 TS: Microsoft .NET Framework 3.5 – Windows Workflow Foundation
70-505 TS: Microsoft .NET Framework 3.5 - Windows Forms Applications
70-561 TS: Microsoft .NET Framework 3.5 - ADO.NET Applications
70-562 TS: Microsoft .NET Framework 3.5 - ASP.NET Applications
Ademas se estan creando nuevos Cursos Oficiales, los cuales estaran disponibles en los proximos meses.
Para el examen 70-502 se tendra el curso 6460: Visual Studio 2008 Connected Systems: Windows Presentation Foundation ( 3 days)
Que cubre temas tales como:
- Creating an Application by Using Windows Presentation Foundation
- Building User Interfaces
- Customizing Appearance
- Data Binding
- Data Binding to Collections
- Creating New Controls
- Managing Documents
- Graphics and Multimedia
- Configuring and Deploying Applications in Windows Presentation Foundation
Para el examen 70-503 se tendra el curso 6461: Visual Studio 2008 Connected Systems: Windows Communication Foundation (3 days)
Que cubre temas tales como:
- Getting Started with Windows Communication Foundation
- Configuring and Hosting WCF Services.
- Endpoints and Behaviors
- Debugging and Diagnostics
- Designing and Defining Contracts
- Handling Errors
- Improving WCF Service Quality
- Implementing WCF Security
- Implementing Transactions
Para el examen 70-504 se tendra el curso 6462: Visual Studio 2008 Connected Systems: Windows Workflow Foundation ( 2 days)
Que cubre temas tales como:
- Creating and Hosting Workflows
- Applying Conditions and Rules
- Communicating with Workflows
- Creating and Configuring Custom Activities
- Creating and Managing Runtime Services
- Manage Faults, Cancellations, Transactions, and Compensations
Tengo que comenzar a preparar estos cursos, asi que espero ir posteando mas detalles de las tecnologias del .NET Framework 3.5.
Happy programming! :)
Hola,
El equipo de Patrones y Practicas libero ayer la versión final de la guía "Team Development with Team Foundation Server". Esta guía estuvo en beta en los últimos meses. La guía muestra como sacar el mayor provecho de Team Foundation Server para ayudar a mejorar la efectividad del desarrollo de software basado en equipo. Sea que uno ya esté usando Team Foundation Server o lo esté adoptando recién, este documento contiene guías y recomendaciones que se pueden adaptar a escenarios específicos. Es el resultado de un esfuerzo colaborativo entre el equipo de patrones y prácticas, Team System, especialistas en VSTS y expertos de la industria.
Pueden bajar la guía desde aqui.
Algunos datos numéricos:
496 - Nro total de páginas de la guía
11392 - Nro total de descargas de la versión Beta de la guía.
18 - Nro total de capítulos de esta guía
60 - Nro de contribuidores y revisores externos y de Microsoft
Frecuentemente cuando dicto cursos oficiales microsoft para la certificación MCTS en Web, Windows o Distribuida, me preguntan qué va a suceder con los cursos ahora que ya se ha liberado el .NET Framework 3.0, si habrán nuevos cursos o no.
Lo que está planificando, la gente de Microsoft Learning, son cursos orientados a Visual Studio "Orcas" y el .NET Framework 3.5, estos serán en la modalidad de cursos MOC (No Workshops ni Clinics) y utilizaran un escenario común para el desarrollo denominado "Connected Systems" que cubrirá distintas tecnologías como WPF, WCF, LINQ, etc. Supongo que será algo como DinnerNow solo que con una mejor arquitectura de diseño :)
También comentan que los cursos serán de nivel 200, es decir no son cursos básicos, para eso ya existen clínicas (seminarios de 2 horas) en la modalidad de E-learning como:
Clinic 5135: Introduction to Developing with Windows® Presentation Foundation and Visual Studio® 2005
Clinic 5136: Introduction to Developing with Windows® Workflow Foundation and Visual Studio® 2005
Clinic 5137: Introduction to Developing with Windows® Communication Foundation and Visual Studio® 2005
Y otros cursos del nivel básico, que tocan algo del .NET Framework 3.0 como:
4994 Introduction to Programming Microsoft .NET Framework Applications with Microsoft Visual Studio® 2005
Los nuevos cursos que estarán preparando durante el 2007-2008 son:
WPF - Un curso de 3 días que cubrirá XAML, Diseño y controles de IU, estilos, plantillas de recursos, animaciones, gráficos 2D y 3D, interoperabilidad y migración y el modelo de data-binding. Este curso preparará para el exámen MCTS en WPF.
WCF – Este curso de 3 días cubrirá el diseño, desarrollo e implementación de servicios WCF. Se incluirá Enlaces, Transportes y Contratos. Se ensenara Service behaviors, Service hosting, seguridad de Mensajes y Transporte, extensibilidad y optimización. Este curso preparará para el exámen MCTS en WCF.
WF – Este curso de 3 días cubrirá la creación de maquinas de estado y workflow secuenciales, scheduling y persistencia de workflows y el runtime. También la creación de actividades personalizadas, modificación de workflows en tiempo de ejecución y consideraciones de performance de workflows. Este curso preparará para el exámen MCTS en WF.
ASP.NET – Este curso de 2 días cubrirá las nuevas capacidades y características que se encontraran en la siguiente versión de ASP.NET e incluirá los básico en el uso de ASP.NET AJAX.
Data Access – Este curso de 2 días cubrirá las capacidades y características que se encuentran en la siguiente versión de ADO.NET y se enfocará bastante en las nuevas características LINQ (Language Integrated Query) de Visual Studio Orcas.
Si les interesa saber más sobre el Roadmap de los nuevos cursos oficiales Microsoft para desarrollo pueden visitar el blog de Jeff Hora, espero poder conversar con él personalmente en el TechEd y poderles brindar más información.
Hola,
Este es mi primer post en geeks.ms, agradezco la gentileza de Rodrigo de brindarme un blog y espero poder contribuir en algo que, creo, nos une a todos los bloggers de aquí que es la pasión por la tecnología y el entusiasmo que ponemos para que brindar nuestros conocimientos al alcance de todos sin esperar nada a cambio, quizás estas sean algunas razones por las cuales nos nombran MVPs y no dudo que pronto lo serán algunos geeks mas :)
Soy MVP en C#, mi perfil lo pueden ver haciendo clic aquí. Me gusta escribir sobre tecnologías .NET y especialmente futuras versiones y herramientas para ALM.
Según un estudio de Forrester, las habilidades técnicas que se buscaran en un profesional de IT, durante el 2007, son en las áreas de: Gestión de Proyectos, Arquitectura y Seguridad, lo pueden leer aquí. Así que ya saben que orientación le estaré dando también a mis siguientes posts :)
Un saludo desde Lima-Peru y estaremos en contacto a través de este blog.
Guino.