martes, 20 de octubre de 2015

Desarrollo de aplicaciones bajo entorno web


Desarrollo de aplicaciones bajo entorno web

Conceptos básicos

Desde el advenimiento de la Internet a nivel masivo, acontecido hacia comienzos de los noventa, el enfoque de los nuevos desarrollos se ha ido volcando paulatinamente hacia este tipo de entorno, donde cada día se van multiplicando las posibilidades de negocios en un mundo que requiere de soluciones rápidas y ágiles que puedan llegar de forma precisa a cada cliente, en especial, teniendo en cuenta su perfil, cosa que hasta hace poco tiempo nos sorprendía.

Y a veces nos sigue sorprendiendo, el hecho de estar realizando determinada búsqueda en algún motor y ver que éste ya tiene cierto conocimiento respecto a lo que estamos buscando. Eso es parte de esa evolución.

Existe mucho dinero dando vueltas alrededor de la web. Todos tenemos la posibilidad de poder capturarlo en nuestro beneficio. Pero cada día, se va haciendo más complejo, debido a que todos intentan evolucionar dentro de este universo desenfrenado.

Con el correr de los años, la web se fue adaptando obligatoriamente a los distintos dispositivos que estaban vigentes en cada momento. Primero fueron los monitores monocromo, luego apareció el color, luego las pulgadas, y todos hemos visto que la propia web fue adaptándose principalmente a esos dispositivos para poder contar con la mejor visualización por parte del visitante, o sea el posible cliente y que éste pueda recibir de manera precisa el mensaje.

En los últimos años aparecieron los dispositivos móviles, y fue un otra vez a arrancar. La web se fue volcando paulatinamente hacia estos componentes hasta llegar al día de hoy, donde ya se le está dando mayor prioridad a una buena visualización en un dispositivo que en una computadora común.

Este tipo de adaptación de los formatos de visualización vamos a encontrarlo por allí bajo el término responsivo. En consecuencia, una web es responsiva cuando tiene la capacidad de adaptarse al dispositivo con que se la está explorando.
De esta manera, vamos a poder encontrar en muchas solicitudes de desarrollo web, el término responsivo para calificar al producto final. Pero debemos tener en cuenta que esto no debe ser un requerimiento del cliente sino que ya hoy en día debiera serlo del desarrollador.

Como en su momento fue la programación orientada a los requerimientos del buscador. Este concepto hoy sigue estando vigente. Lo que han evolucionado en este caso son los algoritmos de indexación de los buscadores que por estos tiempos, ya buscan cosas donde hace algunos años ni siquiera nos imaginábamos que podían buscar.

Pero en líneas generales, las distintas características que debemos darle a nuestro código, siguen siendo las mismas, en ese sentido los buscadores no han variado en mucho su funcionalidad.

Contamos entonces con dos elementos importantísimos al momento de proyectar nuestro desarrollo: el sitio responsivo y el sitio adaptado al criterio de los buscadores.
No nos olvidemos que los buscadores son la puerta de entrada para nuestros futuros posibles clientes. Nunca olvidemos eso y seamos amables con sus indexadores. Ellos se alimentan de los contenidos de nuestros sitios, démosle entonces de comer de la forma más saludable.
Pero ¿Cómo saber la mejor forma de alimentarlos? En líneas generales, por estos tiempos no ha cambiado la idea central acerca de como brindar información a un robot spider de un buscador. Hacemos un pequeño alto aquí, para refrescar el concepto del spider.
Desde los comienzos de la interacción con la Internet, el simple hecho de desarrollar un sitio web no quedaba concluido si no continuábamos con la ardua tarea de registrarlo en los distintos buscadores. Allá por mediados de los noventa, Yahoo y Altavista dominaban la escena de estas vidrieras que desde un comienzo fueron fundamentales para la difusión que cualquier proyecto web. Sin ellas, todo lo referente a la publicidad de nuestro sitio estaba enfocado exclusivamente a nuestra propia publicidad, una tarea hoy en día casi inconcebible.

En el año 98 aparece Google y cambia por completo la escena. Los viejos buscadores fueron sucumbiendo, por así decirlo ante este monstruo creado por Larry Page y Sergei Brin en el garaje de la casa de uno de ellos (vaya comienzo). Con el correr de los años, se fue apoderando de todo lo que significaba el tráfico dentro de la red. Hoy por hoy no hace falta decir los alcances de Google, cada uno ya lo conoce, pero si mencionar algunos conceptos que Google utiliza para capturar nuestra información de nuestros negocios y hacerla pública.

El primer concepto que siempre recomiendo tener en cuenta en este sentido es precisamente considerar que Google no es el único buscador, a pesar que más del 70% de la gente lo utiliza. Que existen otros buscadores que también necesitan alimentarse con nuestra información.

