1. Trang chủ
  2. » Công Nghệ Thông Tin

CHUẨN VIẾT CODE VÀ THIẾT KẾ GIAO DIỆN TRONG C# docx

13 1,1K 9

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 326,55 KB

Nội dung

Control type Prefix Example.

Trang 1

CHU N VI T CODE VÀ THI T K GIAO DI N TRONG C# Ẩ Ế Ế Ế Ệ

(B n tóm t t)ả ắ

I QUY Đ NH Đ T TÊN Ị Ặ

I.1 Tên bi n ế

- Ki u Camelể

I.2 Tên h ng s ằ ố

- S d ng Uppercaseử ụ

- G ch n i gi a các tạ ố ữ ừ

I.3 Tên ki u Enum ể

- Tên ki u Pascalể

- Không ti n, h u tề ậ ố

I.4 Tham số

- Tên ki m Camelể

I.5 Tên thu c tính ộ

- Tên ki u Pascalể

I.6 Tên ph ươ ng th c ứ

- Tên ki u Pascalể

I.7 S ki n ự ệ

- Ki u Pascalể

- Thường có h u t : EventHandlerậ ố

I.8 Tên l p ớ

- Tên ki u Pascalể

- Không s d ng g ch chânử ụ ạ

Trang 2

I.9 Giao di n ệ

- Tên ki u Pascalể

- B t đ u b ng ti n t “I”ắ ầ ằ ề ố

I.10 Không gian tên

- Cú pháp: [Tên công ty].[Tên Công ngh ][.Đ c tr ng][.Thi t k ]ệ ặ ư ế ế

Ví d : SDGVN.Web.Utilityụ SDGVN.Web.ModuleBase

I.11 Tên ti n t c a các đi u khi n ề ố ủ ề ể

Combo box, drop-down list box cbo cboEnglish

Control (used within procedures

when the specific type is unknown)

Trang 3

Control type Prefix Example

Trang 4

II THI T K GIAO DI N Ế Ế Ệ

II.1 Thi t k form ế ế

Thi t l p Option Layout Settings c a Form nh sau:ế ậ ủ ư

 Quy đ nh kích thị ước Form

Luôn c g ng đ m b o t l 4x3: Form r ng 4 thì cao 3 đ đ m b o cân x ngố ắ ả ả ỷ ệ ộ ể ả ả ứ

v i màn hình.ớ

 Quy đ nh kích thị ước Control

o Chi u cao: s d ng chi u cao m c đ nh s n c a Control.ề ử ụ ề ặ ị ẵ ủ

Trường h p đ c bi t:ợ ặ ệ

 TextBox multi-lines: đ m b o không b che 1 ph n c a dòngả ả ị ầ ủ

 Button có image: đ m b o hi n th v a đ image 16x16 pixelả ả ể ị ừ ủ

o Đ r ng: tùy đ r ng c a textộ ộ ộ ộ ủ

 Đ m b o nguyên t c các TexBox, Combo trên cùng m t Form có đả ả ắ ộ ộ

r ng th ng nh t ộ ố ấ

 Đ m b o nguyên t c các Button trên t t c các Form có đ r ng th ngả ả ắ ấ ả ộ ộ ố

nh t, text trên Button không nên vấ ượt quá 2 t ừ

 N u text trên Button g m 2 t tr xu ng: b t bu c s d ng đ r ngế ồ ừ ở ố ắ ộ ử ụ ộ ộ

m c đ nh (75).ặ ị

o Đ i v i nh ng trố ớ ữ ường có đ r ng c đ nh ho c ít khi thay đ i (ví d nhộ ộ ố ị ặ ổ ụ ư

trường có ki u d li u là Date thì đ r ng là c đ nh là 10 ký t ), tuân thể ữ ệ ộ ộ ố ị ự ủ theo quy đ nh sau:ị

Trang 5

 Đ r ng control độ ộ ược binding v i trớ ường này ch đỉ ược phép r ng độ ủ

đ hi n th h t thông tin trong đó.ể ệ ị ế

 Không được đ đ r ng control vể ộ ộ ượt quá đ r ng c a trộ ộ ủ ường

