之前有个系列文章介绍过BlogEngine.NET,其中也有关于插件的介绍:“BlogEngine.Net架构与源代码分析系列part9:开发扩展(上)——Extension与管理上的实现”。但是随着.NET框架变化,系统也进行了多次升级,现在的版本已经有了很大变化。结合使用的2.8版本(基于.NET4.0)再来补充一下。

Extension界面
新的界面将原来的插件、主题、Widgets都整合到了“显示”菜单下统一操作。
 
安装|资源: 已安装的插件|在线资源库。
右侧导航: 配置插件需要的相关参数。
Priority: 插件优先级,对于监听同一事件时,插件按顺序执行,优先级值越小越先执行。

Extension新调整
1.将原来Global.asax文件中的启动加截代码,调整到了Utils.LoadExtensions()方法中。
 
2.将管理类文件调整到了BlogEngine.Core中:

3.前端页面使用“Razor”— ASP.NET的一个新视图引擎,位于admin/Extensions中:

default.cshtml:“显示”菜单的主框架。
Editor.cshtml:Extension插件源代码浏览。
Extensions.cshtml:Extenison插件界面框架。
SetStatus.cshtml:控制扩展插件是否禁用或启用。
Settings.aspx:Extension插件设置界面。
App_Code\Helpers\ExtensionsHelper.cshtml:Extension插件列表。

另外:BlogEngine.NET通过Excetions插件的方式实现日志。日志文件存放在项目的App_Data/logger.txt中。

总结

因为工作的关系有很长一段时间没有再接触.NET了,最近想再拿起来所以还是选择了BlogEngine.NET来看,因为之前觉得它的架构设计不错。但是这次再看BlogEngine.NET发现中间的变化还是蛮大的,而且其中的一些变化,不好说是好还是坏,可能因为是.NET框架变化大了吧,感觉上没有以前的设计的清晰了,就拿上面来说,Extension相关的实现代码,东一个西一个的哪都有,而且Razor视图引擎让页面看起来很杂乱,后端代码和前端代码混杂在一起。只能呵呵了:)希望有伙伴和能我一起讨论讨论,毕竟离开.NET有一段时间了,对于它的新特点可能还没有很好的掌握,也许BlogEngine.NET会在将来的版本中带来更好的设计,提供更好的功能吧。

BlogEngine.NET架构学习:Extension扩展实现的更多相关文章

  1. Mybatis架构学习

    Mybatis架构学习 MyBatis 是支持定制化 SQL.存储过程以及高级映射的持久层框架.MyBatis 封装了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.可以对配置和原生Map使用 ...

  2. ABP架构学习系列一 整体项目结构及目录

    本系列是基于aspnetboilerplate-0.8.4.0版本写的,其中原因是由于较高的版本太抽象难以理解和分析,对于还菜菜的我要花更多的时间去学习. abp的源码分析学习主要来源于 HK Zha ...

  3. ABP架构学习系列

    ABP实践学习系列 ABP Zero 本地化语言的初始化和扩展 ABP Zero 导航菜单之角色权限 ABP Zero示例项目问题总结  ABP后台服务之作业调度Quartz.NET   ABP架构学 ...

  4. 基于Spring Boot和Spring Cloud实现微服务架构学习

    转载自:http://blog.csdn.net/enweitech/article/details/52582918 看了几周Spring相关框架的书籍和官方demo,是时候开始总结下这中间的学习感 ...

  5. 基于Spring Boot和Spring Cloud实现微服务架构学习--转

    原文地址:http://blog.csdn.net/enweitech/article/details/52582918 看了几周spring相关框架的书籍和官方demo,是时候开始总结下这中间的学习 ...

  6. 微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Nginx 为基础的 API 网关详细介绍

    微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Nginx 为基础的 API 网关详细介绍 一.为什么会有 API Gateway 网关 随着微服务架构的流行,很多公司把原有的单 ...

  7. 微服务架构学习与思考(11):开源 API 网关02-以 Java 为基础的 API 网关详细介绍

    微服务架构学习与思考(11):开源 API 网关02-以 Java 为基础的 API 网关详细介绍 上一篇关于网关的文章: 微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Ngi ...

  8. 【从零开始学BPM,Day1】工作流管理平台架构学习

    [课程主题] 主题:5天,一起从零开始学习BPM [课程形式] 1.为期5天的短任务学习 2.每天观看一个视频,视频学习时间自由安排. [第一天课程] Step 1 软件下载:H3 BPM10.0全开 ...

  9. asp.net学习之扩展GridView

    原文:asp.net学习之扩展GridView 本节讨论如何从现有的控件,进而扩展成强大的,更定制的GridView控件 1.扩展BoundField 默认的BoundField不能显示多文本,文字一 ...

随机推荐

  1. Strtus配置Tomcat出现问题2

    启动myeclipse的tomcat6.0有如下提示:The APR based Apache Tomcat Native library which allows optimal performan ...

  2. BA-siemens-BA模块特性

    PXC24(包含UEC24的模块特性) DO点可以接220vac的电压,渠道人员告知电流不要超过2A AO点只能输出0-10V的电压,不能输出4-20ma的电流,说明书上是错误的 AO点输出10v失败 ...

  3. 数据库-mongodb-索引

    1.索引提高查询速度,降低写入速度,权衡常用的查询字段,不必在太多列上建立索引 2.在mongodb中,索引可以按字段升序.降序来创建,便于排序 3.默认是使用btree 来组织索引文件,2.4版以后 ...

  4. [Beginning SharePoint Designer 2010]Chapter5 主题和样式

    本章概要: 1.什么是CSS 2.样式表的组成 3.如何管理CSS适应SPD的工具和特性 4.被SPS使用的关键的CSS类别 5.使用SPD应用样式到你的站点上

  5. Mysql 奇怪的连接错误

    今天,碰到了一个数据库连接问题: 不像之前在linux上mysql连接问题,那是权限设置.而这次问题的起源是: 我想要往mysql导入csv文件,可是因为文件比較大.有88M数据:使用navicatc ...

  6. [Tailwind] Control What Variations are Generated for Each Utility Class Module in Tailwind

    In this lesson, we learn how to control what utility classes are generated for each utility class mo ...

  7. EJB学习(四)——Enterprise Bean(企业Bean)和Entity Bean(实体Bean)

        一.为什么使用EJB ? 企业Bean执行在EJB容器中.企业Bean实际上就是一个封装了业务逻辑的Java类,那么我们为什么要使用EJB呢 ? 1.最重要的原因:分布式.简要的说,分布式能够 ...

  8. Android 开发最佳实践

    原文地址:https://github.com/futurice/android-best-practices/blob/master/translations/Chinese/README.cn.m ...

  9. Linux--对文件夹下的配置文件批量改动IP

    sed -i 's/10.1.1.1/10.1.1.2/g' `grep -ir 10.1.1.1 * |grep -E '.xml:|.cfg:|.ini:|.wsdl:|.properties:' ...

  10. 关于部门后端所有转向java前初步设想

    Java服务有些什么形式?眼下来看主要是下面几类: 1.  执行在Web应用server的Servlet 2.  Thrift.PB.Avro等相似框架写的java服务 3.  WebService( ...