ASP.NET超凡的代码控制
适应性
肯定的是,通常任何一个全新的技术,在市场渗透都会花费一些时间。微软正在开始让ASP和IIS平台通过行业验证,以便让其作为其它网络服务器之外可以供选择的平台
对于在其基本构架上的如此巨大的改变,是很难说服客户或者开发人员丢弃他们以前所使用的方法而来改用现有的方法。当然,随着时间的流逝,问题总是会被慢慢的解决,但事实上,ASP+要被市场接受,所面临的是一道障碍;即使慢慢的被采纳,寻找高品质解决方案和技术支持方面的问题也会接踵而来。事实上,ASP.net仍然是个alpha 技术,但在寻求支持方面,它又是如此幸运。
现存代码
当然,在将系统转换成 ASP.net之前,你得将你所有现存的代码重写一遍。你的那些旧的代码仍旧会在IIS内运作,但你仍然将使用传统的ASP框架(这不是件坏事)。当然,将一个庞大的web 应用程序移植到ASP.net中是一件非常痛苦的过程,特别是你已经有大量的解决方案或者说是COM对象。
ASP T代码编译
让我再重申一次:ASP.NET 代码现在被编译了.别紧张,这不是象你想的那样.你不需要创建文件,为了重新注册部件不得不stop 然后restart,现在不需要这样了,你只需照往常一样书写代码,仍然从早期捆绑中受益,系统会及时进行编译,
优化和缓冲存储. 这是怎样办到的呢?
根据脚本的首次请求, runtime将代码进行编译,并将编译结果进行高速缓冲存储复制(备份). 不论何时,只要脚本有请求,被存储的副本都可以调出使用. 此结果大大的增强了系统性能, 因为在首次请求之后,代码能更快的从编译版本中运行.
有人也许就会问了”它怎么知道我什么时候作了改动?” 微软已对此作出解答.Runtime通过文件系统来监视源文件. 当初始源文件发生改变时,它自动将编译版本从高速缓冲存储备份中拖出,因此当下一个要求来临时,它(编译文件)会被重新编译.这就意味着系统会自动编译代码, 程序员就再也用不着为人工编译而头疼了.
caching
对于多数的系统开发者而言,他们必须研制出一些“caching”来使系统速度加快。无论是ASP页面输出到HTML文件格式,网络联结速度都非常慢。或是从缓慢的internet链接引用,到recordset的 状态和漫游表单上的email表示符,甚至一个数据库动态驱动菜单,实际上不是完全的动态驱动,你不能为你每个客户请求而浪费大量时间。在创建网站时,一般来说,少量数据不会持续改变,但是正因为它们不是真正意义上的动态,不意味着使代码复杂化,那么它们在哪儿呢?所以,你得开发一些caching
基本的 caching 活动是首先甄选适当的数据进行存储。然后你需要将它们放置在程序中的application级变量中。然后,识别代码。然后,你就得决定得将数据存储多久,并写出程序,以便及时清空caching.但是,如果你清空了caching的话,那么所使用的程序得具有使数据重新恢复的功能。
在ASP.NET中建立了CACHING系统。使得使得整个系统比以前更为面向对象,使得 caching系统也可以存储 对象 。因此,无论何时caching,也可以随时调用。你可以根据需要设置数据存储的时间来决定创建各种类型的环境。 通过文件系统,你甚至可以在文件上链接一个详细的项目,这样当文件发生改变时,链接的项目就会同时被存储。
还不仅限于此,ASP.NET也存储输出数据。 为ASP。NET脚本结果做一个备份,因此当别人调用它时,他甚至不用运行,正确的输出结果就已在发送中。它主要基于查询字符串来工作,如果参数不能与存储中的参数相匹配,则记载参数的页面会回转到存储版本中
一些时候,依据站点来判断出什么需被存储是有一点技巧,但是至少现在不需要。
更快更简便的开发
任何开发平台都会向你提供一个固态的环境. 在ASP里,虽然这个环境的性能是优良的,但实际上它亳无用处.但是通过ASP.NET,在你书写你的第一行代码前,这个环境已为您做足了准备工作。以前程序员为了设计完善的程序,而不得不做的重复的烦人的工作,现在这个环境已为你做完了.
面向对象模型
当你的代码比以前任何时候都要运行得更快的时候,你已经得到一个真正的事件模型并可以对它进行控制。在过去,如果你希望某程序运行的早一些,你就不得不将程序放在页面的前面,相反,则放在页面的后部。这种方法往往不会起到很大的作用,所以你还得通过各种方法来构建你的代码以获得想要的效果. 这个“spaghett-code”问题能够通过使用大量的事件来修正,例如 page_load
每个页面级的对象都会有它们自己的事件模型,并且有能够激活设计好的Server事件。类似于 Button_Click 或 Listbox_Change 的例行程序,能够做出标准的表单处理,以及代你处理大量的相对简单的日常工作。读代码也成为可能,如此就意味着即使某段程序在六个月后出现了问题,也可以发现你以前的设定,并及时进行调试。
相关文章:
老码农:这是我见过最操蛋的代码,切勿模仿!
作为一名老码农,我的心这次凉透了!事情起因很简单:我在全国最大ZZ的同性组织某Hub上浏览时候,发现这样的一条信息:Python 超过 C、JS 薪酬排行第一(最大招聘网站Indeed.com数据)噗,9…

