<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Update_history.aspx.cs" Inherits="Update_history" Title="无标题页" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Head" Runat="Server">
   <title>Winson.Framework 历史更新</title>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="Title" Runat="Server">
   <h2>历史更新</h2>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<h4><span class="new">Winson.Framework 3.3发布 [2009-09-27]：</span></h4>
<p>
<h5>一、功能更新：</h5>
<div class="list">
<ul>

<li>增加 <span class="comment"><b>order</b></span> 语句的使用</li>
<li>对所有数据类型均能输入空值，之前是为了动态更新字段，所以只要为空则不操作，现在只要做了赋值操作的字段，无论是否为空值，都可以更新到数据库里了</li>
<li>增加对 Oracle 的支持</li>
<li>完善对 <span class="comment"><b>like</b></span> 条件语句的支持, 可以使用左右Like的语法,如: 
<br />cond["name like left"]="winson";<br />
cond["name like right"]="winson";<br />
cond["name like all"]="winson";</li>
<li>增加对 or 条件的支持</li>
<li>添加实体后直接返回实体ID</li>
<li>添加实体事件中,可以直接获取整个新增的实体对象,并且可以传递自定义参数</li>
<li>增加了从实体集合中获取实体集合的方法</li>
<li>分页控件 SqlPager 增加了可自定义客户端分页函数</li>
<li>分页控件 SqlPager 增加了可自定义CSS显示的数码分页样式</li>
</ul>
</div>
<p></p>
<h5>二、BUG修复：</h5>
<div class="list">
<ul>

<li>修复了对smallint 和 tinyint 数据类型的支持</li>
<li>解决了分页控件 SqlPager 在 firefox 下的分页连接在失效时仍显示为黑色（正常应该灰色，表示无效）的问题，</li>
</ul>
</div>
<p></p>

<h4><span class="comment">Winson.Framework 3.2发布 [2009-04-6]：</span></h4>
<p>
<h5>一、功能更新：</h5>
<div class="list">
<ul>

<li>在生成代码时，可以选择是否使用自增ID的数据库</li>
<li>为conditionValue里添加了in条件的使用</li>
<li>增加事件管理，可为每个操作添加相应的事件，可查看更新数据这里的DEMO(<a href='Data_update.aspx'>点此进入</a>)</li>
<li>在分页根据获取条件记录数时增加缓存功能，如在同一查询条件下，会直接调用缓存里的数据</li>
<li>完善了XmlHelper类，可灵活地操作XML数据，同时也增加了一个基本用法的DEMO文件(XMLTest.aspx)</li>
<li>实体类获取时由原来返回 <span class="comment">IList</span> 改为 <span class="comment">List&lt;T&gt;</span> 的泛型集合，这样做目的是能更灵活地对实体集体进行操作，但不影响原有代码使用，即原来用 <span class="comment">IList</span> 获取的前台代码仍然不需改变。同时使用 <span class="comment">List&lt;T&gt;</span> 后也可以直接减少一个类文件 <span class="comment">EntityCollection</span></li>
<li>改善了通过实体主键在实体集合里查找的方法，直接使用 <span class="comment">List&lt;T&gt;.Find()</span> 方法进行查找，效率会更高</li>
<li>修改了 URLRewrite 类，将URL规则文件的路径可直接放到配置文件里进行修改</li>
<li>在 Utility 里增加了获取当前IP的方法</li>
</ul>
</div>
<p></p>
<h5>二、BUG修复：</h5>
<div class="list">
<ul>
<li>修复了数值类型不能为负数</li><li>生成实体类时没对类名进行首字大写转换，导致程序编译出错</li>
<li>修复了数字型字段如果更新时不赋值，将会自动更新为0</li>
<li>SqlPager控件在不使用母板页时会出现找不到页面的错误</li>
<li>生成实体操作类时，引用的命名空间不会根据项目名称改变</li>
<li>修复了对smallint 和 tinyint 数据类型的支持</li>
</ul>
</div>
<p></p>


</p>
<h4><span class="comment">Winson.Framework 3.1发布 [2009-01-14]：</span></h4>
<p>
<h5>主要更新：</h5>
<div class="list">
<ul>
<li>
这个版本主要是对跨数据库的支持更好了，之前其实并未能支持MYSQL的，而且有部分代码由于是使用SQL语句写死了，因此对跨数据库支持不好，现在已解决了此问题，将需要hard code的sql抽取了出来，使用抽象方法去为不同的数据库定义自己的语句，这样做会更灵活，支持更好！
</li>
<li>
现在已可真正支持<span class="comment">MYSQL</span>了，已经过测试的，同时也支持<span class="comment">MSSQL2005</span>，主要是增加了一个MYSQL的Provider，还有使用了<span class="comment">MySql.Data.dll</span>以完成对MYSQL的相关的操作，关于MySql.Data.dll可到 http://dev.mysql.com/downloads/connector/net/5.0.html　获取更多信息
</li>
<li>
代码生成文件也有改动，因此请重新生成所有实体操作类代码
</li>
</ul>
</div>

