Разработчик ASP.NET пытается изучить Drupal и PHP [закрыто]

StackOverflow https://stackoverflow.com/questions/1690763

Вопрос

Я очень хорошо знаю ASP.NET C#.Я делаю много вещей, таких как опросы и специальные веб-приложения.

У меня много проблем с изучением Drupal и выяснением того, как выполнять «специальные» программные действия, такие как поиск по списку клиентов или создание веб-приложения.

1 - Я читал книги и API Drupal, но у меня до сих пор много проблем с тем, чтобы вообще с чем-то начать.Куда помещается пользовательский код в отношении страниц, модулей, фрагментов...?Как мне скопировать форму X, которую я сделал в ASP.NET, на новую страницу в Drupal?И т. д.Мне очень сложно усвоить Drupal, он кажется таким большим, простым и расширяемым, но в то же время мне сложно программировать. Что вы можете порекомендовать программисту приложений ASP.NET, чтобы он научился работать с Drupal?

2 - Иногда мы пишем для клиентов полные приложения ASP.NET, и эти приложения не предназначены для того, чтобы клиенты могли их редактировать.Например, весь наш веб-сайт будет работать на Drupal, но внутри этого веб-сайта у нас будет место, где пользователи смогут использовать специальный поиск информации в базе данных.Мы не хотим, чтобы простые редакторы веб-сайтов и поставщики контента пытались редактировать эти специально закодированные страницы. Как мне справиться с тем, что клиенты не хотят ничего редактировать в приложении Drupal? Это обрабатывается через разрешения страницы/пользователя?Является ли лучшим решением разработать и разместить приложение полностью за пределами Drupal?Является ли приложение Drupal собственным экземпляром Drupal внутри веб-сайта Drupal (вложенные Drupals?)?

3 - Наконец, как мне обращаться с базами данных?Я понимаю, что Drupal и PHP лучше всего работают с MySQL.У нас есть базы данных MS SQL, которые используются несколькими приложениями, и мы хотели бы использовать их для новых приложений, когда мы начнем использовать Drupal.Например, у нас есть каталог Staff, который загружает приложение отчетности ASP.NET, приложение списка персонала ASP.NET, и мы хотим создать новое PHP-приложение Drupal, которое также использует (и, возможно, вставляет/обновляет дополнительную информацию) эту базу данных. Каков наилучший/самый простой способ обработки баз данных MS SQL и/или баз данных MySQL, используемых и обновляемых несколькими приложениями Drupal и ASP.NET? Было бы проще заставить все приложения использовать базы данных MS SQL или, может быть, реплицировать базы данных в MySQL для приложений Drupal/PHP и каким-то образом синхронизировать две базы данных?

Надеюсь, ничего страшного, если я задам несколько связанных вопросов в одном посте.

Это было полезно?

Решение

Прежде всего, я думаю, что важно понимать ограничения Drupal: есть вещи, для которых он на самом деле не создан.Это своего рода среда веб-приложений, но если вы выполняете много пользовательской работы с собственным моделированием данных и т. д., Drupal может оказаться не самым гибким или легко реализуемым решением ваших проблем.Более общий фреймворк, например Zend Framework, может оказаться более подходящим.

