Frage

Ich kenne ASP.NET C# sehr gut.Ich erstelle viele Dinge wie Umfragen und benutzerdefinierte Webanwendungen.

Es fällt mir schwer, mich mit Drupal zurechtzufinden und herauszufinden, wie ich „besondere“ programmatische Dinge tun kann, etwa eine Liste von Kunden durchsuchen oder eine Webanwendung erstellen.

1 - Ich habe Bücher und die Drupal-API gelesen, aber es fällt mir immer noch schwer, mit irgendetwas anzufangen.Wohin geht benutzerdefinierter Code in Bezug auf Seiten, Module, Snippets usw.?Wie repliziere ich Formular X, das ich in ASP.NET erstellt habe, in eine neue Seite in Drupal?Usw.Es fällt mir sehr schwer, mich mit Drupal vertraut zu machen. Es kommt mir so groß, einfach und erweiterbar vor, aber es scheint mir auch schwierig zu sein, Code zu schreiben. Was können Sie einem ASP.NET-Anwendungsprogrammierer empfehlen, um die Arbeit mit/in Drupal zu erlernen?

2 - Manchmal schreiben wir komplette ASP.NET-Anwendungen für Kunden, und diese Anwendungen sind nicht dafür gedacht, dass Kunden sie bearbeiten.Beispielsweise werden wir unsere gesamte Website in Drupal haben, aber innerhalb dieser Website werden wir einen Ort haben, an dem Benutzer eine spezielle Suche nach Datenbankinformationen durchführen können.Wir möchten nicht, dass einfache Website-Redakteure und Inhaltsanbieter versuchen, diese speziell codierten Seiten zu bearbeiten. Wie gehe ich damit um, wenn ich nicht möchte, dass Kunden etwas in einer Drupal-Anwendung bearbeiten? Wird es über Seiten-/Benutzerberechtigungen gehandhabt?Ist es am besten, eine Anwendung vollständig außerhalb von Drupal zu entwickeln und zu hosten?Ist die Drupal-Anwendung eine eigene Drupal-Instanz innerhalb einer Drupal-Website (verschachtelte Drupals?)?

3 - Und schließlich: Wie gehe ich mit Datenbanken um?Ich verstehe, dass Drupal und PHP am besten mit MySQL funktionieren.Wir verfügen über MS SQL-Datenbanken, die von mehreren Anwendungen verwendet werden, und möchten diese gerne für neue Anwendungen verwenden, wenn wir mit der Verwendung von Drupal beginnen.Beispielsweise verfügen wir über ein Mitarbeiterverzeichnis, das die ASP.NET-Berichtsanwendung und die ASP.NET-Personallistenanwendung speist, und wir möchten eine neue Drupal-PHP-Anwendung erstellen, die diese Datenbank ebenfalls verwendet (und möglicherweise weitere Informationen in sie einfügt/aktualisiert). Was ist der beste/einfachste Weg, mit MS SQL-Datenbanken und/oder MySQL-Datenbanken umzugehen, die von mehreren Drupal- und ASP.NET-Anwendungen verwendet und aktualisiert werden? Wäre es einfacher, alle Anwendungen die MS SQL-Datenbanken verwenden zu lassen, oder vielleicht die Datenbanken auf MySQL für die Drupal/PHP-Apps zu replizieren und die beiden Datenbanken irgendwie zu synchronisieren?

Ich hoffe, es ist in Ordnung, wenn ich in einem einzigen Beitrag mehrere verwandte Fragen stelle.

War es hilfreich?

Lösung

Zunächst einmal denke ich, was wichtig ist Drupal Einschränkungen zu verstehen, gibt es Dinge, die es für nicht wirklich gemacht hat. Es ist eine Art Rahmen Web-Anwendung, aber wenn Sie viel Maßarbeit mit Ihrer eigenen Datenmodellierung und Sachen zu tun, Drupal ist vielleicht nicht die flexibelste oder leicht implementierbare Lösung für Ihre Art von Problemen. Ein allgemeiner Rahmen wie zum Beispiel Zend Framework sein könnte besser geeignet.

