项目相关定义

原创 2007年09月21日 11:47:00
项目相关定义
每个团队开发都应有自己的一套规范,一个优良可行的规范可以使我们工作得心应手事半功倍。由于此项目开发的分散性、独立性、整合的交互性等,为了有利于项目的整体风格统一、代码维护和扩展,所以定制了这套简单的约定和规则。
本文档将定制一系列约定和规则,他们分别包括代码目录约定、文件夹命名规则、文件名命名规则、程序代码编程风格、数据库设计约定。这些规则和约定需要与开发人员、设计人员和维护人员共同讨论定制,将来开发都将严格按规则或约定开发
2.1.1项目目录约定
****电信[数字***]英文DigitizeSLSys
----------Project目录(即DigitizeSLSys)
       |-----------Inc/     公用服务器端函数定义(整个项目公用)
       |-----------JsInc/    JavaScript共用函数(整个项目公用)
       |-----------Database/ 数据库相关文件(如为sqlserver,把*.sql放到这里面)
       |-----------Include / 引用头文件(top等,整个项目公用)
|-----------首页相关页面程序代码文件
       |-----------模块目录/             (每个模块都按此约定)
       |             |---------Inc/     公用服务器端函数定义(本模块公用,比如数据库连接)
       |             |---------JsInc/    JavaScript共用函数(本模块公用)
       |             |---------UpPic/   上传图片的保存目录
       |             |---------Upfile/   上传文件的保存目录
       |             |---------Images/   图片的目录
       |             |---------Css/     页面css风格目录
       |             |---------Include/ 引用头文件(top等)
       |             |---------页面程序代码文件
       |-----------Admin/ 管理的代码
|             |---------Inc/     公用服务器端函数定义(本模块公用,比如数据库连接)
       |             |---------JsInc/    JavaScript共用函数
       |             |---------Images/   图片的目录
       |             |---------Css/     页面css风格目录
       |             |---------Include/ 引用头文件(top等)
       |             |---------页面程序代码文件
2.1.2项目开发环境
体系结构:
B/S
服务器运行环境:
Microsoft Windows 2000 Server/Windows 2003 server
WEB服务器:     
IIS5.0/IIS6.0
开发平台:
Microsoft Visual Studio.NET 2005 + Dreamweaver8
 
ASP.NET
开发语言:
C#
数据库系统:
Microsoft SQL Server 2005
关键技术:
C# + Ajax
代码管理:
Microsoft Visual SourceSafe 2005
2.1.3项目代码约定
2.1.3.1文件命令约定(包括图片文件)
1.         文件名只能用英文字母,第一个字母大写,每个单词第一个字母大写,长度不要超过20字符。例:NewsLogo.gif
2.         代码和界面分离:每一个页面的界面用*.aspx命名,实现代码用*.cs。
3.         类别相同文件的命名分为头和尾两部分,如:
RegisterForm.aspx   RegisterPost.aspx    
LogoNews.gif              LogForum.gif
这样是为了方便如果我们按文件名称排列的时候,相同类别的文件能够在一起。
2.1.3.2编码约定
1.       数据库连接符:Web.config文件:
<?xmlversion="1.0"encoding="utf-8"?>
<!--
    注意: 除了手动编辑此文件以外,您还可以使用
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
     “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表在
    machine.config.comments 中,该文件通常位于
    /Windows/Microsoft.Net/Framework/v2.x/Config
-->
<configuration>
 <appSettings>
    <addkey="DataConnectionString"value="workstation id=edg;packet size=4096;user id=Test;data source=localhost;persist security info=False;initial catalog=TestDB;password=123"/>
 </appSettings>
 <connectionStrings/>
 <system.web>
    <!--
            设置 compilation debug="true" 将调试符号插入
            已编译的页面中。但由于这会
            影响性能,因此只在开发过程中将此值
            设置为 true。
        -->
    <compilationdebug="true" />
    <!--
            通过 <authentication> 节可以配置 ASP.NET 使用的
            安全身份验证模式,
            以标识传入的用户。
        -->
    <authenticationmode="Windows" />
    <!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。
        -->
    <customErrorsmode="RemoteOnly"defaultRedirect="GenericErrorPage.htm">
      <errorstatusCode="403"redirect="NoAccess.htm" />
      <errorstatusCode="404"redirect="FileNotFound.htm" />
    </customErrors>
 
 </system.web>
</configuration>
2.       实际调运的ADO.NET运用
 
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
 
