还剩7页未读,继续阅读
文本内容:
外文原文翻译ASP.NETC#版ASP动态服务器主页是一种较新的技术它已经过几个阶段的发展进化.它是怎么诞生的呢在七年前它作为一种简单的方法来往普通网页里添加动态内容自从那时以后,它的发展势头强劲作为高级网页程序的__平台,包括电子商务__、基于__驱动的门户__和你在网上能看到的其他所有东西ASP.NET
2.0是ASP的最新版本而且拥有最让人激动的更新在ASP.NET帮助下,在网络编程时,__者不再把一大堆HTML源码和脚本代码杂乱地放在同一页面上你可以完全使用代码和工具(VisualStudio2005)来创建网页程序这些创新的代价仅仅是多学一些东西你要学一些高级__工具(VisualStudio)和工具包(the.NETFramework),而且你需要精通一门编程语言,如C#网络发展的演化因特网是在_____末在试验中诞生的它的目标是建立一个真实的、有弹性的___络——可以经受的起若干数量的电脑的崩溃,而不至于阻断其他电脑的正常通信经得起潜在的重大灾难(如核武器攻击)美国国防部提供了刚开始的研究基金最早的因特网局限在教育机构和从事国防的单位它因为作为学术研究的一种工具而繁荣,它让全球的研究人员可以彼此共享信息到了1990初,伟大的“猫”诞生了,它通过__线工作,从此,因特网向商业用户打开了大门在1993年,第一个HTML浏览器诞生了,标志着因特网__的到来我们很难把最早的网页称为网页序第一代的网页看起来更像小册子主要由固定的HTML页面构成,这些也都需要手动修改 一个简单的HTML页面有点像一个字处理文档——它包含了格式化的内容,可以在你的电脑上显示,但是并不完成其他任何功能上面的就是一个最简单的例子,文档包括头信息和单行文本一个HTML文档有两种类型的内容文本和标记(告诉浏览器如何格式化)这些标记很容易辨认,因为它们总是出现在和之间HTML定义了不同级别的标题、段落、超链接、斜体和粗体格式、水平线等举个例子h1某个文本h1,告诉浏览器用标题1的格式来显示这个文本,就是用最大的黑体字来显示图1-1显示了这个页面在浏览器中的效果提示你不需要精通HTML就能进行ASP.NET网页编程,虽然它(HTML)是很有用的为了快速介绍一下HTML,给大家介绍一个网上的优秀HTML指南HTML
2.0首次引入了一个网页编程的新技术,称为HTML表单HTML表单扩展了HTML的功能,不仅包含了格式化标签,而且包含了窗体小部件或者叫控件这些控件包含了普通的功能部件,如下拉列表、文本框和按钮下面是一个由HTML表单控件创建的网页网页表单允许网页程序设计师设计标准的输入页面当用户单击图1-2的提交按钮,所有在输入控件中的数据(在这个例子中是两个复选框)将打包成一个长字符串,接着发送到服务器在服务器端,一个客户程序接收和处理这些数据令人惊奇的是:这些为HTML表单创建有超过十年之久的控件仍然是你用来创建ASP.NET页面的基础不同的是这些程序控件将运行在服务器端在过去,当用户单击一个表单页面的按钮时,信息要通过e-__il来发送或者使用在服务器端运行的程序(通过CGI标准)今天,你将可以使用更强大、更优雅的ASP.NET平台理解ASP.NET的创建原因可以帮助我们了解其他网页__技术遇到的问题在原始的CGI标准下,举个例子,网页服务器必须为每个网页请求建立一个单独的程序实例如果这个网页很受人们欢迎(那访问者将很多),那么网页服务器就要经受得起数以百计的__程序副本,这样最终导致服务器反而因为受欢迎而成为受害者为了解决这个问题,微软__了ISAPI(网络服务程序编程接口),一个高层次的编程模型ISAPI解决了性能问题,但是付出了复杂性的代价即使ISAPI__者是个C+编程老手,他仍然晚上担心到失眠,因为会遇到多线程处理这样让人麻烦的问题ISAPI编程是给那些坚强的“夜猫子”,不是给那些懦弱的人ISAPI并没有真正消失,取代它的是,微软利用它建立了一个更高级的__平台,如ASP和ASP.NET这两种技术都可以使__者编写动态网页,而不需要担心底层的执行细节由于这个原因,这两个平台成功到令人难以置信最初的ASP平台吸引了将近一百万的__人员当ASP.NET第一次发布时,作为.NETFramework的核心部件受到人们更多__事实上,ASP.NET
1.0已经在数十个大型商业网络中得到应用,虽然它还在最后的测试阶段虽然拥有类似的基础,ASP和ASP.NET有根本的不同ASP是基于脚本的编程语言,需要全面理解HTML,而且还要经过一大堆痛苦的编程训练而ASP.NET,在另一方面,是面向对象的编程模型,建立网页页面就像建立桌面程序一样容易在很多方面,学会ASP.NET比精通ASP要容易,而且ASP.NET功能更加强大同时,服务器端的网络发展为从技术的字母形花片汤到广受欢迎的一类编程__人员开始试着使用嵌入多媒体、J__aScript的小程序、DHTML和J__a代码来增强网页的功能这些基于客户端的技术不需要通过服务器的处理就能实现所有的程序都(从服务器)下载到客户端浏览器,在本地执行客户端技术的最大问题就是它们不被所有的浏览器和操作系统__的支持其中的一个原因就是网络__太受欢迎了,首先是网络程序不需要通过CD安装、下载和其他单调的配置取而代之的是,一个网络程序只要能上网的电脑就可以执行了但是,一旦__者使用客户端技术,他们就会遇到一些常见的问题比如跨浏览器的兼容性__者就不得不在不同的浏览器和操作系统中测试他们的网页,甚至他们还要给用户发布浏览器更新换句话说,客户端模型牺牲了网络程序最重要的优良特性由于上述原因,ASP.NET被设计为服务器端技术所有的ASP.NET代码都在服务器上执行当代码执行完毕时,用户就会得到一个普通的HTML页面,这样任何浏览器都可以浏览了图1-3显示了服务器端和客户端模型的不同这里还有几条原因要避免客户端编程孤立性客户端代码无法访问服务器资源举个例子,没有一种简单的方式让客户端可以读取一个在服务器上的文件或进行数据库连接(至少不会遇到安全性和浏览器兼容性的问题)安全性最终用户可以查看客户端代码一旦有不怀好意的用户理解了程序是怎么工作的,他们就有可能乱来了在某些方面,ASP.NET允许你通过服务器端编程结合最佳的客户端编程举个例子ASP.NET控件可以智能侦测客户端浏览器的属性如果该浏览器支持J__aScript,那么这些控件将返回一个含有J__aScript的更多功能的页面尽管如此,不管浏览器的功能有多强大,你的代码始终在服务器端执行状态限制为了保证最佳性能,网络设计成无状态的协议意思就是一旦页面已经传送给用户,连接就关闭了而且用户指定的信息也被丢弃了ASP包括一个sessionstate(会话状态)特性允许程序员来解决这个问题使用sessionstate,一个网页程序可以为每一个客户端暂时保存信息(保存在服务器的内存里)尽管如此,如果一个__是放在几个服务器上,sessionstate就__无力了在这种情况下,一个客户要访问B服务器,而他的会话信息是被A服务器保留的,这样实际上这个会话信息将被丢弃掉ASP.NET纠正了这个问题,允许把状态储存在__仓库,就像一个单独的进程或者一个所有服务器都可以访问的数据库ASP.NET通过引进全新的模型解决了上述问题(当然不止这些啦)这个模型是基于一个伟大的技术,称之为.NETFramework你应该知道的是.NETFramework是几种技术的群集(__).NET语言包括C#、VB.NETVisualBasic.NET一种面向对象的、现代化的语言(VB
6.0的继任者);这些语言还包括:Jscirpt.NET服务器端版本的J__aScript,J#(j__a的兼容产品),还有C++管理扩充CLR(公共语言运行库)CLR是执行所有.NET程序和为这些程序提供自动服务的引擎,如安全验证、内存管理和优化等.NETFramework类库类库包含了成千上万个已经预建好的函数,你可以在你的程序中嵌入它们这些众多属性有时也被成为一个技术集,如ADO.NET(用来创建数据库程序的技术)和WindowsForms(也是一种技术,用来创建基于桌面的用户界面程序)ASP.NET这是一种主机网页程序和网络服务的引擎,从.NET类库中包含了几乎所有特性ASP.NET还包含了网页特有的服务VisualStudio这个可选的__工具包含了众多提高效率和调试功能的特性VS的__CD(或DVD)包含了完整的.NETFramework,所以你不需要额外下载它有趣的是,C#和VB.NET比C#和J__a要相似多了(或者是VB6和VB.NET)虽然语法是不同的,但是C#和VB.NET都使用.NET类库,也都由CLR支持事实上,几乎所有的C#代码块都可以一行一行翻译成VB.NET的代码块当然也有不行的时候(如C#语言支持一种属性叫调用匿名方法,而VB.NET不支持)但是对绝大部分来说,只要__者学会了其中一个.NET语言,就可以很快学会另一种简而言之,C#和VB.NET都是一流的,现代的用来__下一代网络程序的语言.NET
1.0引进了一种全新的语言尽管如此,.NET
2.0语言的变化还是细微的C#2005和VB2005都添加了一些新的特性,但是这些语言绝大部分都没有变化因此,任何使用C#
1.0编写的代码都可以同样的在
2.0下运行在第
二、三章,就会学到C#语法和面向对象编程的基础搞定了这些基础,你就可以开始创建简单的网页了这样你就会少点困惑,学得更快(向一些高级话题进军,如数据库访问和网络服务)CLR(公共语言运行库)只能运行IL代码,这就意味着它根本不知道你的源代码是用哪一个语言编写的,尽管如此,CLR竟然完成了另外一个编译步骤——它接受了IL代码并把它转换成适合当前平台的本机机器语言这个步骤在程序启动时发生,而且在代码被真正执行之前在ASP.NET程序中,当网络程序正在运行时,这些特定机器文件存储在高速缓存中,所以它们可以被复用(重新使用),以确保最佳性能你或许会问.NET___不直接编译成机器语言原因是机器代码取决于多个因素,包括CPU举个例子,如果你是为一台含有Intel处理器的电脑而创建的机器代码,那么编译器将能够使用超线程技术来增强你的代码这种适用特点机器的版本并不适合在其他电脑中运行,因为你无法保证它们使用同样的处理器在VS2005中,另一个受人欢迎的改变是支持不同的编码模型而VS2003却受那个困扰,VS2005支持某个范围的不同编码模型,使它成为具有灵活性、通用性我的设计工具这就让你可以把HTML标签和__处理代码放在同一个文件内或者分开存放,而不用委屈的使用VS,这样可以享受有用的特性好处,如代码智能完成外文原文ASP.NET
2.0inC#ASPActiveServerPagesisarelativelynewtechnologythat’salreadyleaptthroughseveralstagesofevolution.Itwasintrodu__daboutsevenyearsagoasaneasywaytoadddynamiccontenttoordinarywebpages.Sin__thenit’sgrownintosomethingmuchmoreambitious:aplatformforcreatingadvan__dwebapplicationsincludinge-commer__shopsdata-drivenportalsitesandjustaboutanythingelseyoucanfindontheInternet.ASP.NET
2.0isthelatestversionofASPanditrepresentsthemostdra__ticchangeyet.WithASP.NETdevelopersnolongerneedtopastetogetherajumbleofHTMLandscriptcodeinordertoprogramtheWeb.Insteadyoucancreatefull-scalewebapplicationsusingnothingbutcodeandadesigntoolsuchasVisualStudio
2005.Thecostofallthisinnovationisthelearningcurve.Notonlydoyouneedtolearnhowtouseanadvan__ddesigntoolVisualStudioandatoolkitofo__ectsthe.NETFrameworkyoualsoneedto__steraprogramminglanguagesuchasC#.TheInternetbeganinthelate1960sasanexperiment.Itsgoalwastocreateatrulyresilientinfor__tionnetwork—onethatcouldwithstandthelossofseveralcomputerswithoutpreventingtheothersfromcommunicating.Drivenbypotentialdisasters__nariossuchasnuclearattacktheU.S.DepartmentofDefenseprovidedtheinitialfunding.TheearlyInternetwasmostlylimitedtoeducationalinstitutionsanddefensecontractors.Itflourishedasatoolforacademiccollaborationallowingresearchersacrosstheglobetoshareinfor__tion.Intheearly1990smodemswerecreatedthatcouldworkoverexistingphonelinesandtheInternetbegantoopenuptocommercialusers.In1993thefirstHTMLbrowserwascreatedandtheInternetrevolutionbegan..Itwouldbedifficulttodescribeearlywebsitesaswebapplications.InsteadthefirstgenerationofwebsitesoftenlookedmorelikebrochuresconsistingmostlyoffixedHTMLpagesthatneededtobeupdatedbyhandbasicHTMLpageisalittlelikeaword-pro__ssingdocument—itcontainsfor__ttedcontentthatcanbedisplayedonyourcomputerbutitdoesn’tactuallydoanything.ThefollowingexampleshowsHTMLatits______stwithadocumentthatcontainsaheadingandsinglelineoftext:AnHTMLdocumenthastwotypesofcontent:thetextandthetagsthat____thebrowserhowtofor__tit.Thetagsareeasilyrecognizablebecausetheyoccurinsideangledbrackets.HTMLdefinestagsfordifferentlevelsofheadingsparagraphshyperlinksitalicandboldfor__ttinghorizontallinesandsoon.Forexampleh1SomeText/h1____sthebrowsertodisplaySomeTextintheHeading1stylewhichusesalargeboldfont.Figure1-1showsthe______HTMLpageinabrowser.HTML
2.0introdu__dthefirstseedofwebprogrammingwithatechnologycalledHTMLforms.HTMLformsexpandHTMLsothatitincludesnotonlyfor__ttingtagsbutalsotagsforgraphicalwidgetsorcontrols.Thesecontrolsincludecommoningre___ntssuchasdrop-downliststextboxesandbuttons.Here’sasamplewebpagecreatedwithHTMLformcontrols:HTMLformsallowwebapplicationdeveloperstodesignstandardinputpages.WhentheuserclickstheSubmitbuttononthepageshowninFigure1-2allthedataintheinputcontrolsinthiscasethetwocheckboxesispatchedtogetherintoonelongstringandsenttothewebserver.Ontheserversideacustomapplicationre__ivesandpro__ssesthedata.A__zinglyenoughthecontrolsthatwerecreatedforHTMLformsmorethantenyearsagoarestillthebasicfoundationthatyou’llusetobuilddynamicASP.NETpages!Thedifferen__isthetypeofapplicationthatrunsontheserverside.Inthepastwhentheuserclickedabuttononaformpagetheinfor__tionmighth__ebeene-__iledtoasetaccountorsenttoanapplicationontheserverthatusedthechallengingCGICommonGatewayInte_____standard.Todayyou’llworkwiththemuchmorecapableandelegantASP.NETplatform.TounderstandwhyASP.NETwascreatedithelpstounderstandtheproblemsofotherwebdevelopmenttechnologies.WiththeoriginalCGIstandardforexamplethewebservermustlaunchacompletelyseparateinstan__oftheapplicationforeachwebrequest.Ifthewebsiteispopularthewebservermuststruggleundertheweightofhundredsofseparatecopiesoftheapplicationeventuallybecomingavictimofitsownsuc__ss.counterthisproblemMicrosoftdevelopedISAPIInternetServerApplicationProgrammingInte_____ahigher-levelprogrammingmodel.ISAPIsolvedtheperfor__n__problembutatthecostofsignificantcomplexity.EvenafterISAPIdevelopers__sterthetrickyC++programminglanguagetheystilllieawakeatnightworryingaboutconfoundingissuessuchasmultithreading.ISAPIprogrammingisdefinitelynotforthefainthearted.ISAPIneverreallygoaway.InsteadMicrosoftusedittobuildhigher-leveldevelopmentplatformssuchasASPandASP.NET.Bothofthesetechnologiesallowdeveloperstoprogramdynamicwebpageswithoutworryingaboutthelow-levelimplementationdetails.Forthatreasonbothplatformsh__ebecomeincrediblysuc__ssful.TheoriginalASPplatformgarneredahugeau___n__ofnearlyonemilliondevelopers.WhenASP.NETwasfirstreleaseditgeneratedevenmoreinterestasthe__nterpie__ofthe.NETFrame-work.InfactASP.NET
1.0wasenthusiasticallyputtoworkindozensoflarge-scalecommercialwebsitesevenwhenitwasonlyinlatebeta.Despiteh__ingsimilarunderpinningsASPandASP.NETareradicallydifferent.ASPisascript-basedprogramminglanguagethatrequiresathoroughunderstandingofHTMLandagooddealofpainfulcoding.ASP.NETontheotherhandisano__ect-orientedprogrammingmodelthatletsyouputtogetherawebpageaseasilyasyouwouldbuildaWindowsapplication.In__nyrespectsit’seasiertolearnASP.NETthanto__sterASPeventhoughASP.NETisfarmorepowerful.Atthesametimethatserver-sidewebdevelopmentwasmovingthroughanalphabetsoupoftechnologiesanewtypeofprogrammingwasgainingpopularity.Developersbegantoexperimentwiththedifferentwaystheycouldenhan__webpagesbyembed-dingmultimediaandminiatureappletsbuiltwithJ__aScriptDHTMLDynamicHTMLandJ__acode.Theseclient-sidetechnologiesdon’tinvolveanyserverpro__ssing.Insteadthecompleteapplicationisdownloadedtotheclientbrowserwhichexecutesitlocally.Thegreatestproblemwithclient-sidetechnologiesisthattheyaren’tsupportedequallybyallbrowsersandoperatingsystems.Oneofthereasonsthatwebdevelopmentissopopularinthefirstpla__isbecausewebapplicationsdon’trequiresetupCDsdown-loadsandothertediousanderror-pronedeploymentsteps.InsteadawebapplicationcanbeusedonanycomputerthathasInternetac__ss.Butwhendevelopersuseclient-sidetechnologiestheyencounterafewfamiliarheadaches.Suddenlycross-browsercompatibilitybecomesaproblem.Developersarefor__dtotesttheirwebsiteswithdifferentoperatingsystemsandbrowsersandtheymightevenneedtodistributebrowserupdatestotheirclients.Inotherwordstheclient-sidemodelsacrifi__ssomeofthemostimportantbenefitsofwebdevelopmentorthatreasonASP.NETisdesignedasaserver-sidetechnology.AllASP.NETcodeexecutesontheserver.Whenthecodeisfinishedexecutingtheuserre__ivesanordinaryHTMLpagewhichcanbeviewedinanybrowser.Figure1-3showsthedifferen__betweentheserver-sideandclient-sidemodel.Thesearesomeotherreasonsfor__oidingclient-sideprogramming:Isolation:Client-sidecodecan’tac__ssserver-sideresour__s.Forexampleaclient-sideapplicationhasnoeasywaytoreadafileorinteractwithadatabaseontheserveratleastnotwithoutrunningintoproblemswithsecurityandbrowsercompatibility.Security:Enduserscanviewclient-sidecode.Andon____licioususersunderstandhowanapplicationworkstheycanoftentamperwithit.omecasesASP.NETallowsyoutocombinethebestofclient-sideprogrammingwithserver-sideprogramming.ForexamplethebestASP.NETcontrolscanin____igentlydetectthefeaturesoftheclientbrowser.IfthebrowsersupportsJ__aScriptthesecontrolswillreturnawebpagethatincorporatesJ__aScriptforarichermoreresponsiveuserinte_____.Howeverno__tterwhatthecapabilitiesofthebrowseryourcodeisalwaysexecutedontheserver.Statelimitations:Toensureoptimumperfor__n__theWebisbuiltonstatelessprotocolswhichmeansassoonasapageissenttoausertheconnectionisclosedandanyuser-specificinfor__tionisdiscarded.ASPincludesasessionstatefeaturethatallowsprogrammerstoworkaroundthisproblem.Usingsessionstateawebapplicationcanretaintemporaryinfor__tionabouteachclientinservermemory.Howeversessionstateisuselessins__narioswhereawebsiteishostedbyseveralseparatewebservers.Inthiss__narioaclientmightac__ssserverBwhileitssessioninfor__tionistrappedonserverAandessentiallyabandoned.ASP.NETcorrectsthisproblembyallowingstatetobestoredina__ntralrepositorysuchasaseparatepro__ssoradatabasethatallserverscanac__ss.ASP.NETdealswiththeseproblemsand__nymorebyintroducingacompletelynewmodelforwebpages.Thismodelisbasedonare__rkablepie__oftechnologycalledtheNETFramework.Youshouldunderstandthatthe.NETFrameworkisreallyaclusterofseveraltechnologies:The.NETlanguages:TheseincludeC#andVB.NETVisualBasic.NETtheo__ect-orientedandmodernizedsuc__ssortoVisualBasic
6.0;theselanguagesalsoincludeJscript.NETaserver-sideversionofJ__aScriptJ#aJ__acloneandC++with__nagedExtensionsheCLRCommonLanguageRuntime:TheCLRistheenginethatexecutesall.NETprogramsandprovidesauto__ticservi__sfortheseapplicationssuchassecuritycheckingmemory__nagementandoptimization.The.NETFrameworkclasslibrary:Theclasslibrarycollectsthousandsofpie__sofprebuiltfunctionalitythatyoucan“snapin”toyourapplications.ThesefeaturesaresometimesorganizedintotechnologysetssuchasADO.NETthetechnologyforcreatingdatabaseapplicationsandWindowsFormsthetechnologyforcreatingdesktopuserinte_____s.ASP.NET:Thisistheenginethathostswebapplicationsandwebservi__swithalmostanyfeaturefromthe.NETclasslibrary.ASP.NETalsoincludesasetofweb-specificservi__s.UsualStudio:Thisoptionaldevelopmenttoolcontainsarichsetofproductivityanddebuggingfeatures.TheVisualStudiosetupCDsorDVDincludethecomplete.NETFrameworksoyouwon’tneedtodownloaditseparately.InterestinglyC#andVB.NETareactuallyfarmoresimilarthanJ__aandC#orthanVB6andVB.NET.ThoughthesyntaxisdifferentbothC#andVB.NETusethe.NETclasslibraryandaresupportedbytheCLR.InfactalmostanyblockofC#codecanbetranslatedlinebylineintoanequivalentblockofVB.NETcode.Anoccasionallanguagedifferen__popsupforexampleC#supportsalanguagefeaturecalledanonymousmethodswhileVB.NETdoesn’tbutforthemostpartadeveloperwhohaslearnedone.NETlanguagecanmovequicklyandefficientlytoanothershortbothC#andVB.NETareelegantmodernlanguagesthatareidealforcreatingthenextgenerationofwebapplications..NET
1.0introdu__dcompletelynewlanguages.Howeverthechangesinthe.NET
2.0languagesaremuchmoresubtle.BothC#2005andVB2005addafewnewfeaturesbutmostpartsoftheselanguagesre__inunchanged.Asaresultanycodewrittenaccordingtoversion
1.0oftheC#languagewillworkidenticallywithversion
2.
0.InChapters2and3you’llsortthroughthesyntaxofC#andlearnthebasicsofo__ect-orientedprogramming.Bylearningthefundamentalsbeforeyoustartcreating______webpagesyou’llfa__lessconfusionandmovemorerapidlytoadvan__dtopicssuchasdatabaseac__ssandwebservi__sheCLRrunsonlyILcodewhichmeansithasnoideawhich.NETlanguageyouoriginallyused.Noti__howeverthattheCLRactuallyperformsanothercompilationstep—ittakestheILcodeandtransformsittonative__chinelanguagecodethat’sappropriateforthecurrentplatform.Thisstepoccurswhentheapplicationislaunchedjustbeforethecodeisactuallyexecuted.InanASP.NETapplicationthese__chine-specificfilesarecachedwhilethewebapplicationisrunningsothattheycanbereusedensuringoptimumperfor__n__.Youmightwonderwhy.NETcompilersdon’tcompilestraightto__chinecode.Thereasonisthatthe__chinecodedependsonseveralfactorsincludingtheCPU.Forexampleifyoucreate__chinecodeforacomputerwithanIntelpro__ssorthecompiler__ybeabletouseHyper-Threadingtoprodu__enhan__dcode.This__chine-specificversionisn’tsuitablefordeploymenttoothercomputersbecausenoguaranteeexiststhatthey’reusingthesamepro__ssor.AnotherwelcomechangeinVisualStudio2005isthesupportfordifferentcodingmodels.WhileVisualStudio.NET2003lockeddevelopersintooneapproachVisualStudio2005supportsarangeofdifferentcodingmodels__kingitaflexibleall-purposedesigntool.ThatmeansyoucanchoosetoputyourHTMLtagsandeventhandlingcodeinthesamefileorinseparatefileswithoutcompromisingyourabilitytouseVisualStudioandbenefitfromhelpfulfeaturessuchasIn____iSense.。