La manera o algoritmo llamémoslo que cada buscador tiene para indexar nuestro sitios, difieren, entonces, si preparamos nuestros contenidos para que Google los tenga en cuenta, también pensemos un poco en otros, como Yahoo o Bing, que merecen sin dudas parte de nuestra atención.

Algunas veces, en los últimos años, me ha sucedido, como a muchos de ustedes, algún hecho en particular donde me fue difícil encontrar en Google determinada información. Pero no se bien porqué, siempre arracaba (y lo hago actualmente) buscando en Google. Ya que cuando no encontraba lo que buscaba, lo intentaba por ejemplo en Yahoo y ahí casi siempre (salvo pocas excepciones) encontraba lo que quería.

Estas diferencias radican en que ambos utilizan distintos criterios para indexar nuestras páginas. Google brinda resultados más generalizados; Yahoo por su parte más particulares, más certeros en definitiva, aunque en estos últimos tiempos, muy para mi desgracia, he empezado a ver que Yahoo va tomando criterios muy parecidos a Google, y ha perdido parte de esa precisión. Esto se debe a que ha modificado su spider utilizando criterios más generalizados.

Un robot spider en definitiva, explora una determinada web, y se alimenta de su contenido. Lee las etiquetas html que le dejamos exclusivamente para él y va indexando nuestra página con lo que nosotros mismos le decimos acerca de ella. Con lo cual, sin entrar en tecnicismos la mejor manera de alimentar correctamente a una web es dándole muchos contenidos.

Como dijimos anteriormente, en los comienzos debíamos registrar nuestro sitio en los buscadores, eso también existe hoy en día, y luego, esperar un par de meses para que el buscador lo incluya en el directorio.

Pero la mejor forma de incluír un sitio en el buscador, cualquiera de ellos, es simplemente colocar un enlace a nuestro nuevo sitio en otro sitio donde diariamente pase el robot spider a buscar contenidos.

Cuanto más visitado sea nuestro sitio, con mayor frecuencia pasará el robot spider. Este procedimiento de incorporar un nuevo sitio al buscador (ya hablamos en general, no solo Google) demanda no más de 48 horas para que aparezca incluído en las listas.
De allí en mas, dependerá de nuestra astucia y trabajo constante sobre el sitio, incorporando contenidos y ganando en visitas, para que el buscador le vaya dando cada vez mas importancia y ubicando en los primeros resultados de las búsquedas, que se logra solamente ganando en importancia y creando contenidos con menor competencia con sitios de idéntica temática.

Esto es un arduo, muy arduo trabajo en definitiva, que requiere de nuestra constante atención y que involucra términos como usabilidad y optimización de un sitio.
Construír un sitio optimizado y con características de usuabilidad, requiere incluír estos conceptos mencionados para que se fácilmente accesible al buscador, cualquiera de ellos, sea Googlebot, Yahoo Slurp, Google Adsense, Yandex, Facebook Bot y tantos otros.

Pero como todo, las herramientas y metodologías en la web, van evolucionando rápidamente y nuevas cosas van surgiendo. Hoy en día, no solo basta con tener un sitio optimizado y usable. Hay demasiada competencia. Tenemos que obligatoriamente incorporar el tema económico y los programas publicitarios, si no queremos quedar relegados. En definitiva, para estar arriba, en mayor o menor medida, vamos a tener que pagar.

Los programas de patrocinadores, muy difundidos desde hace ya tiempo, van compitiendo entre ellos mismos para captar al mayor número de clientes, sean éstos desarrolladores o usuarios final, y poder incorporarlos dentro de sus proyectos publicitarios.

Uno de los más difundidos desde hace ya varios años, son Google Adwords y Google Adsense, con un programa más reciente y poderosísimo como el de la red social Facebook que ha logrado captar fuertemente un importante número de clientes que se han volcado del primero al éste último en los últimos años.

Tanto Google como Facebook y otras tantas redes sociales y programas de buscadores utilizan el concepto más fuerte que poseen para desarrollar sus negocios en este sentido. Y ese concepto precisamente se lo dimos nosotros mismos. El simple hecho de utilizar sus servicios, de escribir su url en el explorador, de accederlos, o sea en definitiva, de la concurrencia, en definitiva, su audiencia.

Como en cualquier otro medio de difusión, la concurrencia, el público, es el que le da el poder al buscador o a la red social.

Hoy por hoy, y esto es una opinión personal mía, yo incluiría a Facebook por ejemplo, como un nuevo sistema operativo. Parece algo gracioso, si se quiere, pero existen un gran público que ingresa a una computadora exclusivamente para hacer uso de la red social. No le importa absolutamente nada más que eso, no le importa si tiene un Windows 9 o 10, nada mas que contar con un poderoso dispositivo y poder acceder a la red social.

