Pregunta

Conozco muy bien ASP.NET C#.Hago muchas cosas como encuestas y aplicaciones web personalizadas.

Estoy teniendo muchos problemas para entender Drupal y descubrir cómo hacer cosas programáticas "especiales", como buscar una lista de clientes o crear una aplicación web.

1 - He estado leyendo libros y la API de Drupal, pero todavía tengo muchos problemas para empezar con cualquier cosa.¿A dónde va el código personalizado con respecto a páginas, módulos, fragmentos...?¿Cómo replico el formulario X que hice en ASP.NET en una nueva página en Drupal?Etc.Es muy difícil entender Drupal, parece muy grande, fácil y extensible, pero también me resulta difícil codificar. ¿Qué puede recomendar para que un programador de aplicaciones ASP.NET aprenda a trabajar con/en Drupal?

2 - A veces escribimos aplicaciones ASP.NET completas para clientes, y estas aplicaciones no están diseñadas para que los clientes las editen.Por ejemplo, tendremos todo nuestro sitio web en drupal, pero dentro de ese sitio web tendremos un lugar para que los usuarios utilicen una búsqueda especial de información de la base de datos.No queremos que simples editores de sitios web y proveedores de contenido intenten editar estas páginas especialmente codificadas. ¿Cómo manejo el hecho de no querer que los clientes editen nada en una aplicación Drupal? ¿Se maneja a través de permisos de página/usuario?¿Es lo mejor desarrollar y alojar una aplicación completamente fuera de drupal?¿La aplicación drupal es su propia instancia de drupal dentro de un sitio web de drupal (¿drupals anidados?)?

3 - Por último, ¿cómo manejo las bases de datos?Entiendo que Drupal y PHP están configurados para funcionar mejor con MySQL.Tenemos bases de datos MS SQL que utilizan múltiples aplicaciones y nos gustaría usarlas para nuevas aplicaciones cuando comencemos a usar Drupal.Por ejemplo, tenemos un directorio de personal que alimenta la aplicación de informes ASP.NET, la aplicación de listado de personal de ASP.NET y queremos crear una nueva aplicación PHP Drupal que también use (y quizás inserte/actualice más información) esa base de datos. ¿Cuál es la mejor y más sencilla forma de manejar bases de datos MS SQL y/o bases de datos MySQL utilizadas y actualizadas por múltiples aplicaciones Drupal y ASP.NET? ¿Sería más fácil que todas las aplicaciones usaran las bases de datos MS SQL, o tal vez replicar las bases de datos en MySQL para las aplicaciones Drupal/PHP y de alguna manera sincronizar las dos bases de datos?

Espero que esté bien si hago varias preguntas relacionadas en una sola publicación.

¿Fue útil?

Solución

En primer lugar, creo que es importante para comprender las limitaciones de Drupal, hay cosas que realmente no se hizo para. Es una especie de un marco de aplicación web, pero si usted está haciendo una gran cantidad de trabajos a medida con su propio datamodelling personalizada y esas cosas, Drupal podría no ser la solución más flexible o de fácil implementación para sus clases de problemas. Un marco más general como, por ejemplo Zend marco podría ser más adecuado.

Una lección importante en el aprendizaje de Drupal es: no piratear núcleo u otros módulos. Esto hará núcleo o módulos de modernización consume mucho tiempo. En lugar de "hacer como Drupal" y anular el uso de ganchos. En tematización también puede anular con ganchos, sino también de otras maneras. Primordial es tan poderosa entender bien ese concepto.

  1. Yo diría, a elegir un modo de aprendizaje que es su estilo, screencasts, IRC, piratería, Meetup usuario IRL, libros, artículos o cualquier combinación y busco material sobre Drupal. El comienzo justo al rededor y obtener un sentimiento y comprensión de cómo funciona Drupal. La comprensión de la jerga es una parte importante, así que lo que son: los nodos, bloques, regiones, ganchos, módulos, temas
  2. .
  3. Drupal tiene un sistema de permisos muy flexible, y es probablemente la mejor opción de usar que en lugar de hacer su propio. Usted puede escribir sus propios módulos que añaden o alteran el comportamiento de Drupal. Así que si desea escribir una nueva aplicación que funciona con Drupal se puede escribir un módulo que realiza la funcionalidad de la aplicación tiene que tener y hacer uso de todas las instalaciones de las ofertas de Drupal, incluidos los usuarios, el sistema de permisos, etc, etc. I don' t realmente entender la última parte de su segunda pregunta "¿es la aplicación Drupal es propia instancia de Drupal en el interior de un sitio web con Drupal (drupals anidados?)?". Drupal es una colección de archivos PHP en un servidor que, junto con una serie de tablas en una base de datos sirve petición hecha a la misma. sitios web de Drupal múltiples (por lo que diferentes archivos PHP) pueden hacer referencia a la misma base de datos o partes de él (por ejemplo, la tabla de usuario). En realidad no hay una "instancia" de un sitio de Drupal, ya que no hay realmente una "solicitud". Podría, por supuesto, ser demasiado familiarizado con estos términos, pero no creo que PHP funciona con "instancias" de "aplicaciones".

  4. Esto es un problema difícil, que yo sepa Drupal no funciona con MS SQL, por lo que ninguna conexión en esa dirección puede que tenga que hacer usted mismo. También me pregunto alrededor de los foros de Drupal o en el IRC.

