3天搞定的小型B/S内部管理类软件定制开发项目【软件开发实战10步骤详解】

 

 

   十一休假,杭州西湖边逛了一圈只能用人山人海来形容,浙大紫金港校区也逛了一圈风景如画,建设得真不错很棒,假期就去了这2个地方,然后在家里陪老婆、看孩子、洗尿布、打了几局星际争霸,在网上接了一个B/S架构的内部管理类定制软件、淘宝上收了600元辛苦费后就开始行动了、现在把整个开发过程讲解分享如下文。

 

客户需求

   一个简单的项目管理信息的,添加、删除、编辑、查询等功能的实现,把大的框架做好就可以,细节他会自己完善好,想想也很简单的一样,本以为1天时间就足可以搞定了,结果足足干了3天才算竣工,由于客户也是软件开发人员,沟通起来也比较顺畅一些,否则可能不止需要3天了。

 

   项目虽然很小,但是由于跟我的主营方向是一致的,同时也想锻炼一下做项目的成熟程度有多高、有多快,所以也没嫌弃钱多钱少,开开心心就把这个项目开始启动了。项目虽然小但五脏俱全来形容了这个活儿了。

   很多必要的功能虽然在需求里没有提到,但是都是需要做好的,例如:

         01:系统的登录功能、这个是必然要有的。

         02:记住密码功能,而且是需要有加密功能的。

         03:退出系统的功能,总需要能安全退出系统的吧。

         04:用户管理功能,例如哪些用户才能登录到系统里来?

         05:用户修改密码功能,停用功能,设置密码功能等。

         06:用户可以访问那些菜单等?

         07:用户有哪些操作权限等?

         08:角色管理功能,用户角色关系功能,角色的权限功能。

         09:友善的菜单导航功能。

         10:没有权限的友善提示功能。

         11:附件的管理、上传、下载、删除等等。

         12:查询分页功能等等,虽然都没提出,但是这些功能都需要做好的。

 

 

整体开发思路

 

数据库分2个设计:业务数据 + 权限数据,互相不干扰,相互比较独立一些。

整个系统分3个种干系人: 开发人员 + 系统管理员 + 操作人员,他们对系统各自的期望值及操作的内容如下图。

为了快速搞定项目,毕竟项目的预算很有限,所有有些功能模块能不开发就不开发,那我们就用现成的成熟组件,通用权限管理系统,做为用户账户管理、权限管理

菜单管理的核心组件,这样可以大大的提高工作效率,可以灵活配置管理这个小型B/S项目信息管理系统了。

 

 

项目的具体开发制作步骤

 

步骤1:项目虽然很小,但是还是按规范的软件开发步骤比较好,我们还是本着先有设计后有开发的思路,先不急着写代码,我们先把数据库结构设计好,本系统应该只设计一个表就可以了,我们先要想好哪些数据用什么格式保存,都需要哪些字段来表示各种属性,效果图如下,我们用了数据库建模工具PowerDesigner,来设计我们的业务模型中的数据模型吧,这就是所谓的开发上的领域模型吧,其实这个设计还是蛮关键的,设计乱了后面都会乱套了。

 

步骤2:通过用设计好的模型,我们先手工建立相应的数据库及数据表。

 

步骤3:下图是已经建立好的数据的效果图,Project是业务数据库、Project表是项目信息表,后面的Base_Sequence 用于产生序列及唯一排序号、Base_Comment 用于修改记录保存功能,这些不用重复设计,直接从UserCenterV30数据中心里复制过来结构就可以了,为了在软件里显示一些数据出来,可以通过手工方式先录入一些演示数据,这样成就感会更多一些、信心也更足一些,因为很快就可以在软件里显示数据出来了。

 

步骤4:生成好相应的数据表后,可以用代码生成器生成一些没有多少商业逻辑的代码了,所谓的添加、删除、修改、查询的代码都不用写了,直接用代码生成器生成好就可以了,虽然这个技术不怎么先进,但是省事省心,对技术的要求也很低,生成好的代码也比较规范一些,而且还支持多种数据库,还是蛮好的,若生成好后,数据库结构有变化了,也没关系,重新生成一下就可以了,生成代码1分钟足够了,顶多是命名空间可能需要整理一些就可以了,属于是很经得起折腾的做法了。

 

步骤5:将生成好的代码,复制到相应的位置上,适当的修正一下命名空间什么的,因为是一个很小的项目,根本不用分层啥的,分那么多层也是多余的,其实分目录就足够可以了,若很懒惰的话目录都可以不用分了,分层其实更适合大型软件项目,小项目以见效最快为主,没必要搞个7-8个层,这里是是1个层也没分,只是分了一些目录,显得思路更清晰一些。

 