QTP时间格式的转换(YYYYMMDDHHMMSS)
之前查了好多资料都是这样写的: sendTime year(sendTime) & right( "00 " & month(sendTime),2) & right( "00 " & day(sendTime),2) & right( "00 " & hour(sendTime),2) &…

Selenium2+python自动化25-js处理日历控件(修改readonly属性)
前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题。 基本思路:先用js去掉readonly属性…

ASP.NET强大的性能
crystal译 yesky 一个程序,速度是一件非常令人渴望的东西。一旦代码开始工作,接下来你就得尽可能的让它运作的快些,再快些, 在ASP中你只有尽可能拧干你的代码,以至于不得不将他们移植到一个仅有很少一点性能的部件中。…

POJ-1753 Flip Game 枚举 状态压缩
刚开始做这题时总是在想应该用何种的策略来进行翻装,最后还是没有想出来~~~ 这题过的代码的思路是用在考虑到每个点被翻装的次数只有0次或者是1次,所以对于16个点就只有2^16中请况了。再运用位运算将状态压缩到一个32位…
“半真半假”DeepFake换脸也能精准识别?阿里安全提出全新检测方法
一段包含多个人脸的视频中,攻击者只对一个或者几个人的人脸进行伪造,这种“半真半假”的伪造情况能否被检测识别?近日,阿里安全图灵实验室宣布,其已成功打造出针对这种换脸视频的DeepFake检测技术,阐述该技…