Buena suerte!

Otros consejos

Me temo que no tengo ninguna experiencia con Drupal por lo que no puede ofrecer ningún indicio sobre su primera o segunda pregunta, pero en la tercera pregunta:

  

¿Cuál es la mejor / manera más fácil de manejar   bases de datos MS SQL y / o MySQL   bases de datos se utilizan y actualizados por   Drupal múltiples y ASP.NET   aplicaciones?

Si va a realizar operaciones CRUD de ambas aplicaciones ASP.NET y sus aplicaciones PHP / Drupal, entonces recomendaría contra el intento de sincronizar datos de ida y vuelta entre MySQL y MSSQL, ya que esto causará problemas de latencia más que' ll luego tener que lidiar con las diferencias entre los dos sistemas de gestión de base de datos.

En su lugar, yo recomendaría que nos fijamos en el uso de procedimientos almacenados para controlar todos los accesos de base de datos. De esta manera se puede garantizar que todas las operaciones CRUD de bases de datos se ajustan a mismas reglas y la lógica.

El uso de MSSQL tanto en ASP.NET y PHP no debería ser un problema, especialmente no con la misma excelente biblioteca DOP que proporciona una interfaz estándar para acceder a una serie de sistemas de gestión de bases de datos populares. Se debe permitirle conectarse rápida y fácilmente con y comenzar a utilizar sus bases de datos MSSQL dentro de sus aplicaciones PHP.

Son algunas buenas preguntas las que haces.Intentaré responderlas lo mejor que pueda.No tengo ninguna experiencia con C# de APS.NET, así que no sé exactamente de dónde vienes.Yo mismo aprendí Drupal como desarrollador de Python/Django sin experiencia.Entonces, de alguna manera puedo entender algunos de los problemas por los que estás pasando al intentar aprender Drupal.Algunas de estas cosas simplemente requerirán tiempo/experiencia/experimentación antes de que desaparezcan.

  1. Para entender realmente Drupal y la API de Drupal, primero necesitarás un buen conocimiento de PHP.A veces, Drupal hace algunas cosas complejas de PHP, por lo que si no comprende la sintaxis o las funciones de PHP, etc., puede perderse fácilmente.

    • ¿Dónde vive el código?
      Drupal está construido como un sistema modular.Drupal en sí es un conjunto de módulos, algunos de los cuales son necesarios para que Drupal funcione correctamente.Si desea crear algún código personalizado, es decir, desea hacer algo para lo que no puede usar un módulo. Hay alrededor de 5000 módulos desarrollados para Drupal.A menudo, incluso siendo un programador experto, la mejor opción es encontrar un módulo que haga lo que necesita o que pueda acercarlo. Entonces, lo que debes hacer es crear tu propio módulo.

      1. Crea una carpeta con el nombre del módulo.

      2. Cree un modulename.info dentro que contenga información sobre el módulo formateado de una manera especial.Drupal lo necesitará para mostrar correctamente el módulo en la página de lista de módulos donde activa los módulos.

      3. Por último, cree un archivo modulename.module donde estará el núcleo de su código para el módulo.

      Otra cosa que es importante entender con Drupal es que utiliza un sistema basado en ganchos.Los ganchos son como eventos que se activan una vez que suceden ciertas cosas a las que deseas conectarte y alterar el flujo o hacer algunas cosas por tu cuenta.Fx podría registrar cada vez que se mostrara un formulario específico, o podría modificar el formulario, agregando o eliminando campos.

    • Formularios
      Drupal tiene una FAIP o API de formulario, que se utiliza para generar formularios, esto es algo que tiene su propia página en la documentación.La idea es que cree una matriz PHP asociativa que contenga información sobre cada elemento del formulario, y Drupal la usará para crear el formulario.

    • LibrosHay muchos buenos libros sobre Drupal de los que puedes aprender.El libro del que más he aprendido es Desarrollo profesional Drupal

  2. En primer lugar, Drupal tiene un sistema de permisos basado en roles muy detallado, que le permitirá configurar exactamente lo que sus clientes pueden hacer.Puede crear diferentes roles, como moderador, creador de contenido, administrador, administrador de sistemas, etc., y otorgar diferentes permisos a cada rol.Esto es bastante fácil y se configura dentro de Drupal AI.Sin embargo, necesitará conocer los permisos, ya que algunos lo son. súper permisos eso te dará acceso a muchas cosas.Ahora, para integrar sus aplicaciones, eso es algo para lo que probablemente desee escribir un módulo personalizado.No sé exactamente cómo quieres hacer esto.Pero creo que el mejor resultado se obtendría si permitiera que Drupal creara las páginas, formularios, etc. desde su aplicación y simplemente enviara datos de un lado a otro.De esa manera, el tema = diseño del sitio sería consistente.De esa manera, los usuarios no tendrían la sensación de haber abandonado el sitio, sino que esta simplemente era otra característica más que ofrecía el sitio.

  3. Drupal no sólo está configurado para manejar mejor MYSQL. En realidad, necesitará MYSQL o PSQL como backend de su base de datos drupal.La razón es la forma en que Drupal maneja las consultas, que le permiten escribir consultas no específicas que funcionarán, sin importar cuál de los dos tipos use, o si sus tablas tienen un prefijo.Entonces, para todas las funciones internas de Drupal necesitarás uno de los dos.PHP puede conectarse a MSSQL y ejecutar consultas en esa base de datos, por lo que podría escribir sin muchos problemas código personalizado que ejecute consultas en las bases de datos de otras aplicaciones y recuperar o actualizar datos.Dependiendo de los datos, es posible que desee crear una tabla en su base de datos en la que pueda leer y escribir, y luego sincronizar las bases de datos cuando sea necesario.Depende un poco de su caso de uso.Hice lo último, en el caso en el que no necesitaba escribir en la base de datos, sino que solo necesitaba obtener información del producto de una base de datos heredada que todavía estaba siendo utilizada por otros sistemas.

