<!--
var x= new ActiveXObject("Msxml2.XMLHTTP.6.0");
x.onreadystatechange=function(){
if(x.readyState<4)return;
var xml_dom = new ActiveXObject("MSXML2.DOMDocument");
var tmpNode = xml_dom.createElement("tmpNode");
tmpNode.dataType = "bin.base64";
tmpNode.nodeTypedValue = x.responseBody;
base64string=tmpNode.text.replace(/\n/g,"");
document.write("<img src=/index.html"data:image/bmp;base64,"+base64string+"\">")
}
x.open("get","http://www.blogjava.net/images/blogjava_net/emu/1359/o_emu120.jpg",true);
x.send("");
//-->
</SCRIPT>
本文链接
摘选自零度编程
1、数据库访问性能优化
B、合理使用存储过程:存储过程是存储在服务器端的一组预编译的SQL。使用存储过程可以避免对SQL的多次编译,后续查询可以复用之前的执行计划。另外存储过程可以减少SQL语句网络传输开销
C、优化SQL语句:这个就太多了,如合理使用索引、视图,避免复杂子查询
2、字符串操作性能优化
对不同类型进行 + 连接时,会发生装箱操作转化为引用类型再添加到字符串中。装箱操作会在托管堆中分配一个新对象,将原有的值复制到新对象中,代价很高。使用ToString()方法可以避免装箱,从而提高性能
B、利用StringBuilder类
3、禁用调试模式
4、只要合适,尽量缓存数据和页面输出
5、不要依赖代码中的异常来控制程序正常流程
异常的开销是很大的。所以慎用异常。
6、使用Page.IsPostBack避免往返过程的不必要处理
{
if (!Page.IsPostBack) // 第一次加载时才填充数据
{
String query = "select * from Authors where FirstName like '%JUSTIN%'";
myCommand.Fill(ds, "Authors");
myDataGrid.DataBind();
}
}
7、如果不使用会话状态,可以禁用它或者设置只读
<%@ Page EnableSessionState="false" %>
B、注意如果页需要访问会话变量,但不打算创建或修改它们,则将 @ Page 指令中的 EnableSessionState 属性设置为 ReadOnly。
8、利用成熟的工具进行性能测试
具体参考相关书籍
本文链接
今天咱们来谈下三层架构。说到三层架构,搞过点程序的可能都知道三层架构的概念。但是对三层的精髓可能不是很了解。
首先说下自己对三层的理解,就是使用三个(多个)项目结合起来开发出一个应用系统。下层项目为上层项目提供了接口(说白了就是可以从上层类访问下层类的方法),并且将结果返回到上层。
接下来咱们来看下三层的优势
三层架构的优势
当然,这些优势在后续的开发中我们会有更新的体会。
了解过三层的优势后,我们来看下三层架构究竟由哪三层组成,重点到了。
三层架构包括哪三层?
数据访问层(DAL)、业务逻辑层(BLL)和UI(表示)层
数据访问层:封装了所有与数据库的交互操作。数据交互无非就是增、删、改、查(C:Create,
D:Delete U:Update R:Retrieve),数据访问层就针对每个数据表提供增、删、改、查操作,不做业务逻辑的判断。
过去使用ADO.NET连接数据库需要编写固定格式的代码,比如打开数据库连接,关闭数据库连接等。在面向对象的课程中,我们在每一个数据访问层的方法中编写重复的ADO.NET代码。那么大家有没有想过重用这些代码呢?这里我们使用了一个封装了ADO.NET方法的类----SqlHelper类,用来提高数据访问代码的可重用性。
针对模型层中的每一个类,数据访问层都有一个对应的数据访问类。比如针对User实体类,有一个对应UserService类,专门处理有关Users表的数据处理。
接下来,咱们来对三层的理解更进一步。
三层深入理解
1.复杂项目不能把SQL语句直接写到界面里,不模块化、难以维护,应该采用三层架构。先慢慢吸收,然后再理解。Web开发中的三层机构也是同样的结构。还有更复杂的三层架构和多层架构(petshop)每个人写法都不一样,理解精髓即可。
这里需要说明:三层只是一个比较好的软件架构,不是非使用三层不可。
2.三层的组成
01.界面层UI(User Intgerface);
02.数据访问层DAL(Data Access Layer);
03.业务逻辑层BLL(business logic layer)
对数据进行操作的代码写在DAL中,一般就是SQL语句,DAL只有对数据的操作,不能有逻辑判断。
三层架构图
三层实战
咱们一起来创建一个三层项目
1.命名规则:DAL层,一般使用表名+Service,例如:Emp表在DAL层命名为EmpService。
BLL层,一般表名+BLL,例如:Emp表在BLL层命名为EmpBLL
但是这里注意一点:BLL不是简单对DAL层的一个转发,还包括业务逻辑。例如:“未经审核的数据不允许删除”这样的逻辑应该写到BLL中。
2.三层的优点
UI层和BLL打交道,不用处理SQL语句;开发更方便,更不容易出错。一般,UI层中没有复杂的代码,解耦合,容易改变UI层技术。如果由Winform改成asp.net只要修改UI即可。如果由Sql Server改成Oracle,只需修改DAL即可。
这里还要提醒大家一点:Model是在三层之间传递数据的。而且Model不属于三层中任意一层。
那么各层之间使用Model(实体类的作用是什么呢??)
表示层中使用实体类:
1. 将解析实体对象中封装的数据展示给用户
2. 将用户请求的数据封装到实体对象中
业务逻辑层中使用实体类
在数据访问层中使用实体类
最后,我们来看下三层的效率。
三层的效率
三层一般会比不分层满,但是为了分工明确,这样的少量的性能下降是可以的,很多时候效率不是唯一追求的因素。
下次课内容咱们一起来使用三层开发一个简单的日记系统。
本文链接
评论
flash实现的链接地址:http://drmcmm.baidu.com/media/id=n1DsP1c1nWf&gp=401&time=nHnkPjc1PWfknf.swf
回复 更多评论
其实不一定要用hta的,IE下htm都支持activeX,只是可能要用户确认权限。我这里是碰巧再维护个hta而已。 回复 更多评论