3

ASP.NET C#をよく知っています。私は調査やカスタムWebアプリケーションのようなものをたくさん作ります。

Drupalに頭を悩ませたり、クライアントのリストを検索したり、Webアプリケーションを作成したりするなど、「特別な」プログラム的なことを行う方法を理解するのに多くの問題があります。

1-私は本とdrupalAPIを読んでいますが、それでも何かを始めるのに多くの問題があります。ページ、モジュール、スニペットに関してカスタムコードはどこに行きますか...?ASP.NETで行ったフォームXをdrupalの新しいページに複製するにはどうすればよいですか?Drupalに頭を巻くのは非常に難しいです。とても大きくて簡単で拡張可能であるように見えますが、コーディングが難しいようです。ASP.NETアプリケーションプログラマーがDrupalでの作業を学ぶために、何をお勧めできますか?

2-クライアント用に完全なASP.NETアプリケーションを作成する場合がありますが、これらのアプリケーションは、クライアントが編集することを目的としていません。たとえば、Webサイト全体をdrupalにしますが、そのWebサイト内には、ユーザーがデータベース情報の特別な検索を使用する場所があります。この特別にコード化されたページを編集しようとする単純なWebサイト編集者やコンテンツプロバイダーは望ましくありません。Drupalアプリケーションでクライアントに何も編集させたくない場合はどうすればよいですか?ページ/ユーザー権限を介して処理されますか?完全にdrupalの外でアプリケーションを開発してホストするのが最善ですか?drupalアプリケーションは、drupal Webサイト(ネストされたdrupals)内の独自のdrupalインスタンスですか?

3-最後に、データベースをどのように処理しますか?DrupalとPHPがMySQLで最適に動作するように設定されていることを理解しています。複数のアプリケーションで使用されるMSSQLデータベースがあり、Drupalの使用を開始するときにそれらを新しいアプリケーションに使用したいと考えています。たとえば、ASP.NETレポートアプリケーションであるASP.NETスタッフリストアプリケーションにフィードするStaffディレクトリがあり、そのデータベースも使用する(そしておそらくより多くの情報を挿入/更新する)新しいDrupalPHPアプリケーションを作成したいと考えています。複数のDrupalおよびASP.NETアプリケーションによって使用および更新されているMSSQLデータベースおよび/またはMySQLデータベースを処理するための最良/最も簡単な方法は何ですか?すべてのアプリケーションでMSSQLデータベースを使用する方が簡単でしょうか、それともMySQLでDrupal / PHPアプリ用にデータベースを複製して、2つのデータベースを同期する方が簡単でしょうか。

1つの投稿で複数の関連する質問をしても大丈夫だと思います。

4

5 に答える 5

2

残念ながら、私は Drupal の経験がないので、あなたの最初または 2 番目の質問についての洞察を提供することはできませんが、3 番目の質問については:

複数の Drupal および ASP.NET アプリケーションによって使用および更新されている MS SQL データベースおよび/または MySQL データベースを処理するための最良/最も簡単な方法は何ですか?

ASP.NET アプリケーションと PHP/Drupal アプリケーションの両方から CRUD 操作を実行する場合、MySQL と MSSQL の間でデータを同期しようとしないことをお勧めします。 2 つのデータベース管理システムの違いに対処します。

代わりに、ストアド プロシージャを使用してすべてのデータベース アクセスを制御することを検討することをお勧めします。このようにして、すべてのデータベース CRUD 操作が同じルールとロジックに準拠していることを確認できます。

ASP.NET と PHP の両方で MSSQL を使用することは問題ではありません。特に、多数の一般的なデータベース管理システムにアクセスするための標準インターフェイスを提供する非常に優れた PDO ライブラリを使用する場合は問題ありません。これにより、PHP アプリケーション内で MSSQL データベースにすばやく簡単に接続して使用を開始できるようになります。

于 2009-11-06T22:12:51.567 に答える
2

