5

ドメインに固有のWebアプリケーションを構築したいのですが、このアプリケーションにはフォーラムやブログなども含まれています。TwitterとFacebookへのいくつかの統合ポイントも必要です。また、データをアップロードしたり、構成やレポートをダウンロードしたりするために、Webアプリケーションに接続するデスクトップアプリケーションもあります。

問題は、Drupalを拡張して、通常のモジュールとWebアプリケーションの両方をホストできるかどうかです。(デスクトップアプリケーションからアップロードされたビジネスエンティティとそのプロパティおよび毎日のデータがあります)または、Drupalを外部アプリケーションと統合できますか?例として、ユーザーとロールは同じであり、両方で一貫している必要があります。Drupalで検索可能なWebアプリケーションからのデータが必要な場合もあります。

これは少し漠然としていることは知っていますが、これ以上明らかにすることはできません。私はコンテンツ管理に非常に慣れていないので、誰かがこの種のアプリケーションを作成したかどうかを知りたかっただけです。

4

4 に答える 4

17

私はあなたが書いたものを言い換えようとします、あなたが私があなたの質問が正しいことを確認するためだけに。基本的に、次のようなWebアプリケーションを作成する必要があります。

  1. Drupalの標準機能の一部を実装します
  2. Drupalに「ブレンド」する必要のあるカスタム機能(同じユーザー、同じ権限など)があります。
  3. デスクトップアプリケーションからコンテンツ(またはデータ)をアップロード/ダウンロードできるようにします。

私があなたを正しければ、簡単な答えは次のとおりです。はい、Drupalでそれを行うことができます

さて、大規模なものについては:-Drupalには文字通り何千ものモジュールがあるので、すぐに利用できるモジュールの適切な組み合わせをインストールするだけで、必要なもののほとんどを手に入れることができると思います。-もちろん、カスタム機能はモジュールの形でも簡単に実装できます(最近ではかなり標準的なものです)。-デスクトップアプリケーションとの対話は、通常、DBに直接クエリを実行するのではなく、Webサービスを介して実装されます。Drupalにはxmlrpcサーバーとクライアントがネイティブに付属していますが、必要に応じて、いくつかのcontribモジュールを介してSOAPにスケールアップできます。

いくつかの追加の考え:

  • Drupalを使用することを選択し、最初から始める場合は、Drupalがどのように機能するかを理解するために、自分とチームが時間と労力を費やす必要があることを認識しておく必要があります。-Palantirとは異なり、私はDrupalに固執しましたが、Drupalがすぐに複雑になり、複雑になるという事実について、彼女/彼に同意します。これは、非常に柔軟で、非常にプラグイン可能で、堅固なプラットフォームを実現するために支払う必要のあるトレードオフです(そうでなければ、ホワイトハウスの再設計に使用されなかったでしょし、Drupalも2年連続で「最高のPHPCMS」賞を受賞したと思います)。
  • 幸いなことに、優れた本がいくつか出回っています。システムの詳細で包括的な説明については、「ProDrupalDevelopment」をお勧めします。最初の版は現在廃止された5つのシリーズを扱っているので、必ず2番目の版を入手してください。そうは言っても...
  • Drupalの非常に良い点は、少なくとも私の意見では、既存の機能に対して行う必要のある微調整のほとんどは、カスタムモジュールから元のコードにフックすることによっても実装できることです。このIMOはDrupalの最大の利点です。目標を達成するために他の開発者のコ​​ードに触れる必要はありません。これは、たとえば、コアモジュールと貢献モジュールを壊すことなく最新の状態に保つことができることを意味します。あなたが行ったかもしれないカスタマイズ。
  • Drupalは重いです。他のCMSと比較すると、サーバーから多くの処理能力とRAMを消費します。非常に小さなサイトを作成する場合を除いて、Apacheではなくnginxと組み合わせて展開することをお勧めします。
  • Drupalは、キャッシングと「スロットルアップ」メカニズムの優れたメカニズムのおかげで、適切に拡張できます。奇妙に聞こえるかもしれませんが、Drupalはトラフィックの多いWebサイトで非常にうまくスケーリングするため、トラフィックの大幅な増加が必ずしもリソース使用量の大幅な増加を意味するわけではありません。
  • Drupalサイトですぐに使用できるユーザーエクスペリエンスは非常に貧弱です。現在、これについて大規模な作業が行われています(ここここ(ビデオ))が、D7がリリースされるまで改善は利用できません[すぐに、モジュールが移植されるのを待つ必要があります]、したがって、Webサイトの管理者が技術的なタイプでない場合は、管理テーマを作成するために時間を割り当てることをお勧めします。

結局のところ、私のアドバイスは次のとおりです。サイトが大きく/複雑になり、複雑なビジネスロジックと多くの機能を備えている場合は、Drupalがおそらく適切な候補です。逆に、サイトが標準機能といくつかのカスタムビットを備えた小規模なサイトである場合は、Wordpress / Joomlaがニーズに適している可能性があります[「それほど強力ではない」ためではなく、この場合Drupalの長所が使用されないため、Wordpress / Joomlaのより単純なアーキテクチャは、おそらくこのシナリオの利点を表しています]

他のオプションは確かに、たとえばCakePHPやDjangoのようなフレームワークですが、それ(IMO)は、この問題に対するまったく異なるアプローチだと思います。

于 2009-11-10T22:11:59.893 に答える
7

簡単な答え: Drupalは、そのようなものを構築するのに非常に適しています。特に、アプリ/ロジックをカスタムモジュールのスイートとしてDrupalに統合する場合はなおさらです。他の方法として、Drupalを外部アプリケーションに統合することもできますが、Drupalアーキテクチャはそれ自体がフレームワークになることを目的としているため、摩擦が大きくなります。


