2009-11-10 170 views
5

我們想要構建一個特定於我們的域的Web應用程序,但也包括論壇,博客等在這個應用程序。還需要一些與Twitter和Facebook的集成點。 還會有一個桌面應用程序連接到我們的Web應用程序,用於上傳數據並下載配置和報告。Web應用程序與Drupal的集成

問題是,我們可以擴展Drupal來承載常規模塊和我們的Web應用程序嗎? (將有商業實體及其屬性和從桌面應用程序上傳的每日數據) 或者Drupal可以與外部應用程序集成嗎?例如,用戶和角色需要在兩者之間保持相同和一致。我們可能還希望來自Web應用程序的數據可在Drupal中搜索。

我知道這有點含糊,但我不能透露更多。我對內容管理非常陌生,我只想知道是否有人構建了這種應用程序。

回答

17

我嘗試重寫你寫的內容,只是爲了讓你檢查我的問題是否正確。基本上,您需要創建一個Web應用程序:

  1. 實現了一些Drupal的
  2. 的標準功能有一些自定義的功能,應該「融入」 Drupal的一個(同一用戶,同一權限,等等。 )
  3. 能夠從桌面應用程序上傳/下載內容(或數據)。

如果我找到了你的話,簡短的回答是:是的,你可以用Drupal做到這一點

現在爲廣泛的: - Drupal幾乎有成千上萬的模塊,所以我希望你通過簡單地安裝可用模塊的正確組合來獲得大部分你想要的東西。當然,任何自定義功能都可以很容易地以模塊的形式實現(近來很標準的東西)。 - 與桌面應用程序的交互通常通過webservices實現,而不是直接查詢數據庫。 Drupal本身帶有一個xmlrpc服務器和客戶端,但是你可以通過一些contrib模塊擴展到SOAP - 如果你願意的話。

一些額外的想法:

  • 如果您選擇使用Drupal,和你從頭開始,那麼你必須要知道你和你的團隊需要奉獻一些時間和精力去了解的Drupal是如何工作的。雖然 - 與Palantir不同 - 我堅持與Drupal,我同意她/他的事實Drupal得到 複雜 複雜的權利蝙蝠。這是你必須付出的權衡,以便有一個平臺 - 放心 - 非常靈活,極其可插拔和堅如磐石(否則它不會被用來重新設計the whitehouse,也不會Drupal會有我想,連續第二年獲得「最佳PHP CMS」獎)。
  • 好消息是:那裏有一些優秀的書籍,我肯定會推薦「Pro Drupal Development」對系統進行深入和全面的說明。只要確保獲得第二版,作爲第一版處理現在已過時的5個版本。這就是說......
  • 至少在我看來,關於Drupal的一個很好的事情是,你可能需要對現有功能進行的大部分調整都可以通過將自定義模塊的原始代碼掛鉤來實現。這個IMO是Drupal的最大優勢:您無需觸及其他開發人員的代碼即可實現您的目標,這意味着 - 例如 - 您將能夠保持核心和contrib模塊保持最新狀態而不會中斷定製您可能已經完成。
  • Drupal很重。與其他CMS相比,它從服務器上吸收了大量處理能力和內存,除非你有一個非常小的站點 - 我建議將它與nginx結合使用,而不是Apache。
  • Drupal擴展性好,這要歸功於緩存和「限制」機制的良好機制。聽起來很奇怪,Drupal在大型流量網站上的表現非常好,所以流量的大幅增加並不一定意味着資源使用量的大幅增加。
  • Drupal站點上的用戶體驗非常差。目前正在進行大量工作(herehere (video)),但直到D7發佈之後纔會有改進[很快,但您必須等待模塊被移植],所以它是如果您的網站管理員不屬於技術類型,建議分配一些時間來創建管理主題。

在一天結束的時候,我的建議是:如果您的網站是要去大/複合/複雜的業務邏輯和大量的功能,那麼Drupal是一個很不錯的人選。如果你的網站反而是一個標準功能的小規模加上一些自定義位,也許Wordpress/Joomla可以更好地滿足你的需求[不是因爲它們'不那麼強大',而是因爲Drupal的優勢在這種情況下是未使用的,而WordPress/Joomla更簡單的架構可能會在這種情況下代表一個優勢]

其他選項肯定會是像CakePHP或Django這樣的框架,但是 - IMO - 對於這個問題我完全不同。

+1

+1 - 很多好點 – 2009-11-10 22:28:29

0

由於Drupal是開源的,你可以隨心所欲地使用它。但有幾點:

更改Drupal的用戶/角色結構將是乏味和不必要的。您需要讓您的桌面應用程序從Drupal的MySQL數據庫進行身份驗證。

