1  /  1  页   1 跳转 查看:1758

[Web框架] Winson.Framework 框架下载

Winson.Framework 框架下载

Winson.Framework 1.0发布(8月8日更新)!                                                                                                                                        写在前面: 

    开发这个框架,是因为我发现如果做一个项目,没有一个比较好用的框架,会感觉

很不方便,以前曾经用过微软的Petshop4.0,刚开始接触框架时就感觉这实在是个

不错的东西,呵呵,因为它层次分明,使我真正了解到框架的意义,但在后来的几

个小型项目开发中,就发现这个框架有些华而不实之感,特别是在小型项目中,感觉

就有点像鸡肋,用起来感觉很不方便,也许这个框架是比较适合开发大型项目时用的。

    于是我就想与其使用别人的东西,不如自己根据需要开发一个小型框架更好。经

过一个多月的时间,终于搞出了一个有点像样的东西了,呵呵,或者这个还不能称为

是一个框架,也许也只能当作一个类库吧,不过想到现在已将实体类和底层操作连在一

起了,说其为框架应该也有点沾边吧:)

=======================================

Winson.Framework 1.0简介:

    Winson.Framework 1.0可以说是一个基于ASP.NET2.0技术小型应用框架,是本人从以

往的开发经验和网上的一些好的代码收集整合而成的。

    这里需要说明一下的就是,本框架的数据库底层代码是改自于台湾一位朋友的数据库

底层代码,我是在其基础上添加了一些功能,如可同时可支持MSSQL和ACCESS数据库,可显

示自定义异常等。当然,如果需也,也可以继续扩展支持其他的数据库,呵呵。

========================================

功能介绍:

一、数据库类:

1、本框架是基于ASP.NET2.0技术,同时可支持MSSQL和ACCESS数据库,只需在配置文件里修改
  一下即可马上使用不同的数据库,不需改其他任何代码。
2、可设置是否对连接字符串进行加密,并可设置加解密KEY。
3、可直接使用XML文件为实体
4、可设置是否需要缓存,同时可设置缓存文件依赖存放的位置
5、可支持多语言的数据库自定义错误信息,现在支持简体和繁体2种
6、可设置是否启用错误日志记录
7、可设置自动保存应用程序参数的时间间隔
8、可设置是否显示系统异常信息,否则显示自定义异常信息
9、通用的数据库底层操作,同时支持存储过程调用
10、方便地操作读取自定义配置文件的信息

二、功能控件类:

1、漂亮的自定义警告框,可为警告框设置相应的事件
2、漂亮的自定义提示框,即类似MSN消息框的效果,可设置多种效果,也可以使用事件钩子调用
3、强大的自定义分页控件,支持多种数据绑定控件,支持自定义分页按钮样式,支持AJAX无刷新
  分页,可灵活设置各种参数效果
4、方便的Tab控件(取自Discuz!NT),即DNT论坛后台的那种选项卡的效果
5、类帮助器,可以动态对类,类成员进行控制(添加,删除),目前只支持属性控制。
6、可动态创建ul或者dl构成的列表
7、通用的MessageBox类,可根据需要显示各种提示框
8、支持URL重写,可自定义重写规则,同时还可以限制IP访问,需修改XML配置文件
9、Xml文件操作类库,基本上已可满足常用的XML操作需要

三、经常需要使用的一些验证逻辑与方法类:

1、返回上一个页面的地址
2、获取当前请求的原始 URL(URL 中域信息之后的部分,包括查询字符串(如果存在))
3、获得当前完整Url地址
4、过滤危险字符串
5、替换html中的特殊字符
6、恢复html中的特殊字符
7、检查一个字符串是否可以转化为日期,一般用于验证用户输入日期的合法性
8、检查一个字符串是否是纯数字构成的,一般用于查询字符串参数的有效性验证。
9、检查一个字符串是否是纯字母和数字构成的,一般用于查询字符串参数的有效性验证。
10、判断是否是数字,包括小数和整数。
11、快速验证一个字符串是否符合指定的正则表达式。
12、上传文件,不限制大小和类型并上传到默认UploadFile目录
13、上传文件,不限制大小和类型并上传到自定义路径
14、上传文件,可设置大小、类型和存放路径
15、生成缩略图
16、在图片上增加文字水印
17、在图片上生成图片水印

