网站项目开发要点---一个实际项目开发心得

1.显示需要选择的数据时,一定先要此数据是否为海量数据.例如:选择下拉框中加100条记录.你的用户不骂死你.
2.尽量不要限制用户的输入内容.
对输入内容进行验证(正则表达式)
分割及处理返回为空的项(String.split(new String[]{‘ ‘,‘;‘},StringSplitOptions.RemoveEmptyEntries))
考虑中文,全角字符内容.
3.后台界面设计时就预先定好css,一般后台界面开发完成后,界面改动不是很大,处理下css就行了.否则一个个td改累死你.
4.网站目录的统一规划.比如后台管理都放到管理员目录里.这样方便一会对个别目录的访问权限进行限制,同时也可以限制哪些目录不需要被搜索引擎收录.
5.开发BN层类时,一定先考虑这个类的功能是否能够再拆分成更具体的子类,那么你就可能需要建个抽象类,然后继承它.不过,很多时候,我们考虑不到这些,那么当你的一个类中的方法越来越多时,你就该考虑是否有必要对这个类进行拆分了.
例如:我们有一个处理汽车的逻辑类,刚开始,没有问题,但后来,汽车种类多了,你就要在很多时候判断这是什么类型的汽车,然后再根据这个类型的汽车调用对应的方法去处理.这时我们就要把这个类进行拆分.新建一个汽车的抽象类(如果它们中有很多重复的逻辑实现,那就要考虑再另建个汽车接口),然后对每个类型的汽车建实现类,这些实现类都继承上面的抽象类和接口.在每个类型的实现类中处理对应逻辑.
6.只向BN层传递参数(不要构造SQL语句参数,这个应该在BN层或Data层中对应表的Filter类中构造).
7.根据用户输入的内容来构造SQL语句时,一定要使用传递参数的方法,这样可以有效的仿制sql注入攻击.就是先构造带各个参数的sql语句,例如[email protected],然后用SQLParameter生成要传递的参数.

8.在有可能会被大量访问的页面中或对页面有速度要求时,禁用页面ViewState,页面控件使用Html提供的控件.

9.不要使用Net2.0新增的CallBack功能,要Ajax就直接写javascript 利用xmlhttp.网上多的是代码.

10.查询数据有返回时,不要利用DataSet类,对数据库结构依赖性太高.要把数据转换为Data层中对应的DT和DV类(DT和DV类可以有效的防止因打字错误造成的运行时问题,并能够在编译时就提示错误.).并存储在IList对象中返回.

11.后台以外的无限制访问的页面链接的参数应该清晰明了,便于用户自行构造和搜索引擎收录

12.发现不同页面中包含相同部分时,马上想到要进行拆分,新建用户自定义控件.

13.Asp.net控件的事件绑定代码要求最好定义在后置代码页面中.

14.给DataSource指定数据源,应该放到该控件的DataBinding事件中处理.

15.页面之间传递参数时,如果中间是利于javascript函数处理的,使用javascript代码传递的中文很有可能会产生乱码问题.可以用下面js代码进行处理.

function EncodeUtf8(s1)
{
    var s = escape(s1);
    var sa = s.split("%");
    var retV ="";
    if(sa[0] != "")
    {
        retV = sa[0];
    }
    for(var i = 1; i < sa.length; i ++)
    {
        if(sa[i].substring(0,1) == "u")
        {
            retV += Hex2Utf8(Str2Hex(sa[i].substring(1,5)));
        }
        else retV += "%" + sa[i];
    }
    return retV;
}

function Str2Hex(s)
{
    var c = "";
    var n;
    var ss = "0123456789ABCDEF";
    var digS = "";
    for(var i = 0; i < s.length; i ++)
    {
        c = s.charAt(i);
        n = ss.indexOf(c);
        digS += Dec2Dig(eval(n));
    }
    //return value;
    return digS;
}

