SiteServer CMS 5.0 源码入门
二次开发
提示:文档中心正在完善中,我们将不断发布新文档,敬请期待...
SiteServer CMS 5.0 源码入门
一、准备开发环境
想学习SiteServer CMS的或者想利用SiteServer CMS源码进行项目定制开发的程序员,需要提前准备好开发环境。具体要求如下:
1、.net framework 4.5.2或以上版本;
2、Visual Studio 2015或以上版本;
3、SQLServer 2008及以上版本或MySql 5.0 及以上版本;
4、NodeJS 最新版(可选);
说明:如果需要修改用户中心的前台页面代码,或者需要重新制作安装包或升级包,才需要安装NodeJS。
二、获取代码
官方在GitHub上提供的源码,地址为:https://github.com/siteserver/cms

通过Git命令或者从上图页面直接下载最新源码。
产品使用文档或开发文档,请关注官方的开发者中心:http://developer.siteserver.cn/

三、源码结构初析
1、解压源码压缩包

注意:如果只修改SiteServer CMS后台功能或后台界面的话,只需要关注source文件夹里的代码即可。
2、Visual Studio 打开C#代码

注意:
SiteServer.API 项目对应源代码解压出来的文件夹是source文件夹下的SiteServer.Web文件夹,并没有一个名叫SiteServer.API的文件夹。
SiteServer.API 并不是提供给第三方系统与SiteServer数据交换用的,而是SiteServer系统内部使用的一些API接口,比如用户中心现在前后端完全分离,前端用ReactJS来实现,和后端的数据交换就是通过SiteServer.API来实现的。
SiteServer.Plugins才刚刚开始,标准格式还没完全定下来,现在官方已经开发了第一个插件:阿里云存储插件,即站点文件可以支持云存储。具体源码在:https://github.com/siteserver/Plugin.Oss
四、安装SiteServer CMS
1、新建空数据库,设为启动项目
在Sql Server Management Studio中新建名为cms5.0的空数据库。在Visual Studio中把SiteServer.API设置为启动项目。

2、安装SiteServer CMS
如果是下载完源码第一次运行程序,则会需要进入安装SiteServer CMS的流程。具体是在Visual Studio中按F5开始调试,出现如下空白界面:

然后在浏览器地址中后面加入/siteserver,再回车,即地址变成:
http://localhost:58059/siteserver,则会出现如下安装界面:

按界面提示点下一步即可完成安装。具体安装说明可参考:http://docs.siteserver.cn/getting-started/index.html
安装完成之后点击进入后台管理,需要新建站点,如下图:

输入站点名称即可以创建一个空的新站点,并自动进入后台站点管理界面:

五、开始修改调试源代码
经过前面的操作,我们已经把SiteServer CMS运行起来了,并已经经入了调试状态。现在我们就以一个具体例子来演示一下如何进行代码修改并调试。
任务:把下图中的红框内容部分改成“欢迎使用SiteServer CMS 管理后台”

1、找到对应前台页面文件
运行程序,登录后台,进入到主界面。然后在红框位置按鼠标右键,点击“查看框架源代码”,弹出如下图:

通过上图可以看到,本页面路径是在siteserver文件夹里的pageRight.aspx文件,好对应源代码解压出来的位置就是:source\SiteServer.Web\SiteServer\pageRight.aspx。此时我们可以通过Visual Studio、Visual Studio Code或Atom编辑器打开此文件:

通过上图两个黄框,我们可以找到两个重要信息:
一个是控制pageRight.aspx文件业务逻辑的CS代码文件类:SiteServer.BackgroundPages.PageRight;
另一个是显示欢迎信息的asp.net服务器控件ID为LtlWelcome。
2、找到前台页面对应的后端c#代码文件
通过前一步找到控制pageRight.aspx文件业务逻辑的CS代码文件类是SiteServer.BackgroundPages.PageRight,这很清楚就是在SiteServer.BackgroundPages项目中,在Visual Studio中很容易就找到PageRight.cs文件:

在Visual Studio中打开PageRight.cs文件:

很清楚就看到了控制显示欢迎信息的服务器控件LtlWelcome。
3、修改并调试代码
在修改代码之前需要停止调试,然后把代码进行如下修改,并设置断点(F9),然后启动F5运行程序并进入调试状态,登录之后会是这样:

点击继续之后,出来的结果就是这样:

