'Dev Tools/이벤트 코드 생성기'에 해당되는 글 5건

  1. 2009.10.30 이벤트 코드 생성기 1.4 업데이트와 설치, 그리고 소스
  2. 2009.03.12 이벤트 코드 생성기 1.3 업데이트
  3. 2008.11.21 변경 이벤트를 지원하는 WPF 종속성 속성 생성 코드 조각
  4. 2008.11.19 Event Stuff Generator의 비주얼 스튜디오 코드 조각 버전
  5. 2008.10.30 이벤트 코드 생성기 1.1 업데이트

이벤트 코드 생성기 1.4 업데이트와 설치, 그리고 소스

Dev Tools/이벤트 코드 생성기 2009. 10. 30. 00:14

이벤트 코드 생성기에 대한 설명은 아래 링크를 참조하십시오.

C# 코딩 연습 - 대리자와 이벤트

이벤트 코드 생성기 1.1 업데이트

이벤트 코드 생성기 1.3 업데이트

 

이벤트 코드 생성기가 1.4로 업데이트 되었습니다.

 

[설치]

이번 버전 부터는 클릭원스를 통해 배포가 되게 됩니다.

따라서 서버에 최신 버전이 게시되면 자동으로 업데이트가 일어나게 됩니다.

설치 URL은 다음과 같습니다.

http://ldev.homeip.net/publish/DevTools.EventStuffGenerator/publish.htm

 

[업데이트 내역]

이벤트 이름과 매개변수의 히스토리가 저장

프로그램을 다시 시작하더라도 최근 20개 까지의 목록이 유지되므로 동일한 이벤트 코드 생성을 편리하게 할 수 있습니다.

 

이벤트 매개변수 파싱 방법 향상

이전 버전에서는 매개변수를 파싱할 때, 타입명과 변수명은 스페이스, 또 각각의 매개변수는 개행문자로만 구분할 수 있었지만, 이제는 쉼표나 여러 개의 스페이스, 개행문자로도 구분할 수 있습니다.

즉,

int a1

int a2

라고 지정해야만 했던 포맷을 이제는

int a1, int a2

와 같이 지정할 수도 있습니다.

이 기능은 특히, 한번 생성한 이벤트 코드를 수정하는 경우에 유용하게 사용할 수 있습니다.

예를 들어 위 스크린샷과 같이 GenerateButtonClicked 라는 이벤트를 생성하여 사용한다고 합시다.

개발이 진행됨에 따라 이 이벤트의 매개 변수에 새로운 매개변수 (int dummmy)를 추가하여야 한다면, 이전에는 template 부터 argument 까지의 매개변수를 다시 입력하여야 했지만, 이제는 이전에 생성된 코드 중,

등 에서 Template template, string generatedCode, bool successed, string eventName, string argument 부분을 복사한 후, 여기에 int dummy 를 추가하는 식으로 좀 더 효율적인 작업이 가능합니다.

 

파일 저장소로 격리된 저장소 사용

이벤트 이름과 매개변수의 히스토리와 커스텀 템플릿을 일반 파일 시스템이 아닌 격리된 저장소에 저장합니다.

따라서 비스타 이상의 운영체제에서 발생하는 보안 문제 (퍼미션)가 해결되었습니다.

또한 클릭원스를 통해 매번 업데이트를 받더라도, 이전과 동일한 격리된 저장소를 사용하는 로직이 추가되어 있어, 사용자의 사용 환경이 그대로 유지됩니다. (소스를 참고하십시오)

 

[소스]

실제 개발을 진행하고 있는 상태의 소스를 공개용으로 일부 수정하여 첨부하였습니다.

다른 요구사항은 없지만, DevExpress 사의 .Net Winform Controls 라는 써드 파티 컨트롤 라이브러리를 사용하고 있으므로 이 제품은 설치되어 있어야 합니다.

평가판은 여기에서 다운로드 받을 수 있습니다.

:

이벤트 코드 생성기 1.3 업데이트

Dev Tools/이벤트 코드 생성기 2009. 3. 12. 01:15

이벤트 코드 생성기의 버전이 1.3으로 올라갔습니다.

image

  • UI를 Devexpress Winform Controls 기반으로 변경하였습니다.
  • C# 3.0 템플릿의 버그 (자동 속성 생성 부분)를 수정하였습니다.

업데이트와 실행방법은 秀作 론처의 론칭를 참조하시기 바랍니다.

:

변경 이벤트를 지원하는 WPF 종속성 속성 생성 코드 조각