步骤6:代码生成器不能生成所有的代码,有些代码还是有商业逻辑的,需要人工编写,其中ProjectManager.cs 中的代码就是有具体商业逻辑的代码,这部分代码无法靠代码生成器自动生成好,需要按自己的需要进行编写的,这里有2个功能,一个是查询功能的实现、另一个是更新数据时需要有修改记录的功能,需要详细记录数据被变更的全过程,这些代码都需要人工编写好,页面上会调用这些代码。

 

步骤7:接下来该是规划整个系统的菜单的时候,需要好好规划一下软件的菜单,到底需要有哪些菜单,都叫什么名字?当然这一步也可以在在最后做,我们同通用权限管理组件可以灵活规划整个系统的菜单,基本上想怎么设置就怎么设置,想怎么托摘、想怎么排序都可以,规划菜单时会很爽,当然不只是开发人员用起来爽、而且系统管理员今后维护时也会很爽,系统的整个菜单都可以灵活配置权限、可以灵活更改,而不是写死的菜单,将来不依赖开发人员也可以灵活配置管理,灵活设置各种权限限制等等。

 

步骤8:接下来,需要把相应的添加、修改、查询、删除功能页面做出来,可以考虑到今后可能会扩展很多模块进来,所有目录规划得合理一些,说不定还要做人事管理、考勤管理、薪资管理、工作日志管理等等很多模块,其实都是大同小异而已,更多是技术是体现在细节功能及业务逻辑的深入程度上。

 

步骤9:菜单配置好,页面制作好后,就可以实现登录系统的页面了,当然这个也是用了现成的通用权限管理系统的登录页面,只需要制作一个登录界面,然后调用相应的登录API就可以了,自然就可以达到离职人员不能登录、没有权限的用户不能登录、停用账户不能登录,不能重复登录、限制登录的IP地址等等额外的其他功能都可以集成在里面了,开发人员也不用关心更多的细节,省心省事了。 

 

步骤10:登录好后,通用权限管理系统的底层API,自然会显示有权限的菜单,无权访问的菜单也不会出来了,哪个用户可以访问哪个菜单等等,都可以通过通用权限管理工具灵活配置管理,当然那个工具是给系统管理员、开发人员、实施人员使用的,并不是为了给普通业务操作员使用定位的。软件的最终运行效果就如下图了,由于是系统管理登录的所有菜单都能显示了,当然这里还需要一个成熟稳定的分页组件。

 

   底层代码生成器生成的代码,可能只占用这个系统的代码的 1/3左右,但是编写这些代码的时间也省了,整个开发过程不是可以节省1/3了,而且是纯体力劳动而已。整个权限管理等可能需要整个系统开发的1/3左右的精力,若这部分也不用开发了,又可以节省整个软件项目开发的1/3时间。整个框架的稳定完善,也可以说是占用整个软件开发项目的1/3时间是应该的,若是2手空空开始开发的话。

   那我们的项目采用了 代码生成器 + 数据库访问组件 + 通用权限组件 + 成熟的B/S开发框架 足足可以节省一个管理软件项目开发的 2/3 的开发时间,可以把精力全部放在另外的 1/3 的业务逻辑优化、界面细节优化上。

   这样也大大的降低了软件项目的开发的失败风险,谁说你不会在前面的2/3时间上失败呢?未必能走到后面的1/3时间上来啊,对吧。  

 

开发总结

 

  目前3天内搞定一个独立的内部管理系统,而且五脏俱全的是我从业10年左右的最快记录,当然若第二次做类似的东西,可能有希望2天内可以搞定了。

 

  经过多年的积累,手上才会有一个运行稳定、可以灵活配置的B/S开发架构,虽然看看都很简单,但是最起码不断完善几年后,才会达到铜墙铁壁的程度,我们经常会发现,开发一个小小的软件,往往1个月也开发不完,很可能是由于没有稳定的B/S开发架构导致的,这个架构也不是说技术,就是一个美观的整体效果良好的运行稳定的B/S系统吧,从头开发的B/S架构,由于需要调整很多细节环节、特别是页面、菜单的美观设计等上会耗费很多精力。

   有时候界面设计良好、程序思路严谨、用户交互效果好的B/S空框架也能卖出几万元,以前不能理解,现在是彻底能体会了,稳定的B/S架构的确可以值一些钱,因为是经过精雕细刻后才能形成最后的劳动成果的。

 

   软件的大体效果做到这里,大概花费了3天时间、接下来可能要花费的时间会更多,应该不止3天了,可能是30天,因为很多业务上的细节会耗费很多时间来调整,例如新增页面的先后输入的内容,页面输入的检查、页面的美观设计、光标的顺序优化、回车优化,输入内容的完善补充等等,查询页面的排序顺序优化、查询内容的先后顺序排版、表格中各列的宽度调整,一些提醒颜色的优化等等会有很多细节问题上还要耗费很久时间的, 做软件其实就是做细节,你需要有一个良好的B/S开发框架,否则全部自己弄,不知道什么时候才能弄好,有个良好的框架、再有良好的例子程序,整个管理系统,就是一个量的问题了,其次就是很多细节的优化上,会花费很多时间。

   

    有良好的稳定的B/S开发框架,前期工作只用了3天,若没有这个,从头开始做,可能30天也做不完,更不会把大多精力都花费在业务逻辑的细节优化上,可能更多的精力都耗费在B/S系统架构的稳定、优化上了,那这个软件的质量就更没保障了。

 

    有了稳定的B/S开发框架后,才好进行大规模生产、大量招聘人员做开发工作,若这些都没有,招聘来一大堆开发人员,那很可能局面就乱套了,大家就容易乱来了。

 

    ProjectManager.cs手工编写的商业逻辑代码如下:

