Я и еще один товарищ по команде по-разному используем PostSharp в нескольких проектах, которые находятся в производстве уже несколько месяцев. Например, в одном случае я использую его для регистрации значений параметров метода в случае исключения. PostSharp Laos (включенный в PostSharp) — это простой в использовании способ внедрения вызовов методов (например, при входе в метод, выходе и при исключениях), и вы можете легко добавить вызовы журнала в регистраторы, зарегистрированные в log4net.
Это увеличило время сборки, достаточное, чтобы немного изменить мои привычки сборки, но, конечно, не слишком много для преимуществ, которые оно предоставляет, IMO. При написании кода вы можете исключить его из своей локальной сборки, что достаточно легко сделать, чтобы вы могли продолжать сборку часто и быстро, а затем включать ее на свой сервер сборки и т. д.
Вот хорошее руководство по PostSharp от Гаэля (создателя PostSharp)... хотя он старый, приятно видеть его прогон. На самом деле нет никакой разницы в использовании его в консоли, winforms, WPF или WebApp, с которыми я сталкивался до сих пор.
Я бы также сказал, что как только вы поймете, как добавить аспекты Лаоса в проект, повторить это упражнение будет очень легко. И существует взаимосвязь между количеством сборок/классов, к которым вы применяете аспекты, и тем, сколько времени PostSharp добавляет к вашей сборке. Таким образом, вы даже можете немного контролировать время сборки.
Что касается кода, я очень впечатлен тем, насколько хорошо работает PostSharp... он никогда не испортил сборку, не сделал сборку недействительной или иным образом не испортил код. И я даже использовал его в приложениях ASP.NET с охватом кода и инструментарием производительности (поэтому он прекрасно работает с инструментами инструментов MS Assembly).
В общем, я бы определил. рекомендуем вам попробовать его для ваших требований log4net.
person
ZeroBugBounce
schedule
06.01.2009