信息系统是数据密集型的,数据的套帐,备份,还原是客户最希望有的功能,这一节课就讨论下C/S系统下数据库的异步备份和还原,B/S系统的数据备份和还原和这个类似。 既然是异步,首先会想到使用多线程技术。.NET平台提供了一整套的线程处理技术,使用线程的好处是,可以让一个线程做一件事情,多个线程之间根据时间片机制抢夺CPU和I/O资源,UI线程用于绘制界面,保证界面永远对客户的响应,而工作线程用于计算工作。 除了从头开发线程外,.NET也提供了一个封装好的线程组件BackgroundWorker,该组件让您能够在应用程序的主要 UI 线程以外的其他线程上异步(“在后台”)执行耗时的操作。比如耗时耗资源的常用操作如下: • 图像下载 • Web 服务调用 • 文件下载和上载(包括点对点应用程序) • 复杂的本地计算 • 数据库事务 •
验证数据完整性,我们常用哈希算法。关于哈希算法,无论是MD5还是SHA1,最终生成的哈希值理论上都是不可逆的,主要用于保证数据的完整性,这和对称和非对称加密不同,后者是可逆的,主要是为了防窃取。由于很多网站使用MD5加密某些数据,比如密码、权限等,引起很多黑客想方设法的穷举破解MD5值,但多半都是白费力气,运气好的时候就撞上了,但是这个运气不是每个人都有的。一个安全的哈希算法在设计时必须满足两个要求:其一是寻找两个输入得到相同的输出值在计算上是不可行的,这就是我们通常听说的抗碰撞;其二是找一个输出,能得到给定的输入在计算上是不可行的,即不可从结果推导出它的初始状态。据说王小云教授当年就是采用碰撞破解了MD5一部分,也证明了MD5不是完美的,但至今MD5是没有被破解的。
昨天和IBM以前培训的一个学员聊天,他问我.NET Framework提供四舍五入的方法了吗?我当时解释了老半天,索性就直接写一篇博文吧,以后学生问起,直接发文章看。 提到四舍五入,处在我们这个年龄层的人应该都很清楚,因为我们当时的小学教育灌输的就是四舍五入。但是如果提到银行家舍入,也许很多朋友会一下子愣住。银行家舍入,英文名为Banker's round,它实现的舍入效果是“四舍六入五取偶”。银行家舍入是IEEE规定的小数舍入标准之一,也是IEEE目前规定中最优秀的舍入方法,因此所有符合 IEEE 标准的语言都应该实现这种算法,.NET平台也不例外。 本节涉及的内容如下: 一,银行家舍入和四舍五入比较 二,.NET平台中的银行家舍入和四舍五入 三,自己动手开发四舍五入组件
昨天和IBM以前培训的一个学员聊天,他问我.NET Framework提供四舍五入的方法了吗?我当时解释了老半天,索性就直接写一篇博文吧,以后学生问起,直接发文章看。 提到四舍五入,处在我们这个年龄层的人应该都很清楚,因为我们当时的小学教育灌输的就是四舍五入。但是如果提到银行家舍入,也许很多朋友会一下子愣住。银行家舍入,英文名为Banker's round,它实现的舍入效果是“四舍六入五取偶”。银行家舍入是IEEE规定的小数舍入标准之一,也是IEEE目前规定中最优秀的舍入方法,因此所有符合 IEEE 标准的语言都应该实现这种算法,.NET平台也不例外。 这两节涉及的内容如下: 一,银行家舍入和四舍五入比较 二,.NET平台中的银行家舍入和四舍五入 三,自己动手开发四舍五入组件
这一节继续来谈.NET中的数据绑定表达式。本节涉及的内容如下:一,数据绑定方法的来源以及在低层上的实现。二,数据绑定方法的执行效率排序。 <%#Container.DataItem%><%#GetDataItem()%><%#Eval("字段名")%><%#DataBinder.Eval(Container.DataItem,"字段名")%><
作为.NET平台软件开发者,我们频繁与各种各样的数据交互,这些数据常常来源于文本、自定义类型、XML、数据库等,访问这些数据有很多方法,而数据绑定表达式便是其中最常用也是最实用的方法之一。我用2篇博文,尽量说透.NET平台数据绑定表达的来源,使用方法,底层原理,效率等。另外这2篇博文我最初发表于博客园。 一,概要 数据绑定表达式必须包含在<%#和%>
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号