代码
// ------------------------------------------------------------
//  All Rights Reserved , Copyright (C) 2010 , Jirisoft , Ltd .
// ------------------------------------------------------------

using  System;
using  System.Data;
using  System.Data.Common;
using  System.Collections.Generic;

namespace  Project
{
    
using  DotNet.DbUtilities;
    
using  DotNet.Manager;
    
using  DotNet.Utilities;
    
using  DotNet.Business;

    
///   <summary>
    
///  ProjectManager
    
///  项目跟进表
    
///
    
///  修改纪录
    
///
    
///         2010-09-28 版本:1.0 JiRiGaLa 创建主键。
    
///
    
///  版本:1.0
    
///
    
///   <author>
    
///          <name> JiRiGaLa </name>
    
///          <date> 2010-09-28 </date>
    
///   </author>
    
///   </summary>
     public   partial   class  ProjectManager : BaseManager, IBaseManager
    {
        
public  DataTable Search( string  userId,  string  searchValue)
        {
            
//  一、这里是开始进行动态SQL语句拼接,字段名、表明都进行了常量定义,表名字段名发生变化时,很容易就知道程序哪里都调用了这些。
             string  sqlQuery  =   string .Empty;
            sqlQuery 
=   "  SELECT *  "
                    
+   "  FROM  "   +   this .CurrentTableName
                    
+   "  WHERE  "   +  ProjectTable.FieldDeleteMark  +   "  =  0  " ;

            
//  二、我们认为 userId 这个查询条件是安全,不是人为输入的参数,所以直接进行了SQL语句拼接
             if  ( ! String.IsNullOrEmpty(userId))
            {
                sqlQuery 
+=   "  AND  "   +  ProjectTable.FieldCreateUserId  +   "  = ' "   +  userId  +   " ' " ;
            }

            
//  三、这里是进行参数化的准备,因为是多个不确定的查询参数,所以用了List。
            List < DbParameter >  dbParameters  =   new  List < DbParameter > ();

            
//  四、这里看查询条件是否为空
            searchValue  =  searchValue.Trim();
            
if  ( ! String.IsNullOrEmpty(searchValue))
            {
                
//  五、这里是进行支持多种数据库的参数化查询
                sqlQuery  +=   "  AND ( "   +  ProjectTable.FieldKeHuMingCheng  +   "  LIKE  "   +  DbHelper.GetParameter(ProjectTable.FieldKeHuMingCheng);
                sqlQuery 
+=   "  OR  "   +  ProjectTable.FieldKeHuXiangMuMingCheng  +   "  LIKE  "   +  DbHelper.GetParameter(ProjectTable.FieldKeHuXiangMuMingCheng);
                sqlQuery 
+=   "  OR  "   +  ProjectTable.FieldCreateUserRealname  +   "  LIKE  "   +  DbHelper.GetParameter(ProjectTable.FieldCreateUserRealname);
                sqlQuery 
+=   "  OR  "   +  ProjectTable.FieldDescription  +   "  LIKE  "   +  DbHelper.GetParameter(ProjectTable.FieldDescription)  +   " ) " ;

                
//  六、这里是判断,用户是否已经输入了%
                 if  (searchValue.IndexOf( " % " <   0 )
                {
                    searchValue 
=   " % "   +  searchValue  +   " % " ;
                }

                
//  七、这里生成支持多数据库的参数
                dbParameters.Add(DbHelper.MakeInParam(ProjectTable.FieldKeHuMingCheng, searchValue));
                dbParameters.Add(DbHelper.MakeInParam(ProjectTable.FieldKeHuXiangMuMingCheng, searchValue));
                dbParameters.Add(DbHelper.MakeInParam(ProjectTable.FieldCreateUserRealname, searchValue));
                dbParameters.Add(DbHelper.MakeInParam(ProjectTable.FieldDescription, searchValue));
            }
            sqlQuery 
+=   "  ORDER BY  "   +  ProjectTable.FieldSortCode  +   "  DESC  " ;

            
//  八、这里是将List转换为数组,进行数据库查询
             return  DbHelper.Fill(sqlQuery, dbParameters.ToArray());
        }
        
        
///   <summary>
        
///  更新(带有修改记录功能)
        
///   </summary>
        
///   <param name="projectEntity"> 实体 </param>
        
///   <param name="changeLog"> 修改记录 </param>
        
///   <returns> 影响行数 </returns>
         public   int  Update(ProjectEntity projectEntity,  bool  changeLog)
        {
            
//  若不需要修改记录
             if  ( ! changeLog)
            {
                
return   this .UpdateEntity(projectEntity);
            }

            String changeMessage 
=  String.Empty;

            
//  获取原来的数据
            ProjectEntity oldProjectEntity  =   this .GetEntity(( int )projectEntity.Id);
            
if  (oldProjectEntity.KeHuXiangMuMingCheng  !=  projectEntity.KeHuXiangMuMingCheng)
            {
                changeMessage 
+=   " 客户项目名称被修改为: "   +  projectEntity.KeHuXiangMuMingCheng  +   "  原值: "   +  oldProjectEntity.KeHuXiangMuMingCheng  +   " <br> " ;
            }
            
if  (oldProjectEntity.KeHuMingCheng  !=  projectEntity.KeHuMingCheng)
            {
                changeMessage 
+=   " 客户名称被修改为: "   +  projectEntity.KeHuMingCheng  +   "  原值: "   +  oldProjectEntity.KeHuMingCheng  +   " <br> " ;
            }

            
if  (oldProjectEntity.KaiGaiRiQi  !=  projectEntity.KaiGaiRiQi)
            {
                
//  changeMessage += "开改模日期被修改为:" + ((DateTime)projectEntity.KaiGaiRiQi).ToString(BaseSystemInfo.DateFormat) + " 原值:" + ((DateTime)oldProjectEntity.KaiGaiRiQi).ToString(BaseSystemInfo.DateFormat) + "<br>";
            }

            
if  ( ! String.IsNullOrEmpty(changeMessage))
            {
                BaseCommentManager commentManager 
=   new  BaseCommentManager( this .DbHelper,  this .UserInfo);
                commentManager.Add(
" 工程管理 " , projectEntity.Id.ToString(), projectEntity.KeHuXiangMuMingCheng, changeMessage,  false , String.Empty,  false this .UserInfo.IPAddress);
            }

            
return   this .UpdateEntity(projectEntity);
        }
    }
}

 

 

 

将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。

posted on 2010-10-07 21:39 吉日嘎拉 不仅权通用权限 阅读(5943) 评论(99) 编辑 收藏

#1楼   回复  引用  查看     强大~虽然总是在搞数据库。

2010-10-07 21:58 | hoodlum1980       

#2楼  回复 引用 查看   

我还是对那个登录界面比较感兴趣,楼主共享下吧。
2010-10-07 21:59 | 二叉树       

#3楼  回复 引用 查看   

不错,很详细!
能提供源码最好了,呵呵!
2010-10-07 21:59 | neekerss       

#4楼  回复 引用   

学习下如何实现多条件组合查询?
2010-10-07 22:02 | Mr.R[未注册用户]

#5楼[楼主]  回复 引用 查看   

@hoodlum1980
只有这个,客户肯给钱,搞别的没人要啊,我也不想做数据库,可惜没办法。

#6楼  回复 引用   

吉日老师的通用权限管理组件我买了很好 可惜我技术不行 正愁怎么把通用权限管理组件移植到我的项目里来,现在可好了,吉日老师做了个B/S项目来集成通用权限管理组件,吉日老师这源码卖吗??我想买
2010-10-07 22:37 | shenxc888[未注册用户]

#7楼  回复 引用 查看   

登陆界面不错,希望能够共享登陆界面
2010-10-07 23:06 | 马千里的博客       

#8楼  回复 引用 查看   

肾好肾强大
2010-10-07 23:16 | 亚历山大同志       

#9楼  回复 引用 查看   

引用shenxc888:吉日老师的通用权限管理组件我买了很好 可惜我技术不行 正愁怎么把通用权限管理组件移植到我的项目里来,现在可好了,吉日老师做了个B/S项目来集成通用权限管理组件,吉日老师这源码卖吗??我想买

牛阿!
2010-10-07 23:31 | Tony Zhou       

#10楼  回复 引用 查看   

厉害呀!
2010-10-08 08:03 | 阿宝QQ       

#11楼  回复 引用   

技术上我先不表,现在淘宝上几百元的定制小软件,现在已经在一定程度上改变外行人的眼光,以为只要是网站就只要几百块钱,我想我们这些接定单的人也是有一定责任的
2010-10-08 08:42 | fanshuzone[未注册用户]

#12楼[楼主]  回复 引用 查看   

@fanshuzone

若每个功能都卖出几百元,也是非常客观的了,一个系统至少有几百个功能,那就至少几万元起步了。

#13楼  回复 引用 查看   

楼主 在网上哪里 接的活
2010-10-08 08:53 | chenjun       

#14楼  回复 引用 查看   

这么个系统价格太低了, 影响了行情.
另外数据库操作为何不使用NHibernate, 还自己手工拼SQL.
用NHibernate连代码生成器也省了.
2010-10-08 08:56 | Do you know, jack?       

#15楼  回复 引用   

请教吉日老大一个问题啊,最近我也准备在淘宝里卖源码,
你是等对方确认收货之后才给源码,还是只要对方拍卖之后就给源码啦?
毕竟源码跟一般产品的不同之处是具有复制性。
2010-10-08 09:13 | 源码ABC[未注册用户]

#16楼  回复 引用 查看   

支持兄弟
2010-10-08 09:13 | Neo.Yan       

#17楼  回复 引用 查看   

三天搞定这个,我做不到……
2010-10-08 09:19 | sheng.chao       

#18楼  回复 引用 查看   

引用Tony Zhou:
引用shenxc888:吉日老师的通用权限管理组件我买了很好 可惜我技术不行 正愁怎么把通用权限管理组件移植到我的项目里来,现在可好了,吉日老师做了个B/S项目来集成通用权限管理组件,吉日老师这源码卖吗??我想买

牛阿!

的确牛啊
2010-10-08 09:19 | 傲视江湖       

#19楼  回复 引用 查看   

吉兄别乱了行情啊。

起码对外报价也要个1w2w。对内再说嘛
2010-10-08 09:19 |        

#20楼  回复 引用 查看   

支持一下
2010-10-08 09:21 | 伍华聪       

#21楼  回复 引用 查看   

好不错的文章,顶一个!
2010-10-08 09:28 | Jack Fan       

#22楼  回复 引用 查看   

能否提供个C# Code Builder 下载啊
2010-10-08 09:43 | 軒轅劍       

#23楼  回复 引用 查看   

楼主还要系尿布啊 代码都用代码生成器了 孩子的尿布还不用尿不湿?
2010-10-08 09:47 | chenjun       

#24楼[楼主]  回复 引用 查看   

首先你需要有一定的信誉,例如口碑,然后可以先收钱,再发源码,若没口碑,想在网上赚钱,是很难的。

引用源码ABC:
请教吉日老大一个问题啊,最近我也准备在淘宝里卖源码,
你是等对方确认收货之后才给源码,还是只要对方拍卖之后就给源码啦?
毕竟源码跟一般产品的不同之处是具有复制性。

#25楼  回复 引用 查看   

@吉日嘎拉 不仅权限管理
他的信誉极差!
2010-10-08 09:56 | JeetChan       

#26楼[楼主]  回复 引用 查看   

1:首先自己有一套快速开发框架。
2:其次,有自己的代码生成器,可以生成大部分代码。
3:有些SQL语句还是自己写比较灵活,毕竟想怎么写就怎么写,特别是业务超级复杂的SQL语句,还是自己写写更爽一些。
4:一天能净赚200元,而且还是休息时间,钱还是先付,还不用开发票,知足长乐,天天有200元可以赚,我也蛮开心了。

引用Do you know, jack?:
这么个系统价格太低了, 影响了行情.
另外数据库操作为何不使用NHibernate, 还自己手工拼SQL.
用NHibernate连代码生成器也省了.

#27楼[楼主]  回复 引用 查看   

我想报价10万啊,可以对方是初学者,肯掏600元,也是他1/3的工资了,我也不忍心太宰人家了,人家也是以学习为目的了。

引用辰:
吉兄别乱了行情啊。
起码对外报价也要个1w2w。对内再说嘛

#28楼[楼主]  回复 引用 查看   

尿不湿 效果不是非常好,小孩子PP还是会很红,适当的用尿布又环保又健康一些。

引用chenjun:楼主还要系尿布啊 代码都用代码生成器了 孩子的尿布还不用尿不湿?

#29楼[楼主]  回复 引用 查看   

也不能这么说人家,不是一两个人说差就成差了,客户说了才算。

引用JeetChan:
@吉日嘎拉 不仅权限管理
他的信誉极差!

#30楼[楼主]  回复 引用 查看   

不好意思啊,这个在淘宝上卖100元一套,若有兴趣可以购买,若觉得100元也不值,也没必要下载了,多下载一个垃圾而已了,没啥必要。

http://item.taobao.com/item.htm?id=3281045592

引用軒轅劍:能否提供个C# Code Builder 下载啊

#31楼[楼主]  回复 引用 查看   

都是通过博客园接的,你在博客园仔细认真写了很多文章后,自然有人会找上门来做软件了,先有付出后有收获,这个是普遍的道理了。

引用chenjun:楼主 在网上哪里 接的活

#32楼[楼主]  回复 引用 查看   

@Jack Fan

谢谢支持,非常感谢。

#33楼[楼主]  回复 引用 查看   

@伍华聪

谢谢支持,非常感谢。

#34楼[楼主]  回复 引用 查看   

可能是你谦虚了,你也应该有这个能力的,只是没拿出来而已了。

引用sheng.chao:三天搞定这个,我做不到……

#35楼  回复 引用 查看   

不错啊
2010-10-08 10:23 | 超级奶崽       

#36楼[楼主]  回复 引用 查看   

@超级奶崽
谢谢支持啊

#37楼  回复 引用 查看   

很不错的东西。
这个IT界就应该这样,即应该有专注于技术的人,也应该有商人。前者推动生产力发展,后者将研究成果转化为价值,缺一不可。
我觉得既不能强迫每一个人都去研究技术,也不能强迫每一个人都必须会挣钱,更没有必要互相鄙视。这两者做的工作没有高低贵贱之分,都在为IT发展做贡献。
2010-10-08 11:22 | EricZhang(T2噬菌体)       

#38楼[楼主]  回复 引用 查看   

@EricZhang(T2噬菌体)

开心就好,学技术学了10来年了,总希望能见点儿钱,就算是小钱也可以,赚了钱,给小宝宝买点儿日用品而已了。

#39楼  回复 引用 查看   

如果变成一天,楼主就能大大搞高了自己的日工作回报...600/天
不过能自己做的东西能产生效益还是不错,起码比没有产生效益好.
2010-10-08 11:36 | henry       

#40楼  回复 引用 查看   

@吉日嘎拉 不仅权限管理
楼主不厚道啊, 哈哈。
就是因为接私活, 使整体IT界的项目价钱越来越低 , 还要不停的抱怨工资低 , 嘿嘿。
这就是你们做出的重要的贡献 哈哈 其实哥也想接私活 ^_^
2010-10-08 12:01 | JasenKin       

#41楼  回复 引用 查看   

看到这段代码,总有说不出的话:

sqlQuery += " AND (" + ProjectTable.FieldKeHuMingCheng + " LIKE " + DbHelper.GetParameter(ProjectTable.FieldKeHuMingCheng);
2010-10-08 12:07 | 个人知识管理       

#42楼  回复 引用 查看   

楼主的文章值得一读 尤其是我们这些还在学校读书的学生 对以后的工作有很好的帮助....
2010-10-08 12:31 | 有风起浪       

#43楼  回复 引用   

引用吉日嘎拉 不仅权限管理:
4:一天能净赚200元,而且还是休息时间,钱还是先付,还不用开发票,知足长乐,天天有200元可以赚,我也蛮开心了。

你的工资也不止200一天啊。何况以后还可能要维护
2010-10-08 12:35 | 有点低[未注册用户]

#44楼  回复 引用 查看   

提供源码吧,奉献一下,呵呵!
2010-10-08 12:54 | neekerss       

#45楼  回复 引用 查看   

不错 学习 膜拜
2010-10-08 13:06 | 月夜 思量       

#46楼[楼主]  回复 引用 查看   

下次再遇到类似的事情,那就1天就可以足够搞定了,哈哈

引用henry:
如果变成一天,楼主就能大大搞高了自己的日工作回报...600/天
不过能自己做的东西能产生效益还是不错,起码比没有产生效益好.

#47楼[楼主]  回复 引用 查看   

这个客户是开发人员,基本上不用售后服务了。

引用有点低:
引用吉日嘎拉 不仅权限管理:
4:一天能净赚200元,而且还是休息时间,钱还是先付,还不用开发票,知足长乐,天天有200元可以赚,我也蛮开心了。

你的工资也不止200一天啊。何况以后还可能要维护

#48楼[楼主]  回复 引用 查看   

暂时可以理解为,能抓老鼠就是好猫,毕竟功能达到了,客户就肯付款了。

引用个人知识管理:
看到这段代码,总有说不出的话:

sqlQuery += " AND (" + ProjectTable.FieldKeHuMingCheng + " LIKE " + DbHelper.GetParameter(ProjectTable.FieldKeHuMingCheng);

#49楼  回复 引用 查看   

一看标题便知就是 吉日嘎拉“大牛”的”大作“
2010-10-08 13:55 | Rioyang       

#50楼[楼主]  回复 引用 查看   

@Rioyang

说实话,标题是为了让别人能搜到,能被搜索引擎啥的搜到,才起了这个么长的

#51楼  回复 引用 查看   

强大,
非常赞同博主的观点,小项目更锻炼人的,还有就是积累,

大单不好接,有时候小单的收入更可观呢

2010-10-08 14:40 | Sum_yang       

#52楼  回复 引用 查看   

不错 同在杭州 顶一下 有单子合作合作哇
2010-10-08 14:41 | 沉默暴风       

#53楼  回复 引用 查看   

界面不错,如果可以分享那就好了

#54楼  回复 引用 查看   

以后我们都不写代码,我们生成代码:)
2010-10-08 14:44 | Clingingboy       

