用 Umbraco 開發網站[0]:前言

來源:互聯網
上載者:User

標籤:整理   https   安裝   教程   瞭解   res   資料庫   開發環境   最新   

最近又挑戰了一項不可能的任務:

二十多個個版面,上百個子版面,上千個詳細頁面的製作加 CMS 系統整合開發,在十天的時間完成。

情緒起起伏伏,時而暴躁、時而沮喪、時而絕望,面對新到的甲方小夥子為了給大領導邀功的急功近利,不斷的修改修改再修改,在完成的前一天還在不斷提一些修改意見,但是最終還是依賴強大的執行能力、抗壓能力,夥伴們的陪伴中還是把項目堅持了下來。

其中前端部分,第二次嘗試了用 Grunt 來構建項目,執行語法檢查、 js檔案的語法檢查和壓縮、css 檔案的壓縮;

專案管理部分,五個人依賴碼雲(git.oschina.net)提供的 git 服務進行管理,相比github.com 而言。更符合國人的習慣,關鍵是免費使用者也可以支援建立私人項目,而 github 僅支援付費使用者建立 private 項目;

CMS 部分,再次使用了個人最喜愛的 Umbraco7.4.3進行系統開發,在一次次的開發工作中,對 Umbraco 也越來越瞭解,越來越喜愛,希望在知其然進一步在志氣所以然,繼而使用的更好,因此希望把學習工作中關於 Umbraco 的部分,整理記錄下來。

雖然或許是多餘了,但是在開始一項新的學習之前,最好問自己幾個為什麼。

一、為什麼使用整合式 CMS

CMS,從字面上來說,是 Content Manage System的簡寫,也就意味著 CMS 實際上指的是某一種技術統稱,而不是指某個具體的軟體。因此可以說所有以內容管理為主要功能的系統,都可以稱之為 CMS。例如一個官網、一個公司內部使用的百科、一個給員工查詢資訊的 FAQ 等。

其中有很多知名的公開流行系統,例如: Php 平台的 Drupal、Joomla、dedephp、織夢等;.Net 平台的 Sitecore、DNN、orchard、EPIServer、Umbraco 等;java 平台的 AEM 等。

事實上在很多年以前,我對此類系統也是非常抗拒的,理由不外乎常見的:安全性不透明、穩定性不可知、效能緩慢、開發繁瑣受限、使用者受眾不習慣等方面。

當然還有個或許所有程式員心中的通病,總覺得自己做的東西會更好一些,用這類東西難免會被質疑:已經用了 XXX 系統,那你做了什嗎?

哈哈,這當然是一種認知上的問題。就實際情況來看:

  1. 安全性:正因為使用的都是國內外知名產品,其中的漏洞、不安全隱患,是由數萬甚至數十萬從業人員來驗證的,遠比數人的小團隊的研究成果來的可靠安全,發現的安全性問題,也會在很短的時間內得到解決;
  2. 穩定性:同前,也在有無數的使用者與你一同測試,經受考驗;
  3. 效能:這在幾年前或許是個問題,但是一方面底層語言效率的提高,以及硬體效能的提高,只要不是二次開發的太糟糕,基本不存在效能的問題。畢竟多數消耗性資源還是已視頻、檔案、圖片等靜態資源為主,而這些現在全部可以通過 CDN或者其他雲端儲存方案來解決;
  4. 開發繁瑣:正如不會有人認為瀏覽器限制網頁對系統硬體的調用是錯誤的一樣,在某一個體系平台下,開放的介面、服務類足以實現絕大多數業務應用,再退一步,多數系統均提供開原始碼,理論上是可以進行任何開發的;
  5. 使用者受眾:這個更不必多說。

而整合系統帶來的很多便利性,卻是傳統個人化定製無法解決的問題:

  1. 開發的快捷敏捷性,眾所周知,之前為什麼大家對修改需求是如此的反感,給新聞增加個點擊的按鈕統計資料,就要先改 DB 結構,再改 Model、再改DAO、改完業務改前端。而多數整合類系統,只要簡單的配置一下,即可實現任意數量的內容變化;
  2. 統一規範性,傳統的開發技術在多人合作,多家公司之間存在很嚴重的交接過度問題,偶爾再使用一些私人的不知名的組件,再沒有任何說明文檔,將會使工作變得雪上加霜,而通用類系統,基本所有的結構、組件、文檔都是標準而通用的,即使在沒有任何交接的前提下,也可以相對快速順滑的過渡;

技術本身應該是一種工具,而不是一個目的,當我們沉迷於技術的優雅、精美、專註而不可自拔時,往往容易忽視了技術的本質是用來提供更好的服務及應用情境。

