开发框架(OrchardNoCMS)介绍(一)】的更多相关文章

基于ASP.NET MVC的热插拔模块式开发框架(OrchardNoCMS)介绍(二) 之前文章中给大家说明了下我这个小小的想法,发现还是有不少人的支持和关注.你们的鼓励是对我最大的支持. 我总结了了大家的评论,有以下几个问题: 1.希望有更多的文档说明. 2.希望介绍下Orchard的热插拔机制. 3.希望可以说明如何扩展功能什么的. 4.介绍下Orchard的核心机制. 5. 介绍下我对Orchard的整个瘦身过程怎么做的. 6.觉得这个像瑞星杀毒只剩下小狮子了(这个有意思 J) 除了这些还…
基于ASP.NET MVC的热插拔模块式开发框架(OrchardNoCMS)介绍(一) Orchard CMS是针对CMS开发的,对于很多开发需求来说,内容管理这块儿可能并不需要,而需要它的模块式开发模式.所以我这里通过对OrchardCMS进行瘦身,去除 内容管理部分的内容,保留简单的运行环境和基础的模块.需要做的工作: 去除Orchard Framework的内容管理部分,同时去除Orchard Framework依赖内容管理的相关内容. 去除Orchard Core部分的部分module,…
基于ASP.NET MVC的热插拔模块式开发框架(OrchardNoCMS)--BootStrap 按照几个月之前的计划,也应该写一个使用Bootstrap作为OrchardNoCMS的UI库.之前这段时间都是在学习IOS开发,没顾得上写,也没顾得上维护OrchardNoCMS代码.看看我的活动轨迹就知道啦: 最近这两周快过年了,刚好写一篇博客来消磨时间,也顺便希望可以对大家有所帮助. 由于我精简后的版本中去掉了Orchard.jQuery模块,所以首先我建立了一个模块来存放我需要的所有JS和C…
前言 为了能够帮助.Net开发者开拓视野,更好的把最新的技术应用到工作中,我在3月底受邀到如鹏网.net训练营直播间为各位学弟学妹们进行ABP框架的直播分享.同时为了让更多的.NET开发者了解ABP框架,也在斗鱼直播间进行了直播.https://www.douyu.com/1980808 分享时间:2017年4月8日(星期六)下午14:00--16:00 链接:http://www.rupeng.com/Activities/48.shtml 过程 大致流程为 总的来说因为时间的关系2个小时无法…
我喜欢在一个项目开发模式成熟的时候,使用代码生成工具Database2Sharp来配套相关的代码生成,对于我介绍的基于SqlSugar的开发框架,从整体架构确定下来后,我就着手为它们量身定做相关的代码开发,这样可以在后续整合项目功能的时候,利用代码生成工具快速的生成所需要模块的骨架代码,然后在这个基础上逐渐增加自定义的内容即可,方便快捷.本篇随笔介绍基于SqlSugar的开发框架,对框架中涉及到的各个分层或者模块代码进行生成的处理. 1.回顾项目的架构和模块内容 在前面几篇随笔中,大概介绍过了基…
我们在设计数据库表的时候,往往为了方便,主键ID一般采用字符串类型或者GUID类型,这样对于数据库表记录的迁移非常方便,而且有时候可以在处理关联记录的时候,提前对应的ID值.但有时候进行数据记录插入的时候,往往忽略了对ID的赋值处理.为了便于使用或者允许自动赋值,我们可以在数据访问基类中对GUID主键进行自动赋值处理. 1.实体类主键属性的处理 在我们设计基于SqlSugar的框架的时候,实体类定义一个基类Entity<T>,如下代码所示. [Serializable] public abst…
在前面随笔,我们介绍过这个基于SqlSugar的开发框架,我们区分Interface.Modal.Service三个目录来放置不同的内容,其中Modal是SqlSugar的映射实体,Interface是定义访问接口,Service是提供具体的数据操作实现.在Service层中,往往除了本身的一些增删改查等处理操作外,也需要涉及到相关业务的服务接口,这些服务接口我们通过利用.net 的接口注入方式,实现IOC控制反转的处理的. 1.框架Service层的模块 如下面的VS中的项目服务层,包含很多业…
在基于SqlSugar的开发框架中,我们设计了一些系统服务层的基类,在基类中会有很多涉及到相关的数据处理操作的,如果需要跟踪具体是那个用户进行操作的,那么就需要获得当前用户的身份信息,包括在Web API的控制器中也是一样,需要获得对应的用户身份信息,才能进行相关的身份鉴别和处理操作.本篇随笔介绍基于Principal的用户身份信息的存储和读取操作,以及在适用于Winform程序中的内存缓存的处理方式,从而通过在基类接口中注入用户身份信息接口方式,获得当前用户的详细身份信息. 1.用户身份接口的…
在我们对数据进行重要修改调整的时候,往往需要跟踪记录好用户操作日志.一般来说,如对重要表记录的插入.修改.删除都需要记录下来,由于用户操作日志会带来一定的额外消耗,因此我们通过配置的方式来决定记录那些业务数据的重要调整.本篇随笔介绍如何在基于SqlSugar的开发框架中,实现对用户操作日志记录的配置设置,以及根据配置信息自动实现用户操作日志记录. 1.用户操作日志记录的配置处理 前面提到,由于用户操作日志会带来一定的额外消耗,因此我们通过配置的方式来决定记录那些业务数据的重要调整. 首先我们在系…
在早期的随笔就介绍过,把常规页面的内容拆分为几个不同的组件,如普通的页面,包括列表查询.详细资料查看.新增资料.编辑资料.导入资料等页面场景,这些内容相对比较独立,而有一定的代码量,本篇随笔介绍基于Vue3+Typescript+Setup语法方式,来拆分页面模块内容为组件,实现分而治之的处理. 1.页面模块组件的划分 我们先来了解下常规页面的内容的整体界面布局,它包含常规的列表界面,新增.编辑.查看.导入等界面,除了列表页面,其他内容以弹出层对话框的方式进行处理,如下界面示意图所示. 这些页面…
在我们实际项目开发过程中,往往需要根据实际情况,对组件进行封装,以更简便的在界面代码中使用,在实际的前端应用中,适当的组件封装,可以减少很多重复的界面代码,并且能够非常简便的使用,本篇随笔介绍基于ElementPlus的上传组件进行封装. 1.El-Upload上传组件的使用场景及数据库设计 在官网地址https://element-plus.org/zh-CN/component/upload.html上有关于该组件的详细使用代码案例. 大概有个场景我需要根据需要展示文件的,一个是文件展示方式…
刚完成一些前端项目的开发,腾出精力来总结一些前端开发的技术点,以及继续完善基于SqlSugar的开发框架循序渐进介绍的系列文章,本篇随笔主要介绍一下基于Vue3+TypeScript的全局对象的注入和使用.我们知道在Vue2中全局注入一个全局变量使用protoType的方式,很方便的就注入了,而Vue3则不能通过这种方式直接使用,而是显得复杂一些,不过全局变量的挂载有它的好处,因此我们在Vue3+TypeScript中也继续应用这种模式来处理一些常规的辅助类方法. 1.Vue2的全局挂载 Vue…
在前面随笔<基于SqlSugar的开发框架循序渐进介绍(12)-- 拆分页面模块内容为组件,实现分而治之的处理>中我们已经介绍过,对于相关的业务表的界面代码,我们已经尽可能把不同的业务逻辑封装在不同的页面组件中,隔离变化的差异,因此界面组件化后,就可以利用代码生成工具进行统一的界面代码的生成了,而且由于变化的隔离处理,我们实际上维护的代码变得更加方便维护了.本篇随笔介绍在整合代码生成工具进行前端界面的生成的一些思路和实际的界面代码的生成. 1.页面的模块化处理 在前面随笔<基于SqlSu…
在一个应用系统的开发框架中,往往很多地方需要用到缓存的处理,有些地方是为了便于记录用户的数据,有些地方是为了提高系统的响应速度,如有时候我们在发送一个短信验证码的时候,可以在缓存中设置几分钟的过期时间,这样验证短信验证码的时候,就会自动判断是过期了.本篇随笔结合CSRedis的使用,介绍如何实现缓存的初始化及使用的处理. 1.在基于.netCore的Web API后端使用CSRedis 关于CSRedis的使用,我们可以参考Github网站:https://github.com/2881099/…
在做一些常规应用的时候,我们往往需要确定条件的内容,以便在后台进行区分的进行精确查询,在移动端,由于受限于屏幕界面的情况,一般会对多个指定的条件进行模糊的搜索,而这个搜索的处理,也是和前者强类型的条件查询处理类似的处理过程,因此本篇随笔探讨两种不同查询在前端界面上的展示效果,以及后端基于.netCore的Web API端的基类进行的统一封装处理. 1.前端精确条件的查询处理 在基于Vue3+Typescript+ElementPlus的前端界面中,查询是很多界面需要拥有的功能,如下所示. 展开后…
有时候,为了给前端页面输出内容,有时候我们需要准备和数据库不一样的实体信息,因为数据库可能记录的是一些引用的ID或者特殊字符,那么我们为了避免前端单独的进行转义处理,我们可以在后端进行统一的格式化后再行输出,后端处理可以采用不同的DTO尸体信息,后端对不同的实体进行映射处理即可,也可以采用同一个实体,在SqlSugar实体信息中忽略对应的字段写入实现,本篇随笔介绍后者的处理方式,实现在在工作流列表页面中增加一些转义信息的输出处理. 1.后端的转义处理 大多数页面,我们的前端显示信息DTO和后端的…
之前文章中给大家说明了下我这个小小的想法,发现还是有不少人的支持和关注.你们的鼓励是对我最大的支持. 我总结了了大家的评论,有以下几个问题: 1.希望有更多的文档说明. 2.希望介绍下Orchard的热插拔机制. 3.希望可以说明如何扩展功能什么的. 4.介绍下Orchard的核心机制. 5. 介绍下我对Orchard的整个瘦身过程怎么做的. 6.觉得这个像瑞星杀毒只剩下小狮子了(这个有意思 J) 除了这些还有别的,我只是自己大概总结了下. 对于以上的问题,我不会挨个去说明.只是给大家说明下我的…
一些总结出来的Android高速开发框架,所有都是开源框架,附带项目地址,是开发学习的绝佳资料. Direct-Load-apk项目 项目主页地址:http://www.kymjs.com/ 功能:Direct-Load-APK是一个Android插件化开发框架,与CJFrame不同.DLA能够做到随时去执行一个apk.而不须要有什么约束,你甚至能够指定类名来启动插件中的随意Activity. 开发人员QQ群:362901808 点评:对于插件化开发来说.是一个很伟大的创新,可惜眼下还不支持Se…
前面介绍了很多ABP系列的文章<ABP框架使用>,一步一步的把我们日常开发中涉及到的Web API服务构建.登录日志和操作审计日志.字典管理模块.省份城市的信息维护.权限管理模块中的组织机构.用户.角色.权限.菜单等内容,以及配置管理模块,界面的高级查询处理等内容,并根据我们在Winform领域多年的开发经验,完成了系统功能在Winform界面下的实现,并利用工具实现快速的Winform界面生成工作:而在循序渐进VUE+Element 前端应用开发文章<循序渐进VUE+Element&g…
在前面介绍的SqlSugar的相关查询处理操作中,我们主要以单表的方式生成相关的实体类,并在查询的时候,对单表的字段进行条件的对比处理,从而返回对应的数据记录.本篇随笔介绍在一些外键或者中间表的处理中,如何遍历查询并获得所需的记录操作. 1.回顾单表的操作查询 我在<基于SqlSugar的开发框架的循序渐进介绍(1)--框架基础类的设计和使用>中介绍过的Customer表信息,就是一个单表的处理. 例如,我们对于一个简单的客户信息表,如下所示. 生成对应的实体对象CustomerInfo外,同…
在基于SqlSugar的开发框架的服务层中处理文件上传的时候,我们一般有两种处理方式,一种是常规的把文件存储在本地文件系统中,一种是通过FTP方式存储到指定的FTP服务器上.这种处理应该由程序进行配置,决定使用那种方式,那么这里面我们为了弹性化处理, 在文件上传模块中采用选项模式[Options]处理常规上传和FTP文件上传的配置参数信息. 微软引入选项模式,它是用于配置框架服务使用的设置. 选项模式由Microsoft.Extensions.OptionsNuGet包实现,除了ASP.NET…
字段的权限控制,一般就是控制对应角色人员对某个业务对象的一些敏感字段的可访问性:包括可见.可编辑性等处理.本篇随笔结合基于SqlSugar的开发框架进行的字段控制管理介绍. 在设计字段权限的时候,我们需要了解这些还是基于RBAC的概念,基于角色进行授权的,而且我们的字段列表是属于具体的业务对象列表的,这里的业务对象是指一些我们具体的业务模块,如客户基础信息.人员基础信息.报价单等等,我们就是基于这些业务进行字段的控制的. 1.字段权限表的设计和界面管理 基于SqlSugar的开发框架,对应处理的…
在SqlSugar的开发框架的后端,我们基于Web API的封装了统一的返回结果,使得WebAPI的接口返回值更加简洁,而在前端,我们也需要统一对返回的结果进行解析,并获取和Web API接口对应的数据进行展示即可,本篇随笔介绍在Vue3+TypeScript+Vite的项目中,使用基于TypeScript的基类继承的方式,实现对后端接口数据的统一解析处理的封装操作. 1.SqlSugar的开发框架后端Web API的封装 前面介绍到,在SqlSugar的开发框架的后端,我们需要对Web API…
按照几个月之前的计划,也应该写一个使用Bootstrap作为OrchardNoCMS的UI库.之前这段时间都是在学习IOS开发,没顾得上写,也没顾得上维护OrchardNoCMS代码.看看我的活动轨迹就知道啦: 最近这两周快过年了,刚好写一篇博客来消磨时间,也顺便希望可以对大家有所帮助. 由于我精简后的版本中去掉了Orchard.jQuery模块,所以首先我建立了一个模块来存放我需要的所有JS和CSS文件. 创建一个ResourceManifest文件,它实现了接口IResourceManife…
AOP编程在目前来说好像是大家都比较喜欢的.ASP.NET MVC中的Filter就是使用AOP实现的配置器模式.AOP在编码中的应用主要有如下几个方面: 日志记录,跟踪,优化和监控 事务的处理 持久化 性能的优化 资源池,如数据库连接池的管理 系统统一的认证.权限管理等 应用系统的异常捕捉及处理 针对具体行业应用的横切行为 前面几种应用我相信大家都是比较熟悉的.在ASP.NET MVC中有Filter之类的,提供认证和权限管理.很多实现AOP的组件都是拿日志作为例子说明.我这里给大家说明一个具…
Orchard CMS是针对CMS开发的,对于很多开发需求来说,内容管理这块儿可能并不需要,而需要它的模块式开发模式.所以我这里通过对OrchardCMS进行瘦身,去除 内容管理部分的内容,保留简单的运行环境和基础的模块.需要做的工作: 去除Orchard Framework的内容管理部分,同时去除Orchard Framework依赖内容管理的相关内容. 去除Orchard Core部分的部分module,只保留Sharpe和Setting两个模块. 去除内容管理和博客管理的相关模块,只保留支…
winform开发框架,尽量减少程序员在界面中的代码量和工作量,Model自动生成,界面以及控件自动生成,简单的逻辑自动生成.自动生成的界面已经实现简单逻辑增删改查功能. 其他开发框架都已经或多火烧实现了这些功能,如果代码生成工具是VS插件呢,省去了复制粘贴加载项目步骤,是不是有点小惊喜?来感受下吧: 项目插件 项插件: 框架总概括图: 框架下载地址:链接:http://pan.baidu.com/s/1kT3t8Gn 密码:xnzo share Demo源码地址:https://github.…
随着Vue3和TypeScript的大浪潮不断袭来,越来越多的Vue项目采用了TypeScript的语法来编写代码,而Vue3的JS中的Setup语法糖也越来越广泛的使用,给我们这些以前用弱类型的JS语法编写Vue代码的人不少冲击,不过随着大量的学习和代码编写,经历过一段难熬的时间后,逐步适应了这种和之前差别不小的写法和冲击.本篇随笔介绍总结了Vue3中一些常见的基于TypeScript的Setup语法与组合式 API的处理代码案例. TypeScript(简称ts)是微软推出的静态类型的语言,…
添加菜单后用户并不会看到菜单 需要经过授权后才能看到 授权界面如图 授权的数据逻辑可以理解为一个键值对 角色>>菜单 但是为了方便集中数据管理 我设计成了 角色>>资源 其中的资源可以是菜单  可以是按钮  可以是  字段 所以为了区分是那些资源还需要一个分组的字段  也就是 角色>>资源>>分组 例如判断 销售角色 是否有查询即时库存的权限  就到权限表里找   菜单为 即时库存  角色为 销售  分组为菜单的  数据  如果找到就是有权限  没找到就是没…
菜单表数据库设计 可以根据数据表取得树状目录,其中 版本和作者 可以分别对版本和修改人进行追溯 有兴趣的朋友可以尝试再添加一个收藏夹   也是比较常用的功能   这里我没有做这个功能 然后看下菜单编辑界面 图片有点放不下  大家可以进入看图模式看下图片  更清楚一些 主要是2个部分  树状菜单可以通过鼠标拖拽调整层级关系 和顺序 右侧表格登记菜单相关信息 上面的功能按钮里面有一个拷贝功能   作用是如果新的菜单功能在旧的菜单中有类似的(相同的表  )  可以使用拷贝功能复制一份旧的菜单  然后在…