透明 发表于 2015-1-18 11:26:11

ASP.NET编程:T-SQL静态代码剖析仓酷云

是不是实质都是API?有的好像不只是API那么简单的,有的也是一种框架就像MFC一样。有的还是一种思想(就是做软件的思想)(好像很深奥,其实我也不懂^_^)静态代码剖析,在Windows平台上临时遭到无视,近几年却变得愈来愈主要。静态剖析从头取得存眷,始于一款Microsoft外部的工具——FXCop,因为它十分受接待,以是微软将其公然公布。在VisualStudio2005中,FXCop作为VisualStudio团队开辟版的一部分集成到该IDE中。
带有附加功效或免去单位测试必要的第二代工具正在研发傍边,包含.NET4的CodeContracts和自立研发的NStatic。
托管代码并非独一取得存眷的范畴。Ubitsoft公司正对T-SQL使用不异的手艺。跟着数据库增加,封装在T-SQL中的营业逻辑数目变更相称分明,偶然候乃至在主要性方面赛过一般代码。要帮忙办理这一情形,Ubitsoft公司创立了SQLEnlight。我们就此和他们的开辟主管IliyanStoyanov举行了相同。
这是个相称新奇的产物,你能够给我们一些关于SQLEnlight怎样出生的背景吗?
我们计划SQLEnlight作为T-SQL办理和反射工具,但因为我们必要更多的工夫来完成心中的一切设法,以是决意先公布T-SQL重格局化功效,稍后慢慢来增加新功效。你决意对Transact-SQL剧本剖析供应撑持是基于哪一点思索呢?
从本项目入手下手,该剖析功效就是我们个中一个方针,但我们决意推延它的公布,直到我们完成T-SQL语法剖析器扩大为止,它撑持新的SQLSever2005T-SQL语法。你怎样决意给剖析增加哪些划定规矩呢?
我们完成的剖析划定规矩基础下去自互联网找到的提醒和理论,大概来自SQLEnlight用户提交给我们的剖析划定规矩哀求。你们的手艺撑持提到过你正研发一个新版本,它会对全部数据库举行剖析。能够给我供应一些关于它的信息吗?
是的。我们正研发新的1.6版本,它将是我们SQLEnlight1.x版本的里程碑。该新版本会包括两项主要特征——创立自界说剖析划定规矩功效和撑持在数据库上运转剖析。我们也盘算包括命令行工具和MsBuild义务。SQLEnlight以后版本撑持这些剖析划定规矩。
计划


[*]包含NULL常量在内的相称和不等对照
[*]非ANSI内部连接语法
[*]非ANSI外部连接语法
[*]过期的语法,字符串_别号=表达式
[*]在实行数据操纵语句(像INSERT/UPDATE/DELETE)以后,利用TRY..CATCH布局大概反省该@@ERROR变量
[*]在存储历程、视图和表值函数中撑持SELECT*
[*]利用SCOPE_IDENTITY()交换@@IDENTITY
[*]撑持ORDERBY子句中利用常量已过期
[*]TOP子句用在不带ORDERBY子句的查询
[*]在INSERT语句中老是利用列的列表
[*]否决不带WITH关头字的表提醒用法
[*](会萃或非会萃)索引范例未指定
[*]制止利用GOTO语句来改良可读性
[*]思索利用括号来改良可读性和制止因为逻辑操纵符的优先级招致的毛病。
定名


[*]在定名函数的时分制止利用“fn_”前缀
[*]在定名存储历程的时分制止利用“sp_”前缀
功能


[*]变量@variable已声明但从未利用
[*]变量@variable已利用但之前未分派
[*]变量@variable已分派但其值从未利用
[*]在LIKE谓词中以“%”入手下手的形式
[*]思索利用表变量来取代一时表
[*]在触发器中制止前往了局
[*]利用十分小的变量长度范例(巨细为1大概2)
[*]在存储历程和触发器中利用“SETNOCOUNTON”选项
[*]在WHERE子句中制止利用不等操纵符(,!=)
[*]当地游标没有封闭
[*]当地游标无明白开释
[*]当地游标援用无明白开释
[*]在WHERE子句的函数中制止封装过滤列
[*]能够从WHERE子句中提取断定性函数挪用,制止不用要的表扫描
[*]输出参数从未利用
[*]输入参数从未赋值
[*]在WHERE子句中制止利用“NOTIN”谓词
[*]不要利用不带聚合函数的“GROUPBY”子句
检察英文原文:StaticCodeAnalysisforT-SQL
本文出自:http://www.infoq.com/cn/news/2008/12/TSQL-Analysis
其实net网页编程之所以在曾经独步天下,就是因为他的跨平台、安全性,这两方面,效率可不是net网页编程的强项,反而是他最短的一块挡板,虽然net总是用理论证明比.NET快。

分手快乐 发表于 2015-1-18 15:39:45

如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。

深爱那片海 发表于 2015-1-22 07:38:19

Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。

活着的死人 发表于 2015-1-25 08:38:02

提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。

灵魂腐蚀 发表于 2015-1-26 13:17:31

由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。

金色的骷髅 发表于 2015-1-26 19:39:59

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

小妖女 发表于 2015-2-4 18:41:00

使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

透明 发表于 2015-2-10 05:19:04

在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。

因胸联盟 发表于 2015-2-28 21:18:22

主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。

变相怪杰 发表于 2015-3-10 08:05:27

当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。

小魔女 发表于 2015-3-11 12:19:26

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

第二个灵魂 发表于 2015-3-18 10:41:46

但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。

仓酷云 发表于 2015-3-25 16:11:29

比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
页: [1]
查看完整版本: ASP.NET编程:T-SQL静态代码剖析仓酷云