正如追求汽車的極致速度,可能是可以無限接近于飛機、飛彈甚至航空器的,但是如果拋開汽車是用於人類乘坐、代步、便利交通這一前提,就未免鏡花水月了。

目前在全球範圍內使用的 CMS ,大約有2000多款,而此數目隨著時間的推移還是在不斷增加的,希望在這片海洋裡,可以遇到自己喜歡的,為之沉迷。

 

二、為什麼選擇 Umbraco

說了一堆感性的東西,來點理性,實際找點為什麼選擇 Umbraco的原因。本人無意挑起諸如 XX 是最好的程式設計語言這類的口水戰,僅就個人經曆,說說我對整合式 CMS 的理解和認識。

1,Umbraco 非常輕量,他真的非常輕量級,安裝檔案只有不到30M,運行速度飛快,不會有任何臃腫的感覺;

2,Umbraco 對底層的封裝較好,理論上任何不具備.net 平台開發經驗的人,也可以進行 Umbraco 的開發;

3,Umbraco 支援 MVC 和 Webform 兩種資料方式,推薦使用 MVC,基本可以做到完全分離,分工合作幹活不累;

4、支援多網站,理論上一套應用,支援不限個數的多網站;

5、不支援 inner edit 編輯模式,這當然是一個仁者見仁,智者見智的問題,至少從行為上還是將使用與管理分隔開來;

6、提供豐富的 API,理論上可以通過 API 實現對 Umbraco 所有內容的編程化操作;

7、支援 search,實現真正意義上的全站搜尋;

8、介面美觀,緊湊,富有質感;

9、後台管理,使用AngularJS技術,理論上可以支援任意的功能性擴充;

10,Umbraco 完全免費,還提供原始碼,只有視頻教程的是收費的,官方文檔勉強算是完整。雖然由於血統原因,社區不如 Drupal、Joomla! 等活躍,但是解決日常工作還是沒問題的;

如果眾多的優勢,總能打動些什麼吧^_^

三、Umbraco 適合做什麼,不適合做什麼

只說好處,不說壞處,是一種耍流氓的行為。

接下來,要捋一捋 Umbraco 的不足之處,而且看起來,短期之內是不大可能改變的。

1、不支援多語言。Umbraco 僅支援管理背景多語言設定,對於網站前端卻沒有很好的多語言支援,而是通過多網站來實現的,這一點確實比不上收費軟體的 Sitecore 和 EPiServer;

2、不支援多終端自動識別。如果是標準的響應式布局,這一點倒不是問題,一套前端就可以解決這個問題。但是對於非響應式布局,依然只能通過多網站的方式來實現;

3、相對於 Php 平台來說,文檔相對還是太少了,遇到問題,可能解決比較困難。

Umbraco 適合針對內容管理類的網站製作,例如:官網、wiki、電商的商品展示管理部分等;不適合做的,主要是已應用業務為主的網站,多變的業務模式,不適合此類系統來進行管理。

但是,這也不僅僅是 Umbraco 的問題,而是所有繼承類系統所通有的問題。

四、準備工作

在準備學習、開發之前,需要準備響應的工作環境。

運行環境,請參看官方資訊擷取最新版本要求:https://our.umbraco.org/documentation/Getting-Started/Setup/Requirements/

開發環境,強烈建議安裝 VS 進行模板的開發,真的會事半功倍。

除了以上的官方要求,再提供一些個人經驗:

1、伺服器安裝是務必務必給 web user 設定較高的許可權,因為安轉期間需要往網站根目錄及多個子目錄下面寫入設定檔等,如果許可權不足,會提示失敗;

2、資料庫的 DB 安裝,支援 SQL Server Express 版本,以及 Mysql,但是如果安裝SQL Server,但是務必!務必!務必!,不要選擇區分大小寫,否則安裝和後面的使用都會經常出錯,具體分析,是一個核心的 get 方法裡,大小寫寫錯了,導致如果區分了大小寫,會找不到表中的欄位。曾經這個錯誤,困擾了我一周;

3、可以在本地進行開發、部署測試,但是,務必要注意不要使用常規的方式將 iis 附加到 vs 中進行調試,最好是給 IIS 指定獨立的目錄,然後將專案檔發布進去。原因在於 Umbraco 的範本管理員方式會和 vs 管理檔案變化的.csproj檔案之間產生一些不可預料的問題;

4、如第二段所述,要將 Umbraco 的 IIS 應用程式集區設定為整合模式,將所有請求交由 Umbraco 處理。

 

用 Umbraco 開發網站[0]:前言

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.