四、实体操作类:

1、利用泛型和集合,结合数据库实体进行操作以提高效率和封装性
2、动态生成所需的SQL增、删、改、查等语句对实体进行操作
3、上层操作可以不需要写SQL语句
4、实体赋值方便,只需设置需要更新的某个字段即可,不需全部字段去赋值,同时读取实体
  时系统也会自动为每个字段赋值,不需再手工编写赋值代码
5、由于本框架的实体类和实体操作类需特别处理,因此已提供了实体类和实体操作类的代码
  生成模板文件,使用Codesmith生成!
6、另此DEMO附一个无限级分类的管理操作及相关的数据库

五、其他说明:

本程序目录里已有多个试例DEMO,基本上主要功能均有演示了,另有一个非常通用方便的JS

校验文件,在js/check.js目录,至于使用方法,请自己看看里面的注释吧,呵呵

欢迎大家一起来完善这个框架,有什么好的东西记得告诉我哦:)


原文出处:http://bbs.szblogs.com/
最后编辑mikecat 最后编辑于 2008-06-16 12:07:09
金鳞岂是池中物,一遇风云便化龙
 

回复: Winson.Framework

Winson.Framework 1.5发布!                                                                                                                                        这次的版本主要是对实体操作整个框架的更新:

1.0版是将所有实体操作方法写到一个类里,然后根据传进来的实体(或者表名)去产生相应的实体操作

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

新增功能:

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


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

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

使用“生成实体操作类.cst”生成实体操作方法时请注意2个参数的设置:
1、Index  表的索引值,从0开始,每次生成一个表的操作方法
2、PKName 表的主键名,每个表都必须要有主键名,否则方法执行过程中会报错哦
最后编辑mikecat 最后编辑于 2008-06-16 13:58:56
金鳞岂是池中物,一遇风云便化龙
 

回复: Winson.Framework

Winson.Framework 2.0发布!                                                                                                                                        也有很长时间没更新过了,这段时间用此框架做了1、2个小项目,感觉还不错,呵呵,当然在使用中也发现了一些问题,但一直没时间来整理,现在终于有时间来整理下,同时发布个新版了

2.0版功能与改善:

1.已可使用CodeSmith直接生成项目所需所有实体类、实体操作类与实体操作基类等文件,并会自动创建相应目录,大大方便了操作
2.新增一个完整的EMAIL收发类,可进行SMTP、POP3等协议的收发,具体可查看SendEmailDemo.aspx演示文件
3.为SqlPager控件增加了数字页码分页效果,此效果只支持AJAX模式
4.新增了ProMeshDemo模板框架,此框架可完全将代码与界面分离
5.修复了原来SqlPager里的BUG,真正可支持自定义数据源了(之前会有翻不了页的情况出现)
6.修复了之前生成实体类时无法判断Decimal类型字段
7.为存储过程增加了返回DataSet和DataReader的方法


生成实体类代码说明:

此版生成实体类非常方便,只需要配置一个文件,然后执行即可,打开

《项目代码生成》目录,再打开 Winson.Framework_Build.cst 文件

只需进行简单的配置就可以了,其实只要设置2个属性:

1.设置你的项目名称:ProjectName
2.设置生成的路径,这里只填写盘符就可以了:OutputDirectory


至于分页控件的数字页码样式,只需将

PagerStyle=numpager

即可!

可能是我的VS问题,生成不了类库的CHM说明文档,压缩包里的是旧版的文档,以后有机会我再补上好了

同时也庆祝一下刚刚找到新的工作了,呵呵:lol
最后编辑mikecat 最后编辑于 2008-06-16 13:59:25
金鳞岂是池中物,一遇风云便化龙
 

回复: Winson.Framework

Winson.Framework 2.5 发布啦!!!                                                                                                                                        呵,距上次版本到现在,已有半年时间了,本来一直没什么时候去整理的,但看到几乎每天都有朋友过来支持和下载,感觉如果我再不更新,那也感觉有点对不起大家了

因此现再次发布新版,希望大家继续支持,谢谢!

这次版本改动的也比较多,主要是对之前BUG的修复了完善了一些功能,详细更新说明请看下面吧:

