Мои мысли: Предположим, я произвожу СКД - системы контроля доступа. Там все просто:
* входной модуль - каточку считали
* выходной модуль - замок открыть
* часы
* база данных
* файловая система - конфиги и логи
* показиметр - показывать, что творится. GUI или консольный - пофиг.
Управляющая программа может быть очень сложной даже для 100 человек - при нескольких уровнях доступа и динамических профилях. Но работает она меденно - для небольшого здания до 10 оп/сек, и время ожидания транзакции до 1 сек.
Вопрос, как это оттестировать.
Пишем на CLI. Либы. В реальном устройстве они с ОСью рабтают, в симуляторе - файловый ввод-вывод.
Пишем тестовую систему - генератор карточек и анализатор дверей.
Пишем на C# красивейший ГУЙ для симулятора. И не менее красивый конфигуратор - силами специального С# программера, который никогда ничего не напишет под контроллер - а я никогда таккую красоту на экране не нарисую.
пЫсюк работает быстро - я смогу симулировать в ускоренном времени. Похоже, что-то типа 1:100 получить будет можно. Т.е. за 3.6 суток я отсумулирую год работы системы. За две недели - полный цикл с учетом высокосных годов и т.д.
В итоге мы получаем front-end безумной красоты, который не влияет на надежность системы, и ядро системы, которое будет годами работать без перезагрузки.
Вот ради этого и стоит попробовать разобраться с .NET!