2009-08-11 3 views
2

내 응용 프로그램의 일부로 내 자신의 사용자 정의 로깅 시스템 (log4net의 맨 위에 앉아)을 작성하려면 지금 PostSharp (www.postsharp.org)를 고려 중입니다. PostSharp가 이러한 모든 요구 사항을 충족시킬 수 있다고 생각하십니까?Postsharp : 내 요구 사항에 좋은가요

이 내 요구 사항 :

나는 사용자 정의 메서드, 속성, 필드, 클래스 및 어셈블리 수준에서 작동 "측면"을 쓸 수 있기를 원하는
  1. .

  2. 은 내가 특별히 윈폼에서, 3.5뿐만 아니라 .NET 2.0 프로젝트에 대한 도구를 사용할 수 있도록하려면 및 ASP.NET MVC (포함)와 WCF 내가되고 싶지 않아

  3. 프로젝트 클라이언트 컴퓨터/배포 지점에서 내 소프트웨어와 별도로 별도의 도구 (exe)를 실행합니다.

선호 : 나는 도구의 dll을 재배포하지 않아도되는 것이 좋습니다. 그러나 런타임 dll을 앱으로 다시 배포하지 않아도된다는 요구 사항이 요구 될 수 있습니다. 따라서 건너 뜁니다.

  1. 내 응용 프로그램의 주로 사용자 지정 로깅 측면을 작성하도록이 기능을 확장하려고합니다.

  2. 웹 응용 프로그램을 재배포 할 것이고 Windows는 응용 프로그램을 양식으로 만들 것입니다. 그래서 내가 사용하려고하는 도구가 어떤 종류의 로열티 지불이나 라이센스 비용이 없는지, 그리고 그것이 하나의 특정 유형의 라이센스로 제한되지 않도록하려는 것입니다. 내 응용 프로그램의 상업용 라이센스를 판매하고 있습니다.

+1

Log4PostSharp를 살펴볼 수 있습니다. 충분하지 않으면 향상시킬 수 있습니다 ... –

+0

쿨하므로 log4postsharp도 확장 가능합니까? 그러면 나는 그것이 멋질 것이라고 생각한다. –

+0

나는 그것이 얼마나 확장 성이 있는지 모른다. 그러나 그것은 아주 강력하다. 그리고 어떤 것이 든 그것을 확장하고 Google 코드로 다시 제출할 수 있습니다. –

답변

0
  1. 예.

  2. 예. ASP.NET에서 aspected 코드를 컴파일하려면 ASP.NET 서버에 PostSharp 빌드 타임 구성 요소를 배포해야합니다. 그것이 당신이 원하는 것을 확신하지 못합니다 (3).

  3. PostSharp.Core를 사용하여 사용자 정의 애스펙트를 개발하는 경우 종속성이 필요하지 않습니다. PostSharp 라오스를 사용하는 경우 PostSharp.Public.dll 및 PostSharp.Laod.dll을 재배포해야합니다.

  4. 아무런 문제가 없습니다.

  5. 컴파일 된 웹을 배포하는 경우에는 문제가 없습니다. 위버가 향상시킬 필요가있는 소스 코드를 배포하는 경우, 전체 PostSharp 물건을 재배포해야합니다. 가능하지만 매우 섹시하지는 않습니다.

+0

감사합니다. Gael. 2와 관련하여 : 내 포스트 스크립트 빌드 구성 요소에 내 응용 프로그램 DLL을 빌드하는 서버가 있어야하며 그렇지 않으면 최종 배포 웹 서버/응용 프로그램 서버를 의미합니까? 3 : 내 말은 로그를 작성하기위한 사용자 정의 논리를 작성할 사용자 정의 측면을 작성한다는 것입니다 (어쩌면 그 목적을 위해 log4net을 사용했을 수도 있습니다). 내가 PostSharp.Core를 사용한다고 생각합니까? 나는 DLL을 사용하면 라이센스 비용을 지불해야한다는 웹 사이트를 읽었습니다. 5 : 웹 사이트는 앱으로 실행되는 dll 파일로 배포됩니다. 그럼? –

+0

@ 2 : 앱을 빌드하는 서버에서. 그러나 ASP.NET을 사용하면 ASP.NET에서 컴파일 할 서버 소스 코드를 추가 할 수 있습니다. 나는이 소스 코드에서 어떤 면도 사용하지 말라고 강력하게 권고한다. aspected 코드는 모두 컴파일해야합니다. 따라서 웹 사이트의 최종 배포 서버에 PostSharp를 배포 할 필요가 없습니다. 그래서 일반적으로 * .aspx와 같이 PostSharp를 사용하지 않는 dll + 코드 만 배포하면 문제가 없습니다. –

+0

Thnx. 물론, 나는 "배포"모든 소스 코드 파일을 의도하지 않습니다, 그것만 dlls + aspx + 스크립트 등 컴파일됩니다. 좋아, 그게 내가 postshartp 핵심 DLL을 다시 배포하는 것을 의미하지 않는 것을 의미합니다. Gael에게 감사드립니다. –

2

Log4PostSharp에서 PostSharp.Core를 사용하여 사용자 지정 화면을 직접 코딩하기 전에 살펴보십시오.

+0

그래, 나는 잠시 뒤로 그랬지만, 웹 사이트 (첫 페이지)에서 얻은 인상은 단 하나의 사용자 정의 부분 만 가지고 있다는 것이고, 그 또한 단지 방법 일 뿐이다. 더 자세한 정보가 필요합니다. 이 프로젝트가 로깅 목적으로 상당히 포괄적 일 것이라고 생각하십니까? 물론 log4net에도 단단히 결합되어 있습니다. –

+0

방법에 대해서만? 그러나 메소드 이외에 기록해야 할 것은 무엇입니까? 속성 및 이벤트 접근자는 또한 메소드입니다. 그리고 성능 지옥에가는 길에 필드 접근을 로깅하면 ... –

+0

예, 동의하지만, 속성 비트에, 나는 코드를 작성할 때 (컴파일러가 아닌) 메소드가 아니기 때문에 생각했다. 속성 로깅을 지원하지 않습니다. –

관련 문제