Как стать автором
Обновить
3
0
Дмитрий Фомин @teleavtomatika

Пользователь

Отправить сообщение
Есть такой синдром Not Invented Here.. Кажись это оно.
А парень все никак не угомонится. Мама дорогая, встречайте: теперь обновляемые файлы захардкожены! Хотите ад в XML — нате! Вам некуда потратить время во время релиза? — А ну-ка по забивайте контрольные суммы и версии файлов в XML. А как тестировать публикацию такого обновления, а что если ты ошибся в данных в XML?
Я так понимаю, что автор крайне редко (никогда не) редактировал файлы с настройками оборудования, модулей и т.д. Нередко бывает, что откроешь посмотреть, ткнешь случайно на кнопку а он тебе: «Сохранить?» И ты такой: «Оппа», «Нет!». Короче: ваш подход еще нужно допиливать и не везде он применим (желателен). А вообще, если смотреть концептуально, то редактирование должно иметь сессионный характер. Отредактировал — сессию сохранил. Не понравилось — сессию отменил. И до окончания сессии и явного подтверждения пользователем о сохранении/отмене текущее состояние должно храниться. Что собственно и реализовано в Word/Excel и иже с ними. Кривовато, правда, но реализовано.
Он просто прощупывал свое положение и мнение массы. Я знаю многих военных, так они частенько выкидывают такие маневры. Сначала подкинут какую нибудь ошарашивающую информацию на полном серьезе, посмотрят на реакцию. Если норм реакция — значит покатит. Если реакция их не устраивает — сразу прикидываются пряником и заявляют: да что ты, я мол, пошутил. Так и этот кадр. Накинул на вентилятор, чтобы прозондировать обстановку.
Не знаю как вы, а я прям сплю и вижу: когда уже Майкрософт сделает качественный собственный инструментарий для разработки под IOS, Android и Linux. Я считаю, что это взорвет распространенность C# до небывалых пределов и значительно облегчит жизнь многим разработчикам.
Зря вы написали вторую часть статьи. Сейчас вам еще листьев накидают в карму. Самое главное, что вы упустили, читая комментарии к вашей предыдущей статье, так это то, что описанный вами опыт практически невозможно использовать в других решениях. Также совершенно не понятно почему вы решили только часть описанных проблем. И что это за метод проверки целостности файла? (методом чтения заголовков и метаданных!?)
ClickOnce может прижиться при развертывании в локальной сети. Как средство обновления через Интернет — он бяка.
А что делать если Windows есть, а BITS нет? И нужна ли лишняя зависимость от BITS вообще? На счет кривости рук автора — согласен, а вот насет BITS — нет.
А что мешает сравнивать непосредственно типы Version? Текущую получить очень просто:
var myVersion = System.Reflection.Assembly.GetEntryAssembly().GetName().Version;

А новую создать:
var xmlVersionText = "9.12.2"; // for test var version = new Version(xmlVersionText);
Странно, но почему-то никто не отметил возможность загружать изображения прямо из буфера обмена. Ведь появление такой возможности — это замечательно! Меня очень утомляло сохранять изображение в файл, потом искать его, тащить, а после загрузки удалять.

Но есть один нюанс
Прямая ссылка на такой файл почему-то не содержиит расширение файла (.jpg): habrastorage.org/files/195/b93/be3/195b93be37cc480d9fc01aceb6797823

Хотя тэг отрабатывает как положено:

По мне — так компактный код в одном месте, который декларирует все предъявляемые условия и не вносит дополнительных зависимостей и есть показатель прозрачности и очевидности.

И еще, с IDataErrorInfo есть проблемы:
1. Нужно определить какой-то тип и реализовать в нем этот интерфейс
2. В этом типе определить метод, который будет фильтровать изменяемые свойства и проверять что там наизменяли
3. Нужно добавить новый контрол (ErrorProvider) на форму и указать ему источник данных (DataSource)
4. Прежде чем это сделать, нужно этот DataSource создать
5. Прежде чем создать DataSource нужно создать какой-то тип для DataSource

т.е. ваш сценарий работает только в связке Данные -> Байндинг на контролы -> Валидация
Вы забыли про Декларативный стиль. И вот еще, только честно, попробуйте оценить отношение количества кода написанного в декларативном стиле и с использованием IDataErrorInfo.
Речь идет о валидации форм, а не о валидации данных. FluentValidation это валидация данных в первую очередь. Если речь идет об этом решении fluentvalidation.codeplex.com, мне не очень понятно как из полученных результатов вы сделаете подсветку неправильно заполненных контролов.
Да, вы поняли правильно.

Информация

В рейтинге
Не участвует
Откуда
Владивосток, Приморский край, Россия
Зарегистрирован
Активность