それはあなたが尋ねるいくつかの良い質問です. 私はできる限りそれらに答えようとします。私は APS.NET の c# の経験がないので、あなたがどこから来たのか正確にはわかりません。私自身、経験の浅い python/django 開発者として Drupal を学びました。ですから、あなたが Drupal を学ぼうとして経験している問題のいくつかは、ある意味で理解できます。これらのことのいくつかは、それがなくなる前に単に時間/経験/実験を必要とする.

  1. Drupal と Drupal API を本当に理解するには、まず PHP を十分に理解する必要があります。Drupal は複雑な PHP 処理を行うことがあるため、構文や PHP 関数などを理解していないと、簡単に迷子になってしまう可能性があります。

    • コードはどこに住んでいますか?
      Drupal はモジュール システムとして構築されています。Drupal 自体は一連のモジュールであり、そのうちのいくつかは Drupal が正しく動作するために必要です。カスタムコードを作成したい場合、つまりモジュールを使用できない何かをしたい場合。Drupal 用に開発されたモジュールは約 5000 あります。多くの場合、熟練したプログラマであっても、必要なことを実行するモジュール、または必要なところまで到達できるモジュールを見つけることが最善の選択です。つまり、独自のモジュールを作成することです。

      1. モジュールの名前でフォルダーを作成します

      2. 特別な方法でフォーマットされたモジュールに関する情報を保持する modulename.info を内部に作成します。Drupal は、モジュールをアクティブ化するモジュール リスト ページにモジュールを fx 表示するために必要になります。

      3. 最後に、モジュールのコードのコアとなる modulename.module ファイルを作成します。

      Drupal について理解しておくべきもう 1 つの重要な点は、Drupal がフック ベースのシステムを使用しているということです。フックは、フックしてフローを変更したり、独自のことをしたりしたい特定のことが発生すると起動するイベントのようなものです。特定のフォームが表示されるたびに記録したり、フィールドを追加/削除してフォームを変更したりできます。

    • フォーム
      Drupal には、フォームを生成するために使用される FAIP またはフォーム API があります。これは、ドキュメントに独自のページがあるものです。フォームの各要素に関する情報を保持する連想 PHP 配列を作成すると、Drupal はそれを使用してフォームを作成します。

    • 書籍 Drupal について学べる優れた書籍がたくさんあります。私自身が最も学んだ本はPro Drupal Developmentです

  2. まず第一に、Drupal には非常にきめ細かい役割ベースのパーミッション システムがあり、クライアントに何を許可するかを正確に設定できます。モデレーター、コンテンツ作成者、管理者、システム管理者などのさまざまな役割を作成し、各役割に異なる権限を与えることができます。これは非常に簡単で、Drupal AI 内でセットアップできます。ただし、一部はスーパー権限であるため、権限を知る必要がありますそれは多くのものへのアクセスを提供します。アプリケーションを統合するために、おそらくカスタム モジュールを作成する必要があります。あなたがこれをどのようにやりたいのか正確にはわかりません。しかし、Drupal にアプリケーションからページやフォームなどを作成させ、データをやり取りさせるだけで、最良の結果が得られると思います。そうすれば、サイトのテーマ = レイアウトが一貫したものになります。そうすれば、ユーザーはサイトを離れたという感覚を得ることができなくなりますが、これは単にサイトが提供するもう 1 つの機能でした。

  3. Drupal は、MYSQL を最適に処理するように設定されているだけではありません。実際には、drupal データベース バックエンドとして MYSQL または PSQL のいずれかが必要になります。その理由は、Drupal がクエリを処理する方法にあります。これにより、2 つのタイプのどちらを使用しても、またはテーブルにプレフィックスが付いていても、機能する非特定のクエリを作成できます。したがって、Drupal 内部のすべてについて、2 つのうちの 1 つが必要になります。PHP は MSSQL に接続し、そのデータベースに対してクエリを実行できるため、他のアプリケーションのデータベースに対してクエリを実行し、データを取得または更新するカスタム コードを問題なく記述できます。データによっては、データベースに読み取りと書き込みが可能なテーブルを作成し、必要に応じてデータベースを同期することができます。ユースケースによって少し異なります。データベースに書き込む必要がない場合は、後者を実行しました。

于 2009-11-07T06:53:49.750 に答える
1

まず第一に、Drupalの制限を理解するために重要なことは、それが実際には作られていないことがあると思います。これは一種のWebアプリケーションフレームワークですが、独自のカスタムデータモデリングなどを使用して多くのカスタム作業を行っている場合、Drupalは、この種の問題に対する最も柔軟で簡単に実装できるソリューションではない可能性があります。たとえば、ZendFrameworkのようなより一般的なフレームワークの方が適している場合があります。

