.NET Naming Rule 2009.10.07.

Slides:



Advertisements
Similar presentations
MySeek 시스템 소개 ㈜마이씨크. 2 Contents MySeek System 개요 MySeek System 기능도 MySeek System 기능 MySeek System 특징 MySeek 검색기능 MySeek 활용시 장점 Reference Site.
Advertisements

9 주차 실습강의 학기, 소프트웨어 설계 및 실험 ( Ⅰ ). Artificial Intelligence Laboratory Open API  API(Application Programming Interface)  응용 프로그램에서 사용할 수 있도록.
2 주 실습강의 학기, 소프트웨어 설계 및 실험 ( Ⅰ ). Artificial Intelligence Laboratory Preview  웹 2.0  RIA  웹과 실버라이트의 실행 구조  Silverlight with VS 2008  설치 프로그램.
인터넷 쇼핑몰 구축 제안서.
1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도    1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도 (상설) 기관별 맞춤형 교육 - 당 교육기관에서.
VISUAL BASIC 양 계 탁.
DB Injection과 대응방안 nwkim.
T A B L E 작성자 : 이 재 학.
- 계산기 GUI 구성하기 - 조원: 박강국 오정은 이귀식 김도윤 안영진.
DB 프로그래밍 학기.
DB 프로그래밍 학기.
아두이노 조도센서 모니터링 PhotoCell.
2장 닷넷 프레임워크.
C++ Espresso 제1장 기초 사항.
IT Application Development Dept. Financial Team May 24, 2005
System.Windows.Forms 윈도우 폼 SD50 – C# & .NET Platform.
APPEON SOLUTION INTRODUCTION.
소비자 만족도 설문조사 결과.
홈페이지 자동 구축 솔루션 K2 Web WIZARD 2.6 관리자 메뉴얼
다이얼로그 박스와 컨트롤 컴퓨터 계측 및 실습.
개발자에게 SharePoint Services 란 무엇인가?
C#에서 데이터베이스 연동 방법.
J2ME(Java 2 Micro Edition) 무선 장치용 UI의 핵심 컴포넌트
네트워크 프로그래밍 <네트워크 주문 프로그램 V1.00 >
Lab 3 Guide: 교재 4장 대화상자 예제. - 프로파일 입력 ( 쪽)
2018..
MelOn WP8 Developer Guide
개정판 Visual Basic 6.0 바로가기.
팀 명: Con Spirito 팀 원: 경주리 김다정 김소담 최은미
델파이7 웹서비스 클라이언트 델파이7에서 C#으로 작성한 웹서비스 함수를 사용하기 위한 간략한 방법을 정리해 보았습니다.
델파이/C++빌더 3tier 프레임워크 기반 업무 개발
PDA & PC Webhard Network Project 오민식, 김상용, 배은희.
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
1장 Visual Basic 2010 시작 1.1 프로그램에 대한 기초 1.2 Visual Basic 버전
DB와 WEB 연동(1) [2-Tier] Java Applet 이용
Excel OLAP Reporting / OWC를 이용한
XML WEB SERVICE PDA WEB HARD
ER-Win 사용 방법.
이벤트(Event) 처리하기 윈도우 프로그램에서는 이벤트를 통하여 실행 중인 프로그램에게 사용자의 요구사항을 알린다.
MFC UI for TS Analyzer 서울시립대학교 컴퓨터통계학과 최 용 진.
5 장 객체 지향 프로그래밍 5.1 객체 지향 프로그래밍의 개념 5.2 객체 지향 프로그래밍
ASP.NET Mobile Controls
6.3 툴바와 이미지 리스트 사용하기.
6.3 툴바와 이미지 리스트 사용하기.
Visual Basic 기초 1 목표: 컴퓨터기반제어에 관련된 학습을 하기 전에 Visual Basic의 기초를 살펴본다.
Javafx UI.
날짜: 팀명: TEAM-SIX 발표자: 이기영
ㅇ 스프링 설정파일 (dispatcher-servlet.xml)
HUCHEMS e-Procurement System
Windows 환경에서 동작하는 Arm Emulator(Simulator)
KRISTAL 2006 워크숍 KRISTAL 개발 업체 발표
3. Spring 프레임워크의 IoC 컨테이너 개념
Smart Workplace 개발자 가이드
3장. SQL Server 2008전체 운영 실습 및 DB와 프로그램의 연동
용어 및 서식 표준화
Cyber Shopping Mall 구축 - CD New - 안소연,박지윤,박종봉,정영은.
1. Visual Basic 소개 IT응용시스템공학과 김 형 진 교수.
비주얼 프로그래밍 1분반 화/목.
CH2. ASP.NET 페이지 분석 HTML ASP ASP.NET 의 차이점.
자바 5.0 프로그래밍.
비주얼 프로그래밍(2분반) 강의노트 2분반 = 월/목.
JSP 빈즈 1.JSP 빈즈? JSP와 연동을 위해 만들어진 컴포넌트 클래스를 말한다. JSP 빈즈는 컨테이너에 위치하며, 데이터 처리와 공용화된 기능을 제공하기 때문에 빈즈를 잘 활용하면 프로그램의 중복을 줄이고 좀더 원할한 유지보수가 가능한다. 물론 , 모든 JSP를.
05 ASP.NET 2.0 페이지 및 응용 프로그램 구조 웹 폼(Web Form) 웹 폼 이벤트
1장 Visual Basic 2010 시작 1.1 프로그램에 대한 기초 1.2 Visual Basic 버전
김희정 Bridge Pattern.
5주 실습강의 학기, 소프트웨어 설계 및 실험(Ⅰ).
C# 09장. 클래스와 객체.
Web & Internet [10] 입문 – input 태그
Visual Basic .NET 윈도우 컨트롤 2.
Presentation transcript:

