Dynamic Proxy + Expression Tree

В своей работе я всегда пытаюсь абстрагироваться как можно сильнее от всех раздражающих факторов, будь то шум в офисе или сложность управления WCF-сервисом. И вот как раз с последним мне недавно пришла интересная идея. Суть в чем: есть некий класс, который внутри себя полностью управляет каким-то WCF-сервисом, то есть поднимает его (если это self-hosted), подключается […]

Блокирование учетной записи в корпоративном домене

Многие компании устанавливают политику безопасности, согласно которой нужно менять свой пароль раз в 2-3 месяца, а особо параноидальные компании требуют смены пароля и того чаще, например, раз в две недели. Каждый раз придумывать сложный пароль сложно, конечно же, но речь не об этом. После очередной смены пароля я стал сталкиваться с тем, что моя учетная […]

Как подписать все сборки приложения

Понадобилось тут по работе подписать все проекты в решении ключиком. Вообще, вариантов тут три: 1.У каждого проекта в свойствах указать ключ вручную на вкладке Signing – Sign the assembly 2.Использовать командную строчку MSBuild а-ля "C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" .sln /p:Configuration=Release /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=%key_path% /p:OutDir=%outdir%Client" 3.Распарсить каждый файл проекта xxx.csproj и выставить вручную ключи. Первый вариант подходит. Почти. Потому что […]

Прибить все ASP .NET Development Server

Иногда возникает надобность в закрытии одним щелчком всех запущенных серверов для ASP .NET Можно делать это вот так через cmd: TASKKILL /FI «IMAGENAME eq WebDev.WebServer40.exe» /T Эта команда прибьет все процессы, имя образа которых равно «WebDev.WebServer40.exe», а также не забудет про дочерние процессы, запущенные сервером (параметр /T)

Дебаг со всеми удобствами

Недавно открыл для себя атрибут, который значительно облегчил мне жизнь в некоторых случаях. Его зовут DebuggerDisplay. Его назначение я покажу на примере. Допустим, у нас есть класс Parameter, который имеет следующий вид: public class Parameter { internal Parameter(string name, byte[] value) { Name = name; Value = value; } public string Name { get; private […]