********************************************************************
2.5版更新内容(2008-06-15)
********************************************************************
新功能:
1.实体操作类全部使用了缓存技术,有效提高运行效率
2.将操作方法再进行了一次封装,使得在页面层调用时代码简洁了很多,也方便很多了
3.增加HttpCompress控件,可有效将页面(包括CSS/JS)文件进行压缩以提高下载速度,为了看到效果,请使用
  Fixfox并安装上FireBug插件然后再浏览相关页面,这时你可明显看到压缩前后的对比
4.增加CookieHepler类,方便操作管理Cookie
5.增加IPScanner类,可非常方便查询出访问者的IP以及此IP的真实地址位置
6.在Utility里增加了专门的时间处理相关方法,能格式化出各种时间类型格式
7.在Utility里增加了MD5加密功能函数,同时也增加了直接获取网站虚拟目录的函数
8.增加了高亮代码控件及相关演示
9.增加了标签云控件及相关演示
10.SqpPager控件也升级到2.5版了,改进如下:
1).现已去掉了缓存与非缓存的设置,直接默认全部使用了缓存,并且会自动判断查询条件有无更改,
    如果2次查询的条件不同,则会重新获取数据,否则一直读取缓存中的数据
2).既然使用数字分页模式,也不需要另外去设置ShowCount的值,系统已会自动判断,去掉多余的显示
    部分(之前必须设置ShowCount=2才可)
11.完善了类库帮助文档.

修复的BUG:
1.SqlPager控件修复了不能显示最后一页数据
2.SqlPager控件修复了不能根据传入的查询条件去获取最新数据(此问题在旧版的非缓存状态同时是
  自定义数据源的情况下会出现)
3.SqlPager控件修复了在第一页时点上一页按钮仍然有效,但并没数据出来
4.修复了实体类操作时不能批量添加数据
5.修复了上传文件功能函数里否限制上传文件类型的问题

======================================================================
关于2.5版的使用说明:
1.关于HttpCompress控件的配置:
此控件并不需要在程序中调用,只需在Web.Config文件里做好相关的配置即可使用了,配置方法如下:
1)在<configuration>节下面添加以下代码:


   
<configSections>
   
<!--HttpCompress配置开始-->
   
<sectionGroup name="DCWeb">
     
<section name="HttpCompress" type="Winson.HttpCompress.Configuration, Winson.WControls"/>
   
</sectionGroup>
   
<!--HttpCompress配置结束-->
   
</configSections>
   
   
<!--HttpCompress配置开始-->
 
<DCWeb>
   
<HttpCompress compressionType="GZip">
     
<IncludedMimeTypes>       
       
<add mime="text/html"/>
     
</IncludedMimeTypes>
     
<!--<ExcludedMimeTypes>
        <add mime="text/html" />
      </ExcludedMimeTypes>
      <ExcludedPaths>
        <add path="~/default.aspx" />
      </ExcludedPaths>
-->

   
</HttpCompress>
 
</DCWeb>
 
<!--HttpCompress配置结束-->



2)在<httpHandlers>节下面添加以下代码:

     
<!--HttpCompress配置开始-->
     
<add verb="*" path="js.axd,css.axd" type="Winson.HttpCompress.CompressionHandler,Winson.WControls"/>
     
<!--HttpCompress配置结束-->




3)在<httpModules>节下面添加以下代码:

     
<!--HttpCompress配置开始-->
     
<add name="HttpCompressModule" type="Winson.HttpCompress.HttpModule,Winson.WControls"/>
     
<!--HttpCompress配置结束-->




完成。

同时附上使用了HttpCompress前后的页面文件大小对比:

没有使用HttpCompress:
before.jpg                                                                                          (15.84 K)
2008-6-15 12:13:28



使用了HttpCompress后:
after.jpg                                                                                          (17.46 K)
2008-6-15 12:13:28



另要说明一下的是,页面中的JS文件和CSS文件的引用必须都放到 <head>里面,否则将不会被压缩的

2.在之前版本里的 Winson.Bll 项目是为ProMesh做的,现在已改为专门为实体类做的业务层,而原来的
  ProMesh的后台代码均放到 Winson.ProMeshCode 项目里了.