.NET Naming Rule 2009.10.07

.NET Naming Rule Guide Line 명명 규칙 개발 업무 시, 각 개발 요소에 대한 이름으로 명명 규칙을 준수함으로써 코드의 안정성과 가독성을 향상시키고 명확한 의미 부여 및 생산성을 높일 수 있습니다. 명명 규칙 준수를 통한 업무 생산성 효과 - 일종의 규약을 설정하여 프로젝트 개발자 간의 원활한 업무적 의사 소통 가능 - 업무 단계별 산출물 사이의 일관성 유지 - 명확한 의미 부여로 산출물 사이의 연관성 및 코드 가독성 향상 명명 규칙 준수 시 공통 사항 - 임의(정의되지 않은)의 약어 대신 완벽한 단어를 사용한다. (약어 사용시, 정의된 약어 사용) - 명칭의 가독성을 높이기 위해 대소문자를 원칙에 따라 혼용하여 사용한다. - 업무 영역에 적합하고 연관된 용어를 선정 및 정의한다. - 같은 유형의 요소에 대해서는 혼동을 방지하기 위해 유사 명칭이나, 대소문자만 다른 명칭은 사용 금지한다. - 너무 긴 명칭을 삼가한다. (15자 이내 권장) - .NET Framework 및 각 언어에서 미리 정의된 키워드 이름과 중복되지 않아야 한다.

.NET Naming Rule Guide Line 명명 규칙 표기법 유 형 설 명 예 시 적 용 대 상 Pascal Case 모든 단어의 첫 번째 글자를 대문자로 쓴다. ProductCatalog 클래스 열거형(Enum), 열거값 이벤트 읽기 전용 정적 필드 인터페이스 메소드 네임스페이스, 속성 등 Camel Case 맨 첫 번째 글자는 소문자로, 나머지 각 단어의 첫 번째 글자를 대문자로 쓴다. productCatalog 매개변수(parameter) 인스턴스 필드, 클래스 변수 Upper Case 모든 글자를 대문자로 쓴다. System.IO 2글자 정도의 단어, 상수 Hungarian Case Pascal Case 유형 앞에 변수의 타입 약어를 표시한다. dtDocData 컨트롤 변수 데이터 관련 변수