o L u ý: Label đ t AutoSize=FALSE, TextBox đ t AutoSize=TRUEư ặ ặ

 Quy đ nh kho ng cách gi a các Controlị ả ữ

o Các Control cách mép Form 01 ô grid (c 4 phía).ả

o TextBox, ComboBox cách Label dài nh t 01 ô gridấ

o Các Control cách nhau 01 ô grid c chi u d c và ngang.ả ề ọ

Trang 6

Riêng tr ườ ng h p s d ng GroupBox ợ ử ụ có caption thì các Control bên trong

GroupBox cách mép trên c a GroupBox 02 ô grid GroupBox không có caption ủ kho ng cách v n là 1 ô grid ả ẫ

Trang 7

 Di n m o Controlệ ạ

o Font & Color: s d ng thi t l p m c đ nh Ch thay đ i khi yêu c u thi t kử ụ ế ậ ặ ị ỉ ổ ầ ế ế

ch rõ.ỉ

o Hot track: thi t l p Hot track cho Button, Combo và DropDown.ế ậ

o Căn l Text trên Control:ề

 Chi u ngang (HAlign):ề

• Ch căn tráiữ

• S căn ph iố ả

• Riêng v i Button thì luôn căn gi a.ớ ữ

 Chi u d c (VAlign): căn gi a (Middle)ề ọ ữ

 Dóng Control

o Label: dóng trái

o Textbox, Combo: dóng đ u hai bênề

 Tab Order:

o Ph i thi t l p Tab Order trên m i giao di n (Form, Control, …) theo nguyênả ế ậ ọ ệ

t c: t trái sang ph i, t trên xu ng dắ ừ ả ừ ố ưới

o Yêu c u b t bu c thi t l p TabOrder theo đúng th t cho m i Control trênầ ắ ộ ế ậ ứ ự ọ Form, k c Control không focus vào để ả ược nh Label, GroupBox, hay Controlư invisible L u ý tuân th tuy t đ i quy đ nh này vì nó ph c v nhi u m c đíchư ủ ệ ố ị ụ ụ ề ụ quan tr ng nh t o shortcut key, valid required data, …ọ ư ạ

 Anchor & Dock: ph i thi t l p Anchor và Dock cho Control trên các Form, Containerả ế ậ không c đ nh kích thố ị ước (Sizable)

 V i thông tin yêu c u ngớ ầ ười dùng không dược b tr ng mà b t bu c nh pỏ ố ắ ộ ậ

(AllowNull = FALSE) thì Label cho thông tin đó ph i s d ng ký hi u “(*)” cu iả ử ụ ệ ở ố

và thi t l p shortcut key.ế ậ

II.2 Quy đ nh khi t o MessageBox ị ạ

- Caption: s d ng ử ụ Application.ProductName

- Icon:

MessageBoxIcon.Exclamation: dùng cho các trường h p sauợ

o C nh báo l iả ỗ

o C nh báo xóa d li uả ữ ệ

o C nh báo nh p thi u, nh p sai d li uả ậ ế ậ ữ ệ

MessageBoxIcon.Information: dùng cho các thông báo không có tính ch t

c nh báo, ví d K t qu Import, Thông tin v CSDL, … ả ụ ế ả ề

Trang 8

- N i dung Message: ộ không được phép vi t tr c ti p n i dung message mà ph i dùngế ự ế ộ ả Resource (s s ng hàm String.Format đ truy n tham s cho Resource n u c n).ử ụ ể ề ố ế ầ

II.3 Quy t c vi t mô t (comment) cho code ắ ế ả

S d ng ti ng Vi t có d u (Unicode) đ vi t comment ử ụ ế ệ ấ ể ế

Comment cho Module, Class

M i Module, Class c n có mô t ng n v m c đích c a Module hay Class đó N i dungỗ ầ ả ắ ề ụ ủ ộ

g m:ồ

M c đích: Module hay Class th c hi n nh ng công vi c gì.ụ ự ệ ữ ệ

Ngườ ậi l p: Ngườ ại t o Module hay Class

Nh ng bi n/hàm quan tr ng (không b t bu c): Li t kê tên các bi n và hàm quan tr ngữ ế ọ ắ ộ ệ ế ọ trong Module/Class

Comment cho Method và Event

