Идея выбора темы для блогового движка, написанного на ASP.NET MVC
Я начал создавать блог-движок, который абсолютно непрофессиональный и предназначен для использования никем. Таким образом, простым языком я не могу сказать, что вы продолжаете и запускаете это для себя, и вы будете счастливы.
Вы можете увидеть полный код, который я написал до сих пор:
https://github.com/tugberkugurlu/MvcBloggy
Хотя сейчас я работаю над DAL, я также пытаюсь определить, что мне нужно делать. Здесь я застрял в одном месте: как я могу справиться с выбором темы для движка блога.
- Как мне начать строить основы? Должен ли я создать скелет HTML и позволить другим писать CSS и в основном выбрать это? Или что-то другое?
- С точки зрения структуры ASP.NET MVC, что будет лучшим подходом для обработки этой функции.
Я не уверен, что кто-то из вас, ребята, когда-либо делал что-то подобное. Буду признателен, если вы можете предоставить способ.
2 ответа
Я предлагаю вам взглянуть на NBlog Temable блог движок
https://github.com/ChrisFulstow/NBlog
В частности, посмотрите на класс ThemeableRazorViewEngine.cs
using System.Web.Mvc;
using NBlog.Web.Application.Service;
namespace NBlog.Web.Application.Infrastructure
{
public class ThemeableRazorViewEngine : RazorViewEngine
{
private readonly IThemeService _themeService;
public ThemeableRazorViewEngine(IThemeService themeService)
{
_themeService = themeService;
base.ViewLocationFormats = new[]
{
_themeService.Current.BasePath + "/Views/{1}/{0}.cshtml",
_themeService.Current.BasePath + "/Views/Shared/{0}.cshtml",
"~/Themes/Default/Views/{1}/{0}.cshtml"
};
base.PartialViewLocationFormats = new string[] {
_themeService.Current.BasePath + "/Views/{1}/{0}.cshtml",
_themeService.Current.BasePath + "/Views/Shared/{0}.cshtml",
"~/Themes/Default/Views/Shared/{0}.cshtml"
};
}
public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
{
// bypass the view cache, the view will change depending on the current theme
const bool useViewCache = false;
return base.FindView(controllerContext, viewName, masterName, useViewCache);
}
}
}
Полностью тематическое веб-приложение - очень сложная проблема. Вы не должны даже пытаться решить ее, прежде чем у вас есть функциональный движок блога.
Простая и достаточно простая настройка позволяет пользователю выбрать файл.css и убедиться, что все элементы на странице легко адресуемы / выбираются с помощью соответствующих идентификаторов / классов.