/********************************************************************************
** 作者: Andy Lu
** 创始时间:2007-02-13
** 修改人:Andy Lu
** 修改时间:2007-02-13
** 描述:
** 主要用于用户注册
*********************************************************************************/
 
///<summary>
///用户注册类(用户注册,并返回ID)
///</summary>
 
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        //VS2003用:System.Configuration.ConfigurationSettings.AppSettings
 
        SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings.Get("DataConnectionString"));
        Conn.Open();
        SqlCommand CmdInsert = new SqlCommand("Users_Insert", Conn);
        CmdInsert.CommandType = CommandType.StoredProcedure;
      
        //VS2003只用:CmdInsert.Parameters.Add
        CmdInsert.Parameters.AddWithValue("@UserType", UserType.Text.ToString());
        CmdInsert.Parameters.AddWithValue("@UserName", UserName.Text.ToString());
        CmdInsert.Parameters.AddWithValue("@UserPassWord", UserPassWord.Text.ToString());
        CmdInsert.Parameters.AddWithValue("@UserEmail", UserEmail.Text.ToString());
        SqlParameter parmReturnValue = new SqlParameter("@Userid", SqlDbType.Int);
        int intAuthorCount;    
        parmReturnValue.Direction = ParameterDirection.Output;
        CmdInsert.Parameters.Add(parmReturnValue);
 
        SqlTransaction Trans = Conn.BeginTransaction();
        try
        {
            CmdInsert.Transaction = Trans;
            CmdInsert.ExecuteNonQuery();
            intAuthorCount = (int)CmdInsert.Parameters["@Userid"].Value;
            Trans.Commit();
            Response.Write("<script>alert('祝贺您!用户添加成功!');</script>");
            Response.Write(intAuthorCount);
            CmdInsert.Dispose();
            Conn.Close();
        }
        catch (Exception Err)
        {
            Response.Write(Err.Message);
        }
3.       过程函数:
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:    Andy Lu
-- Create date: 2007-2-12 10:46
-- Description:   用户注册
--              参数-UserId:用户ID
--              参数-UserType:用户类型;
--              参数-UserName:用户名称;
--              参数-UserPassWord:用户密码;
--              参数-UserEmail:用户邮箱;
-- =============================================
CREATE PROCEDURE [dbo].[Users_Insert]
@UserId int output,
@UserType int,
@UserName nvarchar(50),
@UserPassWord nvarchar(50),
@UserEmail nvarchar(50)
AS
   begin tran
 
    INSERT INTO [UserInfo]
    (
    [usertype],
    [username],
    [userpassword],
    [UserEmail]
)
 
values
(
@UserType,
@UserName,
@UserPassWord,
@UserEmail
)
 
if @@error<>0 goto error
set @UserId=@@identity
 
Commit tran
return
    -- 事务处理
ERROR:
    set @UserId = 0
    rollback tran
go
2.1.3.3变量约定
2.1.3.3.1变量约定
每个变量第一个字母小写,以后每个单词第一个字母大写。出于易读和一致性的目的,变量名字的前缀定义如下:
子类型
前缀
示例
Boolean
bln
blnFound
Byte
byt
bytData
Date (Time)
dtm
dtmStart
Double
dbl
dblTolerance
Error
err
errOrderNum
Integer
i
iQuantity
Long
l
lQuantity
Object
obj
objCurrent
Single
sng
sngAverage
String
str
strFirstName
Array
arr
arrName
2.1.3.3.2变量格式
格式如下:
string strStfId = Session["UserId"].ToString().Trim();
string strStfId = Request.QueryString.GetValues("StfId").GetValue(0).ToString();
2.1.3.3.3控件约定
建议是使用控件名简写作为前缀,并且简写的首字母小写,符合Camel规范。
格式:控件名简写+英文描述,英文描述首字母大写
主要控件名简写对照表
序号
控件名
控件简写
备注
1
Label
lbl
lblId
2
TextBox
txt
txtName
3
Button
btn
btnOk
4
CheckBox
chk
chkSex
5
RadioButton
rdo
 
6
CheckBoxList
chklst
 
7
RadioButtonList
rdolst
 
8
ListBox
lst
 
9
DropDownList
ddl
 
10
DataGrid
dg
 
11
DataList
dl
 
12
Image
img
 
13
Table
tbl
 
14
Panel
pnl
 
15
LinkButton
lnkbtn
 
16
ImageButton
imgbtn
 
17
Calender
cld
 
18
AdRotator
ar
 
