Mostrando entradas con la etiqueta webmatrix. Mostrar todas las entradas
Mostrando entradas con la etiqueta webmatrix. Mostrar todas las entradas

diciembre 11, 2011

working with ActiveVFP 5.6 on WebMatrix



Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.

Esta es pequeña y rápida introducción a como utilizar ActiveVFP en su versión 5.6 vigente al 15/12/2011 (la ultima lanzada es la versión 6.03 del 29 de Enero del 2013, pero dicha versión solo corre sobre Windows Vista o superior, y por ello solo disponible en algunos servicios hosting.. las versiones 5.x si funcionan sobre cualquier versión de Windows y sobre cualquier servicio hosting Microsoft, y es en la practica lo mismo que la versión 6.x); y con lo que pretendemos saldar una deuda con los miembros de la comunidad del zorro, por cuanto, durante nuestro desarrollado profesional, y para el desarrollo de aplicaciones cliente-servidor de escritorio, muchas veces hemos recurrido a usar VisualFoxpro (VFP) en nuestros proyectos, y por supuesto, reconocemos las ventajas que nos proporciona utilizar el entorno de desarrollo VFP para lograr rápidamente productos de alcance profesional.. y al haberse indicado que una de las limitaciones de este entorno es su falta de integración al mundo del desarrollo Web, presentamos este codelab, que pretende mostrar en esta primera etapa, en un sencillo modelo, que también es posible trabajar rápidamente con ActiveVFP usando WebMatrix, utilizando comandos, funciones y clases VFP en nuestros proyectos Web, por el lado del servidor.

Para seguir este codelab solo se requiere tener conocimientos básicos de HTML, VFP y Javascript (no ExtJs que es el framework javascript que más utilizamos en nuestros codelabs), pues lo que buscamos es que se llegue a tener una visión completa de como trabaja ActiveVFP, y por supuesto vale reiterar, que ActiveVfp es un complemento que se encuentra correctamente integrado al desarrollo Web, y nos permite trabajar con tecnologías vigente como Ajax, Json, etc.. y a través de javascript y CSS, trabajar con frameworks como Jquery, ExtJs y toda la tecnología ligada a esas tecnologías.


Instalando nuestro codelab "avfp-guestbook" en WebMatrix

Como se indica, tenemos por supuesto que haber instalado en nuestro ordenador WebMatrix tal como se indica en nuestra entrada WebMatrix: la plataforma opensource de desarrollo Web de Microsoft, por lo que si no lo han realizado, deben seguir los pasos detallados en dicho codelab; y luego, proceder a cargar nuestro material de apoyo en una carpeta que podriamos llamar "AVFP" ó "ActiveVFP", como estimemos conveniente (..y por supuesto, si no deseamos instalar WebMatrix podríamos trabajar sobre un servidor IIS instalado en nuestro equipo Windows, pero su correcta configuración y uso tiene sus cosas.. por supuesto existe documentación y discusiones al respecto, por lo que también podríamos considerar como una opción).

