代码之家  ›  专栏  ›  技术社区  ›  Anders Abel

新ASP.NET Web应用程序的体系结构

  •  5
  • Anders Abel  · 技术社区  · 16 年前

    我正在维护一个应用程序,它目前只是一个Web服务(用WCF构建)和一个数据库后端。Web服务是在具有LINQ to SQL数据访问部分的层中构建的,该部分在自己的程序集中具有核心功能,并且在该部分之上是包含WCF代码的Web服务程序集。核心程序集还处理所有业务逻辑规则(实际上很少)。

    客户现在想要一个应用程序的Web界面,而不是仅仅通过使用Web服务的其他应用程序访问它。我对现代Web应用程序设计很迷茫,所以我想就Web应用程序使用什么架构和框架提出一些建议。Web应用程序将使用与Web服务相同的核心程序集、业务规则和LINQ to SQL数据访问层。

    我想到的一些概念是:

    • ASP.NET MVC(或MVC-2)
    • 网络表单
    • Ajax控件-可能删除Ajax控件通过JSON访问现有的Web服务。

    还有什么我应该研究的概念吗?哪一个最适合新项目?

    开发工具是面向面向.NET 3.5的开发人员的Visual Studio 2008团队版。如果提供任何好处,则可以升级到Visual Studio 2010高级版(甚至终极版)。

    5 回复  |  直到 16 年前
        1
  •  11
  •   Faizan S.    16 年前

    一定要深入研究 ASP.NET MVC2 .

    我们所有的项目现在都是使用ASP.NET MVC2开发的。不仅仅是高度 可缩放 . 它很高 可测试的 也。从长远来看,这将带来更好的可维护应用程序。

    webforms与mvc2之比较(凭经验说话):

    可扩展性:

    在我们公司,我们有很多使用webforms的应用程序,然后我们根据客户的需要更新和更改了这些应用程序。

    我认为您的客户不久后会要求对应用程序进行更多的更改。打电话给其他服务,也许你需要重新加工最终产品的部分以符合他们的愿望。

    随着即将到来的 Cloud Computing 以及 Windows Azure 平台您可能需要跟上您的代码。

    ASP.NET MVC绝对支持随时扩展应用程序的概念。

    我记得我们的一个客户向我询问他们的应用程序的扩展名(他们有一个成员管理系统),该功能将包含类似链接的内容,将当前视图导出为 csv 把文件归档,这样他们就可以用它做办公室的事情(主要是连续的信件)。

    设置这个功能并不是什么大问题。(花了大约2个小时,包括写测试)-让我们去测试:


    Testability:

    使用 WebForms 我们对写测试没有太多兴趣,因为这样做纯粹是一种痛苦。 我记得我写了一些测试来至少提供一些证据,但让我们放弃这个话题。(p)

    我们对自定义类进行了测试,但无法真正测试WebForms中的所有事件处理程序。

    由于这个可测试的环境,我们的代码库使用起来更干净、更节省。我只是检查了一些代码,修改了它,运行了所有的测试:哦,它在奇怪的行为上崩溃了!-我们再来解决这个问题。早些时候,我记得和我的同事一起调试,花了几个小时试图找到这些错误。

    有了ASP.NET MVC2,我们现在 缺乏的 测验! 我们要求各种各样的人(甚至是非网络的人)提供我们可以提供给我们的 TestSuite .

    是的,还有一些Ajax控件:


    AJAXability:

    您询问了有关Ajax控件的问题,并结合ASP.NET MVC强烈建议您签出 Telerik ASP.NET MVC UI Controls .

    如果这不是你想要的,我们也会广泛利用 jQuery jQuery UI

    有了ASP.NET MVC和HTML视图,这些库不仅仅是一种使用的乐趣,它们看起来非常漂亮。

    没有 random-html-tag-id-value 自动生成了!

    但我最喜欢的是:你终于可以再次真正地重用你的代码了。


    这些框架有很多东西,不仅仅是这些,还有T4模板系统。自动脚手架 视图模型 / 域名模型 Html.EditorFor() 当然,有一个伟大而简单的方法来使用 IoC DI 范式。

    假设您使用大多数与.NET框架相关的标记来问这个问题,那么您可能会坚持这个问题。

    为了保持文章的完整性,还有其他一些框架也一样好(甚至更好):

    And many many more!

        2
  •  1
  •   Roman    16 年前

    还有 DynamicData 如果您需要对数据进行简单的CRUD访问,这可能是适当的。

        3
  •  0
  •   Will Marcouiller    16 年前

    这个 Web Service Software Factory (WSSF) 可能会在你的情况下派上用场。

    这将允许您在使用WCF(或标准Web服务通信协议)设计服务器/客户端通信时定义协定(返回的XML实体(如果选择XML)等)。

    WSSF 有利于 ASP.NET MVC ASP.NET MVP . 一个简单的例子 MVP 显示架构 here 加上 this article .

    对于我来说,我经常使用混合式体系结构,两者兼而有之 MVC 最有价值球员 因为两者都有不同的优点,它们结合在一起,填补了彼此的改进点。

        4
  •  0
  •   code4life    16 年前

    我还建议您查看Silverlight。

    http://www.silverlight.net/learn/

        5
  •  -1
  •   omoto    16 年前

    仅我的意见是在客户网站和管理页面(站点)内的Web表单上使用MVC