`
sean_gao
  • 浏览: 233438 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[链接] ASP.NET的"六大罪状"

阅读更多

http://www.garrettdimon.com/archives/aspnet-vs-front-end-architecture

该文作者细数了他在使用ASP.NET进行开发的过程中遇到的6点不爽的地方,主要都集中在前台架构上,包括大量内联的风格标签、不同浏览器生成不同页面代码、失败的标记设计、缺乏语意一致性、服务器端label和客户端label的脱节、服务器端ID和客户端ID脱节等等。尤其当你想使用标准的CSS,构建数据结构和表现分离的清晰页面时,ASP.NET的一些默认的内部处理可以让你对ASP.NET为何这样做完全无语。比较有趣的是本文后面的回复,其中有不少与楼主同病相怜的网友,还有来自微软员工的为ASP.NET辩护的声音。

我一直对MS在很多设计思路和决定上心存疑虑,不明白为什么MS硬是要自成风格搞自己那一套蹩脚的所谓"规范"或"标准",似乎在鼓励大家follow一个并不清晰、多少有些混杂无章的设计架构,其实为了方便它实现更cool的WYSIWYG开发工具。就拿今天来说,本来我们项目定义好所有模块都按BO和UI分开,BO里面的类和UI里面的类各施其责,原则上UI依赖BO,而不是反过来,按照我的理解和期望,Windows.Forms命名空间应该是由UI层来依赖,而非BO层。很显然,因为我们的form都放在UI层,肯定是依赖Windows.Forms了,而我们尽可能把所有业务逻辑代码放到BO层。但是为了临时实现一个文本文件形式的log,因为我们的业务逻辑代码都在BO层,所以为了记录有意义的log,我们的log逻辑自然而然只能放在BO层。但是一个基本的获取程序运行路径的方法属于System.Windows.Forms.Application类,让我们不得不using System.Windows.Froms。这其实还好,我们也许不应该强求Windows.Forms一定就是只针对UI上的应用。问题是你每天都在面对类似的情况,每天都或多或少在和.NET API和框架其他部分在打架,当你使用.NET的API时间久了,自然而然你就被它带到它的那一套思路中,你的设计也就自然而然跟着它走了,业务逻辑和UI逻辑交织在一起,当你回过头来想把层次理清理顺已经成为Mission:Impossible。因为抛开MS推荐的方式,自己实现一套自认更清晰的架构,相较"官方"的blueprint设计,代价实在有些高。

所以虽然我没有真正开发过ASP.NET,尤其是2.0版,但我很能理解他们遇到的尴尬。




大胃 2007-01-25 23:01 发表评论
分享到:
评论

相关推荐

    asp.net大作业

    【ASP.NET大作业】是一个基于ASP.NET技术完成的项目,主要展示了如何利用.NET框架和ASP.NET Web应用程序开发平台来构建一个高效、用户友好的Web应用。这个大作业可能包括了数据库交互、文档管理等多个功能模块,旨在...

    asp.net 期末大作业

    这个期末大作业涵盖了ASP.NET一学期的学习内容,意味着我们将探讨一系列关键概念和技术,包括基础语法、页面生命周期、数据绑定、控件、状态管理以及安全性等方面。 首先,让我们从ASP.NET的基础开始。ASP.NET的...

    asp.net大作业合集asp.net项目打包asp.net课程大作业asp.net期末大作业_ASP.NET-.zip

    asp.net大作业合集asp.net项目打包asp.net课程大作业asp.net期末大作业_ASP.NET-

    ASP.NET学习大总结+笔记

    六、ASP.NET安全性 ASP.NET内置的安全特性包括身份验证、授权、加密和解密等,确保了Web应用的安全。常见的身份验证模式有Windows、Forms、Passport和Windows集成认证等。授权机制可以控制用户访问特定资源的权限。 ...

    ASP.NET大作业

    这个"ASP.NET大作业"是你个人完成的一项实践项目,它实现了基础的数据操作功能,包括添加(Add)、删除(Delete)、修改(Update)和查询(Query),这些都是Web应用中最基本且重要的元素。 首先,让我们深入理解...

    ASP.NET AJAX程序设计——第I卷:服务器端ASP.NET 2.0 AJAX Extensions与ASP.NET AJAX Control Toolkit 源代码

    本卷从最易于理解和使用的那部分入手,介绍ASP.NET AJAX框架中能够与传统ASP.NET无缝对接的服务器端部分,包括服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit。这部分内容不需要读者有任何的客户端...

    ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典

    ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP...

    asp.net 实验六

    实验六旨在帮助你掌握ASP.NET的核心概念和技术,进一步提升你的Web开发技能。 首先,ASP.NET的页面生命周期是理解其工作原理的关键。在这个实验中,你会学习到从用户请求一个网页到服务器响应的整个过程,包括初始...

    ASP.net实战项目

    ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP...

    ASP.NET Core 3.1中文教程.pdf

    * 3.0 版:ASP.NET Core 的第六个版本,于 2019 年发布。 * 3.1 版:ASP.NET Core 的第七个版本,于 2020 年发布。 六、ASP.NET Core 的应用实践 * Razor Pages:ASP.NET Core 的 Razor Pages 框架,提供了一个...

    ASP.NET 完全入门

    ASP.NET技术就是由微软的.NET技术细化而来的,它跟ASP技术有些关系,然而又不是仅仅是一个继承,可以讲,ASP.NET跟ASP想比较的话,已经是变得面目全非了,当然好得至少是一个量级以上。 ASP.NET完全基于模块与组件,...

    ASP.NET期末作业课程设计—流浪书店系统源码+文档.zip

    ASP.NET期末作业课程设计—流浪书店系统源码+文档ASP.NET期末作业课程设计—流浪书店系统源码+文档ASP.NET期末作业课程设计—流浪书店系统源码+文档ASP.NET期末作业课程设计—流浪书店系统源码+文档ASP.NET期末作业...

    ASP.NET期末复习题

    六、ASP.NET 中的内置对象 * ASP.NET 中的七个内置对象:Request、Response、Server、Session、Application、HttpContext、Page 七、XML 和 DTD * URL 的中文意思是指统一资源定位器 * DTD 最大的作用就是验证 ...

    asp.net经典聊天室

    asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典...

    ASP.NET从入门到精通

    第六篇 ASP.NET 3.5 与LINQ 第20章 ASP.NET 3.5 与LINQ 第21章 使用 LINQ 查询 第七篇 ASP.NET 3.5 模块开发 第22章 注册模块设计 第23章 登录模块设计 第24章 广告模块设计 第25章 新闻模块设计 第26章 投票模块...

    asp.net大学教学课件

    六、ASP.NET Core ASP.NET Core是ASP.NET的最新版本,它是一个跨平台的开源框架,可以运行在Windows、Linux和macOS上。ASP.NET Core引入了依赖注入、中间件和Kestrel服务器等新特性,提高了性能和可移植性。 七、...

    基于ASP.net的大学生兼职管理系统源码

    基于ASP.net的大学生兼职管理系统源码基于ASP.net的大学生兼职管理系统源码基于ASP.net的大学生兼职管理系统源码基于ASP.net的大学生兼职管理系统源码基于ASP.net的大学生兼职管理系统源码基于ASP.net的大学生兼职...

    asp.net排课系统

    asp.net 排课 系统asp.net 排课 系统asp.net 排课 系统asp.net 排课 系统asp.net 排课 系统asp.net 排课 系统asp.net 排课 系统asp.net 排课 系统asp.net 排课 系统

    ASP.Net Core 5.0官方文档.pdf

    ASP.NET core 5.0文档PDF(含目录,共5453页)。摘要: ASP.NET Core 文档及新增内容 ASP.NET 比较 .NET Core 和 .NET Framework 入门新增功能 5.0 版中的新增功能 3.1/3.0/2.2/2.1/2.0/1.1 版中的新增功能 教程Web ...

    ASP.NET设计模式

    《ASP.NET设计模式》内容简介:这本独特的书通过强调松散耦合、高内聚的ASPNET Web应用程序架构设计,使得人们对高质量ASP.NET应用程序结构的认识更进一步。每一章内容分别解决企业ASP.NET应用程序中的一个层,同时...

Global site tag (gtag.js) - Google Analytics