用 Umbraco 开发网站[0]:前言

最近又挑战了一项不可能的任务:

二十多个个版面,上百个子版面,上千个详细页面的制作加 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 处理。

时间: 2024-10-05 14:52:42

用 Umbraco 开发网站[0]:前言的相关文章

用 Umbraco 开发网站[2]:使用 Umbraco创建一个基本站点(上)

经过前面的准备,我们已经充分具备了开发一个 Umbraco 站点的条件,Let's go on~~~ Umbraco 官网提供了一个学习的静态模板资源包,蛮多前往的人还真不容易找到,地址在下面: https://github.com/verekia/initializr-template/archive/master.zip 一.创建第一个[Document Type](文档类型) 1.制作任何站点的第1步都是创建一个“文档类型”.文档类型是数据的容器,在这里您可以添加编辑数据字段/属性,用户可

用 Umbraco 开发网站[1]:下载安装与初探

一.Umbraco 下载方式 学习如何使用软件,首先要从有软件开始.Umbraco 的下载方式有四种: 1.直接下载(包括下载发行包.源代码):前往官网(https://our.umbraco.org/contribute/releases/)或者 github(https://github.com/umbraco/Umbraco-CMS) 下载发行包或者源代码: 2.NuGet下载:使用 VS 自带的 NuGet 插件,搜索合适版本的 UmbracoCms(https://www.nuget.

《Unity3D/2D游戏开发从0到1》正式出版发行啦

书籍信息:   书籍的名称: <Unity3D/2D 游戏开发从0到1>   书号(ISBN): 978-7-121-26239-5    出版社: 电子工业出版社   发行时间:2015年7月1日 写作背景:    2015年6月30日我收到电子工业出版社张迪老师寄来,正式发行的<Unity3D/2D游戏开发从0到1>书籍.这本凝结着大半年心血的作品让我感慨万千.   本人从事游戏.软件与教学十多年,一直梦想可以进一步服务于全国广大的游戏与软件从业开发人员.14年下半年电子工业出

自己开发网站全文检索系统

本文是我写的一篇数据库相关的作业Report,在这里贴出来 1. 概述 1.1. 问题提出 假如你拥有一个庞大的网站,内容又多,那么来访者往往很难找到自己所需要的东东,这时候你就需要一个站内搜索来帮助来访者更快的找到索要的资料了! 1.2. 解决的办法 搭建自己的全文检索系统.1.2.1. 什么是全文检索全文检索是一种将文件中所有文本与检索项匹配的文字资料检索方法.全文检索系统是按照全文检索理论建立起来的用于提供全文检索服务的软件系统.目前最大的搜索引擎Google和Baidu使用的就是全文检索

(多核DSP快速入门)0.前言+CCS的安装

原创文章 转载请注册来源http://blog.csdn.net/tostq 前言 最近老师给布置了个作业,让我用多核DSP做一个基于SIFT的RANSAC图像配准,SIFT+RANSAC网上都有许多代码,并不算难,但是多核DSP对于我来说,完全是一片空白,不光单核DSP没接触过,就连CCS是没用过.网上关于DSP的教程虽然很多,但绝大多数都是关于单核的,而多核DSP的教程虽然说也有,但是要么太复杂太专业,如TI的官网资料,要么就是说的不清楚,而且又没有什么完整体系,特别是我买的几本国内教程,完

转 如何使用velocity模板引擎开发网站

基于 Java 的网站开发,很多人都采用 JSP 作为前端网页制作的技术,尤其在是国内.这种技术通常有一些问题,我试想一下我们是怎样开发网站的,通常有几种方法: 1:功能确定后,由美工设计网页的UI(界面)部分,然后由程序员在其上加入代码显示逻辑(比如循环,判断显示数据结果).也就是通常的 jsp 页面制作,当然这部分可以由美工完成模板,然后由 jsp 工程师再继续以它为原型创建相应的 jsp 页面. 2:功能确定后,由美工设计网页的UI(界面)部分,然后由网页制作人员在其上加入代码显示逻辑(比

使用mvc模式开发网站

看了韩顺平的j2ee的视频后,吧里面教的做了出来,感觉好极了,新手上路!!! 这个肯定不是原创,但是也不是转载,那我就姑且把它作为翻译吧,给其他看视频学习但是没有代码的同学一点福利吧 首先是login.jsp的登陆界面代码. <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <% String path = request.getConte

(转)微信公众平台开发 OAuth2.0网页授权

微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章. 一.什么是OAuth2.0 官方网站:http://oauth.net/   http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure

微信小程序(原名微信应用号)开发工具0.9版安装教程

微信小程序全称微信公众平台·小程序,原名微信公众平台·应用号(简称微信应用号) 声明 微信小程序开发工具类似于一个轻量级的IDE集成开发环境,目前仅开放给了少部分受微信官方邀请的人士(据说仅200个名额)进行内测,因此目前未受到邀请的人士只能使用破解版: 本破解版资源来自于网上,与本人无关,仅供技术开发人员研究之用: 由于尚属内测阶段,因此迭代更新非常快,后续很可能由于升级而导致暂时无法使用.   特别注意 由于目前发布的0.9版本必须验证才能登录(估计是为了验证是否为内测人士),因此必须先下载