سؤال

أنا أعرف asp.net ج # جيد جدا. أقوم بالكثير من الأشياء مثل المسوحات وتطبيقات الويب المخصصة.

أحصل على الكثير من المتاعب في التفاف رأسي حول دروبال وأفترض كيفية القيام بالأشياء البرنامجية "الخاصة"، مثل البحث في قائمة العملاء، أو إنشاء تطبيق ويب.

1 - لقد كنت أقرأ الكتب و API Drupal ولكني ما زلت أواجه الكثير من المشاكل في البدء بأي شيء على الإطلاق. أين يذهب رمز مخصص فيما يتعلق بالصفحات أو الوحدات والنمطات أو القصاصات ...؟ كيف يمكنني نسخ النموذج X الذي قمت به في ASP.NET في صفحة جديدة في Drupal؟ وما إلى ذلك. من الصعب للغاية لف رئيسي حول دروبال، يبدو كبيرا جدا وسهلا وقابل للتوسيع، كما أنه من الصعب للغاية بالنسبة لي. ما الذي يمكن أن توصي بمبرمج تطبيق ASP.NET لتعلم العمل مع / في Drupal؟

2 - في بعض الأحيان نكتب تطبيقات ASP.NET كاملة للعملاء، ولا يتم منح هذه التطبيقات للعملاء للذهاب إلى تحريرها. على سبيل المثال، سيكون لدينا موقعنا بالكامل في دروبال، ولكن داخل هذا الموقع، سيكون لدينا مكان للمستخدمين لاستخدام البحث الخاص للحصول على معلومات قاعدة البيانات. لا نريد محرري مواقع الويب البسيطة وموفري المحتوى الذين يحاولون تحرير هذه الصفحة (الصفحات) المشفرة خصيصا. كيف يمكنني التعامل مع عدم الرغبة بالعملاء لتحرير أي شيء في تطبيق Drupal؟ هل يتم التعامل معها عبر أذونات الصفحة / المستخدم؟ هو أفضل شيء لتطوير واستضافة تطبيق خارج Drupal تماما؟ هو تطبيق Drupal هو مثيل Drupal الخاص داخل موقع Drupal (Drupals المتداخل؟)؟

3 - أخيرا، كيف يمكنني التعامل مع قواعد البيانات؟ أفهم Drupal ويتم تعيين PHP للعمل بشكل أفضل مع MySQL. لدينا قواعد بيانات MS SQL التي تستخدمها تطبيقات متعددة وترغب في استخدامها للتطبيقات الجديدة كما نبدأ في استخدام Drupal. على سبيل المثال، لدينا دليل موظف يغذي تطبيق ASP.NET Reporting Application، وتطبيق قائمة موظفي ASP.NET، وتريد إجراء تطبيق Drupal PHP جديد يستخدم أيضا (وربما إدراج / تحديثات مزيد من المعلومات في قاعدة البيانات. ما هي أفضل / أسهل طريقة للتعامل مع قواعد بيانات MS SQL و / أو قواعد بيانات MySQL التي يتم استخدامها وتحديثها من خلال تطبيقات Drupal و ASP.NET متعددة؟ هل سيكون من الأسهل الحصول على جميع التطبيقات استخدم قواعد بيانات MS SQL، أو ربما لتكرار قواعد البيانات على MySQL لتطبيقات Drupal / PHP ومزامنتها بطريقة أو بأخرى قواعد البيانات؟

آمل أن يكون على ما يرام إذا سألت أسئلة متعلقة متعددة في منشور واحد.

هل كانت مفيدة؟

المحلول

بادئ ذي بدء، أعتقد أن ما هو مهم لفهم قيود دروبال، وهناك أشياء ليست مصنوعة حقا من أجلها. إنه نوع من إطار تطبيق الويب ولكن إذا كنت تفعل الكثير من العمل المخصص مع DataModelling المخصصة الخاصة بك والاشياء، فقد لا يكون Drupal الحل الأكثر مرونة أو سهلة الاستخدام لأنواعك من المشكلات. قد يكون إطار عمل أكثر عمومية مثل مثيل Zend Framework أكثر ملاءمة.

درس مهم في تعلم Drupal هو: لا تتخخر الأساسية أو غيرها من الوحدات. هذا سيجعل ترقية الأساسية أو الوحدات التي تستغرق وقتا طويلا. بدلا من ذلك "هل مثل Drupal" وتجاوز استخدام السنانير. في ظهورك، يمكنك أيضا تجاوز السنانير، ولكن أيضا بطرق أخرى. الغالبة قوية لذلك فهم هذا المفهوم جيدا.

  1. أود أن أقول، اختر طريقة للتعلم أن أسلوبك، screencasts، IRC، القرصنة، لقاءات المستخدم IRL، كتب، مقالات أو أي مجموعة وابحث عن المواد على Drupal. ما عليك سوى البدء في الخمر والحصول على شعور وفهم كيف يعمل Drupal. فهم Jargon جزء مهم، فما هي: العقد، الكتل، المناطق، السنانير، الوحدات النمطية، السمات.
  2. يحتوي Drupal على نظام إذن مرن للغاية، وربما هو الخيار الأفضل لاستخدامه بدلا من تحقيقه. يمكنك كتابة وحداتك الخاصة التي تضيف أو تغيير سلوك Drupal. لذلك إذا كنت ترغب في كتابة تطبيق جديد يعمل مع DRUPAL، فيمكنك كتابة وحدة نمطية تؤدي التطبيق، يجب أن يكون لدى التطبيق واستفادة من جميع المرافق Drupal العروض، بما في ذلك المستخدمون، ونظام الإذن، إلخ، إلخ. تفهم حقا الجزء الأخير من سؤالك الثاني "هو تطبيق Drupal هو مثيل Drupal الخاص بك داخل موقع Drupal (Drupals المتداخل؟)؟". Drupal عبارة عن مجموعة من ملفات PHP على خادم، بالإضافة إلى مجموعة كبيرة من الجداول في قاعدة بيانات تخدم الطلب المقدمة إليها. يمكن أن تتم الإشارة إلى مواقع مواقع Drupal متعددة (حتى ملفات PHP مختلفة) نفس قاعدة البيانات أو أجزاء منه (على سبيل المثال جدول المستخدم). ليس هناك حقا "مثيل" موقع دروبال، لأنه ليس هناك بالفعل تطبيق ". يمكن أن أكون بالطبع غير مألوف للغاية بهذه الشروط، لكنني لا أعتقد أن PHP يعمل مع "مثيلات" التطبيقات ".

  3. هذه مشكلة صعبة، لا يعمل AFAIK Drupal مع MS SQL، لذلك أي اتصالات في هذا الاتجاه قد تضطر إلى جعل نفسك. سأطلب أيضا حول منتديات Drupal أو على IRC.

حظ سعيد!

نصائح أخرى

أخشى أنني لا أملك أي تجربة مع Drupal، لذلك لا يمكنني تقديم أي رؤى في أسئلتك الأولى أو الثانية، ولكن في السؤال الثالث:

ما هي أفضل / أسهل طريقة للتعامل مع قواعد بيانات MS SQL و / أو قواعد بيانات MySQL التي يتم استخدامها وتحديثها من خلال تطبيقات Drupal و ASP.NET متعددة؟

إذا كنت ستؤدي عمليات CRUD من تطبيقات ASP.NET الخاصة بك وتطبيقات PHP / Drupal الخاصة بك، فسوف أوصي بمحاولة مزامنة البيانات جيئة وذهابا بين MySQL و MSSQL لأن هذا سيؤدي إلى مشاكل الكمون بالإضافة إلى ذلك للتعامل مع الاختلافات بين أنظمة إدارة قواعد البيانات.

بدلا من ذلك، أود أن أوصي بالنظر في استخدام الإجراءات المخزنة للتحكم في جميع الوصول إلى قاعدة البيانات. وبهذه الطريقة، يمكنك التأكد من أن جميع عمليات قاعدة البيانات Crud تتفق مع نفس القواعد والمنطق.

يجب ألا يكون استخدام MSSQL في كل من ASP.NET و PHP مشكلة، لا سيما مع مكتبة PDO ممتازة للغاية توفر واجهة قياسية للوصول إلى عدد من أنظمة إدارة قواعد البيانات الشائعة. يجب أن يسمح لك بالتواصل بسرعة وسهولة والبدء في استخدام قواعد بيانات MSSQL الخاصة بك ضمن تطبيقات PHP الخاصة بك.

إنها بعض الأسئلة الجيدة التي تسألها. سأحاول الإجابة عليها بأفضل ما لدي. ليس لدي أي خبرة مع C # من APS.Net، لذلك لا أعرف بالضبط أين أنت قادم. لقد تعلمت نفسي Drupal كمطور بيثون / Django عديم الخبرة. لذلك في بعض الطرق أستطيع أن أفهم بعض المشاكل التي تمر بها تحاول تعلم دروبال. بعض هذه الأشياء ستتطلب ببساطة وقت / تجربة / تجربة قبل أن تختفي.

  1. لفهم دروبال حقا و API Drupal، ستحتاج أولا إلى فهم جيد ل PHP. في بعض الأحيان يقوم Drupal ببعض الأشياء المعقدة PHP، لذلك إذا كنت لا تفهم بناء الجملة أو وظائف PHP وما إلى ذلك، فيمكنك أن تضيع سهولة.

    • أين الكود يعيش؟
      بنيت Drupal كأنظمة محددة. Drupal نفسه عبارة عن مجموعة من الوحدات النمطية، بعضها مطلوبة ل Drupal للعمل بشكل صحيح. إذا كنت تريد إجراء بعض التعليمات البرمجية المخصصة، فهل تريد القيام بشيء ما، فلا يمكنك استخدام وحدة نمطية ل. هناك حوالي 5000 وحدة تم تطويرها ل Drupal. في كثير من الأحيان حتى عندما تكون مبرمجا ماهرا، فإن الخيار الأفضل هو العثور على وحدة نمطية ستفعل ما تحتاجه أو يمكنه الحصول على إغلاق. إذن ما تفعله، لإنشاء وحدة بنفسك.

      1. قم بإجراء مجلد باسم الوحدة النمطية

      2. إنشاء modulename.info داخله الذي يحمل بعض المعلومات حول الوحدة النمطية المنسقة بطريقة خاصة. ستحتاج Drupal إلى عرض FX الوحدة النمطية في صفحة قائمة الوحدات النمطية حيث تقوم بتنشيط الوحدات النمطية.

      3. أخيرا قم بإنشاء ملف modulename.module حيث سيكون جوهر التعليمات البرمجية الخاصة بك الوحدة.

      هناك شيء آخر مهم لفهمه مع Drupal، هو أنه يستخدم نظام هوك. تشبه السنانير الأحداث التي تطلق النار بمجرد حدوث بعض الأشياء التي ترغب في ربط التدفق أو تغيير بعض الأشياء الخاصة بك. FX يمكنك التسجيل في كل مرة يتم عرض نموذج معين، أو يمكنك تغيير النموذج، إضافة / إزالة الحقول.

    • نماذج
      يحتوي DRUPAL على واجهة برمجة تطبيقات FAIP أو شكلها، والتي تستخدم لتوليد نموذج، وهذا شيء لديه صفحة خاصة به في الوثائق. هذه الفكرة هي أن تقوم بإنشاء صفيف PHP المنشأ الذي يحمل معلومات حول كل عنصر من عناصر النموذج، وسيستخدم Drupal ذلك لإنشاء النموذج.

    • كتبهناك الكثير من الكتب الجيدة ل Drupal التي يمكنك التعلم منها. الكتاب أنا نفسي تعلم أكثر من برو دروبال للتنمية

  2. بادئ ذي بدء، يحتوي Drupal على نظام إذن دور محموس جيد للغاية، سيسمح لك بإعداد ما يسمح له عملاءك بالضبط. يمكنك إنشاء أدوار مختلفة، مثل المشرف، منشئ المحتوى، المسؤول، Sysadmin إلخ، وإعطاء أذونات مختلفة لكل دور. هذا سهل جدا وهو الإعداد داخل DRUPAL AI. ومع ذلك، ستحتاج إلى معرفة الأذونات كما هي أذونات سوبر من شأنها أن تعطي الوصول إلى الكثير من الأشياء. الآن لإدماج التطبيقات الخاصة بك، هذا شيء تريد أن تكتب وحدة مخصصة لك. أنا لا أعرف بالضبط كيف تريد القيام بذلك. لكنني أعتقد أن أفضل نتيجة سيتم الحصول عليها عن طريق السماح ل Drupal بإنشاء الصفحات والأشكال وغيرها من طلبك وإرسال البيانات ذهابا وإيابا. وبهذه الطريقة سيكون الموضوع = تخطيط الموقع ثابتا. وبهذه الطريقة لن يشعر المستخدمون بأنهم غادروا الموقع، ولكن هذا ببساطة كان مجرد ميزة أخرى يقدم الموقع.

  3. لا يتم ضبط Drupal على التعامل مع أفضل MySQL، فستحتاج فعليا إما إلى MySQL أو PSQL كإخلاف قاعدة بيانات Drupal الخاصة بك. السبب هو الطريقة التي تعالج بها drupal الاستعلامات، تتيح لك كتابة استفسارات غير محددة ستعمل، بغض النظر عن أي من النوعين الذي تستخدمه، أو إذا كانت جداولك تحتوي على بادئة. لذلك لجميع دوخ الدروبال ستحتاج إلى واحد من الاثنين. يمكن ل PHP الاتصال باستتاحات MSSQL وتشغيل الاستعلامات الموجودة في قاعدة البيانات هذه، بحيث يمكنك دون الكثير من المشكلات كتابة التعليمات البرمجية المخصصة التي تدير الاستعلامات إلى قواعد بيانات التطبيق الأخرى وإرجاع البيانات أو تحديثها. اعتمادا على البيانات، قد ترغب في إنشاء جدول في قاعدة البيانات الخاصة بك يمكنك القراءة والكتابة إليها، ثم مزامنة قواعد البيانات عند الحاجة. ذلك يعتمد قليلا على حالة استخدامك. لقد قمت بذلك الأخير، في حالة عدم احتياجاتك للكتابة إلى قاعدة البيانات، ولكن ليس هناك حاجة فقط لإحضار بعض معلومات المنتج نموذج قاعدة بيانات قديمة لا تزال تستخدمها أنظمة أخرى.

RLB،

لقد فعلت قليلا من Drupal وتجربة ASP.NET قوية. تحتاج حقا إلى القراءة للحصول على عقلك مباشرة. يستخدمون الطبقات في أزياء تشبه MVC وهي أجنبية للغاية إلى مطوري WebForms & ASP.NET MVC ... وبصراحة تماما في البداية تبدو غريبة.

إليك قائمة بالأشياء التي فعلتها للحصول عليها حقا، جيدة حقا بسرعة:

  1. احصل على مضيف مثل Hostgator مقابل 8 دولارات مما يتيح لك تثبيت Drupal
  2. احصل على كتاب تطوير Drupal Pro للمبتدئين ... ممتازة ويغطي حقا الكثير من المناطق http://www.amazon.com/pro-drupal-development-second-beginning/dp/1430209895/dp/1430209895/dp/1430209895/ref=sr_1_2؟ie=utf8&s=books&qid=1257545528&sr=8-2.
  3. الحصول على منتديات دروبال
  4. كن مستعدا للمساهمة. DRUPAL لديه الكثير من الميزات، ولكن في النهاية أفضل طريقة هي أن تكون شخصا يسير في التراجع

هناك عدد من المعالمات التي يجب مراعاتها، ولكن لبدء تشغيل محرر نصوص يجب أن تكون على ما يرام.

حظ سعيد.

بعض الإجابات الجيدة هنا، لذلك أنا فقط ملء بعض العناصر الموجزة.

1 - تعلم Drupal: Pro Drupal Development هو أفضل كتاب لهذا. الدخول في قوائم انتظار القضايا والتفاعل مع المطورين هو وسيلة للتعرف على التفاصيل. سؤالك حول النماذج يتعلق بكيفية معالجة Drupal. FAPI قوي جدا في دروبال، ويحميك من Gaffes الأمن. أيضا API Dot Drupal Dot Org هو المكان الذي يتم فيه موثقة الكود، على الرغم من وجود مستندات في مكان آخر. جوجل هو صديقك. (على موقع Drupal نفسه، استخدم البحث الأصلي للحصول على نتائج جوفية.)

2 - هذه مشكلة أذونات المستخدم. يمكنك تحديد الأذونات الإبداعية وتحريرها بناء على نوع المحتوى. للتحكم في الوصول (اقرأ)، سوف ترغب في استخدام واحدة من العديد من الوحدات النمطية لعنصر التحكم في الوصول. يعتمد حقا على قضية استخدامك.

3 - Drupal لديه الدعم الأكثر مجتمعية ل MySQL، لكن الناس يديرون Drupal على MS SQL أيضا. في Drupal 7، من المحتمل أن ترى المزيد من الدعم غير MySQL حيث يقدم هذا الإصدار تجريد قاعدة البيانات.

ربما أسوأ شيء يجب القيام به هو الاختراق حول الهوامش. إنه يدفع حقا لتعلم INS and Outss من أساسيات Drupal - الإدارة والترميز - حتى تتمكن من الاستفادة من قوة Drupal التي يجلبها إلى الجدول.

وإذا كنت تبحث عن وحدات، http://drupalledules.com. هو صديقك. ؛)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top