tag:blogger.com,1999:blog-5422036137568788209.post8366630706235166469..comments2023-02-28T12:04:19.260+03:00Comments on handcode: AOP средствами Unity 2.0Илья Дубаденкоhttp://www.blogger.com/profile/03756815679135463187noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-5422036137568788209.post-58092501191897131482013-09-08T21:09:51.340+04:002013-09-08T21:09:51.340+04:00К сожалению я не знаком с Unity (которая game engi...К сожалению я не знаком с Unity (которая game engine)Илья Дубаденкоhttps://www.blogger.com/profile/03756815679135463187noreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-23917209919301796992013-09-08T20:06:35.167+04:002013-09-08T20:06:35.167+04:00а не подскажете чем можно перехватывать запросы в ...а не подскажете чем можно перехватывать запросы в unity web playerAnonymoushttps://www.blogger.com/profile/09959852590547865712noreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-49526466138399714042011-05-15T09:43:48.409+04:002011-05-15T09:43:48.409+04:00Да, бесспорно, если нет ничего лучше, то приходитс...Да, бесспорно, если нет ничего лучше, то приходится юзать то, что есть. На работе я с java мучаюсь точно так же, как и ты с C#-ом, из-за бедных средств обобщенного программирования в языке. Что C#, что Java -- языки слишком низкоуровневые и невыразительные. Если бы у них были средства нормального метапрограммирования, то не пришлось бы юзать AOP-фреймворки. <br />Воспоминание Кенни Тилтона:<br />Я помню как Грегор Кичалес на ILC 2003 [Международная конференция по Лиспу], рассказывая об AspectJ безмолвной толпе, остановился, затем жалобно добавил «Когда я показал это Java-программистам они встали и заапплодировали».Dmitryhttps://www.blogger.com/profile/17434341697941378483noreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-31237636375663106212011-05-14T19:51:27.336+04:002011-05-14T19:51:27.336+04:00@Dmitry
AOP'ом должен управлять framework, в ....@Dmitry<br />AOP'ом должен управлять framework, в .NET он пока отсутствует, поэтому приходиться заполнить пробел подручными средствами, например Unity. Но .NET же не стоит на месте.Илья Дубаденкоhttps://www.blogger.com/profile/03756815679135463187noreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-66545635267167152832011-05-14T11:09:51.377+04:002011-05-14T11:09:51.377+04:00"В Лиспе, если охота аспектно-ориентированног..."В Лиспе, если охота аспектно-ориентированного программирования, нужно лишь настругать немного макрокоманд, и готово. В Java, нужен Грегор Кичалес, создающий новую фирму, и месяцы и годы попыток заставить всё работать." П.Норвиг<br />Вижу, в C# -- то же мракобесие, что и у нас на Java. Кажется, мы когда-то выбрали синюю пилюлю вместо красной...Dmitryhttps://www.blogger.com/profile/17434341697941378483noreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-87752606369859898472011-04-15T11:56:16.770+04:002011-04-15T11:56:16.770+04:00Да, зачастую такие вещи как логирование и Performa...Да, зачастую такие вещи как логирование и Performance Counters лучше устанавливать в конфиге, а то что касается БЛ (транзакционность, кеширование, протаскивание контекста) иметь в коде.Anonymoushttps://www.blogger.com/profile/09854982369318795067noreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-75724846950131802742011-04-14T18:02:04.624+04:002011-04-14T18:02:04.624+04:00@gandjustas
Кстати, если мы настроим перехватчик в...@gandjustas<br />Кстати, если мы настроим перехватчик в xml-файле, а не в коде, то мы без модификации последнего сможем подключать/отключать его, это хорошо распространяется, например, на диагностические перехватчики не влияющие на логику системы.Илья Дубаденкоhttps://www.blogger.com/profile/03756815679135463187noreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-50905433892882953882011-04-14T17:48:41.760+04:002011-04-14T17:48:41.760+04:00http://gandjustas.blogspot.com/2011/04/unity-20-in...http://gandjustas.blogspot.com/2011/04/unity-20-interception.htmlAnonymoushttps://www.blogger.com/profile/09854982369318795067noreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-65294840795947496482011-04-14T16:14:54.605+04:002011-04-14T16:14:54.605+04:00Заглянул в исходники Unity, и выяснил что на время...Заглянул в исходники Unity, и выяснил что на время выполнения, Unity сохраняет сгенерированные прокси во временную сборку Unity_ILEmit_InterfaceProxies используя System.Reflection.Emit (http://unity.codeplex.com/SourceControl/changeset/view/63122#427069)Илья Дубаденкоhttps://www.blogger.com/profile/03756815679135463187noreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-77840235756084465202011-04-14T15:04:56.136+04:002011-04-14T15:04:56.136+04:00@Sergey Litvinov
Performance я не сравнивал, так к...@Sergey Litvinov<br />Performance я не сравнивал, так как не пользуюсь PostSharp (он вроде бы стал платным). Вероятно PostSharp будет быстрее, это все-таки заранее сгенерированный код, хотя возможно Unity делает предварительною генерацию проксей перед пуском приложения, но я придерживаюсь реализации AOP на Unity из-за то, что мы вдобавок к AOP получаем еще и DI/IoC контейнер. <br /><br />Кстати вот еще хорошая ссылка:<br />http://ayende.com/Blog/archive/2007/07/02/7-Approaches-for-AOP-in-.Net.aspxИлья Дубаденкоhttps://www.blogger.com/profile/03756815679135463187noreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-44701492826681917302011-04-14T14:05:59.792+04:002011-04-14T14:05:59.792+04:00Спасибо за статью. У меня есть вопрос с перфомансо...Спасибо за статью. У меня есть вопрос с перфомансом, насколько он ниже, если сранвивать с тем же PostSharp-ом?<br />Так как я понял, Unity генерит прокси на лету, в отличии от PostSharp-а, который делает вставки кода в момент компиляции.Anonymoushttps://www.blogger.com/profile/06334806575485038663noreply@blogger.com