通过实例学习Fireasy开发(上篇)

Fireasy一直在发布新版本,但是怎么用,到底好不好用,估计大家都有这样的疑惑。所以,今天花点时间通过一个简单的示例一步一步来介绍fireasy的用法。

首先有必要介绍一下Fireasy的组件构成:

Fireasy.Common 公共组件库,主要包含缓存管理、日志管理、序列化、动态编译、扩展方法等。

Fireasy.Data 数据库组件库,提供数据库的操作,语法、批量插入、数据库构架等。

Fireasy.Data.Entity 实体组件库,ORMapper、LINQ解析、数据上下文、树实体持久化等。

Fireasy.Web Web组件库,Http服务、HTML扩展等。

使用Fireasy提供的这些组件,我们可以快速的进行asp.net的开发。

好,我们开始吧。

      一、建立web应用程序,安装Fireasy包

新建一个ASP.NET空Web应用程序,还要再添加一个类库,作为数据层,并使WebApplication1项目引用WebApplication1.Data项目。

右键点击WebApplication1项目,选择管理Nuget程序包。在联机中搜索Fireasy,然后点击安装。

在WebApplication1中引入所需要的js和css文件,js包括jquery、easyui和lhgdialog等等。

在WebApplication1.Data项目从packages位置引入Fireasy.Common、Fireasy.Data和Fireasy.Data.Entity三个组件。

      二、设计数据库并生成实体模型

用PowerDesigner设计两个表,并用navicat工具生成一个sqlite库,路径存放在WebApplication1的Data目录下,将这两个表创建到库里。

打开CodeBuilder,直接打开pdm文件,使用模板生成代码,将Model文件夹中的类文件及DbContext文件拷贝到WebApplication1.Data项目下,将Page文件夹中的文件拷贝到WebApplication1项目下。

由于没有发布Fireasy.Portal组件,所以需要把Fireasy.Portal.Web.Common的引用删除掉,并且生成的代码中缺少EasyUIHelper类,这个类是用作easyUI辅助的,我们直接创建它(略过,请看示例代码)。

      三、应用程序配置

为了避免web.config内容太多造成的混乱,我们专门为fireasy使用独立的配置文件。新建一个portal.config配置文件,并且在web.config的appSettings节中使用my-config-file来指定自定义配置文件。

现在具体的介绍一下fireasy配置的内容:

1  dataInstances 数据库实例

可以配置多个instance,然后通过指定default属性来切换不同的实例。providerType表示提供者的类型,可以选择MsSql(或SqlServer)、SQLite、MySQL、Oracle、OleDb,后面的connectionString就不用多说了,|datadirectory|为当前域的路径。

2  bundles 资源打包

对js和css资源进行分组,这样的好处是按需引入,所以要进行合理的分组。

      四、还需要进行的准备

由于没有引入Fireasy.Portal组件,这里还需要创建一个BundleHelper类,它的作用是读取上面的配置并打包,以及在页面上呈现资源。BundleHelper类里用到了System.Web.Optimization组件,直接在nuget管理器里搜索Microsoft.AspNet.Web.Optimization并安装(不知道为什么依赖那么多)。

添加global.asax,在Application_Start中加入:

        protected void Application_Start(object sender, EventArgs e)
        {
            //资源打包配置
            BundleHelper.Config();

            //默认是使用MEF导出服务的,改成使用aspx对应的类文件作为服务
            HttpConfiguration.Default.ServiceFactory = new AspPageServiceFactory();

            //配置http服务的路由,依子目录的级数而定
            HttpConfiguration.MapHttpRoute("{service}.ajx/{action}");
            HttpConfiguration.MapHttpRoute("{p1}/{service}.ajx/{action}");
            HttpConfiguration.MapHttpRoute("{p1}/{p2}/{service}.ajx/{action}");
            HttpConfiguration.MapHttpRoute("{p1}/{p2}/{p3}/{service}.ajx/{action}");
        }

这里配置了http服务的路由路径,在生成的aspx页面中,可以看到都是使用类似的ajax请求。

另外,还需要把System.Data.SQLite组件拷贝到bin下,或是通过nuget安装。

好了,前期准备工作至此完成,点击DeptList.aspx右键选择在浏览器中浏览,看页面是否出来了,再把url改成DeptList.ajx/GetDepts,看到不能返回json数据(现在还是空数据呢),再看一下WebApplication1目录下有没有log\error日志文件夹,没有的话说明数据库也连接成功了。

非常抱歉,太晚了,不得不先说到这里了,明天的下篇将通过页面来介绍具体的业务功能开发。