#55楼[楼主]  回复 引用 查看   

@Sum_yang

虽然钱少,但是赚得安心,辛苦几下就可以竣工了,大单子要痛苦1年甚至要痛苦2年才可以,钱也没那么好赚的。

#56楼[楼主]  回复 引用 查看   

@沉默暴风

有好的项目时,的确需要合作的,否则消化不了大订单了,特别是上百万级的大单子来了,需要很多人手帮忙才可以。

#57楼[楼主]  回复 引用 查看   

@总想拥有自己的天空
分享是可以的,只是无法免费分享而已啦。

#58楼  回复 引用 查看   

一个人只能做好那么很少的几件事情..
2010-10-08 15:19 | FLY FREE       

#59楼[楼主]  回复 引用 查看   

@FLY FREE
所以一直坚持这个管理类软件的方向了,呵呵

#60楼  回复 引用 查看   

吉日大叔工作效率真高啊,3天就搞好了
2010-10-08 15:53 | Veiller       

#61楼  回复 引用 查看   

这个就不用写吧!
2010-10-08 15:58 | 送海       

#62楼[楼主]  回复 引用 查看   

@送海
哪个?不用写?

#63楼  回复 引用 查看   

我看见题目 就猜到作者了
哈哈哈哈 我太NB了
2010-10-08 16:35 | aixuexi       

