现有项目都是基于.Net3.5的后台以前項目全部使用的Nhibernate。Extjs前台 主要和后台ashx文件交互
会反射一次读取该类含有[Ajax]属性的方法信息保存到一个Map里面,根据页面请求的参数来执行不同嘚方法
//实现方法路由功能,ashx基类
//这里返回true所以需要对登录用户的相关变量进行同步处理
//初始化的时候进行反射,将方法名 方法信息保存到一个map里面
//页面调用的时候,前台直接给出参数 /url?f=methodName 来调用相关方法
//为了快速开放如果调试状态下,前台将直接弹出 错误对话框
//这里其實就是一个模版模式了直接查找 参数 f来
//或者基本对象,来调用函数为了提高性能,所以只在类初始化的时候 反射一次
//方法属性信息含有该属性的方法均可为前台调用
//实现用户信相关变量的同步,前面IReuseable是true的所以相关信息全部保存到该类里面
//来实现同步功能,Nhibernate的 ISession是非线程安全的所以也与该类进行绑定
/// 判断是否只有否一用户登录的权限
这样一个简单高效的MVC框架就完成了,没有复杂的配置一切追求简单高效。
下面是项目中基于该框架的调用示例查询列表显示使用通用存储过程来实现效率最高。保存 修改则使用Nhibernate 简单明了这里的参数只囿int 和String,前台使用Ext.encode 后台会自动将其转换器为JObject JArray第一个方法是最常见的分页查询,第二个是业务处理方法
这样就节省了大量的重复繁杂的权限验证,参数传递关闭数据库连接等容易遗漏出错的重复相关代码。
文中的代码只是为了阐述大概思路所以相关类没有全部给出。
如囿不对的地方欢迎指正。