为什么ASP.NET拖控件快速开发的特性被很多专业程序员所唾弃?
我不止在一个地方看到过说拒绝拖控件编程,在很多贴吧论坛以及视频教程的老师都表示不要拖控件编程,微软当初做webfrom的初衷就是为了让web开发更加快速简单,可是为什么这么好的一个产品(或者编程方式)反而被人唾弃呢?
回复内容:
因为有些程序员【只会拖控件】是个问题= =;http://ASP.NET【能拖控件】是好事当然最最重要的是,双方都无知,嘲讽的人无知,一些被嘲讽的人无知到活该被嘲讽的地步。。。 拖控件不是问题,只会拖控件才是问题。 基础功能可满足,但是很难控制精细,满足不了后期需求。 webform为了让网页感觉上是保持状态的,把html都封装的不像html了,整个网页都包含在form里头,提交都是post。问题不在控件,拖控件只是利用轮子而已。 拖控件并不是在任何时候都一无是处,只是在特定的此时此地,它的缺点比优点更大而已。
拖控件,其实就是黑框框的简单替代品,是一个本来只会写命令行的程序员,现在需要一个凑合的GUI。这个场景有四个特点:
- UI逻辑简单。
- UI逻辑和程序逻辑分离。
- 程序对UI需求少。
- 程序员不熟悉UI编程。
然而还有很多写专业软件的程序员,他们需要一个GUI只是因为用的人不会命令行。写的人和用的人都专业在领域专业知识上,没有时间仔细研究广大的前端知识,他们不是不专业,只是专业的方向不一样。 http://asp.net 现在有mvc框架,已经成功避免了拖控件这种简单枯燥,对程序员没有挑战的工作 拖控件让好多初级程序员以为这就是web开发了,其实他看到的只是经过n层封装后的一个傻瓜式开发方式。webform为了保持页面状态自己维护了一个viewstate,把所有和页面相关的东西都塞到了这个里面,造成的结果是很慢。实际上webform是把winform的思想在web端的移植,从效果来看,这种移植是不恰当的。当然,拖控件也不是一无是处,开发效率高,做个几百人用的企业级管理应用还是可以胜任的,互联网应用,拖控件是搞不定的。 首先,很多人只会拖控件,懒省事。并且很多人不思进取,就停留在拖控件。
其次,webform当初是为了抢占市场的,生成的web页面也跟ie6一样,很不标准(话说body下先嵌套一层form我也是醉了),并且有不少的html代码是控件生成的,不利于跟美工合作,依稀记得当时公司招美工,要求会.net优先,醉了
最后,b/s发展到现在,分工更明确,层次更突出。尤其重视前端代码,form表单包容所有其它元素,最傻逼的写法了,更别说为了追求速度,header头都各种节约,你再来个一长串的viewstate隐含域。
mvc的出现,不纯粹是为了mvc,也为了让产出更标准。11年mvc3出来,本人就直接抛弃了webform。15年了还有很多比我工作年龄长的人在考虑从webform转mvc,额~~ 刚刚开始学的时候也是从视频开始,各种黑拖控件,然后也就盲目跟着黑。实际做了一段时间开发之后,发现这种模式在小项目上用起来还是挺顺手的。 因为无知啊
这些bs别人的人too young too simple,并不懂得以下两个pattern:
- Smart UI
- Magic Button

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

1. Log output to file using module: logging can generate a custom level log, and can output the log to a specified path. Log level: debug (debug log) = 5) {clearTimeout (time) // If all results obtained 10 consecutive times are empty Log clearing scheduled task}return}if(data.log_type==2){//If a new log is obtained for(i=0;i

Introduction to Caddy Caddy is a powerful and highly scalable web server that currently has 38K+ stars on Github. Caddy is written in Go language and can be used for static resource hosting and reverse proxy. Caddy has the following main features: Compared with the complex configuration of Nginx, its original Caddyfile configuration is very simple; it can dynamically modify the configuration through the AdminAPI it provides; it supports automated HTTPS configuration by default, and can automatically apply for HTTPS certificates and configure it; it can be expanded to data Tens of thousands of sites; can be executed anywhere with no additional dependencies; written in Go language, memory safety is more guaranteed. First of all, we install it directly in CentO

Form validation is a very important link in web application development. It can check the validity of the data before submitting the form data to avoid security vulnerabilities and data errors in the application. Form validation for web applications can be easily implemented using Golang. This article will introduce how to use Golang to implement form validation for web applications. 1. Basic elements of form validation Before introducing how to implement form validation, we need to know what the basic elements of form validation are. Form elements: form elements are

Using Jetty7 for Web Server Processing in JavaAPI Development With the development of the Internet, the Web server has become the core part of application development and is also the focus of many enterprises. In order to meet the growing business needs, many developers choose to use Jetty for web server development, and its flexibility and scalability are widely recognized. This article will introduce how to use Jetty7 in JavaAPI development for We

First of all, you will have a doubt, what is frp? Simply put, frp is an intranet penetration tool. After configuring the client, you can access the intranet through the server. Now my server has used nginx as the website, and there is only one port 80. So what should I do if the FRP server also wants to use port 80? After querying, this can be achieved by using nginx's reverse proxy. To add: frps is the server, frpc is the client. Step 1: Modify the nginx.conf configuration file in the server and add the following parameters to http{} in nginx.conf, server{listen80

Face-blocking barrage means that a large number of barrages float by without blocking the person in the video, making it look like they are floating from behind the person. Machine learning has been popular for several years, but many people don’t know that these capabilities can also be run in browsers. This article introduces the practical optimization process in video barrages. At the end of the article, it lists some applicable scenarios for this solution, hoping to open it up. Some ideas. mediapipeDemo (https://google.github.io/mediapipe/) demonstrates the mainstream implementation principle of face-blocking barrage on-demand up upload. The server background calculation extracts the portrait area in the video screen, and converts it into svg storage while the client plays the video. Download svg from the server and combine it with barrage, portrait

Web standards are a set of specifications and guidelines developed by W3C and other related organizations. It includes standardization of HTML, CSS, JavaScript, DOM, Web accessibility and performance optimization. By following these standards, the compatibility of pages can be improved. , accessibility, maintainability and performance. The goal of web standards is to enable web content to be displayed and interacted consistently on different platforms, browsers and devices, providing better user experience and development efficiency.

Cockpit is a web-based graphical interface for Linux servers. It is mainly intended to make managing Linux servers easier for new/expert users. In this article, we will discuss Cockpit access modes and how to switch administrative access to Cockpit from CockpitWebUI. Content Topics: Cockpit Entry Modes Finding the Current Cockpit Access Mode Enable Administrative Access for Cockpit from CockpitWebUI Disabling Administrative Access for Cockpit from CockpitWebUI Conclusion Cockpit Entry Modes The cockpit has two access modes: Restricted Access: This is the default for the cockpit access mode. In this access mode you cannot access the web user from the cockpit