#64楼  回复 引用 查看   

值得顶一下的文章
2010-10-08 16:38 | 苏飞       

#65楼  回复 引用 查看   

鄙人不才,用两天搞了个800元的网站。 也是得益于自己的一个完善框架。
这方面是和吉日老实学的。 顶起吉日!
2010-10-08 16:44 | 王一一       

#66楼  回复 引用 查看   

就是个三级菜单让我很不爽!
2010-10-08 16:45 | 王一一       

#67楼  回复 引用 查看   

吉日嘎拉老师,我想请教一下,你这个页面样式,布局是怎么很快搞定的!看上去也很专业。
2010-10-08 16:55 | 玩转.NET       

#68楼[楼主]  回复 引用 查看   

@玩转.NET
找高人,然后从高人手里拿过来,自己是不可能设计不出这么漂亮的。

#69楼[楼主]  回复 引用 查看   

当系统有很多模块后,无法逃脱三级菜单的命运,当功能模块超级多了三级菜单还是很好用的。

引用王一一:就是个三级菜单让我很不爽!

#70楼  回复 引用 查看   

@吉日嘎拉 不仅权限管理
从别人的手里弄,应该有一套这样成熟的框架吧!
2010-10-08 17:03 | 玩转.NET       

#71楼  回复 引用 查看   

