블로그 이미지
내게 능력 주시는 자 안에서 내가 모든것을 할수 있느니라 - 빌립보서 4 : 13 - happydong

카테고리

Happydong (1363)
프로그래밍 (156)
01.C#기초 (4)
02.C#고급 (13)
03.ASP.NET (28)
04.HTML&Script (17)
05.Silverlight (38)
06.C 언어 기초 (2)
07.iOS (14)
08.Java (5)
09.SQL (8)
10.컴퓨터보안 (10)
11.패턴이야기 (3)
12.유니티3D (1)
13.Ubuntu (7)
14.Node.js (6)
MUSIC (16)
인물 (3)
Utility (10)
세미나 소식&내용 (22)
IT뉴스 (18)
운동 (830)
CAFE (10)
Life (282)
Total
Today
Yesterday



윈도우 서비스(Windows Service)를 개발하고 나서 원도우에 추가하는 방법으로는 "installutil.exe"을 이용하는 방법과 "SC Tool(sc.exe)" 방법이 있을 수 있다. 두 가지 방법에 대한 사용법을 간단하게 알아 보자.


ㅁ installutil.exe로 등록 



 1. Visual Studio 2012 명령 프롬프트 열기.

 2. 프로젝트 exe파일이 있는 폴더로 이동.

 3. installutil service.exe  입력(service.exe는 빌드된 실행파일이름)



ㅁ installutil.exe로 삭제


 

 1. Visual Studio 2012 명령 프롬프트 열기.

 2. 프로젝트 exe파일이 있는 폴더로 이동.

 3. installutil /u service.exe 입력(service.exe는 빌드된 실행파일이름)



ㅁ SC Tool(sc.exe)로 등록



 1. cmd 열기(시작 > 보조프로그램 > 명령 프롬프트)

 2. sc create "서비스이름" binpath= "설치파일경로 및 파일이름" start= "demand" // demand : 수동

  (ex : sc create "HappydongWindowsService" binpath= "C:\Happydong\bin\service.exe" start= "demand" )



ㅁ SC Tool(sc.exe)로 삭제



 1. cmd 열기(시작 > 보조프로그램 > 명령 프롬프트) 

 2. sc delete "서비스이름"

  (ex : sc delete "HappydongWindowsService")




Posted by happydong
, |



예전에 "#if#end 또는 Conditional Attribute의 적절한 사용"라는 내용으로 블로 포스팅 한적이 있다. #if #endif의 사용법은 해당 포스팅을 참고하면 좋을 것이다. 이번에는 ASP.NET MVC 개발을 하면서 View에 디버깅 모드를 분리하는 방법에 대해  알아 보도록 하겠다.

@{

#if DEBUG

    // 해당 코드

#else

    // 해당 코드

#endif

}

[코드 1 - Index.cshtml 파일]


 위 [코드1]은 View에서 서버 코드를 작성 할때 처럼 "@{ }"를 이용해서 디버깅모드 설정을 한 것이다. 그러나 이건 마크업형태로 디버깅하기에는 매우 불편한 방법이다. 그래서 좀더 스마트 한 방법을 알아 보도록 하겠다. 이 방법을 사용하려면 기본적으로 "확장메서드(Extension Methods)"의 개념을 알고 있을 필요가 있다. 사용법 모른다면 일전에 제가 블로그 포스팅한 내용 "확장메서드(Extension Methods) 사용법" 참고 하길 바란다.

 

public static class ExtensionMethods

{

    public static bool IsDebug(this HtmlHelper htmlHelper)

    {

#if DEBUG

            return true;

#else

        return false;

#endif

    }

}

[코드 2 - cs파일에 HtmlHelper의 확장 메서드]

 위 [코드 2]처럼 HtmlHelper의 확장메서드를 만든다. 이는 간단하게 디거깅 모드인지 아닌지를 확인하는 메서드이다.



@if (Html.IsDebug())

{

    <div>Debug 모드</div>

}

else

{

    <div>Release 모드</div>

}

 

[코드 3 - Index.cshtml 파일]


 위 [코드 3]은 [코드 2]에서 만든 확장메서드를 사용하는 방법을 나타낸 것이다. 


 View에서 디버깅모드를 체크할때에는 [코드 1]을 이용하는 것 보다 확장 메서드를 이용하는 것이 좀더 스마트 한 방법이 아닐까 생각이 든다. 

Posted by happydong
, |



확장메서드(Extension Methods)사용하면 새 파생 형식을 만들거나 다시 컴파일하거나, 원래 형식을 수정하지 않고도 기존 형식에 메서드를 "추가" 할 수 있다. 다시 말해 직접 작성하지 않았거나, 소스코드가 없어서 변경이 불가능한 클래스에 메서드를 추가할 수 있는 편리한 방법이다. 확장 메서드는 특수한 종류의 정적 메서드이지만 확장 형식의 인스턴스 메서드인 것 처럼 호출된다.

 

>> 사용법

 

1. 먼저 예제에 필요한 클래스 파일들을 만들어 보도록 하겠다. 아이템(Item)이라는 모델 클래스와 아이템을 담을 수 있는 아이템박스(ItemBox) 모델 클래스를 정의하도록 하겠다.

 

 - ItemModel 클래스 정의

 

 

 - ItemBoxModel 클래스 정의

 

 

 

2. 확장 메소드를 정의 하도록 하자. 먼저 확장메소드들을 정의할 클래스 파일을 하나 만들고, 아래와 같이 확장메소드 만들어 보자.

 

 

GetTotalPrices메소드는 확장메소드 이며, ItemBoxModel의 인스턴스를 생성하고, 일반 메서드처럼 사용할수 있다. 이를 가능케 하는 이유가 바로 파라미터로 this 키워드이다. this 키워드가 GetTotalPrices메서드를 확장 메서드로 표시해주는 역할을 하기 때문이다.

 

3. 확장 메소드 호출해보자. ItemBoxModel의 인스턴스를 생성하고, 메소드 이름을 찾아보자.

 

 

 

위 코드에서 itemBox하고 점을 찍으면(itemBox. ), 해당 사용할수 있는 메소드들이 나오는데, 아래 그림과 같을 것이다.

 

 

아시다시피 연한보라색박스로 표시되어 있는 것들이 메서드임을 의미한다, 여기서 확장 메서드는 연한보라색박스에 아래로 화살표가 표시되어 있어, 어떤것이 확장메서드인지 구분할 수 있다.

 

 

MSDN 참고 : http://msdn.microsoft.com/ko-kr/library/bb383977.aspx

Posted by happydong
, |