Pero ese es el público que más interesa a esta red social, hacia él están destinados los programas publicitarios, es en definitiva, el gran comprador. Constituye el “nuevo contenido” con el cual se alimenta el robot que se llama Facebook, Twitter o como quieran llamarlo.

Los tiempos van cambiando, el concepto es siempre el mismo, solo cambia de forma. Y nosotros tenemos que ir adaptándonos a ello. Leyendo, aprendiendo y mucho más viviendo nuestra propia experiencia.

Hoy por por hoy, en mi caso particular, he probado ambas metodología publicitarias, la de Google Adwords y su contrapartida Adsense (en el primero uno paga para publicitar, en el segundo uno cobra parte de esas regalías ofreciendo la plataforma para los anuncios) y la de Facebook por ejemplo, y me quedo con un combo entre ambas que se traduce de esta manera. Para publicitar utilizo Facebook, la concurrencia que posee es enorme y el resultado inmediato; desde Facebook redirecciono a mi sitio web externo donde tengo incorporado el programa ADSENSE de Google, con lo cual puedo recuperar algo de la inversión realizada en Facebook. Antes de esta red social, la combinación se hacía entre ADWORDS y ADSENSE, pero no confío en eso de darle solamente a un mismo proveedor todo el negocio, prefiero combinar dos opciones.
A mi entender, en estos tiempos, Facebook es una herramienta poderosísima para desarrollar negocios y como plataforma de entrada hacia nuestros propios negocios en la web. Si tengo que invertir voy a hacerlo en la red social como primera opción.

La técnica enfocada al negocio

Luego de haber visto los conceptos básicos que debemos considerar en todo lo referente al desarrollo web en tiempos actuales, vamos a ver un poco de temas técnicos tendientes a soportar la gran mayoría de los conceptos que vimos hasta aquí.
La evolución en este sentido no solo ha llegado a las metodologías, también ha hecho escala en las herramientas y la tecnología de las aplicaciones que sirven como estructura del negocio.

Existen varias herramientas de desarrollo de aplicaciones y en los últimos tiempos han ido surgiendo nuevas metodologías que amplían aún mas el alcance del desarrollo, ya que llegan a usuarios con un menor conocimiento de la programación de sitios web. En este sentido, hay que tener mucho cuidado si vamos a comenzar desde cero con cualquier tipo de desarrollo.

Podemos encontrar herramientas que trabajan bajo la modalidad “en la nube”, que nos ayudarán con ciertos desarrollos estáticos, para la obtención de sitios informativos, personales, en fin sin un contenido dinámico que es en definitiva la modalidad que debemos perseguir para conseguir un sitio verdaderamente profesional. En consecuencia, no nos va a interesar este tipo de herramientas.
Vamos a enfocarnos en dos tipos de modalidades que nos proporcionan contenidos dinámicos y que nos proveerán de los elementos para finalmente lograr un resultado altamente profesional.

Por un lado tenemos la modalidad clásica y personal de un html como estructura básica y adicionales para manejo de datos y funcionalidad, soportados por PHP, javascript y ASP, según la plataforma en que nos estemos moviendo y el conocimiento que tengamos sobre éstos. Para cualquier caso, vamos a adoptar el MySql como herramienta de base de datos fundamental, sin profundizar en otro tipo de bases.

Hoy por hoy, la competencia entre PHP y ASP se inclina fuertemente hacia el primero en el sentido de contar con mayor representación en el área de desarrollo. En mi caso, como programador con más de diez años de experiencia en ASP, puedo afirmar que todo lo que nos propongamos hacer con uno, también podremos hacerlo con el otro, salvo algunas limitantes que pueda tener el ASP que en muchos casos podemos suplir con la ayuda de nuestros amigos de JAVASCRIPT.

Logicamente, son dos lenguajes con marcadas diferencias. Cuando comencé a desarrollar, conocía mucho mas de Visual Basic que de C, eso me llevó a inclinarme a ASP y encontrarme verdaderamente muy cómodo con él. Hoy en día, puedo hallar cualquier solución que me proponga dentro de los dominios del ASP, de allí que siempre voy a recomendarlo.

Pero bueno, no todos nos movemos en las mismas aguas. Si tengo que recomendar entonces a alguien que desee comenzar a incursionar en el ambiente del desarrollo web, voy a recomendar que primero tenga en cuenta el mercado, que es lo que se pide al momento de desarrollar y luego sus conocimientos, para ver donde posicionarse y que puede resultar mas fácil al momento del aprendizaje. En este sentido, los desarrollos .NET van a estar a la vanguardia de esa decisión. No nos vamos a ocupar de eso aquí. Vamos a realizar un análisis simple, con herramientas simples, clásicas. El html, con ASP clásico bajo una base de datos MySql, para finalmente ingresar al mundo de las nuevas herramientas que poseemos a nivel de usuario final.