Continuando pero sobre la plataforma WebMatrix, lo primero es proceder a crear un nuevo "site" en WebMatrix a partir de la carpeta creada al extraer los archivos de nuestra descarga (denominada "avfp-guestbook"). El proceso de carga y configuración de nuestro servidor IIS es realizado en forma automática por WebMatrix, por lo que luego solo debemos seleccionar nuestro navegador de preferencia para ejecutar el ejercicio y éste será lanzado al navegador seleccionado a través de un puerto que se encuentre disponible ( http://localhost:xxxxx ).


Material de Apoyo : 
( do click on blue icons to download )

avfp-guestbook.rar, que corresponde a una adaptación de un "libro de visitas" bajo un formato que ya hemos utilizado utilizado en nuestros codelabs referidos al uso del datastore de Google App Engine, pero ahora utilizando como Back-End a Visual Foxpro, mediante ActiveVFP, y desplegando nuestro proyecto sobre un servidor IIS incluído en la plataforma de WebMatrix; debiendo reiterarse que nuestro Back-End es VFP, por cuanto utilizamos las tablas *.dbf de dicha plataforma, y los comandos, funciones y clases de VFP requeridos para interactuar con ella.







ActiveVFP es una implementación en lenguaje ASP y ASP.Net de Visual Foxpro (como por ejemplo, tambien lo es la librería Quercus que nos permite trabajar con PHP en el mundo Java), vale decir que nuestros comandos, funciones y clases VFP son interpretados como comandos ASP que son los que si reconoce y ejecuta un servidor IIS, y el nivel de adecuación de esta herramienta es bastante completa y eficiente, abarcando incluso la versión 9 de VisualFoxpro.. otro punto importante, es que el proyecto ActiveVFP es bastante activo y vigente, siendo su ultima actualización realizada a fecha 29/01/2013 (versión 6.03 como hemos indicado, y la que se puede descargar directamente del homepage del proyecto activeVFP en codeplex).

Las instrucciones y clases para la interpretación de VFP se encuentran contenidas en los archivos activevfp.dll, VFP9RENU.dll y otros archivos *.dll contenidos en el complemento, y los que deben incluirse en la carpeta principal de cada uoo de nuestros proyectos, siendo también necesaria la existencia de una carpeta "prg", que es la que va a contener como mínimo, a nuestro archivo "main.prg", la que pone en funcionamiento la librería (mediante la función "AVFPinit()"), y en la cual podremos configurar las principales variables de entorno disponibles por la librería, entre las que podemos destacar:

  • oProp.DataPath, para indicar en que carpeta de nuestro "servidor" ó equipo se encuentra alojada la data de nuestro proyecto.
  • oProp.HtmlPath, para indicar en que carpeta se alojaran nuestros archivos HTM, que este caso han sido ruteados hacia "oProp.AppStartPath", que contiene la carpeta de donde se llama a nuestro proyecto.
  • oProp.Action, en donde podemos indicar el nombre del script llamado en cada proceso, etc.

En ese mismo archivo podremos definir nuestras propias funciones VFP que utilizaremos en el proyecto.. en este caso no necesitamos ninguno (excepto el que estamos utilizando para mostrar el código de nuestra página), pero conviene que en la documentación de ActiveVFP revisemos la clase AVFPproperties (casi al final de lista de clases).

En este codelab tambien estamos trabajando con la clase AVFPrequest, para capturar los datos de los FORM de nuestras páginas HTML (*.avfp en este caso), y asimismo a la clase AVFPresponse para redirigirnos a una dirección ó URL, pero para mayores detalles también conviene que revisemos la documentación al respecto.

Considérese que nuestras tablas *.dbf en la ruta indicada en la ruta de oProp.DataPath se encuentran disponibles para su uso, y "abiertas" en modo shared, porque aún estando en ejecución nuestro proyecto, podremos acceder a ellas, abriéndolas desde la pantalla de comandos VFP, pero verificando que también usemos modo "shared"; asimismo, si hicieramos alguna modificación en las mismas no olvidemos de ejecutar el comando "flush" desde nuestra ventana de comandos (ó código de nuestros programas y sistemas) para que se carguen nuestras modificaciones a las tablas y los podamos observar al refrescar nuestro navegador.

Este último punto muestra uno de los retos de programación referidos a desarrollo Web en cuanto a que las modificaciones que puedan estar efectuando nuestros usuarios no son reflejados automáticamente en nuestras "tablas" ó "grids", excepto que nuestro código contemple un periodo de refresco (pudiendo utilizar Ajax con esa finalidad), ó adecuando nuestra lógica para que considere probables modificaciones de la data que puedan efectuar nuestros usuarios.. ests técnicas también son consideradas cuando trabajamos a nivel cliente-servidor con bases de datos externas a VFP como MySQL, postgressSQL, SQLServer, etc. por lo que ahora debemos mantener las mismas formas pero en desarrollo Web.


Instalando la demo de ActiveVFP 5.6 en nuestro WebMatrix

Para los que han tenido alguna dificultad en la correcta configuración del ruteo de los enlaces del demo de ActiveVFP 5.6, les pasamos nuestra versión corregida para que puedan trabajar con ella sin mayores contratiempos; debiendo resaltarse que, para el correcto funcionamiento de algunas de sus opciones (como el despliegue de gráficos e impresión de reportes VFP en formato PDF, eben efectuarse las instalaciones y configuraciones indicadas en el mismo demo, las que también son detalladas en la documentación disponible en el mismo demo.


Material de Apoyo : 
( do click on blue icons to download )

activeVFP_5.6.rar, correspondiente a la demo de la versión 5.6 de ActiveVFP, lista para instalar sobre WebMatrix.. y a la que le hemos agragado la "impresión de algunas variables de entorno para su revisión..




Instalando una plantilla para nuevos proyectos ActiveVFP 5.6 en WebMatrix.


Material de Apoyo : 
( do click on blue icons to download )

myproject.rar, que corresponde a un proyecto "vacío" que solo contiene un Hola Mundo para que lo podamos utilizar para iniciar nuestros propios proyectos, debiendo destacar que, para el caso de la creación de las "tablas" debemos crearlas desde la ventana de comandos de nuestro VFP directamente sobre la carpeta "mydata" de la descarga de éste material de apoyo ó configurar en el archivo "main.prg" la ruta de ubicación de nuestra data, y de los otros componentes de nuestro proyecto si lo estimásemos necesario.

Descarguemos este material de apoyo en la misma carpeta donde estemos trabajando este codelab, y luego al crear un sitio en nuestro WebMatrix a partir de la carpeta "myproject" creada con la descarga, pongamoslo en funcionamiento en nuestro navegador y tendremos una pagina como la mostrada.. y dispondremos de una plantilla ActiveVFP 5.6 que podremos utilizar para hacer nuestras propias pruebas ó proyectos.




Trabajando con el Back-End VFP en un modelo CRUD usando Ext-JS v.3.4.0


Material de Apoyo : 
( do click on blue icons to download )

avfp-CRUD.rar, que corresponde a nuestro modelo CRUD (Create, Read, Update y Delete), de una Tabla VFP que contiene a los presidentes de U.S.A. llamada presidents.dbf, la cual utiliza a otra Tabla llamada parties.dbf que contiene a los partidos políticos que respaldaron a cada presidente. Este es un modelo sencillo que nos muestra como utilizando un framework, como ExtJS version 3.4.0 en este caso, se puede "ordenar" nuestros proyectos, separando nuestros códigos del lado del cliente (HTML, Javascript, CSS), de nuestro código el lado del servidor ó Back-End.







En este caso, los códigos del manejo de nuestra base de datos NO se "incrustan" en el código HTML de nuestro proyecto; y nuestro código VFP del lado del servidor se muestra más ordenado y comprensible, los que se encuentran alojados en la carpeta "prg", y comprende a los siguientes archivos:

  • main.prg, archivo principal de nuestro proyecto, de ejecución automática al iniciarse el proyecto, y que aparte de contener la lógica principal de manejo y gestión de nuestras tablas VFP, permite la configuración de las principales variables y objetos del entorno de desarrollo activeVFP.
  • updatepr.prg, archivo PRG que contiene el código VFP que permite la modificación y actualización de nuestra tabla de presidentes.
  • createpr.prg, archivo PRG que contiene el código VFP que permite la creación de nuestra tabla de presidentes.
  • deletepr.prg, archivo PRG que contiene el código VFP que permite el borrado "lógico" de uno ó varios de los registros de nuestra tabla de presidentes. En este caso vale destacar que las tabla VFP son abiertas por defecto en modo SHARED por activeVFP, por lo que restringe el borrado físico de registros, por lo que debemos adecuar la lógica de nuestros proyectos a esta condición.
  • Las opciones de búsqueda son aplicadas directamente sobre el código de nuestro archivo main.prg, los que deberá revisar para mayor detalle.

Los archivos javascript que componen el proyecto se encuentran alojados en la carpeta  "javascript" y comprende a los siguientes archivos:

  • mainscript.js, archivo JS que contiene el código ExtJS que permiten la creación,visualización y manejo de nuestra ventana, grilla, y otros componentes de nuestro proyecto (ventanas de creación de registros, búsqueda, etc), y que además contienen la lógica del proyecto por el lado del "cliente", referidos a los procesos necesarios para que un usuario pueda realizar las operaciones CRUD de nuestro listado de presidentes desde el navegador de su preferencia.
  • searchfield.js, archivo JS que contiene el código ExtJS que permiten la búsqueda rápida de un nombre o apellido ingresado.
  • GridPrint.js, archivo JS que contiene el código ExtJs y Javascript que permiten la impresión de un listado simple de nuestra lista de presidentes.

Otros componentes del proyecto:

  • carpeta "CSS", contiene a los archivos style.css, que controla las imagenes de nuestra grilla;, y GridPrint.css, que controla los estilos de nuestra impresión.
  • carpeta "ext-3.4.0", contiene los archivos javascript y css que comprenden al framework ExtJS de la verión que se indica (los que son llamados desde el archivo index.html de nuestro proyecto.
  • y por supuesto, la carpeta "data", que contiene a las tablas presidents.dbf y parties.dbf que son las utilizadas en este ejercicio.

Inicio del proyecto:

  • El archivo de inicio de este ejercicio es el archivo "index.html" que se encuentra alojado en la ruta oProp.AppStartPath, es decir la carpeta desde donde "arranca" nuestro proyecto. Los otros archivos que se encuentran en dicha carpeta son componentes de activeVFP y no pueden ser borrados.

las carpetas "bin" y "temp" son también del proyecto activeVFP y no conviene eliminarlas.. y hay otra carpetas que parecen en la demostración del proyecto activeVFP pero que hemos eliminado porque no las utilizamos en este ejercicio.



Saludos
@Mlaynes


NOTAS DE TRABAJO :

1.- Para abrir un documento *.avfp ó *.prg desde WebMatrix, haga click derecho sobre el archivo requerido y seleccionemos la opción "abrir con WebMatrix"

2.- Resulta interesante observar que para hacer nuestra prueba y seguir este "codelab" no es necesario incluso que tengamos VFP instalado en nuestro ordenador... activeVFP compila automáticamente el archivo "main.prg" y las modificaciones que podamos realizar sobre ella, aunque por supuesto, resulta necesario tener instalado VFP para inspeccionar y/o modificar nuestras tablas *.dbf. Pero vale indicar que, si trabajamos con varios PRG, llamados a traves de SET PROCEDURE TO, activeVFP no compila automáticamente esos archivos, y resultó necesario compilar esos archivos desde la ventana de comandos de VFP (updatepr.prg, deletepr.prg, etc).

3.- Por lo expuesto en el punto anterior, conviene que durante nuestros desarrollos, realicemos y probemos nuestros códigos incrustados en nuestro "main.prg" (que se compila automáticamente), y luego, si resultase necesario, y no sobrecargar nuestro main.prg, crear los *.prg que necesitemos.

4.- No olvidemos que podemos modificar en la opción configuración de nuestro "Site" el puerto que utilizaremos para lanzar nuestro proyecto a nuestro navegador (opción Configurar)

5.- Conviene también que ejecutemos la opción "Informe" de nuestro "Site", que nos indicará en forma bastante detallada la manera de optimizar nuestros proyectos.

6.- La opción database de nuestro "Site" la utilizaremos para trabajar con una base de datos SQL Server compact, que es una versión ligera y liberada de SQLServer de Microsoft que viene integrada a WebMatrix (como MySQL en las plataformas LAMP ó WAMP).







octubre 09, 2011

WebMatrix : Using PHP on IIS Server



Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.

...y continuando con nuestra investigación respecto a WebMatrix: la plataforma opensource de Desarrollo Web de Microsoft, empezamos ahora a revisar las ventajas y posibilidades que nos presenta instalar y trabajar con el lenguaje PHP dentro del entorno de Desarrollo del servidor IIS y el lenguaje ASP.Net (aparte que nos permite integrarnos y trabajar fácilmente con la base de datos SQLServer compact instalado en la plataforma... y que cuyas formas de conexión y funcionamiento se encuentran detallados en el Tutorial WebMatrix cuyas direcciones adjuntamos en nuestra entrega anterior.

Ya desde nuestra primera entrada empezando desde cero que dió inicio a las investigaciones de nuestro proyecto Integración Google, les habíamos indicado que el lenguaje PHP, integrado completamente al servidor Apache en nuestra instalación de Appserv, es sólo un componente del servidor, y que incluso podía ser instalado de manera independiente; el caso es que al instalar Appserv, u otro servidor similar como XAMP, WAMP, etc, el lenguaje PHP ya viene integrado a nuestro entorno de desarrollo, pero ahora con WebMatrix, es propicia la oportunidad para ver a PHP trabajando en otro entorno de desarrollo distinto al servidor Apache.

En el caso de WebMatrix, el proceso de instalación de PHP al servidor IIS Express es totalmente automático... Solo basta ingresar a la opción "configuración" de alguno de nuestros proyectos o "sites", y allí marcar la opción correspondiente. El hecho es que, al hacer esa indicación, WebMatrix, nos solicitará que le indiquemos que versión del lenguaje deseamos instalar, la versión 5.2 ó 5.3, en nuestro caso elegimos la versión 5.2 pues nuestros desarrollos no tienen ninguna figura especial del lenguaje PHP que hayamos utilizado... pero bien pueden seleccionar la versión 5.3 que ya es estable....y listo, el proceso se empieza a realizar en forma automática (toma sus minutos.. pero no hay nada más que hacer), al final va a aparecer marcada nuestra casilla PHP, habilitada en la versión que elegimos... tal vez si vale resaltar, que una vez instalado PHP, el lenguaje estará disponible para todos nuestros proyectos y no solo para uno en particular, vale decir, se habilita el servicio para todo nuestro entorno de desarrollo, como es que caso en Appserv,. por mencionar un servidor que ya nos debe resultar cada vez más familiar...

Cabe también resaltar que, PHP no solo es instalable en el entorno de desarrollo de un servidor Apache e IIS ...no forma parte de los alcances de este codelab revisar al detalle de todas las posibilidades de PHP, pero vale resaltar que, al descargar PHP, para ser instalado de forma independiente desde su pagina oficial, y al efectuar el proceso, PHP, durante su instalación, nos pedirá que seleccionemos el servidor Web sobre el cual trabajará, y aparte de los ya mencionados, tenemos al servidor Xiami, Microsoft PWS.. y hay una opción otros, y en la cual, la configuración por la parte del servidor tendría que efectuarse de forma manual.. como es el caso si deseamos instalar PHP sobre un servidor Tomcat, que tiene sus pasos, pero también es posible... el caso es que tener al lenguaje PHP, sobre el servidor que utilicemos, representa enormes ventajas, por cuanto PHP es un lenguaje bastante consolidado, y que nos presenta múltiples herramientas ya desarrolladas y listas para poderlas usar (como el manejo del formato JSON entre otros, ó la instalación de "servicios sociales" o de gestión de contenidos muy populares como Wordpress, Drupal, etc. los que han sido desarrollados utilizando PHP, y que varios de ellos, han sido completamente integrados a la plataforma de Desarrollo de WebMatrix, facilitando su instalación, adecuación y uso), y todo ello nos debe permitir que, unido a los conocimientos que podamos ó requerir tener de alguna otra plataforma de desarrollo en particular, pues puede facilitarnos bastante nuestro trabajo, tiempos de programación e integración de proyectos...( como un ejemplo, pueden revisar este enlace que nos muestra el proceso de instalación de PHP sobre un servidor IIS "convencional", es decir, el que viene instalado en WindowsNT Server ó Windows XP ó Window 7, etc. )


Instalando nuestros codelabs "Using the Back-End PHP+MySQL e Integracion Google 3ra parte" sobre WebMatrix:

(Una vez instalado WebMatrix en nuestro ordenador, por supuesto)

Nuestros codelabs referidos al uso del Back-End PHP+ MySQL esta dividido en tres partes, los que son: 1.- Iniciándonos, que nos muestra un modelo CRUD -opciones básicas de Crear, Modificar, Borrar, Buscar e Imprimir-, sobre una tabla de una base de datos MySQL, considerando componentes dinámicos; 2.- Temas de Seguridad y Wizards (acceso), que muestra el mismo desarrollo anterior pero considerando una pantalla de acceso para poder utilizar dicha aplicación...y a la que le hemos acondicionado componentes dinámicos respecto al manejo de idioma de nuestro navegador ( la API language de Google, cuyo efecto podemos observar al cambiar el idioma de nuestro navegador...para ello, siga la ruta : Herramientas, Opciones, Avanzado, Contenido Web y Configuración de Idiomas en Google Chrome si están utilizando dicho navegador por supuesto); y por último, tenemos a nuestro codelab Integración Google 3ra parte, que muestra un Modelo TreePanel de visualizaciones Google y ExtJs, además de visualización de Google Maps, y nuestro modelo CRUD de Mantenimiento de la tabla de presidentes utilizada en los dos primeros codelabs referidos, la que hemos unido al ejercicio en este caso, como muestra de como unir componentes ExtJs sobre en nuestros propios proyectos.

Cabe resaltar asimismo que, estos codelabs son referidos al Back-End PHP+ MySQL corriendo sobre WebMatrix, pero como solo involucran a los componentes nativos de un servidor AppServ; entonces para el caso de las bases de datos requeridas para los ejercicios recomendamos efectuarlas sobre el mismo servidor MySQL ya instalado con  Appserv, pues cabe indicar que, sobre un mismo ordenador, no tiene ningún sentido tener instalado varios servidores MySQL - aunque es posible, si se configuran para puertos diferentes - y para ello, debemos utilizar la herramienta phpMyAdmin también disponible en nuestro servidor Appserv.

Y por supuesto, como tal vez han podido intuir, también es posible correr en el entorno de desarrollo de Appserv éste material de apoyo que les entregamos para probar sobre WebMatrix, y con la ventaja de que, como en WebMatrix, cada proyecto o "site" es independiente, pues en esta oportunidad, los descargables de cada "codelab" contienen todo lo necesario para su funcionameinto ( incluido la versión "liviana" de ExtJs-3.4.0 utilizada en esta oportunidad para cada codelab). Por ello, conviene descargar o copiar nuestro material de apoyo dentro de la carpeta "www" de nuestro servidor Appserv (u otro servidor equivalente utilizado), y con ello, los podríamos poner en funcionamiento inclusive en ambas plataformas en forma simultánea... llamando desde el localhost, más nuestra ruta de descarga, en la barra de direcciones de nuestro navegador... ó desde WebMatrix, al cargar estos proyectos o "sites", llamarlos desde esta posición de descarga directamente a WebMatrix, y ejecutarlos de allí, como se indicó en el codelab anterior, referido a nuestros primeros conceptos respecto a WebMatrix, y de donde ya debemos haber ejecutado nuestros proyectos Integración Google 1ra. y 2da. parte... vale decir, si en esta oportunidad va ejecutar por primera vez los codelabs, y si por supuesto utilizamos las bases y tablas MySQL requeridas ( adjuntamos para ello los archivos sql necesarios ), pues nuestros ejercicios deberían funcionar directamente sin necesidad de hacer alguna configuración adicional; pero en el caso de haber ya realizado la instalación de los codelabs anteriores mencionados, podrá "sobreescribir" las bases de datos requeridas con la misma información de los archivos sql contenidos en el material de la descarga.

Material de Apoyo : 
( do click on blue icons to download )

Grid-PHP-MySQL.rar, que corresponde a nuestro codelab "iniciándonos" sobre el Back-End PHP+ MySQL,  proyecto desarrollado tomando como referencia un tutorial de la pagina Oficial ExtJs, cuyo código por supuesto hemos mejorado y que corre ahora sobre la versión ExtJs-3.4.0; y que nos presenta un modelo CRUD -opciones básicas de Crear, Modificar, Borrar, Buscar e Imprimir-, sobre una tabla de una base de datos MySQL, considerando componentes dinámicos.


Using the Back-End PHP+MySQL (Getting Started) corriendo sobre WebMatrix :



Este codelab trabaja con la base de datos "tutorial", para ello deberá crear primero con la herramienta phpMyAdmin dicha base de datos, y luego importar sobre ella las tablas y datos requeridos desde el archivo pdtes_usa.sql incluído en la descarga ( si ya tiene instalada la base de datos tutorial, la importación borrará las tablas "presidents", "parties" y "usuarios" requeridas, e insertará la data necesaria para realizar ejecutar nuestro ejercicio.

Recuérdese asimismo que en el archivo database.php, y con el comando msql_connect debemos verificar nuestros datos para conectarnos a la base de datos (host, usuario y password), y con el comando msql_select_db se indica el nombre de la base de datos donde hemos importado las tablas y datos contenidos en pdtes_usa.sql (tutorial es el que hemos utilizado).

Pueden también revisar nuestra entrada : Using the Back-End PHP+MySQL ( Getting Started ) donde mostramos con mayor detalle el contenido de cada componente del codelab, aunque en esa oportunidad, las mostramos para instalar y hacer funcionar este proyecto sobre el entorno de desarrollo de Appserv ( servidor Apache+ PHP+ MySQL), pero cuyos conceptos, como ya hemos indicado, son completamente compatibles para utilizarlos sobre este entorno de desarrollo de WebMatrix, por cuanto, de dicha plataforma, en esta oportunidad solo estamos utilizando al servidor IIS  y el lenguaje PHP instalado sobre ella... y el funcionamiento del servidor IIS es similar al del servidor Apache para este caso, por cuanto no estamos utilizando ningún código ASP.Net ó C# asociado a dicho entorno.

Wizard-sample.rar, que corresponde a nuestro codelab "Temas de Seguridad y Wizards (acceso)" referidos al Back-End PHP+ MySQL,  donde mostramos los fundamentos para empezar a diseñar nuestros sistemas y proyectos tomando en consideración pantallas de acceso (Wizards) y revisando que opciones de seguridad debemos empezar a considerar en ellos. Este codelab hace referencia a como poder acceder (ó restringir el acceso a usuarios no autorizados) a nuestro modelo CRUD del codelab anterior, y para ello hace uso de los datos registrados en la tabla usuarios creada al importar pdtes_usa.sql sobre la base de datos "tutorial" ya creadas.

Para este codelab en la base de datos Tutorial debemos agregar manualmente la tabla usuarios que debe tener como mínimo los campos: ID (int, primary key e auto-incremental(, usuario, varchar(15); y password también varchar(15)... y allí indicar los valores de nuestro usuario y password de acceso (passer, passer por ejemplo). Las generalidades de configuración y conexion a la base de datos Tutorial los podemos observar al inicio del archivo index.php (donde nos conectamos a la base de datos mediante mysql_connect y mysql_select_db), y a partir de la línea 242, donde se verifica que nuestro nombre de usuario y password se encuentren registrados en la tabla usuarios.

Using the Back-End PHP+MySQL (Wizard and safety themes) corriendo sobre WebMatrix :



Pueden también revisar nuestra entrada : Using the Back-End PHP+MySQL ( Wizard & Safety themes) donde mostramos con mayor detalle el contenido de cada componente de este interesante codelab, y en que se detallan una de la principales formas de uso del lenguaje PHP en lo que respecta al manejo de base de datos, cookies y enlace entre diferentes páginas PHP.. y por supuesto, como ya hemos indicado, este proyecto lo podemos correr desde WebMatrix ó desde el entorno de desarrollo de Appserv, como ya hemos indicado...


Int-Google03.rar, que corresponde a nuestro codelab "Integracion Google 3ra parte" referidos al Back-End PHP+ MySQL, donde mostramos los fundamentos para empezar a diseñar nuestros sistemas y proyectos tomando el consideración el enfoque de uso que nos ofrece ExtJs (uso de un menu TreePanel, al que se accede por una pantalla de acceso Wizard, y de manejo de stores y la forma de conexión utilizando  PHPa la base de datos MySQL, lo que finalmente nos permiten acceder a las diferentes visualizaciones  Google y ExtJs que hemos venido presentando en nuestros codelabs, incluyendo en esta oportunidad, al Modelo CRUD de Mantenimiento de listado de presidentes que hemos utilizado en los dos codelabs anteriores que forman parte de esta entrega.

Este ejercicio trabaja con las bases de datos IGCodelab contenidos en igcodelab.sql (datos de productos de belleza), y la base de datos Tutorial (donde tenemos registrados a los presidentes USA contenidos en pdtes_usa.sql). Pero en esta oportunidad, el nombre y password del usuario para acceder al Modulo son los contenidos en la tabla usuarios de la base de datos IGCodelab. Los datos que conexión a la base de datos IGCodelab, y la grabación de cookies empleadas a lo largo del modulo, son detalladas en drivers.php, y el chequeo del usuarios se detalla en database.php en la función getuser(), a partir de la linea 63 del código.

Integracion Google 3ra. Parte corriendo sobre WebMatrix :




Pueden también revisar nuestra entrada Integracion Google (3ra parte) donde mostramos con mayor detalle el contenido de cada componente del codelab...

NOTA: los ejercicios funcionan sin mayor problema tal como los presentamos, pero para los codelabs Grid-MySQL e Int-Google03, como podrá verificar, los archivos *.php involucrados utilizan codificación ANSI, aún cuando lo recomendado cuando trabajemos en nuestros proyectos web es que como norma todos nuestros archivos sean construidos con la codificación UTF-8.... Ocurre que cuando se trabaja con cookies (como es el caso de estos codelabs), puede haber restricciones para el uso de la función setcookie(), por cuanto PHP por defecto, restringe las salidas del buffer del servidor luego que se haya cargado o ejecutado algun script HTML... (puede revisar la documentación al respecto): y en el caso de los dos codelabs mencionados, como puede fácilmente observar, por la forma en que se encuentran construidos los ejercicios, primero se cargan a los archivos index.html, y luego durante el proceso se invoca a los respectivos archivos *.php para interactuar con la base de datos MySQL. Esta restricción puede superarse convirtiendo a codificación ANSI los archivos *.php que invocan a las funciones setcookie(), o configurando nuestro archivo PHP.ini, indicando a la directiva:  output_buffering=on (su valor por defecto es off).

La documentación no indica al detalle la causa de esta salvedad pero pueden verificar - utilizando Firebug de Firefox para hacer sus pruebas - que al convertir los archivos *.php del proyecto Int-Google03 a codificación UTF-8 (utilizando notepad++ u otro editor), y en especial al archivo drivers.php que se utiliza primero para la grabación de los cookies, este arroja  por la consola de inspección el warning : "Cannot modify header information - header alreaqdy sent by..",.y nos indica las líneas de nuestras instrucciones setcookies(); y por supuesto, no funciona la carga de datos, o mas propiamente dicho, se bloquea la salida de datos desde el buffer del servidor, aún cuando la información haya sido "capturada"...

Este impase, como hemos indicado, se soluciona al convertir nuevamente a ANSI nuestro archivo drivers.php... o también podemos reconfigurar nuestro PHP.ini en la directiva: output_buffering=on, y en este ultimo caso, aún cuando nuestros archivos PHP sean codificados UTF-8 si se permitirá la "salida" de la información y el ejercicio funcionará sin inconvenientes.

Lo indicado anteriormente ocurre al trabajar con un servidor Apache en una plataforma LAMP o WAMP, pero cuando trabajamos con WebMatrix NO ocurren estos problemas, y es indiferente que nuestros archivos *.php sean codificados UTF-8 ó ANSI, pero como siempre, para nuestros proyectos, debemos verificar su funcionamiento antes de su  puesta en producción para evitar contratiempos.

Saludos
@Mlaynes




octubre 02, 2011

WebMatrix: la plataforma opensource de Microsoft para Desarrollo Web



Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.

...y continuando con nuestra investigación de los diferentes entornos de Desarrollo Web y uso de la Tecnología Google, junto a mis labores habituales de consultor, analista y desarrollador de sistemas y soluciones informáticas ( y de cloud computing en general ); en la practica, ya había dejado de lado al mundo "Microsoft" para lo que es Desarrollo Web, aún cuando en muchas de las soluciones cliente-servidor que he desarrollado e implementado he utilizado bastante Foxpro y VFP, habiendo incursionado tambien en C++, Clipper, FiveWin, PowerBuilder; y en los proyectos Harbour, X-Harbour para desligarnos algo del mundo Microsoft, trabajando con base de datos externas como MySQL principalmente e instaladas incluso sobre servidores Linux para que el deslinde fuese más notorio aún... :-/) ; y es que en realidad realmente siempre había considerado al entorno de desarrollo Web de Microsoft, y a su servidor IIS en particular, como algo demasiado amarrado a Windows (una versión de IIS según cada versión Windows que lanzaban..), y por supuesto, a sus propias herramientas de Desarrollo Web como Visual Studio, Web Developer, etc.  ...demasiado amarre al mundo Microsoft para mi gusto.. y por supuesto, bastante desligado de los principales proyectos opensource y GPL propios del mundo de Desarrollo Web...

pero debo reconocer que Microsoft me ha sorprendido con el lanzamiento de WebMatrix 2.0 beta; y ahora ultimo, a finales de junio 2012 liberó WebMatrix versión 2.0 Release Candidate que tiene como importante novedad que, aparte de ASP.Net y PHP, integra como lenguajes de desarrollo a NodeJS :

    http://www.microsoft.com/web/webmatrix

con Microsoft WebMatrix todas las principales herramientas opensource del mundo de Desarrollo Web, y también las "opensource" que ha "liberado" Microsoft, son integradas en un entorno de trabajo bastante apropiado para hacer Desarrollo Web.. y ahora, al igual que cuando se trabaja con un servidor Apache con PHP y MySQL (Appserv, Xamp, Wamp, etc)... Microsoft ha integrado IISExpress, SQLServer Compact, ASP.Net, C#,  e incluso a PHP en una "plataforma" de desarrollo bastante interesante (y ahora tambien noeJS como ya hemos indicado); debiendo tener en cuenta que, al considerar a PHP en su entorno de trabajo, WebMatrix nos permite integrarnos tambien a servicios sociales y de gestión de contenidos, muy difundidos como Wordpress, Joomla, Drupal, etc. ..y debo reconocer que el resultado impresiona bastante  ..y hasta ofrecen servicio de Hosting desde US$1.67 mensual para alojar en la nube nuestros desarrollos directamente desde esta plataforma... como para tomar en cuenta...

En el propio tutorial de la pagina oficial de WebMatrix - que es bastante detallado - nos muestra como hacer paginas web dinámicas muy fácilmente utilizando la base de datos SQLServer Compact incorporada al proyecto ( y por supuesto que es posible conectarse a otras bases de datos como mySQL, Postgress, SQLServer, etc. recurriendo al código PHP que es el más utilizado para dicho efecto); y presenta como novedad: la sintaxis Razor, que nos muestra como utilizar código ASP totalmente integrado a HTML y CSS para lograr páginas dinámicas incluso sin recurrir al manejo de una base de datos ...realmente interesante  y para tomar en serio...
...como un miembro más de la comunidad del zorro (Visual Foxpro ó VFP), que aún utiliza esa plataforma para desarrollos de escritorio, pues vale mencionar que manejar un servidor Web IIS es  nuestra puerta de entrada para poder instalar ActiveVFP fácilmente y sin muchas complicaciones ( y poder utilizar VFP como Back-End ), lo que era un obstáculo algo difícil de superar. ActiveVFP que es una herramienta free y opensource ya con varios años de desarrollo y soporte, permite el uso de código VFP, incluso de la versión 9.0, por el lado del servidor, vale decir, como hemos mostrado a lo largo de este proyecto, que nos permite utilizar comandos VFP y variables de dicho entorno, dentro de una etiqueta adecuada, la que podemos incrustar en nuestros códigos HTML, y así poderlas utilizar en nuestras páginas y desarrollos Web  .. es realmente un camino abierto para poder integrar nuestros desarrollos VFP al mundo Web utilizando la lógica, los códigos y las bases de datos y tablas con que hemos desarrollado  nuestros sistemas y proyectos con VFP.
...retomando el tema, WebMatrix es un entorno de Desarrollo Web que puede instalarse independientemente de la versión de Windows que tengamos instalado en nuestro ordenador, como a nuestro criterio siempre debió haber sido, aunque aún creo que es demasiado pedirle a Microsoft que pueda ser instalado incluso en otras plataforas como Linux, Unix, Mac, etc; (pero eso lo convertiría en un verdadero proyecto opensource). WebMatrix, puede ser instalado en equipos con Windows XP service pack 3 en adelante;, aparte de las herramientas mencionadas (servidor IIS, base de datos SQLServer compact, y lenguajes ASP.Net y PHP, y que por supuesto también reconoce HTML, CSS,y Javascript), viene integrado a un editor bastante practico (que pueden mejorar), pero lo que resulta interesante es el manejo interno que hace lograndose una configuración correcta de nuestros proyectos; y así, como cuando hemos utilizado Netbeans en el entorno de desarrollo Java-Tomcat se nos facilita la construcción, prueba y lanzamiento de nuestros proyectos; con WebMatrix sucede algo similar, y no tendremos que preocuparnos en la configuración de nuestros "context path" ni del manejo de servidores virtuales para construir y lanzar nuestros proyectos, incluyendo la "bajada" y "subida" a nuestro servicio de hosting externo (como se realiza con Dreamweaver por ejemplo); y al hacer nuestras pruebas, podemos incluso seleccionar el navegador por el cual lanzar nuestro proyecto y observar su resultado...

Cabe reiterar asimismo que el tutorial que acompaña a WebMatrix está bastante detallado y muestra en pocos pasos y con casos prácticos el manejo de la plataforma y de sus componentes (HTML, CSS, ASP.Net, conexión a base de datos, etc. lo que podría constituirse en una nueva puerta de ingreso al mundo de Desarrollo Web que vale considerar ...diferente al convencional que hemos planteado en este nuestro proyecto Integración Google,  (puede revisar el Home de nuestro proyecto), debiendo resaltar que resulta necesario tener también una visión completa de lo que significa y abarca el mundo de Desarrollo Web ( si no queremos quedarnos exclusivamente con las herramientas Microsoft ), lo que podemos lograr dando una re-lectura a nuestra entrada empezando desde cero que planteamos al iniciar nuestro proyecto...y asimismo también, a los conceptos que hemos venido tocando a lo largo de su desarrollo..



Contenido del tutorial WebMatrix (pagina oficial)

Part 1 introduces you to WebMatrix and how you can install and use it.
Part 2 teaches you how to create your first Web Page using WebMatrix.
Part 3 gets you started with CSS and style sheets so you can make your page more beautiful.
Part 4 teaches you layout and how you can use layout in WebMatrix for common code across your pages.
Part 5 is all about data, where you’ll learn how to use a database in your web page, and make it more dynamic.
Part 6 shows you how to build a page that allows your users to add data to your database, so your site can render it.
Part 7 builds on this to show you how you can have a page to edit your database, and see the changes updated automatically.
Part 8 finishes off the application by showing you how to create a delete page for your data
Part 9 shows you how to publish your site to the internet using WebMatrix.

Nota : solo se requiere que tengamos una buena maquina para que no se pierda rendimiento (el entorno Java y de Netbeans también lo requiere, y es un apunte que olvidé detallar en su debido momento), y también se requiere un poco de paciencia pues el proceso de instalación e WebMatrix me parece algo largo comparado con instalar un servidor AppServ u otro similar (especialmente si no tenemos instalado ninguna herramienta de desarrollo web de Microsoft) ...pero no se necesita tener pre-instalado nada previo y todo el proceso esta automatizado, como cuando instalamos programas con la herramienta "Google Pack", que indicamos en nuestra entrada herramientas para Desarrollo Web ); y luego, una vez instalada la plataforma,  podemos continuar con cada uno de los pasos del tutorial indicado,  ...hacer nuestras pruebas ...y refrescar e incrementar nuestros conocimientos básicos y del entorno del Back-End ASP.Net y SQLServer compact. ...planteado así, creo vale la pena darle una mirada a este entorno de Microsoft...

Instalando nuestros proyectos Integracion Google 1ra y 2da Parte sobre WebMatrix:
(Una vez instalado WebMatrix en nuestro ordenador)

Nuestros proyectos Integración Google 1ra. y 2da. han sido desarrollados exclusivamente con HTML y Javascript ( recuerde que ExtJs es un "framework" de Javascript, vale decir una extensión o mejora pero hecha en código javascript), por lo que para que corran sobre WebMatrix no requieren mayor preparación sino estar completos (tal como se cargarían a la Web a través de un servicio de Hosting)

Material de Apoyo : 
( do click on blue icons to download )

IntGoogle-01.rar, que nos muestra Visualizaciones Google sobre ExtJs (versión Ext-3.4.0 en este caso) correspondiente a dicho codelab, para cargarlo como un Sitio Web de WebMatrix. Pueden revisar nuestra entrada Integracion Google 1ra parte para mayores detalles.del ejercicio..en ese caso, corriendo sobre un servidor "convencional" Apache (instalado con Appserv)

IntGoogle-02.rar, que nos muestra Visualizaciones Google y ExtJs de nuestro documento "Spreadsheet Productos" correspondiente a dicho codelab (adjuntamos también nuestro modelo de hoja de calculo en formato "xls" para que puedan realizar sus pruebas con un documento propio que puedan modificar o acondicionar a sus necesidades, cargando por supuesto este archivo a Google Docs)... Pueden revisar nuestro codelab Integracion Google 2da. parte para mayores detalles de este ejercicio como en el caso anterior descrito.

NOTA IMPORTANTE :

Resulta que el sistema de autorización "AuthSub for JavaScript" de Google ya no se encuentra disponible (pueden revisar el siguiente enlace), por lo que nuestro botón "Login" de nuestro codelab no permite el acceso a nuestro ejercicio; asimismo, la documentación de Google nos recomienda que utilicemos ahora "OAuth 2.0 for client-side applications", vale decir, tendremos que utilizar Google API Javascript Client para poder acceder a nuestras aplicaciones (u otra API cliente según la plataforma back-end que utilicemos, tal como PHP, Java, .NET, entre otros), pero en nuestro caso, como solo estamos trabajando aplicaciones por el lado del cliente, tendremos que recurrir a la librería cliente para Javascript indicada.

Por lo que, mientras adecuamos nuestro código, resulta conveniente que NO CONSIDEREN el proceso de acceso a la aplicación de la siguiente manera:

function activando(auth) {
  var c = Ext.getCmp('center');
  //google.accounts.user.login('http://www.google.com/m8/feeds/');
  auth = true;
  c.enable();
  c.update('');
  if (auth) {
    vistree.enable();
  };
};

within from : MenuGVisualization_01.js / MenuGVisualization_02.js where appropiate!


TRABAJANDO CON OAUTH 2.0 :

por supuesto, a la brevedad actualizaremos todos nuestros códigos para que trabajen con el protocolo OAuth20, y les presentamos en esta oportunidad el código y su demo de nuestro codelab que hemos cargado a la plataforma GAE (Google App Engine), pero que usted también puede probar en su servidor local de pruebas utilizando el SDK para Java de Google App Engine..

 ..now you can test our IntGoogle01-Oauth demo  (New!) .
the demo may prompt popup window (you must enable it)

IntGoogle01-OAuth20.rar ( 3.05Mb ), Este código corresponde a nuestro codelab pero adecuado al protocolo OAuth version 2.0, utilizando la "Google API Javascript Client", la cual en esta versión, incluso nos permite acceder directamente al email de nuestros usuarios.

 ..now you can test our IntGoogle02-Oauth demo  (New!) .
the demo may prompt popup window (you must enable it)

IntGoogle02-OAuth20.rar ( 3.20Mb ), Este código corresponde a nuestro codelab pero adecuado al protocolo OAuth version 2.0, utilizando la "Google API Javascript Client", la cual en esta versión, incluso nos permite acceder directamente al email de nuestros usuarios.


Es importante indicar que la documentación de Google nos indica que ahora debemos trabajar con OAuth 2.0 que se esta convirtiendo en el estándar de autenticación y autorización para acceder a nuestras cuentas y poder utilizar todas las API de Google, por ello hemos adecuado nuestro codelab a dicho estándar debiéndose tener en cuenta lo siguiente:

  • Crear un nuevo proyecto en el Google API Console, con el nombre mas adecuado que queramos
  • Crear una "OAuth 2.0 Client ID" en la opción API Access de la consola.. allí podremos indicar el nombre de nuestra aplicación y la URL de un logo que la represente ..a continuación debemos indicar el tipo de nuestra aplicación ("web application" en nuestro caso), y la URL de nuestra aplicación (acepta http://localhost ó http://localhost:8080, indicando en lugar del puerto 8080 el que nos indique que va utilizar WebMatrix para desplegar nuestro proyecto, debiendo resaltar que la plataforma WebMatrix permite que modifiquemos el puerto en su opción configuración de cada proyecto.. y que conviene que para hacer nuestras pruebas, utilicemos el mismo puerto por lo menos para nuestros proyectos WebMatrix que requieran el uso de APIs de Google (y así no estar creando diferentes proyectos en la consola por cada uno de ellos), asimismo para trabajar con la plataforma WebMatrix debemos verificar que se elija correctamente el protocolo "http ó https" que utilizaremos (generalmente "http"), y la ruta completa de acceso a nuestra aplicación, que en este caso será http://localhost:xxxx (el puerto utilizado), para que todo funcione correctamente; por lo que al crear nuestra API Access se nos indicará la carpeta "Redirect URI" donde se realizará el proceso de autenticación y autorización OAuth 2.0 solicitado (si no ha sido creada debemos editar la configuración y registrar manualmente la carpeta donde se realizará el proceso, puede ser cualquiera dentro de "www" o crear la carpeta "oauth2callback" indicada)..
  • ..y finalmente, en la misma "Google API Console" debemos seleccionar a la opción "Services" y activar la "Google+ API" (debe estar "ON" y de color verde), lográndose con ello finalmente crear nuestra "API key" en forma automática.
  • y todo ya está listo! ..ahora al volver a la opción "API Access" de nuestra aplicación, ya tendremos disponible nuestro "Client ID" y la "API Key" (dentro de "Simple Access API"), estos datos son las que debemos utilizar y reemplazar en el archivo "index.html" de nuestra aplicación para que todo pueda funcionar correctamente.

    Conviene también revisar las diferentes opciones que nos presenta la "Google API Console" pues nos puede ser necesarias como crear, modificar, renombrar, eliminar proyectos principalmente.

  • ..y ahora a probar nuestra aplicación IntGoogle01-Oauth20 e IntGoogle02-Oauth20 sobre WebMatrix !
  • y una ultima indicación.. Como estamos trabajando con la Google Maps API v2, tenemos que activar el servicio "Google Maps API v2" en la API consola, y registrar nuestra API Key al importar la API en nuestro proyecto antes de subirlo a un servicio de hosting con un dominio personalizado y así puedan funcionar los mapas de nuestro proyecto sin mayores inconvenientes (aunque la Google Maps API v2 solo estará activa hasta Marzo 2013, por lo que debemos programar nuestras actualizacion a la API v.3)..por supuesto, al trabajar con nuestro servidor local "localhost" no se presentan problemas.. el asunto es, como indicamos, al cargar nuestros proyectos a un servicio de hosting externo cualquiera.. como la plataforma GAE (Google App Engine), que es el caso de nuestra demo)



Integracion Google Parte No.1 corriendo sobre WebMatrix :




Integracion Google Parte No.2 corriendo sobre WebMatrix :




ActiveVFP 5.5 instalado sobre WebMatrix

ActiveVFP es un proyecto que requiere del lenguaje ASP.Net por el lado del servidor: y su "demo" utilza HTML y CSS por el front, y el lenguaje ASP.Net integrado a la plataforma WebMatrix nos permite a su vez utilizar VFP y tablas VFP como Back-End en nuestros proyectos. WebMatrix es un servidor IIS que soporta ASP.Net y C# por lo que si en nuestros proyectos requerimos ó utilizamos codigo VFP y tablas VFP, podemos entonces integrarlos y darles rápida salida a la Web como "sites" o proyectos WebMatrix.. El único requisito es que nuestro proyecto se presente completo tal como se cargará a la Web (incluyendo todas las librerías y complementos que lo compongan); ale decir, contener en nuestro proyecto al componente activeVFP completo.


 now you can test the activeVFP 5.5.1 demo  (New!) .
(like a codeplex project..)

activeVFP 5.5.rar ( 2.99Mb ), Este código corresponde a nuestro codelab para instalar el demo del proyecto activeVFP en nuestro servidor local WebMatrix.



Pasos para instalar los Codelabs..


Tenemos que descargar estos proyectos en la carpeta de proyectos de WebMatrix( "My Web Sites" de Mis Documentos), ó en otra carpeta que creamos conveniente como C:/WebMatrix por ejemplo; se crearán 3 carpetas de nombres Int-Google01, Int-Googlw02 y ActiveVFP_5.5 (también IntGoogle01-OAuth20, intGoogle02-OAuth20 respectivamente); luego hay que cargar estos proyectos a WebMatrix; y el proceso es bastante simple, para ello, al abrir WebMatrix debemos seleccionar la opción "Sitio a partir de carpeta", ó en el caso que ya estemos sobre un proyecto abierto, seleccionar el botón azulino de la parte superioir izquierda (al lado de "Página principal"), luego Nuevo Sitio, y allí aparece y elegimos la opción "Sitio a partir de carpeta"; se nos indicará que ubiquemos la carpeta que contiene nuestro proyecto (Int-Google01 por ejemplo), y al seleccionarla, WebMatrix creará nuestro proyecto o "website". WebMatrix pondrá como nombre de nuestro proyecto la carpeta que estemos cargando, e internamente hará las configuraciones necesarias para que el "directorio virtual" y un puerto disponible sean direccionados a nuestro proyecto ( también podemos adecuar esos datos en la opción "configuración" del proyecto ya cargado); luego debemos proceder a "ejecutar" nuestro proyecto, y al seleccionar la pestaña con ese nombre, nos aparecerá una lista con los navegadores que tenemos instalado en nuestro ordenador, seleccionemos la de nuestra preferencia ...y listo... nuestro proyecto será lanzado a nuestro navegador elegido...

Debemos hacer lo mismo con nuestro proyecto Int-Google02, y con esto veremos corriendo nuestros ejercicios  (si han seguido todos los pasos de nuestro proyecto),  hasta en 04 plataformas distintas: sobre un servidor HTTP Apache, sobre AppEngine, sobre un servidor Apache Tomcat, y ahora sobre WebMatrix; y con lo que podemos sacar como una clara conclusión - como ya habiamos indicado - que dentro del mundo Web no hay problemas de compatibilidad si trabajamos con sus elementos básicos: refiriéndonos a HTML, CSS y Javascript (reiteramos que ExtJs es un framework de javascript.. escrito en javascript nativo).. y con WebMatrix al ser bastante sencillo el proceso, conviene también "ejecutemos" nuestros proyectos en diferentes navegadores, pues como hemos indicado desde los inicios de nuestro proyecto Integración Google, a veces nuestros desarrollos no se ejecutan igual en un navegador u otro - dependiendo de la codificación javascript que utilicemos, ó la versión del framework que usemos ...cosas del mundo Web que debemos tomar en cuenta...

Deben realizar lo mismo con ActiveVFP_5.5 (que también debemos haber descargado en la carpeta de nuestra preferencia indicada, y verán en este caso, como se esperaba, que el proyecto ActiveVFP corre sin problemas en el servidor IIS Express version 7.5 en este caso que tiene anexado por el Back-End al lenguaje ASP.Net 2.0. Como una curiosidad pueden consultar la opción "Acerca de" de WebMatrix y verán que aún muestra los datos de la versión 1 de dicha plataforma... bueno, se supone que esta es la versión 2.0 beta, así que esperemos y estemos atentos a sus actualizaciones..

NOTA : el readme de ActiveVFP indica que para versión 1.0 de ASP.Net debemos registrar la librería de ActiveVFP, pero suponemos que el proceso también debe realizarse para la versión ASP.Net 2.0 - porque esa librería es externa y no pertenece a Windows - para ello; llamemos a la línea de comandos DOS ó "simbolo del sistema" (como prefieran llamarlo), vayamos hasta la carpeta donde hemos descargado nuestro proyecto ActiveVFP_5.5 y verifiquemos que allí se encuentre la librería activevfp.dll, luego ejecutemos el comando:

 regsvr32  activevfp.dll. ..y listo, ya no deberíamos tener ningún problema...

Otro punto que debemos tomar en consideración (y que debemos observar al revisar la opción "configuración" de nuestros proyectos), es que además del numero de puerto que WebMatrix asigna a cada una de nuestras aplicaciones - que podemos cambiar si lo deseamos - ;prestemos atención a la lista de archivos bajo el título "Administrar páginas predeterminadas", haciendo referencia al nombre de los archivos "inicio" del proyecto y que se ejecutarán automáticamente al invocarse el proyecto.. en el caso de nuestros proyectos Integración Google 1ra y 2da parte, nuestros archivos de "arranque" son index.html (porque son proyectos web que solo involucran HTML, CSS y Javascript); y en el caso de ActiveVFP, el archivo de arranque es "default.aspx", que corresponde a un proyecto que contiene código y datos ASP.Net 2.0.. conviene que revisemos que estos archivos se encuentren en la lista de nuestros respectivos proyectos, caso contrario debemos agregarlos manualmente o nó arrancará el proyecto desde la pantalla del "Sitio" (y sería necesario ubicarnos en el archivo de inicio que queremos ejecutar y de allí ejecutar el proyecto, como cuando hemos hecho al seguir el tutorial de WebMatrix...por supuesto, si lo han seguido, caso contrario, siempre es recomendable que sigan esos tutoriales y los prueben, pues consideramos que están bastante buenos e interesantes..)

NOTA: No realizamos en este codelab lo mismo con nuestro proyecto: Integración Google 3ra. parte, que describe un modelo CRUD de Mantenimiento de una tabla utilizando como Back-End el lenguaje PHP y la base de datos MySQL (con su respectiva pantalla de acceso ó "wizard"). y en este caso, con esta plataforma de desarrollo, no existe ningún problema respecto a trabajar con la base de datos MySQL y utilizar PHP para comunicarnos con ella (WebMatrix soporta PHP como indica su documentación y como hemos podido observar en la pantalla de configuración de nuestros proyectos), pero como la base de datos es externa a WebMatrix, y estamos recomendando esta plataforma de desarrollo de Microsoft como una alternativa para poder iniciarnos en Desarrollo Web, pues lo haremos en nuestra siguiente entrada, para detallar con más cuidado el proceso y los conceptos involucrados...


Saludos
@Mlaynes