viernes, 30 de mayo de 2008

Edición rápida desde Sharepoint Designer

El otro día un compañero a través de nuestra herramienta de consulta de conocimiento técnico en Renacimiento nos preguntaba como realizar cambios en las páginas de sharepoint de manera que no saliera la típica distribución.

Os pongo lo que le propuse en un post rápido:

Vista de datos personalizada

Wss3 nos permite visualizar elementos de nuestro sitio con un estilo y una distribución personalizada mediante xsl.

Para ello podemos utilizar el DataFormWebPart.

Seleccionamos Inserta->Controles de Sharepoint->Vista de datos, a continuación nos aparecerá la librería de orígenes de datos configuradas en el sitio actual.

Seleccionamos la lista que queremos mostrar, botón derecho y seleccionamos "Mostrar datos".

A continuación nos aparecen los campos de la lista. Seleccionamos los que deseemos y en la parte superior pulsamos "Insertar campos seleccionados como.."

Ahí podremos insertar una vista de un elemento o varios.

Una vez configurado el origen de datos del webpart, podremos editar el xsl, añadiendo, moviendo lo que queramos.

Con Xsl podremos aplicar sobre el contenido condiciones if, bucles y fórmulas.

El DataFormWebPart además nos permite aplicar filtros, parámetros, conexiones, orden, nº de elementos visibles, paginación.

Formulario de edición personalizado

Si queremos que en nuestra lista al editar/visualizar un elemento aparezca un formulario con la distribución propia podemos utilizar los formularios de lista personalizada de Shrapoint.

Para ello iremos a la opción Insertar-> Controles de sharepoint ->Formulario de Lista personalizada.

A continuación nos preguntará la lista para la que queremos el formulario, y el tipo de formulario.

Una vez seleccionado, nos construirá un formulario con los campos de la lista, donde podremos cambiarlos, modificarlos, añadir, borrar, etc.

Incluso podemos hacer que un campo solo sea lectura.

Una vez terminado el formulario tendremos que configurar la lista para que cuando entre a editar/visualizar un elemento nos redirija a nuestro formulario de forma automática.

En el árbol de elementos del sitio, seleccionaremos la lista, botón derecho, propiedades.

Seleccionamos "Archivos auxiliares" y "elemento" (en caso de haber seleccionado anteriormente "elemento" en el formulario), y buscaremos el fichero para la acción que hayamos creado (edición, nuevo, visualización).

De esta manera por ejemplo, cada vez que se edite un elemento o se acceda a la dirección "Lists/MiLista/EditForm.aspx" nos redireccionará a nuestra página automáticamente.



Si vais a modificar el DispForm de una lista directamente con este mecanismo OJO!!!!, hay un bug o error o algún tipo de problema que hace que si modificas la página estándar DispForm se estropea la referencia de la lista y ya no puedes visualizar los elementos desde el formulario AllItems.aspx.

Para solucionarlo, teneis que hacer una copia de DispForm, modificar la copia y después asignar el nuevo fichero a la acción DispForm de la lista.

También tener en cuenta que cuando cambias un fichero con Designer lo estáis poniendo unghosted, por lo que esto solo vale para pequeños portales o demos. No os aconsejo hacer un proyecto serio solo utilizando Designer.

jueves, 22 de mayo de 2008

¿De qué me sirve una certificación Microsoft?

El otro día Jorge Diéguez me preguntaba el sentido de las certificaciones de Microsoft, “¿qué le aporta a mi empres que haga una certificación?”.

Yo tengo dos certificaciones de Microsoft: MCTS 70-528 Desarrollo de aplicaciones web y MCTS 70-541 Desarrollo de aplicaciones sobre WSS3. Mi experiencia ha sido muy positiva.

Las certificaciones dependen de quien las avale, no es lo mismo una certificación Microsoft que una de Oracle.

En el caso de Microsoft creo que lo que intentan es que la gente tenga una visión global sobre un tema determinado. En realidad con una certificación no eres experto en nada, pero si te proporciona una visión global que te permite aplicarla en los proyectos.

Al tocar muchos temas en las certificaciones, cuando estás delante de un cliente eres capaz de aplicar y entender esa visión global al proyecto. En mi caso, utilizo los libros de las certificaciones como guía de referencia.

