最近一个小Web开发项目的总结
2010-04-28 23:04
363 查看
一直以来很少写Web开发的具体代码,以前是专门有人写这些,我只管管就行了。后来呢,也很少做Web类型项目了,最近有两个项目,牵扯到Web开发,而现在一个人单干,也找不到人来写这些了,只得自己憋手蹩脚的摸索。下面是这段时间的摸索总结。
一、代码生成器确实好用
以前是很反代码生成器的,但真的使用过后觉得很好用——简单、直接且控制力强。我用的是园子里李天平(http://ltp.cnblogs.com/)的动软代码生成器。在此,先感谢一下。不过,在感谢李天平之前,我必须先感谢一下郭嘉。
动软的好处是简单、直接、开源。针对我的应用,我做了以下改进:
(1)Image的处理问题。代码生成器生成的操作Image部分的代码有小问题,不能插入全部的Image对象,这个手动修改了下。
(2)生成的代码没有 partial 关键字,不方便扩展。我修改成产生的所有类都是partial类。这样做有什么好处呢?就是对于每个类,你可以在不修改生成的源文件的情况下,申明某个类实现了某些接口,以对代码进行复用。
例如,假设Album、News、Knowledge这三个类都具有某些相同的属性(ID,Title,AccountId,ViewCount,CreateTime,UpdateTime,等),在代码生成器生成的文件之外,另建一个目录,放一个Interface.cs的文件:
Controls_NewsList
1 public partial class Controls_NewsList : BaseListControl
2 {
3 private Int32 m_categoryId = -1;
4 public Int32 CategoryId
5 {
6 get { return m_categoryId; }
7 set { m_categoryId = value; }
8 }
9
10 protected override Orc.Util.AspDotNet.PagerControl GetPager()
11 {
12 return this.pager;
13 }
14
15 protected override int GetResultCount()
16 {
17 return NewsService.SelectCount(null, this.Mark, this.Mode, this.CategoryId, this.InDays);
18 }
19
20 protected override void BindData(int page)
21 {
22 this.rpList.DataSource = NewsService.SelectData(null, this.Mark, this.Mode, this.CategoryId, this.InDays, this.OrderBy, this.PageSize, page);
23 this.rpList.DataBind();
24 }
25 }
这样一封装就超级好用,可以显示pager也可以不显示,可以用在分页里,也可以用在栏目的首页,且代码量几乎降低到最低,而性能几乎提高到最高,还可以根据各种参数进行缓存。
四、抱怨
尽管使用了这些技巧,Web开发还是太累。一个月坐下来还没做其它项目三五天赚的钱多,并且技术支持比其它类型项目难得多。做一个Web项目后悔一次,今后,尽量不做了,除非价格很高或自己用。
一、代码生成器确实好用
以前是很反代码生成器的,但真的使用过后觉得很好用——简单、直接且控制力强。我用的是园子里李天平(http://ltp.cnblogs.com/)的动软代码生成器。在此,先感谢一下。不过,在感谢李天平之前,我必须先感谢一下郭嘉。
动软的好处是简单、直接、开源。针对我的应用,我做了以下改进:
(1)Image的处理问题。代码生成器生成的操作Image部分的代码有小问题,不能插入全部的Image对象,这个手动修改了下。
(2)生成的代码没有 partial 关键字,不方便扩展。我修改成产生的所有类都是partial类。这样做有什么好处呢?就是对于每个类,你可以在不修改生成的源文件的情况下,申明某个类实现了某些接口,以对代码进行复用。
例如,假设Album、News、Knowledge这三个类都具有某些相同的属性(ID,Title,AccountId,ViewCount,CreateTime,UpdateTime,等),在代码生成器生成的文件之外,另建一个目录,放一个Interface.cs的文件:
Controls_NewsList
1 public partial class Controls_NewsList : BaseListControl
2 {
3 private Int32 m_categoryId = -1;
4 public Int32 CategoryId
5 {
6 get { return m_categoryId; }
7 set { m_categoryId = value; }
8 }
9
10 protected override Orc.Util.AspDotNet.PagerControl GetPager()
11 {
12 return this.pager;
13 }
14
15 protected override int GetResultCount()
16 {
17 return NewsService.SelectCount(null, this.Mark, this.Mode, this.CategoryId, this.InDays);
18 }
19
20 protected override void BindData(int page)
21 {
22 this.rpList.DataSource = NewsService.SelectData(null, this.Mark, this.Mode, this.CategoryId, this.InDays, this.OrderBy, this.PageSize, page);
23 this.rpList.DataBind();
24 }
25 }
这样一封装就超级好用,可以显示pager也可以不显示,可以用在分页里,也可以用在栏目的首页,且代码量几乎降低到最低,而性能几乎提高到最高,还可以根据各种参数进行缓存。
四、抱怨
尽管使用了这些技巧,Web开发还是太累。一个月坐下来还没做其它项目三五天赚的钱多,并且技术支持比其它类型项目难得多。做一个Web项目后悔一次,今后,尽量不做了,除非价格很高或自己用。
相关文章推荐
- 一个JavaWeb项目开发总结
- 最近的一个项目中基于MsCrm二次开发的操作总结
- 最近在Ubuntu9.04下用tomcat发布一个用java开发的WEB项目(tomcat6+mysql)。在windows下编码完全没问题,到了linux下后,到处一大堆得乱码(主要是针对中文)。上
- 一个JavaWeb项目开发总结
- 最近接一个华技CMES协同系统开发对接的项目,顺利完成开发对接
- 最近正在做一个SWT+WebService的项目
- MyBatis学习总结(二)——SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载
- 团队开发经验:如何带领一个项目团队并做好项目总结 !!
- [置顶] 在着手准备做一个开发项目(web前端),需要做哪些准备?
- Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目
- 记录一个关于互联网、网页设计、Web开发、服务器运维优化、项目管理、网站运营、网站安全的网站
- Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目
- [置顶]团队开发经验:如何带领一个项目团队并做好项目总结
- 分享一个本人开发的angularjs+bootstrap+Spring+mybatis实现的java web系统项目
- 最近做一个SSH项目总结出来的一些程序执行流程
- ItelliJ IDEA开发工具使用—创建一个web项目
- ItelliJ IDEA开发工具使用—创建一个web项目
- Web开发一项目总结(别暗笑我的愚)
- vue.js开发外卖App项目总结之webpack的详细配置(三)
- Linux环境下段错误的产生原因及调试方法小结 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是