長い答え:私はパランティーアと比べてかなり反対の意見/経験を持っています。私は、2つのかなり複雑な/「エンタープライズ」プロジェクトのコンテキストで、ほぼ独占的にDrupalと1年間協力してきました(小さなもののための「サイド」使用の数年後)。私はそれがいくつかの厳格な規則を課すことに同意しますが(制限はありません!)、これらの規則は明確なガイダンスを提供し、物事を行う方法について実証済みの方法を提供するため、これは利点であると思います。Palantirが言及している3つの部分は、この良い例です。

  • メニューシステム-既存/デフォルトのパスを微調整/操作するための大きな柔軟性を提供しながら、独自のもので簡単に拡張できる、適切に構造化された効果的なディスパッチメカニズムを提供します。(Drupalの「メニューシステム」は、通常用語に関連付けられている「表示」メニューのサブセットだけでなく、URLスペースの管理に関するトピック全体を示していることに注意してください)
  • Forms API-適切に設計された処理ワークフローと、他の方法では自分で処理しなければならない多くの組み込みのセキュリティ機能を備えた、Webフォームへの宣言型アプローチ。また、非常に拡張性が高く、既存のフォームをオンデマンドで調整/拡張したり、任意のフィールドまたはフォーム全体に新しい検証ルールを追加したり、マルチステップフォーム、JavaScriptベースのフォーム調整などを行うことができます。
  • 翻訳システム-これはかなり複雑です。国際化が難しいからです。しかし、それは組み込まれており、一般的な方法で動作するために物事を行う方法についての明確なガイダンスを提供します(ただし、本来の方法でそれを使用/サポートしていないかなりの数の寄稿モジュールに問題があります)。

「ルール」に感謝する部分の例をもっと挙げることができますが、この投稿はすでに長くなっており、まだいくつかの欠点をカバーする必要があります;)

したがって、肯定的な部分を要約すると、あなたが投稿した大まかな仕様を考えると、「問題ありません」と言ってDrupalを使用し、すべてを提供しながら、カスタムパーツの強固な基盤になると確信しています。フォーラム、ブログ、ツイッター/フェイスブックの統合、その他多くの既存のソリューションの形での標準のようなもの(それらはいくつかの適応/調整が必要かもしれませんが)。


欠点:いつものように、欠陥があり、要件/状況に応じて、それらのいくつかは重大です。

  • 学習曲線-Drupalは非常に複雑であり、その概念を「理解する」には時間がかかります。Palantirが示唆しているように、「1週間それで遊ぶ」ことは確かにあなたに一般的な感覚/広い印象を与えるでしょう、しかしそれはその長所と短所の真剣な判断を可能にするのに決して十分ではありません。その中/そのために。したがって、確立されたWeb開発フレームワークにすでに精通している場合は、これが問題になる可能性があります。とにかく1つを学ぶ必要がある場合、これはそれほど問題ではないはずです。
  • データベースの制限-Drupal6の時点で、データベースのサポートはMySQLまたはPostgreSQLのみであり、Drupal固有の「抽象化レイヤー」(明らかに1つではありません;)を使用します
    。Drupal7はPDOに移行し、この疑わしい状態を(最終的に)終了します。
  • テスト/ステージ/本番の移行-Drupalの一部の「すぐに使える」柔軟性は、管理バックエンドで構成可能な多くのものによるものです。これは、多くの重要な構成設定がデータベースに保存されていることを意味します。これにより、完全なダンプ/復元操作を回避できる開発の(初期)段階を終了すると、複数のインスタンス間でのデータや構成の移行が非常に困難/面倒になります(たとえば、この質問と回答を参照)

これらは私にとって主なものですが、おそらくもっと見つけるでしょう:)

于 2009-11-10T22:21:37.053 に答える
3

私はdrupalを多用して1年以上働きましたが、結局それを放棄しました。Drupalやその他のCMSシステムには、非常に厳格な制限とルールがあります。単純な要件があり、ビジネスルールがほとんどまたはまったくないプロジェクトには、Drupalを使用します。Drupalは、複雑なことをしたい場合、ほとんどすぐに複雑になります(特に、多言語である必要がある場合は、メニューシステム、フォーム、および翻訳システムに注意してください)。

システムが本当に大規模で、あなたが言及したすべてのものがある場合は、PHPフレームワークを使用してビジネスロジックを実装し、外部製品(フォーラム、ブログ、Twitterクライアントなど)を適切に統合します。 ..)。

しかし、アドバイスは次のとおりです。誰も信用しないでください:)ダウンロードして、1週間遊んでください。あなたはあなたの心を作り、あなたの選択についてより自信を持つことができるでしょう!

于 2009-11-10T15:03:42.480 に答える
0

Drupalはオープンソースであるため、ほぼ自由に使用できます。ただし、いくつかのポイント:

Drupalのユーザー/ロール構造を変更するのは面倒で不必要です。デスクトップアプリケーションをDrupalのMySQLデータベースから認証する必要があります。

Drupalにはほぼすべてのプラグインが何百もあるので、Drupalは間違いなく、訪問者の統計などを含む「Web」側全体を実行できます。ここでも、デスクトップアプリケーションを正しいMySQLテーブルに接続し、データを表示する必要があります。望んだ通りに。

Joomla!などの他のコンテンツ管理システムをチェックすることを忘れないでください!(および他の多く)。それぞれに長所と短所があります。 www.opensourcecms.comを使用すると、CMSを簡単にテストできます。私はこれを過去に幅広く使用しました。

必ず最初にすべてのコンポーネントをマップしてください。1時間ごとに事前に計画を立てることで、後の頭痛の種を何時間も節約できます。

于 2009-11-10T14:38:04.647 に答える