Maticsoft.Framework for Asp.Net框架应用实例(一)
2015-07-26 13:44
639 查看
Maticsoft.Framework,短小精悍,超级实用,用于解决操作数据库,解决程序重复劳动,具有高度灵活扩展性。
使用它后甚至可以抛弃代码生成工具(它只解决数据新增,删除,
修改,分页一旦数据库字段发生改变所有方法都得重新生成!!那是一件多么麻烦的事!!而此框架正可以解决此问题)
本人.NET开发8年,多年参于国家部委项目开发,积累了很多实战经验,此开发框架经过多年项目实战已经具备实用价值,且非常适合中小型企业网站系统使用。
系统极为精简,容易上手,可以极大的减轻开发人员工作量!!
通常开发人员人修改数据库字段后,得调整数据层(或用代码工具重新生成),极为繁索,而此框架可以避免这种工作,而只需要“重构”Model相关属性即可。
如CRUD操作,获取实体列表,分页等都封装,且支持ODBC,也就是说可以支持很多数据库类型,对于高手而言可以经实现扩展。
系统中包含简单事件处理程序,及担供一套供跨平台应用,及javascript调用方法等
框架使用方法:
1、新建空解决方案,并新增Model,IDAL,DAL,BLL类型为类库
2、在DAL和BLL引用Maticsoft.Framework.dll
DAL中引用IDAL,BLL引用IDAL和DAL
3、复制下载的包Maticsoft.Framework.zip中相关目录中
BaseManager.cs复制到BLL中
BaseDao.cs复制到DAL中
IBaseDao.cs复制到IDAL中
PrimaryKey.cs复制到Model中
4、新增Model,T_Subject.cs文件,和数据库对应
5、新增T_SubjectDao.cs在DAL中,并修改类头一行为,使类继承自BaseDao,这样T_SubjectDao就包含了所有操作数据库的行为方法
如Add,Update,GetDataList,GetTModel方法等,如果这些方法还不够用,就需要在这个类中增加数据层方法,如下
6、创建业务层T_SubjectManager.cs存于BLL中
到此为止t_subject表的方法都实现完成,下面可以操作数据库了
多业务对象事务支持(多个实体表):
分页支持,此方法支持多表关联查询,可以将表名设为【 t_suject t left join t_user u on t.userid=u.u_id 】:List<t_subject> listSubject = GetModelList("t_subject","*", "条件","oder by ques_type asc", 1,100);DataSet ds = GetDataList("t_subject","*", "条件","oder by
ques_type asc", 1,100);另外,我们还提供一套,文件上传存模式,(待开源中):
//保存数据,并根据tmpDir和数据行信息保存文件
以及下载文件等都有一套专门管理方式,可随着实体对象Model一同保存到数据库中,文件和条目数据不需要再分开管理非常便捷。
此方式成功应用于档案和文档管理系统中。
有多个网站,A,B,D三个网站实现的是一个独立功能,但是用户是一站式登录的,并且图片等用户自定义上传数据是共享的。
那么如何实现呢?每个系统上传的文件应该存于某一个特定的目录,这个目录是被三个系统所共享的。利用框架Maticsoft.Framework.VirtualFileProvider就可以轻松实现!!
大家都知道Asp.net WebForm开发方式是非常好的面向对象开发模式,WebControls开发复杂门槛比较高(代码容易保护,可以编译成DLL),
UserControls则非常好用且开发成本低,但是代码不容易保护,也就是用户控件不可以随程序集一同发布。现在告诉大家一个好消息,
使用Maticsoft.Framework可以实现对UserControls封装,可以很好的保护代码,使用方法如下:
aspx页面引用
方法1:会报语法错误,但可以正确运行
示例数据库脚本:
****************************************************************************************
框架免费使用,有任何问题,请加qq群:26055929探讨!
如果你想学习框架和扩展框架,或想了解实现方法,想要【源码】的欢迎和我联系!!
邮箱:paaple@foxmail.com
作者:paaple 2015-07-26 @杭州滨江
源码下载:Maticsoft.Framework开发框架下载
****************************************************************************************
使用它后甚至可以抛弃代码生成工具(它只解决数据新增,删除,
修改,分页一旦数据库字段发生改变所有方法都得重新生成!!那是一件多么麻烦的事!!而此框架正可以解决此问题)
本人.NET开发8年,多年参于国家部委项目开发,积累了很多实战经验,此开发框架经过多年项目实战已经具备实用价值,且非常适合中小型企业网站系统使用。
系统极为精简,容易上手,可以极大的减轻开发人员工作量!!
通常开发人员人修改数据库字段后,得调整数据层(或用代码工具重新生成),极为繁索,而此框架可以避免这种工作,而只需要“重构”Model相关属性即可。
如CRUD操作,获取实体列表,分页等都封装,且支持ODBC,也就是说可以支持很多数据库类型,对于高手而言可以经实现扩展。
系统中包含简单事件处理程序,及担供一套供跨平台应用,及javascript调用方法等
框架使用方法:
1、新建空解决方案,并新增Model,IDAL,DAL,BLL类型为类库
2、在DAL和BLL引用Maticsoft.Framework.dll
DAL中引用IDAL,BLL引用IDAL和DAL
3、复制下载的包Maticsoft.Framework.zip中相关目录中
BaseManager.cs复制到BLL中
BaseDao.cs复制到DAL中
IBaseDao.cs复制到IDAL中
PrimaryKey.cs复制到Model中
4、新增Model,T_Subject.cs文件,和数据库对应
5、新增T_SubjectDao.cs在DAL中,并修改类头一行为,使类继承自BaseDao,这样T_SubjectDao就包含了所有操作数据库的行为方法
如Add,Update,GetDataList,GetTModel方法等,如果这些方法还不够用,就需要在这个类中增加数据层方法,如下
public partial class T_SubjectDao : BaseDao<T_Subject> { public T_SubjectDao(){} public List<T_Subject> GetSubjectListByQuesType(int ques_type){ return this.GetModelList("","","略。。。",""); } }
6、创建业务层T_SubjectManager.cs存于BLL中
public partial class T_SubjectManager : BaseManager<T_Subject> { private readonly DAL.T_SubjectDao dal = new DAL.T_SubjectDao(); public override IDbTransaction Transaction { get { return base.Transaction; } set { //如果该表需要操作多个表,即多个DAL,则只需要在这里加上 //this.用户表Dal.Transaction = value;这样这里的事务对象就支持多表操作了 this.dal.Transaction = value; base.Transaction = value; } } public T_SubjectManager() { } 略........ }
到此为止t_subject表的方法都实现完成,下面可以操作数据库了
//添加记录 protected void Button2_Click(object sender, EventArgs e) { T_SubjectManager subjectManager = new T_SubjectManager(); int ret = subjectManager.Add(new Model.T_Subject() { subject = "测试题目", userid = "test" }); //ret为返回的自增id } //修改记录 protected void Button3_Click(object sender, EventArgs e) { T_SubjectManager subjectManager = new T_SubjectManager(); //系统只修改subject字段,其它字段则不修改 subjectManager.Update(new Model.T_Subject() { subject = "测试题目,修改" }, string.Format("id=1")); } //删除记录 protected void Button4_Click(object sender, EventArgs e) { T_SubjectManager subjectManager = new T_SubjectManager(); //系统只修改subject字段,其它字段则不修改 subjectManager.DeleteRecord(string.Format("id=1")); }
多业务对象事务支持(多个实体表):
public void TestTransaction() { IDbTransaction stran = this.dal.BeginTransaction(); try { this.Transaction = stran; for (int i = 0; i < 3000000; i++) { var subject = new T_Subject { answer = "A" + i.ToString(), book_class_id = "", c_b_type = 0, ques_level = 7, ques_type = 1, subject = string.Format("【{0}】测试数据【{0}】", i), userid = "test", zscore = 5 }; this.dal.Add(subject); } this.dal.Commit(); } catch (Exception) { this.dal.Rollback(); throw; } finally { this.Transaction = null; } }
分页支持,此方法支持多表关联查询,可以将表名设为【 t_suject t left join t_user u on t.userid=u.u_id 】:List<t_subject> listSubject = GetModelList("t_subject","*", "条件","oder by ques_type asc", 1,100);DataSet ds = GetDataList("t_subject","*", "条件","oder by
ques_type asc", 1,100);另外,我们还提供一套,文件上传存模式,(待开源中):
if (Directory.Exists(tmpDir)) { string path1 = string.Empty; string path2 = string.Empty; wcf.GetFilePath(this.BodyPath, adr, ref path1, ref path2); ArrayFileInfo file = null; if (file == null) { file = new ArrayFileInfo(); } file.SetBody(false, path1, path2, adr.Row); foreach (ListItem item in this.fileList.Items) { string itemFile = Path.Combine(tmpDir, item.Text); if (File.Exists(itemFile)) file.AddFile(itemFile); else file.AddFile(file.BodySubPath + item.Text, EditType.Normal); } if (file.FileList.Exists(w => { return w.fType != eType.None; })) { adr.Row.Add("product_image", file); } }
//保存数据,并根据tmpDir和数据行信息保存文件
wcf.FileSave(this.CurrentLevel, adr, this.eMode, out error, tmpDir);
以及下载文件等都有一套专门管理方式,可随着实体对象Model一同保存到数据库中,文件和条目数据不需要再分开管理非常便捷。
此方式成功应用于档案和文档管理系统中。
有多个网站,A,B,D三个网站实现的是一个独立功能,但是用户是一站式登录的,并且图片等用户自定义上传数据是共享的。
那么如何实现呢?每个系统上传的文件应该存于某一个特定的目录,这个目录是被三个系统所共享的。利用框架Maticsoft.Framework.VirtualFileProvider就可以轻松实现!!
大家都知道Asp.net WebForm开发方式是非常好的面向对象开发模式,WebControls开发复杂门槛比较高(代码容易保护,可以编译成DLL),
UserControls则非常好用且开发成本低,但是代码不容易保护,也就是用户控件不可以随程序集一同发布。现在告诉大家一个好消息,
使用Maticsoft.Framework可以实现对UserControls封装,可以很好的保护代码,使用方法如下:
void Application_Start(object sender, EventArgs e) { //其中WebControls.dll中包含了用户开发的用户控件 ZipFileVirtualPathProvider prov = new ZipFileVirtualPathProvider(Server.MapPath("bin\\WebControls.dll")); HostingEnvironment.RegisterVirtualPathProvider(prov); }调用方法:
aspx页面引用
方法1:会报语法错误,但可以正确运行
<%@ Register TagPrefix="uc1" TagName="WebUserControl" Src="WebControls.Controls.WebUserControl1.ascx" %> <uc1:WebUserControl ID="WebUserControl1" runat="server"></uc1:WebUserControl>或者使用代码动态加载,没有语法错误,但需要手动编写代码,如下:
WebControls.Controls.WebUserControl1 control1 = this.LoadControl("WebControls.Controls.WebUserControl1.ascx") as WebControls.Controls.WebUserControl1; this.PlaceHolder1.Controls.Add(control1);
示例数据库脚本:
create table t_subject( id int自增, book_class_id int, c_b_type int, ques_type int, subject varchar(250), answer varchar(50) ques_level int zscore int, userid varchar(50) );
****************************************************************************************
框架免费使用,有任何问题,请加qq群:26055929探讨!
如果你想学习框架和扩展框架,或想了解实现方法,想要【源码】的欢迎和我联系!!
邮箱:paaple@foxmail.com
作者:paaple 2015-07-26 @杭州滨江
源码下载:Maticsoft.Framework开发框架下载
****************************************************************************************
相关文章推荐
- Asp.NET MVC3 使用 SignalR 实现推
- Metasploit测试暴雷漏洞 (编号CVE-2012-1889)
- 《ASP.NET》数据绑定—DataList实践篇
- 利用Metasploit测试一个古老的IE8漏洞(编号CVE-2012-1875)
- ASP、JSP、PHP 三种技术比较
- ASP、JSP、PHP 三种技术比较
- asp.net 弹出框信息
- asp.net重写服务器控件
- 《ASP.NET》数据绑定—DataList
- AspJson应用
- ASP.NETWeb Pages (Razor) 问题解决向导
- asp.net mvc Model验证总结及常用正则表达式
- 【回味无穷】ASP.NET验证控件
- 在ASP.NET MVC中,使用Bundle来打包压缩js和css
- asp.net页面viewstate
- ASP.NET中Session的sessionState 4种mode模式
- ASP.NET 5 Beta5 对TagHelper带来的变化
- 树莓派初体验之虚机Qemu+Raspbian
- ASP.NET MVC中如何实现页面跳转
- ASP.Net MVC 生成安全验证码(例:用于登陆验证)