Pull to refresh
18
0
Михаил Бринчук @Thecentury

User

Send message
Hi Dmitry, great article and interesting approach!

You give an example of how to get a Reader<Service>:

public static Reader<TService> GetService<TService>() =>
Reader<TService>.Read<IServiceProvider>(serviceProvider
=> (TService)serviceProvider
.GetService(typeof(TService)));


It looks like the Service Locator pattern, that is considered an anti-pattern as it hides actual dependencies used by the code.
Wow, приятно увидеть свою старую разработку в деле.
Алексей, думаю, часть своих минусов вы получаете из-за пассивно-агрессивного стиля общения, который часто очень разительно отличается от стиля вопросов, которые вам задают к постам, и выглядит чрезвычайно неприятно.
Kobo отлично читает epub. Есть библиотеки, в которых из каждого fb2 можно получить и epub.
И ещё велосипедиум в логировании вместо NLog или log4net :)
Не было с ними знакомства. Trace, насколько я знаю, даже по сигнатуре методов «логирования» сильно проигрывает NLog. Мы смогли бы с его помощью гибко настраивать, что логировать, данные, которые войдут в каждую запись, настраивать, в какие получатели будут отправлены записи? Смогли бы из коробки логировать в БД, на logentries? Хотя бы смогли бы писать логи в файлы, ротируя их каждые сутки?

Про штатный Health Monitoring вообще ничего не знаю, расскажите, пожалуйста.
Вы знаете, я не думаю, что концептуально наше решение отличается от предложенного вами. Пользователь в HttpContext.Current.Items так же, как и из CurrentIdentity, переезжает из потока в поток.
Да, я в этом не уверен, и второе ваше замечание тоже верно, обдумаю, как мы можем это исправить.
Проблем не возникало, видимо, потому, что а) синхронно асинхронные методы мы вызываем мало; б) информация о пользователе захватывается в его начале и передается явно через параметры.
У меня есть ощущение, что он ортогонален тому, о чем рассказал я:)
Но спасибо за его упоминание, попробую понять, чем он может быть нам полезен.
А почему вы его не используете?

Видимо, пока ни разу не наткнулись на рекомендацию использовать его, когда искали, как решить ту или иную задачу. Для чего его используете вы? Он может решить что-то из того, что я описал?
А, ясно. Такой блокировки у нас не будет, потому что к .Result мы не обращаемся, используем решение из http://stackoverflow.com/questions/5095183/how-would-i-run-an-async-taskt-method-synchronously
Да, ни слова об ELMAH, потому что мы его не используем. Я рассказал о том, что используем мы.

Это не просто увеличивает производительность, это позволяет коду работать в ряде весьма специфичных, но тем не менее регулярно встречающихся ситуаций.

Расскажете, каких ситуаций?
Работал с солюшеном, о котором говорит автор (300 проектов). Пробовал его собирать целиком в оперативной памяти (на машине 16 Гб, делал рамдиск, на который влезал собранный солюшен — около 5-6 Гб). Значительного прироста не заметил, что показалось странным. Возможно, компилятор генерирует временные файлы, которые записываются и читаются с жесткого диска (не уверен). Также пробовал его собирать и на SSD, тоже значительного прироста не заметил. Но если бывшим коллегам поставят SSD, буду рад :)

P.S. С автором, похоже, немного разминулись по времени :)
Эх, только какой это старичок уже. Я не следил пару лет за тем, что делается в этой области, наверное, уже появились другие более мощные и бесплатные библиотеки. Однако периодически народ пишет на почту, что-то спрашивает, я даже что-то вспоминаю :)
Наверное, на разных машинах папка расширения может называться по-разному, можно запускать поиск в папке Extensions чего-нибудь, скажем, с именем Specflow.*
Собственно, я так и нашел.
Можно отредактировать item template для feature в папке в расширением SpecFlow.
У меня он расположен по пути c:\Users\{User}\AppData\Local\Microsoft\VisualStudio\11.0\Extensions\qzghrp4n.hc5\ItemTemplates\SpecFlowFeature_CSharp.zip\SpecFlowFeature1.feature

Правда, наверное, при обновлении расширения все это может потеряться.
Можно в начале .feature-файла писать #language: ru, тогда не нужно добавлять app.config.
Неужели вот такая запись:

f = length . filter (>3) . map (+1) . skip 3

считается логичной и читабельной?

Я это прочел как «взять некую длину (список чего-то?), отфильтровать, увеличить и пропустить», а не так, как вы это описали.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity