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

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

Đ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

CHU N VI T CODE THI T K GIAO DI N TRONG C#Ẩ Ế Ế Ế Ệ (B n tóm t t)ả ắ I. QUY Đ NH Đ T TÊNỊ Ặ - Pascal BackColor - Camel backColor - Uppercase BACKCOLOR 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ử ụ ạ 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ề ố ủ ề ể Control type Prefix Example Panel pnl pnlGroup Check box chk chkReadOnly Combo box, drop-down list box cbo cboEnglish Command button btn btnExit Common dialog dlg dlgFileOpen Control (used within procedures when the specific type is unknown) ctr ctrCurrent Data dat datBiblio Data-bound combo box cbo cboLanguage Data-bound grid grd grdQueryResult Data-bound list box lst lstJobType Repeater rpt drpLocation Date Time Picker dtp dtpPublished Form frm frmEntry Frame fra fraLanguage DataGridView dgv dgvPrices GridView grd grdProduct DataList dtl dtlOrders Control type Prefix Example Horizontal scroll bar hsb hsbVolume Image img imgIcon ImageList ils ilsAllIcons ImageButton ibt ibtNext HyperLink hpl hplHome LinkButton lbt lbtClick Label lbl lblHelpMessage List box lst lstPolicyCodes ListView lvw lvwHeadings Menu mnu mnuFileOpen Option button opt optGender Picture box pic picVGA Picture clip clp clpToolbar ProgressBar prg prgLoadFile RichTextBox rtf rtfReport Slider sld sldScale Spin spn spnPages StatusBar sta staDateTime Text Box txt txtLastName Timer tmr tmrAlarm Toolbar tlb tlbActions TreeView tre treOrganization UpDown upd updDirection Vertical scroll bar vsb vsbRate SqlDataSource sql sqlAccounts LinqDataSource linq linqCategories 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:ị  Đ 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 ngang.ả ề ọ 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.ả ẫ  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 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 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ả ử ụ ệ ở ố 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, … ả ụ ế ả ề - 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 tên các bi n hàm quan tr ngữ ế ọ ắ ộ ệ ế ọ trong Module/Class Comment cho Method Event - T t c các Method 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 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 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ườ ử ử ễ ả ệ ử //… // 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 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ì đóổ private void 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ễ ả ụ ///</summary> ///<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 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ì đóổ private void GetDateLastMonth(fromDate datetime, toDate datetime, currentMonth int, [...]... 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 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) Bad!!! Good!!! II.6 Quy định thiết kế Dataset: - Tên của Dataset khi visual design... DaysInMonth(currentYear, currentMonth - 1)); } …………………………… } Comment cho đoạn Code - - II.4 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... Class/Base Control 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) Declaration Constructor Property Method/Function Event Tùy theo yêu cầu của các form, class module, lập trình viên có thể chia nhỏ các Region chính trên thành các sub-region... 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 . 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Ị Ặ - Pascal BackColor - Camel backColor -. 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. 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

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

Từ khóa liên quan

Mục lục

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

  • I. QUY ĐỊNH ĐẶT TÊN

    • I.1. Tên biến

    • I.2. Tên hằng số

    • I.3. Tên kiểu Enum

    • I.4. Tham số

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

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

    • I.7. Sự kiện

    • I.8. Tên lớp

    • I.9. Giao diện

    • I.10. Không gian tên

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

    • II. THIẾT KẾ GIAO DIỆN

      • II.1. Thiết kế form

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

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

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

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

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

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan