Создание 'разработчика веб-сайта' - Как я спроектировал бы его? [закрытый]

7
задан Abdullah Ahmed 17 June 2010 в 17:33
поделиться

3 ответа

Это во многом зависит от ваших требований.

Простым решением было бы иметь несколько базовых шаблонов с заполнителями, которые заполняются контентом/другими шаблонами позже.

Т.е. шаблон может выглядеть так:

<html>
  <head><title>foo</title></head>
  <body>
    <div id="menu">{auto_generated_menu}</div>
    <h1>{page_header}</h1>
    <div id="content">
      {page_content}
    </div>
  </body>
</html>

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

После этого вы просто добавляете автогенерируемое меню, создаете логику, которая заменяет заполнители на введенное пользователем содержимое (что-то вроде template.Content = template.Content.Replace("{page_content}", customer.Pages['foo'].GetTemplateContent("page_content")); )и, возможно, добавляете таблицу стилей CSS с настройками цвета и шрифта, предоставленными клиентами.

Самая сложная часть - это бэкенд и аутентификация пользователей.

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

Чтобы сохранить настройки цвета, запишите их в базу данных и создавайте новую таблицу стилей CSS каждый раз, когда они изменяются. Для другого содержимого просто используйте таблицу базы данных "content" с колонками "key" и "value", и вы можете захотеть генерировать статические HTML-страницы при каждом изменении.

7
ответ дан 6 December 2019 в 14:00
поделиться

Если вы хотите использовать .NET, я бы порекомендовал взглянуть на Umbraco, довольно популярную CMS с открытым исходным кодом, за которой стоит очень хорошее сообщество. На данный момент он написан в Webforms, но следующая версия (5) переделывается в ASP.NET MVC.

Его также можно найти в галерее веб-приложений Microsoft , так что установить его очень просто.

4
ответ дан 6 December 2019 в 14:00
поделиться

Вы фактически получили задание написать полноценную систему управления контентом. Это гигантская задача, на создание которой у одного разработчика, вероятно, уйдет от 6 до 24 месяцев, в зависимости от опыта (это зависит от времени разработки других CMS на рынке). Например, разработчики Umbraco (ASP.NET CMS с открытым исходным кодом) заняты переносом своей CMS на ASP.NET MVC, работа началась примерно в начале этого года и, как ожидается, не будет завершена до середины следующего года, и они мы одни из самых талантливых разработчиков в отрасли.

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

Как рекомендовали другие авторы, вам, возможно, стоит попробовать существующие на рынке CMS, такие как Umbraco , если вы .NET-разработчик.

Если вы все же настаиваете на создании собственного, это потребует серьезного планирования. Посмотрите на шаблоны архитектурного проектирования программного обеспечения, такие как DDD (Domain Driven Design), принципы SOLID, такие как внедрение зависимостей, шаблон репозитория, постоянное игнорирование, уровни обслуживания и т. Д. MVC, безусловно, правильный путь. Также ознакомьтесь с книгой Мартинса Фаулера Patterns of Enterprise Application Architecture или Dino Esposito Microsoft .NET: Architecting Applications for the Enterprise или Eric Evans Domain-Driven Design: Tackling Complexity in the Сердце программного обеспечения

4
ответ дан 6 December 2019 в 14:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: