Diana是基于 C# 语言的WEB + ORM 轻量级开发框架,其核心设计目的是轻量级、功能强大、易扩展、高度分层隔离、高安全。
主要特点:
自开发的MVC框架,通过使用单入口模式,利用反射机制实现了模型(model)-视图(view)-控制器(controller)的逻辑、数据、界面显示的分离,使得框架加载性能相对于传统MVC框架较为高效。
前台设计了两种页面风格,分别是基于MVVM框架Knockout的ACE前端,基于Bootstrap开发的扁平化前端,界面风格简洁、大气、操作便捷。
后台ORM采用SQL Sugar使系统与数据库的操作更加灵活稳定,性能更高。
支持SQLServer、MySQL数据库类型,且切换简单,只需在配置文件中切换。
基于rbac(role based access control)的形式的权限控制,按角色、按部门、按用户组都可以,操作权限细化到了界面上的每一个按钮,并且将权限细分为静态权限和动态权限,这样将资源和动作分离开,避免程序耦合度高,实现两者的独立运行,以适用于复杂的权限系统。
集成工作流引擎组件,支持可视化操作,使业务流程灵活可控。
Diana技术介绍:
后端
Sql sugar ORM
log4net 系统日志
Newtonsoft.JsonJson处理
Ninject 依赖注入容器
Velocity 模板
前端
JS框架:Jquery-1.10.2.min、jquery-ui
前端框架:Bootstrap,knockout
数据表格:JqGrid
分页插件: pagination
布局:Layout
图表: echarts
字体图片:FontAwesome
富文本:Ueditor
日期控件:WdataPicker
树结构控件:jQueryWTree
对话框:layer
工作流流程图:myflow.js
1. AGNES AGNES是一种采用自底向上合并策略的聚类算法,其思想为:初始将所有样本看成一个簇,然后在每一轮过程中将距离最近的两个簇合并为一个簇,簇的个数不断减少到人为指定的聚类簇数K,终止算法。该算法关键在于如何度量两个簇的距离,集合间的距离计算有如下方式: 最 小 距 离 : d i s t ( C i , C j ) = m i n [ x ∈ C i , z ∈ C j ] ∣ ∣
1. 算法描述 DIANA(Divisive ANAlysis)算法属于分裂的层次聚类。与凝聚的层次聚类相反,它采用一种自顶向下的策略,它首先将所有对象置于一个簇中,然后逐渐细分为越来越小的簇,直到每个对象自成一簇,或者达到了某个终结条件,例如达到了某个希望的簇数目,或者两个最近簇之间的距离超过了某个闯值。 在 DIANA 方法的处理过程中,所有的对象初始都放在一个簇中。根据一些原则(如簇中最临近
DIANA算法(DIvisive ANAlysis)算法是一种分裂式层次聚类算法,它的主要步骤步骤如下: 举例说明,假设二维空间八个元素,分布位置如下: 坐标点 属性1 属性2 \(P_1\) 1 1 \(P_2\) 1 2 \(P_3\) 2 1 \(P_4\) 2 2 \(P_5\) 3 4 \(P_6\) 3 5 \(P_7\) 4 4 \(P_8\) 4 5 步骤1:找出具有最大直径的集群
DIANA(Divisive Analysis)算法属于分裂的层次聚类,首先将所有的对象初始化到一个簇中,然后根据一些原则(比如最邻近的最大欧式距离),将该簇分类。 直到到达用户指定的簇数目或者两个簇之间的距离超过了某个阈值。 簇的直径:在一个簇中的任意两个数据点都有一个欧氏距离,这些距离中的最大值是簇的直径 平均相异度(平均距离) 算法描述: - 输入:包含n个对象的数据库,终止条件簇的数目k
层次聚类的分类 凝聚的层次聚类:自底向上;把每个对象都看成一个簇,自下而上,把相似的簇合并在一起直到合并成一个簇 分类的层次聚类:自顶向下;从包含所有点的簇开始,每一次分裂一个簇,直到仅剩下单点的簇 簇之间的凝聚性 单链: 定义:两个簇的邻近度为两个簇中的任意两个点之间的最短距离 计算公式:dist({m1,m2},{m3,m4})=min(dist{m1,m3},dist{m1,m4},dist
D1. Mocha and Diana (Easy Version) 题目链接 题目大意 给你两个森林,让你对每个森林加相同的边,问你最多可以加多少条边 思路 怎么才能加边呢,这两个顶点没有连通才能加入,否则不能加入,那么根据树的定义可知连通意味着这两个点有相同的根且唯一,那么并查集再合适不过,然后暴力枚举 n ∗ n n*n n∗n种结点组成情况,根据根或者说是否在同一个集合中判断能否加入 通
1.AGNES算法 注意事项 1、参考网址 https://blog.csdn.net/I_am_Tony_Stark/article/details/121282253 2、文件下载地址 链接:百度网盘 请输入提取码 提取码:ygtl 3、cluster_500-10_7 这个文件,如果放在桌面 需要更改代码第8行的路径, 具体操作为: (1)右键放在桌面的这个文件,,点击属性 (2)复制位置
问题内容: 是否有一个提供发布/订阅模式的Java轻量级框架? 一些理想的功能 支持泛型 向发布者注册多个订阅者 API主要是接口和一些有用的实现 完全不需要内存,持久性和事务保证。 我了解JMS,但这对我来说太过分了。发布/订阅的数据是文件系统扫描的结果,扫描结果被馈送到另一个组件进行处理,然后在将其馈给另一个组件之前进行处理,依此类推。 编辑:所有在同一过程中。bean的PropertyCha
本文向大家介绍基于C#实现的轻量级多线程队列图文详解,包括了基于C#实现的轻量级多线程队列图文详解的使用技巧和注意事项,需要的朋友参考一下 前言 工作中我们经常会遇到一些一些功能需要实现造作日志,数据修改日志,对于这种业务需求如果我们以同步的方式实现,难免会影响到系统的性能。如下我列出集中解决方案。 使用Thread异步处理。 使用线程池或Task异步处理。 以上两种方案确实能解决我们此场景的需求
本文向大家介绍基于zepto的移动端轻量级日期插件--date_picker,包括了基于zepto的移动端轻量级日期插件--date_picker的使用技巧和注意事项,需要的朋友参考一下 前言 做过移动Web开发的同学都知道,移动端日期选择是很常见的需求。在PC端,我们有很丰富的选择,比较出名的就有Mobiscroll和jQuery UI Datepicker。个人看来,这些插件存在的两个显而易见
本文向大家介绍轻量级javascript 框架Backbone使用指南,包括了轻量级javascript 框架Backbone使用指南的使用技巧和注意事项,需要的朋友参考一下 Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用。 借助Backbone 我们可以使用REST的方式来最小化客户端和服务器间的数据传输,
本文向大家介绍前端轻量级MVC框架CanJS详解,包括了前端轻量级MVC框架CanJS详解的使用技巧和注意事项,需要的朋友参考一下 选择正确的库 创建一个JS APP没有好的工具是很有难度的,jQuery只是操作DOM的库,没有提供任何创建APP的基础,这就是为什么我们要一个类似CanJS的专门的库。 CanJS 是一个轻量级的MVC库,提供你创建一个JS APP所需的工具。 CanJS 是一个轻
本文向大家介绍详解基于 Node.js 的轻量级云函数功能实现,包括了详解基于 Node.js 的轻量级云函数功能实现的使用技巧和注意事项,需要的朋友参考一下 导语 在万物皆可云的时代,你的应用甚至不需要服务器。云函数功能在各大云服务中均有提供,那么,如何用“无所不能”的 node.js 实现呢? 一、什么是云函数? 云函数是诞生于云服务的一个新名词,顾名思义,云函数就是在云端(即服务端)执行的函