30 dias de prueba gratis en hosting de sharepoint
30 June 09 01:44 AM | mmonterroca | 1 comment(s)

Logo

 

Esto es una excelente noticia, nuestros amigos de Soluciones en SharePoint estan ofreciendo 30 días gratis para que pruebes su servicio de hosting en paquetes de sharepoint, más información en su blog  -> http://blog.solucionessharepoint.com/post/2009/06/29/c2a1Prueba-nuestro-servicio-30-dias-gratis!.aspx

 

Utilizando SharePoint como manejador de contenido 2
01 February 09 01:36 PM | mmonterroca | with no comments

[Post continuación de Parte 1]

La instalación de WSS (Windows SharePoint Services por sus siglas en ingles, para abreviar será el termino que estaremos utilizando) es un proceso realmente muy sencillo, sin embargo cree un screencast para mostrar los pasos más significativos de la instalación, a manera de resumen se hace lo siguiente:

  • Se realiza la descarga desde aqui: (Seleccione la versión en español y actualmente es WSS Con el Service Pack 1)
  • Se selecciona la instalación básica la cual a grandes rasgos hace:
    • Instala SQL Server Express para almacenar el contenido de configuración y los diferentes sitios creados.
    • Configura la búsqueda dentro de sitios web de SharePoint
    • Crea también un sitio SharePoint de ejemplo

Para descargar el screencast da un clic aquí, el screencast está resumido en menos de dos minutos en lugar de los casi 16 minutos que se tardo en mi equipo :D

La instalación avanzada es utilizada cuando queremos configurar de manera manual la instalación de SharePoint, como seleccionar un servidos de base de datos existente, crear una granja de servidores  SharePoint etc.

Ya con SharePoint instalado, procederemos a realizar la personalización del sitio (branding)

Migrando usuarios de SharePoint entre dos servidores y/o nombres de dominio diferentes
01 February 09 01:47 AM | mmonterroca | with no comments

Escenario:

Cambiar un servidor de Windows SharePoint Services 3.0 de Servidor A a Servidor B utilizando la herramienta de BackUp y Restauración del mismo WSS

No se cuenta con Active Directory, los usuarios son almacenados localmente en cada servidor A y B respectivamente

 

Problema:

WSS guarda el nombre de los usuarios con el nombre del dominio incluido es decir  ServidorA\nombreUsuario, al realizar el proceso de restauración en el ServidorB y claro, crear los respectivos usuarios (ServidorB\nombreUsuario) WSS no reconoce los permisos de los usuarios “anteriores” ya que WSS sigue haciendo referencia a ServidorA\nombreUsuario en lugar de ServidorB\nombreUsuario.