19
RequiredFieldValidator
rfv
 
20
CompareValidator
cv
 
21
RangeValidator
rv
 
22
RegularExpressionValidator
rev
 
23
ValidatorSummary
vs
 
24
CrystalReportViewer
rptvew
 
2.1.3.4数据库约定
2.1.3.4.1命名约定
1.         库的命名:只能用英文字母,第一个字母大写,每个单词第一个字母大写,长度不要超过20字符。
2.         Table命名约定:只能用英文字母,第一个字母大写,每个单词第一个字母大写,长度不要超过30字符。
3.         字段命名:只能用英文字母,第一个字母小写,每个单词第一个字母大写,长度不要超过30字符。
2.1.3.4.1连接库约定
1.        在程序连接库的时候请不要用sa账号,请用为每一个库单独添加的user账号连接。也就是说每建一个新库,要单独给他一个是用账号,这个帐号提供给程序中用。
2.      在程序中请使用ADO.NET连接
2.1.3.5 注释
2.1.3.5.1头文件注释
在代码文件的头部进行注释,标注出创始人、创始时间、修改人、修改时间、代码的功能,这在团队开发中必不可少,它们可以使后来维护/修改的同伴在遇到问题时,在第一时间知道他应该向谁去寻求帮助,并且知道这个文件经历了多少次迭代、经历了多少个程序员的手。例如:
/********************************************************************************
** 作者: Andy Lu
** 创始时间:2007-02-13
** 修改人:Andy Lu
** 修改时间:2007-02-13
** 描述:
** 主要用于用户注册
*********************************************************************************/
注:
我们甚至可以在这段文件头注释中加入版权信息、文件名、版本信息等。
2.1.3.5.2函数、属性、类等注释(可扩充)
请使用///三斜线注释,这种注释是基于XML的,不仅能导出XML制作帮助文档,而且在各个函数、属性、类等的使用中,编辑环境会自动带出注释,方便你的开发。以protected,protected Internal,public声明的定义注释请都以这样命名方法。
比如:
///<summary>
///用户注册类(用户注册,并返回ID)
///</summary>
2.1.3.5.3逻辑点注释
在我们认为逻辑性较强的地方加入注释,说明这段程序的逻辑是怎样的,以方便我们自己后来的理解以及其他人的理解,并且这样还可以在一定程度上排除BUG。在注释中写明我们的逻辑思想,对照程序,判断程序是否符合我们的初衷,
如果不是,则我们应该仔细思考修改的是注释还是程序了。
2.2源文件管理
 所有网站相关的源文件(包括文档,图片等)均放到Microsoft Visual SourceSafe中统一管理。
源文件修改前需要进行check out操作,然后进行操作,禁止手动更改本地源文件只读属性。修改完毕后,进行check in操作,更新源文件,如有说明的必要,请在check in的时候写上注释说明。
 

第17周项目6-4,使用结构体类型,完成相关函数的定义

编号及代码: /* *Copyright (c)2014,计算机与控制工程学院 *All rights reserved *作者:范星月 *完成日期:2014年12月2...
  • a716121
  • a716121
  • 2014年12月23日 16:48
  • 475

ITIL定义相关

  • 2017年04月18日 17:29
  • 19KB
  • 下载

网络的相关定义和其概念

  • 2010年05月10日 18:35
  • 534KB
  • 下载

Jquery Validate 相关参数及常用的自定义验证规则

Jquery Validate 相关参数 //定义中文消息 var cnmsg = { required: “必选字段”, remote: “请修正该字段”, email: “请输入正确格式的电子...
  • xh16319
  • xh16319
  • 2013年08月15日 18:04
  • 78350

百度地图自定义覆盖物及相关

  • 2017年03月16日 15:04
  • 8KB
  • 下载

JSTL 以及自定义标签开发相关

  • 2013年02月23日 19:02
  • 2.33MB
  • 下载

Web---演示Servlet的相关类、下载技术、线程问题、自定义404页面

Servlet的其他相关类: ServletConfig – 代表Servlet的初始化配置参数。 ServletContext – 代表整个Web项目。 ServletRequest – 代表...

P4P相关概念和定义

  • 2013年11月16日 14:48
  • 57KB
  • 下载

数据结构(9)--链队列的定义以及相关操作的实现

参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社 1.队列的定义   栈是一种后进先出的数据结构,而在实际问题中还经常使用一种“先进先出” (FIFO---First  In First...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:项目相关定义
举报原因:
原因补充:

(最多只允许输入30个字)