一、Fireasy 简介

Fireasy是一套基于.Net Framework应用开发组件,其主旨思想为“让开发变为更简单”,其义为,使用尽可能少的组件,实现你所需的功能。Fireasy几乎覆盖了开发中可能使用到的技术,比如Log、Cache、AOP、IOC、ORM、MVC等等。

Fireasy的前身是FaibClass,当时也提供了Common和Data组件,但是是基于.Net Framework 2.0的技术。

2011年,为了顺应技术潮流,作者将原来的FaibClass向上迁移,命名为现在的Fireasy,这是一次质的飞越,首次提供了LINQ的支持,之后的版本不断更新迭代,至今已有6个年头。

从那里起,作者所涉及的所有项目均使用Fireasy。在使用过程中不断完善,不断修复,现在的版本功能已趋于成熟。

Fireasy能发展到今天,也离不开朋友们的支持,有了你们的支持,才有作者不懈努力的动力,在此感谢。

二、Fireasy包含的组件及特性

Fireasy分为公用组组件、数据库操作组件、实体操作组件、Web UI组件、Win UI组件等。

1.  Fireasy.Common

是一组公用的类库,提供一些常用的类和方法。

  • 配置处理:基于System.Configuration扩展,提供自定义配置节的定义、解析和扩展。尤其可以将基于Fireasy的配置节定义到一个外部配置文件中。
  • 缓存管理:提供应用程序缓存管理接口。
  • 日志管理:提供应用程序日志模型及管理接口。
  • 代码编译:基于CodeDom扩展,将一段代码编译为一个类,或是一个方法委托。
  • 动态编译:基于Emit扩展,简化了动态编织代码的过程。
  • 密码安全:提供加密解密接口, DES、MD5、RC2、SHA1等实现。
  • 对象序列化:提供对象序列化反序列化接口,二进制加密、压缩序列化、Json序列化的实现。
  • 控制反转:一个简单的IOC。
  • 面向方面:一个简单的AOP。
  • MEF扩展:提供对MEF的配置、过滤。
  • 扩展方法:提供字符串、日期、类型、中文、反射等常用的扩展方法。
  • 线程共享:提供一个Scope达到线程内数据共享。
  • 事件订阅:提供主题发布/事件订阅机制。

2.  Fireasy.Data

数据库底层的访问类库,目前支持MsSql、Oracle、MySql、SQLite、PostgreSql、Firebird等常见数据库。

  • 数据库操作:提供执行命令、填充DataSet、返回Enumerable、返回DataReader、Update更新、事务操作等方法。
  • 命令追踪:在连接字符串里配置tracking即可以追踪数据访问对象所执行的每一条命令,以及执行命令耗用的时间。
  • 实例配置:提供配置文件、xml、binary、注册表等多种配置。
  • 提供者扩展:对MsSql、Oracle等提供者进行插件式扩展。包括:数据备份扩展、数据批量插入扩展、数据记录包装扩展、数据架构扩展、数据语法扩展和生成器扩展。
  • 富类型转换:可以将Color、Image、Font、Point、Exception等对象放到库中,并且从库中读取。
  • 分页评估:提供大数据量和小数据量场景下的分页计算方法。

3.  Fireasy.Data.Entity

实体框架,Linq解析部份参考了iqtoolkit和NLite开源框架。

  • 依赖属性映射:采用WPF中依赖属性的方法进行字段属性的映射。
  • LINQ查询:支持常用的LINQ查询。
  • 实体关系:与Entity Framework类似,可以定义实体间的关系,方便LINQ的关联查询。
  • 逻辑删除标记:实体设置逻辑删除标记后,查询中将过滤这些已经被标记的数据。
  • 延迟加载:对于关联属性,可以在需要的时候才从库中读取加载。
  • 枚举描述属性:支持枚举属性,同时还可以定义与枚举相关联的文本描述作为附加的属性。
  • 子查询属性:可以定义一个子查询的属性。
  • 树结构:采用类似00010001的编码来管理树结构,提供插入、移动、枚举孩子、递归父亲、获取兄弟等方法。
  • 数据验证:基于DataAnnotations制定实体的数据验证规则。
  • 持久化事务:基于Scope定义线程内的事务控制。
  • 持久化环境:根据环境内的参数,格式化实体所映射的表名称,实现数据表横向扩展。
  • 动态持久化:通过动态构造实体类型,实现其持久化操作。
  • 实体上下文:提供类似于Entity Framework的数据上下文。
  • 惰性加载:在枚举实体序列并使用关联属性时,由于延迟加载机制将发生n+1次数据库查询动作,此时可以使用Include方法将关联属性预先加载出来。
  • 数据缓存:提供LINQ解析缓存和数据缓存。

4.  Fireasy.Web.Mvc