Drupalを学ぶ上での重要な教訓は、コアや他のモジュールをハックしないことです。これにより、コアまたはモジュールのアップグレードに非常に時間がかかります。代わりに、「Drupalが好き」で、フックを使用してオーバーライドします。テーマ設定では、フックでオーバーライドすることもできますが、他の方法でもオーバーライドできます。オーバーライドは強力なので、その概念をよく理解してください。

  1. 私は、あなたのスタイル、スクリーンキャスト、IRC、ハッキング、ユーザーミートアップIRL、本、記事、または任意の組み合わせである学習方法を選び、Drupalの資料を探してください。ちょっといじり始めて、Drupalがどのように機能するかを感じて理解してください。専門用語を理解することは重要な部分であるため、ノード、ブロック、リージョン、フック、モジュール、テーマは何ですか。
  2. Drupalには非常に柔軟な許可システムがあり、独自に作成する代わりにそれを使用するのがおそらく最良の選択です。Drupalの動作を追加または変更する独自のモジュールを作成できます。したがって、Drupalで動作する新しいアプリケーションを作成する場合は、アプリケーションに必要な機能を実行するモジュールを作成し、ユーザーや許可システムなど、Drupalが提供するすべての機能を利用できます。 2番目の質問の最後の部分を本当に理解しています。「drupalアプリケーションは、drupal Webサイト内の独自のdrupalインスタンスですか(ネストされたdrupalsですか?)」。Drupalは、サーバー上のPHPファイルのコレクションであり、データベース内の多数のテーブルとともに、サーバーに対して行われた要求を処理します。複数のDrupalWebサイト(非常に異なるPHPファイル)は、同じデータベースまたはその一部(たとえば、ユーザーテーブル)を参照できます。実際には「アプリケーション」がないため、Drupalサイトの実際には「インスタンス」はありません。もちろん、これらの用語にあまり馴染みがないかもしれませんが、PHPは「アプリケーション」の「インスタンス」で機能するとは思いません。

  3. これは難しい問題です。afaikDrupalはMSSQLで機能しないため、その方向への接続はすべて自分で行う必要があります。DrupalフォーラムやIRCでも質問したいと思います。

幸運を!

于 2009-11-07T00:59:12.697 に答える
1

rlb、

私はかなりの Drupal を使用しており、ASP.NET の経験も豊富です。考え方を正すためには、本当に読む必要があります。彼らは、WebForms および ASP.NET MVC 開発者にとって非常に異質な MVC のような方法でレイヤーを使用しています...率直に言って、最初は奇妙に思えます。

これは、本当に、本当にすぐにうまくなるために私がしたことのリストです。

  1. Drupalをインストールできるhostgatorのようなホストを8ドルで入手
  2. 本を手に入れよう Pro Drupal Development for Beginners ... 優れていて、本当に多くの分野をカバーしています 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 は多数ありますが、テキスト エディタを起動するのは問題ありません。

幸運を。

于 2009-11-06T22:13:21.673 に答える
1

ここにいくつかの良い答えがあるので、いくつかの簡単な項目に記入します.

1 - Learning Drupal: Pro Drupal Development は、これに最適な本です。課題キューに入り、開発者と対話することは、詳細に慣れるための方法です。フォームに関するあなたの質問は、Drupal がフォームを処理する方法に関連しています。FAPI は Drupal で非常に堅牢であり、セキュリティの失敗からユーザーを保護します。また、api dot Drupal dot org はコードが文書化されている場所ですが、他の場所にも文書があります。グーグルはあなたの友達です。(Drupal サイト自体では、ネイティブ検索を使用してファセット結果を取得します。)

2 - これはユーザー権限の問題です。コンテンツ タイプに基づいて作成および編集権限を制限できます。アクセス制御 (読み取り) の場合、アクセス制御用の多くのモジュールの 1 つを使用する必要があります。それは本当にあなたのユースケースに依存します。

3 - Drupal は MySQL に対するコミュニティ サポートが最も多いですが、人々は MS SQL でも Drupal を実行しています。Drupal 7 では、このリリースでデータベースの抽象化が導入されるため、MySQL 以外のサポートが大幅に増える可能性があります。

おそらく最悪のことは、マージンをハッキングすることです。Drupal の基本 (管理とコーディング) のすべてを学ぶことは本当に有益であり、Drupal がもたらす力を真に活用できるようになります。

また、モジュールを探しているなら、http://drupalmodules.comがあなたの味方です。;)

于 2009-11-09T01:01:55.643 に答える