• 公路养护系统


    这是我入职A公司的第二个项目,也是我主管的第一个项目。
    甲方的单位地址在云南,我作为技术跟着领导出差调研。开始拿到这个项目,也是因为入职不久,想有所建树,所以倍感压力。毕竟是跨行业,业务逻辑云里雾里。只是想过去详细了解。
    最开始的几天,我拿着各种报表,一行行的数据把我难住。我分不清报表间的关系。白天调研解惑,夜晚研究报表,终于完全掌握其中脉络。也十分感谢当时牵头调研的老总。
    我是初冬时节去的云南,调研为期一周。我也确实领略到彩云之南的魅力。春城12月依然暖风拂面,花团锦簇,路边的绿色也总是让我兴致盎然。
    到达目的地,接待我们的是个中年男子,身子高挑,偏瘦。两鬓已然斑白。经介绍得知是L总。L总是东北人,性情十分和善,说话声音不高,慢条斯理。我们到达已经快日落,所以没聊多久便去用餐,后来也知道这里天黑在8点左右。
    对于食物来说云南菜偏辣,属川菜。因我在四川呆过一段时日,故十分偏爱川味。席间最让我头痛是喝酒,推杯换盏,几两白酒下肚已是飘飘然。L总从服务员那要来烟囱自顾自的抽起香烟,在北方这东西是没有的,我疑惑发问,L总告诉我用这东西抽来劲。一斤白酒打发完毕也结束了饭局,这次尚能自己。到接下来的饭局我却不能把持了。
    第二天正式调研,因为要下到地方单位,难免舟车劳顿,坐在车上看风景别有一番滋味。云南山清水秀,青早水面飘着渺渺水雾,如果搭配朵朵莲花,绝会让人以为仙境。
    调研一周,回去开发。到正式实施时我再次来到云南,更是心旷神怡。
    项目是一种资料档案系统,其中更夹杂着查评/决策,开发时难免遇到问题,我就简单说说

    1、项目的搭建
    使用三层架构搭建,三层架构的好处在于节省开发成本,提升开发速度。架构搭建好,使用动软生成代码,整个项目也就初见轮廓。动软生成器的强大之处在于代码模板,可以自定义模板进行独特代码生成。在web层我新建页面父类使所有页面继承这个类而不是system.web.ui.page。这个类的作用是进行权限验证,加载文件等。也就是所有页面共用的代码我会写在这里面。


    2、数据分页如何处理
    关于分页,我单独建立个用户控件,封装诸如pagesize(数据显示条数)、pageindex(页面索引)等属性,页面只要引用该控件赋值数据源、数据控件即可。数据源的获取是通过sql语句获取的,一般分页的sql语句有四种,各种效率不同。
    各种分页方法的比较
    http://www.cnblogs.com/archip/p/3394722.html


    3、图片上传如何处理
    html上传控件虽然用起来方便但功能不够强大,我需要过滤文件、实时的上传进度、多文件上传等,我找到swfuplad上传控件,它是开源的flash控件,我将之封装成.net控件方便使用,暴露出上传文件个数、文件列表、文件类型等属性。页面引用即可,方便快捷。


    4、天气的处理
    项目需要一个功能,每天自动读取当天天气状况。这需要我建立个timer在global.asax文件中。timer定时调用网络上提供的webservice。


    5、复杂的业务处理,多表操作
    有这样一个业务逻辑。A包括多个B,B包括多个C。当我添加A时同时添加B和C。这个需求里面还包括材料库存的操作。实现这个需求,运用到SQL中的事务,事务的好处在于一荣俱荣,一损俱损。当执行的批处理中出现错误异常整个批处理被认定执行失败,已执行的操作进行回返。


    6、权限
    权限的处理本来设想有两种方法,一种通过当前请求的url,一种通过当前请求的命名空间。最后使用的是url。我单独建立权限类,该类维护一个权限列表,当每次请求发生时需要和权限类进行比对。因为每个用户存有权限id列表。同时通过父类我可以设置页面用某个控件的禁用状态。(页面中的控件名称必须遵守既定约定)比如页面有个删除按钮,id=“btnDel”。那么我就可以使用this.forms.controls.find(t=>t.ID=="btnDel")来控制。


    7、模型数据
    项目中会遇到一些模型它们有多条数据,但是这些数据不会频繁更改,或者永久不改。我们如果放到数据库,那么运行时必须读取,增加请求数量。所以我单独建立模型数据类。用来维护这些模型的数据列表。

    其他的也没什么了,到此结束。

    本文不涉及实际代码,只谈实现方法及解决方案。

  • 相关阅读:
    Compiling Open Source Software for UNIX using Configure Script
    vlcandroid 移植live555到android
    xcode中armv6与armv7的困惑
    ZOJ 3204 Connect them (最小生成树,输出字典序最小的解)
    POJ 3133 Manhattan Wiring (插头DP)
    HDU 4419 Colourful Rectangle 第37届ACM/ICPC 杭州赛区网络赛 1010题 (线段树)
    HDU 3829 Cat VS Dog (二分匹配求最大独立集)
    最大流模板(SAP算法)(邻接表形式)
    HDU 4417 Super Mario 第37届ACM/ICPC 杭州赛区网络赛第1008题 (划分树)
    ZOJ 3203 Light Bulb (数学直接推公式 或者 三分法)
  • 原文地址:https://www.cnblogs.com/archip/p/3722015.html
Copyright © 2020-2023  润新知