http://www.cnblogs.com/Files/winsonet/Winson.Framework.2.5.rar

附:

Winson.Framework 2.0更新发布说明:
http://bbs.szblogs.com/showtopic-1546.html

Winson.Framework 1.5更新发布说明:
http://bbs.szblogs.com/showtopic-571.html

Winson.Framework 1.0发布说明:
http://bbs.szblogs.com/showtopic-137.html

Winson.Framework 搭建FLASH教程:
http://bbs.szblogs.com/showtopic-1598.html
最后编辑mikecat 最后编辑于 2008-06-16 13:59:52
金鳞岂是池中物,一遇风云便化龙
 

回复: Winson.Framework

Winson.Framework 2.0 搭建FLASH视频教程!                                                                                                                                        关于2.0的搭建,在我发布的压缩包里,写少了一个比较重要的步骤,就是最后还要手工在你的实体类项目里创建一个名为IModel.cs的接口文件,里面定义一个空接口就可以了,再写上你目录的命名空间即可,呵!


如果大家还是不知道如何搭建此框架,可以下载这个FLASH视频教程,此教程从零开始让大家清楚地了解如何搭建本框架的,相信大家一看就会懂啦:lol

不好意思,在这个教程里建立的一个App_Code目录写错了,少了中间一横(教程里写成AppCode了),大家只要改一下就可以了
最后编辑mikecat 最后编辑于 2008-06-16 14:00:15
金鳞岂是池中物,一遇风云便化龙
 

回复: Winson.Framework

2.0版的SqlPager控件说明!                                                                                                                                        在新版里,主要添加了数字页码功能,同时修复了使用了自定义数据源时,翻页内容失败的问题,即总是显示只显示第一页的内容!

一、数字页码功能:

先给大家看看数字页码的效果吧,如下图所示:





要使用数字页码功能,需要注意以下几个问题:

1.需将控件的PagerStyle属性设置为Numpager

2.将ShowCount属性设置为2,否则会在左边显示多了一段页码信息

以上设置后,即可使用数字页码的效果了

二、使用自定义数据源:

新版已完全支持自定义数据源,同时也支持了存储过程,需要注意的是如果使用自定义数据源,需将PagingMode参数设为Cached,

即表示一次性将所有数据读入缓存,然后再作处理,不过我现已在程序里做了控制,只要你使用了自定义数据源,那么PagingMode

将自动以Cached形式运行

在我的DEMO里,已提示了使用存储过程实现自定义数据源的示例了,只需将App_Data里的数据库附加上去即可
最后编辑mikecat 最后编辑于 2008-06-16 14:00:36
金鳞岂是池中物,一遇风云便化龙
 

回复: Winson.Framework

ProMesh.Net基本使用说明!
在Winson.Framework2.0里已集成了ProMesh.Net框架,由于 ProMesh.Net里的内容比较多,我也不一一详细说明了,大家感兴趣的就自己慢慢研究,或者到这里查看官方发布的其他DEMO吧

http://www.codeplex.com/ProMesh/Wiki/View.aspx?title=Walkthrough&referringTitle=Home

如果还不知道ProMesh.Net为何物,请先看看这里:

http://bbs.szblogs.com/showtopic-1548.html

在此我只大概说一下ProMesh.Net的一些基本用法,即针对我的DEMO来进行一些说明:

一、配置

ProMesh.Net 利用了反射,对模板进行解释,可将页面文件与后台CS文件完全分离,因此要使用ProMesh.Net,必须在web.config里先做一些配置,在我的DEMO项目里,已做好了相关的配置了,如下代码:

  <appSettings>

    <!--ProMesh相关设置开始-->
 
    <!--设置模板文件的对应后台文件的程序集-->
    <add key="ProMesh.ApplicationClass" value="Winson.BLL.Application,Winson.BLL"/>
    <!--设置模板路径-->
    <add key="TemplatePath" value="ProMeshDemo/templates"/>
    <!--设置默认的主页面名称-->
    <add key="DefaultLayout" value="master1"/>
    <!--设置默认的语言-->
    <add key="DefaultLanguage" value="en"/>
    <!--设置网站的虚拟目录,如根目录则使用 / -->
    <add key="VirtualDir" value="/winson.web/"/>

    <!--ProMesh相关设置结束-->
  </appSettings>



