Programacion Web.. ¿PHP o ASP.NET?

Si bien hace tiempo que trabajo desarrollando webs mi mayor fuerte pasa por el lado de PHP. Por una cuestión de experiencia y tiempo, podríamos decir que la tengo un poco más clara y le conozco más las mañas. Pero también empecé a incursionar en el desarrollo web usando .NET. Y si bien son muy distintos en cuanto a la forma de programar, de organizar los sitios y la complejidad, cada uno tiene sus fuertes para cada tipo de desarrollo. Ejemplifiquemos un poco esto.

PHP es un lenguaje considerado “Open Source”; quiere decir que basta con instalar un servidor Apache (el cual es gratis) para que tengamos nuestro sitio funcional 100%. Apache puede correr tanto en Windows como Linux y Mac. Con .NET ya tendremos que elegir el lenguaje primero, que puede ser C# o Visual Basic. Son similares en algunos puntos y distintos en muchos otros. C# está basado en el viejo C (con innumerables mejoras) y Visual Basic viene trayendo toda la potencia del Basic y sus sucesores. Para cualquiera de los dos necesitamos un servidor IIS (Internet Information Service) el cual viene con Windows, lo que ya nos limita a un solo sistema operativo con el agregado de que si queremos publicar el sitio lo mejor sería tener una licencia de Windows, con los costos que ello genera.

Para desarrollar webs usando PHP basta con tener un editor de texto enriquecido (Notepad++, TextPad) o alguna suite (Adobe viene con Dreamweaver, que si bien a mi no me gusta, es muy completo). También existen varios frameworks para utilizar acorde a nuestras necesidades. Es decir, herramientas que potencian el uso del lenguaje dándole una visibilidad más personalizada y de alguna manera, intentando facilitarnos las cosas. Algunas veces no lo consigue y muchas otras si, de acuerdo al trabajo que tengamos que realizar. Mayormente para realizar webs de usuario final (las clásicas paginas que uno puede ver por la web, del estilo corporativas e informativas) no son necesarios los frameworks, pero si en el caso de que queramos hacer sistemas webs, como ser gestores de contenido, administradores y demás. Incluso hay algunos especializados, por ejemplo, para construir sitios con carrito de compras (Magento y osCommerce) que vienen con un montón de herramientas y opciones de personalización.
Además con solo tener un poco de conocimiento de HTML además de PHP, podemos armar un sitio rápidamente.  El código se inserta dentro de los tags de HTML y listo. Instalado en el servidor, el sitio funciona.

Ya con .NET la cosa cambia. Primero que es necesario usar el framework para que la cosa sea sencilla. Necesitamos el Visual Studio, el .NET framework (ambos van de la mano; a mayor versión del Framework, mas nueva la versión de Visual Studio que se necesita). Por otro lado la forma de programar es diferente. Si bien se generan paginas HTML, el código propiamente dicho se programa aparte en un archivo independiente, asociado al HTML (archivo con extensión aspx; y el código o “CodeBehind” iría en un archivo de extensión cs). Con lo cual ya para cada site no solo tendremos estos 2 archivos sino un tercero que los relaciona. Aquí entra el tema de la complejidad. Seguido a esto, se suele utilizar una página maestra o “Master Page” de la cual desprenden todas las páginas del sitio. Esta es una página no visible en la web, pero su inexistencia en el servidor hará que nuestro sitio no funcione.
Por lo tanto si bien es poderoso (incluso tal vez más que PHP), .NET yo lo recomendaría para hacer sistemas webs. Sistemas complejos, con muchas relaciones y manejo de datos. Semejante complejidad solo para hacer una web corporativa, creo que no viene al caso.

Hablando de datos y ya para cerrar, debemos tocar el tema de base de datos, brevemente. En el caso de PHP se suele usar MySQL. Es fácil de integrar y nuevamente, es gratis. También se puede usar PostGre SQL, que es un poco más completo.

En el caso de .NET por defecto usa SQLServer, pero también se puede asociar con Oracle y muchos otros motores mas, lo que lo hace nuevamente muy complejo, solo para hacer webs corporativas de usuario final, en lugar de sistemas webs.

En tu caso, si desarrollas webs, ¿cuál de las dos tecnologías preferís?

Comentarios

comentarios

Comments are closed.