Как упомянул Гроо, одна мега-сборка была бы плохой идеей, так как это могло бы вызвать проблему соединения. Например, если вы хотите изменить текст кнопки на веб-сайте 1, вам необходимо обновить эту сборку, что затем приведет к обновлению веб-сайтов 2 и 3, даже если для 2 и 3 не потребовалось никаких изменений вообще. , Как и во всем остальном, вы хотите изолировать свои изменения, где это возможно, чтобы, если что-то ломалось, оно ломалось как можно меньше.
Я бы определил ваши сборки так, чтобы вы могли поделиться некоторыми по мере необходимости, но иметь другие, которые содержат ресурсы, необходимые только для отдельных проектов. Из описания, которое вы дали, вот как я бы структурировал ваши ресурсы:
- 1 файл ресурсов, относящийся к пользовательскому интерфейсу, общий доступ к веб-сайтам
- 3 файлов ресурсов, связанных с пользовательским интерфейсом сайта
- 1 файл ресурсов, связанных с бизнес-логикой, в базовой библиотеке
- 3 файлов ресурсов, связанных с бизнес-логикой для конкретного сайта, которые хранятся в соответствующих проектах бизнес-логики
В некоторых случаях, описанных выше, я мог перепутать, где вам просто нужен файл ресурсов и где вам нужна полная автономная сборка, но разделение ресурсов по сути одинаково. И, конечно же, вам потребуется по одной копии каждого из перечисленных выше файлов на каждый язык.
Я бы настоятельно рекомендовал хранить эти файлы в системе контроля версий. Они являются частью исходного кода вашего приложения, так же как и код, и контроль исходного кода даст вам те же преимущества.
Что касается SQL Server, когда вы говорите, что он отправляет локализованные электронные письма, вы имеете в виду, что он делает это с помощью хранимой процедуры или что какой-то другой код использует данные из базы данных для отправки электронных писем? В любом случае, у меня нет особого ответа. Я не знаю, как SQL Server сам управляет локализацией, и если это приложение отправляет электронные письма, это во многом зависит от того, откуда должен поступить локализованный текст.
Наконец, что касается вашего вопроса о классификации ресурсов, это действительно зависит от того, что кажется вам наиболее естественным и (я полагаю) вашей командой. Из того, что вы описали, может показаться, что вы хотите разделить свои ресурсы на текст, который будет отображаться на веб-страницах, и текст, который будет включен в электронные письма, но сказать сложно. Это очень личный выбор, и он не оказывает никакого влияния на код, кроме того, что облегчает для всех поиск ресурса, который они ищут, поэтому просто следуйте тому, что для вас наиболее разумно.