tag script img attribute javascript reflection

javascript - script - Aplicación web reflexiva(WebIDE)



title tag html (2)

Preámbulo

Entonces, esta pregunta ya ha sido respondida, pero como era mi primera pregunta para este proyecto, voy a continuar haciéndolo en otras preguntas que pido para este proyecto.

Para cualquiera que provenga de otra pregunta, esta es la idea básica: crear una aplicación web que facilite la creación de otras aplicaciones web o sitios web. Para hacer esto, básicamente crearías un sitio modular con "widgets" y luego los combinarías en las páginas de visualización final. Cada widget probablemente tenga su propio conjunto de funciones combinadas en una clase si usa Prototype o .prototype.fn de lo contrario.

Actualmente

Estoy trabajando para obtener lo básico: edición de CSS, creación de funciones de JavaScript para el usuario y búsqueda dinámica de sus nombres / entradas, y otros aspectos técnicos críticos del proyecto. Pronto crearé una línea de tiempo aproximada de las características que deseo crear. Poco después de hacer esto, intento crear un blog de tipo para mantener a todos informados sobre el estado del proyecto.

Pregunta original

Hola a todos, actualmente estoy tratando de formalizar una idea que tengo para un proyecto personal (que puede convertirse en uno profesional más adelante). El concepto es una aplicación web reflexiva. En otras palabras, una aplicación web que puede construir otras aplicaciones web y se usa activamente para crearse y mejorarse. Piénselo como una especie de IDE de webapp para crear webapps.

Entonces, antes de comenzar a explicarlo más, mi pregunta a todos ustedes es esta: ¿Cuáles crees que serían algunos de los desafíos más difíciles en el camino y dónde sería el mejor lugar para comenzar?

Ahora déjame tratar de explicar algunos de los aspectos de este concepto brevemente aquí. Quiero que esta aplicación sea lo más parecida posible a un WYSIWYG, ya que tiene un área de visualización que muestra todo o parte del sitio web como aparecería. Debería poder navegar por él para llegar a las áreas en las que desea trabajar y utilizar un depurador / consola de JavaScript para preguntar "¿qué pasaría si ...?" preguntas

Tengo la intención de que los webapps se desarrollen a través de componentes. En otras palabras, el resultado sería una aplicación web muy modular para que pueda modificar cosas a pequeña o gran escala con bastante facilidad (en general, debería ser mejor que codificar manualmente todo en <insert editor of choice> ).

Una vez que el sitio web / la aplicación web esté listo, esta aplicación web debería ser capaz de producir todo el código necesario para instalar y ejecutar el sitio web / aplicación web creado (así CSS, JavaScript, PHP y el instalador PHP para la base de datos).

Estos son algunos de los principales desafíos que he presentado hasta ahora:

  • Cambiando CSS sobre la marcha
  • Implementando la reflexión en JavaScript
  • Visor de árbol DOM preciso y breve
  • Permitir a los usuarios elegir bibliotecas de JavaScript (es decir, Prototype , jQuery , Dojo , extJS , etc.)

Cualquier otro comentario y sugerencia también son bienvenidos.

Edición 1: Me gusta mucho la idea de AppJet y la revisaré en detalle cuando tenga el tiempo este fin de semana. Sin embargo, mi única preocupación es que se supone que esto crea código que puede ir a otros servidores web, así que aunque AppJet podría ser una excelente manera de desarrollar esta aplicación más rápidamente, todavía creo que tendré que generar código PHP para mis usuarios. para poner en sus servidores.

Además, cuando sienta que esto está listo para los beta testers, ciertamente lo lanzaré gratis para todos en este sitio. Pero estaba pensando que, a partir de la versión beta, debería seguir un esquema similar al de git: gratuito para las aplicaciones de código abierto, que cuesta dinero para aplicaciones privadas o de propiedad.


¿Por qué usar PHP?

Appjet hace algo muy similar usando 100% Javascript en el lado del cliente y del servidor con rhino .

Esto hace que sea más fácil para los programadores utilizar su servicio y facilitar su implementación. De hecho, incluso su técnica de almacenamiento de datos usa Javascript (objetos nativos simples), que es una idea realmente poderosa.


Conceptualmente, estaría construyendo widgets, una fábrica de widgets y una fábrica de fabricación de fábrica.

Por lo tanto, tendría que encontrar todos los diferentes tipos de interacciones que podrían ser posibles al hacer un widget, entre widgets, dentro de una fábrica y entre múltiples fábricas de fabricación de artilugios para tener una idea.

¿Algo para estar al tanto de qué tan lejos sería demasiado lejos para abstraer?

** Creo que necesitaría poder abstraer algunas capas por completo para el espacio de la aplicación en sí. Entonces tendrías que construir alguna herramienta de administración para todo. **

- Presentación, flujo de trabajo y el nivel de datos.

Presentación: Usted está recibiendo comentarios o ingresando información. Usualmente como resultado de hacer clic o ingresar algo. Un ejemplo simple es hacer formularios web dinámicos en una base de datos. ¿Qué tendría que almacenar en una base de datos acerca de dónde viene / viene? Esto probablemente constituiría la capa de presentación. Probablemente este sea el mejor ejercicio para comenzar a tener una idea de lo que puede necesitar.

Flujo de trabajo: sería sensato construir un motor de flujo de trabajo simple. Construí e modelado en Windows Workflow que tenía funcionando en 2 días. Podría establecer el evento inicial que debería ejecutarse, etc. Desde la perspectiva del diseñador, me imagino un programa de tipo visio para vincular estos eventos. Los eventos en el flujo de trabajo conducirían el nivel de presentación.

Datos: Debería almacenar los datos sobre la aplicación tanto como los datos en la aplicación. Por lo tanto, las estructuras de datos de forma, evento y posiblemente se pueden hacer almacenando documentos XML dependiendo de si necesita trabajar con cualquiera de los datos en los formularios o no. Los datos de la aplicación también se pueden almacenar en plantillas xml vacías que rellene o en tablas reales. En ese punto, debe crear una rutina de creación de tabla que mantenga una tabla para una aplicación según la especificación. Google tiene algo así con su Google DB en línea.

Espero que ayude. Comparte lo que terminas encontrando.