function Dec2Dig(n1)
{
    var s = "";
    var n2 = 0;
    for(var i = 0; i < 4; i++)
    {
        n2 = Math.pow(2,3 - i);
        if(n1 >= n2)
        {
            s += ‘1‘;
            n1 = n1 - n2;
        }
        else
            s += ‘0‘;
    }
    return s;
}

function Dig2Dec(s)
{
    var retV = 0;
    if(s.length == 4)
    {
        for(var i = 0; i < 4; i ++)
        {
            retV += eval(s.charAt(i)) * Math.pow(2, 3 - i);
        }
        return retV;
    }
    return -1;
}

function Hex2Utf8(s)
{
    var retS = "";
    var tempS = "";
    var ss = "";
    if(s.length == 16)
    {
        tempS = "1110" + s.substring(0, 4);
        tempS += "10" + s.substring(4, 10);
        tempS += "10" + s.substring(10,16);
        var sss = "0123456789ABCDEF";

        for(var i = 0; i < 3; i ++)
        {
            retS += "%";
            ss = tempS.substring(i * 8, (eval(i)+1)*8);

            retS += sss.charAt(Dig2Dec(ss.substring(0,4)));
            retS += sss.charAt(Dig2Dec(ss.substring(4,8)));
        }
        return retS;
    }
    return "";
}

16.搜索结果对不同字段按不同比例进行排序.例如:对周统计和月统计两个字段分别按0.4和0.6的比例进行排序.select weekcount,monthcount from tablename order by (weekcount*0.4 + monthcount*0.6)

17.对显示结果列表的每条记录进行点击量或浏览量统计,建议点击跳转到一个通用页面进行统计,然后在根据需要进行处理.

18.不使用和无用代码尽快删除

19.类和方法的注释最好使用///方式,方便其它开发人员使用.

20.不要将获取的数据处理为特殊构造的字符串格式,并作为返回值或参数,这样会限制数据内容.例如:”数据;数据;”这个字符串格式会导致数据内容不能包含分号.

21.后台页面数据非必要不要保存在Session中,放到ViewState中保存.离开该页后数据自动清除.Session不会.

22.SQL语句的构造,尤其是查询条件的特殊处理应该放到Data层的该对应表的Filter类中处理.便于后期维护.

23.Data层的DV类用于返回数据结构的扩展,例如多表查询,可以在DV中添加保存返回的其它表字段的数据属性.也可以新建一个属性用来保存所属子表的数据对象,方便对父子表等类似情况产生的数据结构进行处理.parentclassDV.getChildclassDV.fieldData

原文地址:https://www.cnblogs.com/masahiro/p/10130741.html

时间: 2024-10-17 04:38:29

网站项目开发要点---一个实际项目开发心得的相关文章

3.将maven项目jar纳入maven仓库,Mave项目依赖另外一个Maven项目的案例

 1 若想让maven项目依赖另外一个maven项目,被依赖的项目要在maven仓库中有相应的jar包,所以要对依赖的项目执行mvninstall命令. 2 新建第二个项目模块HelloFriend目录及约定的目录结构 HelloFriend --src -----main ----------java ----------resources -----test ---------java ---------resources --pom.xml 3 在项目HelloFriend根目录建立p

DirectX3D开发之开发第一个DirectX3D项目

欢迎访问EasyLiu的博客!此博客为博主原创,未经允许不得转载! 开发环境:WIN764+VS2013+DirectX SDK(June 2010) 首先提供DirectX3D软件包下载地址:http://pan.baidu.com/s/16WItw. 下载下来之后直接双击安装就行,默认安装目录为:C:\Program Files (x86)\Microsoft DirectX SDK (June 2010). 下面就开始我们的第一个DirectX3D项目. 1.新建一个空的win32应用程序

Maven 学习(二)使用eclipse构建Maven项目及发布一个Maven项目

开发环境: Eclipse Jee Mars(截止2015年12月1日目前的最新版eclipse4.5),下载地址:http://www.eclipse.org/downloads/ 因为此版本已经集成了M2E的插件,再者Mars版本的eclipse也比较稳定,可以省一些不必要的麻烦. 一.构建Maven项目 用eclipse构建maven项目之前我们需要为eclipse做一些必要的配置 一些必要的配置 1.点击eclipse菜单栏的Window下的preferences,选择Maven菜单 2