.NET Naming Rule Guide Line 클래스(Class) 클래스 명은 간단하면서도 설명이 되도록 명명한다. 단수 명사(명사, 명사구)를 사용하는 것을 원칙으로 하며, 여러 개의 단어가 결합해야 할 경우는 명사 + 동사(MemberList)의 형태로 사용한다. 정해진 약어를 제외하고는 완전한 단어를 사용하며, 표기법은 Pascal Case을 적용한다. 구 분 명명 표준 예 시 Base Class [공통 기능 명] + Base RuleBase, DacBase Business Façade [Use Case Group 명] + System/Façade/Service ProductSystem, OderService Business Rule [Use Case Group 명]+ Biz MemberBiz Data Access Component [Use Case Group 명] + Dac [테이블 명] + Dac MemberDac Exception Class [사용자 정의 예외 명] + Exception BusinessRuleException

.NET Naming Rule Guide Line 베이스 클래스(Base Class) 공통적으로 사용하는 부모 클래스를 의미하며, 어플리케이션 아키텍처에 의해 정의해 각 Role별로 그 공통된 기능을 미리 정의한 클래스이다. 각각의 Role에 해당하는 Class를 생성하여 사용하는 경우에는 반드시 해당하는 Base Class로부터 상속 받아서 사용하도록 한다. 베이스 클래스는 각 Layer별로 필요한 Utility API를 포함하거나, 권한인증 및 Logging 등의 특별한 공통기능을 수행한다. 구 분 명명 표준 Transaction Option Web Service WebServiceBase Business Rule [Use Case Group 명] + BizBase 트랜잭션 사용 시 “메소드 명 + _Tx” (메소드 단위로 사용) Data Access Component [Use Case Group 명] + DacBase

.NET Naming Rule Guide Line 인터페이스(Interface) 클래스 명명 규칙과 동일하며, 대문자 I를 접두사로 사용하여 인터페이스인지 구분할 수 있도록 한다. ex) IServiceProvider, Icomponent 메서드 동사 / 동사구(동사 + 명사)를 사용하며 표기법은 Pascal Case를 적용하고, 파라미터는 일반적으로 Camel 표기법을 사용하며 이름과 타입으로 의미를 확인할 수 있을 정도로 설명적이여야 한다. ex) GetUsers(), RegisterUser(string userId) Business Rule, Data Access 계층의 클래스 메서드는 사전에 약속된 동사를 사용한다. 구분 Business Façade / Rule Data Access Componenet 추가 Add / AddNew / Append / Register + 명사 ex) AddNewMemberInfo Insert 수정 Modify / Change / Update + 명사 ex) UpdateMemberInfo Update 삭제 Remove / Delete + 명사 ex) DeleteMemberInfo Delete 조회 Get / Inquire + 명사 / Inquire + 명사 + By + 조건(Optional) ex) GetMemberInfo, GetMemberInfoByMemberID Select / Inquire / 결과값이 Scalar 값이나 Boolean인 경우는 서비스 의미를 나타내는 단어를 이용하여 명명표준을 따른다. ex) MaxNumber(), IsExist(string userId)

.NET Naming Rule Guide Line 변수(Variant) 및 필드(Field) 변수 이름은 짧으면서도 의미가 있는 단어를 사용한다. 기본적으로 Camel Case를 사용한다. ex) empName, result, name 데이터 관련 변수(오른쪽 표 참고)와 UI 컨트롤의 경우(부록 참고)는 타입을 나타내는 접두어를 붙여 표기한다. (Hungarian Case 표기법) ex) dtResult, drSelectedRow, ibtnSearch(Image Button), btnSelect 매개 변수, 지역 변수, 인스턴스 필드는 Camel Case를 사용하고, 정적 필드는 Pascal Case를 적용한다. 멤버 변수도 일반 변수와 마찬가지로 Camel Case 표기법을 사용하나, 일반 메소드 내부 변수와 구분을 하기 위해 this 를 사용한다. ex) private string memberName; public void SomeMethod(string memberName) { this.memberName = memberName } 개체 유형 접두어 DataSet ds DataRow dr DataColumn dc DataTable dt DataView dv TableCell tc 데이터 관련 변수 접두어

