Diana

基于 C# 的轻量级开发框架
授权协议 MIT
开发语言 C#
所属分类 Web应用开发、 JavaScript MVC 框架
软件类型 开源软件
地区 国产
投 递 者 毛缪文
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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 实现呢? 一、什么是云函数? 云函数是诞生于云服务的一个新名词,顾名思义,云函数就是在云端(即服务端)执行的函