SharePoint Latin Rotating Header Image

Workflow Foundation

Inspirado por el artículo Peter Bright sobre WinRT

microsoft-_net-framework-4

 

En mi caso todo empezó con MS-DOS 3.0 pero esa es otra historia. Yo tomé el barco de Microsoft desde 1997, como programador inicié con Visual Basic 5, tuve la oportunidad de utilizar la suite de Office 97 y experimentar lo que fue OLE 2.0, ya como programador Visual Basic 6 construí aplicaciones profesionales que hacían uso de componentes COM construidos por mí y también tuve la oportunidad de compartir con PowerBuilder funcionalidad gracias a COM. El primer libro de programación que compré fue Developing COM/ActiveX Components With Visual Basic 6 de Dan Appleman. Ya durante los cursos oficiales de Visual Basic 6 pude conocer lo que fue Distributed COM (DCOM) y Microsoft Transaction Server (MTS).  A la par HTML y lo que Microsoft llamó DHTML también eran parte de las técnicas de programación que tuve que aprender y dominar, en particular ASP y VBScript fueron para mí una gran oportunidad profesional, en la universidad pude construir aplicaciones web para procesos escolares, así que mí experiencia en ASP mejoró mucho. Después de durar un tiempo construyendo aplicaciones Windows y Web tanto para empresas como para los últimos semestres de pronto escuchamos del Beta de .NET en MSDN, un buen amigo mío lo descargó no sé de dónde y pudimos ver en primer instancia lo que significó el nuevo modelo e acceso a datos, la evolución de DAO por ADO y de ADO a ADO.NET. Recuerdo que el simple el hecho de tener DataSets y DataTables con respecto a Recordsets fue increíble. La posibilidad de trabajar Offline y usar DataSet.WriteXml() para llevarnos los datos en XML y poder trabajar fuera de línea nos dio una y refrescante alternativa. El poder serializar objetos para persistirlos también fue algo emocionante. Tratar de asimilar los tipos de datos por valor y por referencia también fue retador. El 13 de Febrero de 2002 se liberó Visual Studio .NET 2002 en San Francisco, CA donde Bill Gates presidio el lanzamiento y dejó ver la visión que ha venido empujando a Microsoft desde ya hace mucho tiempo "La información disponible a cualquier hora, en cualquier lugar y desde cualquier dispositivo". En ese lanzamiento Grady Booch tuvo una participación durante una demostración justamente hablando de modelado y de ahí conocí el mundo de UML, Design Patterns, etc. También a Tim Huckaby fue parte del Iron Developer contest con quien después tuve la oportunidad de trabajar aquí y algunos otros Speakers en especial a Ari Bixhorn y Chris de DPE de Microsoft. Increíble el lanzamiento y dejó ver todo una nueva visión. En aquel entonces los recursos de capacitación disponibles eran pocos, el .NET Show con Robert Hess y Erica Wiechers, LearVisualStudio.NET con Bob Tabor que después lo hicieron MVP, también me fascinó el concepto del programa VBTV Cheap Show de Chris and Ari donde de una manera muy cómica y relajada dieron a conocer Visual Basic .NET. Tuve la oportunidad de hacer un proyecto en ASP.NET usando Visual Studio .NET 2003 para un evento nacional de la universidad, ahí fue mi primer presentación técnica ante ejecutivos y director nacional de la institución, toda una experiencia nueva pero tan familiar a la vez. Estuve trabajando por un tiempo como programador ASP y de pronto llegó la oportunidad para ser programador .NET de una empresa de software para gobierno importante en mi ciudad. Inicie con Visual Studio .NET 2003 creando aplicaciones ASP.NET 1.1. En ese entonces surge Pattern & Practices y pude conocer el podcast de .NET Rocks de Carl Franklin. Los blogs empezaron a ser más populares. Trabaje bastante con Visual Studio .NET 2003, recibí el nombramiento MVP en el 2004, tome el riesgo y me fui a la ciudad de México a trabajar como instructor y conferencista, surgió Visual Studio 2005 y tuve la oportunidad de participar en el lanzamiento del producto dando platica de ASP.NET 2.0 y conociendo a personas con las sigo frecuentando y que también son MVPs. Lo que más me llamó la atención en aquel entonces fue el modelo proveedor de ASP.NET para soportar la extensibilidad y la implementación de mecanismos muy interesantes para fortalecer la integración. Una vez más Visual Studio 2005 y .NET Framework 2.0 introdujeron muchas mejoras para los programadores en especial el modelo proveedor y sin duda el uso de Generics como parte del modelo de programación y en el caso de Windows Forms el Clickonce Deployment, de hecho .NET Framework 2.0 fue la base de otras versiones de .NET Framework, básicamente se han ido apilando nueva funcionalidad. A mediados entre 2005 y 2008 Microsoft busca unificar los paradigmas de desarrollo y crea WCF, WF, WPF y CardSpace como parte del .NET Framework 3.0. Cabe mencionar que SharePoint 2007 fue construido sobre .NET Framework 2.0 y 3.0. Un cambio radical de nuevo en el modelo de programación y en la forma de construir soluciones conectadas, visualmente atractivas y procesos de negocio. En el 2008 se liberó Visual Studio 2008 con el .NET Framework 3.5 donde por fin LINQ pudo florecer y posicionarse como la respuesta para abstraer el lenguaje que normalmente usamos para manipular una base de datos. LINQ nos dio la posibilidad de seguir usando el lenguaje de programación que conocemos para expresar de forma unificada consultas a bases de datos, colecciones de objetos, archivos XML y cualquier otra fuente de datos para la cual existiera un proveedor, adicional fue la base de Entity Framework como el ORM de Microsoft. Sin duda .NET Data Services (la implementación RESTFull) fue otro nuevo y refrescante enfoque para facilitarnos la construcción de aplicaciones conectadas. También .NET Framework 3.5 y Visual Studio 2008 han sido críticos para la evolución de la plataforma .NET ya que se introdujo de forma muy básica la posibilidad del paralelismo y la noción de facilitarnos la escritura de programas capaces tomar ventaja de los diferentes procesadores y núcleos que el hardware tiene. Se introdujo extensiones para trabajar con patrones como MVC y MVVM para web como para cliente. Ya en la versión .NET Framework 4.0 y Visual Studio 2010 florecieron los patrones con nuevas plantillas de proyecto, pudimos tener integrado en el lenguaje una serie de clases para facilitarnos la escritora y uso de aplicaciones paralelas y asíncronas. Y sin duda Visual Studio fue re construido ofreciendo una UI basada en WPF con un bonche de mejoras para depuración, visualización de código, documentación, análisis, diagramas etc. Visual Studio 2012 también ya fue liberado y sus características a la par del sistema operativo han venido a revolucionar la forma en que construimos aplicaciones así como también el ecosistema para distribuirlas.

Todo este texto ha sido inspirado por un artículo que leí hace un par de días y que quiero recomendar ampliamente para aquel programador avanzado y principiante. Este artículo se llama "Turning to the past to power Windows’ future: An in-depth look at WinRT" y da una explicación del pasado para entender mejor el presente y sin duda el futuro. Si realmente estas interesado en el mundo Microsoft tienes que leerlo.

Code de Webcast de Flujo de Trabajo con InfoPath

Damas y caballeros aquí les dejo el proyecto de código de Visual Studio 2008 que generé durante el WebCast de Construccion de Flujos de Trabajo con Formularios InfoPath 2007. Espero les sirva y muchas gracias por haberme seguido todos hasta el final.

Saludos.

Invitación a eventos en línea sobre desarrollo SharePoint en Mayo del 2009

clip_image002

Estimados lectores interesados en el desarrollo SharePoint, durante el próximo mes de mayo del presente año estaré presentando una serie de charlas sobre SharePoint y tengo el gusto de invitarle a presenciar de manera virtual esta seria de conferencias virtuales “webcast” a través de los eventos en línea de Microsoft Latam.

Queda usted cordialmente invitado a las siguientes charlas:

Sin más por el momento espero poder contar con su amable presencia.

Segundo Simposio Latinoamericano de SharePoint registrate ya!

El próximo 23 de abril del presente año se llevará acabo el Segundo Simposio Latinoamericano de SharePoint donde estaremos presentando una serie de pláticas sobre mi producto favorito SharePoint desde la perspectiva desarrollador y IT Pro. Los expositores son Haaron Gonzalez, Luis Du Solier, Misael Monterroca, Rodrigo Diaz, Mauricio Angulo, Hector Insua, Ruben Colomo, Tomas Hernández, Javier De Labra, Francisco Hernandez y Joel Olson.

Es muy importante que te registres aqui el evento tiene una cuota de recuperación de 250 MN.

UPDATE: Cambio de domicilio del evento, será en:

Lugar: Hotel Fiesta Americana, Reforma #80

 

invitacionSegundoSimposioSharePointMexico

Nos vemos!

Estaremos transmitiendo en vivo la plática de la comunidad Tijuana.NET

tijuana

 

La plática que estaré dando hoy 25 de marzo para la comunidad de Tijuana.NET la podrás presenciar remotamente en línea vía live meeting. Para poder ver  requerás instalar el Cliente de Livemeeting 2007 y despues acceder a la charla Introducción de Productos y Tecnología SharePoint para Desarrolladores .NET

Lo que veremos es:

Que puede hacer por mi SharePoint, como empezar a desarrollar en SharePoint, arquitectura de WSS, arquitectura de MOSS, beneficios de SharePoint para programadores .NET, personalizando con SharePoint Designer 2007 y personalizando con Visual Studio 2008.

Te esperamos!

Useful SharePoint Designer custom activities

I was searching projects in codeplex.com and found an interesting project called Useful SharePoint Designer Custom Workflow Activities where you can find:

  • Send Email with HTTP File attachment – Allows sending emails with attachments retrieved using a web request
  • Send Email with List Item attachments – Allows sending list item attachments as files attached to an email
  • Start Another Workflow – Starts another workflow associated with a list item
  • Grant Permission on Item – Allows granting of specified permission level on a spicified item
  • Delete List Item Permission Assigment – Allows deleting of specified permission level assigment for a given user
  • Reset List Permissions Inheritance – removes any unique permissions assigned to an item by inheriting list permissions
  • Is User a member of a SharePoint group – Checks if a given user is part of given sharepoint group
  • Is Role assigned to User – Checks if a user role is already assigned on the current list item
  • Lookup user info – allows to lookup properties in site’s user information list for a given login
  • NEW! Copy List Item Extended Activity – Allows copying/moving list items and files cross site.
  • NEW! Send Email Extended – Enhaced version of the OOTB activity. Allows you to specify the sender. Also does not break links in body.

And also there are a few activities related to working with InfoPath. Not so long ago I was writing code to read and write values inside InfoPath forms on current Workflows. So, these activities are very useful.

  • Get InfoPath field inner text
  • Get InfoPath field inner xml
  • Set InfoPath field inner text
  • Set InfoPath field inner xml

Kudos to Paul Kotlyar’s

Creando sitio y webpart programaticamente en SharePoint 2007

La semana pasada surgió el siguiente requerimiento algo especial, en este escenario se cuenta con un sitio SharePoint dedicado a un documento en particular, en este sitio se cuenta con una sección de noticias, enlaces y tareas todo en relación a este documento. Cabe mencionar que este sitio es creado programáticamente cuando este documento ha sido aprobado por un grupo de revisores para su publicación en la intranet.


sd01Así que se decidió crear una actividad para SharePoint Designer 2007 que permita la creación del sitio basado en una plantilla de SharePoint especifica, esto es cuando el documento es depositado sobre una biblioteca de documentos en particular, así mismo, se debe de crear programáticamente una webpart de visualización de contenido web, esto para permitir pre visualizar el documento sobre la interface principal del sitio creado y omitir la necesidad de tener que darle clic al documento para abrirlo en el cliente de office.  Para conocer mas sobre actividades de SharePoinr Designer 2007 ver aqui.


La actividad solicita prácticamente el contexto del elemento actual y el nombre de la plantilla que utilizaremos como base para la creación del nuevo sitio. Esta plantilla deberá de estar en la lista de plantillas de sitio de nuestro SharePoint.


sd02


La pre visualización fue sencillo lograrlo gracias a la especificación XPS que tenemos disponible en el .NET Framework 3.0. Se decidió transformar el documento a formato XPS y utilizar el visor de documentos XPS que Internet Explorer 7 adopta por defecto cuando instalamos la versión .NET Framework 3.0. XPS es una nuevo formato especificado en XML que Microsoft libero para darle mucho mas portabilidad y seguridad a contenido que requiere ser compartido. Para más información ver aquí. Por otro lado XPS soporta Rights MAnagement Services y firmas digitales de tal manera que podemos mantener una politca de seguridad al contenido digital. Para mas informacion sobre RMS ver aqui.