python 定时任务
Python 定时任务 最近学习到了 python 中两种开启定时任务的方法,和大家分享一下心得。 sched.scheduler()threading.Timer()sched 定时任务 使用sched的套路如下: s sched.scheduler(time.time, time.sleep) s.enter(delay, priority, func1, (arg1, a…

思科AP与交换机端口的配置
思科AP与交换机端口的配置。 思科AP可以分IOS AP 和LAP。 1、IOS AP 中如果AP上需要创建多个SSID,连接的交换机端口则需要: switch(config-interfa)# sw mod trunk switch(config-interfa)# sw trunk allow vlan 1,x,x,x (SSID对应的VLAN) 另外注意&…

Namespace(命名空间)的使用
作者:飞刀 关于Namespace(命名空间)的使用常用<% Import Namespace"System.Data" %>,这是在引用M$为我们提供的Namespace,这和ASP不同的,我们贏SP.net必须先引用与我们操作有关的Namespace后才能使用相应的功能。其实说白了ÿ…
“编程能力差!90%输在这点上”谷歌AI专家:其实都是瞎努力!
最近几年,我看过市面上很多 Python和人工智能的教程,基本都在这样讲:先介绍Python基本语法、dict、tuple 等基本库的使用,最后学习机器学习、深度学习的常用算法......但我与Google人工智能开发专家彭靖田老师沟通后发现ÿ…

NAS存储对称和非对称结构之前的区别概述
传统的系统利用紧耦合对称架构,这种架构的设计旨在解决HPC(高性能计算、超级运算)问题,现在其正在向外扩展成为云存储从而满足快速呈现的市场需求。下一代架构已经采用了松弛耦合非对称架构,集中元数据和控制操作&…

Lucene:基于Java的全文检索引擎简介(转载)
Lucene是一个基于Java的全文索引工具包。基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史全文检索的实现:Luene全文索引和数据库索引的比较中文切分词机制简介:基于词库和自动切分词算法的比较具体的安装和使用简介:系统…
昨天,我用 Python 写了一个婚介模型
作者 | 天元浪子来源 | CSDN(ID:CSDNnews)先声明一下:本文纯属七夕应景娱乐之作。如果有人因为遵循本模型提出的择偶理论而导致失恋或单身,除了同情,我不能补偿更多。在中国的传统节日里,七夕可…

WCF服务一:WCF服务简介
一、回顾开发历史: 软件架构的设计经历了:从面向对象程序,到面向组件程序设计,再到面向服务程序设计。这三种方式都致力于同一个目标:封装和重用。 面向对象程序设计:类封装功能并提供代码重用。 面向组件程…
MIT 更新最大自然灾害图像数据集,囊括 19 种灾害事件
作者 | 神经小兮来源 | HyperAI超神经(ID:HyperAI)内容提要:麻省理工学院在最近 ECCV 2020 上提交的一篇论文中,发布了一套自然灾害图像数据集。这是迄今为止规模最大、质量最高的自然灾害卫星图像数据集。2020 年&…

DataBind数据核心
作者:飞刀 这一节主要是要讲DataBind,这个在ASP.net中是很重要的东东,几乎所有的控件都需要它来控制数据的操作。也可以说是ASP.net的数据核心。 我们先来看一个简单的例子: <% Page Language"C#" %> <% …

convertViewsetTag方法的一点理解
转自:http://blog.163.com/freemanls126/blog/static/164585061201171210504864/ 前言 首先我们要知道setTag方法是干什么的,SDK解释为 Tags Unlike IDs, tags are not used to identify views. Tags are essentially an extra piece of information tha…

iOS使用Security.framework进行RSA 加密解密签名和验证签名
iOS 上 Security.framework为我们提供了安全方面相关的api; Security框架提供的RSA在iOS上使用的一些小结 支持的RSA keySize 大小有:512,768,1024,2048位支持的RSA 填充方式有三种:NOPadding,PKCS1,OAEP 三…

Android APK反编译详解(附图)
这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。 在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习…
你不知道的18个Python高效编程技巧
来源 | Python编程时光初识Python语言,觉得python满足了我上学时候对编程语言的所有要求。python语言的高效编程技巧让我们这些大学曾经苦逼学了四年c或者c的人,兴奋的不行不行的,终于解脱了。高级语言,如果做不到这样,…

Alisql源码编译安装(详细篇)
前言 AliSQL 在 2016 云栖大会宣布开放源代码之后,迅速就获得了广泛的关注,目前(2016-10-27) star 数目已达 1187,欢迎访问 AliSQL GitHub 项目关注。社区反应也非常活跃,在 Issue 中提了不少反馈建议,其中有一部分是和…

如何给DataGrid添加自动增长列
作者: cuike519的专栏 http://blog.csdn.net/cuike519/我想我们都知道在数据库中如何添加自增长列,我们可以将这个自增长列绑定到DataGrid上使得用户方便的知道现在是第几行,今天我介绍一种不用数据库就可以简单显示出自增长列的方法&…
达摩院NLP团队斩获六项世界冠军背后,让AI没有难懂的语言
2018年末,BERT横空出世,它采用自编码对句子进行表示,通过预测掩盖词和上下句之间的关系作为语言模型学习任务,使用更多的数据,更大的模型,在多个自然语言处理(NLP)任务中显著超越之前…

提权巧用RAR.EXE
rar.exe是什么?它就是大名鼎鼎的winrar自带的命令行解压程序。在提权中我们经常要下载各种敏感文件,比如:SU目录。你想一下,如果su目录文件这么多,难道你要一个个的下载??这明显就很麻烦,有了ra…
OSGI企业应用开发(二)Eclipse中搭建Felix运行环境
上篇文章介绍了什么是OSGI以及使用OSGI构建应用的优点,接着介绍了两款常用的OSGI实现,分别为Apache Felix和Equinox,接下来开始介绍如何在Eclipse中使用Apache Felix和Equinox搭建OSGI运行环境。 一、搭建Apache Felix运行环境 上篇文章中介绍…
马斯克脑机接口、BrainOS相继发布,不努力也能有出路了
作者 | 马超责编 | Carol封图 | CSDN 下载自视觉中国在北京时间的8月29日凌晨,钢铁侠埃隆马斯克投资1亿多美元的脑机接口初创公司公司Neuralink(http://www.neurolink.company/)进行了一次现场发布会,展示新一代的脑机接口设备。这…

C语言单向链表的实现
一个简单结点的结构体表示为:struct note{int data; /*数据成员可以是多个不同类型的数据*/struct note *next; /*指针变量成员只能是-个*/}; 一个简单的单向链表的图示1.链表是结构、指针相结合…

Java开发常用Linux命令
1.查找文件 find / -name filename.txt根据名称查找/目录下的filename.txt文件。 find . -name "*.xml"递归查找所有的xml文件 find . -name "*.xml" |xargs grep "hello world"递归查找所有文件内容中包含hello world的xml文件 grep -H spring …

数据库开发基本操作-安装Sql Server 2005出现“性能监视器计数器要求”错误解决方法...
今天在安装SQL Server 2005时,出现“性能监视器计数器要求”错误,因为以前出现过这种错误,得到了解决。今天又又出现这种错误,但并不是很清楚当时的解决办法,所以这次把解决方法记录下来,供自己以后参考&am…
华为昇腾师资培训沙龙·南京场 |华为昇腾 ACL 语言开发实践全程干货来了!看完就实操系列...
自今年疫情以来,AI 技术加速进入了人们的视线,在抗疫过程中发挥了重要作用,产业发展明显提速,我国逐步走出了一条由需求导向引领商业模式创新、市场应用倒逼基础理论和关键技术创新的发展道路,AI 人才的争夺战也正式打…