Domanda

Lo so ASP.NET C # molto bene. Faccio un sacco di cose come le indagini e le applicazioni Web personalizzate.

Sto avendo un sacco di problemi confezionamento mia testa intorno Drupal e capire come fare 'speciali' cose programmatiche, come la ricerca di una lista di clienti, o la creazione di un'applicazione web.

1 - Ho letto libri e Drupal API, ma ho ancora un sacco di problemi per iniziare con qualsiasi cosa a tutti. Da dove viene il codice personalizzato va rispetto a pagine, moduli, frammenti ...? Come si replica modulo X che ho fatto in ASP.NET in una nuova pagina in Drupal? Ecc E 'super hard di avvolgere la mia testa intorno Drupal, sembra così grande e facile ed estensibile ma anche come è difficile per me di codice. Che cosa si può consigliare per un programmatore di un'applicazione ASP.NET per imparare a lavorare con / in Drupal?

2 - A volte si scrive applicazioni complete ASP.NET per i clienti, e queste applicazioni non sono concepito per l'clienti di andare a modificarli. Per esempio, avremo tutto il nostro sito in Drupal, ma all'interno di questo sito web avremo un posto per gli utenti di utilizzare una ricerca speciale per le informazioni del database. Non vogliamo semplici editor di siti web e fornitori di contenuti che cercano di modificare questa pagina appositamente codificato (s). Come faccio a non gestisce volendo clienti di modificare qualsiasi cosa in un'applicazione Drupal? è gestita tramite le autorizzazioni di pagina / utente? È la cosa migliore per sviluppare e ospitare un'applicazione completamente al di fuori di Drupal? È l'applicazione Drupal di essa la propria istanza Drupal all'interno di un sito web Drupal (drupals nidificate?)?

3 - , infine, come faccio a gestire basi di dati? Capisco Drupal e PHP sono impostate per funzionare al meglio con MySQL. Abbiamo database MS SQL che vengono utilizzati da più applicazioni e vorrebbero usarli per nuove applicazioni come iniziare a usare Drupal. Ad esempio, abbiamo una directory personale che si nutre di ASP.NET applicazione di reporting, l'applicazione ASP.NET Personale Listing, e vogliamo fare una nuova applicazione Drupal PHP che utilizza anche (e forse inserti / aggiornamenti più informazioni in) quel database. Qual è il / modo migliore più semplice per gestire database MS SQL e / o database MySQL utilizzato e aggiornato da più applicazioni Drupal e ASP.NET? Sarebbe più facile per avere tutte le applicazioni utilizzano SQL MS banche dati, o forse di replicare i database MySQL per le applicazioni / PHP Drupal e in qualche modo sincronizzare i due database?

Spero che va bene se chiedo di più domande relative a un singolo post.

È stato utile?

Soluzione

Prima di tutto, penso che ciò che è importante per capire i limiti di Drupal, ci sono cose che non è davvero fatto per. E 'una sorta di un framework per applicazioni web, ma se si sta facendo un sacco di lavoro personalizzato con il proprio datamodelling personalizzato e roba, Drupal potrebbe non essere la soluzione più flessibile o facilmente implementabile ai vostri tipi di problemi. Un quadro più generale come ad esempio Zend Framework potrebbe essere più adatto.

Una lezione importante per imparare Drupal è: non incidere core o altri moduli. Questo renderà nucleo potenziamento o moduli molto tempo. Invece "fare come Drupal" e sovrascrivere con ganci. In tematizzazione è anche possibile sovrascrivere con ganci, ma anche in altri modi. Prevalente è potente in modo da capire bene questo concetto.

  1. Direi, scegliere un modo di apprendere che è il tuo stile, screencast, IRC, hacking, un Meetup di utenti IRL, libri, articoli o qualsiasi combinazione e cercare materiale su Drupal. Basta iniziare a gingillarsi e ottenere una sensazione e la comprensione di come funziona Drupal. La comprensione del gergo è una parte importante, quindi quali sono: nodi, blocchi, regioni, ganci, moduli, temi
  2. .
  3. Drupal ha un sistema di permessi molto flessibile, ed è probabilmente la scelta migliore da usare che invece di fare il proprio. È possibile scrivere i propri moduli che aggiungere o modificare il comportamento di Drupal. Quindi, se si vuole scrivere una nuova applicazione che funziona con Drupal è possibile scrivere un modulo di eseguire la funzionalità dell'applicazione deve avere e fare uso di tutte le strutture Drupal offerte, compresi gli utenti, il sistema di permessi, ecc, ecc I don' t capire davvero l'ultima parte della tua seconda domanda "è l'applicazione Drupal è propria istanza Drupal all'interno di un sito web Drupal (drupals nidificate?)?". Drupal è una raccolta di file PHP su un server che, insieme con una serie di tabelle di un database serve richiesta fatta ad esso. Drupal più siti web (così diversi file PHP) possono fare riferimento allo stesso database o parti di esso (ad esempio, la tabella utenti). Non c'è davvero un ' "istanza" di un sito Drupal, come non c'è davvero un "applicazione". Potrei ovviamente essere troppo familiarità con questi termini, ma non credo che PHP lavora con "istanze" di "applicazioni".

  4. Questo è un problema difficile, per quanto ne so Drupal non funziona con MS SQL, quindi tutte le connessioni in questa direzione potrebbe essere necessario fare da soli. Vorrei anche chiedere in giro per il forum di Drupal o su IRC.

