And*_*bel 5 c# architecture asp.net-mvc asp.net-ajax
我正在维护一个应用程序,它目前只是一个Web服务(使用WCF构建)和数据库后端.Web服务是分层构建的,具有linq-to-sql数据访问部分,其中核心功能位于自己的程序集中,并且包含WCF代码的Web服务程序集.核心程序集还处理所有业务逻辑规则(实际上很少).
客户现在需要应用程序的Web界面,而不是仅通过使用Web服务的其他应用程序访问它.我对现代Web应用程序设计很遗憾,所以我想就Web应用程序使用的体系结构和框架提出一些建议.Web应用程序将使用具有业务规则的相同核心程序集,并将linq-to-sql数据访问层用作Web服务.
我想到的一些概念是:
还有更多的概念我应该研究一下吗?对于一个新项目哪一个最好?
开发工具是面向.NET 3.5的Visual Studio 2008 Team Edition for Developers.如果它提供任何好处,则可以升级到Visual Studio 2010 Premium(或者甚至是Ultimate).
Fai*_* S. 11
绝对深入挖掘ASP.NET MVC2.
我们现在正在使用ASP.NET MVC2开发所有项目.它不仅具有高度可扩展性.它也是高度可测试的.从长远来看,这可以带来更好的可维护应用程序.
WebForms与MVC2点 - (说出经验):
可扩展性:
在我们公司,我们有很多使用WebForms的应用程序,然后由我们根据客户的需要进行更新和更改.
我认为您的客户将在不久的将来要求对应用程序进行更多更改.打电话给其他服务,也许你必须修改最终产品的部分内容以符合他们的意愿.
通过即将推出的云计算和Windows Azure平台,您可能需要跟上代码的步伐.
ASP.NET MVC绝对支持能够随时扩展应用程序的概念.
我记得我们的一位客户走在我身边,要求我为他们的应用程序扩展(他们有一个会员管理系统),该功能将包含一些链接,将当前视图导出为csv
文件,以便他们可以办公室的东西它(主要是连续字母).
设置该功能并不是一个大问题.(花了大约2个小时,包括编写测试) - 让我们去测试:
可测性:
使用WebForms
我们并没有太多兴趣编写测试,因为这样做真的很痛苦.我记得写一些测试至少有一些证据,但让我们放弃那个话题..(:p)
我们对自定义类进行了测试,但我们无法真正测试WebForms中的所有EventHandler.
由于这个可测试的环境,我们的CodeBase更清洁,更安全.我只是查看一些代码,修改它,运行所有测试并且:哦,它打破了奇怪的行为! - 让我们再次解决这个问题.早些时候,我记得坐在我的同事调试,并试图找到这些错误几个小时.
使用ASP.NET MVC2,我们现在缺少测试!我们要求所有类型的人(甚至是非Web用户)提供我们可以提供给TestSuite的测试用例.
是的,还有一些AJAX控件:
AJAXability:
您询问了AJAX控件并结合ASP.NET MVC我强烈建议您查看Telerik ASP.NET MVC UI控件.
如果这不适合你,我们也广泛使用jQuery和jQuery UI
使用ASP.NET MVC和HTML视图,这些库不仅仅是一种乐趣,它们看起来非常漂亮.
没有random-html-tag-id-value
自动生成了!
但我最喜欢的是:你终于可以重新使用你的代码了.
除了那些框架之外,还有更多的东西,还有T4模板系统.使用该方法为您的ViewModel/DomainModel自动支架Html.EditorFor()
,当然有一种使用IoC和DI范例的简单方法.
假设您主要使用.NET Framework相关标签提出问题,您可能会坚持使用它.
只是为了保持帖子完整,还有其他框架同样好(甚至更好):