gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 22:24:49 25 4
gpt4 key购买 nike

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

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

我想到的一些概念是:

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

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

开发工具是面向 .NET 3.5 的开发人员的 Visual Studio 2008 Team Edition。如果有任何好处,可以升级到 Visual Studio 2010 Premium(甚至 Ultimate)。

最佳答案

一定要深入了解 ASP.NET MVC2

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

WebForms vs. MVC2 要点——(根据经验):

可扩展性:

在我们公司,我们有很多使用 WebForms 的应用程序,然后我们会根据客户的需要对其进行更新和更改。

我认为您的客户在不久的将来会要求对应用程序进行更多更改。调用其他服务,也许您需要修改最终产品的某些部分以满足他们的意愿。

以及即将推出的 Cloud ComputingWindows Azure您可能需要跟上您的代码的平台。

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

我记得我们的一位客户走近我,要求我扩展他们的应用程序(他们有一个成员(member)管理系统),该功能将包含类似于将当前 View 导出为 csv 文件,这样他们就可以用它来处理办公事务(主要是连续字母)。

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


可测试性:

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

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

得益于这种可测试的环境,我们的代码库使用起来更简洁、更省力。我只是检查了一些代码,修改它,运行所有测试,然后:哦,它因奇怪的行为而崩溃了! - 让我们再次解决这个问题。早些时候,我记得我和我的同事坐在一起调试,花了几个小时试图找出这些错误。

对于 ASP.NET MVC2,我们现在缺少测试!我们要求各种各样的人(甚至是非 Web 人员)提供我们可以输入到我们的 TestSuite 中的测试用例。 .

是的,还有一些 AJAX 控件:


AJAX 能力:

您询问了 AJAX 控件以及与 ASP.NET MVC 的结合,我强烈建议您查看 Telerik ASP.NET MVC UI Controls .

如果这不适合您,我们还广泛使用 jQueryjQuery UI

借助 ASP.NET MVC 和 HTML View ,这些库不仅使用起来很愉快,而且看起来非常漂亮。

不再有 random-html-tag-id-value 自动生成!

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


这些框架不仅如此,还有 T4 模板系统。使用 Html.EditorFor() 方法为您的 ViewModels/DomainModels 自动搭建脚手架,当然还有一个非常简单的方法来使用IoCDI范式。

假设您问的问题大多与 .NET Framework 相关,您可能会坚持下去。

为了保持帖子的完整性,还有其他框架同样出色(甚至更好):

And many many more!

关于c# - 新的 ASP.NET Web 应用程序的体系结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2884127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com