¿Qué le aporta a la empresa?

Productividad. Esta es una palabra que todo el mundo comenta, pero pocas empresas emplean esfuerzos en conseguirla.

La productividad depende de varios factores: El carácter del empleado, el ambiente, las metodologías de trabajo, la motivación, los conocimientos, el uso de herramientas, etc..

La formación es un factor muy importante en la productividad. Cuanta más formación tengamos en nuestra materia mejor sabremos abordar los proyectos y conseguiremos soluciones estables, rápidas y reutilizables.

Por ejemplo: Si a un junior en ASP.NET le mandaras hacer un portal que hiciera que validara el acceso a las páginas en función del usuario, lo más probable es que haga un desarrollo a medida y lo vaya replicando por todas las páginas. Esto supondría un coste de cómo mínimo un par de jornadas. Sin embargo si hubiera estudiado la certificación en desarrollo de aplicaciones ASP.NET (70-528), sabría que podría hacerlo configurando el web.config.

Alguna vez tuve que ayudar a elaborar un plan formativo que formara parte de los objetivos anuales y llegamos a un diagrama similar al siguiente:

El concepto se basa en que cuando un empleado esté acabando un proyecto, antes de asignarle otro al menos reciba algún tipo de formación interna/externa/autoformación.

Con esa formación, el empleado habrá adquirido una serie de conocimientos que podrá aplicar en mejorar ciertos módulos o herramientas para ser utilizados en el siguiente proyecto.

Es una idea muy sencilla que en Renacimiento intentamos aplicar. Como en Renacimiento vendemos “Conocimiento y Calidad” gran parte de nuestros objetivos se basan en formación. Es decir que la empresa nos reserva ciertas horas al año para nuestra formación. Además disponemos de “listas de conocimientos” y expertos en determinadas áreas (tenemos a Roberto González MVP). Yo por ejemplo tengo que conseguir 3 certificaciones este año.

¿Qué me aporta a mí Microsoft?

Por un lado conocimiento para poder crecer profesionalmente, también satisfacción personal, nos aporta confianza ante los clientes y una visión global sobre las tecnologías Microsoft.

No creo que una empresa se fije exclusivamente en el nº de certificaciones para contratar a una persona. Aunque en determinados casos, si que es un valor adicional, por ejemplo, en Renacimiento buscamos personas con Certificaciones en MOSS o WSS. En este caso, si estaría aportando valor a la persona.

Nuevo plan MCP

Hace poco Microsoft cambió su plan de certificaciones. Actualmente están conviviendo el plan antiguo con el nuevo. Se está dando el caso que un MCAD tiene muchísimo más valor para Microsoft que un MCTS (Microsoft Certified Tecnology Specialist) que haya hecho el mismo nº de exámenes en el plan nuevo.

Lo que han hecho es especializar mucho más las certificaciones.

En el siguiente cuadro os muestro las certificaciones más relevantes en cuanto a desarrollo.

Os recomiendo que hagáis al menos una certificación. Si necesitáis documentación para prepararos la certificación 70-541 contactar conmigo en mi mail mariocortesflores@hotmail.com

miércoles, 21 de mayo de 2008

Múltiples providers de validación en wss3

Actualmente estamos en un cliente en el que hemos tenido que configurar un provider de seguridad en wss3. El problema que nos encontramos era que cuando se monta un provider que no lleva validación “Windows”, es decir Kerberos o NTLM, no funciona la integración con las aplicaciones clientes que lo consumen.
Lo que nos pasó fue que cuando intentamos conectar con Sharepoint Designer, con el provider a medida activado nos daba error al abrir el sitio.

Primero nos decía:

Y cuando marcas en la página de login “iniciar mi sesión automáticamente”, y vuelves a intentar abrir el site nos da el error de conexión, en nuestro caso con detalle en blanco.

De modo que como no podíamos quitar el provider a medida, pero necesitábamos trabajar y configurar sobre el portal, decidimos crear dos zonas de modo que en una (Default) validara por el provider a medida y por la otra zona (Custom) validara mediante NTLM.


How to

Os pongo un ejemplo sobre MOSS, pero con WSS también funciona:

1º Tenemos que configurar el provider de seguridad en nuestra aplicación web de wss3.

