> Я считал, что компилятор (или же CLR) сможет понять, что так как внутри цикла мы не изменяем переменную s, то значение s.Length будет получено только один раз.
Вы правильно считали.
Если бы Вы запускали измерения в релизной сборке (с оптимизацией) без подключенного дебагера, то разницы бы не заметили от такого «улучшения»:
int length = s.Length;
for (int i = start; i < length; i++)
Смысл любой капчи — в сложности распознавания ее роботом. В вашем случае капча распознается компьютером без особых усилий (разрезать картинку на 5 частей и проверить совпадения).
Я бы рекомендовал Вам строить ноты в 3D и рендерить получившуюся картину под разными углами. Добавление при этом нескольких эффектов сильно бы усложнило задачу ботам.
Генерировать в рантайме XAML (только если ваше приложение не редактор), по-моему, неверный подход. Правильнее сразу создавать необходимую структуру из экземпляров классов, в таком случае не будет тратиться время на генерацию и парсинг разметки.
Интересно, в какой задаче Вам это понадобилось?
[сарказм] Какие же программисты в Майкрософт плохие, что нарушает Ваш гидлайн! [/сарказм] См., например, описание к свойству Position
Да, согласен, лучше избегать исключений в свойствах, но, согласитесь, без исключений не всегда можно обойтись.
Приведу пример. Есть приложение-журнал, умеющее отображать отдельные выпуски. Администратор выкладывает новый номер каждый месяц, он должен разойтись по всем клиентам, плюс каждый клиент может закачать любой из прошлых номеров. По сути нужен пока обычный статический файловый хостинг для этого.
В будущем возможно нужно будет больше, но хотя бы такая функциональность сколько будет примерно стоить? Если пользователей 10 тыс / 100 тыс / 1 млн в день?
Есть ли у Вас особая ценовая политика для бесплатных приложений?
Что означает графа Traffic Storage на странице Pricing?
Если хранить исключительно статический контент, с какими ограничениями придется столкнуться?
Очень просто. Ручная сборка мусора запускается, когда удобно программисту. Автоматический сборщик работает, когда удобно системе. Этот принципиальный момент делает программы с автоматической сборкой памяти быстрее.
Если не верите, проведите тесты. Если лень, на просторах интернета наверняка найдете готовые результаты.
Вы правильно считали.
Если бы Вы запускали измерения в релизной сборке (с оптимизацией) без подключенного дебагера, то разницы бы не заметили от такого «улучшения»:
int length = s.Length;
for (int i = start; i < length; i++)
Я бы рекомендовал Вам строить ноты в 3D и рендерить получившуюся картину под разными углами. Добавление при этом нескольких эффектов сильно бы усложнило задачу ботам.
Вообще говоря, надо знать, если занимаетесь разработкой веб-сайтов.
Интересно, в какой задаче Вам это понадобилось?
Да, согласен, лучше избегать исключений в свойствах, но, согласитесь, без исключений не всегда можно обойтись.
В будущем возможно нужно будет больше, но хотя бы такая функциональность сколько будет примерно стоить? Если пользователей 10 тыс / 100 тыс / 1 млн в день?
Что означает графа Traffic Storage на странице Pricing?
Если хранить исключительно статический контент, с какими ограничениями придется столкнуться?
Запасы сырья для атомных электростанций также заметно ограничены.
Тут ошибочка вышла. Благодаря этому обещанию Майкрософт проекту Моно ничего не угрожает.
Если не верите, проведите тесты. Если лень, на просторах интернета наверняка найдете готовые результаты.
Крайне неверное утверждение!