Важный урок в изучении Drupal:не взламывайте ядро ​​или другие модули.Это сделает обновление ядра или модулей очень трудоемким.Вместо этого «делайте как Drupal» и переопределите его с помощью хуков.В тематике вы также можете переопределить с помощью хуков, но и другими способами.Переопределение — это мощный инструмент, поэтому хорошо поймите эту концепцию.

  1. Я бы сказал, выберите способ обучения, который соответствует вашему стилю: скринкасты, IRC, хакерство, встречи с пользователями в реальной жизни, книги, статьи или любое их сочетание, и ищите материалы на Drupal.Просто начните возиться и почувствуйте и поймите, как работает Drupal.Понимание жаргона является важной частью, так что же:узлы, блоки, регионы, хуки, модули, темы.
  2. Drupal имеет очень гибкую систему разрешений, и, вероятно, лучше всего использовать ее вместо того, чтобы создавать свою собственную.Вы можете написать свои собственные модули, которые дополняют или изменяют поведение Drupal.Итак, если вы хотите написать новое приложение, работающее с Drupal, вы можете написать модуль, выполняющий функциональность, которая должна быть у приложения, и использовать все возможности, которые предлагает Drupal, включая пользователей, систему разрешений и т. д. и т. п.Я не совсем понимаю последнюю часть вашего второго вопроса: «Является ли приложение Drupal собственным экземпляром Drupal внутри веб-сайта Drupal (вложенных Drupal?)?».Drupal — это набор PHP-файлов на сервере, который вместе с множеством таблиц в базе данных обслуживает сделанные к нему запросы.Несколько веб-сайтов Drupal (то есть разные файлы PHP) могут ссылаться на одну и ту же базу данных или ее части (например, таблицу пользователей).На самом деле не существует «экземпляра» сайта Drupal, как и не существует «приложения».Я, конечно, мог быть слишком незнаком с этими терминами, но я не думаю, что PHP работает с «экземплярами» «приложений».

  3. Это сложная проблема, ведь 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 как неопытный разработчик Python/Django.Так что в некотором смысле я могу понять некоторые проблемы, с которыми вы сталкиваетесь, пытаясь изучить Drupal.Некоторые из этих вещей просто потребуют времени/опыта/экспериментов, прежде чем они исчезнут.

  1. Чтобы по-настоящему понять Drupal и Drupal API, вам сначала понадобится хорошее понимание PHP.Иногда Drupal выполняет некоторые сложные вещи PHP, поэтому, если вы не понимаете синтаксис, функции PHP и т. д., вы можете легко заблудиться.

    • Где живет код?
      Drupal построен как модульная система.Сам Drupal представляет собой набор модулей, некоторые из которых необходимы для правильной работы Drupal.Если вы хотите создать какой-то собственный код, то есть вы хотите сделать что-то, для чего вы не можете использовать модуль. Для Drupal разработано около 5000 модулей.Часто, даже если вы опытный программист, лучшим выбором будет найти модуль, который будет делать то, что вам нужно, или может помочь вам в этом. Итак, что вы делаете, это создаете свой собственный модуль.

      1. Создайте папку с названием модуля

      2. Создайте внутри него файл имя_модуля.info, который будет содержать некоторую информацию о модуле, отформатированную особым образом.Drupal понадобится для корректного отображения модуля на странице списка модулей, где вы активируете модули.

      3. Наконец, создайте файл имя_модуля.модуль, в котором будет находиться ядро ​​вашего кода для модуля.

      Еще одна вещь, которую важно понимать в Drupal, это то, что он использует систему, основанную на крючках.Хуки похожи на события, которые срабатывают, когда происходят определенные события, которые вы хотите зацепить и либо изменить поток, либо сделать что-то самостоятельно.Например, вы можете записывать каждый раз, когда отображается определенная форма, или вы можете изменять форму, добавляя/удаляя поля.

    • Формы
      В Drupal есть FAIP или API форм, который используется для создания форм, и у него есть отдельная страница в документации.Идея состоит в том, что вы создаете ассоциативный массив PHP, содержащий информацию о каждом элементе формы, и Drupal будет использовать его для создания формы.

    • КнигиЕсть много хороших книг по Drupal, из которых можно поучиться.Книга, из которой я сам узнал больше всего, Профессиональная разработка Drupal

  2. Прежде всего, Drupal имеет очень детальную систему разрешений на основе ролей, которая позволит вам точно настроить, что разрешено делать вашим клиентам.Вы можете создавать разные роли, такие как модератор, создатель контента, администратор, системный администратор и т. д., и предоставлять разные разрешения каждой роли.Это довольно просто и настраивается в Drupal AI.Однако вам необходимо знать разрешения, поскольку некоторые из них суперразрешения это даст доступ ко многим вещам.Что касается интеграции ваших приложений, вы, вероятно, захотите написать собственный модуль.Я не знаю точно, как ты хочешь это сделать.Но я думаю, что лучший результат будет получен, если позволить Drupal создавать страницы, формы и т. д. из вашего приложения и просто отправлять данные туда и обратно.Таким образом, тема = макет сайта будут единообразными.Таким образом, у пользователей не возникало ощущения, что они покинули сайт, но это была просто еще одна функция, предлагаемая сайтом.

  3. Drupal не просто настроен на лучшую обработку MYSQL. На самом деле вам понадобится либо MYSQL, либо PSQL в качестве серверной части базы данных Drupal.Причина в том, как Drupal обрабатывает запросы, что позволяет вам писать неспецифические запросы, которые будут работать независимо от того, какой из двух типов вы используете или есть ли у ваших таблиц префикс.Таким образом, для всех внутренних компонентов Drupal вам понадобится один из двух.PHP может подключаться к MSSQL и выполнять запросы к этой базе данных, поэтому вы можете без особых проблем написать собственный код, который выполняет запросы к базам данных других ваших приложений и либо извлекает, либо обновляет данные.В зависимости от данных вам может потребоваться создать в базе данных таблицу, которую вы сможете читать и записывать, а затем при необходимости синхронизировать базы данных.Это немного зависит от вашего варианта использования.Я сделал последнее в случае, когда мне не нужно было записывать в базу данных, а нужно было только получить некоторую информацию о продукте из устаревшей базы данных, которая все еще использовалась другими системами.