Eine wichtige Lektion Drupal zu lernen ist: Hack nicht Kern oder anderen Modulen. Dadurch wird Upgrade Kern oder Module sehr zeitaufwendig. „Tun wie Drupal“ statt und außer Kraft setzen Haken. In Thematisierung können Sie auch mit Haken außer Kraft setzen, sondern auch auf andere Weise. Übergeordnete ist mächtig, so verstehen, dass das Konzept gut.

  1. Ich würde sagen, eine Art des Lernens auswählen, die Ihren Stil, Screencasts, IRC, Hacking, Benutzer meetups IRL, Bücher, Artikel oder eine beliebige Kombination und suche Material auf Drupal. Starten Sie einfach herumschlagen und ein Gefühl und das Verständnis davon, wie Drupal funktioniert. den Jargon ist ein wichtiger Teil Verstehen, also was sind: Knoten, Blöcke, Regionen, Haken, Module, Themen
  2. .
  3. Drupal hat ein sehr flexible Berechtigungssystem, und es ist wahrscheinlich die beste Wahl, die zu verwenden, anstatt Ihre eigenen zu machen. Sie können Ihre eigene Module schreiben, oder das Verhalten von Drupal hinzufügen ändern. Also, wenn Sie eine neue Anwendung schreiben wollen, die mit Drupal funktioniert können Sie ein Modul schreiben, die Funktionalität der Durchführung der Anwendung haben muss und die Nutzung aller Einrichtungen Drupal Angebote zu machen, einschließlich der Nutzer, das Berechtigungssystem, etc, etc. Ich don‘ t wirklich den letzten Teil Ihrer zweiten Frage verstehen „ist die Anwendung drupal es innerhalb einer drupal-Website eigene drupal-Instanz (verschachtelte drupals?)?“. Drupal ist eine Sammlung von PHP-Dateien auf einem Server, der zusammen mit einer Reihe von Tabellen in einer Datenbankabfrage, um es gemacht dient. Mehrere Drupal Webseite (so unterschiedliche PHP-Dateien) können auf die gleiche Datenbank oder Teile davon Referenz (zum Beispiel der Benutzertabelle). Es gibt nicht wirklich eine „Instanz“ eine Drupal-Website, wie es gibt nicht wirklich eine „Anwendung“. Ich könnte natürlich auch nicht vertraut mit diesen Bedingungen, aber ich glaube nicht, PHP arbeitet mit „Instanzen“ von „Anwendungen“.

  4. Das ist ein schwieriges Problem, afaik Drupal nicht mit MS SQL funktioniert, so dass alle Verbindungen in dieser Richtung müssen Sie möglicherweise selbst machen. Ich würde auch um die Drupal Foren oder im IRC fragen.

Viel Glück!

Andere Tipps

Ich habe Angst, dass ich nicht mit Drupal keine Erfahrung haben, so kann ich keine Einblicke in Ihre ersten oder zweiten Fragen bieten, aber auf die dritte Frage:

  

Was ist der beste / einfachste Weg zu handhaben   MS SQL-Datenbanken und / oder MySQL   Datenbanken werden verwendet und aktualisiert von   mehrere Drupal und ASP.NET   Anwendungen?

Wenn Sie CRUD-Operationen beide ausführen werden von ASP.NET-Anwendungen und Ihren PHP / Drupal-Anwendungen, dann würde ich empfehlen, vor dem Versuch, Daten hin und her zwischen MySQL und MSSQL, da dies für die Synchronisierung wird Latenzprobleme verursachen und Sie‘ ll dann mit den Unterschieden zwischen den beiden Datenbankmanagementsystemen zu tun hat.

Stattdessen würde ich empfehlen, dass Sie die Kontrolle zu buchen, gespeicherten Prozeduren, um alle Datenbankzugriffe. Auf diese Weise können Sie sicherstellen, dass alle Ihre Datenbank CRUD Operationen gleichen Regeln und Logik entsprechen.

Mit MSSQL in beide ASP.NET und PHP soll kein Problem sein, besonders nicht mit der sehr guten PDO-Bibliothek, die für den Zugriff auf eine Reihe von populären Datenbank-Management-Systemen eine Standardschnittstelle zur Verfügung stellt. Es sollten Sie ermöglichen, schnell und einfach mit zu verbinden und beginnen mit Ihren MSSQL-Datenbanken in Ihren PHP-Anwendungen.

Es sind einige gute Fragen, die Sie stellen.Ich werde versuchen, sie so gut wie möglich zu beantworten.Ich habe keine Erfahrung mit c# von APS.NET, daher weiß ich nicht genau, woher Sie kommen.Ich selbst habe Drupal als unerfahrener Python/Django-Entwickler gelernt.In gewisser Weise kann ich also einige der Schwierigkeiten verstehen, die Sie beim Erlernen von Drupal haben.Einige dieser Dinge erfordern einfach Zeit/Erfahrung/Experimente, bevor sie verschwinden.

  1. Um Drupal und die Drupal-API wirklich zu verstehen, benötigen Sie zunächst gute PHP-Kenntnisse.Manchmal führt Drupal einige komplexe PHP-Aufgaben aus. Wenn Sie also die Syntax oder die PHP-Funktionen usw. nicht verstehen, können Sie leicht den Überblick verlieren.

    • Wo lebt Code?
      Drupal ist als Modulsystem aufgebaut.Drupal selbst besteht aus einer Reihe von Modulen, von denen einige für die ordnungsgemäße Funktion von Drupal erforderlich sind.Wenn Sie benutzerdefinierten Code erstellen möchten, möchten Sie etwas tun, für das Sie kein Modul verwenden können. Für Drupal wurden etwa 5000 Module entwickelt.Selbst wenn man ein erfahrener Programmierer ist, ist es oft die beste Wahl, ein Modul zu finden, das genau das tut, was man braucht, oder das einem nahe kommt. Was Sie also tun, ist, ein eigenes Modul zu erstellen.

      1. Erstellen Sie einen Ordner mit dem Namen des Moduls

      2. Erstellen Sie darin eine modulename.info, die einige Informationen über das Modul in einer speziellen Formatierung enthält.Drupal benötigt es, um das Modul auf der Modullistenseite anzuzeigen, auf der Sie Module aktivieren.

      3. Erstellen Sie abschließend eine Datei modulename.module, in der sich der Kern Ihres Codes für das Modul befindet.

      Bei Drupal ist es außerdem wichtig zu verstehen, dass es ein Hook-basiertes System verwendet.Hooks sind wie Ereignisse, die ausgelöst werden, sobald bestimmte Dinge passieren, in die Sie eingreifen und entweder den Fluss ändern oder einige eigene Dinge tun möchten.Beispielsweise könnten Sie jedes Mal aufzeichnen, wenn ein bestimmtes Formular angezeigt wurde, oder Sie könnten das Formular ändern, indem Sie Felder hinzufügen/entfernen.

    • Formen
      Drupal verfügt über eine FAIP- oder Formular-API, die zum Generieren von Formularen verwendet wird. Dafür gibt es in der Dokumentation eine eigene Seite.Die Idee besteht darin, dass Sie ein assoziatives PHP-Array erstellen, das Informationen zu jedem Element des Formulars enthält, und Drupal wird diese zum Erstellen des Formulars verwenden.

    • BücherEs gibt viele gute Bücher für Drupal, aus denen Sie lernen können.Das Buch, aus dem ich selbst am meisten gelernt habe, ist Pro Drupal-Entwicklung

  2. Erstens verfügt Drupal über ein sehr fein abgestimmtes, rollenbasiertes Berechtigungssystem, mit dem Sie genau festlegen können, was Ihre Kunden tun dürfen.Sie können verschiedene Rollen erstellen, z. B. Moderator, Inhaltsersteller, Administrator, Systemadministrator usw., und jeder Rolle unterschiedliche Berechtigungen erteilen.Dies ist ziemlich einfach und wird innerhalb der Drupal-KI eingerichtet.Allerdings müssen Sie einige Berechtigungen kennen Super Berechtigungen Das wird den Zugang zu vielen Dingen ermöglichen.Was nun die Integration Ihrer Anwendungen betrifft, ist das etwas, wofür Sie wahrscheinlich ein benutzerdefiniertes Modul schreiben möchten.Ich weiß nicht genau, wie du das machen willst.Ich denke jedoch, dass das beste Ergebnis erzielt werden würde, wenn Drupal die Seiten, Formulare usw. aus Ihrer Anwendung erstellen und die Daten einfach hin und her senden würde.Auf diese Weise wäre das Thema = Layout der Website konsistent.Auf diese Weise hätten die Benutzer nicht das Gefühl, dass sie die Website verlassen hätten, sondern dies war lediglich eine weitere Funktion, die die Website bot.

  3. Drupal ist nicht nur darauf eingestellt, MYSQL am besten zu verarbeiten, Sie benötigen tatsächlich entweder MYSQL oder PSQL als Backend für Ihre Drupal-Datenbank.Der Grund liegt in der Art und Weise, wie Drupal Abfragen verarbeitet. Dadurch können Sie unspezifische Abfragen schreiben, die funktionieren, unabhängig davon, welchen der beiden Typen Sie verwenden oder ob Ihre Tabellen ein Präfix haben.Für alle Drupal-Interna benötigen Sie also eines von beiden.PHP kann eine Verbindung zu MSSQL herstellen und Abfragen für diese Datenbank ausführen, sodass Sie ohne große Probleme benutzerdefinierten Code schreiben können, der Abfragen für die Datenbanken Ihrer anderen Anwendung ausführt und Daten entweder abruft oder aktualisiert.Abhängig von den Daten möchten Sie möglicherweise eine Tabelle in Ihrer Datenbank erstellen, in die Sie lesen und schreiben können, und die Datenbanken dann bei Bedarf synchronisieren.Es hängt ein wenig von Ihrem Anwendungsfall ab.Letzteres habe ich für den Fall getan, dass ich nicht in die Datenbank schreiben musste, sondern nur einige Produktinformationen aus einer Legacy-Datenbank abrufen musste, die noch von anderen Systemen verwendet wurde.