然后在<system.web>里的

<!--URL映射,将所有html后缀都进行处理-->
    <httpHandlers>
      <add verb="*" path="*.html" type="Winson.Utility.UrlRewriter"/>
      <!--ProMesh相关设置开始-->
      <add verb="*" path="*.ashx" type="Winson.ProMesh.PageHandler,Winson.WControls"/>
      <!--ProMesh相关设置结束-->
    </httpHandlers>

  <httpModules>
    <!--ProMesh相关设置开始-->
      <add name="ProMeshModule" type="Winson.ProMesh.HttpModule,Winson.WControls"/>
    <!--ProMesh相关设置结束-->
    </httpModules>



因为我想让此框架思路更清淅,因此自己另外建立了一个BLL的项目,专门用来放置ProMesh.Net的后台代码,其中配置里的

ProMesh.ApplicationClass 即映射后台文件的程序集,在ProMeshDemo目录里的test.aspx文件就是为了测试出这个配置的具体程序集写法而用的,呵呵,与 ProMesh.Net无关,大家不需理会

二、使用

由于我现在是将文件映射到*.ashx后缀,如果大家想改为其他的,如HTML,就修改上面的配置信息即可,不过如果是HTML,记得在IIS做相关的映射。

大家可以先看看DEMO里的效果,直接输入你项目的地址,后缀是ashx的即可,当然这个文件名首先要在BLL项目里有对应的CS后台文件的,如以下地址

http://localhost:1969/Winson.Web/index.ashx

这样就会直接调用Templates目录里的index.htm模板文件了,怎样,是不是感觉比较COOL?:lol

整个DEMO并没有使用数据库,里面的会员资料均是以数组集合形式即时产生的,大家打开DataService.cs文件就可以知道如何产生这些数据的了

1)逻辑语句及变量标签的使用

在模板文件里大家会看到很多标签,这些标签有部分是系统标签,有部分是在CS文件里去定义的,这些标签运用可以非常灵活,以下将以EntityDemo.htm模板文件做以说明:

<html>
<body>实体读取DEMO:
<table>
<tr>

<th>ID</th><th>FirstName</th><th>LastName</th><th>Address</th><th>HomePhone</th>

</tr>
<!--$[foreach employee in Employees]-->
<tr><td>$[employee.EmployeesID]</td><td>$[employee.FirstName]</td>
<td>$[employee.LastName]</td><td>$[employee.Address]</td><td>$[employee.HomePhone]</td>
</tr>
<!--$[endfor]-->
</table>
<p>There are $[employees.Count] employees</p>
<p>$[time]</p>
</body>
</html>


大家可以看到,这些标签同时支持简单的逻辑判断和循环语句,如

<!--$[foreach employee in Employees]-->


foreach的用法与一般的C#语句用法是一样的,这里需要说明的是Employees,这个对象是由BLL项目里原EntityDemo.cs后台文件获得,代码如下:

ViewData["Employees"] = EmpOP.GetList();//获取Employees对象,这里将返回IList


这里的GetList()方法即调用底层获取数据的方法,没什么好说的了,大家自己看代码即可

同时大家可以看到,在ProMesh.Net里要将底层数据传上来,是使用了一个叫ViewData的集合,跟踪代码可以发现,这个ViewData最终是由ProMesh.Net里的Table.cs继承过来的,可以看出,最后返回上层的是一个键值对的集合

获取了实体对象后,就可以像调用实体一样去写相应的标签了,如上面需显示一个EmployeesID,直接写

$[employee.EmployeesID]


即可。

这里需要注意一点的是,如果要显示对象或者变量,就要使用  $[标签内容] 的标签,如果要使用逻辑语句,就要使用 <!--$[判断逻辑语句]--> 的标签

2)web控件标签的使用

ProMesh.Net同时还支持一些web控件的标签使用,请看以下editemployee.htm里的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml"; >
<head>
    <title>Untitled Page</title>
