新年第一个项目---思考
柳树基金助学网是我2009年第一个网站项目,总共花了20多来天。
柳树基金助学网使用的是winson(http://www.cnblogs.com/winsonet/)开发的开发框架,在此我要感谢winson。在开发中使用了CodeSmith代码生成工具,方便快速的生成了高质量的数据模型对象代码。
下面是我开发柳树基金助学网的一些心得,还请各位大侠看过之后多多指教。
我先说的是CodeSmith代码生成工具里的一个不足。
在CodeSmith生成的BaseOP类中有一个GetPrimeKey获取主键的方法,该方法中有一段获取主键的SQL语句:

这段SQL语句经过测试存在BUG,它不能在SQL2005,SQL2000上运行,至于MYSQL和甲骨文数据我就没有测试过,哪位有条件的可以帮我测测。主键如果无法获取,那没数据操作模型就无法运行起来。
还有一点不足之处是,每次其生成的SQL语句都是根据该表的模型来生成的,二模型里的字段又是根据数据库表结构来生成的,这就造成了在每次执行INSERT语句时,它都会有一个ID字段,而ID字段往往都是被设置为主键,自动增长类型的,这样在INSERT时就会出现错误,我目前还不知道怎样设置才能时它在INSERT时没有ID字段,而其他的操作有ID字段,目前在柳树基金助学网里的解决方案是把主键ID字段的自动增长属性去掉,然后在每次INSERT的时候都去查一下ID的最大值,然后在加1赋值给INSERT语句里ID字段。当然,CodeSmith生成的代码非常优秀,它以对象的形式让我们来操作数据库,这操作有点像HIBERNATE。
winson的Winson.Framework 3.0框架中我发现他的SqlPager分页控件好像有点问题,运行程序的时候,有时会出现找不到数据字段的BUG,调试了一下也没能找出错误出在哪里,呵呵,真不中用。Winson.Framework 3.0里有一个Dialog对话框,像QQ弹出框的那种效果,我很喜欢,他把它封装成了一个Dialog对象,每次使用的时候就调用这个对象,不过我却没能调出来,真失败。winson的Winson.Framework 3.0框架做得的确不错,它可以支持SQL,ACCESS,MYSQL几种数据库,你只需在web.config里做一个简单的配置就能选择你所开发的数据库,而后台代码完全不用改动。
在最开始的时候我使用的是ACCESS2007数据库,但是ACCESS2007好像不是很稳定,经常会出现连接不上数据库的错误,访问用户一但多一点,程序就无法连接上数据库了,不知道各位大侠是如何处理这个问题的?
在一开始我是使用的jQuery来处理AJAX请求的,但是在出来一些HTML代码时候,jQuery就不行了,因为他无法处理像” ”之类的HTML代码的请求,之后改成了Ajax.dll来处理AJAX请求,它不会因为存在“&”符号而发送错误请求,使用它需要做一些配置,首先是在web.config里的 <httpHandlers>添加一个子节点:
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
然后在类的Page_Load方法里在 if (!IsPostBack){}之前添加一段
Ajax.Utility.RegisterTypeForAjax(typeof(类名)); 使用它不用导入任何空间
然后在你要调用的方法钱加上 [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]代码段

前台调用代码

这样就可以调用Test类里的Save()方法,并传递两个参数。当然,你必须在前天页面加上
<form id="form1" runat="server"></form>标签,不然就会出现一个找不到Test对象的错误。
上面这些就是柳树基金助学网的一些心得,也没有什么厉害的技术,就是拿出来给大家分享分享,同时还希望各位多多支持我们的柳树基金助学网,帮助更多的贫困学生,完他们一个读书梦。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述