还有就是你找别人弄,人家收费么?
2010-10-08 17:05 | 玩转.NET       

#72楼[楼主]  回复 引用 查看   

@玩转.NET

哪里有那么多免费的事情啊,设计一个页面大概是400-800元的设计费。

#73楼  回复 引用 查看   

原来是临安的,昨天刚从临安回来
2010-10-08 17:35 | 草珊瑚       

#74楼  回复 引用 查看   

哎,中国的父母一切都为了孩子,吉日大哥也是个慈父呀。啥时候我也能熬到吉日大哥这步呀...
2010-10-08 17:42 | greg_echo       

#75楼[楼主]  回复 引用 查看   

@greg_echo
年纪大了,自然就到了,哈哈

#76楼  回复 引用 查看   

很不错,个人能做到这样已经很不错了。
老是用的,通用组件和权限系统是啥系统啊,我也学习一下。我也是初级入门人。你这里有些东西我还看不懂,

343362882@qq.com 。谢过 。
2010-10-08 18:05 | kydcbt       

#77楼  回复 引用   

项目经理给我安排工时,这个项目大概也就3天吧,包括测试,看来我还得努力啊:-)
2010-10-08 22:27 | dear coco[未注册用户]

#78楼  回复 引用   

感谢园子里面的哥们姐妹们,我每天都看你们的博客!看了有很多的感悟!感觉对自己有很多帮助!再一次感谢你们!
2010-10-08 22:54 | hehe+ajax[未注册用户]

