На случай если интересно, опишу свой подход к выбору архитектуры. В первую очередь, нужно соблюдать следующие принципы:
- Не играть в создателя. Разного рода попытки исправить родовые травмы платформы, или придумать к ней "более лучший" API, или интерфейс практически всегда обречены на провал.
- Не жалеть систему. Не нужно пытаться разгрузить систему за счет попыток написать свой движок процессов, вынести данные в сторонние базы, написать рядом другой CRM. Вы не сможете существенно ускорить решение, но сильно потеряете в стабильности и маштабируеммости
- Не плодить сущности. Нужно максимально полно использовать те инструменты и решения, которые уже задействованы на проекте, даже если новое решение кажется лучше, или производительнее. Например, если на проекте уже есть SQL Server разумно использовать SSIS, SSRS, SSAS и прочие технологии "в комплекте". С хорошей долей вероятности, новые системы и технологии лишь создадут новые интеграционные точки и сведут на нет все плюсы
- Не изобретать велосипед. Все придумано до нас. Создать что-то свое - это заманчивый порыв, но лучше не делать это за счет проекта
Если теперь оценить то что у вас вышло, то все не так плохо. Вы сохранили исходную платформу: CRM остался веб приложением, которое работает без "обертки" и в любом браузере. Встроенной поддержки ClickOnce в CRM нет, а значит вам пришось бы "искать и бороться". Технология простая только на первый взгляд, в реальной жизни вы все равно получили бы геморрой с сертификатами и доверием, блокировками системы безопасности, обновлениями и т.д. В то время как ваше решение можно довести до "супортед" состояния и при сохранении его веб природы. А это результат!