- T t c các Method và Event ph i có comment.ấ ả ả

- Comment cho Method/Event g m hai ph n:ồ ầ

o Ph n 1 (ầ không b t bu c ắ ộ ): mô t m c đích và di n gi i ng n g n ý nghĩaả ụ ễ ả ắ ọ các tham s đ u vào, đ u ra ố ầ ầ

L u ý: mô t Method đó làm gì (What), không mô t Method đó th c hi nư ả ả ự ệ

th nào (How).ế

T VC# 2005 tr đi, Microsoft cung c p s n m t macro dành cho vi cừ ở ấ ẵ ộ ệ

vi t comment m c đích S d ng nh sau: gõ liên ti p 3 d u nháy đ n (‘)ế ụ ử ụ ư ế ấ ơ trên đ u m i Method.ầ ỗ

L p trình viên có th không c n vi t ph n mô t m c đích này v i cácậ ể ầ ế ầ ả ụ ớ Method/Event đ n gi n, không ph c t p.ơ ả ứ ạ

o Ph n 2 (ầ b t bu c ắ ộ ): ghi thông tin v history t o và s a Method/Event đóề ạ ử (ngườ ại t o/ngày t o, ngạ ườ ửi s a/ngày s a) ử Thông tin này b t bu c ph i cóắ ộ ả

v i m i Method/Event.ớ ọ

- M u comment cho Method/Event ẫ đ n gi n ơ ả :

// Created by (ngườ ại t o) – (ngày/tháng/năm t o): di n gi i ng n g n m c đích ạ ễ ả ắ ọ ụ

// Modified by (ngườ ửi s a 1) – (ngày/tháng/năm s a 1): di n gi i vi c s a 1ử ễ ả ệ ử

// Modified by (ngườ ửi s a 2) – (ngày/tháng/năm s a 2): di n gi i vi c s a 2ử ễ ả ệ ử

//…

Trang 9

// Modified by (ngườ ửi s a n) – (ngày/tháng/năm s a n): di n gi i vi c s a nử ễ ả ệ ử

Ví dụ

// Created by lhhoa - 20/02/2008: hàm l y kho ng th i gian là ngày đ u và ngày cu i c aấ ả ờ ầ ố ủ tháng trước

// Modified by nvkieu - 25/02/2008: s a l i gì đóử ỗ

// Modified by nqhoang - 27/02/3008: b sung gì đóổ

privatevoid GetDateLastMonth(fromDate datetime, toDate datetime, currentMonth int, currentYear int)

{

if (currentMonth == 1)

{

fromDate = DateSerial(currentYear - 1, 12, 1);

toDate = DateSerial(currentYear - 1, 12, DaysInMonth(currentYear - 1, 12));

}

else

{

fromDate = DateSerial(currentYear, currentMonth - 1, 1);

toDate = DateSerial(currentYear, currentMonth - 1, DaysInMonth(currentYear,

currentMonth - 1));

}

………

}

- M u comment cho Method/Event ẫ ph c t p ứ ạ :

/// <summary>

/// Di n gi i m c đíchễ ả ụ

Trang 10

///<param name="Tham s 1">Di n gi i cho Tham s 1</param>ố ễ ả ố

///<param name="Tham s 2">Di n gi i cho Tham s 2</param>ố ễ ả ố

/// …

/// <param name="Tham s n">Di n gi i cho Tham s n</param>ố ễ ả ố

/// <remarks>Nh n xét (n u có)</remarks>ậ ế

/// Created by (ngườ ại t o) – (ngày/tháng/năm t o)ạ

/// Modified by (ngườ ửi s a 1) – (ngày/tháng/năm s a 1): di n gi i vi c s a 1ử ễ ả ệ ử

/// Modified by (ngườ ửi s a 2) – (ngày/tháng/năm s a 2): di n gi i vi c s a 2ử ễ ả ệ ử

/// …

/// Modified by (ngườ ửi s a n) – (ngày/tháng/năm s a n): di n gi i vi c s a nử ễ ả ệ ử

Ví d :ụ

/// <summary>

/// Hàm l y kho ng th i gian là ngày đ u và ngày cu i c a tháng trấ ả ờ ầ ố ủ ước