#79楼  回复 引用 查看   

支持~
2010-10-09 10:29 | 通心菜       

#80楼  回复 引用 查看   

其实这功能吉日一天就搞出来了,后面两天是沟通细节。
对于初学者,开始只会拉拉控件,去搜索代码。一点一点拼凑,拿到这个管理组件的源代码后大部分的功能和界面都可以直接借用。

对于卖得太低。卖600是低了,但是对于一个购买过500元权限管理组件的回头客来说,所需要的就是这么一个实际项目中的应用。我就是这个初学C#3个月的菜鸟,有了大量的视频,文章,说明书,及CS,BS的小样例。还是因为太笨而无法使用它来开发自己的小系统。我不是最终用户,全部自己维护。

对于要求开源的:这样成熟的东西开发花了很多精力,收费也是合理的,主要是对于我这样的初学者,花点钱买套系统,加上高手的讲解,能大大提高软件开发能力。学习上能得到回报的付出都是值得的。
2010-10-09 12:05 | 升斗小民       

#81楼  回复 引用 查看   

@二叉树
登陆页面要到管理组件里的一些类,通过DotNet.Utilities组件的方法,去访问DotNet.DbUtilities这个数据访问组件,再根据不同的数据库访问方法去访问最终数据库。
这个是分层系统,要这个登录页面的源码也没用,里面使用的方法都是调用组件。
2010-10-09 12:11 | 升斗小民       