至此,我们就完成了开始提出的修改任务,并也能断点进行调试。
SiteServer CMS 5.0 源码入门的更多相关文章
- [图解tensorflow源码] 入门准备工作附常用的矩阵计算工具[转]
[图解tensorflow源码] 入门准备工作 附常用的矩阵计算工具[转] Link: https://www.cnblogs.com/yao62995/p/5773142.html tensorf ...
- Vue.js 2.0源码解析之前端渲染篇
一.前言 Vue.js框架是目前比较火的MVVM框架之一,简单易上手的学习曲线,友好的官方文档,配套的构建工具,让Vue.js在2016大放异彩,大有赶超React之势.前不久Vue.js 2.0正式 ...
- Spring源码入门——DefaultBeanNameGenerator解析 转发 https://www.cnblogs.com/jason0529/p/5272265.html
Spring源码入门——DefaultBeanNameGenerator解析 我们知道在spring中每个bean都要有一个id或者name标示每个唯一的bean,在xml中定义一个bean可以指 ...
- AFNetworking 3.0 源码解读 总结(干货)(下)
承接上一篇AFNetworking 3.0 源码解读 总结(干货)(上) 21.网络服务类型NSURLRequestNetworkServiceType 示例代码: typedef NS_ENUM(N ...
- AFNetworking 3.0 源码解读(十一)之 UIButton/UIProgressView/UIWebView + AFNetworking
AFNetworking的源码解读马上就结束了,这一篇应该算是倒数第二篇,下一篇会是对AFNetworking中的技术点进行总结. 前言 上一篇我们总结了 UIActivityIndicatorVie ...
- AFNetworking 3.0 源码解读(十)之 UIActivityIndicatorView/UIRefreshControl/UIImageView + AFNetworking
我们应该看到过很多类似这样的例子:某个控件拥有加载网络图片的能力.但这究竟是怎么做到的呢?看完这篇文章就明白了. 前言 这篇我们会介绍 AFNetworking 中的3个UIKit中的分类.UIAct ...
- AFNetworking 3.0 源码解读(九)之 AFNetworkActivityIndicatorManager
让我们的APP像艺术品一样优雅,开发工程师更像是一名匠人,不仅需要精湛的技艺,而且要有一颗匠心. 前言 AFNetworkActivityIndicatorManager 是对状态栏中网络激活那个小控 ...
- AFNetworking 3.0 源码解读(八)之 AFImageDownloader
AFImageDownloader 这个类对写DownloadManager有很大的借鉴意义.在平时的开发中,当我们使用UIImageView加载一个网络上的图片时,其原理就是把图片下载下来,然后再赋 ...
- AFNetworking 3.0 源码解读(七)之 AFAutoPurgingImageCache
这篇我们就要介绍AFAutoPurgingImageCache这个类了.这个类给了我们临时管理图片内存的能力. 前言 假如说我们要写一个通用的网络框架,除了必备的请求数据的方法外,必须提供一个下载器来 ...
随机推荐
- 阿里云 经典网络使用ClassicLink连接到专用网络后,192.168网段需要添加路由
配置后,专用网络中的机器Ping不通经典网络, 查帮助说192.168网段需要手动添加路由表. 抓包能在经典网络中收到专用网络中过来的数据包,但回复的数据包不能正确发出去. 先用 route -n 查 ...
- 跟我一起写 Makefile(二)[转]
原文链接 http://bbs.chinaunix.net/thread-408225-1-1.html(出处: http://bbs.chinaunix.net/) 一.Makefile里有什么? ...
- Monkey源代码分析之事件源
上一篇文章<Monkey源代码分析之执行流程>给出了monkey执行的整个流程.让我们有一个概貌,那么往后的文章我们会尝试进一步的阐述相关的一些知识点. 这里先把整个monkey类的结构图 ...
- erlang 爬虫——爬取网页图片
说起爬虫,大家第一印象就是想到了python来做爬虫.其实,服务端语言好些都可以来实现这个东东. 在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌 ...
- Ubuntu 16.04 关闭/打开笔记本触摸板
由于笔记本触摸板太多灵敏,影响使用,所以禁用掉触摸板. 禁用触摸板命令: sudo rmmod psmouse 启用触摸板命令 sudo modprobe psmouse 注意:启用之后可能会有几秒钟 ...
- Java -- 数字
@.运用BigDecimal处理Double类型的算术运算的精度问题 原文:https://blog.csdn.net/j754379117/article/details/52238396 可使用 ...
- iOS Sprite Kit教程之编敲代码以及Xcode的介绍
iOS Sprite Kit教程之编敲代码以及Xcode的介绍 Xcode界面介绍 一个Xcode项目由非常多的文件组成,比如代码文件.资源文件等.Xcode会帮助开发人员对这些文件进行管理.所以,X ...
- 为什么是kafka(二)
回答几个网友提出的问题,不清楚的能够看上一篇内容. 1. kafka的删除策略应该怎么配置?为了提升性能.我是不是应该1小时删除一次消费过的数据. 全然能够依据磁盘大小配置.仅仅要磁盘足够用,全然不 ...
- NSNotificationCenter详解
本文转载至 http://blog.csdn.net/chengyingzhilian/article/details/7874408 作用:NSNotificationCenter是专门供程序中不同 ...
- A visual proof that neural nets can compute any function
http://neuralnetworksanddeeplearning.com/chap4.html In essence, we're using our single-layer neural ...