电话本小程序开发完成及感想 20111125
这周花了几天业余时间开发了一个电话本的小程序。
程序虽然很小,很简单,也很丑陋,但是确实本人开发的第一个完整的可用的App。构思,编码,简单的测试,直到制成安装包都是一个人完成。以前虽然也写了不少C#和java代码(几万行吧),也写过无数的C和C++的小玩意,但要么是只完成大项目的很小一部分,要么就是那种没啥意思的“hello world!”测试算法的可行性。
程序的基本信息:
开发工具: VS2010;
大 小 :安装包500k;
有效代码:500行左右;
架 构 :.NET 4.0 Client Prifile;
主要技术:XML 读写,WPF 界面制作;
开发时间:大约不到20小时吧,估计在15小时左右;
以下是一些截图:
登录
个人配置和注册
主界面
虽然是小程序还是总结了一些经验,记下来,以后说不定用得上。
1. 一定要防止贪多求全,贪多吃不下的情况。上次的坦克大战就因为这个原因夭折了,又想界面很炫,又想结构新颖,还想使用没有过的新技术,结果只有死路一条。这次谨记在心,对功能能简化就简化,界面也简单到极点,终于修得正果。
2. 先进行技术测试在进行实际开发,为了这个程序写了三四的小程序测试关键技术和想法是否可行,完成之后才进行的开发。
3.分层分块开发,最后进行拼装。保证每个层之间的独立性,不仅方便开发也方便日后的维护和升级。数据逻辑与界面的分拆使得未来可以对界面或下层逻辑进行单独的改进。在开发上层界面时,使用了一个TestData类,这个类用一些列的static 方法提供了界面需要的假数据。在开发下层时又使用了一个console程序。等到两个都差不多的时候才进行的组装。
4.跑通优先,逐步求精。在最开始的时候,界面就是几个歪歪扭扭的按钮,在界面中间写界面名称。点击按钮的结果就只有两种,要么转到另一个界面,要么弹出messagebox 显示按钮的名称。先把所有的函数都写出来,不急着实现,返回个null 或是 new 的实例或是 testdata 中取出的假数据,等跑通之后,逐个实现。界面一点点的丰富,最后在调整位置大小那些无关紧要的东西。
5.自己做了个app始终弄不出安装包来,后来重装 VS 才发现这个安装包博大精深啊,什么加密啊,安装环境监测啊,用户自定义安装啊,回滚啊,安装目录选择啊,安装前校验啊,数据压缩啊,安装进度跟踪啊,检测以往版本修复或卸载啊......
6.写程序就是一个迭代,永远达不到一个真值,只能在两次迭代的结果相差一个足够小量是停止,认为这是一个解
关于未来的改进(可能是很久以后的事情了):
1. 数据访问还可以改进,可以考虑用 IQueryable 类型进行复用;
2. 界面有待改善
3. Controller 作用有待改善,BL去掉用多个Factory代替
4.记录不能分组
5. 异常处理问题
6.数据访问可以考虑用一个通用的借口隔离开,IDataAccess,factory只调用接口不调用数据访问类,方便数据访问扩展到多种不同的存储方式
7. 导入导出
暂时就这么多,到时候再加。