/// </summary>

/// <param name="fromDate">Ngày đ u tháng trầ ước</param>

/// <param name="toDate">Ngày cu i tháng trố ước</param>

/// <param name="currentMonth">Tháng hi n t iệ ạ </param>

/// <param name="currentYear">Năm hi n t iệ ạ </param>

/// <remarks></remarks>

/// Created by lhhoa - 20/02/2008

/// Modified by nvkieu - 25/02/2008: s a l i gì đóử ỗ

/// Modified by nqhoang - 27/02/3008: b sung gì đóổ

privatevoid GetDateLastMonth(fromDate datetime, toDate datetime, currentMonth int,

Trang 11

currentYear int)

{

if (currentMonth == 1)

{

fromDate = DateSerial(currentYear - 1, 12, 1);

toDate = DateSerial(currentYear - 1, 12, DaysInMonth(currentYear - 1, 12));

}

else

{

fromDate = DateSerial(currentYear, currentMonth - 1, 1);

toDate = DateSerial(currentYear, currentMonth - 1, DaysInMonth(currentYear, currentMonth - 1));

}

………

}

Comment cho đo n Code ạ

- Nh ng đo n code ph c t p c n có comment g n li n bên trên đ chú gi i.ữ ạ ứ ạ ầ ắ ề ể ả

- Nh ng đo n code đữ ạ ượ ửc s a đ i (modified), b sung (added) ho c rem (removed)ổ ổ ặ

b i ngở ười không ph i tác gi c n có comment rõ ngay t i n i s a đ i, b sung:ả ả ầ ạ ơ ử ổ ổ

ng ườ ử i s a, ngày s a, m c đích ử ụ

- Comment cho đo n code áp d ng b t bu c v i các Base Form/Base Class/Baseạ ụ ắ ộ ớ Control

II.4 Quy t c phân nhóm (region) khi coding: ắ

Ph i s d ng Region phân nhóm code đ ti n cho vi c s a đ i, b o trì.ả ử ụ ể ệ ệ ử ổ ả

Phân nhóm code theo c u trúc nh sau: (theo th t b t bu c, nh ng không b t bu c cóấ ư ứ ự ắ ộ ư ắ ộ

đ t t c các region)ủ ấ ả

Trang 12

Constructor

Property

Method/Function

Event

Tùy theo yêu c u c a các form, class và module, l p trình viên có th chia nh cácầ ủ ậ ể ỏ Region chính trên thành các sub-region VD: region Method/Function có th ch a cácể ứ region con sau:

Method/Function

Public Overridable (trường h p là base form/class)ợ Override (trường h p là derive form/class)ợ Private

Other

Trường h p form ho c class có s d ng các component đ c l p (Security, Document,ợ ặ ử ụ ộ ậ MassEmail,…) thì ph i t o các Region riêng cho t ng component, ch a toàn b codeả ạ ừ ứ ộ liên quan đ n vi c tế ệ ương tác v i các component đó.ớ

II.5 Quy đ nh b y l i khi coding ị ẫ ỗ

- B t bu c b y l i (s d ng ắ ộ ẫ ỗ ử ụ try … catch) trong t t c các ấ ả Event c a Form và

Control trên Form

- Nghiêm c m s d ng cú pháp ấ ử ụ try … catch đ che d u l i (không x lý gì sau tể ấ ỗ ử ừ

khóa catch).

Trang 13

Good!!!

II.6 Quy đ nh thi t k Dataset: ị ế ế

- Tên c a Dataset khi visual design đ t nh sau: ủ ặ ư “Dataset” + M c đích ụ VD:

DatasetDictionary, DatasetCAPayment, …

- S lố ượng DataTable trong m t Dataset: quy đ nh t ộ ị ừ 10 tr xu ng M i Dataset chở ố ỗ ỉ

được phép có t i đa 10 DataTable Khi thi t k ph i tách Dataset đ đ m b oố ế ế ả ể ả ả nguyên t c này N u m t Dataset có nhi u DataTable thì t c đ load/save d li uắ ế ộ ề ố ộ ữ ệ

s b nh hẽ ị ả ưởng nghiêm tr ng.ọ

Ngày đăng: 26/06/2014, 23:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w