рлб,

Я довольно много работал с Drupal и имею большой опыт работы с ASP.NET.Вам действительно нужно прочитать, чтобы сформировать свое мышление.Они используют слои в стиле MVC, который очень чужд разработчикам WebForms и ASP.NET MVC...и, честно говоря, поначалу кажется странным.

Вот список вещей, которые я сделал, чтобы быстро добиться хороших результатов:

  1. Получите хост, например, на hostgator, за 8 долларов, который позволит вам установить Drupal.
  2. Приобретите книгу «Профессиональная разработка на Drupal для начинающих…»отлично и действительно охватывает многие области 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. Посетите форумы Drupal
  4. Будьте готовы внести свой вклад.Drupal имеет множество функций, но, в конце концов, лучший способ — это быть тем, кто вносит свой код обратно.

Существует несколько IDE, которые следует рассмотреть, но запустить текстовый редактор вполне достаточно.

Удачи.

Здесь есть несколько хороших ответов, поэтому я просто заполню несколько кратких пунктов.

1 – Изучение Drupal:Pro Drupal Development — лучшая книга для этого.Попадание в очереди задач и взаимодействие с разработчиками — это способ ознакомиться со спецификой.Ваш вопрос о формах связан с тем, как Drupal обрабатывает формы.FAPI довольно надежен в Drupal и защищает вас от ошибок безопасности.Также API dot Drupal dot org — это место, где документируется код, хотя документация есть и в других местах.Google — ваш друг.(На самом сайте Drupal используйте встроенный поиск, чтобы получить фасетные результаты.)

2. Это проблема с правами пользователя.Вы можете ограничить разрешения на создание и редактирование в зависимости от типа контента.Для контроля доступа (читай) вам понадобится использовать один из множества модулей контроля доступа.Это действительно зависит от вашего варианта использования.

3. Drupal имеет наибольшую поддержку сообщества MySQL, но люди также используют Drupal на MS SQL.В Drupal 7 вы, вероятно, увидите гораздо больше поддержки для отличных от MySQL, поскольку в этом выпуске представлена ​​абстракция базы данных.

Вероятно, худшее, что можно сделать, — это обойти границы.Действительно полезно изучить все тонкости основ Drupal — администрирования и кодирования — чтобы вы могли по-настоящему использовать возможности Drupal.

А если вы ищете модули, http://drupalmodules.com твой друг.;)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top