2º Una vez realizado haremos una extensión de nuestra aplicación web con otro puerto y seleccionaremos la nueva zona. Esto significa que cada zona tendrá una url distinta!!!!.

Al extender la aplicación, nos creará otra aplicación consumiendo de la misma bbdd de contenidos. Lo bueno es que al extender la aplicación nos habrá creado la nueva con el mismo pool de aplicación que la WebApp original. Tendreis que verificar que la identidad del pool es válida para las dos zonas, ya que podrías tener varios security providers que necesiten identidades de usuarios distintas.

3º Ahora solo tenemos que entrar a revisar el provider de nuestra aplicación web original y veremos que tenemos dos configuraciones de seguridad con las dos zonas.

También podremos configurar una zona con acceso anónimo y otra no.

En nuestro caso la url original era http://testpcserver/ . Al crear la zona tuvimos:

http://testpcserver/

http://testpcserver:18799/

Cuando vayamos a enumerar las aplicaciones web veremos que solo tenemos una, la original que extendimos.

Una vez creada y configurada la zona, ya podremos conectar con Sharepoint designer a la url de la nueva zona.


Inconvenientes

El problema es que al crear dos aplicaciones web, tendremos dos directorios virtuales y dos ficheros de configuración, por lo que si agregamos o modificamos un elemento directamente de modo que tendremos que mantener las dos instancias.

Por ejemplo: si queremos tener un web part en el directorio bin en lugar del gac, tendremos que mantener el fichero en los dos directorios bin de las aplicaciones web y asegurarnos que los webconfig tienen el webpart registrado.

martes, 13 de mayo de 2008

Microsoft Dynamics Mobile 1.1 released

Leticia Pérez Franganillo me acaba de pasar unas presentaciones sobre Microsoft Dynamics Mobile 1.1. MDB es una aplicación de movilidad integrada con dynamics que nos permite crear pedidos de venta, ver nuestros itinerarios y algunas cositas más.

Con MDB Nav 1.1 Microsoft quiere dar una solución temporal al problema que tiene con Dynamics Nav en temas de integración con sistemas externos.

Actualmente Microsoft está perfilando su nueva versión de Dynamics sobre .NET con WPF (mirar a partir del minuto 17) , está versión se centrará en la mejora tecnológica del producto. Esta mejora permitirá resolver muchísimos problemas técnicos que existen actualmente con DNav y hace que se pierdan muchísimas oportunidades de negocio.

Como casi no existen soluciones de movilidad integradas directamente (no ficheros) con Dynamics Nav Microsoft le da un pequeño empujón para que los partners se vayan concienciando en que a los clientes no solo hay que ofrecerles Navision. Este es uno de los principales problemas del sector especializado en Navision, solo se dedican a eso, cuando realmente podrían ayudar al cliente ofreciéndoles servicios que le aporten valores a sus negocios.




MDB está basado en los siguiente s componentes:
  • Mobile Framework:
    • Compact Framework 2
    • SqlServerCe
    • Windows Mobile 5 y 6
  • Mobile Server:
    • SqlServer 2005
    • Framework 3
    • Nav SP1 Connector
Para la sincronización de los datos utiliza réplicas de sqlServer y para la integración con Nav utiliza NAS (es decir, que es "monoproceso").
Ya hace un año estube haciendo un conector con Dynamics Nav multiproceso y la verdad es que hay mucho mercado, lo malo es que necesitas la licencia de partner para poder tocar Navision.


Os adjunto unos enlaces por si quereis echarle un vistazo.

Presentaciones: http://www.mobilenug.com/dynamics/Documentos%20compartidos/Forms/AllItems.aspx
Referencias MSDN para desarrolladores: http://msdn.microsoft.com/en-us/library/bb986981(MSDN.9).aspx
Blog del equipo del producto: http://blogs.msdn.com/dynamicsmobile/
Pre-release: http://dynamicsuser.net/files/folders/nav_official/entry98111.aspx
Si estais registrados en la partnersource:
https://mbs.microsoft.com/downloads/partner/mobile/factsheets/MobileDevelopmentTools_FactSheet.pdf
https://mbs.microsoft.com/fileexchange/?fileID=10508464-da1d-4ab4-9066-fa5a956f0252
https://mbs.microsoft.com/fileexchange/?fileID=4e8c7997-5185-415a-9ae6-5103a83b8fc1