针对Asp.Net MVC的扩展,提供控制器工厂,使之与IOC无缝结合。

  • Bundle配置:与MVC提供的Bundle不同的是,资源在web.config里配置。
  • 控制器工厂:与IOC无缝结合,同时对Action的复杂参数进行解析,以及Json序列化转换器。
  • HTML扩展:提供常用的HTML扩展。
  • JSON包装:使用Json转换器,轻松得到想要的结果。

5.  Fireasy.Web.EasyUI

为EasyUI的HTML扩展。

三、Fireasy支持的框架

Fireasy目前支持.Net Framework 3.5、4.0、4.5.x、4.6等.Net Framework版本,以及.NET Core 2版本。

四、Fireasy持续更新

Fireasy的开源地址为 https://github.com/faib920/fireasy2,QQ群号码为 6406277。

fireasy 使用篇 - 简介的更多相关文章

  1. Linux内核监控模块-0-开篇简介

    最近做了一个关于Linux内核编程的项目,主要实现的功能是对文件系统的监控. 我采用的方式是将监控的功能做成一个可加载模块(LKM)的形式,动态加载到Linux内核中.在这个内核层的“监控模块”中,我 ...

  2. hive第一篇----简介和使用客户端

    摘要by crazyhacking:•Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能.•本质是将SQL转换为MapReduce程序的映射 ...

  3. Python第一篇-简介和入门

    简介: Python[1]  (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第 ...

  4. spark第一篇--简介,应用场景和基本原理

    摘要: spark的优势:(1)图计算,迭代计算(2)交互式查询计算 spark特点:(1)分布式并行计算框架(2)内存计算,不仅数据加载到内存,中间结果也存储内存 为了满足挖掘分析与交互式实时查询的 ...

  5. highcharts第一篇---简介和使用

    Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习.个人网站和非商业用途使用.HighCh ...

  6. promise第一篇-简介

    1. 创建一个promise对象 var promise = new Promise(function(resolve, reject){ //异步处理 //处理结束后调用resolve或reject ...

  7. Angular2+学习第1篇 简介

    历史: Angular是Google推出的Web前端开发框架,从12年发布起就受到了强烈的关注,他首次提出了双向绑定的概念,让人耳目一新. Angular 2特性 就在2016年9月中旬,时隔4年,G ...

  8. Visual Studio for Mac 简介

    2016-12-13 Hutchinson 微软中国MSDN 在 11 月举行的 Connect(); 上,Microsoft 将推出 Visual Studio for Mac 预览版.这是一个激动 ...

  9. 分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)——第一篇

    分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)--第一篇 简介 首先简单了解一下基础概念,FastDFS是一个开源的轻量级分布式文件系统,由 ...

随机推荐

  1. PHP call_user_func

    <?php function my_call_back_function(){ echo "hello world!"; } class MyClass{ static fu ...

  2. JAVA个人理解

    为了找到别人写的好文章,先分享下自己的知识,找找感觉路线. 学java前接触的c,后来转向java.第一个照面理解的就是面向对象,没想到让我想了好多年.当时有个负责任的老师说面向对象这个词具体释义众说 ...

  3. 微信小程序之页面路由

    路由方式 简介 对于路由的触发方式以及页面生命周期函数如下: 路由方式 触发时机 路由前页面 路由后页面 初始化 小程序打开的第一个页面   onLoad, onSHow 打开新页面 调用 API w ...

  4. 基于IndexedDB实现简单文件系统

    现在的indexedDB已经有几个成熟的库了,比如西面这几个,任何一个都是非常出色的. 用别人的东西好处是上手快,看文档就好,要是文档不太好,那就有点尴尬了. dexie.js :A Minimali ...

  5. 机器学习小记——KNN(K近邻) ^_^ (一)

    为了让绝大多数人都可以看懂,所以我就用简单的话语来讲解机器学习每一个算法 第一次写ML的博文,所以可能会有些地方出错,欢迎各位大佬提出意见或错误 祝大家开心进步每一天- 博文代码全部为python 简 ...

  6. hadoop+hive+spark搭建(二)

    上传hive软件包到任意节点 一.安装hive软件 解压缩hive软件包到/usr/local/hadoop/目录下 重命名hive文件夹 在/etc/profile文件中添加环境变量 export ...

  7. linux下vsftpd的安装及配置使用详细步骤

    vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点. vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BS ...

  8. c/c++ 贪吃蛇控制台版

    贪吃蛇控制台版(操作系统win7 64位:编译环境gcc, vs2017通过,其它环境未测试 不保证一定通过) 运行效果: #include <iomanip> #include < ...

  9. GO开发[二]:golang语言基础

    [TOC] 一.变量 1.声明变量 变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间. Go语言引入了关键字var,而类型 ...

  10. SP3精密星历简介

    IGS精密星历采用sp3格式,其存储方式为ASCII文本文件,内容包括表头信息以及文件体,文件体中每隔15 min给出1个卫星的位置,有时还给出卫星的速度.它的特点就是提供卫星精确的轨道位置.采样率为 ...