Dev Tools/이벤트 코드 생성기 2008. 11. 21. 09:25


요즈음 WPF 공부를 성실하게 하다 보니 앞으로 종속성 속성을 빈번하게 만들 것 같다는 예감이 듭니다.

그래서 VS2005(2008)의 코드 조각 기능을 사용하여 반복적인 타이핑을 줄일 수 있는 코드 조각을 만들어 보았습니다.

사용 방법은 다음과 같습니다.

도구 -> 코드 조각 관리자를 실행합니다.

가져오기 버턴을 눌러 새로운 코드 조각을 가져옵니다.

첨부된 Dependency Property.snippet를 불러옵니다.

마침을 누르면 코드 조각이 추가됩니다.

추가된 코드 조각의 정보는 다음과 같습니다.

image

이 코드 조각을 사용하는 예를 볼까요?

종속성 속성을 가질 클래스를 추가합니다. 이름은 SecretButton으로 하겠습니다.

image

일반 버튼을 확장하여 비밀 텍스트를 추가로 가질 수 있는 버튼입니다.

비밀을 저장할 Secret 종속성 속성을 추가하겠습니다.

클래스 내부에서 dp라고 입력하고 탭키를 누릅니다.

image

(위 이미지에 생성된 코드의 일부입니다.)

현재 커서는 속성 이름을 변경하는 곳에 위치하고 있습니다. 속성 이름인 Secret를 입력하고 탭 키를 누릅니다.

이제 커서는 속성의 형식을 변경하는 곳에 있게 됩니다. 이번에는 string 라고 입력하고 탭 키를 누릅니다.

이번에는 속성의 기본값을 입력합니다. 여기서는 ""라고 입력합니다.

값을 편집하는 중에 기존 값을 변경하지 않으려면 그냥 탭 키만 누릅니다. 또한 엔터 키를 누르면 편집이 끝납니다.

 

위 예에서 생성된 전체 코드는 다음과 같습니다.

#region Secret dependency property things
/// <summary>
/// Identifies the Secret dependency property.
/// </summary>
public static readonly DependencyProperty SecretProperty =
    DependencyProperty.Register(
        "Secret", typeof(string), typeof(SecretButton),
        new FrameworkPropertyMetadata("", OnSecretChanged, OnSecretCoerced));

/// <summary>
/// Gets or sets the Secret assigned to the control.
/// </summary>
[Description("Gets or sets the Secret assigned to the control.")]
[DefaultValue("")]
public string Secret
{
    get { return (string)GetValue(SecretProperty); }
    set { SetValue(SecretProperty, value); }
}

private static object OnSecretCoerced(DependencyObject element, object value)
{
    string newValue = (string)value;
    SecretButton control = (SecretButton)element;

    //TODO : 여기에 커스텀 로직을 입력.

    return newValue;
}

private static void OnSecretChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
    SecretButton control = (SecretButton)obj;

    RoutedPropertyChangedEventArgs<string> e = new RoutedPropertyChangedEventArgs<string>(
        (string)args.OldValue, (string)args.NewValue, SecretChangedEvent);
    control.OnSecretChanged(e);
}

#region 라우팅된 SecretChanged 이벤트. UIElement를 상속하는 클래스만 유효
/// <summary>
/// Identifies the SecretChanged routed event.
/// </summary>
public static readonly RoutedEvent SecretChangedEvent = EventManager.RegisterRoutedEvent(
    "SecretChanged", RoutingStrategy.Bubble,
    typeof(RoutedPropertyChangedEventHandler<string>), typeof(SecretButton));

/// <summary>
/// Occurs when the Secret property changes.
/// </summary>
public event RoutedPropertyChangedEventHandler<string> SecretChanged
{
    add { AddHandler(SecretChangedEvent, value); }
    remove { RemoveHandler(SecretChangedEvent, value); }
}

/// <summary>
/// Raises the SecretChanged event.
/// </summary>
/// <param name="args">Arguments associated with the ValueChanged event.</param>
protected virtual void OnSecretChanged(RoutedPropertyChangedEventArgs<string> args)
{
    RaiseEvent(args);
}
#endregion
#endregion

:

Event Stuff Generator의 비주얼 스튜디오 코드 조각 버전

Dev Tools/이벤트 코드 생성기 2008. 11. 19. 13:33



Event Stuff Generator와 동일한 일을 하는 비주얼 스튜디오용 코드 조각을 만들어 보았습니다.

이제는 이벤트 코드 조각을 만들기 위해 따로 Event Stuff Generator 툴을 실행할 필요 없이 비주얼 스튜디오에서 바로 코드 조각을 생성할 수 있게 되었습니다.