Imagínense el caso de que sean más de 50 usuarios, diferentes subsitios y claro, permisos personalizados :(

Solución:

Después de entrar en pánico y tras varias horas de búsqueda en internet, encontré que la herramienta stsadm.exe cuenta con la opción de “migrar” usuarios de un dominio a otro (aún cuando no se cuente con Active Directory) la utilización es la siguiente:

stsadm.exe -o migrateuser  -oldlogin ServidorA\NombreUsuario  -newlogin ServidorB\NombreUsuario    -ignoresidhistory

Con el comando anterior, todos los permisos serán respetados para el nuevo usuario asignado.

 

Saludos!

Utilizando SharePoint como manejador de contenido 1
29 January 09 09:59 PM | mmonterroca | 1 comment(s)

Una de las características un poco desconocidas de SharePoint es la posibilidad de utilizarlo como un manejador de contenido, si hacemos un poco de historia los portales tendían a ser archivos HTML completamente estáticos, por lo que el usuario final siempre terminaba dependiendo del área de sistemas para hacer cualquier tipo de cambio en el contenido ya sea agregar nuevas secciones, cambiar o agregar imágenes, crear formularios etc. ese problema se resolvió con la posibilidad de generar páginas de manera dinámica utilizando como fuente de información cualquier tipo de fuente de datos, como una base de datos, archivos txt, archivos xml en fin una gran lista de posibles fuentes de información, en la actualidad existen diferentes aplicaciones que permiten que el usuario final pueda crear un portal casi sin ningún tipo de interacción por parte del área de sistemas (aunque claro, siempre terminan dependiendo de nosotros muahahaha).

 

En esta serie de artículos veremos como SharePoint nos ayudará a crear un portal para internet (o una intranet claro está) para que el usuario final tenga la posibilidad de manejar el contenido por ellos mismos, para ellos necesitaremos:

  • Una pc con Windows Server 2003 SP1
  • SharePoint Services 3.0 (el cual es completamente gratuito)
  • SharePoint Designer (opcional, aunque para la serie de artículos solo explicaré los pasos utilizando está herramienta)
  • Visual Studio 2008 (opcional ya que dejaré archivos binarios para su utilización, solo será requerido en caso de que requieran hacer cambios en el código fuente)
  • Windows SharePoint Services 3.0 Tools: Visual Studio 2008 Extensions, Version 1.2

Este articulo lo estaré realizando sobre un ambiente virtualizado utilizando Virtual PC 2007, este es el escenario recomendado para hacer pruebas y posteriormente, pues ya realizar los cambios finales en algún ambiente de producción.

El primer paso será realizar la instalación de WSS (Windows SharePoint Services) que detallaré en el screencast que publicaré en la siguiente entrega.

El resultado final será un portal demo utilizando la siguiente plantilla: http://www.freecsstemplates.org/preview/freeradicals o claro, cualquiera que quieran de ese sitio.

Saludos!

Noticias rapidas!
18 November 08 12:56 PM | mmonterroca | with no comments

El Silverlight Tour en Español  abre nuesvas fecha y ciudades, esperalo pronto en tu ciudad!

  • Tijuana, México
  • Xalapa, México
  • Queretaro, México
  • Hermosillo, México
  • Mexicali, México
  • San Jose, Costa Rica
  • Barcelona, Spain
  • Madrid, Spain
  • Buenos Aires, Argentina
  • Lima, Peru
  • Más información: http://squad.devworx.com.mx/blogs/rodrigo/archive/2008/11/10/el-silverlight-tour-workshop-en-espa-241-ol-se-va-a-sudam-233-rica-caribe-y-espa-241-a.aspx

     

    Descarguen tambien los ultimos podcast que transmitimos desde el pasado PDC en loa angeles california:

    Emisión 4
    http://squad.devworx.com.mx/blogs/podworx/archive/2008/11/02/podworx-4ta-emisi-243-n.aspx

    Emisión 5:
    http://squad.devworx.com.mx/blogs/podworx/archive/2008/11/02/podworx-5ta-emisi-243-n.aspx

     

    Salu2!

    Happy Birthday DevWorx
    03 October 08 12:54 AM | mmonterroca | 2 comment(s)

    El día de ayer fue muy importante para todo el equipo de DevWorx ya que cumplimos nuestro primer año de operaciones, es un verdadero orgullo pertenecer a una empresa que se ha logrado consolidar de una manera muy fuerte en el mercado.

    En este tiempo hemos aprendido más de lo que personalmente me imagine alguna vez hacerlo, la experiencia profesional que tenemos se ha visto reflejada en el crecimiento de DevWorx. Este logro no es sólo es de nosotros, tenemos un gran agradecimiento principalmente a nuestros clientes, gracias verdaderamente por confiar en nosotros.

    A nivel personal, también quiero agradecerle a mis amigos Rocky y Maic, gracias nuevamente por compartir este sueño/objetivo en común. Jocho, muchas gracias también por ser parte de nuestro equipo.

     

    ¡Forza DevWorx!

    Filed under: ,
    Silverlight Tour Workshop ahora en Español
    11 August 08 02:28 AM | mmonterroca | 2 comment(s)

    El SilverLight Tour ahora está también disponible para Latinoamérica y España, DevWorx estará realizando la impartición del curso completamente en español.

    De manera inmediata, se encuentran fechas confirmadas para la Cd de México, Guadalajara y Monterrey, próximamente anunciaremos más fechas y ciudades. Para consultar las fechas y registrarte al curso puedes ingresar a cualquiera de los siguientes links Fechas en español,   Fechas (Ingles)

    El Silverlight Tour es un curso de tres días acerca de Silverlight 2.  Este curso divide su contenido en tres diferentes áreas: Diseño, Desarrollo y el Server-Side.  Los asistentes podrán ser capaces de desarrollar aplicaciones de Silverlight 2 una vez que atiendan el curso.  El curso está estructurado de una mezcla de lecciones didácticas, demostraciones y laboratorios.  Cada asistente terminará el curso habiendo creado diversas aplicaciones con Silverlight 2.  Esta variedad de técnicas de aprendizaje asegurará que todos los asistentes adquieran los conocimientos en la tecnología de una manera rápida y emocionante.

     

    El temario completo del curso lo puedes consultar aquí

    Microsoft Gold Certified Partner
    19 July 08 01:41 AM | mmonterroca | with no comments

     

     

    Es un orgullo para DevWorx anunciarles que ya obtuvimos nuestra certificación oro como partner de Microsoft en las siguientes competencias:

    SOA and Business Process
    Mobility Solutions
    Custom Development Solutions
    Business Intelligence (no se muestra en el logo pero ya lo estamos verificando con nuestro account manager)

    !Foza DevWorx!
    Parte de un gran equipo
    03 June 08 08:06 PM | mmonterroca | with no comments

     

    El día de mañana es la presentación de mi amigo Rodrigo en el TechEd Developers 2008, por cierto él está haciendo una muy buena recopilación de lo que está sucediendo, no dejen de seguirlo en su blog

    ¡Que gusto es ser parte de un gran equipo!

    Buenas nuevas..
    19 May 08 01:24 AM | mmonterroca | with no comments

    ¡Como pasa el tiempo tan rápido!  les dejo una actualización breve de noticias.

     

    La clínica de certificación va cada día mejor, recién hemos terminado el módulo 1 y esperamos tener listo el primer examen para finales de ésta semana. otra noticia importante en relación es la clínica es que hemos decido hacerla publica pero únicamente para el contenido, para poder presentar los exámenes y participar en el foro si será necesario registrarse, para consultar el contenido solo basta que ingreses a la aula virtual

     

    La segunda emisión del PodWorx está disponible desde hace casi 15 días, si quieres agregarlo a tu cliente de Itunes puedes utilizar el siguiente url: itpc://feeds.feedburner.com/devworx . La tercera emisión la grabamos la semana pasada  espero que mañana ya este lista la producción para poder anunciarlo como es debido :D

    Acabo de subir un screencast para la clínica, el tema es muy interesante por que trata de como crear un Dominio de Aplicación (Application Domain) para restringir código potencialmente inseguro o en el cual simplemente no confiamos, el url aquí: http://files.devworx.com.mx/Clinicas/70-536/DevWorx.ApplicationDomain.asx

     

    Twitter se está convirtiendo en una herramienta que comienza a dar valor, algunas de las aplicaciones son:

    • Microblogin, en varias ocasiones me he detenido en publicar un post para poner una sola noticia  o simplemente un link de algo interesante, Twitter al ser una herramienta que solo soporta 140 caracteres es perfecta para este fin, como por ejemplo @SLMicroBlog
    • Alertas, existen portales que están comenzando a utilizar Twitter para hacer la notificación de noticias u alertas, ejemplo: @cnn
    • Comunicación, la parte "ligera" es enterarte que andan haciendo las personas de tu interés, familia, amigos, compañeros etc, ejemplo: @srbichi (Maic)

    en fin, si quieren seguirme mi Twitter es @mmonterroca

    Saludos!

    Evento de lanzamiento de la Comunidad .NET D.F. y Developers Dot Net
    08 May 08 12:58 PM | mmonterroca | with no comments

    La Comunidad .NET de la Ciudad de México y DevelopersDotNet te invitan al evento de Lanzamiento.

    Fecha:
    13 de Mayo

    Hora:
    11 a.m. – 7.p.m

    Lugar:
    ITAM

    Dirección:

    Río Hondo # 1
    Col. Progreso Tizapán
    C.P. 01080 Del. Álvaro Obregón
    México D.F.

    Agenda:

    11:00 a 12:30
    Héctor Obregón -Interoperabilidad entre Código Nativo en C++ (con MFC), Windows Forms y WPF

    12:30 a 2:00
    Misael Monterroca - Silverlight 2.0 Beta 1

    2:00 a 3:00
    Tiempo disponible para salir a comer.

    3:00 a 4:30
    Miguel Ángel Moran - Nuevos elementos sintácticos con C# 3.0 y VB 9.0

    4:30 a 5:45
    Alfredo Ceballos – Experiencias de Usuario Enriquecidas en Web y Windows.

    5:45 a 7:00
    Raúl Guerrero –  SQL Server 2008

    Mapa:

    http://www.itam.mx/es/ubicacion/riohondo1.html
    http://www.itam.mx/es/ubicacion/riohondo2.html

    Compartiendo Forms Authentication entre diferentes aplicaciones web
    25 February 08 02:36 PM | mmonterroca | 2 comment(s)

    Introducción

    Asp.net permite incorporar de una manera muy rápida la autenticación vía Forms Authentication, en este articulo veremos como configurar dos o más aplicaciones web diferentes para compartir el mismo token de autenticación generado.

     

    Prerrequisitos

    • Contar con una aplicación web configurada correctamente con Forms authentication
    • Tener una segunda aplicación web en donde se necesite tener el mismo token de autentificación (es decir, no volverse a firmar nuevamente)

    Escenario

    Existe una aplicación web funcionando con Forms authentication(www.sitiowebficticio.com) , por cuestiones de diseño se decide separar dicha aplicación en dos diferentes sitios web mediante directorios virtuales  www.sitiowebficticio.com/App1 y www.sitiowebficticio.com/App2

    El objetivo es que ambas aplicaciones web compartartan el mismo token de autenticación generado por Forms authentication, de esta manera el usuario solo tendría que escribir sus credenciales una sola vez.

     

    Manos a la obra

    En App1 y App2 abrir el web.config, debería tener algo similar a lo siguiente (asumiendo que ya se encuentra configurado Forms authentication):

     

       1: <connectionStrings>
       2:     <add name="MembershipCS" connectionString="Data Source=(local);Initial Catalog=kpmg;Integrated Security=true;"/>
       3: </connectionStrings>
       4: <system.web>        
       5:     <!--
       6:         The <authentication> section enables configuration 
       7:         of the security authentication mode used by 
       8:         ASP.NET to identify an incoming user. 
       9:     -->
      10:     <authentication mode="Forms"/>    
      11: <membership defaultProvider="SqlProv">
      12:         <providers>
      13:             <add name="SqlProv" type="System.Web.Security.SqlMembershipProvider,System.Web, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" 
      14:          connectionStringName="MembershipCS" 
      15:          enablePasswordRetrieval="false" 
      16:          enablePasswordReset="true" 
      17:          requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
      18:         </providers>
      19:     </membership>

    Suponiendo que dentro de app1 y app2 existen dos folders en donde se le niega el acceso a usuarios anónimos el path seria el siguiente:

    1. Usuario accede a www.sitiowebficticio.com/App1/CarpetaSegura/PaginaSegura.aspx, forms autentication redirecciona a login.aspx para que el usuario ingrese sus credenciales
    2. El usuario ingresa sus credenciales, MemberShipProvider valida y login.aspx redirecciona a www.sitiowebficticio.com/App1/CarpetaSegura/PaginaSegura.aspx
    3. El usuario ahora quiere ingresar a App2, www.sitiowebficticio.com/App2/CarpetaSegura2/otrapaginasegura.aspx, forms authentication redirecciona a login.aspx pero de App2

    ¿Por que sucede este comportamiento si en ambas aplicaciones web tenemos exactamente la misma configuración?

    Este comportamiento se debe a que el cookie que genera asp.net está encriptado y para generar la encriptación / des encriptación asp.net utiliza los valores especificados en los elementos validationKey y decryptionKey. Asp.net por defecto genera esas claves a nivel aplicación  de manera automatica, es por eso que cuando el usuario pasa de App1 a App2 el cookie no puede ser leio de manera correcta ya que las claves de encriptación son diferentes y por ende, se solicita nuevamente la autenticación ya que Forms authentication toma ese cookie como invalido al no poderlo desencriptar

     

    Lo que haremos será especificar dichas claves, para ello crearemos una aplicación de consola que generara dichas claves criptograficas:

       1: using System.Security.Cryptography;
       2:  
       3: namespace GenerarClavesAspNet
       4: {
       5:     class Program
       6:     {
       7:         static void Main()
       8:         {
       9:             string decryptionKey = CrearClave(System.Convert.ToInt32(24));
      10:             string validationKey = CrearClave(System.Convert.ToInt32(64));
      11:  
      12:             Console.WriteLine("<machineKey validationKey=\"{0}\" decryptionKey=\"{1}\" validation=\"SHA1\"/>", validationKey, decryptionKey);
      13:  
      14:             Console.ReadKey();
      15:  
      16:         }
      17:  
      18:         static String CrearClave(int numBytes)
      19:         {
      20:             RNGCryptoServiceProvider service = new RNGCryptoServiceProvider();
      21:             byte[] buff = new byte[numBytes];
      22:  
      23:             service.GetBytes(buff);
      24:             return ConvertirString(buff);
      25:         }
      26:  
      27:         static String ConvertirString(byte[] bytes)
      28:         {
      29:             StringBuilder cadena = new StringBuilder(64);
      30:  
      31:             for (int counter = 0; counter < bytes.Length; counter++)
      32:             {
      33:                 cadena.Append(String.Format("{0:X2}", bytes[counter]));
      34:             }
      35:             return cadena.ToString();
      36:         }
      37:  
      38:     }
      39: }

     

    Al ejecutar la aplicación obtedremos un resultado similar al siguiente (las claves son generadas aleatoriamente)

       1: <machineKey 
       2: validationKey="3E622C9B81A29248B61C4A7863F9632ED1A98574741D77954E7A3643F8FFAC84F11ED1D62B9D3A9813389FB969AEFBE95BCFFD46D50840E67A167AA987DDE2DB" 
       3: decryptionKey="5950EB5459814355C270F07761331247D83723D0701EBF21" validation="SHA1"/>

     

    Nota: Los valores aceptados para decryptionKey es de 8 a 24 bytes (en el ejemplo se usan 24) y para validationKey es de 20 a 64 bytes ( en el ejemplo se usa el nivel mas alto 64 bytes)

    El resultado lo incorporaremos en ambas aplicaciones de está manera el token será compartido por ambas aplicaciones, el código en ambos web.config deberia de quedar similar al siguiente:

     

       1: <connectionStrings>
       2:         <add name="MembershipCS" connectionString="Data Source=(local);Initial Catalog=kpmg;Integrated Security=true;"/>
       3:     </connectionStrings>
       4:     <system.web>        
       5:         <!--
       6:             The <authentication> section enables configuration 
       7:             of the security authentication mode used by 
       8:             ASP.NET to identify an incoming user. 
       9:         -->
      10:         <authentication mode="Forms"/>    
      11:     <membership defaultProvider="SqlProv">
      12:             <providers>
      13:                 <add name="SqlProv" type="System.Web.Security.SqlMembershipProvider,System.Web, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" 
      14:              connectionStringName="MembershipCS" 
      15:              enablePasswordRetrieval="false" 
      16:              enablePasswordReset="true" 
      17:              requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
      18:             </providers>
      19:         </membership>
      20:  
      21:     <machineKey validationKey="3E622C9B81A29248B61C4A7863F9632ED1A98574741D77954E7A3
      22: 643F8FFAC84F11ED1D62B9D3A9813389FB969AEFBE95BCFFD46D50840E67A167AA987DDE2DB" 
      23:   decryptionKey="5950EB5459814355C270F07761331247D83723D0701EBF21" validation="SHA1"/>

     

    De esta manera el path queda de la siguiente manera:

     

    Conclusión

    Asp.Net permite configurar de una manera muy rápida el compartir un token de autentificación entre diferentes aplicaciones web.

    Invitaciones enviadas
    20 February 08 04:43 AM | mmonterroca | with no comments

    Las invitaciones para la clínica 70-536 ya fueron enviadas (perdón por el día de retraso)  en total se enviaron 551 invitaciones, por favor verifiquen la recepción del correo electrónico.

     

    De nuevo, gracias por su interés

     

    Saludos, Misael.

    ¡PodWorx!
    14 February 08 05:59 PM | mmonterroca | 1 comment(s)

    ¡Esta es nuestra semana de lanzamientos! El día de hoy le toco a nuestro podcast aka "PodWorx", más información aqui y aqui

     

     

    .danza :D

    Filed under: ,
    Mas recursos
    13 February 08 09:05 PM | mmonterroca | with no comments

    Como muy bien Rocky lo comento en su post de "como ser mejor desarrollador" una buena manera de lograrlo es viendo webcast,  MSDN Media Center es un recurso de medios en español en donde existe bastante contenido, WebCast, ScreenCast y PodCast

    Y para muestra, falta un botón  mi buen amigo Haaron Gonzalez estará dando dos webcast sobre VSTO y Flujos de trabajo sobre Sharepoint, altamente mente recomendables

     

    Salu2

    Filed under: ,
    More Posts Next page »