Sharepoint Services 3 es gratuito?

Una instalación con WSS3 No tiene porqué salirnos gratis.

WSS3 forma parte del paquete de Windows server 2003, la instalación y uso de WSS3 no necesita de licencias adicionales. Al menos eso pensaba yo!!. Ayer Jorge Diéguez nos planteó la duda "¿necesitamos la licencia Windows External connector?". Al parecer había estado navegando y encontró el siguiente enlace: http://www.sharepointblogs.com/mattg/archive/2008/05/12/sharepoint-licensing-a-common-question-i-get-asked.aspx


Como consecuencia de esto hemos hecho una serie de consultas al soporte preventa de Microsoft sobre este tema y hemos concluido lo siguiente:
si queremos montar un portal con WSS3 puede que haya que adquirir licencias adicionales.

Cuando se monta wss3 para que pueda ser utilizado por usuarios públicos existen dos opciones en temas de licenciamiento:
  • Usuarios anónimos: En este caso no se necesita ningún tipo de licencia para WSS3.
  • Usuarios que realizan login
    • Usuarios externos a la compañía que se loguean en WSS3: En este caso se necesita un "External Connector License"
    • Usuarios de la compañía: Necesitan una licencia CAL.
La explicación que nos daba Microsoft era que siempre se debe licenciar los usuarios que necesitan hacer un login sobre los sistemas o aplicativos. Como WSS3 es un componente (aplicativo) de WS2K3 estamos utilizando recursos propios de WS2k3, por lo que necesitaremos una licencia CAL para cada usuario que haga logon sobre WSS3. En este caso Microsoft separa los usuarios externos a la compañía de los internos. Para los usuarios internos necesitaremos de una licencia CAL, y para los externos podremos o bien adquirir una licecnia CAL por usuario o bien adquirir el parquete "External Connector License".

La forma de realizar el login sobre WSS3 no afecta a la forma de realizar el registro, para Microsoft lo que importa es identificar la persona física independientemente que la validación se haga por un AD, ADAM o provider a medida con nuestro repositorio.

Es importante que tengais en cuenta que el paquete "External Connector License" es solo para usuarios externos a la compañía, es decir, que no están en nómina.
Las licencias de extenal connector se deben adquirir por cada servidor de nuestra granja que lo necesite.

Una vez visto el tema de wss3, tenemos que revisar las liencias de SqlServer. SqlServer es un producto aparte, al considerar a los usuarios de WSS3 como usuarios de WS2k3, si nuestro portal sobre WSS3 utiliza bbdd de contenidos de SqlServer (que será en el 100% de los casos) tendremos que tener una licencia CAL de SqlServer por cada usuario interno o externo que haga login en wss3. En este caso os recomendaría licenciar SqlServer por procesador en lugar de por usuario.


Como resumen os expongo nuestro caso y las licencias que necesita adquirir el cliente:

Los portales WSS3 son públicos en Internet, accederán usuarios anónimos y usuarios alojados en un repositorio propietario del cliente mediante un provider de seguridad a medida. A los portales no accederán usuarios del dominio.
Los servicios de WSS3 estarían alojados en servidores WServer 2003 Enterprise edition y utilizarían como bbdd SqlServer 2005 Standard Edition.
Solo estarán público los portales wss3.
Los servidores
Win2k3 y el SqlServer solo serán accesible para los usuarios administradores y aplicaciones (WSS3) internas, no accederá directamente ningún tipo de usuario adicional.

Licencias:
  • 1 Licencia X servidor de Ws2k3.
  • 1 External connector X servidor Ws2k3 (no cpu) que tenga instalado el wss3.
  • 1 licencia SqlServer 2005 standar/Enterprise x procesador físico


Os aconsejo que reviseis vuestras instalaciones realizadas en clientes.

En el siguiente enlace podreis encontrar información más detallada sobre el external connector: http://www.microsoft.com/windowsserver2003/howtobuy/licensing/extconnector.mspx


Mario: "Lo difícil no es vender, sino conseguir que tengas la necesidad de comprar"