




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
原文摘自BEGINNINGVISUALC2010作者KARLIWATSON,CHRISTINNAGEL,JACOBHAMMERPEDERSEN,JONDREID,MORGANSKINNERCHAPTER1INTRODUCINGCWHATISTHENETFRAMEWORKTHENETFRAMEWORKNOWATVERSION4ISAREVOLUTIONARYPLATFORMCREATEDBYMICROSOFTFORDEVELOPINGAPPLICATIONSTHEMOSTINTERESTINGTHINGABOUTTHISSTATEMENTISHOWVAGUEITISBUTTHEREAREGOODREASONSFORTHISFORASTART,NOTETHATITDOESNTDEVELOPAPPLICATIONSONTHEWINDOWSOPERATINGSYSTEMALTHOUGHTHEMICROSOFTRELEASEOFTHENETFRAMEWORKRUNSONTHEWINDOWSOPERATINGSYSTEM,ITISPOSSIBLETOFINDALTERNATIVEVERSIONSTHATWILLWORKONOTHERSYSTEMSONEEXAMPLEOFTHISISMONO,ANOPENSOURCEVERSIONOFTHENETFRAMEWORKINCLUDINGACCOMPILERTHATRUNSONSEVERALOPERATINGSYSTEMS,INCLUDINGVARIOUSFLAVORSOFLINUXANDMACOSINADDITION,YOUCANUSETHEMICROSOFTNETCOMPACTFRAMEWORKESSENTIALLYASUBSETOFTHEFULLNETFRAMEWORKONPERSONALDIGITALASSISTANTPDACLASSDEVICESANDEVENSOMESMARTPHONESONEOFTHEKEYMOTIVATIONSBEHINDTHENETFRAMEWORKISITSINTENDEDUSEASAMEANSOFINTEGRATINGDISPARATEOPERATINGSYSTEMSINADDITION,THEPRECEDINGDEFINITIONOFTHENETFRAMEWORKINCLUDESNORESTRICTIONONTHETYPEOFAPPLICATIONSTHATAREPOSSIBLETHATSBECAUSETHEREISNORESTRICTIONTHENETFRAMEWORKENABLESTHECREATIONOFWINDOWSAPPLICATIONS,WEBAPPLICATIONS,WEBSERVICES,ANDPRETTYMUCHANYTHINGELSEYOUCANTHINKOFALSO,WITHWEBAPPLICATIONSITSWORTHNOTINGTHATTHESEARE,BYDEFINITION,MULTIPLATFORMAPPLICATIONS,SINCEANYSYSTEMWITHAWEBBROWSERCANACCESSTHEMWITHTHERECENTADDITIONOFSILVERLIGHT,THISCATEGORYALSOINCLUDESAPPLICATIONSTHATRUNINSIDEBROWSERSONTHECLIENT,ASWELLASAPPLICATIONSTHATMERELYRENDERWEBCONTENTINTHEFORMOFHTMLTHENETFRAMEWORKHASBEENDESIGNEDSOTHATITCANBEUSEDFROMANYLANGUAGE,INCLUDINGCTHESUBJECTOFTHISBOOKASWELLASC,VISUALBASIC,JSCRIPT,ANDEVENOLDERLANGUAGESSUCHASCOBOLFORTHISTOWORK,NETSPECIFICVERSIONSOFTHESELANGUAGESHAVEALSOAPPEARED,ANDMOREAREBEINGRELEASEDALLTHETIMENOTONLYDOALLOFTHESEHAVEACCESSTOTHENETFRAMEWORK,BUTTHEYCANALSOCOMMUNICATEWITHEACHOTHERITISPERFECTLYPOSSIBLEFORCDEVELOPERSTOMAKEUSEOFCODEWRITTENBYVISUALBASICPROGRAMMERS,ANDVICEVERSAALLOFTHISPROVIDESANEXTREMELYHIGHLEVELOFVERSATILITYANDISPARTOFWHATMAKESUSINGTHENETFRAMEWORKSUCHANATTRACTIVEPROSPECTWHATSINTHENETFRAMEWORKTHENETFRAMEWORKCONSISTSPRIMARILYOFAGIGANTICLIBRARYOFCODETHATYOUUSEFROMYOURCLIENTLANGUAGESSUCHASCUSINGOBJECTORIENTEDPROGRAMMINGOOPTECHNIQUESTHISLIBRARYISCATEGORIZEDINTODIFFERENTMODULESYOUUSEPORTIONSOFITDEPENDINGONTHERESULTSYOUWANTTOACHIEVEFOREXAMPLE,ONEMODULECONTAINSTHEBUILDINGBLOCKSFORWINDOWSAPPLICATIONS,ANOTHERFORNETWORKPROGRAMMING,ANDANOTHERFORWEBDEVELOPMENTSOMEMODULESAREDIVIDEDINTOMORESPECIFICSUBMODULES,SUCHASAMODULEFORBUILDINGWEBSERVICESWITHINTHEMODULEFORWEBDEVELOPMENTTHEINTENTIONISFORDIFFERENTOPERATINGSYSTEMSTOSUPPORTSOMEORALLOFTHESEMODULES,DEPENDINGONTHEIRCHARACTERISTICSAPDA,FOREXAMPLE,WOULDINCLUDESUPPORTFORALLTHECORENETFUNCTIONALITYBUTISUNLIKELYTOREQUIRESOMEOFTHEMOREESOTERICMODULESPARTOFTHENETFRAMEWORKLIBRARYDEFINESSOMEBASICTYPESATYPEISAREPRESENTATIONOFDATA,ANDSPECIFYINGSOMEOFTHEMOSTFUNDAMENTALOFTHESESUCHASA32BITSIGNEDINTEGERFACILITATESINTEROPERABILITYBETWEENLANGUAGESUSINGTHENETFRAMEWORKTHISISCALLEDTHECOMMONTYPESYSTEMCTSASWELLASSUPPLYINGTHISLIBRARY,THENETFRAMEWORKALSOINCLUDESTHENETCOMMONLANGUAGERUNTIMECLR,WHICHISRESPONSIBLEFORMAINTAININGTHEEXECUTIONOFALLAPPLICATIONSDEVELOPEDUSINGTHENETLIBRARYWRITINGAPPLICATIONSUSINGTHENETFRAMEWORKWRITINGANAPPLICATIONUSINGTHENETFRAMEWORKMEANSWRITINGCODEUSINGANYOFTHELANGUAGESTHATSUPPORTTHEFRAMEWORKUSINGTHENETCODELIBRARYINTHISBOOKYOUUSEVSANDVCEFORYOURDEVELOPMENTVSISAPOWERFUL,INTEGRATEDDEVELOPMENTENVIRONMENTTHATSUPPORTSCASWELLASMANAGEDANDUNMANAGEDC,VISUALBASIC,ANDSOMEOTHERSVCEISASLIMMEDDOWNANDFREEVERSIONOFVSTHATSUPPORTSCONLYTHEADVANTAGEOFTHESEENVIRONMENTSISTHEEASEWITHWHICHNETFEATURESCANBEINTEGRATEDINTOYOURCODETHECODETHATYOUCREATEWILLBEENTIRELYCBUTUSETHENETFRAMEWORKTHROUGHOUT,ANDYOULLMAKEUSEOFTHEADDITIONALTOOLSINVSANDVCEWHERENECESSARYINORDERFORCCODETOEXECUTE,ITMUSTBECONVERTEDINTOALANGUAGETHATTHETARGETOPERATINGSYSTEMUNDERSTANDS,KNOWNASNATIVECODETHISCONVERSIONISCALLEDCOMPILINGCODE,ANACTTHATISPERFORMEDBYACOMPILERUNDERTHENETFRAMEWORK,THISISATWOSTAGEPROCESSCILANDJITWHENYOUCOMPILECODETHATUSESTHENETFRAMEWORKLIBRARY,YOUDONTIMMEDIATELYCREATEOPERATINGSYSTEMSPECIFICNATIVECODEINSTEAD,YOUCOMPILEYOURCODEINTOCOMMONINTERMEDIATELANGUAGECILCODETHISCODEISNTSPECIFICTOANYOPERATINGSYSTEMOSANDISNTSPECIFICTOCOTHERNETLANGUAGESVISUALBASICNET,FOREXAMPLEALSOCOMPILETOTHISLANGUAGEASAFIRSTSTAGETHISCOMPILATIONSTEPISCARRIEDOUTBYVSORVCEWHENYOUDEVELOPCAPPLICATIONSOBVIOUSLY,MOREWORKISNECESSARYTOEXECUTEANAPPLICATIONTHATISTHEJOBOFAJUSTINTIMEJITCOMPILER,WHICHCOMPILESCILINTONATIVECODETHATISSPECIFICTOTHEOSANDMACHINEARCHITECTUREBEINGTARGETEDONLYATTHISPOINTCANTHEOSEXECUTETHEAPPLICATIONTHEJUSTINTIMEPARTOFTHENAMEREFLECTSTHEFACTTHATCILCODEISCOMPILEDONLYWHENITISNEEDEDINTHEPAST,ITWASOFTENNECESSARYTOCOMPILEYOURCODEINTOSEVERALAPPLICATIONS,EACHOFWHICHTARGETEDASPECIFICOPERATINGSYSTEMANDCPUARCHITECTURETYPICALLY,THISWASAFORMOFOPTIMIZATIONTOGETCODETORUNFASTERONANAMDCHIPSET,FOREXAMPLE,BUTATTIMESITWASCRITICALFORAPPLICATIONSTOWORKINBOTHWIN9XANDWINNT/2000ENVIRONMENTS,FOREXAMPLETHISISNOWUNNECESSARY,BECAUSEJITCOMPILERSASTHEIRNAMESUGGESTSUSECILCODE,WHICHISINDEPENDENTOFTHEMACHINE,OPERATINGSYSTEM,ANDCPUSEVERALJITCOMPILERSEXIST,EACHTARGETINGADIFFERENTARCHITECTURE,ANDTHEAPPROPRIATEONEISUSEDTOCREATETHENATIVECODEREQUIREDTHEBEAUTYOFALLTHISISTHATITREQUIRESALOTLESSWORKONYOURPARTINFACT,YOUCANFORGETABOUTSYSTEMDEPENDENTDETAILSANDCONCENTRATEONTHEMOREINTERESTINGFUNCTIONALITYOFYOURCODEASSEMBLIESWHENYOUCOMPILEANAPPLICATION,THECILCODECREATEDISSTOREDINANASSEMBLYASSEMBLIESINCLUDEBOTHEXECUTABLEAPPLICATIONFILESTHATYOUCANRUNDIRECTLYFROMWINDOWSWITHOUTTHENEEDFORANYOTHERPROGRAMSTHESEHAVEAEXEFILEEXTENSIONANDLIBRARIESWHICHHAVEADLLEXTENSIONFORUSEBYOTHERAPPLICATIONSINADDITIONTOCONTAININGCIL,ASSEMBLIESALSOINCLUDEMETAINFORMATIONTHATIS,INFORMATIONABOUTTHEINFORMATIONCONTAINEDINTHEASSEMBLY,ALSOKNOWNASMETADATAANDOPTIONALRESOURCESADDITIONALDATAUSEDBYTHECIL,SUCHASSOUNDFILESANDPICTURESTHEMETAINFORMATIONENABLESASSEMBLIESTOBEFULLYSELFDESCRIPTIVEYOUNEEDNOOTHERINFORMATIONTOUSEANASSEMBLY,MEANINGYOUAVOIDSITUATIONSSUCHASFAILINGTOADDREQUIREDDATATOTHESYSTEMREGISTRYANDSOON,WHICHWASOFTENAPROBLEMWHENDEVELOPINGWITHOTHERPLATFORMSTHISMEANSTHATDEPLOYINGAPPLICATIONSISOFTENASSIMPLEASCOPYINGTHEFILESINTOADIRECTORYONAREMOTECOMPUTERBECAUSENOADDITIONALINFORMATIONISREQUIREDONTHETARGETSYSTEMS,YOUCANJUSTRUNANEXECUTABLEFILEFROMTHISDIRECTORYANDASSUMINGTHENETCLRISINSTALLEDYOUREGOODTOGOOFCOURSE,YOUWONTNECESSARILYWANTTOINCLUDEEVERYTHINGREQUIREDTORUNANAPPLICATIONINONEPLACEYOUMIGHTWRITESOMECODETHATPERFORMSTASKSREQUIREDBYMULTIPLEAPPLICATIONSINSITUATIONSLIKETHAT,ITISOFTENUSEFULTOPLACETHEREUSABLECODEINAPLACEACCESSIBLETOALLAPPLICATIONSINTHENETFRAMEWORK,THISISTHEGLOBALASSEMBLYCACHEGACPLACINGCODEINTHEGACISSIMPLEYOUJUSTPLACETHEASSEMBLYCONTAININGTHECODEINTHEDIRECTORYCONTAININGTHISCACHEMANAGEDCODETHEROLEOFTHECLRDOESNTENDAFTERYOUHAVECOMPILEDYOURCODETOCILANDAJITCOMPILERHASCOMPILEDTHATTONATIVECODECODEWRITTENUSINGTHENETFRAMEWORKISMANAGEDWHENITISEXECUTEDASTAGEUSUALLYREFERREDTOASRUNTIMETHISMEANSTHATTHECLRLOOKSAFTERYOURAPPLICATIONSBYMANAGINGMEMORY,HANDLINGSECURITY,ALLOWINGCROSSLANGUAGEDEBUGGING,ANDSOONBYCONTRAST,APPLICATIONSTHATDONOTRUNUNDERTHECONTROLOFTHECLRARESAIDTOBEUNMANAGED,ANDCERTAINLANGUAGESSUCHASCCANBEUSEDTOWRITESUCHAPPLICATIONS,WHICH,FOREXAMPLE,ACCESSLOWLEVELFUNCTIONSOFTHEOPERATINGSYSTEMHOWEVER,INCYOUCANWRITEONLYCODETHATRUNSINAMANAGEDENVIRONMENTYOUWILLMAKEUSEOFTHEMANAGEDFEATURESOFTHECLRANDALLOWNETITSELFTOHANDLEANYINTERACTIONWITHTHEOPERATINGSYSTEMGARBAGECOLLECTIONONEOFTHEMOSTIMPORTANTFEATURESOFMANAGEDCODEISTHECONCEPTOFGARBAGECOLLECTIONTHISISTHENETMETHODOFMAKINGSURETHATTHEMEMORYUSEDBYANAPPLICATIONISFREEDUPCOMPLETELYWHENTHEAPPLICATIONISNOLONGERINUSEPRIORTONETTHISWASMOSTLYTHERESPONSIBILITYOFPROGRAMMERS,ANDAFEWSIMPLEERRORSINCODECOULDRESULTINLARGEBLOCKSOFMEMORYMYSTERIOUSLYDISAPPEARINGASARESULTOFBEINGALLOCATEDTOTHEWRONGPLACEINMEMORYTHATUSUALLYMEANTAPROGRESSIVESLOWDOWNOFYOURCOMPUTERFOLLOWEDBYASYSTEMCRASHNETGARBAGECOLLECTIONWORKSBYPERIODICALLYINSPECTINGTHEMEMORYOFYOURCOMPUTERANDREMOVINGANYTHINGFROMITTHATISNOLONGERNEEDEDTHEREISNOSETTIMEFRAMEFORTHISITMIGHTHAPPENTHOUSANDSOFTIMESASECOND,ONCEEVERYFEWSECONDS,ORWHENEVER,BUTYOUCANRESTASSUREDTHATITWILLHAPPENTHEREARESOMEIMPLICATIONSFORPROGRAMMERSHEREBECAUSETHISWORKISDONEFORYOUATANUNPREDICTABLETIME,APPLICATIONSHAVETOBEDESIGNEDWITHTHISINMINDCODETHATREQUIRESALOTOFMEMORYTORUNSHOULDTIDYITSELFUP,RATHERTHANWAITFORGARBAGECOLLECTIONTOHAPPEN,BUTTHATISNTASTRICKYASITSOUNDSFITTINGITTOGETHERBEFOREMOVINGON,LETSSUMMARIZETHESTEPSREQUIREDTOCREATEANETAPPLICATIONASDISCUSSEDPREVIOUSLY1APPLICATIONCODEISWRITTENUSINGANETCOMPATIBLELANGUAGESUCHASCSEEFIGURE112THATCODEISCOMPILEDINTOCIL,WHICHISSTOREDINANASSEMBLYSEEFIGURE123WHENTHISCODEISEXECUTEDEITHERINITSOWNRIGHTIFITISANEXECUTABLEORWHENITISUSEDFROMOTHERCODE,ITMUSTFIRSTBECOMPILEDINTONATIVECODEUSINGAJITCOMPILERSEEFIGURE134THENATIVECODEISEXECUTEDINTHECONTEXTOFTHEMANAGEDCLR,ALONGWITHANYOTHERRUNNINGAPPLICATIONSORPROCESSES,ASSHOWNINFIGURE14LINKINGNOTEONEADDITIONALPOINTCONCERNINGTHISPROCESSTHECCODETHATCOMPILESINTOCILINSTEP2NEEDNTBECONTAINEDINASINGLEFILEITSPOSSIBLETOSPLITAPPLICATIONCODEACROSSMULTIPLESOURCECODEFILES,WHICHARETHENCOMPILEDTOGETHERINTOASINGLEASSEMBLYTHISEXTREMELYUSEFULPROCESSISKNOWNASLINKINGITISREQUIREDBECAUSEITISFAREASIERTOWORKWITHSEVERALSMALLERFILESTHANONEENORMOUSONEYOUCANSEPARATEOUTLOGICALLYRELATEDCODEINTOANINDIVIDUALFILESOTHATITCANBEWORKEDONINDEPENDENTLYANDTHENPRACTICALLYFORGOTTENABOUTWHENCOMPLETEDTHISALSOMAKESITEASYTOLOCATESPECIFICPIECESOFCODEWHENYOUNEEDTHEMANDENABLESTEAMSOFDEVELOPERSTODIVIDETHEPROGRAMMINGBURDENINTOMANAGEABLECHUNKS,WHEREBYINDIVIDUALSCANCHECKOUTPIECESOFCODETOWORKONWITHOUTRISKINGDAMAGETOOTHERWISESATISFACTORYSECTIONSORSECTIONSOTHERPEOPLEAREWORKINGONWHATISCC,ASMENTIONEDEARLIER,ISONEOFTHELANGUAGESYOUCANUSETOCREATEAPPLICATIONSTHATWILLRUNINTHENETCLRITISANEVOLUTIONOFTHECANDCLANGUAGESANDHASBEENCREATEDBYMICROSOFTSPECIFICALLYTOWORKWITHTHENETPLATFORMTHECLANGUAGEHASBEENDESIGNEDTOINCORPORATEMANYOFTHEBESTFEATURESFROMOTHERLANGUAGES,WHILECLEARINGUPTHEIRPROBLEMSDEVELOPINGAPPLICATIONSUSINGCISSIMPLERTHANUSINGC,BECAUSETHELANGUAGESYNTAXISSIMPLERSTILL,CISAPOWERFULLANGUAGE,ANDTHEREISLITTLEYOUMIGHTWANTTODOINCTHATYOUCANTDOINCHAVINGSAIDTHAT,THOSEFEATURESOFCTHATPARALLELTHEMOREADVANCEDFEATURESOFC,SUCHASDIRECTLYACCESSINGANDMANIPULATINGSYSTEMMEMORY,CANBECARRIEDOUTONLYBYUSINGCODEMARKEDASUNSAFETHISADVANCEDPROGRAMMATICTECHNIQUEISPOTENTIALLYDANGEROUSHENCEITSNAMEBECAUSEITISPOSSIBLETOOVERWRITESYSTEMCRITICALBLOCKSOFMEMORYWITHPOTENTIALLYCATASTROPHICRESULTSFORTHISREASON,ANDOTHERS,THISBOOKDOESNOTCOVERTHATTOPICATTIMES,CCODEISSLIGHTLYMOREVERBOSETHANCTHISISACONSEQUENCEOFCBEINGATYPESAFELANGUAGEUNLIKECINLAYPERSONSTERMS,THISMEANSTHATONCESOMEDATAHASBEENASSIGNEDTOATYPE,ITCANNOTSUBSEQUENTLYTRANSFORMITSELFINTOANOTHERUNRELATEDTYPECONSEQUENTLY,STRICTRULESMUSTBEADHEREDTOWHENCONVERTINGBETWEENTYPES,WHICHMEANSYOUWILLOFTENNEEDTOWRITEMORECODETOCARRYOUTTHESAMETASKINCTHANYOUMIGHTWRITEINCHOWEVER,YOUGETTWOBENEFITSTHECODEISMOREROBUSTANDDEBUGGINGISSIMPLER,ANDNETCANALWAYSTRACKTHETYPEOFAPIECEOFDATAATANYTIMEINC,YOUTHEREFOREMAYNOTBEABLETODOTHINGSSUCHASTAKETHEREGIONOFMEMORY4BYTESINTOTHISDATAAND10BYTESLONGANDINTERPRETITASX,BUTTHATSNOTNECESSARILYABADTHINGCISJUSTONEOFTHELANGUAGESAVAILABLEFORNETDEVELOPMENT,BUTITISCERTAINLYTHEBESTITHASTHEADVANTAGEOFBEINGTHEONLYLANGUAGEDESIGNEDFROMTHEGROUNDUPFORTHENETFRAMEWORKANDISTHEPRINCIPALLANGUAGEUSEDINVERSIONSOFNETTHATAREPORTEDTOOTHEROPERATINGSYSTEMSTOKEEPLANGUAGESSUCHASTHENETVERSIONOFVISUALBASICASSIMILARASPOSSIBLETOTHEIRPREDECESSORSYETCOMPLIANTWITHTHECLR,CERTAINFEATURESOFTHENETCODELIBRARYARENOTFULLYSUPPORTED,ORATLEASTREQUIREUNUSUALSYNTAXBYCONTRAST,CCANMAKEUSEOFEVERYFEATURETHATTHENETFRAMEWORKCODELIBRARYHASTOOFFERTHELATESTVERSIONOFNETINCLUDESSEVERALADDITIONSTOTHECLANGUAGE,PARTLYINRESPONSETOREQUESTSFROMDEVELOPERS,MAKINGITEVENMOREPOWERFULAPPLICATIONSYOUCANWRITEWITHCTHENETFRAMEWORKHASNORESTRICTIONSONTHETYPESOFAPPLICATIONSTHATAREPOSSIBLE,ASDISCUSSEDEARLIERCUSESTHEFRAMEWORKANDTHEREFOREHASNORESTRICTIONSONPOSSIBLEAPPLICATIONSHOWEVER,HEREAREAFEWOFTHEMORECOMMONAPPLICATIONTYPESWINDOWSAPPLICATIONSAPPLICATIONS,SUCHASMICROSOFTOFFICE,THATHAVEAFAMILIARWINDOWSLOOKANDFEELABOUTTHEMTHISISMADESIMPLEBYUSINGTHEWINDOWSFORMSMODULEOFTHENETFRAMEWORK,WHICHISALIBRARYOFCONTROLSSUCHASBUTTONS,TOOLBARS,MENUS,ANDSOONTHATYOUCANUSETOBUILDAWINDOWSUSERINTERFACEUIALTERNATIVELY,YOUCANUSEWINDOWSPRESENTATIONFOUNDATIONWPFTOBUILDWINDOWSAPPLICATIONS,WHICHGIVESYOUMUCHGREATERFLEXIBILITYANDPOWERWEBAPPLICATIONSWEBPAGESSUCHASTHOSETHATMIGHTBEVIEWEDTHROUGHANYWEBBROWSERTHENETFRAMEWORKINCLUDESAPOWERFULSYSTEMFORGENERATINGWEBCONTENTDYNAMICALLY,ENABLINGPERSONALIZATION,SECURITY,ANDMUCHMORETHISSYSTEMISCALLEDASPNETACTIVESERVERPAGESNET,ANDYOUCANUSECTOCREATEASPNETAPPLICATIONSUSINGWEBFORMSYOUCANALSOWRITEAPPLICATIONSTHATRUNINSIDETHEBROWSERWITHSILVERLIGHTWEBSERVICESANEXCITINGWAYTOCREATEVERSATILEDISTRIBUTEDAPPLICATIONSUSINGWEBSERVICESYOUCANEXCHANGEVIRTUALLYANYDATAOVERTHEINTERNET,USINGTHESAMESIMPLESYNTAXREGARDLESSOFTHELANGUAGEUSEDTOCREATEAWEBSERVICEORTHESYSTEMONWHICHITRESIDESFORMOREADVANCEDCAPABILITIES,YOUCANALSOCREATEWINDOWSCOMMUNICATIONFOUNDATIONWCFSERVICESANYOFTHESETYPESMAYALSOREQUIRESOMEFORMOFDATABASEACCESS,WHICHCANBEACHIEVEDUSINGTHEADONETACTIVEDATAOBJECTSNETSECTIONOFTHENETFRAMEWORK,THROUGHTHEADONETENTITYFRAMEWORK,ORTHROUGHTHELINQLANGUAGEINTEGRATEDQUERYCAPABILITIESOFCMANYOTHERRESOURCESCANBEDRAWNON,SUCHASTOOLSFORCREATINGNETWORKINGCOMPONENTS,OUTPUTTINGGRAPHICS,PERFORMINGCOMPLEXMATHEMATICALTASKS,ANDSOONCINTHISBOOKTHEFIRSTPARTOFTHISBOOKDEALSWITHTHESYNTAXANDUSAGEOFTHECLANGUAGEWITHOUTTOOMUCHEMPHASISONTHENETFRAMEWORKTHISISNECESSARYBECAUSEYOUWONTBEABLETOUSETHENETFRAMEWORKATALLWITHOUTAFIRMGROUNDINGINCPROGRAMMINGWELLSTARTOFFEVENSIMPLER,INFACT,ANDLEAVETHEMOREINVOLVEDTOPICOFOOPUNTILYOUVECOVEREDTHEBASICSTHESEARETAUGHTFROMFIRSTPRINCIPLES,ASSUMINGNOPROGRAMMINGKNOWLEDGEATALLAFTERTHAT,YOULLBEREADYTOMOVEONTODEVELOPINGMORECOMPLEXBUTMOREUSEFULAPPLICATIONSPARTIIOFTHISBOOKLOOKSATWINDOWSFORMSPROGRAMMING,PARTIIITACKLESWEBAPPLICATIONANDWEBSERVICEPROGRAMMING,PARTIVEXAMINESDATAACCESSFORDATABASE,FILESYSTEM,ANDXMLDATA,ANDPARTVCOVERSSOMEOTHERNETTOPICSOFINTERESTVISUALSTUDIO2010INTHISBOOK,YOUUSETHEVISUALSTUDIO2010VSORVISUALC2010EXPRESSVCEDEVELOPMENTTOOLSFORALLOFYOURCPROGRAMMING,FROMSIMPLECOMMANDLINEAPPLICATIONSTOMORECOMPLEXPROJECTTYPESADEVELOPMENTTOOL,ORINTEGRATEDDEVELOPMENTENVIRONMENTIDE,SUCHASVSISNTESSENTIALFORDEVELOPINGCAPPLICATIONS,BUTITMAKESTHINGSMUCHEASIERYOUCANIFYOUWANTTOMANIPULATECSOURCECODEFILESINABASICTEXTEDITOR,SUCHASTHEUBIQUITOUSNOTEPADAPPLICATION,ANDCOMPILECODEINTOASSEMBLIESUSINGTHECOMMANDLINECOMPILERTHATISPARTOFTHENETFRAMEWORKHOWEVER,WHYDOTHISWHENYOUHAVETHEPOWEROFANIDETOHELPYOUTHEFOLLOWINGISASHORTLISTOFSOMEVISUALSTUDIOFEATURESTHATMAKEITANAPPEALINGCHOICEFORNETDEVELOPMENTVSAUTOMATESTHESTEPSREQUIREDTOCOMPILESOURCECODEBUTATTHESAMETIMEGIVESYOUCOMPLETECONTROLOVERANYOPTIONSUSEDSHOULDYOUWISHTOOVERRIDETHEMTHEVSTEXTEDITORISTAILOREDTOTHELANGUAGESVSSUPPORTSINCLUDINGCSOTHATITCANINTELLIGENTLYDETECTERRORSANDSUGGESTCODEWHEREAPPROPRIATEASYOUARETYPINGTHISFEATUREISCALLEDINTELLISENSEVSINCLUDESDESIGNERSFORWINDOWSFORMS,WEBFORMS,ANDOTHERAPPLICATIONS,ENABLINGSIMPLEDRAGANDDROPDESIGNOFUIELEMENTSMANYTYPESOFCPROJECTSMAYBECREATEDWITHBOILERPLATECODEALREADYINPLACEINSTEADOFSTARTINGFROMSCRATCH,YOUWILLOFTENFINDTHATVARIOUSCODEFILESARESTARTEDFORYOU,REDUCINGTHEAMOUNTOFTIMESPENTGETTINGSTARTEDONAPROJECTTHISISESPECIALLYTRUEOFTHESTARTERKITPROJECTTYPE,WHICHENABLESYOUTODEVELOPFROMAFULLYFUNCTIONALAPPLICATIONBASESOMESTARTERKITSAREINCLUDEDWITHTHEVSINSTALLATION,ANDYOUCANFINDPLENTYMOREONLINETOPLAYWITHVSINCLUDESSEVERALWIZARDSTHATAUTOMATECOMMONTASKS,MANYOFWHICHCANADDAPPROPRIATECODETOEXISTINGFILESWITHOUTYOUHAVINGTOWORRYABOUTOREVEN,INSOMECASES,REMEMBERTHECORRECTSYNTAXVSCONTAINSMANYPOWERFULTOOLSFORVISUALIZINGANDNAVIGATINGTHROUGHELEMENTSOFYOURPROJECTS,WHETHERTHEYARECSOURCECODEFILESOROTHERRESOURCESSUCHASBITMAPIMAGESORSOUNDFILESASWELLASSIMPLYWRITINGAPPLICATIONSINVS,YOUCANCREATEDEPLOYMENTPROJECTS,MAKINGITEASYTOSUPPLYCODETOCLIENTSANDFORTHEMTOINSTALLITWITHOUTMUCHTROUBLEVSENABLESYOUTOUSEADVANCEDDEBUGGINGTECHNIQUESWHENDEVELOPINGPROJECTS,SUCHASTHECAPABILITYTOSTEPTHROUGHCODEONEINSTRUCTIONATATIMEWHILEKEEPINGANEYEONTHESTATEOFYOURAPPLICATIONTHEREISMUCHMORETHANTHIS,BUTYOUGETTHEIDEA翻译第一章介绍C什么是NETFRAMEWORKNETFRAMEWORK现在是版本4是MICROSOFT为开发应用程序而创建的一个具有革命意义的平台。这句话最有趣的地方在于它的广义性,但这是有原因的。首先,注意这句话没有说“在WINDOWS操作系统上开发应用程序”。尽管NETFRAMEWORK的MICROSOFT版本运行在WINDOWS操作系统上,但以后将推出运行在其他操作系统上的版本,例如MONO,它是NETFRAMEWORK的开源版本包含C编译器,该版本可以运行在几个操作系统上,包括各种LINUX版本和MACOS。另外,还可以在个人数字助手PDA类设备和一些智能电话上使用MICROSOFTNETCOMPACTFRAMEWORK基本上是完整NETFRAMEWORK的一个子集。使用NETFRAMEWORK的一个重要原因是它可以作为集成各种操作系统的方式。另外,上面给出的NETFRAMEWORK定义并未限制应用程序的类型。这是因为本来就没有限制。可以使用NETFRAMEWORK创建WINDOWS应用程序、WEB应用程序、WEB服务和其他各种类型的应用程序。另外,值得注意的是,由于任何具有一个浏览器的操作系统都能访问它们,WEB应用程序从定义上讲应该是多平台的应用程序。最近新增了SILVERLIGHT,这种类别还包含运行在客户浏览器内部的应用程序,以及仅以HTML格式显示WEB内容的应用程序。NETFRAMEWORK的设计方式确保它可以用于各种语言,包括本书介绍的C语言,以及C、VISUALBASIC、JSCRIPT,甚至一些旧的语言,如COBOL。为此,还推出了这些语言的NET版本,目前还在不断推出更多版本。所有这些语言都可以访问NETFRAMEWORK,它们彼此之间还可以通信。C开发人员可以使用VISUALBASIC程序员编写的代码,反之亦然。所有这些提供了意想不到的多样性,这也是NETFRAMEWORK具有诱人前景的部分原因。NETFRAMEWORK里有什么NETFRAMEWORK主要包含一个非常大的代码库,可以在客户语言如C中通过面向对象编程技术OOP来使用这些代码。这个库分为多个不同的模块,这样就可以根据希望得到的结果来选择使用其中的各个部分。例如,一个模块包含WINDOWS应用程序的构件,另一个模块包含网络编程的代码块,还有一个模块包含WEB开发的代码块。一些模块还分为更具体的子模块,例如,在WEB开发模块中,有用于建立WEB服务的子模块。其目的是,不同操作系统可以根据自己的特性,支持其中的部分或全部模块。例如,PDA支持所有的核心NET功能,但不需要某些更高级的模块。部分NETFRAMEWORK库定义了一些基本类型。类型是数据的一种表达方式,指定其中最基础的部分如32位带符号的整数,以便使用NETFRAMEWORK在各种语言之间进行交互操作。这称为通用类型系统COMMONTYPESYSTEM,CTS。除了提供这个库以外,NETFRAMEWORK还包含NET公共语言运行库COMMONLANGUAGERUNTIME,CLR,它负责管理用NET库开发的所有应用程序的执行。使用NETFRAMEWORK编写应用程序使用NETFRAMEWORK编写应用程序,就是使用NET代码库编写代码使用支持FRAMEWORK的任何一种语言。本书用VS和VCE进行开发,VS是一种强大的集成开发环境,支持C以及托管和非托管C、VISUALBASIC和其他一些语言。VCE是VS的一个删节版本免费,仅支持C。这些环境的优点是便于把NET功能集成到代码中。我们创建的代码完全是C代码,但使用了NETFRAMEWORK,并在需要时利用了VS和VCE中的其他工具。为了执行C代码,必须把它们转换为目标操作系统能够理解的语言,即本机代码NATIVECODE。这种转换称为编译代码,由编译器执行。在NETFRAMEWORK下,此过程包括两个阶段。CIL和JIT在编译使用NETFRAMEWORK库的代码时,不是立即创建专用于操作系统的本机代码,而是把代码编译为通用中间语言COMMONINTERMEDIATELANGUAGE,CIL代码,这些代码并非专门用于任何一种操作系统,也非专门用于C。其他NET语言,如VISUALBASICNET也可以在第一阶段编译为这种语言,开发C应用程序时,这个编译步骤由VS或VCE完成。显然,要执行应用程序,必须完成更多工作,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省滁州市2024-2025学年高一下学期期中政治试卷(含答案)
- 2025秋湘教版(2024)七年级上册地理课件 4.1 世界的人口
- 客房设施设备检查制度
- 幼儿园小班体育教案《双胞胎》
- 温病学派辨治外感热病之道
- 2025年国际贸易规则考试试题及答案
- 2025年公务员面试模拟考试题及答案
- 2025年公共政策制定与分析能力测评考试卷及答案
- 礼品公司培训
- 《连锁经营》课件项目四连锁
- 年产200吨高纯金属铯铷项目报告书
- 云南省保山市2023-2024学年高一下学期语文期末检测试卷(含答案)
- 四川甘孜州公开招聘社区工作者考试高频题库带答案2025年
- 莱西市2025年三年级数学第二学期期末统考试题含解析
- 2025年高考语文备考复习:名著阅读《红楼梦》《论语》解析版
- 2025年初级人工智能训练师(五级)资格理论考试题(附答案)
- 康复治疗室工作制度
- 2025年医护人员法律法规知识竞赛题库及答案(共三套)
- 垃圾焚烧发电行业润滑
- 铝合金门窗安装施工方案
- 胃癌化疗患者的护理查房
评论
0/150
提交评论