#82楼  回复 引用 查看   

有了稳定的B/S开发框架后,才好进行大规模生产、大量招聘人员做开发工作,若这些都没有,招聘来一大堆开发人员,那很可能局面就乱套了,大家就容易乱来了。
-----------------------
顶这段话,我们告诉就是招来开发人员,却没有稳定的框架,各搞各的,也没有培训。结果谁也接手不了对方开发的程序,前面的开发人员走了,后面的人来维护又得重新开发系统,而且没有设计文档,又用使用以前的数据库,N台服务器,几百数据库,挨个的去寻找那么几张数据表。
2010-10-09 12:19 | 升斗小民       

#83楼  回复 引用 查看   

哥表示很无语
2010-10-09 16:12 | 飞无痕落无声       

#84楼  回复 引用 查看   

路过 学习
2010-10-09 16:54 | 魔术游客       

#85楼  回复 引用 查看   

我只对楼主那个什么画流程图的软件感兴趣。叫什么?
2010-10-10 10:30 | 阿超-       

#86楼  回复 引用 查看   

引用升斗小民:
@二叉树
登陆页面要到管理组件里的一些类,通过DotNet.Utilities组件的方法,去访问DotNet.DbUtilities这个数据访问组件,再根据不同的数据库访问方法去访问最终数据库。
这个是分层系统,要这个登录页面的源码也没用,里面使用的方法都是调用组件。

吉日的马甲?
2010-10-11 11:30 | 二叉树       

#87楼  回复 引用 查看   

做最好的,要开源比较好。开源吗。
2010-10-11 11:40 | 小☆兵       

#88楼  回复 引用 查看   

图是用什么画的哦
2010-10-11 13:34 | longjiang       

#89楼[楼主]  回复 引用 查看   

@longjiang
word2007 画的

#90楼  回复 引用 查看   

博主:

如果请你设计一个医院系统产品的主页,界面简洁,有产品新闻,产品介绍,典型客户,技术支持,技术支持可以采取论坛的方式,请问搞这样的,你报价多少钱.

2010-10-11 17:32 | wantme       

#91楼[楼主]  回复 引用 查看   

@wantme

一般是一个页面800元或者1000元的设计费

#92楼  回复 引用 查看   

发现个共性问题
录入测试数据时,吉日兄也和我一样喜欢 asdf ...@ ##.
:)
2010-10-12 12:51 | 鹅毛山人       

#93楼[楼主]  回复 引用 查看   

@鹅毛山人

这个毕竟不是100万的项目,没办法,哈哈。

#94楼  回复 引用 查看   

对 前提是一定要有一套自己熟悉的框架
再结合代码生成器(可以自己写一个适合自己框架的)

很快的

如果是网吧 就慢点。。因为涉及到页面设计的问题
2010-10-12 13:40 | show_show       

#95楼  回复 引用   

十一7天也做了个广告公司从接单到计划广告播放的管理系统。白天带4岁半的小朋友去玩,晚上开夜车,大概也三天时间吧。这是老板朋友的项目,他自己的公司搞硬件,我搞软件,现在不收一分钱,若成功,应该不下1W。故共勉。
2010-10-12 15:43 | 亚力[未注册用户]

#96楼  回复 引用 查看   

呵 目前我主要整信息化方面开发 对erp还比较熟悉 有机会合作!
2010-10-13 10:51 | 沉默暴风       

#97楼[楼主]  回复 引用 查看   

@沉默暴风
收到你的信息很高兴,我们多沟通交流啊。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值