CMS: DNN And Umbraco
在比较了众多CMS系统后,还是把焦点定在DNN和Umbraco两个系统上,这两个系统都可以使用UserControl扩展自己需要的功能。
DNN的架构比较复杂,Module、Skin、Container很容易把人搞晕,据说他适合做门户系统,而且现在的版本可以与AD结合,估计做企业应用也比较合适。
Umbraco要创建一个页面必须有几个步骤:
第一步:创建Document Type,相当于是定义字段信息;
第二步:创建Template,即各个字段在页面中的显示位置及样式等;
第三步:创建Content,应该也可以叫Document,它与Template和DocumentType关联起来。
我是从这里入门的:Umbraco入门使用教程
开发方面,DNN和Umbraco的文档都不全面,不系统,文档更新与版本发布同步,这让人很郁闷,但没办法,开源免费,你还想怎样呢?
DNN有一些视频教程 DotNetNuke Video Library,Umbraco也有视频教程,但要收费
Umbraco方面在our.umbraco.org中基本上把所有已有的文档都过了一遍,然后结合Project(也是开源的)进一步了解,比如通过Content Maintenance Dashboard Package(Developer tools)可以了解一些对文档的搜索、删除等操作,再结合Refrence中的API参考,可以知道怎样Create Document。
关于Upload文档类型的自动化处理:
I have a DocumentType which contains some fields on DataType Upload. Can i fill those fields from a usercontrol?
Yes, the file upload field stores the path to the uploaded file (ie: /media/1234/my-file.pdf).
You can upload the file where ever you want and assign the path to the property.
在XSLT中嵌入字段值:
<img src='{preview}' style="border: none;"/>
或者
<xsl:value-of select="@nodeName"/>
字段名前面有@的是系统字段,自定义字段不需要加@
代码片段:ExamineSearch.xslt
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" xmlns:Examine="urn:Examine" xmlns:ucomponents.cms="urn:ucomponents.cms" xmlns:ucomponents.dates="urn:ucomponents.dates" xmlns:ucomponents.email="urn:ucomponents.email" xmlns:ucomponents.media="urn:ucomponents.media" xmlns:ucomponents.members="urn:ucomponents.members" xmlns:ucomponents.search="urn:ucomponents.search" xmlns:ucomponents.strings="urn:ucomponents.strings" xmlns:ucomponents.urls="urn:ucomponents.urls" xmlns:ucomponents.xml="urn:ucomponents.xml"
exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets Examine ucomponents.cms ucomponents.dates ucomponents.email ucomponents.media ucomponents.members ucomponents.search ucomponents.strings ucomponents.urls ucomponents.xml "> <xsl:output method="xml" omit-xml-declaration="yes"/> <xsl:param name="currentPage"/> <xsl:template match="/"> <!-- start writing XSLT -->
<textarea cols="60" rows="5">
<xsl:copy-of select="Examine:SearchContentOnly('test')"/>
</textarea> <xsl:variable name="aa" select="Examine:SearchContentOnly('test')/nodes/node"/> <xsl:for-each select="$aa">
<xsl:value-of select="position()"/>:
<xsl:value-of select="@id"/>,
<xsl:value-of select="data[@alias='iconSize']"/># </xsl:for-each> </xsl:template> </xsl:stylesheet>
搜索与Examine:
可以使用XSLT搜索Cache中的内容,Cache中的内容在APP_DATA目录下的umbraco.config中,Project中的XSLTsearch就是一个非常好的例子,一般的搜索可以直接用它,或者拿来稍做修改即可。另一种方法是可以使用Examine,可以通过XSLT也可以使用用户控件或才MVC调用Examine,现在,ExamineIndex.config文件可以配置索引,具体操作见 http://umbraco.com/follow-us/blog-archive/2011/9/16/examining-examine.aspx。目前还没完全搞明白Examine的操作,估计会比直接XSLT快一些,因为Exmaine是自定义索引,而umbraco.config中的内容是所有发布的网站内容。
XSLTsearch中的XSLTsearch.cs文件是不用编译的,Package部署时,会自动复制到APP_Code目录下。
Package:
开发时,把Usercontrols复制到Umbraco网站的Usercontrols目录,把编译后的DLL复制到Umbraco网站的BIN目录下,在Umbraco的后台创建Package时,指定要包含的文件或目录,其中可以包括UserControls和BIN目录下的DLL,生成后的Package在Media目录下,其中的Package.xml文件详细记录了文件或目录的配置,以及Actions(如用于扩展Umbraco后台)。
多语言:
是否可以通过ucomponents.cms:GetDictionaryItem('InvalidTopicId', '2')做多语言网站?
接下来想通过采集程序,采集一个网站的文章,再利用Umbraco仿制一个网站。
CMS: DNN And Umbraco的更多相关文章
- 我的CMS心路历程,DNN And Umbraco
在比较了众多CMS系统后,还是把焦点定在DNN和Umbraco两个系统上,这两个系统都可以使用UserControl扩展自己需要的功能. DNN的架构比较复杂,Module.Skin.Containe ...
- 一个基于Net 的CMS -- Umbraco CMS
一个基于Net 的CMS -- Umbraco CMS: https://umbraco.com/ Sitecore 和 EPiServer http://www.bubuko.com/i ...
- ASP.NET的CMS
最受欢迎的ASP.NET的CMS下载 1. Umbraco 项目地址 | 下载 Umbraco是一个开放源码的CMS内容管理系统,基于asp.net建立,使用mssql进行存储数据. 使用Umbrac ...
- 开源CMS的比较和选择
最近就cms系统折腾了一下,主要还是以 构架为主,以下做一个大概的比较: 1. Nuke 一般称为DNN,这是最开始Microsoft发布 的时候,用vb做了一个web的演示例子,最终这个例子发展成了 ...
- .NET 开源开发项目【翻译】
原文地址 本文列出了 .NET 开源开发项目(open source developer projects).意在包括对开发过程的所有方面有所帮组的项目.对于消费项目(consumer project ...
- OrchardCore Headless建站
说到CMS系统,可能大家都能想起WordPress和Drupal之类的框架,作为.NET爱好者,一般也是知道一些基于.NET的CMS框架的,典型的比如DNN.Umbraco之类的.我很早之前听过Orc ...
- 开源CMS建站项目DNN研究与心得
DNN (Dotnetnuke) 首先是开源的,并且采用BSD开源协议,也就是说你可以任意修改源代码.传播.作为商品出售,仅有的要求就是保留源代码中的版权文字,这就解决了我多年来的心病:我知道动网新闻 ...
- DNN CMS Platform
http://dotnetnuke.codeplex.com/downloads/get/1458710
- 最受欢迎的ASP.NET的CMS下载
1. Umbraco 项目地址 下载 Umbraco是一个开放源码的CMS内容管理系统,基于asp.net建立,使用mssql进行存储数据.使用Umbraco,设计师能创造出有效的XHTML标记模板和 ...
随机推荐
- 编写高质量代码改善C#程序的157个建议——建议76: 警惕线程的优先级
建议76: 警惕线程的优先级 线程在C#中有5个优先级:Highest.AboveNormal.Normal.BelowNormal和Lowest.讲到线程的优先级,就会涉及线程的调度.Windows ...
- Atcoder 2159 連結 / Connectivity(并查集+map乱搞)
問題文N 個の都市があり.K 本の道路と L 本の鉄道が都市の間に伸びています. i 番目の道路は pi 番目と qi 番目の都市を双方向に結び. i 番目の鉄道は ri 番目と si 番目の都市を双 ...
- Linq转换操作之OfType,Cast,AsEnumerable,ToLookup源码分析
Linq转换操作之OfType,Cast,AsEnumerable,ToLookup源码分析 一:Tolookup 1. 从方法的注解上可以看到,ToLookup也是一个k,v的形式,那么问题来了,它 ...
- Java 中使用MD5方法加密密码
prequisites 导入包 import java.security.MessageDigest;
- 萌新web前端从零开始(1)——计算机入门
前言:这是一个萌新从零开始的学习之路,与大家分享自己的看法与见解,还请指出错误与遗漏点方便改正. 1.认识计算机. 计算机语言常见的有C,PHP,Ruby,Java,C#,Basic,JS,C++等, ...
- 6.margin塌陷问题
当时说到了盒模型,盒模型包含着margin,为什么要在这里说margin呢?因为元素和元素在垂直方向上margin里面有坑. 我们来看一个例子: <!DOCTYPE html><ht ...
- 关于C#低版本升级高版本时,项目中引用Microsoft.Office.Interop.Word,程序提示不存在类型或命名空间名office.
Report.cs里using Microsoft.Office.Interop.Word;就会报错:编译器错误消息: CS0234: 命名空间“Microsoft.Office”中不存在类型或命名空 ...
- TCP/IP学习笔记(2)-数据链路层
数据链路层有三个目的: 为IP模块发送和接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请求和接收RARP应答 ip大家都听说过.至于ARP和RARP,ARP叫做 ...
- Ubuntu 16.04.5安装docker
一:安装Ubuntu 16.04.5 下载地址: 1.magnet:?xt=urn:btih:C3C5FE05C329AE51C6ECA464F6B30BA0A457B2CA 2.http://m ...
- 打造一款1kb大马并且处理D盾以及安全狗拦截与查杀
在之前sky666提到了关于大马被waf拦的问题,我决定手动去过一下bypass.可是发现怎么也过不去查杀,更别说拦截了.对此无奈,只好花了个通宵去处理一下.顺便一提,理论过所有Waf,并且被杀只需要 ...