时间: 2024-12-25 16:18:09

通过实例学习Fireasy开发(上篇)的相关文章

通过实例学习Fireasy开发(补充)

      本文目录 通过实例学习Fireasy开发(上篇) 通过实例学习Fireasy开发(中篇) 通过实例学习Fireasy开发(下篇)       通过实例学习Fireasy开发(补充) 前面的功能已经开发完成了,但是这里专门用一章来进行补充.       一.EasyUI验证 不知道你有没有发现,我们虽然在EmployeeMetada里加了验证特性RequiredAttribute.StringLengthAttribute,但是页面并没有在data-options里生成validTyp

通过实例学习Fireasy开发(下篇)

      本文目录 通过实例学习Fireasy开发(上篇) 通过实例学习Fireasy开发(中篇)       通过实例学习Fireasy开发(下篇) 通过实例学习Fireasy开发(补充)       一.员工列表页面 EmployeeList.aspx页面的需求是这样的,左边是部门树,右边是员工列表,点击部门节点后右边显示该部门下面的员工,同时提供岗位.生日期间查询. 对table:#dg处进行改造,加下一个treegrid列表: <div data-options="region:

通过实例学习Fireasy开发(中篇)

      本文目录 通过实例学习Fireasy开发(上篇) 通过实例学习Fireasy开发(下篇) 通过实例学习Fireasy开发(补充) 上篇我们介绍了进行Fireasy开发的前期准备,接下来,我们将通过两个小功能来演示怎么进行业务开发.       一.部门列表页面 部门是树型结构,Fireasy采用了00010001这样的编码来支持树结构实体的快速开发. 1. 修改Dept类(使用Dept_Ex分部类文件),在类名称上添加EntityTreeMappingAttribute特性,Inne

彩票历史记录分析工具 -- 通过实例学习wpf开发

前言 虽然本人对彩票不感兴趣,仍然有不少人对此情有独钟.他们花大量时间精力去分析彩票的历史记录,企图发现规律,为下一次投注做指导,希望“赢的“”概率增大.不管研究历史记录是否有意义,我用软件实现了对彩票的分析,手工分析彩票几天工作量,现在一秒可以实现. 执行程序,点我下载! 程序界面 处理原理分析: 程序实际上是对六合彩分析(彩票种类很多,本文只处理一种).数据格式如下: 2010001 11 13 22 16 21 182010002 22 28 16 5 14 262010003 5 14

Hadoop MapReduce开发最佳实践(上篇)

body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;}

【COCOS2DX-游戏开发之三六】圆与未旋转矩形的碰撞检测(上篇)

我们以cocos2dx lua脚本来说明,原理才是重点 检测圆和矩形碰撞,首先要找到矩形上离圆的中心点最近的点 if circle.x < box.x then cx = box.x end 如果圆在矩形的左边,离着圆中心点最近的矩形上的点在矩形的左边边界上 elseif circle.x > box.x + box.width then cx = box.x + box.width 如果圆的中心点在矩形的右边,离着圆中心点最近的矩形上的点在矩形的右边边界上 else cx = circle.

[ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇]

微软在千禧年推出 .NET战略,并在两年后推出第一个版本的.NET Framework和IDE(Visual Studio.NET 2002,后来改名为Visual Studio),如果你是一个资深的.NET程序员,相信传统的.NET应用的开发方式已经深深地烙印在你的脑子里面..NET Core带来了全新的开发体验,但开发方式的差异根本不足以成为你快速跨入.NET Core 世界的门槛,因为在.NET Core在很多方面比传统的.NET Framework应用开发要简单.为了消除很多尚未接触过.

《招一个靠谱的移动开发》iOS面试题及详解(上篇)

多线程.特别是NSOperation 和 GCD 的内部原理. 运行时机制的原理和运用场景. SDWebImage的原理.实现机制.如何解决TableView卡的问题. block和代理的,通知的区别.block的用法需要注意些什么. strong,weak,retain,assign,copy nomatic 等的区别. 设计模式,mvc,单利,工厂,代理等的应用场景. 单利的写法.在单利中创建数组应该注意些什么. NSString 的时候用copy和strong的区别. 响应值链. NSTi

iOS多线程开发之离不开的GCD(上篇)

一.GCD基本概念 GCD 全称Grand Central Dispatch(大中枢队列调度),是一套低层API,提供了?种新的方法来进?并发程序编写.从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务,然后提交??作队列来并发的或者串?的执行.GCD是C实现,?NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分 并发任务会像NSOperationQueue那样基于系统负载来合适地并发进?,而串?行队列同一时间只执行单一