Entonces, al convertir nuestro documento a formato XPS podremos abrirlo directamente sobre IE7 y si esto lo invocamos dentro de nuestro webpart visor de paginas web entonces tendremos nuestro documento cargado sobre nuestro sitio SharePoint.


Veamos como crear programaticamente.


sd04


En este bloque de codigo vemos que la clase SPWeb contiene la coleccion webs y es aqui donde registramos nustro nuevo sitio en donde mandamos el nombre del sitio, este nombre es usado para el Url, mandamos el titulo de nuestro sitio, la descripcion, el lenguaje, el nombre de la plantilla stp que usaremos para la creacion del sitio y las opciones de heredar los permisos del sitio primario. Despues creamos una instancia de la webpart que vamos a crear programaticamente y especificamos sus propiedades, la propiedad ContentLink representa el Url que queremos visualizar. Por ultimo gracias a SPLimitedWebPartManager podemos obtener la coleccion de webpart que una paginaalberga para poder agregar nuestra webpart creada mediante el metodo AddWebPart.


NOTA:  Este codigo no es para produccion en su totalidad, ha sido modificado para mostrar los puntos a tratar en este post.


El resultado:


sd03


 

 

Recursos CodeCamp

Para los que asistieron al CodeCamp el día de hoy y que recibieron el DVD de recursos en el encontraran todo los archivos, ejecutables, herramientas y demás que requieren para iniciar el desarrollo en .NET 3.0 les dejo unas indicaciones:

Seleccionen el cuadro de Recursos y Herramientas:

Despues instalen la edicion de Visual Studio 2005 que ustedes prefieran:

Despues instalen los requisitos para desarrollar con .NET 3.0 y haganlo en el orden mostrado:

Tambien en el mismo DVD de recursos encontraran la herramienta Expression Blend que estuvimos viendo.


** cross posting desde geeks.ms

New WF Web Workflow Approvals Starter Kit

Paul Andrew one of the WF experts publish in his blog a post about a new starter kit release. The name is Windows Workflow Foundation Web Workflow Approvals Starter Kit. Just imagine what you can learn here.

This starter kit is a Visual Studio 2005 project that demonstrates using Windows Workflow Foundation for simple task oriented workflow in an ASP.NET web application. A workflow model is used to automate work order requests at a small example company. It includes three pre-defined roles which each play a part in the work order creation, approval and monitoring. The starter kit may be modified for other workflow models to suit other small web based task management systems.

Some friends will love this. Enjoy!

un momento emocionante para todos

Conforme pasa el tiempo más emocionante se vuelve el mundo de las tecnologías de información. Es increíble el pasado, presente y futuro que en la industria estamos percibiendo. Antier vi este video en Channel 9 sobre WCF solo Doug Purdy plática sobre Workflow Foundation donde dice que WF es el nuevo VB para su mama. En otras palabras la tan esperada herramienta visual para el modelado de diagramas de flujo que se integrar fácilmente al mundo administrado de .NET. Comentan que parte de la visión de este componente es hacer que las personas no escriban código alguno sino simplemente modelen el diagrama de flujo y conecten las piezas de funcionalidad que el programa debe de realizar cuando he platicado de WF normalmente utilizo palabras más complicadas para describir lo que acabo de decir, con este video encontraras verdaderas palabras y formas relajadas de comunicar lo que WCF y WF es y representa desde la perspectiva relajada de los arquitectos de Microsoft.

También como tengo la oportunidad de participar en el programa de Testing de algunas tecnologías de Microsoft desde hace tiempo encuentro una pieza de tecnología que en lo particular me pareció interesante desde la perspectiva de alcance e impacto que tendrá. Hablo de la tecnología con nombre de código “Grava” las nuevas herramientas para la creación de contenido educacional de Microsoft que en definitiva atenderá a un mercado más en la industria que requiere innovación y desarrollo. Imagina la idea de que ahora cualquier estudiante, académico, catedrático, etc. puede utilizar un software que simplifica la expresión y pensamiento de ideas así como su publicación. Así que muy pronto tendremos una nueva ola de desarrollo en las academias.

En fin insisto en que estamos en un momento emocionante en términos tecnológicos como ejemplo veamos este video que muestra como gracias a las tecnologías de información investigadores y científicos pueden colaborar para lograr que el cáncer sea un padecimiento administrado.


** cross posting desde geeks.ms