企业级应用程序的ASP.NET与DotNetNuke(DNN)之比较

企业级应用程序的ASP.NET与DotNetNuke(DNN)之比较,asp.net,dotnetnuke,Asp.net,Dotnetnuke,我正在设计一个应用程序。它将是一个大型的企业级web应用程序。成千上万的用户可以上传文件,搜索大量带有聊天功能的博客条目等等。它还将有移动接口。它应该具有高度的可测试性、可扩展性和灵活性 我已经将它缩小到三个环境:纯玩ASP.NET、纯玩DotNetNuke(DNN)以及ASP.NET和DNN的组合。为了保持这一点非常简短,以下是关于每个选项的一些“赞成”和“反对”: ASP.NET: for:高度可扩展,支持MVC等模式,可测试,一致的体系结构。 反对:开发时间长 DotNetNuke: 用于

我正在设计一个应用程序。它将是一个大型的企业级web应用程序。成千上万的用户可以上传文件,搜索大量带有聊天功能的博客条目等等。它还将有移动接口。它应该具有高度的可测试性、可扩展性和灵活性

我已经将它缩小到三个环境:纯玩ASP.NET、纯玩DotNetNuke(DNN)以及ASP.NET和DNN的组合。为了保持这一点非常简短,以下是关于每个选项的一些“赞成”和“反对”:

ASP.NET: for:高度可扩展,支持MVC等模式,可测试,一致的体系结构。 反对:开发时间长

DotNetNuke: 用于:开发时间短,现有功能模块和皮肤数量多。 反对:体系结构封闭,无法支持MVC,单元测试困难,模块/外观不一致,潜在的升级问题,由于来自不同供应商的不同模块,用户体验不一致,文档质量差

所以,问题是:你怎么想?是否有人从DNN切换到ASP.NET(反之亦然)?你是否客观地评价了这两个问题?你选择了什么

非常感谢你的帮助。谢谢
亨利。

您考虑过翁布拉科CMS吗?它构建在.Net上(v5是MVC3)。它是开源的,是一个非常健壮且支持良好的应用程序。例如,它已用于asp.net站点

它有一个非常短的开发时间,许多模块,非常灵活,我发现它很容易扩展。例如,我推出了自己的工作流“事件驱动发布”,并创建了多个自定义管理部分,用于管理Umbraco外部的定制功能

您可以使用XSLT、Usercontrols或Razor来创建模板模块


它也有一个很棒的社区。

DNN是ASP.NET,只是为您做了很多工作

另外,请记住,仅仅因为原始ASP.NET具有更大的可伸缩性,并不意味着您实际上要将其构建为更大的可伸缩性。或者一开始你会把它建得很好

这归结为控制权和资源/人才之间的权衡。如果你有很多非常有才华的开发人员(比如,前10%的人才),有很多时间,对你的网站有明确的要求,而且消费者在你构建基础设施时会耐心等待,那么一定要使用原始的ASP.NET

但是,如果您需要快速构建,并且需要灵活,或者您的开发资源有限,那么您可能不得不牺牲一些控制、单元测试和潜在性能(同样,“潜在”部分在这里是关键)

基于您所寻找的,我建议您使用DNN这样的平台,或者其他一百万个类似的平台,比如SiteFinity、Umbraco或Orchard之类的平台(其中一些平台像Umbraco也提供MVC)。它为您提供了许多站点中常见的基础设施和管道,可能做得比您将要做的更好,因此您可以将资源集中在应用程序真正独特的方面

离SharePoint远点。这是邪恶的


我为真正定制的应用程序构建了原始ASP.NET站点,这很好,因为我不需要很多管道,并且希望通过该站点实现真正独特的功能。但后来我用DNN建立了社交网站,效果很好,因为它为博客、论坛、聊天等东西打包了组件,并且允许轻松剥皮。我为一位客户设计了另一个应用程序,他们希望有很多自定义功能,但他们也希望更新很多内容并对其进行国际化,因此我们使用了Umbraco。现在我有一个ASP.NET应用程序运行得很好,但我想添加一些社交功能,因此我将插入一个与之集成的Umbraco或DNN站点,以承载更常见的社交组件。

基于您所需功能的非常有限的列表,我肯定会推荐DNN。您始终可以构建自定义模块以满足您的确切需求,或者根据需要修改现有的开源模块。您可以在模块开发中使用MVP方法来提高可测试性。

您的比较实际上是无效的。NET是一个平台。DNN是一个基于ASP.NET的内容管理系统。你真的在问你是否应该为你的网站使用内容管理系统;但是,DNN确实允许构建具有广泛功能的严肃应用程序。它可能已经开始作为CMS(仍然是);但是,它的功能远远超出了最初的预期。谢谢。老实说,这取决于你需要多长时间来培养。DNN已经做了很多,并且已经准备好使用模块,当然你可以添加这些模块,但是只添加一个模块然后创建一个完整的CMS和系统更容易。我已经使用了它并推荐了它,但有些情况下我不得不从头开始做每件事。所以我一直站在这两个方面,并推荐其中一个。你的开发团队有多大?您的上线日期是什么时候?致Andres,Brent:我正在为客户评估这些选项(我是一名顾问)。我没有确切的细节;但是,开发团队的规模很小(大约5个)。团队规模可能会增加。不确定项目进度。尽管当前的应用程序基于CMS,但未来的计划需要一致的用户体验、可扩展性、简单性和可靠性。谢谢,谢谢,迈克。我同意,这在很大程度上取决于您在构建ASP.NET应用程序和复制DNN中随时可用的功能方面的执行情况。这就是我选择混合模式的原因(就像您使用ASP.NET和Umbraco/DNN一样)。您是否遇到过让所有这些完全不同的模块协同工作并创建一致的用户体验的问题?模块的升级问题如何?谢谢(SharePoint的有趣之处!有几个问题