.NET Naming Rule Guide Line 상수(Constants) 1. 표기법은 Upper Case를 사용하며, 단어와 단어 사이는 _로 연결한다. ex) int MAX_COUNT = 1000; 속성(Property) Pascal Case 표기법을 사용한다. 내부 type(private)과 동일한 이름을 사용한다. Private 인스턴스 필드를 외부에 노출 시, Pascal Case 표기법을 사용한다. ex) // 내부 type인 경우, Camel Case 적용 private int itemCount; // Private 인스턴스 필드를 외부에 노출하고자 하는 경우, Pascal Case 적용 public int ItemCount { get { … } set { … } }

.NET Naming Rule Guide Line 이벤트(Event) 표기법은 Pascal Case를 적용하며, 이벤트 처리ㄹ기 이름에는 EventHandler 접미사를 사용한다. ex) MouseEventHandler 이벤트 인수 클래스 이름에는 EventArgs 접미사를 사용한다. ex) MouseEventArgs public delegate void MouseEventHandler(object sender, MouseEventArgs e); 시점을 나타내는 경우, BeforeXXX / AfterXXX 대신 ~ing / ~(e)d 형태를 사용한다. ex) BeforeClose, AfterClose  Closing, Closed

.NET Naming Rule Guide Line 네임스페이스(Namespace) Pascal Case 를 적용한다. (기본 구조) 회사명.도메인/부서.애플리케이션/시스템명.하위시스템.논리적계층 ex) Microsoft.Windows.WindowsServer.IIS 업무 시스템에 맞게 ‘도메인/부서’, ‘하위 시스템’, ‘논리적 계층’ 등은 생략 가능하다. ex) NEO.Development.MessengerApp 수준 내 용 예제 생략 가능 여부 1 회사명 Neoplus (약어 표시일 경우 Upper Case 표기법 : NEO) X 2 도메인 / 부서 Development O 3 애플리케이션 / 시스템명 MessengerApp 4 하위 시스템 InstantChatting 5 논리적 계층 Biz

.NET Naming Rule Guide Line 네임스페이스(Namespace) Server Component Layer는 서브 시스템 아래 Layer 별로 네임스페이스 명을 지정한다. ex) NEO.Development.MessengerApp.Web Layer Namespace Biz Layer Biz Dac Layer Dac Web UI Web Web User Control WebCtl Web Service WS Windows Form Win Windows Console Con Windows Service WinSvc

.NET Naming Rule Guide Line 부록 1. 웹폼 컨트롤에 따른 접두어(1) 컨트롤 유형 접두어 예제 Adrotator rot rotMenu MainMenu mnu mnuOption Button btn btnOK MonthCalendar cal calThisMonth ComboBox cbo cboCountry PictureBox pic picPhoto CheckBox chk chkSubject Panel pnl pnlCategory CheckBoxList chkl chklJuso ProgressBar prg prgStatus CompareValidator vcomp vompCom RichTextBox rtf rtfNotepad CustomValidator vcst vcstCheck RadioButton rad radEducation CrystalReportViewer crv crvReport RadioButtonList rbtnl rbtnlHobby DataGrid dgr dgrCustomer Repeater rep repBook DropDownList ddl ddlName RequiredField Validator vreq vreqCheck DataList dlst dlstAdress RangeValidator vrng vrngScop DateTimePicker dtp dtFromDate RegularExpression Validator vrex vrexCheck Dialogs dlg dlgFileOpen StatusBar stb stbCurrent Form frm frmPath TextBox txt txtAddress GroupBox grp grpBox TreeView tvw tvwOrgan HyperLink hlnk hlnkHome TabControl tab tabBasicInfo