(코드 조각을 설치하고 사용하는 방법은 이전 포스트인 변경 이벤트를 지원하는 WPF 종속성 속성 생성 코드 조각를 참고하시기 바랍니다.)


첨부파일에는 Event Stuff C# 2.0 (0).snippet 부터 Event Stuff C# 2.0 (5).snippet 까지 6개, 그리고 Event Stuff C# 3.0 (0).snippet 부터 Event Stuff C# 3.0 (5).snippet 까지 6개의 snippet 파일이 있습니다.

각각 C#의 버전과 생성할 이벤트 매개 변수 클래스의 필드 수에 대응합니다.

예를 들어 AgeChanged 이벤트가 AgeChangedEventArgs 이벤트 매개 변수 클래스와 연결되어 있고, AgeChangedEventArgs가 int oldAge, int newAge 라는 두 개의 필드를 가지고 있다면 Event Stuff C# 2.0 (2).snippet 혹은 Event Stuff C# 3.0 (0).snippet을 사용하면 됩니다.

(필드 수가 여섯 개 이상인 경우는 지원하지는 않지만 소스를 수정하여 직접 만들어 쓰는 방법이 있습니다.)


단축키는 C# 2.0용 코드일 경우에는 ev20 ~ ev25, C# 3.0의 경우에는 ev30 ~ ev35 까지 총 12개를 지정해두었습니다.


필드의 갯수에 따라 거의 동일한 코드 조각을 6개씩 만들어야 하는 것이 비효율적이긴 하지만, 비주얼 스큐디오의 코드 조각에는 필드의 갯수에 따라 반복하는 함수를 지원하지 않기 때문에 어쩔 수가 없는 것 같습니다. (C#의 경우 겨우 3개의 함수만 지원합니다.)

혹시 다른 방법을 아시면 알려 주시면 감사하겠습니다.


또 한 가지 툴을 사용할 때 보다 불편한 점은 매개 변수 클래스의 필드 수가 많아지면 입력이 다소 불편함 감이 있습니다.

예를 들어 코드 조각에서는 oldAge와 OldAge를 각각 입력하여야 하기 때문에 툴에 비해 타이핑 수가 거의 두 배 정도 많습니다.

그래도 각각 일장일단이 있으니 툴이나 코드 조각 중 편리한 것을 사용하시면 되겠습니다.

기술 지원은 양 쪽 다 지원하도록 하겠습니다.

:

이벤트 코드 생성기 1.1 업데이트

Dev Tools/이벤트 코드 생성기 2008. 10. 30. 11:08

이벤트 코드 생성기의 버전이 1.1로 업데이트 되었습니다.

이전 버전을 이미 설치하신 분들은 자동 업데이트가 될 것이며, 새로 설치하실 분들은 아래 링크를 클릭하시면 됩니다.

http://snssoft.net/devtools.eventstuffgenerator/publish.htm

 

사용방법은 다음과 같습니다.

image

1. 생성할 이벤트의 이름을 입력합니다.

 

2. 이벤트 매개변수 클래스의 필드의 형과 이름을 입력합니다.

필드가 여러 개 라면 엔터키를 눌러 줄을 구분합니다.

T data

와 같이 제네릭 필드도 사용할 수 있습니다.

 

3. 템플릿을 선택합니다.

기본적으로 C# 2.0과 C# 3.0용의 템플릿이 제공됩니다. (이 두 템플릿의 차이는 C# 3.0에서는 자동 구현 속성을 사용하는 것 밖에 없습니다.)

Custom 1 ~ Custom 5 템플릿은 사용자가 자유롭게 편집하여 사용할 용도로 제공되는 템플릿입니다.

 

4 ~ 5. 생성 버튼을 클릭하면 코드 텍스트 상자(5번 부분)에 생성된 코드가 표시됩니다.

 

6. 코드 복사 버튼을 누르면 생성된 코드가 클립보드로 복사됩니다.

 

추가로 만약 기본 제공되는 템플릿을 수정하여야 한다면 아래 방법처럼 하실 수 있습니다.

a. Custom 1 ~ Custom 5 템플릿 중 한 가지를 선택하고 템플릿을 적절히 구성합니다. 이때 사용되는 템플릿에서 사용되는 매크로에 대한 설명은 매크로 패널(8번 부분)을 참조합니다.

b. 템플릿 저장 버튼을 눌러 수정된 템플릿을 저장하면, 다음 실행 시 저장된 템플릿이 나타납니다.

: