MVC3 - 可以添加到现有应用程序的轻量级 CMS?
我正在尝试找到一个可以合并到现有 MVC3 应用程序中的 CMS。
我玩过 N2,但无法让该死的东西在 VS2010 或 .NET 4 中工作。Umbarco
似乎不支持 MVC,但
Orchard 看起来很棒,但想要拥有整个应用程序。
DNN 简直是一团糟。
还有其他出色的解决方案吗?
事后分析 2011 年 12 月
这是一篇旧帖子,但我想我应该分享我在 Orchard 的经历,以及为什么我决定走不同的方向。
NHibernate
除了每页非常数量的事务(在某些情况下甚至有数十个)之外,每个查询都是使用 sp_executesql
执行的。虽然不像使用 Exec() 那样糟糕,但这让我很恼火。目前,我的数据库已被锁定,因此应用程序只能执行存储过程 - 也就是说,它们无法执行选择/更新/删除、列出表等实体、获取任何元数据等。这是分层的要求单元测试、数据库的编译时验证、应用程序代码中数据库逻辑的安全性和封装。
源代码部署
Orchard 要求将站点的整个源代码(视图、.cs 源文件等)部署到生产服务器。需要部署的源文件数量之多令人难以置信。
与现有应用程序集成
Orchard 的有效构建方式要求它成为 Web 应用程序的入口点。这意味着您将花费一些时间修改和重新实现您的应用程序,以使其能够与 Orchard 良好地配合。
结论 我还遇到了很多其他问题,但这些是重点。单独来看,其中每一个都可能成为交易的破坏者。他们共同移除了 Orchard,将其视为可行的解决方案。
我现在正在评估 Telerik 的 Sitefinity。让我感到难过的不是 MVC,而是:
- 管理界面非常强大。除了我在 VS 中放在一起的母版页和一些样式表之外,我们还能够通过 Sitefinity 的管理工具处理所有布局。
- 我的意思是,它真的非常强大。您可以使用管理界面编辑管理界面。想一想。
- 小部件作为 ASP.NET 用户控件实现。我现有的大多数控件都经过零修改就直接投入使用。
- 数据库访问是通过 Telerik 的 OpenAccess ORM 处理的。虽然 Sitefinity 本身并不使用存储过程,但 OpenAccess 完全支持将它们用于所有操作。此外,根据 Telerik 的说法,OpenAccess 不以任何方式依赖反射,这在重负载应用程序中提供了显着的性能优势。
- 有多种解决方案可用于在小部件中使用 Razor 标记,这是使用 MVC(对我来说)的巨大好处之一。另外,我听说原生 Razor 支持正在积极开发中。
- 它不是免费的。但实际上,就开发时间而言,几台大型钢琴几乎无法打破本底噪音。
- 超级疯狂快。启动时间有点慢,但是一旦运行起来就非常快了。
- 建立在 Telerik 出色且经过验证的 RAD 控件之上。
对于这么长的帖子表示歉意。希望这会有所帮助。
I'm trying to find a CMS that can be incorporated into an existing MVC3 app.
I've played with N2, and can't get the damn thing to work in VS2010 or with .NET 4.
Umbarco doesn't appear to support MVC yet
Orchard looks great, but wants to own the whole application.
DNN is just a mess.
Any other brilliant solutions?
Post-mortem Dec 2011
This is an old post, but I thought I'd share my experiences with Orchard, and why I decided to go a different direction.
NHibernate
Aside from the very large number of transactions per page (literally dozens in some cases), each and every query was executed using sp_executesql
. While not quite as bad as using Exec()
, this rubs me the wrong way. Currently, my database is locked down so that applications can only execute stored procedures - that is, they can't perform select/update/delete, list entities such as tables, get any metadata, etc. This is a requirement for tier-wise unit testing, compile-time verification of the database, security and encapsulation of database logic from the application code.
Source Deployment
Orchard requires that the entire source for your site (views, .cs source files, etc) is deployed to the production server. The sheer number of source files that need to deployed boggles the mind.
Integration with an existing application
The manner in which Orchard is structured effectively requires it to be the point of entry for the web application. This means that you're going to spend some time modifying and reimplementing your app to get it to play nice with Orchard.
Conclusion
There were quite a few other issues that I encountered, but those are the highlights. Individually, each of those could have been a deal breaker. Together, they removed Orchard as a viable solution.
I'm now evaluating Telerik's Sitefinity. It's not MVC, which saddens me, but:
- The admin interface is extremely powerful. Aside from a master page and some stylesheets that I put together in VS, we've been able to handle all of the layout via Sitefinity's admin tools.
- I mean, it's really powerful. You can use the admin interface to edit the admin interface. Think about that for a minute.
- Widgets are implemented as ASP.NET user controls. Most of my existing controls just dropped right in with zero modifications.
- Database access is handled via Telerik's OpenAccess ORM. While Sitefinity doesn't natively use stored procedures, OpenAccess fully supports using them for all operations. Also, according to Telerik, OpenAccess does not, in any way, rely on reflection, which provides significant performance benefits in heavy-load apps.
- There are several solutions available for using Razor markup within widgets, which is one of the great benefits (to me) of using MVC. Also, I've been told that native Razor support is in active development.
- It's not free. In reality, however, a few grand barely breaks the noise floor in terms of development time.
- Super crazy fast. Startup time is a bit on the slow side, but once it's running, it's very quick.
- Built on top of Telerik's awesome, proven RAD controls.
Apologies for the long post. Hopefully this will be helpful.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可能会发现这些项目很有用。您或许可以根据他们的项目之一构建一个简单的 CMS。
You might find these projects useful. You can probably model a simple CMS based on one of their projects.
尝试Web Noodles..使用mvc3开发的新CMS。 WebNoodles。它很容易集成。但问题是它仍处于测试阶段。.但你必须给尝试一下...
Try Web Noodles..The new CMS developed using mvc3. WebNoodles.It is easy to integrate .But the thing is it is still in beta stage..But you must give it a try ...