</p>
<p>
<h4><span class="comment">Winson.Framework 3.0发布 [2008-12-31]：</span></h4>
<p>
<h5>一、新特性：</h5>
<div class="list">
<ul>
<li>
此版可说是一个全新的框架，因为所有底层数据操作代码已重写，之前版本的数据底层操作是使用了别人的，因此有很多代码用不上，代码比较繁杂，现在的底层操作已改用Providers模型，达到更加灵活的运用，只需改变一下配置文件，即可随时支持<span class="comment">Access,MSSQL</span>等三种数据库，当然如需要支持其他数据库，则要另行添加代码了。因此底层代码也比以前精简了很多</li>
<li>附有完整的使用说明和DEMO，以网页形式发布，同时也方便以后的更新维护
</li>
</ul>
</div>


<h5>二、新功能：</h5>
<div class="list">
<ul>
<li>
使用Providers模型完成数据底层操作，同时也附上实体类操作代码生成模板</li>
<li>使用了GZip压缩技术使得JS和CSS文件体积大大减小，同时在压缩时不会影响AJAX的使用，因此已可完美结合jQuery使用</li>
<li>独立的日志记录系统，可以非常有效地捕获错误日志，生成XML文件的日志或者Windows的系统日志，同时也可以自定义生成事务日志， 将操作日志存放入指定的数据库。之所以使用XML形式，是方便以后对日志文件的操作，因此此功能生成的日志，也可以自行编程去处理。</li>
<li>实体操作类的使用更加方便，只需实例化一个实体操作类，即可同时完成实体的赋值、增、删、查、改等所有操作</li>
<li>添加了SessionHelper类，方便处理Session</li>
<li>添加了二进制文件读写功能，可直接对图片等二进制文件进行读取入库等</li>
<li>完美整合了jQuery的对话框控件，可使用C#语句方式去实例化和设置相关的参数，适合服务器端使用</li>
<li>使用jQuery插件完成高亮代码显示，感觉这种方式比使用原来的高亮代码控件(CodeHighlighter)更加好用与方便，而且也更节省服务器资源</li>
<li>在引用JS和CSS文件时，可一次性引用一个目录下的所有文件，不需要一个个文件名去输入，代码更简洁</li>
<li>添加了配置文件读取功能，可从WEB.Config中的appSettings中取add...的参数值</li>
<li>可支持同一个页面同时使用多个SqlPager控件进行AJAX分页</li>
<li>添加了TagCloud云标签控件</li>
</ul>
</div>

<h5>三、修改的BUG：</h5>
<div class="list">
<ul>
<li>实体操作已几乎可支持所有数据类型（之前不支持byte[]等数据类型），如果大家发现还有哪种类型不支持，欢迎向我反馈</li>
<li>使用了HttpCompress的页面压缩后，也可支持AJAX了</li>
<li>SqlPager控件已可支持母板页</li>
<li>解决了SqlPager的NumPager模式下页数验证问题</li>
</ul>
</div>

</p>
<h4><span class="comment">Winson.Framework 2.5发布 [2008-06-15]：</span></h4>
<p>
<h5>一、新功能:</h5>
<div class="list">
<ul>
<li>实体操作类全部使用了缓存技术,有效提高运行效率</li>
<li>将操作方法再进行了一次封装,使得在页面层调用时代码简洁了很多,也方便很多了</li>
<li>增加HttpCompress控件,可有效将页面(包括CSS/JS)文件进行压缩以提高下载速度,为了看到效果,请使用</li>
<li>Fixfox并安装上FireBug插件然后再浏览相关页面,这时你可明显看到压缩前后的对比</li>
<li>增加CookieHepler类,方便操作管理Cookie</li>
<li>增加IPScanner类,可非常方便查询出访问者的IP以及此IP的真实地址位置</li>
<li>在Utility里增加了专门的时间处理相关方法,能格式化出各种时间类型格式</li>
<li>在Utility里增加了MD5加密功能函数,同时也增加了直接获取网站虚拟目录的函数</li>
<li>增加了高亮代码控件及相关演示</li>
<li>增加了标签云控件及相关演示</li>
<li>SqpPager控件也升级到2.5版了,改进如下:</li>