In bocca al lupo!

Altri suggerimenti

Ho paura che non ho alcuna esperienza con Drupal, quindi non posso offrire alcun intuizioni tue prime o alla seconda questione, ma sulla terza domanda:

  

Qual è il / modo migliore più semplice per gestire   database MS SQL e / o MySQL   banche dati in uso e aggiornati da   multipla Drupal e ASP.NET   applicazioni?

Se avete intenzione di effettuare operazioni CRUD da entrambe le applicazioni ASP.NET e le vostre / applicazioni Drupal PHP, quindi mi sento di raccomandare contro il tentativo di sincronizzare i dati avanti e indietro tra MySQL e MSSQL poiché questo causerà problemi di latenza più si' ll poi fare i conti con le differenze tra i due sistemi di gestione di database.

Al contrario, mi sento di raccomandare che si guardano l'utilizzo di stored procedure per controllare tutti i database accessi. In questo modo si può garantire che tutte le operazioni CRUD di database conformi alle stesse regole e la logica.

Utilizzando MSSQL sia in ASP.NET e PHP non dovrebbe essere un problema, soprattutto non con la stessa eccellente libreria DOP che fornisce un'interfaccia standard per l'accesso a una serie di sistemi di gestione di database popolari. Esso dovrebbe consentire di collegare rapidamente e facilmente con e iniziare a utilizzare i database MSSQL all'interno delle applicazioni PHP.

Si tratta di alcune buone domande che fate. Cercherò di rispondere loro al meglio delle mie capacità. Io non ho alcuna esperienza con C # di APS.NET, quindi non so esattamente dove si sono provenienti da. Io stesso imparato Drupal come sviluppatore pitone / django inesperto. Quindi, in un certo senso posso capire alcuni dei problemi che si stanno attraversando cercando di imparare Drupal. Alcune di queste cose sarà semplicemente bisogno di tempo / esperienza / sperimentazione prima che andrà via.

  1. Per capire veramente Drupal e l'API di Drupal è necessario prima di una buona comprensione di PHP. A volte Drupal fare alcune cose PHP complesse, quindi se non si capisce la sintassi o le funzioni PHP, ecc, si può facilmente perdersi.

    • Da dove vivono codice?
      Drupal è costruito come un sistema moduler. Drupal sé è un insieme di moduli, alcuni dei quali sono richiesti per Drupal funzioni correttamente. Se si vuole fare un po 'di codice personalizzato, cioè si vuole fare qualcosa, che non è possibile utilizzare un modulo per. Non ci sono circa 5000 moduli sviluppati per Drupal. Spesso, anche quando essere un programmatore esperto, la scelta migliore è quella di trovare un modulo che farà ciò che è necessario o si può arrivare dove vicino. Quindi, ciò che si fa, per creare un modulo di tua scelta.

      1. Crea una cartella con il nome del modulo

      2. Crea un modulename.info al suo interno che contiene alcune informazioni sul modulo formattato in modo speciale. Drupal avrà bisogno FX visualizzare il modulo sulla pagina di elenco modulo in cui si attiva i moduli.

      3. Infine creare un file modulename.module in cui il nucleo del codice per il modulo sarà.

      Un'altra cosa che è importante da capire con Drupal, è che usa un sistema basato gancio. Ganci sono come gli eventi che sparano una volta certe cose succedono che si desidera collegare in eo alterare il flusso, o fare alcune cose di tua scelta. Fx si potrebbe registrare ogni volta che è stata visualizzata una forma specifica, oppure si potrebbe alterare la forma, l'aggiunta / rimozione di campi.

    • Moduli
      Drupal ha un FAIP o Form API, che si utilizza per generare la forma, questo è qualcosa che ha la propria pagina nella documentazione. L'idea è che si crea un array PHP associativa che contiene informazioni su ogni elemento della forma, e Drupal utilizzerà che per creare la forma.

    • Libri Ci sono un sacco di buoni libri per Drupal che si può imparare da. Il libro Io stesso ho imparato più da Pro Drupal Development

  2. Prima di tutto, Drupal ha una finissima sistema di autorizzazione basato sul ruolo grana, che vi permetterà di configurare esattamente ciò che i clienti sono autorizzati a fare. È possibile creare ruoli diversi, come moderatore, creatore di contenuti, admin, sysadmin ect, e dare autorizzazioni diverse per ogni ruolo. Questo è abbastanza facile ed è messa a punto all'interno del Drupal AI. Tuttavia, è necessario conoscere i permessi come alcuni sono permessi di super che darà accesso a un sacco di cose. Ora, per l'integrazione di applicazioni, che è qualcosa che, probabilmente, si vuole scrivere un modulo personalizzato per. Non so esattamente come si vuole fare questo. Ma credo che il miglior risultato sarebbe stato ottenuto lasciando Drupal creare le pagine, forma etc dalla vostra applicazione e solo inviare i dati avanti e indietro. In questo modo il tema = layout del sito sarebbe coerente. Che modo gli utenti non avrebbero la sensazione che hanno lasciato il sito, ma questo ancora semplicemente era un'altra caratteristica del sito offerto.

  3. Drupal non è solo impostato per gestire meglio MYSQL, sarà effettivamente bisogno di MySQL o PSQL come terminale database Drupal. Il motivo è il modo Drupal gestisce le query, che consentono di scrivere query non specifici che funzionano, non importa su quale dei due tipi che si utilizzano, o se le tabelle ha un prefisso. Così per tutto il Drupal Internals avrete bisogno di uno dei the due. PHP può connettersi a MSSQL ed eseguire query sul database, così si potrebbe senza problemi molto scrivere codice personalizzato che esegue le query ai database del vostro altra applicazione e sia recuperare o aggiornare i dati. A seconda dei dati, si potrebbe desiderare di creare una tabella nel database che si può leggere e scrivere, e poi sincronizzare le basi di dati quando necessario. Dipende un po 'sul vostro caso d'uso. Ho fatto questi ultimi, nel caso in cui non ho bisogno di scrivere nel database, ma solo bisogno di prendere un po 'di informazioni di prodotto formano un database legacy che era ancora in uso da altri sistemi.