敏捷开发是一个什么样的开发模式

在信息技术高速发展的今天,有很多的开发任何要求开发人员增量交付,迭代式开发,能够持续集成.很显然传统的瀑布开发模式已经不能满足需要了,于是,敏捷开发这种模式就出现了. 接触过敏捷开发的朋友可能会知道,敏捷开发有如下的价值观: 个体与互动 胜于 过程与工具,可工作软件 胜于 复杂文档 用户协作 胜于 合同谈判,响应变化 胜于 遵循计划 下面新霸哥将会用一个真实的案例的给大家讲讲敏捷开发. 每天早晨上班前一项重要的任务那就是晨会(由于时间很短,所以大家都是站立开会的),主要就是回报一下昨天自己的工作

一步一步图示开发第一个Android项目并运行 看图学Android---Android 开发实例教程二

一.生成一个Android应用工程 1.运行eclipse.exe 2.见下图 3.进入界面 4.输入 应用.项目.包名称 5.选择 项目建立的工作空间路径: 6.配置 图标和背景等特性 7.选择 Activity  的页面格式 8.设置对应名称 9.生成项目 二. 项目介绍 1.界面 可以使用工具采用拖拉的方式 拖动控件.  图形界面开发环境. 2.界面布局的代码格式 3.MainActivity.java  主程序结构   代码和视图绑定 3.代码MainActivity.java pack

如何做一个软件项目经理? ----写给公司所有的开发人员

注:文本中的"我",均是网上作者(前三部分来自网络文章,第四部分除外). 第一部分:软件项目经理的要求 首先是一个管理者,其次熟悉某些工具,某几种语言,行业背景,项目管理技能. 软件项目经理面临的恶劣环境,我们绝大部分软件企业运行在相对混乱的状态(CMM一级),组织不大可能对项目以及项目经理的责任做出明确.合适的界定,所以,影响项目成功的一切因素都是项目经理的责任,包括客户.环境.考核.激励等等. 一.责任心.取得项目的成功无疑是项目经理的责任.项目经理只有把客户的满意和企业长期利益作

如何在maven项目里面编写mapreduce程序以及一个maven项目里面管理多个mapreduce程序

我们平时创建普通的mapreduce项目,在遍代码当你需要导包使用一些工具类的时候, 你需要自己找到对应的架包,再导进项目里面其实这样做非常不方便,我建议我们还是用maven项目来得方便多了 话不多说了,我们就开始吧 首先你在eclipse里把你本地安装的maven导进来 选择你本地安装的maven路径 勾选中你添加进来的maven 把本地安装的maven的setting文件添加进来 接下来创建一个maven项目 可以看到一个maven项目创建成功!! 现在我们来配置pom.xml文件,把map

Vue安装并创建一个简单项目

1.nodejs安装 下载地址:https://nodejs.org/en/download/ 安装完之后cmd 下输入:node -v 查看是否安装成功. 2.查看npm版本 cmd下输入命令:npm -v 如果低于3.0版本需要进行升级 升级方法: 在cmd命令下cd到nodejs安装目录,然后输入以下命令:npm update npm 这里要等待一下.更新完成后再使用:npm -v检查一下版本 3.cnpm安装 cnpm是淘宝的一个镜像,安装之后可以使用cnpm安装命令工具,安装速度会加快

Maven起步--通过Maven创建第一个web项目的图文教程

一.创建项目. 创建一个Maven项目也十分简单,选择菜单项File -> New -> Other,在弹出的对话框中选择Maven下的Maven Project,然后点击Next . 1.Eclipse中用Maven创建项目 选择MavenProjec. 2. 如果要选择工作集的话,可以选add project to working set. 3.选maven-archetype-webapp. 在Filter中输入org.apache.maven.archetypes,选择Artifact