Знатоки Web, посоветуйте плиз

User avatar
AnyaGal
Уже с Приветом
Posts: 5771
Joined: 02 Dec 1999 10:01
Location: Saint-Petersburg --> Bellevue, WA

Знатоки Web, посоветуйте плиз

Post by AnyaGal »

Такая ситуация. я сейчас работаю над application, которое отсылает по нескольку е-майлов (клиентам, CS etc) с каждой aspx страницы.

Тексты этих e-mail немного различаются и будут слегка меняться постоянно. Хранить эти тексты в codebehind при этом будет неудобно, так как при каждом изменении текста придется проект перекомпилировать.

Можно ли хранить тексты этих е-маил в текстовых файлах, к которым будет доступ у человека, который будет следить за соответствием текстов текущим нуждам и менять их по ходу дела? А я в aspx странице читала бы текст из этих файлов и отсылала сообщения клиентам.

Но в этом случае, если одновременно несколько человек зашли на страницы не будет ли ошибки, что файл уже открыт для чтения? :roll:

В общем, как умные люди это делают?
Хранить тексты в DB? Как тогда создать структуру? - количество и назначение e-mails на каждой странице может быть разным.
Я думаю ситуация довольно тепичная и наверняка должен быть удобный способ.

Да еще в этих файлах мне нужно будет заменить скажем #CustName# на фактическим customer name для каждого клиента, то есть е-mails будут персональные и часть информации будет добавляться или заменяться в codebehind.
User avatar
AnyaGal
Уже с Приветом
Posts: 5771
Joined: 02 Dec 1999 10:01
Location: Saint-Petersburg --> Bellevue, WA

Post by AnyaGal »

Усе разрешилось, решение более-менее простое и удобное нашлось. :)
strvt
Уже с Приветом
Posts: 342
Joined: 31 Jul 2001 09:01
Location: Minsk -> CT

Re: Знатоки Web, посоветуйте плиз

Post by strvt »

AnyaGal wrote:Хранить эти тексты в codebehind при этом будет неудобно, так как при каждом изменении текста придется проект перекомпилировать.

Ну, этого очевидно делать нельзя :)
AnyaGal wrote:Можно ли хранить тексты этих е-маил в текстовых файлах, к которым будет доступ у человека, который будет следить за соответствием текстов текущим нуждам и менять их по ходу дела? А я в aspx странице читала бы текст из этих файлов и отсылала сообщения клиентам.

Но в этом случае, если одновременно несколько человек зашли на страницы не будет ли ошибки, что файл уже открыт для чтения? :roll:

По идее не должно. Особенно если этот выделенный человек никаких специальных мер предринимать не будет :). Но я бы предложил базу данных.
AnyaGal wrote:В общем, как умные люди это делают?
Хранить тексты в DB? Как тогда создать структуру? - количество и назначение e-mails на каждой странице может быть разным.

На странице лежит какой-то hardcoded идентификатор темплейта. В базе данных лежат собственно темплейты писем (простая таблица с полями id, body).
AnyaGal wrote:Да еще в этих файлах мне нужно будет заменить скажем #CustName# на фактическим customer name для каждого клиента, то есть е-mails будут персональные и часть информации будет добавляться или заменяться в codebehind.

Ну, выберете какой-нибудь стандартный способ определять "переменные". Можо рассширить описание темплейта в базе данных списком переменных которые он содержит, в этом случае поиск и их замена будет попроще.
IA
User avatar
AnyaGal
Уже с Приветом
Posts: 5771
Joined: 02 Dec 1999 10:01
Location: Saint-Petersburg --> Bellevue, WA

Post by AnyaGal »

Спасибо! :)
В случае с БД, мне бы наверное пришлось писать страницу для человека, который меняет тексты писем, так как исправлять текст прямо в таблице неудобно.

С текстовым,и файлами на каждый емаил тоже можно было бы работать, если открывать их как реад-онлы, но один хмл файл удобнее - меньше шансов запутаться в путях и названиях.

Пока остановились на том, что хранить эти шаблоны в XML файле - сделать иерархию типа такой.

<emails>
<page id='PageName1">
<message type="cs" someotherattr=''><![CDATA[formated text]]></message>
<message type="cs" someotherattr=''><![CDATA[formated text]]></message>
</page>
<page id='PageName2">
<message type="cs" someotherattr=''><![CDATA[formated text]]></message>
<message type="cs" someotherattr=''><![CDATA[formated text]]></message>
</page>
</emails>

Потом делать XMLDocument.Load(filename) и добывать нужный текст.

Может в таком способе тоже какая собака порылась, но на первый взгляд все вроде нормально. :)

Return to “Вопросы и новости IT”