</head>
<body>
<form method="post" action="$[_SELF_]">
<!--$[if ValidationErrors]-->
<ul>
<!--$[foreach error in ValidationErrors]-->
<li style="color:red">$[error.Message]</li>
<!--$[endfor]-->
</ul>
<!--$[endif]-->
<div><label>Name:</label> $[[Name]]</div>
<div><label>Department:</label> $[[Department::ErrorBox]]</div>
<div><label>Salary:</label> $[[Salary::ErrorBox]]</div>
<div><input type="submit" name="btnSave" value="Save" /></div>
</form>
</body>
</html>


以上代码执行后的效果:

很明显,以上代码产生了2个input和一个下拉框控件,要使用控件标签,需使用  $[[标签内容]]

那么这些标签又是如何产生的呢?请大家看相应的editemployee.cs文件,此文件里的Form类继承了WebForm,而WebForm也是ProMesh.Net的底层产生的,具体如何实现,我在此也不多说了,大家有兴趣就自己看看底层的代码吧

以下是重要的几句代码

[FormTextBox(Width = 25, MinLength = 4, Validati)]
public string Name;

[FormDropDown(KeyMember = "DepartmentID" , ValueMember = "Name")]
public int Department;

[FormTextBox(Width = 10, FormatString = "0.00")]
public decimal? Salary;


呵,看到了吧,对应三个控件的标签就是通过以上代码产生的了,同时还可以指定控件的默认值和校验信息等,真是做得比较COOL啦

至于如何为下拉框控件绑定数据源呢?请看以下代码:

/**//// <summary>
            /// 绑定数据源到下拉控件
            /// </summary>
            protected override void OnBind()
            ...{
                Fields["Department"].DataSource = new DataService().GetAllDepartments();
            }
            /**//// <summary>
            /// 在填充表单时为各控件赋值
            /// </summary>
            protected override void OnFill()
            ...{
                Name = _employee.Name;
                Department = _employee.DepartmentID;
                Salary = _employee.Salary;
            }
            /**//// <summary>
            /// 在提示表单时接收各控件的值
            /// </summary>
            protected override void OnPost()
            ...{
                _employee.Name = Name;
                _employee.DepartmentID = Department;
                _employee.Salary = Salary;
            }
            /**//// <summary>
            /// 表单验证
            /// </summary>
            /// <param name="fieldName">字段名,即控件名</param>
            /// <param name="fieldValue">值</param>
            /// <returns></returns>
            protected override bool OnValidateField(string fieldName, object fieldValue)
            ...{
                if (fieldName == "Salary" || fieldName == "Department")
                ...{
                    if (Department == 2 && Salary != null && Salary < 30000 )
                    ...{
                        ValidationErrors.Add("Nah! Impossible for an IT person to make less than 30,000 !");
                        return false;
                    }
                }
                return true;
            }


通过以上代码,即可将表单完整地实现出来了!


OK,说了这么多,现在也应该说说这个框架的一些缺点啦,呵呵。

之前本来我是想用这个框架来做个项目的,但由于其实现形式必须是模板对应一个CS文件,因此就必须为每个模板写相应的后台文件,当时就感觉这样每个去写后台文件挺麻烦的,而更郁闷的是,使用了这个框架后,所有服务器控件都不能再使用了,包括我自己的SqlPager控件等都不能用了:'( ,感觉这样写起代码来会辛苦好多啊!

不过不管怎样,如果对性能要求较高的项目,使用这个东西还是挺不错的,而且其标签功能也确实挺强大,有兴趣的朋友慢慢研究下吧,呵!


好了,对于ProMesh.Net框架,我就先说这么多啦,由于此框架功能也比较强大,太多的细节了,我只是大概说了一下用法,具体的东西还是等大家自己慢慢去体会吧,呵呵,其实我自己也没太深入地去研究,还有很多地方也不太清楚如何使用,如果有朋友研究出来了,非常希望能在此与大家分享一下哦:lol
最后编辑mikecat 最后编辑于 2008-06-16 09:11:49
金鳞岂是池中物,一遇风云便化龙
 

回复:Winson.Framework 框架下载

晕 要质量啊...
一直关注 .NET 却做着与开发无关的工作 呵呵~功力不够啊~~~~
 
1  /  1  页   1 跳转

版权所有 老猫的理想   Sitemap

Powered by Discuz!NT 2.1.202    Copyright © 2001-2008 Comsenz Inc.
Processed in 0.09375 second(s) , 3 queries. 冀ICP备05001409号
返顶部