zoukankan      html  css  js  c++  java
  • 项目实战

    项目实践

    摘要:我要实现的是一个医学考试的网站程序,以至到现在想达到一个社区的效果,SNS.项目编码中又更换了一次数据库,因为总觉得mssql不能好狠的满足我的需要,对服务器mssql连接和更新都不方便,最后我选择的是Mysql,幸好我只是重写了DAO,和部分BL成的代码,那么我们就从头来说一说这个程序编写的流程,包括一些细节,我尽可能的全面概述,当然到目前为止,我还是有很多内容没有解决,我们共同学习.

    数据库设计:

    和同类项目相同,我并没有先进行实体类的设计,我觉得2者方法大同小异,有人喜欢用建模工具等等,而我是先在纸上画出来大概的需求,然后就开始设计数据库.

    对于mssql和Mysql都已经有了可视化的操作界面,就不用再编写sql语句了.

    这是Mysql的Navicat8 

    主键使用自动增长,更有规律一些,

    每个表之间有主外键来约束,

    之后我发现每个表与user的关联是最多的,而且越来越多,那么这也就是我为什么设计至sns方向的原因之一.

    Mysql和mssql的sql语法有一些不同,如初始化的时间,选取前多少条记录等等,分页limit.

    对于字段,尽量使用相同的类型的.int,varchar,datetime等等.

    其中Navicat8 给我们提供了非常好的操作体验,包括增加用户,数据导出,数据结构同步,数据同步..

    数据库里的字段,类型随着开发的深入,并不是一成不变的,也存在增加字段,删除不用的字段,修改字段的名称或类型,这下数据库层不是很难写了码?

    借助ORM来祝你一臂之力,我以前是通过NBear Nhibernate,等实现DAO层的,但却发现这样的工具是功能可以实现,性能蹦不是令人满意,在多表联合查询,的时候是不能和ADO相比的,(有时候我竟然用到了4表联合查询)

    那么我还是觉得这样一个有发展的网站不能太依赖别人的框架,虽然是开源的,也有一些文档,但并不是所有的代码我都能读懂,更可怕的应该是出错时就不知道如何处理了,那么简单最有效的当然是使用SQL和ADO来操作数据库了,又回到了起点,怎么处理字段的变更呢?

    我想你推荐一个工具,叫codeSmith,这是个代码生成工具,我相信项目之间或之内总是有很多相同的东西,比如我们经常使用的CRUD操作.市面上也有很多代码生成工具,而这款工具是可以自定义模板,支持多种数据库,并且能方便的输出到文件,还可以生成VS的工程文件(这个我没有深入研究,能生成文件就可以达到我的要求了)

    那么问题解决了 ,表名字段变更了,我只要用codeSmith点一下生成按钮,所有的DAO和Model类库都更新了,多么的惬意.

    当然你如果对codeSmith不太了解,我告诉你,这个工具很简单,你用半天的时候就能完全掌握他,因为文档丰富,并且学习他,会令你事半功倍.

    以后会把我的模板分享给大家

    我的DAO也许你一看就懂了,包括Insert,save ,getone,getlist(),getlist(pageno,pagesize)等等,基本的操作.

    下一步就是如何用这个DAO来开发网站了.

    美工与程序总是不能兼容

    有一定开发经验的朋友,都会试着学习通过模板技术来实现程序与美工彻底的分离,或者达到更换皮肤的效果.

    包括codebehind,MVC,templateString等.我

    怎么来解决这一问题呢?

    我是通过usercontrol来实现的,通常我们都是用拖拽的方式来加载使用预先定义好的usercontrol,那么我这一次不是这样了,是用后台代码来控制加载你需要的usercontrol.

    在根目录中我定义了一个文件并且基本是个空的文件.

    后台的cs来控制usercontrol的加载.

    举例说明:我在url地址栏上输入http://loacalhost/index.aspx?action=index

    那么我加载的是/template/Default/index/index.ascx,这个过程是通过pagebase来实现的.

    那么我是如何更换主题呢?把default换掉,对应的,目录和文件与default也要相同.但头部的标识要和default的相关联.

  • 相关阅读:
    图论1 Tarjan算法
    codevs1380 没有上司的舞会
    阿牛的EOF牛肉串
    codevs1105 过河
    HDU5340 Three Palindromes
    AndroidStudio中安装GsonFormat插件并根据json文件生成JavaBean
    Android中五种常用对话框的使用
    AndroidStudio中更新到最新版本后仍然提示:This version of the Android Support plugin for IntelliJ IDEA (or Android Studio) cannot o
    AndroidStudio中下载某版本gradle速度慢,从哪里高速下载指定版本gradle
    若依微服务版怎样修改Nacos中配置文件使Url不受权限认证跳过Token验证
  • 原文地址:https://www.cnblogs.com/zq535228/p/1272532.html
Copyright © 2011-2022 走看看