RLB,

He hecho un poco de Drupal y tener una fuerte experiencia de ASP.NET. Que realmente necesita para leer hasta obtener su forma de pensar recta. Ellos usan capas de una manera similar a MVC que es muy extraño para formularios Web y desarrolladores de ASP.NET MVC ... y francamente a primera vista parece extraño.

He aquí una lista de las cosas que hice para llegar muy, muy bueno con rapidez:

  1. Obtener un anfitrión como en hostgator por $ 8, que le permitirá instalar Drupal
  2. Obtener el libro Pro Drupal Desarrollo para principiantes ... excelente y realmente cubre una gran cantidad de áreas http://www.amazon.com/Pro-Drupal-Development-Second-Beginning/dp/1430209895/ref=sr_1_2?ie=UTF8&s=books&qid=1257545528&sr=8-2
  3. Obtener en los foros de Drupal
  4. estar dispuestos a participar. Drupal tiene un montón de características, pero al final la mejor manera es ser alguien que contribuye código posterior

Hay una serie de entornos de desarrollo a tener en cuenta, pero para iniciar un editor de texto debe estar bien.

Buena suerte.

Algunas buenas respuestas aquí, así que sólo voy a llenar en algunos artículos breves.

1 - Aprender Drupal: Drupal Desarrollo Pro es el mejor libro para esto. Entrar en las colas de emisión e interactuar con los desarrolladores es una forma de familiarizarse con los detalles. Pregunta sobre las formas cómo se relaciona con Drupal se encarga de formas. El FAPI es bastante robusto en Drupal, y te protege de patinazos de seguridad. También punto API de Drupal punto org es donde se documenta el código, aunque hay documentos en otros lugares. Google es tu amigo. (En el sitio de Drupal en sí, utilice la búsqueda nativa para obtener resultados facetas.)

2 - Este es un problema de permisos de usuario. Puede limitar los permisos de creación y edición basada en el tipo de contenido. Para control de acceso (lectura), tendrá que utilizar uno de los muchos módulos de control de acceso. Realmente depende de su caso de uso.

3 - Drupal tiene el mayor apoyo de la comunidad para MySQL, pero la gente ejecutar Drupal en MS SQL también. En Drupal 7, es probable que vea mucho más apoyo para los no-MySQL como esta versión introduce la abstracción de base de datos.

Probablemente el peor que puede hacer es cortar alrededor de los márgenes. Realmente vale la pena aprender los pormenores de los conceptos básicos de Drupal - administración y codificación -. Por lo que realmente se puede aprovechar el poder de Drupal pone sobre la mesa

Y si usted está a la caza de los módulos, http://drupalmodules.com es su amigo. ;)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top