<div class="detail">
<ul>
<li>现已去掉了缓存与非缓存的设置,直接默认全部使用了缓存,并且会自动判断查询条件有无更改,<br>
    如果2次查询的条件不同,则会重新获取数据,否则一直读取缓存中的数据</li>
<li>既然使用数字分页模式,也不需要另外去设置ShowCount的值,系统已会自动判断,去掉多余的显示<br>
    部分(之前必须设置ShowCount=2才可)</li>
	</ul>
</div>
<li>完善了类库帮助文档.</li></li>
</ul>
</div>

<h5>二、修复的BUG:</h5>
<div class="list">
<ul>
<li>SqlPager控件修复了不能显示最后一页数据</li>
<li>SqlPager控件修复了不能根据传入的查询条件去获取最新数据(此问题在旧版的非缓存状态同时是自定义数据源的情况下会出现)</li>
<li>SqlPager控件修复了在第一页时点上一页按钮仍然有效，但并没数据出来</li>
<li>修复了实体类操作时不能批量添加数据</li>
<li>修复了上传文件功能函数里否限制上传文件类型的问题</li>
</ul>
</div>
</p>

<h4><span class="comment">Winson.Framework 2.0发布 [2007-12-03]：</span></h4>
<p>
<div class="list">
<ul>
<li>已可使用CodeSmith直接生成项目所需所有实体类、实体操作类与实体操作基类等文件，并会自动创建相应目录，大大方便了操作</li>
<li>新增一个完整的EMAIL收发类，可进行SMTP、POP3等协议的收发，具体可查看SendEmailDemo.aspx演示文件</li>
<li>为SqlPager控件增加了数字页码分页效果，此效果只支持AJAX模式</li>
<li>新增了ProMeshDemo模板框架，此框架可完全将代码与界面分离</li>
<li>修复了原来SqlPager里的BUG，真正可支持自定义数据源了（之前会有翻不了页的情况出现）</li>
<li>修复了之前生成实体类时无法判断Decimal类型字段</li>
<li>为存储过程增加了返回DataSet和DataReader的方法</li>
</ul>
</div>

生成实体类代码说明：<BR><BR>

此版生成实体类非常方便，只需要配置一个文件，然后执行即可，打开《项目代码生成》目录，再打开 Winson.Framework_Build.cst 文件只需进行简单的配置就可以了，其实只要设置2个属性：<BR><BR>
<div class="list">
<ul>
<li>设置你的项目名称：ProjectName</li>
<li>设置生成的路径，这里只填写盘符就可以了：OutputDirectory</li>
</ul>
</div>

至于分页控件的数字页码样式，只需将<BR>
PagerStyle=numpager<BR>
即可！

</p>
<h4><span class="comment">Winson.Framework 1.5发布 [2007-08-24]：</span></h4>
<p>
这次的版本主要是对实体操作整个框架的更新：<BR><BR>

1.0版是将所有实体操作方法写到一个类里，然后根据传进来的实体（或者表名）去产生相应的实体操作<BR><BR>

1.5版便以面向接口编程为思想，更加接近OOD的思想了，呵呵，主要进行了以下的改进：<BR>
<div class="list">
<ul>
<li>使用了工厂模式，对实体操作类进行了更好的封装</li>
<li>将所有实体用一个接口统一起来</li>
<li>将实体操作方法用一个抽像类统一起来</li>
<li>每个实体均有自己的方法操作类，这样就可以明确操作的对象，减少了装拆箱操作，使用时也不需要去为每个方法传递实体名参数了</li>
<li>声明更加简单，所有实体操作对象可使用一个统一的抽像类进行声明</li>
<li>完善了无限分类的DEMO(TypeOPFor15.aspx)</li>
<li>修正了之前数据库不能附加到SQL2000的问题</li>
<li>数据表的主键不需要指定名称（1.0时是必需要以表名+ID为名的）</li>
</ul>
</div>

新增功能：<BR><BR>

新增了对缓存操作的一个类 Utility.CacheHelper<BR><BR>


使用：<BR>
1.5版主要是修改了实体操作类，请使用“代码生成模板”目录下的“1.5版”目录里的模板文件生成相应的操作类：<BR><BR>

生成实体操作基类.cst  －－> 生成 DAL.Base.BaseModelOP.cs<BR>
生成实体操作类.cst  －－> 生成 DAL下相应的实体操作类<BR><BR>

