Управление содержимым всех сообщений, отправляемых приложением

У нас есть приложение, содержащее несколько компонентов (веб-приложение, службы Windows, веб-API и т. д.), которые отправляют сообщения пользователям приложения по электронной почте (MailGun), SMS (Twilio) и автоматическим телефонным звонкам (Twilio). ). Все эти сообщения содержат динамическую информацию, которая вставляется при фактической отправке сообщения (например, имя, имя пользователя, метки времени и т. д.).

Весь необработанный текст сообщений хранится в строках формата в файлах .resx в проекте, совместно используемом всеми компонентами. Примерная строка может выглядеть так: "Hello {0}, you have a notification!", где {0} заменяется именем пользователя во время выполнения с использованием string.Format.

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


person sam2929    schedule 18.11.2016    source источник
comment
Можете ли вы сохранить текст в базе данных?   -  person Botonomous    schedule 18.11.2016


Ответы (1)


Евангелист разработчиков Twilio здесь.

Хотя у меня нет опыта работы с C#, который я мог бы предложить, я работал над крупномасштабными приложениями Ruby on Rails, и ближайшим эквивалентом, который я могу придумать при работе со многими строками с интерполяцией, была интернационализация.

В Rails это делается путем предоставления файла yaml, который содержит ключи, которые могут содержать другие ключи (таким образом охватывая сообщения определенными областями) и строки шаблона.

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

Хотя просто идея. Дайте мне знать, если это поможет вообще.

person philnash    schedule 21.11.2016