.NET Naming Rule Guide Line 부록 1. 웹폼 컨트롤에 따른 접두어(2) 컨트롤 유형 접두어 예제 ImageButton ibtn ibtnOK Timer tmr tmrEvent Image img imgBack ToolBar tlb tlbMenu ListBox lst lstAddress ValidationSummary vsumn vsumnOK Label lbl lblName XML xml xmlData LinkLabel hlbl hlblTitle Listview lvw lvwService

.NET Naming Rule Guide Line 부록 2. HTML 컨트롤에 따른 접두어 컨트롤 유형 접두어 예제 Button hbtn hbtnGo CheckBox hchk hchkHobby DropDown hddl hddlJuso File Field hfile hfilePage Image himg himgBack Label hlbl hlblName ListBox hlst hlstCity ResetButton htbtn htbtnCancel RadioButton hrbtn hrbtnJob SubmitButton hsbtn hsbtnOK TextField htxt htxtName HiddenField hhd hhdName Table htab htabItemList TableRow htabr htabrTempRow TableCell htabc htabcTempCell Anchor hac hacRedirect Span hspn hspnLable Div hdiv hdivTable

.NET Naming Rule Guide Line 부록 3. 윈폼 컨트롤에 따른 접두어(1) 컨트롤 유형 접두어 예제 Button btn btnRegister NumricUpDown nud nudPrice CheckedListBox clb clbYN NotifyIcon nic nicProduct CheckBox chk chkYN OpenFileDialog ofd ofdExcel ComboBox cbo cboProduct PictureBox img imgProduct ContextMenu cmn cmnFile Panel pnl pnlJob ColorDialog col colBackColor ProgressBar prg prgStatus ComponentOne FlexGrid cdg cdgCustomerInfo RichTextBox rtb rtbThinkPad DataGrid dgr dgrProduct RadioButton rad radJob DateTimePicker dtp dtpFromDate SaveFileDialog sfd sfdFile DomainUpDown dud dudProduct StatusBar stb stbUserInfo ErrorProvider err errDatabase Splitter spl splMenu FontDialog fnt fntMain Timer tmr tmrAsync GroupBox grp grpJob TextBox txt txtUserId Hor.Scrollbar hsb hsbLimit TrackBar trb trbUser HelpProvider hlp hlpMenual ToolTip tip tipTimer ImageList iml imlProduct ToolBar tbr tbrMenu

.NET Naming Rule Guide Line 부록 3. 윈폼 컨트롤에 따른 접두어(2) 컨트롤 유형 접두어 예제 Label lbl lblName TreeView tvw tvwMenu ListView lvw lvwProduct TabControl tab tabUserInfo LinkLabel llb llbTitle TabPage tbp tbpJob ListBox lst lstProduct Vert.Scrollbar vsb vsbLimit Menu mnu mnuFile MonthCalendar cal calExport

.NET Naming Rule Guide Line 부록 4. 샘플 예제 소스 (1) using System; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.SharePoint; //#. 네임스페이스 : 회사명.시스템명.논리적계층 구조로 표기, Pascal Case 표기법 namespace Neoplus.MonitoringApp.Win { public partial class DocumentList : Form //#. 상수 : Upper Case 표기법 private const string SITE_URL = ConfigurationManager.AppSettings.Get("SiteUrl") as string; private const string LIST_NAME = ConfigurationManager.AppSettings.Get("ListName") as string; public DocumentList() InitializeComponent(); }

.NET Naming Rule Guide Line 부록 4. 샘플 예제 소스 (2) private void btnRefresh_Click(object sender, EventArgs e) { this.dgvDocument.DataSource = GetDocList(LIST_NAME); } //#. 메소드명 : Pascal Case 표기법 & 매개변수 : Camel Case 표기법 private DataTable GetDocList(string listName) //#. 데이터 관련 변수 및 UI 컨트롤 : Hungarian Case 표기법 DataTable dtDoc = new DataTable(); SPSecurity.RunWithElevatedPrivileges(delegate() //#. 변수 : Camel Case 표기법 using (SPSite site = new SPSite(SITE_URL)) using (SPWeb web = site.OpenWeb()) SPList list = web.Lists[listName]; dtDoc = list.Items.GetDataTable(); }); return dtDoc;