11

我的任务是在我们的应用程序套件中添加一个网站构建器。我们的大多数客户都是非技术型小企业主(实体店、夫妻店)。有人告诉我,我应该查看Blogger 模板编辑器并尝试看看我是否可以制作功能齐全且易于使用的东西。这个想法是我们的​​客户应该能够在不了解 Web 开发的情况下将他们的业务带到网上。

我每天主要使用 c# 和 silverlight。因此,使用 .net 对我来说可能是最好的方式。ASP.NET MVC 和 SPARK 看起来很有吸引力,但我不太确定我将如何完成以下事情

1-我如何构建一个模板系统,允许设计师创建使用特定格式并与我的应用程序兼容的模板。有没有为此的通用框架?

2- 我将如何保留客户对其网站所做的更改(例如,客户更改背景颜色并在页面上添加成分列表)。

编辑:是的,我知道这是一项艰巨的任务,我可能正在考虑编写一个成熟的 CMS,但是我们的客户需要非常有限和基本的功能,我想这将是一个迭代过程,可能会有更多的开发人员加入如果产品被证明是成功的。不过,我会将这些担忧告知我们的经理。

最初,我打算只给他们一些模板布局,并允许他们自定义各个部分的内容以及使用 CSS 的颜色和图像。HAMLSass看起来很有用,我可以将所有用户可自定义的参数保存在数据库中。

我是按照正确的思路思考还是完全不合时宜?

4

3 回答 3

13

这在很大程度上取决于您的要求。

一个简单的解决方案是拥有几个带有占位符的基本模板,这些模板稍后会填充内容/其他模板。

即模板可能如下所示:

<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>

然后,您为用户提供了一种定义页眉和 page_contents 的简单方法,即第一个可能只是一个文本框,使用 TinyMCE 之类的东西填充内容。如有必要,客户端可以在内容中使用其他占位符,但这可能不是必需的。

template.Content = template.Content.Replace("{page_content}", customer.Pages['foo'].GetTemplateContent("page_content"));之后,您只需添加一个自动生成的菜单,创建将占位符替换为用户输入内容的逻辑(类似于

最复杂的部分是后端和用户认证。

这个解决方案实现起来很简单,根本没有真正的灵活性,但它允许客户快速编写一些文本并添加一些精美的图像,而无需关心其他任何事情。

要保留颜色设置,请将它们写入数据库并在每次更改时创建一个新的 CSS 样式表。对于其他内容,只需使用包含“键”和“值”列的数据库表“内容”,您可能希望在每次更改时生成静态 HTML 页面。

于 2010-06-17T12:14:32.057 回答
6

您实际上被赋予了编写完整的内容管理系统的任务。这是一项艰巨的任务,一个单独的开发人员可能需要 6 到 24 个月的时间来构建,具体取决于经验(这基于市场上其他 CMS 的开发时间)。例如,Umbraco(一个开源 ASP.NET CMS)的开发人员正忙着将他们的 CMS 移植到 ASP.NET MVC,工作大约在今年年初开始,预计要到明年年中才能建成,他们'是业内一些最有才华的开发者。

我不怀疑你的才能,但除非你的老板给了你很大的工作时间,或者你计划让你的网站构建器变得非常基础,功能最少,否则构建一个成熟的网站构建器或 CMS 可能会被咬掉超过你可以咀嚼的。

正如其他海报所建议的那样,如果您是 .NET 开发人员,您或许应该尝试市场上现有的 CMS,例如Umbraco 。

如果您确实坚持要建立自己的,则需要进行一些认真的计划。看看软件架构设计模式,如 DDD(领域驱动设计),SOLID 原则,如依赖注入、存储库模式、持久性无知、服务层等。MVC 绝对是正确的方法。还可以查看 Martins Fowler 的著作Patterns of Enterprise Application Architecture或 Dino Esposito 的Microsoft .NET:Architecting Applications for the Enterprise或 Eric Evans Domain-Driven Design: Tackling Complexity in the Heart of Software

于 2010-06-17T11:55:36.847 回答
4

如果您想使用 .NET,我建议您看看 Umbraco,它是一个非常流行的开源 CMS,背后有一个非常好的社区。目前它是用 Webforms 编写的,但下一个版本 (5) 正在 ASP.NET MVC 中重做。

它也可以在 Microsoft 的Web App Gallery上使用,因此安装起来很容易。

于 2010-06-17T08:06:15.083 回答