Buenas a todos.
Esta vez quería tratar un tema que me interesa bastante pero que no domino del todo, el diseño de las aplicaciones Open Source. La idea de este post, es que se convierta más bien como si de un hilo de un foro se tratara para que me ayudáseis a recopilar todo lo que hay que saber para crear una aplicación open source desde cero.
Mis conocimientos sobre aplicaciones Open Source comenzaron con la creación de una Wiki para una pequeña empresa. Después comencé creando este blog personal. A partir de éste, creé la web de Restaurante Medieval usando WordPress para darle publicidad al restaurante de un familiar. Y por último, estoy en fase de diseño de un gestor de contenidos con Joomla! para crear un portal a nivel personal (de ahí mis últimos post con Joomla!).
Tras manejar todas estas aplicaciones Open Source, me surge la curiosidad de conocer cómo se han diseñado desde cero. Soy una persona a la que le gusta conocer todas las fases de diseño, tanto la parte técnica del servidor como la software.
He estado buscando por internet, pero no encuentro nada que me ayude a conocer cómo se ha diseñado alguna de estas aplicaciones. Supongo que para conocer al detalle todo su diseño, habría que integrarse en el proyecto en cuestión y colaborar con su diseño. Pero a mi el PHP no es mi fuerte. A mi lo que me interesa conocer es lo siguiente:
- Integración de todas las tecnologías utilizadas entre sí: XML, PHP, HTML, CSS, XSLT, ExtJs, DAO´s, Web Services, Hibernate, BBDD,...
- Esquema global de capas (Controlador MVC): Saber distinguir con un esquema qué componentes van en cada capa relacionándolos con las tecnologías utilizadas.
- Entrar en detalle de cada una de las capas y cónectarlas entre sí:
-
- Capa de acceso a datos DAO: Creación de Beans, Hibernate,...
-
- Capa de aplicación: Cómo diseñar un framework de la aplicación para poder después diseñar la aplicación en sí.
-
- Capa de interfaz: Cómo hacer uso de XML con sus hojas de transformación, hojas de estilo CSS,...
- Posibilidad de crear Temas o Skins: Viendo las aplicaciones open source, he visto cómo implementan el framework de manera que abstraen el núcleo de la aplicación de la interfaz. De manera también, que cualquier usuario pueda crearse sus propios temas o skins.
Se que quiero abarcar mucho, pero quiero empezar por realizar un esquema global de qué cosas son necesarias para comenzar un desarrollo desde cero, y tener una visión global de cómo se montaría la aplicación completa. Más adelante, ya entraría en detalle en cada una de las capas.
Aún así, si alguno sabe dónde puedo encontrar información sobre esto del diseño de WordPress para tenerlo como ejemplo, me valdría también.
Muchas gracias a todos por vuestra ayuda.
Un saludo.