使用“生成实体操作类.cst”生成实体操作方法时请注意2个参数的设置：<BR>
1、Index  表的索引值，从0开始，每次生成一个表的操作方法<BR>
2、PKName 表的主键名，每个表都必须要有主键名，否则方法执行过程中会报错哦<BR>

</p>


    <h4><span class="comment">Winson.Framework 1.0发布 [2007-07-31]：</span></h4>
 <h5>一、数据库类：</h5>
 <div class="list">
<ul>
<li>本框架是基于ASP.NET2.0技术，同时可支持MSSQL和ACCESS数据库，只需在配置文件里修改一下即可马上使用不同的数据库，不需改其他任何代码。</li> 
<li>可设置是否对连接字符串进行加密，并可设置加解密KEY。</li> 
<li>可直接使用XML文件为实体</li>
<li>可设置是否需要缓存，同时可设置缓存文件依赖存放的位置</li>
<li>可支持多语言的数据库自定义错误信息，现在支持简体和繁体2种</li>
<li>可设置是否启用错误日志记录</li>
<li>可设置自动保存应用程序参数的时间间隔</li>
<li>可设置是否显示系统异常信息，否则显示自定义异常信息</li>
<li>通用的数据库底层操作，同时支持存储过程调用</li>
<li>方便地操作读取自定义配置文件的信息</li>
</ul>
</div>
<h5>二、功能控件类：</h5>
<div class="list">
<ul>
<li>漂亮的自定义警告框，可为警告框设置相应的事件</li>
<li>漂亮的自定义提示框，即类似MSN消息框的效果，可设置多种效果，也可以使用事件钩子调用</li>
<li>强大的自定义分页控件，支持多种数据绑定控件，支持自定义分页按钮样式，支持AJAX无刷新分页，可灵活设置各种参数效果</li>
<li>方便的Tab控件(取自Discuz!NT)，即DNT论坛后台的那种选项卡的效果</li>
<li>类帮助器，可以动态对类,类成员进行控制（添加，删除）,目前只支持属性控制。</li>
<li>可动态创建ul或者dl构成的列表</li>
<li>通用的MessageBox类，可根据需要显示各种提示框</li>
<li>支持URL重写，可自定义重写规则，同时还可以限制IP访问，需修改XML配置文件</li>
<li>Xml文件操作类库，基本上已可满足常用的XML操作需要</li>
</ul>
</div>
<h5>三、经常需要使用的一些验证逻辑与方法类：</h5>
<div class="list">
<ul> 
<li>返回上一个页面的地址</li>
<li>获取当前请求的原始 URL(URL 中域信息之后的部分,包括查询字符串(如果存在))</li>
<li>获得当前完整Url地址</li>
<li>过滤危险字符串</li>
<li>替换html中的特殊字符</li>
<li>恢复html中的特殊字符</li>
<li>检查一个字符串是否可以转化为日期，一般用于验证用户输入日期的合法性</li>
<li>检查一个字符串是否是纯数字构成的，一般用于查询字符串参数的有效性验证。</li>
<li>检查一个字符串是否是纯字母和数字构成的，一般用于查询字符串参数的有效性验证。</li>
<li>判断是否是数字，包括小数和整数。</li>
<li>快速验证一个字符串是否符合指定的正则表达式。</li>
<li>上传文件,不限制大小和类型并上传到默认UploadFile目录</li>
<li>上传文件,不限制大小和类型并上传到自定义路径</li>
<li>上传文件，可设置大小、类型和存放路径</li>
<li>生成缩略图</li>
<li>在图片上增加文字水印</li>
<li>在图片上生成图片水印</li>
</ul>
</div>
<h5>四、实体操作类：</h5>
<div class="list">
<ul> 
<li>利用泛型和集合，结合数据库实体进行操作以提高效率和封装性</li>
<li>动态生成所需的SQL增、删、改、查等语句对实体进行操作</li>
<li>上层操作可以不需要写SQL语句</li>
<li>实体赋值方便，只需设置需要更新的某个字段即可，不需全部字段去赋值，同时读取实体时系统也会自动为每个字段赋值，不需再手工编写赋值代码</li>
<li>由于本框架的实体类和实体操作类需特别处理，因此已提供了实体类和实体操作类的代码生成模板文件，使用Codesmith生成！</li>
<li>另此DEMO附一个无限级分类的管理操作及相关的数据库</li>
</ul>
</div>
        
</p>
</asp:Content>

