You are on page 1of 11

Tiu chun lp trnh p dng cho MS .NET (Coding Standard for Project VB.

Net)
Created by: Phan Trng Tin

1/9

GHI NHN THAY I


STT 1 2 Ngi to TinPT TinPT Ni dung To mi ti liu Cp nht ti liu Ngy to 22/10/2007 5/9/2009 Phin bn 1.0.1 1.0.2

MC LC

1. Gii thiu
y l ti liu cung cp cc quy nh chun cho vic coding cc d n VB.Net (cng c th p dng cho cc d n ca ngn ng khc. y l quy nh bt buc cc bn phi tun theo nu cc bn mun ci thin k nng lp trnh, cng nh kh

nng lm vic theo nhm. Nu vic coding theo chun s gip bn d dng bo tr, g ri, bo tr code ca bn lm code ca bn sng sa hn.

2. t tn
Ngn ng: S dng ting Anh t tn cho tt c cc i tng trong chng trnh Cc trng hp nhy cm : Cn trnh t tn 2 i tng m ch khc nhau v vit hoa hay vit thng, v d: namespace ee.cummings; namespace EE.cummings; Cc trng hp cn trnh xung t vi t kha & kiu ca h thng : T kha
AddHandler As ByRef Catch CDec CLng CStr Default Each Erase False Friend Handles Inherits Lib Mod MyClass Nothing Option Overrides AddressOf Assembly Byte CBool CDbl CObj CType Delegate Else Error Finalize Function If Integer Like Module Namespace NotInheritable Optional ParamArray Alias Auto ByVal CByte Char Const Date Dim ElseIf Event Finally Get Implements Interface Long MustInherit New NotOverridable Or Preserve And Base Call CChar CInt CShort Decimal Do End Exit Float GetType Imports Is Loop MustOverride Next Object Overloads Private

Ansi Boolean Case CDate

Class CSng Declare Double

Enum ExternalSource For Goto

In Let Me MyBase

Not On Overridable Property

Protected Region Select Single Structure To Until WithEvents instanceof

Public REM Set Static Sub True volatile WriteOnly package

RaiseEvent RemoveHandler Shadows Step SyncLock Try When Xor var

ReadOnly Resume Shared Stop Then TypeOf While eval

ReDim Return Short String Throw Unicode With extends

Kiu C# type name sbyte byte short ushort int Uint Long Ulong Float Visual Basic type name SByte Byte Short UInt16 Integer UInt32 Long UInt64 Single sByte byte short ushort int uint long ulong float double boolean char string JScript type name char unsigned char short unsigned short int unsigned int __int64 Visual C++ type name Ilasm.exe representation int8 unsigned int8 int16 unsigned int16 int32 unsigned int32 int64 SByte Byte Int16 UInt16 Int32 UInt32 Int64 UInt64 Single Double Boolean Char String Universal type name

unsigned __int64 unsigned int64 float double bool Wchar_t String float32 float64 bool char string

Double Double Bool Char String Boolean Char String

Object

Object

object

Object

object

Namespace :

t tn theo kiu Pascal (xem ph lc) t tn theo lut: CompanyName.ModuleName khng dng tn trng vi tn class
Dng s nhiu nu thch hp v mt ng ngha. V d : System.Collections thay cho

System.Collection. Dng tn l s t i vi hu ht cc kiu Enum, ring i vi kiu bit th dng s nhiu. Tham s (Parameter) : t tn theo kiu Camel (xem ph lc) Thuc tnh (Property): t tn theo kiu Pascal (xem ph lc)
dng danh t hay cm danh t

public enum Color


{

// chn m ngun cho Enum


}

Phng thc (Method) :

t tn theo kiu Pascal (xem ph lc) Dng ng t hoc cm ng t. V d :

RemoveAll() GetCharArray() Invoke()

Ph lc: Cc kiu tn : o Pascal: t u tin vit ch hoa, ch u tin ca cc t tip theo cng vit hoa. V d : BackColor o Camel : t u tin vit ch thng, ch u tin ca cc t tip theo vit hoa. V d : backColor o Vit hoa : tt c cc ch u vit hoa.

3. S dng lp
Cc lp trong h thng Giao din GUI : Ch thc hin thu thp v chuyn giao d liu cho lp Business, khng x l nghip v
Business: X l nghip v, nhn v chuyn d liu vi lp giao din v lp SqlDataprovider Data Access: Truy cp CSDL v thao tc vi CSDL

Ngoi ra cn c th c
Common : Cha cc hm dung chung, khai bo cc hng s, cc message

Thuc tnh S dng class Entity nh ngha cc thuc tnh cho i tng ng l mt thuc tnh khi b phn cha d liu. V d : D [VisualBasic] Public Property Name As String Get Return Name End Get Set Name = value

End Set End Property


Constructor

Dng mt contructor chnh nu ch c cc phng thc tnh v cc thuc tnh trong lp. v d : [VisualBasic] NotInheritable Public Class Environment ' Private constructor prevents the class from being created. Private Sub New() ' Code for the constructor goes here. End Sub End Class
Ti thiu ha cc tc v trong mt contructor

4. S dng kiu

Bt li
Cung cp c ch bt li m khng cn exception. V d : thay v dng

FileNotFoundException, c th gi File.Exists
Vit cc thng bo li ng chnh t Khng dng exception i vi c li thng thng Thit k cc lp trnh khng tr v exception. Ch thc hin x l exception trong lp giao din Mng

Cc thuc tnh String and Array s khng bao gi tr v gia str null.v d. [VisualBasic] Public Sub DoSomething() Dim s As String = SomeOtherFunc() If s.Length > 0 Then ' Do something else. End If End Sub

5. t tn cho cc control
t tn theo kiu Pascal vi 3 ch ci u l tn vit tt:

Control Label TextBox Button LinkButton HyperLink ImageButton


Dropdownlist

Tin t lbl txt btn lnk hlk imb drl lst dtg dtl rpt chb cbl rbl rbt img pnl plh cld art tbl rfv cpv rvd rev ctv vsm xml ltr

ListBox DataGrid DataList Repeater CheckBox CheckBoxList RadioButtonList RadioButton Image Panel PlaceHolder Calendar AdRotator Table RequiredFieldValidator CompareValidator RangeValidator RegularExpressionValidator CustomValidator ValidationSummary Xml Literal

6. Cc quy tc comment
i vi cc danh sch, nu c thng tin c bit c to ra (c sai khc vi cu trc lu tr trong database) yu cu comment c th thng tin c bit Khng li cc warning
-

Cc nghip v th hin trong business: phi comment r rng Comment vo u cc sub/function


'Author :TienPT Date:12/12/2007 'Discription:Find data duplicate id input. return DataSet Public Function Find(ByVal _Id As String) As DataSet Dim ds As DataSet = Nothing Try 'Check if _Id is "" If (_Id = "") Then MessageBox.Show("Khong co du lieu phu hop") End If 'Call function Find in layer Data Access ds = cusData.Find(_Id) Catch ex As Exception ' MessageBox.Show(ex.Message) End Try Return ds End Function

7. Quy tc t tn cho Database


Tt c cc tn bng t theo quy tc Pascal (Vit hoa k t u ca cc t trong tn) Tn cc table thng (cc table cha d liu thay i) c bt u bng vi tin t (prefix) tbl

v d tblArticle Tn cc trng trong bng c t tn theo quy nh Pascal, khng bao gm du cch hay gch di hoc ch ting vit. Tn ng, v d: ModifiedDate, ModuleName...

You might also like