rlb,

Ich habe ziemlich viel von Drupal gemacht und haben eine starke ASP.NET Erfahrung. Sie müssen wirklich Ihre Einstellung gerade zu bekommen zu lesen. Sie nutzen Schichten in einer MVC-ähnliche Art und Weise, die sehr fremd ist zu WebForms & ASP.NET MVC-Entwickler ... und ehrlich gesagt auf den ersten Blick seltsam.

Hier ist eine Liste von Dingen, die ich wirklich tat zu bekommen, wirklich gut schnell:

  1. Holen Sie sich einen Host wie bei hostgator für $ 8, die Sie Drupal installieren lassen
  2. Holen Sie sich das Buch Pro Drupal Development für Anfänger ... ausgezeichnet und wirklich deckt viele Bereiche

    Hier einige gute Antworten, also werde ich nur in einigen kurzen Artikel füllen.

    1 - Learning Drupal: Pro Drupal Development ist das beste Buch für diese. Der Einstieg in die Ausgabe-Warteschlangen und die Interaktion mit den Entwicklern ist eine Möglichkeit, mit Besonderheiten vertraut zu machen. Ihre Frage über die Formen betrifft, wie Drupal Griffe Formen. Die FAPI ist ziemlich robust in Drupal, und schützt Sie vor Sicherheits Entgleisungen. Auch api dot Drupal dot org ist, wo der Code dokumentiert ist, obwohl es an anderer Stelle docs. Google ist dein Freund. (Auf der Drupal-Seite selbst, verwenden Sie die native Suche facettierte Ergebnisse zu erhalten.)

    2 - Dies ist ein Benutzerberechtigungsproblem. Sie können die Erstellung und Bearbeitung von Berechtigungen auf Basis von Inhaltstyp begrenzen. Der Zugriffskontrolle (lesen), sollten Sie eines der vielen Module für die Zugangskontrolle verwenden. Es hängt wirklich von Ihrem Anwendungsfall.

    3 - Drupal hat die meisten Community-Support für MySQL, aber die Leute auch Drupal auf MS SQL ausgeführt werden. In Drupal 7, werden Sie wahrscheinlich viel mehr Unterstützung für Nicht-MySQL sehen, wie diese Release-Datenbank Abstraktion führt.

    Wahrscheinlich ist das Schlimmste, was zu tun, um die Margen hacken um. Es lohnt sich wirklich die Ins und Outs der Drupal Grundlagen zu erlernen - Verwaltung und Codierung -., So dass Sie wirklich die Macht Drupal auf den Tisch bringt nutzen können,

    Und wenn Sie für die Module der Jagd, http://drupalmodules.com ist dein Freund. ;)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top