Drupal幾乎包含了幾百個插件,所以Drupal無疑可以運行包括訪問者統計數據等事情的整個「web」端。您只需要再次將您的桌面應用程序連接到正確的MySQL表並根據需要顯示數據。

不要忘記檢查其他內容管理系統,如Joomla! (和許多其他)。各有其優點和缺點。 www.opensourcecms.com允許您輕鬆測試CMS,並且過去已廣泛使用它。

只要確保首先繪製出所有組件。預先規劃的每個小時都可以節省許多小時的麻煩。

3

我在廣泛使用drupal工作了一年,但最終放棄了它。 Drupal和其他CMS系統都有非常嚴格的限制和規則。我會使用Drupal的項目,你有簡單的要求,很少或沒有業務規則。當你想做複雜的事情時,Drupal幾乎可以立即變得複雜(尤其要注意菜單系統,表單和翻譯系統,如果你需要多語言的話)。

如果你的系統真的很大,並且提到了所有的東西,那麼我寧願使用一個PHP框架來實現你的業務邏輯,並且合適的外部產品(一個論壇,一個博客,一個twitter客戶端等)。

但建議是:不要相信任何人:)下載它,並玩它一個星期。你將能夠做出決定並對自己的選擇更有信心!

+0

+1這些是一種健康的意見 – googletorp 2009-11-10 15:24:52

7

簡短回答: Drupal非常適合構建類似的東西,特別是如果您願意將您的應用程序/邏輯作爲一組定製模塊集成到Drupal中。另一種方式,將Drupal集成到外部應用程序中也可以完成,但會給您帶來更多的摩擦,因爲Drupals架構非常適合成爲一個獨立的框架。


較長的答案:我有一個幾乎相反的意見/經驗相比Palantirs。在兩個相當複雜的/'企業'項目的環境中(幾年以後,我們一直在Drupal的工作幾乎完全一致)。雖然我同意它提出了一些嚴格的規則(但不是限制!),但我認爲這是一個優勢,因爲這些規則提供了明確的指導,並提供了證明如何做事的可靠方法。這三個部分真知晶球提到是很好的例證:

  • 菜單系統 - 提供了一個結構良好和有效的調度機制,容易與你自己的東西延伸,同時給予了極大的靈活性來調整/操縱現有的/默認路徑。 (請注意,Drupal中的「菜單系統」表示管理您的URL空間的整個主題,而不僅僅是通常與該術語相關的「可見」菜單的子集)
  • 表單API - Web表單的聲明性方法,一個設計良好的處理工作流程和一大堆內置的安全功能,否則您將不得不照顧自己。也是高度可擴展的,可以根據需要直接調整/擴展現有的表單,爲任何字段或整個表單,多步驟表單,基於javascript的表單調整等添加新的驗證規則。
  • 翻譯系統 - 這非常複雜,只是因爲國際化很難做到。但它是內置的,再次給出瞭如何做事情的明確指導,以便以通用的方式工作(儘管很多貢獻的模塊沒有按照他們應該的方式使用/支持)。

我可以給零件更多的例子,我欣賞的「規則」,但這個帖子已經越來越長,我還是要支付一些缺點;)

因此,要總結正面部分 - 如果我在哪裏給出了您發佈的粗略規格,我會說'沒有問題',並與Drupal一起,確信它將成爲定製零件的堅實基礎,同時提供所有「標準」,如論壇,博客,twitter/facebook集成以及許多其他已有解決方案(儘管這些解決方案可能需要一些適應/調整)。


缺點:一如往常,也有缺陷,有些是實質性的,根據需求/環境。

  • 學習曲線 - Drupal非常複雜,其'概念'概念需要時間。正如Palantir所說,'玩它一個星期'一定會給你一個普遍的感覺/寬廣的印象,但它決不允許對其利弊的嚴肅判斷,因爲這些只會在編碼時出現在/爲它。因此,如果您已經熟悉已建立的Web開發框架,這可能是一個問題。如果你必須學習一個,這應該不是什麼問題。
  • 數據庫限制 - 從Drupal 6開始,數據庫支持僅限於MySQL或PostgreSQL,使用Drupal特定的「抽象層」(顯然不是一個;)
    Drupal 7將移至PDO,結束這個可疑的狀態。
  • 測試/階段/生產遷移 - Drupals'開箱即用'靈活性的部分原因是可以在管理後端配置許多功能,這意味着許多重要的配置設置都存儲在數據庫中。這使得一些實例之間的數據和/或配置的遷移非常困難/繁瑣,一旦你離開發展(早期)階段,在那裏你可以用完整的轉儲脫身/恢復操作(例如見this question & answers

這些是我的主要,但你可能會發現更多:)

+0

謝謝你的詳細解答。這當然非常有幫助。 - Tanmay – Tanmay 2009-11-11 09:19:33

相關問題