En cualquiera de los casos, la necesidad de estar al tope de la concurrencia, es el factor fundamental para cualquier web establecida en la Intranet. Hoy en día se programa con la idea que el visitante, además de nutrirse con los contenidos de nuestra web, nos genere ingresos. Estos vendrán seguramente de un programa Google ADSENSE donde tendremos un importante número de posibilidades para generar nuestros anuncios y luego colocarlos en las páginas. En este último punto nos encontramos ahora. Será necesario utilizar algún editor de HTML para poder diseñar cada una de las páginas de nuestra web y establecer la ubicación de los anuncios teniendo en cuenta algunas pocas consideraciones muy importantes: la disposición ideal de los anuncios va de arriba hacia abajo y de izquierda a derecha, en ese sentido la posibilidad de click en los mismos va decreciendo. Y otra consideración es la de mimetizar los colores de los anuncios de texto al igual que el tipo y estilo de la fuente, con lo de los contenidos, para que no resulte chocante, para que el visitante pueda llegar a pensar que el anuncio es parte del contenido y de esta forma haga click sobre el mismo (vil engaño).

Los administradores de contenidos

Vamos a tocar un último punto en este tema del desarrollo y son precisamente los administradores de contenidos que no son ni más ni menos que aplicaciones web que sirven para crear sitios web con poco (hasta nada diría en algunos casos) conocimiento de programación web.

En su gran mayoría son de código abierto, o sea, software libre al cual podemos modificar su propio código en beneficio de nuestros propios caprichos.

Lógicamente tienen sus limitaciones en lo que se refiere al tema del conocimiento de programación. ¿Qué significa esto?, pues bien, significa que cuanto más conozcamos de programación, mas potencialidad podremos conseguir de parte del administrador de contenidos.

Dicho de otra forma, el usuario sin conocimiento de programación podrá crear sitios con limitaciones; el usuario con conocimiento de programación, podrá crear sitios más robustos y potentes.

El advenimiento de los administradores de contenidos ha dado importantes soluciones a usuarios de nivel medio, como ser aquellos que con algún conocimiento de programación, encuentran en el administrador una herramienta complementaria que le brinda un importante ahorro en tiempo de desarrollo y le provee soluciones robustas para sus proyectos.

La gama más importante de administradores de contenidos están soportadas por el conjunto PHP-JAVASCRIPT-MYSQL, en su gran mayoría, ya que pueden ser emplazados indistintamente en plataformas Windows y Linux, de forma rápida y consistente. En este conjunto, tenemos a la vanguardia a Wordpress, Joomla! y Drupal, siendo éste último a mi entender, el que provee mucha mayor potencialidad al momento de la concepción de sitios profesionales.

¿Pero es esto conveniente? Depende de la importancia del negocio. El hecho de estar encasillado dentro de un software de terceros crea cierto recelo lógicamente.
Pero si conocemos en profundidad su lógica y logramos dominarlo, podríamos estar ante una poderosa herramienta.

Los administradores de contenidos fueron creados en su momento en favor del conjunto PHP-JAVASCRIPT-MYSQL, hecho que como desarrollador del conjunto ASP-JAVASCRIPT-MYSQL me produjo cierto fastidio ya que no encontré prácticamente equivalencia dentro de mi universo de desarrollo.

Fue así que un buen día, como no existía un administrador de contenidos para el conjunto ASP-JAVASCRIPT-MYSQL me decidí a crearlo. De esta manera nació hace muy poco tiempo CMS Viewpage. Antes de desarrollarlo, estuve analizando un poco la competencia en PHP y me sumergí un poquito en el mundo del Joomla! y Drupal. De inmediato, luego de haber visto algunos temas del primero y comenzar con el segundo, saltó a la vista de inmediato la mayor robustez de éste último, fue entonces que abandoné Joomla! y me puse de lleno con el Drupal 7. Me sorprendió y me dejó una visión muy favorable. Y fue así que viendo las características principales de éste, surgió el desarrollo de Viewpage, tomando los conceptos generales de Drupal y enfocándome hacia elementos que no tienen equivalencia en otros administradores de contenidos.

En definitiva, los administradores de constituyen potentes herramientas de desarrollo web orientadas al usuario final, que se potencian con un mayor conocimiento de lenguajes de programación. Es precisamente allí donde puede explotarse a pleno el verdadero potencial.