RLB,

Ho fatto un po 'di Drupal e hanno una forte esperienza di ASP.NET. Hai davvero bisogno di leggere fino a ottenere il diritto mentalità. Usano strati in modo MVC-like che è molto estraneo a WebForms e sviluppatori ASP.NET MVC ... e francamente in un primo momento sembra strano.

Ecco una lista delle cose che ho fatto per ottenere davvero molto buono in fretta:

  1. Prendi un ospite come a hostgator a $ 8 che vi permetterà di installare Drupal
  2. Prendi il libro Pro Drupal Development per principianti ... eccellente e davvero copre un sacco di aree 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. Prendi sul forum di Drupal
  4. Essere pronti a contribuire. Drupal ha un sacco di funzioni, ma alla fine il modo migliore è quello di essere qualcuno che contribuisce codice Indietro

Ci sono un certo numero di IDE da considerare, ma per avviare un editor di testo dovrebbe andare bene.

In bocca al lupo.

Alcune buone risposte qui, quindi mi limiterò a riempire alcuni brevi articoli.

1 - Apprendimento Drupal: Pro Drupal Development è il miglior libro per questo. Entrare in code di emissione e di interagire con gli sviluppatori è un modo per acquisire familiarità con le specifiche. La tua domanda sulle forme si riferisce a come Drupal gestisce forme. Il FAPI è abbastanza robusta in Drupal, e ti protegge dalle gaffe di sicurezza. Anche api dot org Drupal dot è dove è documentato il codice, anche se ci sono documenti altrove. Google è tuo amico. (Sul sito Drupal stesso, utilizzare la ricerca nativo per ottenere risultati sfaccettate.)

2 - Si tratta di un problema di autorizzazioni utente. È possibile limitare le autorizzazioni di creazione e modifica in base al tipo di contenuto. Per il controllo di accesso (lettura), si vuole utilizzare uno dei tanti moduli per il controllo degli accessi. Dipende molto dal vostro caso d'uso.

3 - Drupal ha il supporto più della comunità per MySQL, ma la gente correre Drupal su MS SQL pure. In Drupal 7, è probabile vedere molto di più il supporto per i non-MySQL come questa release introduce astrazione del database.

Probabilmente la cosa peggiore da fare è di hack di margini. Si paga veramente imparare i pro ei contro delle nozioni di base Drupal - l'amministrazione e la codifica -. In modo che si può veramente sfruttare la potenza di Drupal porta in tavola

E se siete a caccia di moduli, http://drupalmodules.com è tuo amico. ;)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top