锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鏇存敼鏂規硶: 鎵撳紑 C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\VisualStudio\8.0\browsers.xml 涓銆佸紓姝O 浠庝互涓婄殑鏁版嵁,鎴戜滑鍙互寰楀嚭浠ヤ笅緇撹: 鍙傝冭祫鏂欙細 1錛?nbsp;Microsoft Knowledge Base 156932 2) Microsoft Windows Internals, Fourth Edition. 1.2 MVC鏋舵瀯 2.2 Composite妯″紡 2.3 Strategy妯″紡 鍥?. Strategy妯″紡鐨勭粨鏋勫浘 鏁堟灉錛?br>1. Strategy綾誨眰嬈′負Context瀹氫箟浜嗗彲閲嶇敤鐨勭浉鍏崇畻娉曟垨琛屼負銆?br>2. 鏇夸唬緇ф壙鐨勬柟娉曘傚鏋滅洿鎺ョ戶鎵緾ontext錛岀粰浠ヤ笉鍚岀殑琛屼負錛屼細灝嗚涓哄姞鍒癈ontext涓紝浠庤屽皢綆楁硶鐨勫疄鐜頒笌Context娣峰悎璧鋒潵錛屼嬌Context闅句互鐞嗚В錛岀淮鎶ゅ拰鎵╁睍錛岃屼笖涓嶈兘鍔ㄦ佸湴鏀瑰彉綆楁硶銆傚皢綆楁硶灝佽鍦ㄧ嫭绔嬬殑Strategy綾伙紝鍙互浣垮緱綆楁硶鐙珛浜嶤ontext鏀瑰彉錛屽鏄撳垏鎹㈡墿灞曘?br>3. 鍙互鎻愪緵鐩稿悓琛屼負鐨勪笉鍚屽疄鐜般?br>4. 瀹㈡埛绔繀欏諱簡瑙trategy涔嬮棿鏈変綍涓嶅悓銆?br>5. Context鍜孲trategy涔嬮棿鐨勯氫俊寮閿銆?br>6. 澧炲姞浜嗗璞$殑鏁扮洰銆?/p>
3. MVC鍦?Web緋葷粺涓殑搴旂敤 3.1 View鍦╓eb緋葷粺涓殑搴旂敤 3.3 Controller鍦╓eb緋葷粺涓殑搴旂敤 4. 緇撴潫璇?/strong> ² 涓嬩竴涓皢鎵ц鐨勬柟娉曟槸AddParsedSubObject鏂規硶錛岃繖涓柟娉曞皢娣誨姞鎵鏈夌嫭绔嬬殑鎺т歡騫舵妸欏甸潰緇勬垚涓涓帶浠墮泦鍚堟爲錛岃繖涓柟
娉曠粡甯歌涓浜涢珮綰х殑欏甸潰妯℃澘瑙e喅鏂規(Page Template Solutions)閲嶅啓浠ヤ究娣誨姞欏甸潰鍐呭鍒伴〉闈㈡ā鏉匡紙Page
Template錛変腑涓浜涚壒孌婄殑鎺т歡涓傝繖涓柟娉曢掑綊搴旂敤鍒版墍鏈夌殑欏甸潰鎺т歡鍙婄浉搴旂殑鐨勬瘡涓瓙鎺т歡錛屾墍鏈夌殑鎺т歡閮芥槸鍦ㄨ繖涓柟娉曚腑寮濮嬫渶鏃╃殑鍒濆鍖栥?/p>
² 欏甸潰綾諱腑涓嬩竴涓皢鎵ц鐨勬柟娉曟槸DeterminePostBackMode銆傝繖涓柟娉曞厑璁告偍淇敼IsPostBack鐨勫煎強鐩稿叧鐨勪簨浠躲傚鏋滄偍
闇瑕佷粠鏁版嵁搴撲腑鍔犺澆ViewState榪欎釜鏂規硶灝嗙壒鍒湁鐢紝鍥犱負ViewState鍙湁鍦↖sPostBack涓虹湡鐨勬儏鍐典笅鎵嶄細榪涜鎭㈠銆傝繑鍥炵┖灝嗕細瀵艱嚧
寮哄埗鎵ц闈炲洖浼狅紝榪斿洖Request.Form鍒欏己鍒舵墽琛屼竴涓洖浼犮傞櫎闈炲湪鐗規畩鎯呭喌涓嬶紝鍚﹀垯騫朵笉寤鴻鍘繪搷浣滆繖涓紝鍥犱負榪欎釜榪樹細褰卞搷鍏朵粬鐨勪簨浠躲?/p>
² 涓嬩竴涓皢瑕佹墽琛岀殑鏂規硶鏄疧nInit鏂規硶錛屼竴鑸繖鏄涓涓湡姝h浣跨敤鐨勬柟娉曘傝繖涓柟娉曡Е鍙戞椂錛屾墍鏈夐〉闈㈠畾涔変腑鐨勬帶浠舵墽琛屽垵濮嬪寲錛岃繖鎰忓懗鐫鎵鏈夊湪
欏甸潰涓畾涔夌殑鍊煎簲鐢ㄥ埌鐩稿簲鐨勬帶浠朵笂銆備笉榪囷紝ViewState鍜屼紶鍥炵殑鍊艱繕涓嶄細搴旂敤鍒版帶浠朵笂錛屽洜姝わ紝浠諱綍琚唬鐮佹垨鐢ㄦ埛鏀瑰彉鐨勫艱繕娌℃湁琚仮澶嶅埌鎺т歡涓娿傝繖涓?
鏂規硶閫氬父鏄渶濂界殑鍒涘緩銆侀噸鍒涘緩鍔ㄦ佹帶浠剁殑濂藉湴鏂廣?br>l 鎭㈠鍙婂姞杞?br>² 涓嬩竴涓柟娉曪紝
LoadPageStateFromPersistenceMedium鍙細鍦ㄩ〉闈㈣鍥炰紶鐨勬椂鍊欐墠浼氳鎵ц銆傚鏋滃洜涓轟嬌鐢⊿ession鎴栬嚜瀹氫箟瀛樺偍鏂?
寮忥紝鎮ㄤ慨鏀逛簡鍚庨潰灝嗚鎻愬埌鐨勫獎鍝峍iewState淇濆瓨鏂瑰紡鐨勬柟娉昐avePageStateToPersistenceMedium錛屽垯榪欎釜鏂規硶闇瑕佽
閲嶅啓銆傞粯璁ょ殑瀹炵幇涓璙iewState鏄竴縐岯ase64鏍煎紡緙栫爜錛屽茍涓旇淇濆瓨鍦ㄩ〉闈㈢殑闅愯棌鍩熶腑錛屾偍鍙互浣跨敤榪欑瘒鏂囩珷涓彁鍙婄殑鏂規硶淇敼ViewState
鎸変互涓婁袱縐嶆柟寮忎繚瀛樸傛敞鎰忥細榪欎釜鏂規硶騫舵病鏈夌湡姝e姞杞絍iewState鍒伴〉闈㈡垨欏甸潰鎺т歡涓?/p>
² 褰撳緱鍒癡iewState鍚庯紝涓嬩竴涓柟娉昄oadViewSate錛屽皢浠ラ掑綊鐨勬柟寮忔仮澶峍iewState鍒伴〉闈㈠強鍚勪釜欏甸潰鎺т歡鎴栧瓙鎺т歡涓傝繖
涓柟娉曟墽琛屽悗錛屾瘡涓帶浠墮兘灝嗘仮澶嶅埌涓婁竴嬈$殑鐘舵侊紝浣嗘槸鐢ㄦ埛鎻愪氦鐨勬暟鎹繕娌℃湁搴旂敤鍒版帶浠朵笂錛屽洜涓轟粬浠笉鏄疺iewState鐨勪竴閮ㄥ垎銆傝繖涓柟娉曚富瑕佺敤浜庢仮澶?
鎮ㄥ湪鍏朵粬浜嬩歡涓姩鎬佺敓鎴愮殑鎺т歡鐨勫鹼紝浠栦滑鐨勫兼槸鎮ㄦ墜鍔ㄤ繚瀛樺湪ViewSate涓紝騫朵笖鐜板湪宸茬粡澶辨晥銆?/p>
² 涓嬩竴涓柟娉曟槸ProcessPostData錛岃繖涓柟娉曚篃鍚屾牱鏄洖浼犵殑鏃跺欐墠浼氳鎵ц錛屽茍涓斾笉鍏佽琚噸鍐欙紝榪欎釜鏄〉闈㈠熀綾葷殑縐佹湁鏂規硶銆傝繖涓柟娉?
閫氳繃鍖歸厤鎺т歡鐨勫悕縐版仮澶嶇浉搴旂殑鐢ㄦ埛鎻愪氦鐨勬帶浠剁殑鍊鹼紝鍒拌繖涓姝ユ剰鍛崇潃鏁翠釜欏甸潰閮藉凡緇忚瀹屽叏鎭㈠浜嗐傚敮涓瑕佽浣忕殑鏄墍鏈夊姩鎬佹帶浠剁殑鍒涘緩蹇呴』鍦ㄨ繖涓柟娉曚箣鍓嶃傝繖
涓柟娉曚篃鏄褰曞悗闈㈢殑鏀瑰彉浜嬩歡鐨勬柟娉曘?/p>
² 涓嬩竴涓柟娉曟槸OnLoad鏂規硶錛岄氬父榪欐槸鐢ㄥ緱鏈澶氱殑鏂規硶錛屽洜涓鴻繖涓柟娉曟槸欏甸潰鐢熷瓨鏈熺涓涓仮澶嶄簡鎵鏈夊肩殑鍦版柟銆傚ぇ澶氭暟浠g爜鏍規嵁鍒ゆ柇
IsPostBack鏉ュ喅瀹氭槸鍚﹂噸鏂拌緗帶浠剁姸鎬併傛偍涔熷彲浠ュ湪榪欎釜鏂規硶涓皟鐢╒alidate騫朵笖媯鏌sValid鐨勫箋備篃鍙互鍦ㄨ繖涓柟娉曚腑鍒涘緩鍔ㄦ佹帶
浠訛紝騫朵笖璇ユ帶浠剁殑鎵鏈夌殑鏂規硶閮戒細琚墽琛屼互榪戒笂褰撳墠欏甸潰鐨勭姸鎬佸寘鎷琕iewSate錛屼笉榪囦笉鍖呮嫭鍥炰紶鐨勫箋?br>l 浜嬩歡澶勭悊 ² 涓嬩竴涓柟娉曪紝RaiseChangedEvents錛屼篃鏄彧鍦ㄥ洖浼犻〉闈腑鎵ц錛屽茍涓斾篃鍥犱負鏄熀綾葷殑縐佹湁鏂規硶鎵鏈変笉鑳借緇ф壙銆傚湪鏁翠釜欏甸潰鐢熷瓨鏈?
涓紝鏄湪榪欏効鏍規嵁涔嬪墠鐨凱rocessPostData璁板綍鐨勬帶浠剁殑鍊煎拰鎻愪氦鐨勫兼槸鍚︿笉鍚屾潵瑙﹀彂鍊兼敼鍙樹簨浠躲傛偍涔熻闇瑕佽皟鐢╒alidate鎴栬呮鏌?
IsValid鐨勫箋傝繖閲屽茍娌℃湁鐗瑰埆鐨勮鏄庡涓兼敼鍙樹簨浠剁殑鎵ц鍏堝悗欏哄簭銆?/p>
² 涓嬩竴涓柟娉曪紝RaisePostBackEvent錛屽悓鏍鋒槸鍥犱負鏄熀綾葷殑縐佹湁鏂規硶涓嶈兘琚戶鎵匡紝鍚屾牱涔熸槸鍙湪鍥炰紶欏甸潰涓墽琛屻傞櫎闈炰嬌鐢ㄤ簡
AutoPostBack錛屼笉鐒惰繖鏄疄闄呮彁浜よ〃鍗曚簨浠舵墽琛岀殑鍦版柟錛岀壒鍒槸鎸夐挳鎴栬呭叾瀹炰嬌鐢╦avascript鎻愪氦琛ㄥ崟絳夈傚鏋滆繕娌℃湁琚墜鍔ㄨ皟鐢ㄨ繃騫朵笖浣?
鐢ㄤ簡楠岃瘉鎺т歡錛岄偅涔圴alidate浼氳璋冪敤銆傛敞鎰廔E涓湁涓狟UG鏈夋椂浼氬厑璁告彁浜や絾鍗翠笉瑙﹀彂浠諱綍浜嬩歡銆?/p>
² 涓嬩竴涓柟娉曟槸OnPreRender錛屼竴鑸繖鏄湪瀹㈡埛绔睍鐜伴〉闈箣鍓嶆敼鍙橀〉闈㈠強鍏舵帶浠剁殑鏈鍚庝竴嬈℃満浼氥傛偍涔熷彲浠ュ湪榪欎釜鏂規硶閲岄潰鍒涘緩鍔ㄦ佹帶浠訛紝騫?
涓旀墍鏈夌殑鏂規硶閮戒細琚墽琛屼互榪戒笂褰撳墠欏甸潰鐨勭姸鎬佸寘鎷琕iewSate錛屼絾鏄鏈夋柟娉曞皢涓嶄細琚墽琛岋紝榪欐剰鍛崇潃涓嶄細鏈夊洖浼犵殑鍊煎茍涓斾笉浼氭湁浜嬩歡瑙﹀彂銆傜敱浜嶪E涓殑
BUG錛岃繖鏄竴涓病鏈変簨浠惰刀涓奝ostBack鐨勫ソ鍦版柟銆?br>l 淇濆瓨鍙婃樉紺?br>² 涓嬩竴涓柟娉曟槸SaveViewState錛屼笉璁烘槸鍚︽槸鍥炰紶欏?
闈紝鍧囦細閫掑綊鐨勬墽琛屼互淇濆瓨欏甸潰鍙婂叾鎵鏈夋帶浠剁殑ViewState銆俈iewState鍩烘湰涓婁繚瀛樻墍鏈変笌瀹氫箟鍦╝spx涓殑鍘熷鍊間笉鍚岀殑鍊鹼紝涓嶇鏄浠g爜榪?
鏄敤鎴鋒墍鏀瑰彉銆傛敞鎰忔帶浠跺兼槸鏍規嵁浠栦滑鍦ㄩ〉闈㈢殑鎺т歡鏍戜腑鐨勪綅緗潵淇濆瓨鐨勶紝鎵浠ュ鏋滃姩鎬佹帶浠跺悗鏉ュ姞鍒頒簡閿欒鐨勪綅緗皢浼氬鑷存販涔便?/p>
² 涓嬩竴涓柟娉曟槸SavePageStateToPersistenceMedium鐪熸鐨勪繚瀛橀〉闈㈢殑ViewSate銆傝繖涓柟娉曢殢鍚?
LoadPageStateFromPersistenceMediumg
涓璧瘋閲嶅啓浠ヤ究淇濆瓨ViewState鍒癝ession鎴栧叾瀹冭嚜瀹氫箟鏁版嵁錛岃屼笉鏄敤闅愯棌鍩熴傝繖瀵逛簬浣庡甫瀹界殑鐢ㄦ埛鏉ヨ鏄緢鏈夊府鍔╃殑銆傚茍涓斿浜庣Щ鍔ㄨ澶囨潵璇達紝
Session鏄粯璁よ緗備笅闈㈣繖綃囨枃绔犳弿榪頒簡浣跨敤浠ヤ笂涓ょ鏂瑰紡淇濆瓨ViewState鐨勫叿浣撶粏鑺傘傛敞鎰忓湪Asp.net涓湁涓狟ug錛欰sp.net瑕?
姹傚繀欏繪彁浜_viewstate瀛楁錛屽嵆浣挎槸絀虹殑銆?/p>
² 涓嬩竴涓柟娉曟槸Render鏂規硶錛岃鏂規硶閫掑綊鐨勫垱寤哄茍鍙戦佺浉搴旀帶浠剁殑html緇欐祻瑙堝櫒銆傝繖涓柟娉曡涓浜涢〉闈㈡ā鏉挎柟妗堥噸鍐欎互娣誨姞涓浜涢氱敤鐨勯〉闈㈠ご涓?
鑴氳屼笉浣跨敤鏈嶅姟鍣ㄦ帶浠訛紝浠栦滑鎬繪槸鏈変竴浜涢澶栫殑涓滆タ銆傛敞鎰忚繖鍎跨殑淇敼鍙兘浣跨敤綰疕TML錛屽洜涓烘帶浠跺湪榪欏効宸茬粡琚敓鎴愪簡銆傛偍鍙互鐢?
StringBuilder錛孲tringWriter錛孒tmlTextWriter鎹曡幏鐩稿簲鐨凥TML杈撳嚭銆?/p>
² 鏈鍚庣殑鏂規硶鏄疧nUnload錛岃繖涓柟娉曚細璋冪敤鐩稿簲鐨凞ispose鏂規硶銆傝繖涓柟娉曟彁渚涙満浼氫互渚挎竻絀鴻欏甸潰涓嬌鐢ㄧ殑闈炴墭綆¤祫婧愶紝濡傚叧闂墦寮鐨勬枃
浠跺彞鏌勶紝浠ュ墠鎵撳紑鐨勬暟鎹簱榪炴帴絳夈傛敞鎰忚繖涓柟娉曟槸鍦ㄩ〉闈㈠凡緇忓彂閫佸埌瀹㈡埛绔互鍚庢墽琛岀殑錛屾墍浠ュ畠鍙湁褰卞搷鏈嶅姟鍣ㄥ璞★紝騫朵笖瀹冧笉浼氭樉紺哄湪欏甸潰鐨勬樉紺鴻建榪逛腑銆傝繖灝?
鏄〉闈㈢殑鐢熷瓨鏈燂紝瀵逛簬姣忎竴嬈¤姹傞兘鏄繖涔堣繍琛岀殑銆?br>l 浣滆呯畝浠?鐣? 琛?錛氶〉闈簨浠舵葷粨
鐧借尪灞炲井鍙戦叺鑼訛紝鏄垜鍥藉叚澶х被鑼跺彾涓殑涓棰楃拃鐠ㄦ槑鐝狅紝涓浗鏄櫧鑼剁殑鎯熶竴浜у湴銆傜櫧鑼剁殑鍝佽川鐗瑰緛涓猴細鎴愯尪鎶弧鐧芥錛屽崄鍒嗙礌闆咃紝姹よ壊娓呮貳錛屽懗椴滈唶銆佹竻鐢溿佹湁姣銆傚熀鏈姞宸ュ伐鑹烘祦紼嬫槸钀庤皟銆佹檼騫叉垨浣庢俯鐑樺共銆傚洜閲囩敤椴滃彾鍘熸枡涓嶅悓錛屾晠鍙垎涓猴細鐧芥閾墮拡銆佺櫧鐗′腹銆佽礎鐪夈佸鐪夊強鏂板伐鑹虹櫧鑼朵簲縐嶃傜敓浜х櫧鑼跺鍝佺鍜屽姞宸ュ伐鑺よ姹傚崄鍒嗕弗鏍鹼紝閫傚埗鐧借尪鐨勮尪鏍戝搧縐嶄負錛氱榧庡ぇ鐧借尪銆佺榧庡ぇ姣尪銆佹斂鍜屽ぇ鐧借尪鍜岄椊鍖楁按浠欑瓑銆傜櫧鑼舵槸鎴戝浗鍘嗗彶鍚嶈尪錛屽叾涓諱駭鍖哄湪紱忓緩鐪佺榧庡競銆佹斂鍜屽幙錛屽緩闃熾佸緩鐡瓑鍘垮競涔熸湁灝戦噺鐢熶駭銆傛嵁鑼跺彾鍙叉枡璁拌澆錛岀櫧鑼墮鍒涗簬紱忓緩鐪佺榧庡幙錛屽張鎹寤虹渷鍦版柟蹇楃紪濮斾細鍑虹増鐨勩婄寤哄湴鏂瑰織銆嬪拰鐜頒唬鑼跺彾钁楀悕涓撳寮犲ぉ紱忔暀鎺堢殑銆婄寤虹櫧鑼剁殑璋冩煡鐮旂┒銆嬪強娓呬唬鏄庝漢鍛ㄤ寒宸ャ婇椊灝忚銆嬬殑璁拌澆錛屾竻鍠滃簡鍒濆勾錛堝叕鍏?796騫達級錛岀榧庝漢鐢ㄨ彍鑼訛紙鏈夋х兢浣撶錛夌殑澹娊涓哄師鏂欙紝鍒涘埗鐧芥閾墮拡銆傚湪1857騫達紝紱忛紟澶х櫧鑼惰尪鏍戝搧縐嶄粠澶Д灞辯Щ妞嶅埌紱忛紟鍘跨偣澶淬佹煆鏌崇瓑鍦伴夎偛鎴愬姛錛岀敱浜庣榧庡ぇ鐧借尪鑺藉.銆佹鏄俱侀楂橈紝鎵鍒剁櫧姣摱閽堝鍨嬪搧璐ㄨ繙榪滀紭浜?#8220;鑿滆尪”銆備簬鏄榧庤尪浜烘敼鐢ㄧ榧庡ぇ鐧借尪鐨勫.鑺戒負鍘熸枡鍒墮?#8220;鐧芥閾墮拡”錛屽嚭鍙d環楂樹簬鍘熻彍鑼跺姞宸ョ殑閾墮拡錛堝悗鏉ョО鍦熼拡錛?0澶氬嶃傜害鍦?860騫達紝“鍦熼拡”閫愭笎閫鍑?#8220;鐧芥閾墮拡”鐨勫巻鍙茶垶鍙般傛嵁銆婄寤哄湴鏂瑰織銆嬭杞斤紝鏀垮拰鍘?880騫撮夎偛綣佹畺鎴愬姛“鏀垮拰澶х櫧鑼?#8221;鍝佺錛?889騫村紑濮嬩駭鍒墮摱閽堛備袱鍦扮敓浜ч摱閽堟椂闂寸浉璺濈害80澶氬勾銆傛諱箣錛岀櫧鑼剁被涓槸鍏堟湁“閾墮拡”錛屽悗鎵嶆湁鐧界墶涓廣佽礎鐪夈佸鐪夛紝鑷充簬鏂板伐鑹虹櫧鐗′腹錛屾槸浜屽崄涓栫邯70騫翠唬鐢卞師紱忛紟鑼跺巶鐧界惓鍒嗗巶鐮斿埗鐨勪竴涓柊鐨勭櫧鑼朵駭鍝併傛墍浠ヨ錛岀櫧鑼朵箣鎵浠ヨ兘鑷垚涓綾伙紝鏄洜鍏跺叿鏈夌嫭鐗圭殑浜у湴錛堝尯鍩燂級銆佺嫭鐗圭殑鍝佺鍜岀嫭鐗圭殑鍔犲伐宸ヨ壓錛岀寮鍏朵腑浠諱綍涓涓洜绱犻兘鐢熶駭涓嶅嚭濂借尪銆傚悓鏃訛紝鐢熶駭鐧借尪鍏鋒湁寰堝ぇ鐨勯闄╂э紝琛ㄩ潰涓婄湅鍔犲伐宸ヨ壓浜屽崄綆鍗曪紝浣嗗叾鍐呭湪鐨勬妧鏈棰嗕簩鍗佷笉鏄撴帉鎻°?
澶╁北緇胯尪
澶╁北緇胯尪鏄寤虹渷鐨勫巻鍙插悕鑼訛紝涓洪椊涓滅儤闈掔豢鑼剁殑鏋佸搧銆傚搧璐ㄧ壒浼橈紝灝ゅ叾鏄噷銆佷腑銆佸澶╁北鎵浜х殑緇胯尪鍝佽川鏇翠匠錛岀О涔?#8220;姝eぉ灞辯豢鑼?#8221;銆?
鎹婂畞寰峰幙蹇椼嬭杞斤紝澶╁北緇胯尪鏇劇粡鍘嗕竴孌靛彉闈╂紨鍖栬繃紼嬨傚畫浠g敓浜у洟鑼躲侀ゼ鑼訛紝涔熺敓浜т鉤鑼躲侀緳鍥㈣尪銆傚埌浜嗗厓銆佹槑浠g敓浜?#8220;鑼墮ゼ”錛屼緵浣滅ぜ鍝佸拰紲鍝併傚叕鍏?781騫村墠鍚庯紝澶╁北鎵浜х殑鑺借尪宸茶鍒椾負璐″搧銆傛槑銆佹竻浠ュ悗錛屼互鐢熶駭鐐掗潚鏉″艦鑼朵負涓匯傚嚑緇忓彉闈╋紝鍒頒簡1979騫達紝鎵嶆敼鍒朵負鐑橀潚鍨嬬豢鑼訛紝鎴愪負楂樻。鑺辮尪鐨勪紭璐ㄥ師鏂欍傚巻鍙蹭笂錛屽ぉ灞辯豢鑼惰姳鑹插搧縐嶄赴瀵屽褰╋紝鑰屼粖錛岄櫎灝戞暟鑺辮壊鍝佺澶變紶澶栵紝澶у鏁頒紶緇熻姳鑹插搧縐嶏紝濡傚ぉ灞遍泙鑸屻佸嚖鐪夈佹槑鍓嶃佹竻鏄庣瓑鍧囧緱鍒版仮澶嶏紝騫跺垱鍒朵簡鏂扮殑鍝佺錛屽娓呮按緇褲佸ぉ灞辨瘺宄般佸ぉ灞遍摱姣佸洓瀛f槬銆佹瘺灝栫瓑銆傝繖浜涚豢鑼朵互閿嬭嫍鎸虹銆侀楂樸佸懗嫻撱佽壊緲犮佽愭場浜斿ぇ鐗圭偣璧㈠緱浜嗚崳瑾夈備粠1979騫存仮澶嶇敓浜т互鏉ワ紝鏇懼嬈″湪鍦般佺渷鍙婂叏鍥藉悕鑼惰瘎閫変細涓婅幏濂栵紝鍚嶅垪鍓嶈寘銆傚ぉ灞遍摱姣寜鑾夎姳鑼跺湪鍏ㄥ浗鍐呴攢鑺辮尪璇勬瘮浼氫笂錛屽悕鍒楃涓銆?982騫淬?986騫翠簩嬈¤璇勪負鍏ㄥ浗鍚嶈尪錛屽晢涓氶儴鎺堜簬鍏ㄥ浗鍚嶈尪鑽h獕璇佷功銆?
澶╁北浣嶄簬涓滄搗涔嬫花錛屽ぉ灞變富宄扳斺斿睆鍗楀ぉ婀栧北錛屽憊绔嬪湪紱忓緩鐪佸睆鍗椼佸畞寰楓佸彜鐢頒笁鍘夸氦鐣岀殑灞忓崡榛涙邯涔°傞櫎澶╂箹灞卞錛岃繕鏈夊ぉ宄板北銆佷粰宄板北銆佸ぇ鍧北絳夊北鑴夛紝鏄ぉ灞辯豢鑼剁殑鍘熶駭鍦般傝繖閲屽北宄伴櫓宄伙紝嫻鋒嫈1300綾沖乏鍙籌紝鏋楁湪鍙傚ぉ錛屼簯嫻風炕婊氾紝姘斿欐俯鍜岋紝騫村潎姘旀俯15鈩冨乏鍙籌紝騫撮檷闆ㄩ噺1900姣背宸﹀彸錛屽湡澹よ偉娌冩箍娑︼紝澶氫負緇撴瀯鐤忔澗鐨勭爞璐ㄥ¥鍦熴傝尪鏍戝鐢熼暱鍦ㄥ博闂村拰灞卞潯涓婏紝鏍戝.鑺借偉錛屾槸閫傚埗澶╁北緇胯尪鐨勭悊鎯沖師鏂欍傞毦鎬瘲浜鴻禐閬擄細“娣卞北濂囩煶宓敞绔嬶紝宄¤胺鎮礀鍛寵尪棣?#8221;銆?
澶╁北緇胯尪閲囩敤鐨勫師鏂欏洜鑺辮壊鍝佺涓嶅悓鑰屽紓銆傚闆鑸屽拰鍑ょ湁絳変紶緇熺弽鍝侊紝閫夌敤鍙惰川鑲ュ帤銆佹寔瀚╂у己鐨勫ぉ灞辮彍鑼跺搧縐嶇殑鑺藉彾涓哄師鏂欍傞噰鎽樻爣鍑嗕負涓鑺戒竴鍙跺拰涓鑺戒簩鍙跺垵灞曘傚埗500鍏嬪共鑼剁害闇3涓囦釜宸﹀彸鑺藉彾銆傛柊鍒涘埗鐨勫悕鑼跺娓呮按緇跨瓑錛屽垯閫夊彇澶с佷腑鍙剁鐨勮娊鍙朵負鍘熸枡錛岄噰鎽樻爣鍑嗕互涓鑺戒簩鍙跺垵灞曚負涓伙紝鍒?00鍏嬪共鑼墮渶7000涓乏鍙寵娊鍙躲?
澶╁北緇胯尪瀹炵幇浜嗘満姊板寲鐢熶駭銆備富瑕佽澶囨湁榪炵畫婊氱瓛鐢電儹鎭掓俯鏉闈掓満錛?0鍨嬫垨45鍨嬫弶鎹繪満錛岃嚜鍔ㄧ櫨鍙剁儤騫叉満絳夈傚姞宸ュ伐鑹烘湁鍑夐潚銆佹潃闈掋佹弶鎹匯佺儤騫詫紙姣涚伀鍜岃凍鐏級鍥涢亾宸ュ簭銆傛潃闈掓帉鎻?#8220;楂樻俯銆佹帶鐑佸皯閲忋佺煭鏃?#8221;鐨勬柟娉曘傜瓛娓?40锝?60鈩冿紝鐢電儹鎺у埗錛屽墠楂樺悗浣庛傝搗閿呮憡鍑夋暎鐑悗鍐嶈鎻夋嵒銆傛弶鎹繪椂閲囩敤“灝忔満銆侀傞噺銆佽交鍘嬨佺煭鎻?#8221;鐨勬妧鏈帾鏂斤紝杈懼埌鏉$儲绱х粨銆佽壊娉界繝緇褲侀鍛蟲竻椴滅殑鐩殑銆?0鍨嬫弶鎹繪満鎶曞彾閲?錛?锝?0鍏枻錛?5鍨嬫弶鎹繪満鎶曞彾閲?0锝?2錛?鍏枻銆傝漿閫?5杞珻鍒嗐傜儤騫叉瘺鐏帉鎻?#8220;钖勬憡銆侀珮娓┿佸揩鐑?#8221;鐨勫師鍒欍傝凍鐏帉鎻′綆娓╂參鐑橈紝杈懼埌騫插害鍐呭鍧囧寑涓鑷達紝棣欓珮鑰岄矞鐖界殑鐩殑銆傛瘺鐏儤娓?15鈩冨乏鍙籌紝鍚按閲?5锝?0錛呫傝凍鐏儤婀?0锝?5鈩冿紝鍚按閲?錛呭乏鍙熾?
澶╁北緇胯尪鍏鋒湁“涓夌豢”鐗硅壊錛屽嵆鑹叉辰緲犵豢錛屾堡鑹茬ⅶ緇匡紝鍙跺簳瀚╃豢錛屼笖澶栧艦鏉$儲瀚╁寑銆侀攱鑻楁尯縐銆佽尭姣樉闇詫紝棣欎技鐝犲叞鑺遍錛岃姮鑺抽矞鐖斤紝婊嬪懗嫻撳帤鍥炵敇錛岀姽濡傛柊椴滄﹦姒勶紝姹よ壊娓呮緢鏄庝寒錛岀粡娉¤愰ギ錛屽啿娉?锝?嬈★紝鑼跺懗鐘瑰瓨銆傞ギ涔嬪菇棣欏洓婧紝榻塊鐣欒姵錛屼護浜哄績鏃風鎬?br>
紱忛紟鐧界惓宸ュか鑼?br>"鐧界惓宸ュか鑼?鍏呭垎鍙戞尌紱忛紟澶х櫧鑼剁殑鐗圭偣錛岀簿閫夌粏瀚╄娊鍙訛紝鍒舵垚宸ュか鑼訛紝澶栧艦鏉$儲绱х粨綰ょ錛屽惈鏈夊ぇ閲忕殑姍欓粍鐧芥錛屽叿鏈夐矞鐖芥剦蹇殑姣錛屾堡鑹層佸彾搴曡壋涓界孩浜紝鍙栧悕涓恒屾綰€嶏紝鎰忎負妗斿瓙鑸孩鑹崇殑宸ュか錛岄鏍肩嫭鐗癸紝鍦ㄥ浗闄呭競鍦轟笂寰堝彈嬈㈣繋銆?br>"鐧界惓宸ュか鑼?緋誨皬鍙剁綰㈣尪錛屽綋鍦扮妞嶇殑灝忓彾緹や綋縐嶅叿鏈夎尭姣涘銆佽悓鑺芥棭銆佷駭閲忛珮鐨勭壒鐐癸紝涓鑸殑鐧界惓宸ュか錛屽褰㈡潯绱㈢粏闀垮集鏇詫紝鑼告澶氬憟棰楃矑緇掔悆鐘訛紝鑹叉辰榛勯粦錛屽唴璐ㄦ堡鑹叉祬浜紝棣欐皵椴滅函鏈夋棣欙紝鍛蟲竻椴滅敎鍜岋紝鍙跺簳椴滅孩甯﹂粍銆?br>"鐧界惓宸ュか"涓轟笁澶ч椊綰㈠伐澶箣涓錛屼互鍏剁嫭鐗歸鏍煎拰鍝佽川鐩涘叴鐧懼勾鑰屼笉琛般傜櫧鐞沖姛澶尪閲囩敤紱忛紟澶х櫧鑼朵唬鏇垮師鏈夌殑灝忓彾縐嶏紝鎴愪負鍔犲伐鐧界惓鍔熷か鐨勪富瑕佸師鏂欙紝浣垮叾璐ㄩ噺鏈変簡鏄捐憲鐨勬彁楂樸傚畠鐨勫搧璐ㄧ壒寰侊紝鍑犱箮浠h〃鐧界惓鍔熷か楂樼駭鑼剁殑鐙壒椋庢牸錛屽湪鍥介檯甯傚満涓婂緢鍙楁榪庛備富瑕佺壒鐐規槸錛氭潯绱㈢揣緇擄紝鑼舵鏄鵑湶閲戦粍鑹詫紝騫茶尪鑹叉辰涔屾鼎娌逛寒錛屾堡鑹茬孩鑹蟲槑浜紝鍙跺簳綰寒錛屾粙鍛抽矞嫻撻唶鐖斤紝棣欐皵娓呴珮錛屾湁鐗規畩鐨勮姳棣欙紝鑰愬啿娉★紝鏃㈤傚悎娓呴ギ錛屽張閫傚悎鎺哄拰鐮傜硸銆佺墰濂躲?br>
紱忛紟鑾插績鑼?
鑾插績鑼跺艦浼艱幉瀛愮摚蹇冭屽緱鍚嶏紝涓烘垜鍥戒紶緇熷悕鑼躲備駭浜庣寤虹渷澶Д灞遍簱鐨勭榧庣櫨鐞沖拰闇炴鄲姘撮棬銆傚お濮ュ北鏅壊縐涓斤紝宕栨灄涔嬮棿鑼舵爲涓涗富銆傜浉浼狅紝鏃╁湪鍏夌華騫撮棿錛屽お濮ュ北楹撶殑鐧界惓涓甯︼紝鑼舵爲宸插箍涓虹妞嶃傚埌浜嗘湰涓栫邯錛擄紣騫翠唬錛岃幉蹇冭尪浠ヨ尪涓弽鍝侀椈鍚嶆搗鍐呭銆傜敤鑾插績鑼剁鍒舵垚鑼夎帀濞ョ湁銆佽寜鑾夌鐪夛紝涓鴻姳鑼朵腑鐨勪郊浣艱咃紝娣卞彈涓滃崡浜氫鯨鑳炵殑鍠滅埍銆?br>
鑾插績鑼墮噰鍙栫榧庡ぇ鐧借尪鐨勪竴鑺戒簩鍙朵負鍘熸枡銆傜粡钀庡噵銆佹潃闈掋佹弶鎹匯佸共鐕ョ瓑鍥涢亾宸ュ簭鍔犲伐鑰屾垚銆?br>
钀庡噵錛氱洰鐨勫湪浜庤捀鍙戦儴鍒嗘按鍒嗭紝淇冧嬌鑺藉彾鍐呭惈鐗╁彂鐢熼傚害鐨勫彉鍖栵紝娑堥櫎鎴愬搧鐨勮嫤娑╁懗銆傚綋鍦扮殑緇忛獙鏄悗鍑嬪簲鎺屾彙閫傚綋鐨勯檺搴︼紝钀庡噵紼嬪害榪囪交杈句笉鍒拌悗鍑嬬殑鐩殑錛涜悗鍑嬬▼搴﹁繃閲嶏紝鍗沖け姘磋繃澶氾紝鍐呭惈鐗╄川鍙樺寲榪囧ぇ錛屽潎涓嶅埄鑾插績鑼跺搧璐ㄧ殑褰㈡垚銆傞氬父錛岃娊鍙跺噺閲嶇巼鎺у埗鍦紤錛橈紖宸﹀彸錛屾椂闂達紪锝烇紭灝忔椂銆傚綋鍙惰壊杞負鏆楃豢錛屽彾鐨勪晶鑴夋姌鑰屼笉鏂紝鎶樻灝氳兘鑴嗘柇錛屽彾璐ㄦ煍杞紝鍗充負閫傚害銆?br>
鏉闈掞細鎵嬪伐鏉闈掞紝鍏ㄧ敤鎶栫倰銆傚仛鍒版姈寰楁暎錛岀炕寰楀寑銆傛潃闈掗攨娓╋紤錛橈紣鈩冨乏鍙籌紝鎶曞彾閲忥紤錛曪紣錛愬厠宸﹀彸錛屽綋鍙跺瓙鏉炬暎涓嶇矘鎵嬶紝娓呴閫忛湶鍗充負閫傚害銆?br>
鎻夋嵒錛氭潃闈掑彾緇忔憡鍑夊喎鍗村悗榪涜鎻夋嵒銆傝揪鍒拌尪绱㈡尯鐩寸揣緇撶殑鐩殑銆?br>
騫茬嚗鍒嗘瘺鐏拰瓚崇伀涓や釜榪囩▼銆傛瘺鐏湪鐑樼涓婅繘琛岋紝鐑樻俯錛欙紣锝烇紤錛愶紣鈩冿紝姣忕鎶曞彾閲忥紤錛曪紣錛愬厠宸﹀彸錛岀儤鑷充竷銆佸叓鎴愬共涓洪傚害銆傝凍鐏湪鐐掗攨鍐呰繘琛岋紝閿呮俯錛橈紣鈩冨乏鍙籌紝鐐掕嚦瓚沖共錛岃壊鐣ユ樉鐏頒負閫傘?br>
鑾插績鑼剁殑鍝佽川鐗圭偣鏄紝澶栧艦緇嗙揣綰ょ錛岄攱鑻楁樉闇詫紝鑹叉辰緇夸腑甯﹂粍錛屾湁浼艱幉瀛愯晩鑹詫紝棣欐皵娓呭菇錛屽惈緇胯眴娓呴錛屽懗閱囬矞鐖斤紝姹よ壊姍欑豢娓呮緢錛屽彾搴曞鍖鎴愭湹銆傛場鍦ㄦ澂涓紝涓ゅ彾鐩稿鑰屽紑錛屼腑闂寸珫涓鑺藉績錛岀姽濡傝幉瀛愮摚蹇冿紝棰囨湁鎯呰叮銆?br>
紱忓畨鍧︽磱宸ュか綰㈣尪
銆銆鍧︽磱宸ュか鍒嗗竷杈冨箍錛屼富浜х瀹夈佹煒鑽c佸瀹併佸懆瀹併侀湠嫻﹀強灞忓崡鍖楅儴絳夊湴銆傚潶媧嬪伐澶簮浜庣瀹夊鍐呯櫧浜戝北楹撶殑鍧︽磱鏉戯紝鐩鎬紶娓呭捀涓般佸悓娌誨勾闂?鍏厓1851 --1874騫?錛屽潶媧嬫潙鏈夎儭紱忓洓(鍙堝悕鑳¤繘鍥?鑰咃紝璇曞埗綰㈣尪鎴愬姛錛岀粡騫垮窞榪愰攢瑗挎銆傚緢鍙楁榪庯紝姝ゅ悗鑼跺晢綰風悍鍏ュ北姹傚競錛屾帴韙佃屾潵騫惰媧嬭錛屽懆鍥村悇鍘胯尪鍙朵害娓愪簯闆嗗潶媧嬶紟鍧︽磱宸ュか鍚嶅0涔熷氨涓嶈儷鑰岃蛋錛岃嚜鍏夌華鍏勾 鑷蟲皯鍥戒簩鍗佷簲騫?鍏厓1881鈥?936騫?鐨?0浣欏勾錛?鍧︽磱宸ュか姣忓勾鍑哄彛鍧囦笂涓囨媴錛屽叾涓?898騫村嚭鍙?涓囦綑緇勩?br>
銆銆鍧︽磱琛楅暱涓鍏噷錛岃鑼惰杈?6瀹訛紝闆囧伐3000浣欎漢錛屼駭閲?涓囦綑鎷呫傛敹鏉¤寖鍥翠笂鑷蟲斂鍜屽幙鐨勬柊鏉戯紝涓嬭嚦闇炴鄲鍘跨殑璧ゅ箔錛屾柟鍦嗘暟鐧鵑噷錛屽璺ㄤ竷銆佸叓涓幙錛屾垚涓虹瀹夌殑涓昏綰㈣尪浜у尯銆傝繍閿鑽峰叞銆佽嫳鍥姐佹棩鏈佷笢鍗椾簹絳変簩鍗佷綑涓浗瀹朵笌鍦板尯錛屾瘡騫存敹澶栨眹鑼墮摱鐧句綑涓囧厓銆傚綋鏃舵皯璋氫簯錛?#8220;鍥藉澶у叴錛岃尪鎹㈤粍閲戯紝鑸規硦榫欏嚖妗ワ紝 鐧介摱鐢ㄦ枟閲忋?#8221;鍚庡洜鎶楁棩鎴樹簤鐖嗗彂錛岄攢璺彈闃伙紝鐢熶駭浜﹂伃涓ラ噸鐮村潖錛屽潶媧嬪伐澶駭閲忛攼鍑忋?br>
銆銆50騫翠唬涓湡錛屼負浜嗘仮澶嶅拰鎻愰珮鍧︽磱宸ュか綰㈣尪鐨勪駭閲忓拰鍝佽川錛屽厛鍚庡緩绔嬩簡鍥借惀鍧︽磱銆佹按闂ㄧ孩鑼跺垵鍒跺巶鍜岀瀹夎尪鍘傦紝瀹炶鏈烘鍖栧埗鑼訛紝寮曡繘騫剁箒孌栫榧庡ぇ鐧借尪銆佺瀹夊ぇ鐧借尪銆佺浜戠瓑浼樿壇鑼舵爲鍝佺錛?960騫翠駭閲忓鍔犲埌5涓囨媴錛屽垱鍘嗗彶鏈楂樻按騫熾傚悗鍥犺尪綾誨竷灞鐨勫彉鏇達紝鐢?#8220;綰?#8221;鏀?#8220;緇?#8221;錛屽潶媧嬪伐澶皻瀛樻棤鍑犮傝繎騫存潵錛岀粡鏈夊叧閮ㄩ棬鐨勫姫鍔涳紝鍧︽磱宸ュか鍙堟湁鎵鎭㈠鍜屽彂灞曪紝1988騫翠駭閲忚揪8000浣欐媴銆?br>
銆銆鍧︽磱宸ュか澶栧艦緇嗛暱鍖鏁達紝甯︾櫧姣紝鑹叉辰涔岄粦鏈夊厜錛屽唴璐ㄩ鍛蟲竻椴滅敎鍜岋紝姹ら矞鑹沖憟閲戦粍鑹詫紝鍙跺簳綰㈠寑鍏夋粦銆傚叾涓潶媧嬨佸瀹併佸懆瀹佸北鍖烘墍浜у伐澶尪錛岄鍛抽唶鍘氾紝鏉$儲杈冧負鑲ュ.錛屼笢鍗椾復嫻風殑闇炴鄲涓甯︽墍浜у伐澶尪 鑹查矞浜紝鏉″艦縐涓姐?/div>
]]>
鍘熸枃錛歍hinking in Web 2.0: Sixteen Ways
浣滆咃細Dion Hinchcliffe
URL:http://sd.csdn.net/n/20060518/90603.html
1銆佸湪浣犲紑濮嬩箣鍓嶏紝鍏堝畾涓涓畝鍗曠殑鐩爣銆傛棤璁轟綘鏄竴涓猈eb 2.0搴旂敤鐨勫垱寤鴻呰繕鏄敤鎴鳳紝璇鋒竻鏅扮殑鏋勬濅綘鐨勭洰鏍囥傚氨鍍?#8220;鎴戦渶瑕佷繚瀛樹竴涓功絳?#8221;鎴栬?#8220;鎴戝噯澶囧府鍔╀漢浠垱寤哄彲緙栬緫鐨勩佸叡浜殑欏甸潰”榪欐牱鐨勭洰鏍囷紝璁╀綘淇濇寔鏈鍩虹鐨勯渶姹傘傚緢澶歐eb 2.0搴旂敤鐨勬渶鍒濆惛寮曚箣澶勫氨鏄畠鐨勭畝鍗曪紝閬垮厤騫墮殣钘忎簡閭d簺澶氫綑鐨勫鏉傛с傜珯鍦ㄥ垱寤鴻呯殑绔嬪満錛屽彲浠ユ兂璞oogle鐨勫嚑涔庢病鏈夊唴瀹圭殑涓婚〉錛岃繕鏈塪el.icio.us鐨勭畝鍗曠殑綰挎潯銆備粠鏈緇堢敤鎴風殑瑙掑害鏉ョ湅錛屼笌涔嬮綈鍚嶇殑灝辨槸Diggdot.us鎵鎻愪緵鐨勫垵濮嬪寲欏甸潰銆備綘鑳藉騫朵笖甯屾湜鍔犲叆鏇村鍔熻兘錛屼絾鏄厛鍋氬ソ鏈寮濮嬬殑銆傚湪涓涓椂鍊欏彧鍋氫竴涓壒鎬э紝瀹屾垚涓涓洰鏍囥傝繖鍚搗鏉ュ緢澶繃浜庡崟綰寲浜嗭紝浣嗗畠灝嗕嬌浣犳洿鍔犱笓娉紝鑰屼笖浣犱篃浼氭槑鐧芥垜鐨勬剰鎬濄?br>
2銆侀摼鎺ユ槸鏈鍩虹鐨勬濇兂銆傝繖灝辨槸鎴戜滑縐頒箣涓篧eb鐨勪竴涓悊鐢便傞摼鎺ユ槸鎶奧eb涓悇縐嶅疄浣撹繛鎺ヨ搗鏉ョ殑鏈鍩烘湰鐨勫厓绱犮備綘鐨勪俊鎭佷綘鐨勫叧緋匯佷綘鐨勫鑸紝鐢氳嚦鏄兘澶熻鍐欐垚URL鐨勪換浣曞唴瀹廣傝繖閲屾湁涓涓摼鎺ュ簲璇ラ伒寰殑瑙勫垯錛堝叾瀹炰綘涔熶笉蹇呬弗鏍肩殑閬靛畧錛夛細
??? 1. Web涓婄殑浠諱綍涓滆タ閮芥槸鍙互琚玌RI鎴栬呮槸URL鎵榪炴帴鐨勩?br>??? 2. 鎶婃墍鏈夌殑閾炬帴閮戒繚瀛樹負浠栫殑鍘熷鍑哄錛岃繖鏍峰彲浠ヨ浣犱笌浠諱綍浜恒佸湪浠諱綍鍦版柟銆佷換浣曟椂鍊欓兘鑳藉垎浜畠銆?br>??? 3. 絎簩鏉′腑浠諱綍鏃跺欑殑鍓嶆彁鏄摼鎺ュ繀欏繪槸鎸佷箙鐨勶紝瀹冧笉浼氬湪娌℃湁浠諱綍緙樼敱鐨勬儏鍐典笅琚敼鍙樻垨鑰呮槸娑堝け銆?br>??? 4. 閾炬帴搴旇鏄漢綾誨彲璇葷殑銆佺ǔ瀹氱殑銆佸茍涓旇兘澶熻嚜鎴戣癄閲婄殑銆?
3銆佹暟鎹簲璇ュ睘浜庡垱寤哄畠鐨勪漢銆傛槸鐨勶紝浣犲惉鎴戠殑銆備換浣曠敤鎴峰垱寤虹殑銆佽礎鐚殑鎴栧垎浜殑閮芥槸浠栦滑鑷繁鐨勶紝闄ら潪浠栦滑寰堟槑鏄劇殑鏀懼純榪欎釜鏉冨姏鏉ヨ浣犺嚜鐢卞緗備粬浠礎鐚埌Web涓婄殑浠諱綍淇℃伅閮藉簲璇ユ槸鍙紪杈戠殑銆佽兘琚垹闄ょ殑銆佸茍涓旇兘澶熷彇娑堝叡浜紝鏃犺鍦ㄤ換浣曟椂鍊欙紝鍙鐢ㄦ埛鎰挎剰銆傝繖涔熷寘鍚簡閭d簺闂存帴鐨勬暟鎹紝鍍忎粬浠墍鍏沖績鐨勮褰曘佹棩蹇椼佹祻瑙堝巻鍙層佺綉绔欒闂俊鎭紝鎴栬呮槸浠諱綍鍙互琚窡韙殑淇℃伅銆傛墍鏈夌殑緗戠珯蹇呴』娓呮櫚綆鍗曠殑闄堣瘔閭d簺淇℃伅鏄敤鎴峰垱寤虹殑錛屽茍涓旀彁渚涗粬浠仠姝㈠垱寤虹殑鏂規硶錛岀敋鑷蟲槸娓呴櫎鐨勬柟娉曘?br>
4銆佹暟鎹紭鍏堬紝浣撻獙涓庡姛鑳藉叾嬈°傛棤璁哄畠鏄枃鏈佸浘鐗囥侀煶棰戣繕鏄棰戯紝Web鏈緇堣繕鏄妸榪欎簺瑙f瀽涓烘暟鎹傛崲鍙ヨ瘽璇達紝浣犳棤娉曡劚紱繪暟鎹幓鍛堢幇鍐呭銆傛墍鏈夎繖浜涙暟鎹兘閫氳繃閭d簺鏄撲簬鍙戠幇鐨刄RL鏉ュ畾浣嶏紙鍙傝絎?鏉★級銆傞氳繃鍙︿竴縐嶅艦寮忔潵鐪嬪緟榪欎簺錛學eb鏈緇堟槸鍚嶈瘝浼樺厛錛屽姩璇嶅叾嬈★紝铏界劧鏈榪戞鍦ㄥ悜鍔ㄨ瘝鍋忕Щ銆傛潵鐪嬬湅鍚嶈瘝鐨勪緥瀛愶細鏃ュ巻鐨勬潯鐩佸搴収鐗囥佽偂紲ㄤ環鏍箋傝繕鏈変竴浜涘姩璇嶇殑渚嬪瓙錛氬畾涓涓害浼氥佸叡浜竴寮犲浘鐗囥佷拱涓浠借偂紲ㄣ?br>
5銆佸仛濂界Н鏋佸垎浜竴鍒囩殑鍑嗗銆傚敖鍙兘鐨勫垎浜竴鍒囷紝浣犳墍鎷ユ湁鐨勬墍鏈夋暟鎹紝浣犳墍鎻愪緵鐨勬墍鏈夋湇鍔°傞紦鍔變笉閬靛驚鍘熸湁鎰忓浘鐨勪嬌鐢紝鎻愬¤礎鐚紝涓嶈閭d簺闇瑕佸垎浜殑鍐呭鍧氭寔璁劇疆涓虹鏈夌殑銆傚湪鍒嗕韓涓庡彂鐜頒箣鍚庯紝鎻愪緵鏄撲簬浣跨敤鐨勬祻瑙堟柟寮忔槸鏄捐屾槗瑙佺殑闇姹傘備負浠涔堝憿錛氳瘽璇村洖鏉ワ紝浣犱細浠庡埆浜虹殑鍏變韓涔嬩腑鍙楃泭鍖祬銆傛敞鎰忥細榪欓噷娌℃湁璁稿彲璁╀綘鍘諱鏡鐘増鏉冧繚鎶ょ殑娉曞緥錛屼綘涓嶈兘澶熷幓鍒嗕韓浣犲埢褰曠殑DVD鎴栬呮槸鎷ユ湁鍟嗕笟鐗堟潈闊充箰錛屽洜涓轟綘宸茬粡鍚屾剰涓嶄細鍘誨垎浜繖浜涗笢瑗褲備絾鏄綘鍙互鍙戠幇騫跺垎浜偅浜涘畬鍏ㄥ紑鏀劇殑濯掍綋鍐呭銆備竴涓皬灝忕殑寤鴻錛屼綘鍙互瀛︿範涓涓婥reative Commons license錛堝叡鍒涘崗璁級.
6銆乄eb鏄竴涓鉤鍙幫紱瑕佽瀹冩垚闀褲傚綋鐒訛紝鎴戜滑榪樻湁寰堝鍏朵粬鐨勫鉤鍙幫紙Windows銆丩inux銆丮ac錛夛紝浣嗘槸閭d簺宸茬粡涓嶆槸閲嶇偣浜嗐傛崲鍙ヨ瘽璇達紝Web鏄棤娉曡劚紱葷殑騫沖彴錛屼笉浼氫腑鏂殑騫沖彴錛屼綘鍙互閫氳繃鍚勭鏂瑰紡鍘繪墿灞曠殑騫沖彴銆備綘鍦╓eb涓婃彁渚涚殑鏁版嵁涓庢湇鍔″皢浼氭垚涓篧eb涓閮ㄥ垎錛屾渶緇堜綘浼氬湪Web騫沖彴鐨勬煇涓澶勬壆婕斾綘鐨勮鑹層傛壆婕斿ソ浣犵殑瑙掕壊騫剁収欏懼ソ鍚庢潵鑰呫?br>
7銆佺悊瑙d笌淇″“闃舵鎬?#8221;銆傜幇鍦ㄧ殑Web瓚婃潵瓚婂ぇ錛屽嚑涔庤敁寤跺埌浜嗗叏涓栫晫鐨勬墍鏈夊浗瀹訛紝騫朵笖宸茬粡鎷ユ湁浜?0浜跨敤鎴楓傛垜鐨勮鐐規槸Web鐨勫悇涓粍鎴愰儴鍒嗗瓨鍦ㄧ潃緇嗗井鐨勫尯鍒拰涓嶅悓錛屽氨鍍忎笉鍚屽湴鏂圭殑鐢ㄦ埛閭f牱銆備緥濡俉eb鐨勮璁¢儴鍒嗭細鏄撶敤鎬ф案榪滀紭鍏堜簬閫熷害銆佸彲闈犳с侀噸鐢ㄦт笌鍙泦鎴愭с備綘涔熷簲璇ユ彁渚涘悓鏍風殑浣撻獙緇欎綘鐨勭敤鎴楓傚畠宸茬粡琚竴嬈″張涓嬈$殑琚漢浠湪鏂囨。涓己璋冿紝蹇犺瘹鐨勭敤鎴峰緢蹇細鎴愪負涓撲笟鐨勭敤鎴鳳紝浠栦滑鏈熷緟鏇村揩鐨勯熷害榪樻湁鏇村銆傞涓姝ユ敮鎸佷粬浠傚悓鏍鳳紝涔熸湁寰堝寰堝鐨勭敤鎴蜂細榪涘叆榪欎釜闃舵鐨勫簳绔紝濡備綘鎵鏈熷緟鐨勯偅鏍楓備粬浠彲鑳戒笉浼氳浣犵殑璇█錛屼笉鐔熸倝浣犵殑鏂囧寲錛岀敋鑷充笉鐭ラ亾鏄浣曞埌榪欓噷鐨勩傛墍浠ヤ綘闇瑕佸悜浠栦滑琛ㄨ揪娓呮銆?br>
8銆佷換浣曚笢瑗塊兘鏄彲緙栬緫鐨勩傛垨鑰呮槸瀹冨簲璇ヨ緙栫粐鐨勬洿濂姐傝紜畾鐨勬槸錛屽彧鏈夊緢灝戠殑涓滆タ鏄笉鑳借緙栬緫鐨勶紝鍓╀笅鐨勯兘鍙互錛岃繖鏄竴涓彲鍐欑殑Web銆傝繖騫朵笉鎰忓懗鐫鍘熷鍐呭鐨勪涪澶憋紝鑰岄氬父琚悊瑙d負鐢ㄦ埛鑳藉寰堝鏄撶殑瀵瑰唴瀹瑰姞浠ヨ瘎璁猴紝鎴栬呰瘎娉ㄥ唴瀹規槸鍦ㄩ偅閲屽彂鐜扮殑銆傚鏋滀綘瀵規搴旂敤鐨勫ソ錛屼粬浠兘澶熸瘮浣犳墍鎯寵薄鐨勫仛鐨勬洿澶氾紙鎶婂唴瀹逛覆璧鋒潵騫朵笖緇欎簣鍘熷鍐呭鏉ュ垱寤鴻嚜宸辯殑錛岀瓑絳夛級銆?br>
9銆乄eb涓婄殑韜喚鏄鍦g殑銆備笉騫哥殑鏄紝榪欏茍涓嶆剰鍛崇潃浣犺兘澶熷緱鍒版洿澶氱殑闅愮錛堣繖瀹屽叏鏄笂涓笘綰殑鎯蟲硶錛夈備絾瀵硅韓浠界殑楠岃瘉鏄繀瑕佺殑錛屼綘搴旇鎰熻阿閭d簺鍙渶涓涓偖浠跺湴鍧灝辮兘紜畾浣犺韓浠界殑鏈嶅姟銆傝繖鎰忓懗鍙浣犲浣犵殑鐢ㄦ埛鎵胯浜嗭紝浣犲氨蹇呴』淇濊瘉浠栦滑鐨勯殣縐佸畨鍏ㄣ傚繀瑕佺殑鏃跺欙紝鍦ㄨ繖涓笘鐣岀殑鏌愬浣犺繕寰椾負浣犵殑鐢ㄦ埛鎸鴻韓鑰屽嚭錛屽悜褰撳湴鐨勬潈濞佹寫鎴樸傚鏋滀綘娌℃湁鎵撶畻閭f牱鍋氾紝浣犲氨寰楁妸瀹為檯鎯呭喌鍛婅瘔浣犵殑鐢ㄦ埛銆傚彟涓鏂歸潰錛屽鏋滆韓浠芥槸蹇呴』鐨勶紝涓嶈璇曞浘浼瀹冿紝涓嶇劧鍦ㄦ煇涓澶╂垜浠皢浼氬湪Web涓婃斁寮冩垜浠殑鏈鍚庝竴鐐圭偣闅愮鐨勬潈鍒┿?br>
10銆佷簡瑙f祦琛岀殑鏍囧噯騫朵笖浣跨敤浠栦滑銆備粠涓涓秷璐硅呮垨鑰呮槸鍒涗綔鑰呯殑绔嬪満鏉ョ湅錛屾暟鎹皢浼氫互涓嶅悓鐨勬牸寮忎笌浠諱綍涓涓漢浜ゆ崲銆傚悓鏃惰繖鏍風殑鏁版嵁涔熶細鍙嶈繃鏉ヤ績榪涙爣鍑嗙殑瀹屽杽涓庨噰綰熾傝繖閫氬父鎰忓懗鍍廟SS銆?OPML銆乆HTML銆丼imple XML銆丣SON絳夌畝鍗曟爣鍑嗙殑嫻佽錛岃岄伩鍏峉OAP銆乆SD錛岃繕鏈塕DF銆丄TOM涔熶竴鏍鳳紝浣跨敤瀹冧滑浼氱粰鎴戠殑鍐呭績甯︽潵鐥涜嫤銆傝浣犱篃涓轟綘鎵閽熺埍鐨勬爣鍑嗘姇涓婁竴紲ㄦ潵鏀寔瀹冧滑銆?br>
11銆侀伒寰棤鎰忎嬌鐢ㄧ殑瑙勫緥銆傚鏋滀綘鎶婇潪甯告湁瓚g殑鏁版嵁鍜屾湇鍔$敤騫挎硾浣跨敤鐨勬牸寮忓紑鏀懼拰鍏變韓鍑哄幓錛屼綘灝嗕細寰楀埌浣犳墍搴斿緱鐨勶紝鍏朵粬浜轟篃灝嗕細鍩轟簬浣犵殑閭d竴鍧梂eb騫沖彴鏉ユ瀯寤恒傛垨璁歌繕浼氫粠鍒漢閭i噷寰楀埌鏇村錛屾墍浠ヤ負榪欎釜鍋氫竴涓嬪噯澶囨瘮杈冨ソ銆傛垜宸茶涓嶆竻鏈夊灝戞鎴戠湅鍒頒竴涓挱瀹紙podcasting錛夋湇鍔″洜涓烘祦琛岃繃娓¤屽鑷存湇鍔″灝鎺夛紝灝辨槸鍥犱負浠栦滑琚?Slashdot鍜宒el.icio.us緇欐敹褰曚簡銆傝繖涓鐐硅鐭ラ亾錛氱綉緇滀笂鐨勫ぇ閲忓寲鎰忓懗鐫濡傛灉涓涓唴瀹歸潪甯告湁瓚o紝鍗充嬌鏄竴涓緢灝忕殑瑙掕惤涔熶細寰楀埌鎯婁漢鐨勮闂噺銆傞紦鍔變嬌鐢ㄨ繖縐嶆柟寮忥紝瀹冭繕鏄潪甯告湁浠峰肩殑錛屽墠鎻愭槸浣犺鏈夋墍鍑嗗銆?br>
12銆佺矑鍖栦綘鐨勬暟鎹笌鏈嶅姟銆傛垜浠簲璇ュ湪寰堟棭浠ュ墠灝辨槑鐧借繖浜涳紝澶ц妯¢泦鎴愮殑鏁版嵁浠呬粎閫傜敤浜庢棤闇綆$悊鐨勪笅杞戒笌鎵歸噺鎿嶄綔銆傚垎瑙d綘鐨勬暟鎹紝璁╀粬浠嫭绔嬫垚鍙弿榪扮殑URL鍦板潃錛屽浣犵殑鏈嶅姟涔熶竴鏍楓傚弽榪囨潵璇達紝浣犱笉瑕佸垱寤轟竴浜涘法澶х殑銆佸鏉傜殑銆佸儚鍦h癁鏍戦偅鏍風殑鏁版嵁緇撴瀯鍜屾湇鍔°備繚鎸佺畝鍗曪紝瑕侀潪甯哥殑綆鍗曘傝榪欎簺鍒嗙鐨勭墖鏂兘澶熷鏄撶殑琚噸緇勫拰鍙戠幇銆?br>
13銆佹彁渚涚敤鎴瘋兘澶熷崟鐙彈鐩婄殑鏁版嵁鍜屾湇鍔°傛笎娓愪緷璧栦簬榪欑紺句細鍖栧弬涓庢槸瀛樺湪椋庨櫓鐨勶紝浣犻渶瑕佽浣犵殑鐢ㄦ埛鏈変竴鐐圭偣鍔ㄦ満鏉ヨ礎鐚椂闂淬佺儹鎯呭拰淇℃伅錛岄櫎闈炰粬浠兘澶熺洿鎺ュ彈鐩娿傜ぞ浼氬寲鍒嗕韓姣斾釜浣撹涓虹殑鍒╃泭澶у緢澶氾紝闄ら潪浣犺兘澶熸縺鍙戠敤鎴風殑涓漢鍔ㄦ満錛屽惁榪欎綘灝嗘棤娉曚韓鍙楄繖浠藉帤紺箋?br>
14銆佽鐢ㄦ埛緇勭粐騫惰繃婊や俊鎭備笉涓瀹氭槸蹇呴』鐨勶紝浣嗗嵈鏄潪甯擱噸瑕佺殑銆傝鐢ㄦ埛浠ヤ粬浠嚜宸辯殑鏂瑰紡鏉ユ爣娉ㄥ拰緇勭粐鏁版嵁錛屽洜涓轟綘鑷繁鏄案榪滄棤娉曞強鏃剁殑澶勭悊浠栦滑鐨勩傜敤鎴蜂細鎸夌収浠栦滑鑷繁鐞嗚В鐨勬渶浣蟲柟寮忔潵澶勭悊騫舵瀯寤恒傝淇濊瘉浣犵殑Web鏈嶅姟鑳藉鎸夌収鐢ㄦ埛鎵闇鎵鎯崇殑鏂瑰紡鏉ュ伐浣溿傝繖涔熸槸鏍囩錛坱agging錛夊拰閫氫織鍒嗙被錛坒olksonomies 錛夌殑鏂瑰紡濡傛鎴愬姛鐨勪富瑕佸洜绱犮?br>
15銆佹彁渚涗赴瀵岀殑鐢ㄦ埛浣撻獙銆俉eb涓鐩撮兘鍦ㄥ拰鏈湴鐨勫簲鐢ㄧ▼搴忚繘琛岀潃嬋鐑堢殑绔炰簤銆備負浠涔堬紵鍥犱負鏈湴紼嬪簭榪樻槸鎰熻涓婂ソ涓浜涳紝閫熷害涔熷揩涓浜涖備絾鏄繖涓嶄細闀夸箙鐨勶紙紜俊鍦?騫存垨鑰?5騫村悗錛岃繖縐嶇珵浜夊氨涓嶅瓨鍦ㄤ簡錛夈傛槸鐨勶紝鎴戝湪璋堣Rich Internet Applications, Ajax, 榪樻湁閭d簺涓嶅彲鎬濊鐨勪氦浜掑簲鐢ㄣ備粬浠Web鎴愪負浜嗕竴涓湡姝g殑“鏃犲鉤鍙?#8221;鐨勫鉤鍙幫紝濡傛灉浣犵煡閬撴垜鏄庝箞鎯崇殑銆?br>
16銆佷俊濂夊茍鏀寔蹇熸敼榪涘拰鍙嶉銆傝繖涓氬父鎰忓懗鐫鍔犲揩姝ヤ紣錛屼絾涔熸剰鍛崇潃浣跨敤杞婚噺綰х殑宸ュ叿銆佹妧鏈拰涓嶈鍋氬嚭閭d簺閫傚緱鍏跺弽鐨勭棝鑻﹀喅瀹氾紙渚嬪浣跨敤涓涓灞傚眰鐜粫鐨凙jax妗嗘灦鏉ヤ唬鏇垮彲浠ラ氳繃娣峰悎鏉ュ疄鐜扮殑錛屾垨鑰呯敤C++鏉ユ瀯寤烘墍鏈夌殑涓滆タ錛屽叾瀹炰嬌鐢≧uby浼氭洿濂戒竴浜涳級銆傝繖鍚屾椂涔熸剰鍛崇潃闇瑕佷竴涓潪甯稿揩閫熺殑鏂瑰紡鏉ュ鐞嗛敊璇姤鍛婏紝淇Bug錛岄噴鏀炬柊鐗堟湰銆備粠涓涓敤鎴風殑瑙掑害鏉ョ湅錛屾姤鍛婁綘鎵鍙戠幇鐨勪換浣曢棶棰橈紝榪樻湁閭d簺浣犵粡甯告姳鎬ㄧ殑鍦版柟錛岀敋鑷抽偅浜涢兘涓嶆槸涓涓狟ug銆?br>
褰撶劧錛學eb 2.0鏄竴涓瀬鍏跺箍娉涘拰娣卞ゥ鐨勮瘽棰橈紝娌℃湁涓涓漢鑳藉鍒椾婦鍑哄畠鐨勬墍鏈夐噸鐐瑰拰鐗瑰緛銆傚鏋滀綘瀵規鍏呮弧浜嗗叴瓚o紝璇瘋姳涓鐐規椂闂存潵琛ュ厖鎴戞病鏈夋彁鍒扮殑鍦版柟銆傛垜鎯寵繖灝辨槸Web 2.0鐨勫弬涓庢у惂錛?nbsp;
]]>
]]>
涓嶅垢錛屽畨瑁呬簡firefox鍚庯紝瀹夎VS2005錛孷S榪涜web璋冭瘯鏃跺氨鐢ㄤ簡firefox鑰屼笉鏄痠e,榪欏簲璇ユ槸榛樿嫻忚鍣ㄦ悶鐨?/p>
- <BrowserInfo>
- <Browser>
<Name>firefox.exe</Name>
<Path>"F:\PROGRA~1\MOZILL~1\FIREFOX.EXE"</Path>
<Resolution>0</Resolution>
<IsDefault>False</IsDefault>
</Browser>
- <Browser>
<Name>Microsoft Internet Explorer</Name>
<Path>"C:\Program Files\Internet Explorer\iexplore.exe"</Path>
<Resolution>0</Resolution>
<IsDefault>True</IsDefault>
- <DDE>
<Service>IExplore</Service>
<TopicOpenURL>WWW_OpenURL</TopicOpenURL>
<ItemOpenURL>"%s",,0xffffffff,3,,,,</ItemOpenURL>
<TopicActivate>WWW_Activate</TopicActivate>
<ItemActivate>0xffffffff,0</ItemActivate>
</DDE>
</Browser>
- <InternalBrowser>
<Resolution>0</Resolution>
<IsDefault>False</IsDefault>
</InternalBrowser>
</BrowserInfo>
鎴栬呯洿鎺ュ垹闄ゆ鏂囦歡
]]>
瀵逛簬搴旂敤紼嬪簭鑰岃█錛屾湁涓ょ綾誨瀷鐨処O璋冪敤錛氬嵆鍚屾IO
涓庡紓姝O銆傚叾鏈川鐨勫尯鍒槸錛氬悓姝O浼歜lock褰撳墠鐨勮皟鐢ㄧ嚎紼嬶紝鑰屽紓姝O鍒欏厑璁稿彂璧稩O璇鋒眰鐨勮皟鐢ㄧ嚎紼嬬戶緇墽琛岋紝絳夊埌IO璇鋒眰琚鐞嗗悗錛屼細閫氱煡璋冪敤
綰跨▼銆傚湪windows騫沖彴涓婏紝搴旂敤紼嬪簭鍙互璋冪敤CreateFile API,
騫墮氳繃璁劇疆FILE_FLAG_OVERLAPPED鏍囧織鏉ュ喅瀹氭槸鍚﹀彂璧峰紓姝O璇鋒眰銆?br> 瀵逛簬寮傛鐨処O璇鋒眰錛屽叾鏈澶х殑濂藉鏄細鎱㈤熺殑IO璇鋒眰鐩稿浜庡簲鐢ㄧ▼搴忚岃█鏄紓姝ユ墽琛岋紝榪欐牱鍙互鏋佸ぇ鎻愰珮搴旂敤紼嬪簭鐨勫鐞嗗悶鍚愰噺銆傚彂璧稩O璇鋒眰鐨勫簲鐢ㄧ▼搴忛渶瑕佸叧蹇冪殑鏄疘O鎵ц瀹屾垚鐨勭粨鏋滐紝鑰屼笉蹇呭繖絳塈O璇鋒眰鎵ц鐨勮繃紼嬨?br>
浜嬪疄涓婏紝鏃犺瀵逛簬鍚屾IO錛岃繕鏄紓姝O,褰揑O璇鋒眰鍙戦佸埌device driver鍚庯紝device
driver鐨勬墽琛屾繪槸寮傛鐨?褰撳畠鎺ュ埌IO璇鋒眰涔嬪悗錛屾諱細椹笂榪斿洖緇橧O System銆傝孖O
System鏄惁绔嬪嵆榪斿洖緇欒皟鐢ㄧ嚎紼嬶紝鍒欏彇鍐充簬FILE_FLAG_OVERLAPPED鏍囧織鐨勮緗?濡備笅鍥撅細
浜屻佸紓姝O鐨勫悓姝ラ棶棰樸?br>
鎴戜滑浣跨敤寮傛IO錛屾槸涓轟簡鎻愰珮搴旂敤紼嬪簭鐨勫鐞嗗悶鍚愰噺銆備絾鏄紝褰撳紓姝O涓嶅啀寮傛鏃訛紙鏃犺浣犳槸鍚﹁緗瓼ILE_FLAG_OVERLAPPED鏍囧織錛夛紝搴旂敤
紼嬪簭鐨勬ц兘浼氬彈鍒版瀬澶х殑褰卞搷銆傛牴鎹甅icrosoft Knowledge Base 156932,
鍦ㄤ笅鍒楀嚑縐嶆儏鍐典笅錛屽紓姝O浼氬け鍘誨畠鐨勫紓姝ユэ紝鑰岃〃鐜板嚭鍚屾鐨勬ц川錛?br>1錛夊鏋滄枃浠朵嬌鐢ㄤ簡NTFS compression鍘嬬緝錛屽垯system driver涓嶄細寮傛鍦板瓨鍙栬繖鏍風殑鏂囦歡銆?br>2錛夋墿灞曟枃浠墮暱搴︾殑IO鎿嶄綔涓嶄細鏄紓姝ユ搷浣溿?br>3錛塁ache鏈哄埗銆傚鏋淚O鎿嶄綔浣跨敤浜唂ile system cache錛屽垯榪欐牱鐨処O鎿嶄綔浼氳褰撴垚鍚屾IO,鑰岄潪寮傛IO銆?br>鍗充嬌浣犱嬌鐢ㄤ簡FILE_FLAG_OVERLAPPED鏍囧織銆傚湪榪欑鎯呭喌涓嬶紝
a.濡傛灉闇瑕佽鍙栫殑鏁版嵁宸茬粡鍦–ache閲岋紝閭d箞I/O drivers浼氳涓鴻繖鏍風殑IO璇鋒眰鍙互琚珛鍗沖鐞嗭紝鍏剁粨鏋滄槸ReadFile 鎴栬匴riteFile璋冪敤榪斿洖TRUE錛岃〃紺烘槸錛氬悓姝ュ鐞嗗畬鎴愩?br>b.
濡傛灉闇瑕佽鍙栫殑鏁版嵁涓嶅湪Cache閲岋紝windows NT鐨刦ile
system鏄嬌鐢╬age-faulting鏈哄埗鏉ュ疄鐜癱ache綆$悊錛岃宲age-faulting鎬繪槸琚悓姝ュ鐞嗭紝 Windows
NT娌℃湁鎻愪緵寮傛鐨刾age-faulting鏈哄埗銆傜殑紜紝 file system
driver浣跨敤浜嗙嚎紼嬫睜鏉ョ紦瑙h繖涓闂錛屼絾鏄紝褰撳簲鐢ㄧ▼搴忓彂璧風殑IO璇鋒眰瓚沖澶氭椂錛岀嚎紼嬫睜榪樻槸涓嶈兘搴斾粯鐨勩?br> 鍦ㄦ垜浠紑鍙戝熀浜庡紓姝O搴旂敤紼嬪簭鏃訛紝搴旇閬垮厤涓婅堪闂鐨勫嚭鐜幫紝鍥犱負瀹冧滑浼氫嬌紼嬪簭鐨勬ц兘澶ф墦鎶樻墸銆?br>閭d箞錛屽浜嶤ache,鎴戜滑濡備綍閬垮厤鍛紵絳旀鏄細璇蜂嬌鐢‵ILE_FLAG_NO_BUFFERING鏍囧織銆傝繖涓爣蹇椾細浣垮紓姝O鐪熷疄鍦板紓姝ユ墽琛屻?br>涓夈佹ц兘鐨勬祴璇曟暟鎹紙浠呬緵鍙傝冿級銆?br> 鎴戝湪鎴戠殑鏈哄櫒涓婏紝綆鍗曞湴瀵逛嬌鐢‵ILE_FLAG_NO_BUFFERING鏍囧織鐨勫紓姝O,涓庝笉浣跨敤FILE_FLAG_NO_BUFFERING鏍囧織鐨勫紓姝O榪涜浜嗗姣斻?br>鎿嶄綔錛氶『搴忚鍙?G鐨勬枃浠躲?br>x杞磋〃紺猴細姣忔璇誨彇鐨勫瓧鑺傛暟錛堝崟浣嶏細K/姣忔錛?br>Y杞磋〃紺猴細璇誨彇瀹屾垚鎵闇瑕佺殑鏃墮棿銆傦紙鍗曚綅錛歮illisecond)
娉ㄦ剰錛氭瘡嬈℃祴璇曡鍙栫殑鍐呭鎬繪暟鏄浉絳夌殑錛?000M錛夈?br>渚嬪錛氬鏋滄瘡嬈¤鍙?28k,鍒欓渶瑕佽鍙?000嬈?128k*8000 = 1000M)銆?br>濡傛灉姣忔璇誨彇256k,鍒欓渶瑕佽鍙?000嬈?256k*4000 = 1000M)銆?
綺夌孩鑹茬殑綰挎病鏈変嬌鐢‵ILE_FLAG_NO_BUFFERING鏍囧織,鑰岄粍鑹茬殑綰夸嬌鐢ㄤ簡FILE_FLAG_NO_BUFFERING鏍囧織銆?/p>
1) 褰撲嬌鐢‵ILE_FLAG_NO_BUFFERING鏍囧織錛屽簲鐢ㄧ▼搴忕殑鎬ц兘浼氭瀬澶ф彁楂橈紝澶ф鏈?0%鐨勬彁楂樸?br>2錛?
鍦ㄤ嬌鐢ㄥ紓姝O鐨勬椂鍊欙紝榪樻湁涓涓敞鎰忕殑闂鏄細褰撲綘姣忔璇誨彇鐨勫瓧鑺傛暟澧炲ぇ鐨勬椂鍊欙紝鎬ц兘涔熶細鎻愰珮銆傚挨鍏跺湪灝忎簬1024k鏃訛紝褰撳澶ф璇誨彇鐨勫瓧鑺傛暟錛屾ц兘閮芥湁
鏄庢樉鐨勬彁楂樸傚湪娣峰悎浜嗙綉緇滀紶杈撶瓑澶嶆潅鍥犵礌鐨勫簲鐢ㄧ▼搴忓紑鍙戣繃紼嬩腑錛屽緩璁皢璇ュ艱緗負鍙厤緗殑鍙傛暟錛岄氳繃璋冩暣璇ュ弬鏁幫紝浣夸綘鐨勫簲鐢ㄨ揪鍒版渶濂界殑鎬ц兘銆?br>
]]>
榪?鎴蜂漢瀹舵兂浠庝竴鍏辮繖25鍙附瀛愪腑鎸戝嚭椋炵殑鏈蹇殑鍓?鍙附瀛愩?br>
澶у閫夊畾浜嗕竴涓嚭鍙戠偣鍜屽埌杈劇偣錛屾瘡嬈″彧鑳芥斁椋?鍙附瀛愶紝鍦ㄨ繖鏍鋒儏鍐典笅鍙互鐪嬪埌姣忔浠庡嚭鍙戝湴鍒扮洰鐨勫湴5鍙附瀛愬埌杈劇殑鍏堝悗欏哄簭錛屼絾鏄病鏈夎鏃跺櫒鏉ヨ綆楁椂闂淬?br>
娉?棰樼洰涓笉瑕佽冭檻楦藉瓙浣撹兘錛屾槸鍚﹀寑閫燂紝鏄惁鐩寸嚎椋炶絳夌瓑鎯呭喌錛屽彲浠ョ悊鎯寵瀹氶熷害鍧囧寑鑰屼笖紼抽熴?br>==============================================
璇烽棶錛?br>A)鍦ㄧ‘淇濊兘鎸戝嚭25鍙附瀛愪腑椋炵殑鏈蹇殑5鍙殑鍓嶆彁涓嬶紝鏈灝戦渶瑕佸灝戞姣旇禌錛堟瘡嬈″彧鑳?鍙級鑳戒繚璇佽兘鎸戝嚭鏈蹇殑5鍙?br>
B)鎬庢牱姣旇禌錛?br>
]]>
浜嬫儏鍙笉鏄兘閭d箞欏?瀹夎鍚庤繍琛屼竴鍒囨甯?嬈e枩.....鑺變簡鎴戝ソ澶氭椂闂?
浣嗕笉榪囧涔?鍦ㄤ笅涓嬈″紑鏈哄悗,瀹冪艦宸ヤ簡! 鎻愮ずDI.DLL鎵句笉鍒? 澶氭榪愯榪樻槸濡傛! 鎯抽兘涓嶆兂,閲嶈! 鍙堟槸涓闃電瓑寰?..
鍐嶈繍琛?oh,shit "鎵句笉鍒?dll 鏂囦歡"
鏃犺..闅鵑亾榪欏氨鏄痬icrosoft鐨勪笢涓滃悧? 涓轟粈涔堜互鍓嶅畨瑁呭拰浣跨敤灝辨病閬囧埌榪欓棶棰樺悧?
紿佺劧涓涓濇兂鍦ㄦ垜鑴戞搗閲屾誕鐜?鏃㈢劧瀹夎鍜岃緭鍏ユ硶浼氭湁鍏?浣嗚繍琛屼細涓嶄細涔熷姝?浣嗘瀬鐐逛簲絎斾笉鏄鎴戝嵏杞芥帀浜嗗悧?
闅鵑亾鏄簲絎斿姞鍔犵殑闂?(鎴戣鏈変袱涓簲絎旇緭鍏ユ硶~~) 浜庢槸涔庡嵏杞芥帀浜旂瑪鍔犲姞!鍐嶈鍚?..絳夊緟...
緇堜簬.....姝e父浜?..鎰熸叏ing.....................
]]>
• 鐢ㄤ簬緙栧啓鍗曞厓嫻嬭瘯鐨?nbsp;NUnit
• 鐢ㄤ簬鍒涘緩浠g爜鏂囨。璧勬枡鐨?nbsp;NDoc
• 鐢ㄤ簬鐢熸垚瑙e喅鏂規鐨?nbsp;NAnt
• 鐢ㄤ簬鐢熸垚浠g爜鐨?nbsp;CodeSmith
• 鐢ㄤ簬鐩戣浠g爜鐨?nbsp;FxCop
• 鐢ㄤ簬緙栬瘧灝戦噺浠g爜鐨?nbsp;Snippet Compiler
• 涓ょ涓嶅悓鐨勮漿鎹㈠櫒宸ュ叿錛欰SP.NET 鐗堟湰杞崲鍣ㄥ拰 Visual Studio .NET 欏圭洰杞崲鍣?br>
• 鐢ㄤ簬鐢熸垚姝e垯琛ㄨ揪寮忕殑 Regulator
• 鐢ㄤ簬鍒嗘瀽紼嬪簭闆嗙殑 .NET Reflector
鏈枃浣跨敤浜嗕笅鍒楁妧鏈細
.NET銆丆# 鎴?nbsp;Visual Basic .NET銆乂isual Studio .NET
闄ら潪鎮ㄤ嬌鐢ㄨ兘澶熻幏寰楃殑鏈浣沖伐鍏鳳紝鍚﹀垯鎮ㄦ棤娉曟湡鏈涚敓鎴愪竴嫻佺殑搴旂敤紼嬪簭銆傞櫎浜嗗儚 Visual Studio®.NET 榪欐牱鐨勮憲鍚嶅伐鍏蜂互澶栵紝榪樺彲浠ヤ粠 .NET 紺懼尯鑾峰緱璁稿灝忓瀷鐨勩佷笉澶負浜烘墍鐭ョ殑宸ュ叿銆傚湪鏈枃涓紝鎴戝皢鍚戞偍浠嬬粛涓浜涚洰鍓嶅彲浠ヨ幏寰楃殑銆侀潰鍚?nbsp;.NET 寮鍙戠殑鏈浣沖厤璐瑰伐鍏楓傛垜灝嗗紩瀵兼偍瀹屾垚涓涓湁鍏沖浣曚嬌鐢ㄥ叾涓瘡縐嶅伐鍏風殑蹇熸暀紼?nbsp;鈥?nbsp;涓浜涘伐鍏峰湪璁稿鏃跺欏彲浠ヤ嬌鎮ㄨ妭綰︿竴鍒嗛挓錛岃屽彟涓浜涘伐鍏峰垯鍙兘褰誨簳鏀瑰彉鎮ㄧ紪鍐欎唬鐮佺殑鏂瑰紡銆傚洜涓烘垜瑕佸湪鏈瘒鏂囩珷涓粙緇嶅姝や箣澶氱殑涓嶅悓宸ュ叿錛屾墍浠ユ垜鏃犳硶璇﹀敖璁ㄨ鍏朵腑姣忕宸ュ叿錛屼絾鎮ㄥ簲璇ヤ簡瑙e埌鏈夊叧姣忕宸ュ叿鐨勮凍澶熶俊鎭紝浠ヤ究鍒ゆ柇鍝簺宸ュ叿瀵規偍鐨勯」鐩湁鐢ㄣ?br>
鏈〉鍐呭
Snippet Compiler
Regulator
CodeSmith
鐢熸垚鑷畾涔夋ā鏉?nbsp;
NUnit
緙栧啓 NUnit 嫻嬭瘯
FxCop
Lutz Roeder 鐨?nbsp;.NET Reflector
NDoc
NAnt
瀹為檯榪愯鐨?nbsp;NAnt
杞崲宸ュ叿
灝忕粨
Snippet Compiler
Snippet Compiler 鏄竴涓熀浜?nbsp;Windows® 鐨勫皬鍨嬪簲鐢ㄧ▼搴忥紝鎮ㄥ彲浠ラ氳繃瀹冩潵緙栧啓銆佺紪璇戝拰榪愯浠g爜銆傚鏋滄偍鍏鋒湁杈冨皬鐨勪唬鐮佹錛屽茍涓旀偍涓嶅笇鏈涗負鍏跺垱寤哄畬鏁寸殑 Visual Studio .NET 欏圭洰錛堜互鍙婁即闅忚欏圭洰鐨勬墍鏈夋枃浠訛級錛屽垯璇ュ伐鍏峰皢寰堟湁鐢ㄣ?br>
渚嬪錛屽亣璁炬垜甯屾湜鍚戞偍璇存槑濡備綍浠?nbsp;Microsoft?.NET 妗嗘灦涓惎鍔ㄥ彟涓涓簲鐢ㄧ▼搴忋傚湪 Snippet Compiler 涓紝鎴戝皢閫氳繃鏂板緩涓涓兘澶熷垱寤哄皬鍨嬫帶鍒跺彴搴旂敤紼嬪簭鐨勬枃浠跺紑濮嬨傚彲浠ュ湪璇ユ帶鍒跺彴搴旂敤紼嬪簭鐨?nbsp;Main 鏂規硶鍐呴儴鍒涘緩浠g爜鐗囨錛岃岃繖姝f槸鎴戣鍦ㄨ繖閲屽仛鐨勪簨鎯呫備笅闈㈢殑浠g爜鐗囨婕旂ず浜嗗浣曚粠 .NET 妗嗘灦涓垱寤鴻浜嬫湰瀹炰緥錛?nbsp;
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName= "notepad.exe";
proc.Start();
proc.WaitForExit();
褰撶劧璇ヤ唬鐮佺墖孌墊湰韜棤娉曠紪璇戯紝鑰岃繖姝f槸 Snippet Compiler 鐨勭敤姝︿箣鍦般傚浘 1 鏄劇ず浜?nbsp;Snippet Compiler 涓殑榪欎竴浠g爜紺轟緥銆?br>
鍥?nbsp;1 Snippet Compiler
瑕佹祴璇曡浠g爜鐗囨錛屽彧欏繪寜 play錛堣繍琛岋級鎸夐挳錛堢豢鑹蹭笁瑙掑艦錛夛紝瀹冨氨浼氬湪璋冭瘯妯″紡涓嬭繍琛屻傝浠g爜鐗囨灝嗙敓鎴愪竴涓脊鍑哄紡鎺у埗鍙板簲鐢ㄧ▼搴忥紝騫朵笖灝嗘樉紺鴻浜嬫湰銆傚綋鎮ㄥ叧闂浜嬫湰鏃訛紝璇ユ帶鍒跺彴搴旂敤紼嬪簭涔熷皢鍏抽棴銆?br>
灝辨垜涓漢鑰岃█錛屾垜鏄湪灝濊瘯涓烘煇浣嶅悜鎴戞眰鍔╃殑浜哄+鍒涘緩涓涓皬鍨嬬ず渚嬫椂錛屾墠鍙戠幇 Snippet Compiler 鏄姝ゅ疂璐電殑 鈥?nbsp;濡傛灉涓嶄嬌鐢ㄨ宸ュ叿錛屽垯鎴戦氬父蹇呴』鏂板緩涓涓」鐩紝紜繚姣忎釜閮ㄥ垎閮借兘緙栬瘧閫氳繃錛岀劧鍚庡皢浠g爜鐗囨鍙戦佺粰姹傚姪鑰咃紝騫跺垹闄よ欏圭洰銆係nippet Compiler 浣垮緱榪欎竴榪囩▼鍙樺緱鏇村姞瀹規槗銆佹洿鍔犳剦蹇?br>
Snippet Compiler 鐢?nbsp;Jeff Key 緙栧啓錛屽茍涓斿彲浠ヤ粠 http://www.sliver.com/dotnet/SnippetCompiler 涓嬭澆銆?br>
榪斿洖欏甸
Regulator
Regulator 鏄渶鍚庝竴涓坊鍔犲埌鎴戠殑澶寸瓑宸ュ叿娓呭崟涓殑銆傚畠鏄竴縐嶅緢鏈夌壒鑹茬殑宸ュ叿錛岃兘澶熶嬌鐢熸垚鍜屾祴璇曟鍒欒〃杈懼紡鍙樺緱寰堝鏄撱備漢浠姝e垯琛ㄨ揪寮忛噸鏂頒駭鐢熶簡鍏磋叮錛屽洜涓哄畠浠湪 .NET 妗嗘灦涓彈鍒板緢濂界殑鏀寔銆傛鍒欒〃杈懼紡鐢ㄦ潵鍩轟簬瀛楃銆侀鐜囧拰瀛楃欏哄簭瀹氫箟瀛楃涓蹭腑鐨勬ā寮忋傚畠浠渶甯歌鐨勭敤閫旀槸浣滀負楠岃瘉鐢ㄦ埛杈撳叆鏈夋晥鎬х殑鎵嬫鎴栬呬綔涓哄湪杈冨ぇ瀛楃涓蹭腑鏌ユ壘瀛楃涓茬殑鏂規硶 鈥?nbsp;渚嬪錛屽湪 Web 欏典笂鏌ユ壘 URL 鎴栫數瀛愰偖浠跺湴鍧銆?br>
Regulator 浣挎偍鍙互杈撳叆涓涓鍒欒〃杈懼紡浠ュ強涓浜涢拡瀵瑰叾榪愯璇ヨ〃杈懼紡鐨勮緭鍏ュ唴瀹廣傝繖鏍鳳紝鍦ㄥ簲鐢ㄧ▼搴忎腑瀹炵幇璇ユ鍒欒〃杈懼紡涔嬪墠錛屾偍鍙互浜嗚В瀹冨皢浜х敓浠涔堟晥鏋滀互鍙婂畠灝嗚繑鍥炲摢浜涚綾葷殑鍖歸厤欏廣傚浘 2 鏄劇ず浜嗗甫鏈夌畝鍗曟鍒欒〃杈懼紡鐨?nbsp;Regulator銆?br>
鏂囨。涓寘鍚姝e垯琛ㄨ揪寮?nbsp;鈥?nbsp;鍦ㄨ紺轟緥涓紝瀹冩槸 [0-9]*錛屽簲璇ュ尮閰嶄竴琛屼腑浠繪剰鏁伴噺鐨勬暟瀛椼傚彸涓嬩晶鐨勬涓惈鏈夐拡瀵硅姝e垯琛ㄨ揪寮忕殑杈撳叆錛岃屽乏涓嬩晶鐨勬鏄劇ず浜嗚姝e垯琛ㄨ揪寮忓湪杈撳叆鍐呭涓壘鍒扮殑鍖歸厤欏廣傚湪榪欐牱鐨勫崟鐙簲鐢ㄧ▼搴忎腑緙栧啓鍜屾祴璇曟鍒欒〃杈懼紡錛岃姣斿皾璇曞湪鎮ㄧ殑搴旂敤紼嬪簭涓鐞嗗畠浠鏄撳緱澶氥?br>
Regulator 涓殑鏈浣沖姛鑳戒箣涓鏄兘澶熷湪 regexlib.com 鎼滅儲鑱旀満姝e垯琛ㄨ揪寮忓簱銆備緥濡傦紝濡傛灉鎮ㄥ湪鎼滅儲妗嗕腑杈撳叆瀛楃涓?#8220;phone”錛屾偍灝嗘壘鍒?nbsp;20 縐嶄互涓婅兘澶熷尮閰嶅悇縐嶇數璇濆彿鐮佺殑涓嶅悓鐨勬鍒欒〃杈懼紡錛屽寘鎷敤浜庤嫳鍥姐佹境澶у埄浜氱殑琛ㄨ揪寮忎互鍙婂叾浠栬澶氱數璇濆彿鐮併俁egulator 鐢?nbsp;Roy Osherove 緙栧啓錛屽茍涓斿彲浠ュ湪 http://royo.is-a-geek.com/regulator 涓嬭澆銆?br>
榪斿洖欏甸
CodeSmith
CodeSmith 鏄竴縐嶅熀浜庢ā鏉跨殑浠g爜鐢熸垚宸ュ叿錛屽畠浣跨敤綾諱技浜?nbsp;ASP.NET 鐨勮娉曟潵鐢熸垚浠繪剰綾誨瀷鐨勪唬鐮佹垨鏂囨湰銆備笌鍏朵粬璁稿浠g爜鐢熸垚宸ュ叿涓嶅悓錛孋odeSmith 涓嶈姹傛偍璁㈤槄鐗瑰畾鐨勫簲鐢ㄧ▼搴忚璁℃垨浣撶郴緇撴瀯銆備嬌鐢?nbsp;CodeSmith錛屽彲浠ョ敓鎴愬寘鎷畝鍗曠殑寮虹被鍨嬮泦鍚堝拰瀹屾暣搴旂敤紼嬪簭鍦ㄥ唴鐨勪換浣曚笢瑗褲?br>
褰撴偍鐢熸垚搴旂敤紼嬪簭鏃訛紝鎮ㄧ粡甯擱渶瑕侀噸澶嶅畬鎴愭煇浜涚壒瀹氱殑浠誨姟錛屼緥濡傜紪鍐欐暟鎹闂唬鐮佹垨鑰呯敓鎴愯嚜瀹氫箟闆嗗悎銆侰odeSmith 鍦ㄨ繖浜涙椂鍊欑壒鍒湁鐢紝鍥犱負鎮ㄥ彲浠ョ紪鍐欐ā鏉胯嚜鍔ㄥ畬鎴愯繖浜涗換鍔★紝浠庤屼笉浠呮彁楂樻偍鐨勫伐浣滄晥鐜囷紝鑰屼笖鑳藉鑷姩瀹屾垚閭d簺鏈涓轟箯鍛崇殑浠誨姟銆侰odeSmith 闄勫甫浜嗚澶氭ā鏉匡紝鍖呮嫭瀵瑰簲浜庢墍鏈?nbsp;.NET 闆嗗悎綾誨瀷鐨勬ā鏉夸互鍙婄敤浜庣敓鎴愬瓨鍌ㄨ繃紼嬬殑妯℃澘錛屼絾璇ュ伐鍏風殑鐪熸濞佸姏鍦ㄤ簬鑳藉鍒涘緩鑷畾涔夋ā鏉褲備負浜嗕嬌鎮ㄨ兘澶熷叆闂紝鎴戝皢蹇熶粙緇嶄竴涓嬪浣曠敓鎴愯嚜瀹氫箟妯℃澘銆?br>
榪斿洖欏甸
鐢熸垚鑷畾涔夋ā鏉?br>CodeSmith 妯℃澘鍙槸涓浜涘彲浠ュ湪浠繪剰鏂囨湰緙栬緫鍣ㄤ腑鍒涘緩鐨勬枃鏈枃浠躲傚畠浠殑鍞竴瑕佹眰鏄敤 .cst 鏂囦歡鎵╁睍鍚嶆潵淇濆瓨瀹冧滑銆傛垜灝嗚鐢熸垚鐨勭ず渚嬫ā鏉垮皢鎺ュ彈涓涓瓧絎︿覆錛岀劧鍚庡熀浜庤瀛楃涓茬敓鎴愪竴涓被銆傚垱寤烘ā鏉跨殑絎竴姝ユ槸娣誨姞妯℃澘澶達紝瀹冨彲澹版槑妯℃澘鐨勮璦銆佺洰鏍囪璦浠ュ強綆瑕佹ā鏉胯鏄庯細
<%@ CodeTemplate Language="C#"
TargetLanguage="C#"
Description="Car Template" %>
妯℃澘鐨勪笅涓閮ㄥ垎鏄睘鎬у0鏄庯紝鍦ㄨ繖閲屽彲澹版槑灝嗗湪妯℃澘姣忔榪愯鏃舵寚瀹氱殑灞炴с傚氨璇ユā鏉胯岃█錛屾垜瑕佷嬌鐢ㄧ殑鍞竴灞炴у彧鏄竴涓瓧絎︿覆錛屽洜姝ゅ睘鎬у0鏄庡涓嬫墍紺猴細
<%@ Property Name="ClassName" Type="String" Category="Context"
Description="Class Name" %>
璇ュ睘鎬у0鏄庡皢浣?nbsp;ClassName 灞炴у嚭鐜板湪 CodeSmith 灞炴х獥鍙d腑錛屼互渚垮彲浠ュ湪妯℃澘榪愯鏃舵寚瀹氬畠銆備笅涓姝ユ槸瀹為檯鐢熸垚妯℃澘涓諱綋錛屽畠闈炲父綾諱技浜庣敤 ASP.NET 榪涜緙栫爜銆傛偍鍙互鍦ㄥ浘 3 涓煡鐪嬭妯℃澘鐨勪富浣撱俒緙栬緫鏇存柊 鈥?nbsp;6/16/2004錛氬浘 3 涓殑浠g爜宸茶鏇存柊錛屼互渚垮澶氱嚎紼嬫搷浣滀繚鎸佸畨鍏ㄣ俔
姝e鎮ㄦ墍瑙侊紝璇ユā鏉挎帴鍙楀瓧絎︿覆杈撳叆騫朵嬌鐢ㄨ綾誨悕鐢熸垚鍗曠嫭鐨勭被銆傚湪妯℃澘涓諱綋涓紝浣跨敤涓?nbsp;ASP.NET 涓浉鍚岀殑璧峰鍜岀粨鏉熸爣璁般傚湪璇ユā鏉夸腑錛屾垜鍙槸鎻掑叆灞炴у鹼紝浣嗘偍榪樺彲浠ュ湪榪欎簺鏍囪鍐呴儴浣跨敤浠繪剰綾誨瀷鐨?nbsp;.NET 浠g爜銆傚湪璇ユā鏉垮畬鎴愪箣鍚庯紝鎮ㄥ氨鍙互閫氳繃鍙屽嚮瀹冩垨鑰呬粠 CodeSmith 搴旂敤紼嬪簭涓墦寮瀹冨皢鍏跺姞杞藉埌 CodeSmith 涓傚浘 4 鏄劇ず浜嗗凡緇忓姞杞藉埌 CodeSmith 涓殑璇ユā鏉褲?br>
鎮ㄥ彲浠ョ湅鍒板乏渚х殑灞炴ф鏄垜鍦ㄨ妯℃澘涓0鏄庣殑灞炴с傚鏋滄垜杈撳叆“SingletonClass”浣滀負綾誨悕錛屽茍鍗曞嚮 Generate 鎸夐挳錛屽垯灝嗙敓鎴愬浘 3 鐨勫簳閮ㄦ樉紺虹殑綾匯?br>
CodeSmith 浣跨敤璧鋒潵鐩稿綋瀹規槗錛屽鏋滆兘澶熸紜簲鐢紝鍒欏彲浠ヤ駭鐢熶竴浜涗護浜洪毦浠ョ疆淇$殑緇撴灉銆傞潰鍚戜唬鐮佺敓鎴愮殑搴旂敤紼嬪簭涓渶甯歌鐨勯儴鍒嗕箣涓鏄暟鎹闂眰銆侰odeSmith 鍖呮嫭涓涓悕涓?nbsp;SchemaExplorer 鐨勭壒孌婄殑紼嬪簭闆嗭紝鍙敤鏉ヤ粠琛ㄣ佸瓨鍌ㄨ繃紼嬫垨鍑犱箮浠諱綍鍏朵粬 SQL Server? 瀵硅薄鐢熸垚妯℃澘銆?br>
CodeSmith 鐢?nbsp;Eric J. Smith 緙栧啓錛屽茍涓斿彲浠ュ湪 http://www.ericjsmith.net/codesmith 涓嬭澆銆?br>
榪斿洖欏甸
NUnit
NUnit 鏄負 .NET 妗嗘灦鐢熸垚鐨勫紑鏀炬簮浠g爜鍗曞厓嫻嬭瘯妗嗘灦銆侼Unit 浣挎偍鍙互鐢ㄦ偍鍠滄鐨勮璦緙栧啓嫻嬭瘯錛屼粠鑰屾祴璇曞簲鐢ㄧ▼搴忕殑鐗瑰畾鍔熻兘銆傚綋鎮ㄩ嬈$紪鍐欎唬鐮佹椂錛屽崟鍏冩祴璇曟槸涓縐嶆祴璇曚唬鐮佸姛鑳界殑寰堝ソ鏂規硶錛屽畠榪樻彁渚涗簡涓縐嶅搴旂敤紼嬪簭榪涜鍥炲綊嫻嬭瘯鐨勬柟娉曘侼Unit 搴旂敤紼嬪簭鎻愪緵浜嗕竴涓敤浜庣紪鍐欏崟鍏冩祴璇曠殑妗嗘灦錛屼互鍙婁竴涓繍琛岃繖浜涙祴璇曞拰鏌ョ湅緇撴灉鐨勫浘褰㈢晫闈€?br>
榪斿洖欏甸
緙栧啓 NUnit 嫻嬭瘯
浣滀負紺轟緥錛屾垜灝嗘祴璇?nbsp;.NET 妗嗘灦涓?nbsp;Hashtable 綾葷殑鍔熻兘錛屼互紜畾鏄惁鍙互娣誨姞涓や釜瀵硅薄騫朵笖闅忓悗媯绱㈣繖浜涘璞°傛垜鐨勭涓姝ユ槸娣誨姞瀵?nbsp;NUnit.Framework 紼嬪簭闆嗙殑寮曠敤錛岃紼嬪簭闆嗗皢璧嬩簣鎴戝 NUnit 妗嗘灦鐨勫睘鎬у拰鏂規硶鐨勮闂潈銆傛帴涓嬫潵錛屾垜灝嗗垱寤轟竴涓被騫剁敤 TestFixture 灞炴ф爣璁板畠銆傝灞炴т嬌 NUnit 鍙互鐭ラ亾璇ョ被鍖呭惈 NUnit 嫻嬭瘯錛?nbsp;
using System;
using System.Collections;
using NUnit.Framework;
namespace NUnitExample
{
[TestFixture]
public class HashtableTest {
public HashtableTest() {
}
}
}
涓嬩竴姝ワ紝鎴戝皢鍒涘緩涓涓柟娉曞茍鐢?nbsp;[Test] 灞炴ф爣璁板畠錛屼互渚?nbsp;NUnit 鐭ラ亾璇ユ柟娉曟槸涓涓祴璇曘傜劧鍚庯紝鎴戝皢寤虹珛涓涓?nbsp;Hashtable 騫跺悜鍏舵坊鍔犱袱涓鹼紝鍐嶄嬌鐢?nbsp;Assert.AreEqual 鏂規硶鏌ョ湅鎴戞槸鍚﹀彲浠ユ绱㈠埌涓庢垜娣誨姞鍒?nbsp;Hashtable 鐨勫肩浉鍚岀殑鍊鹼紝濡備笅闈㈢殑浠g爜鎵紺猴細
[Test]
public void HashtableAddTest()
{
Hashtable ht = new Hashtable();
ht.Add("Key1", "Value1");
ht.Add("Key2", "Value2");
Assert.AreEqual("Value1", ht["Key1"], "Wrong object returned!");
Assert.AreEqual("Value2", ht["Key2"], "Wrong object returned!");
}
榪欏皢紜鎴戝彲浠ラ鍏堝悜 Hashtable 涓坊鍔犲煎茍闅忓悗媯绱㈢浉搴旂殑鍊?nbsp;鈥?nbsp;榪欐槸涓涓緢綆鍗曠殑嫻嬭瘯錛屼絾鑳藉琛ㄧ幇 NUnit 鐨勫姛鑳姐傚瓨鍦ㄨ澶氭祴璇曠被鍨嬩互鍙婂悇縐?nbsp;Assert 鏂規硶錛屽彲浣跨敤瀹冧滑鏉ユ祴璇曚唬鐮佺殑姣忎釜閮ㄥ垎銆?br>
瑕佽繍琛岃嫻嬭瘯錛屾垜闇瑕佺敓鎴愰」鐩紝鍦?nbsp;NUnit 搴旂敤紼嬪簭涓墦寮鐢熸垚鐨勭▼搴忛泦錛岀劧鍚庡崟鍑?nbsp;Run 鎸夐挳銆傚浘 5 鏄劇ず浜嗙粨鏋溿傚綋鎴戠湅鍒伴偅涓ぇ鐨勭豢鑹叉潯綰規椂錛屾垜鏈変竴縐嶅叴濂嬪拰澶存檿鐨勬劅瑙夛紝鍥犱負瀹冭鎴戠煡閬撴祴璇曞凡緇忛氳繃浜嗐傝繖涓畝鍗曠殑紺轟緥琛ㄦ槑 NUnit 鍜屽崟鍏冩祴璇曟槸澶氫箞鏂逛究鍜屽己澶с傜敱浜庤兘澶熺紪鍐欏彲浠ヤ繚瀛樼殑鍗曞厓嫻嬭瘯錛屽茍涓旀瘡褰撴偍鏇存敼浠g爜鏃墮兘鍙互閲嶆柊榪愯璇ュ崟鍏冩祴璇曪紝鎮ㄤ笉浠呭彲浠ユ洿瀹規槗鍦版嫻嬪埌浠g爜涓殑緙洪櫡錛岃屼笖鏈緇堣兘澶熶氦浠樻洿濂界殑搴旂敤紼嬪簭銆?br>
鍥?nbsp;5 NUnit
NUnit 鏄竴涓紑鏀炬簮浠g爜欏圭洰錛屽茍涓斿彲浠ヤ粠 http://www.nunit.org 涓嬭澆銆傝繕鏈変竴涓紭縐鐨?nbsp;NUnit Visual Studio .NET 澶栨帴紼嬪簭錛屽畠浣挎偍鍙互鐩存帴浠?nbsp;Visual Studio 涓繍琛屽崟鍏冩祴璇曘傛偍鍙互鍦?nbsp;http://sourceforge.net/projects/nunitaddin 鎵懼埌瀹冦傛湁鍏?nbsp;NUnit 鍙婂叾鍦ㄦ祴璇曢┍鍔ㄥ紑鍙戜腑鐨勫湴浣嶇殑璇︾粏淇℃伅錛岃鍙傞槄鏂囩珷“Test-Driven C#: Improve the Design and Flexibility of Your Project with Extreme Programming Techniques”錛圡SDN ®Magazine 2004 騫?nbsp;4 鏈堝垔錛夈?br>
榪斿洖欏甸
FxCop
.NET 妗嗘灦闈炲父寮哄ぇ錛岃繖鎰忓懗鐫瀛樺湪鍒涘緩浼樼搴旂敤紼嬪簭鐨勬瀬澶у彲鑳斤紝浣嗘槸涔熷悓鏍峰瓨鍦ㄥ垱寤哄姡璐ㄧ▼搴忕殑鍙兘銆侳xCop 鏄湁鍔╀簬鍒涘緩鏇村ソ鐨勫簲鐢ㄧ▼搴忕殑宸ュ叿涔嬩竴錛屽畠鎵閲囩敤鐨勬柟娉曟槸錛氫嬌鎮ㄨ兘澶熷垎鏋愮▼搴忛泦錛屽茍浣跨敤涓浜涗笉鍚岀殑瑙勫垯鏉ユ鏌ュ畠鏄惁絎﹀悎榪欎簺瑙勫垯銆侳xCop 闅忛檮浜嗙敱 Microsoft 鍒涘緩鐨勫浐瀹氭暟閲忕殑瑙勫垯錛屼絾鎮ㄤ篃鍙互鍒涘緩騫跺寘鎷偍鑷繁鐨勮鍒欍備緥濡傦紝濡傛灉鎮ㄥ喅瀹氭墍鏈夌殑綾婚兘搴旇鍏鋒湁涓涓笉甯︿換浣曞弬鏁扮殑榛樿鏋勯犲嚱鏁幫紝鍒欏彲浠ョ紪鍐欎竴鏉¤鍒欙紝浠ョ‘淇濈▼搴忛泦鐨勬瘡涓被涓婇兘鍏鋒湁涓涓瀯閫犲嚱鏁般傝繖鏍鳳紝鏃犺鏄皝緙栧啓璇ヤ唬鐮侊紝鎮ㄩ兘灝嗚幏寰椾竴瀹氱▼搴︾殑涓鑷存с傚鏋滄偍闇瑕佹湁鍏沖垱寤鴻嚜瀹氫箟瑙勫垯鐨勮緇嗕俊鎭紝璇峰弬闃?nbsp;John Robbins 鐨勬湁鍏寵涓婚鐨?nbsp;Bugslayer 涓撴爮鏂囩珷錛圡SDN ® Magazine 2004 騫?nbsp;6 鏈堝垔錛夈?br>
閭d箞錛岃鎴戜滑瑙傚療涓涓嬪疄闄呰繍琛岀殑 FxCop錛屽茍涓旂湅涓涓嬪畠鍦ㄦ垜涓鐩村湪澶勭悊鐨?nbsp;NUnitExample 紼嬪簭闆嗕腑鎵懼埌鍝簺閿欒銆傚綋鎮ㄦ墦寮 FxCop 鏃訛紝鎮ㄩ鍏堥渶瑕佸垱寤轟竴涓?nbsp;FxCop 欏圭洰錛岀劧鍚庡悜鍏舵坊鍔犳偍瑕佹祴璇曠殑紼嬪簭闆嗐傚湪灝嗚紼嬪簭闆嗘坊鍔犲埌欏圭洰浠ュ悗錛屽氨鍙互鎸?nbsp;Analyze錛孎xCop 灝嗗垎鏋愯紼嬪簭闆嗐傚浘 6 涓樉紺轟簡鍦ㄨ紼嬪簭闆嗕腑鎵懼埌鐨勯敊璇拰璀﹀憡銆?br>
FxCop 鍦ㄦ垜鐨勭▼搴忛泦涓壘鍒頒簡鍑犱釜闂銆傛偍鍙互鍙屽嚮鏌愪釜閿欒浠ユ煡鐪嬭緇嗕俊鎭紝鍖呮嫭瑙勫垯璇存槑浠ュ強鍦ㄥ摢閲屽彲浠ユ壘鍒版洿澶氫俊鎭傦紙鎮ㄥ彲浠ュ仛鐨勪竴浠舵湁瓚g殑浜嬫儏鏄湪妗嗘灦紼嬪簭闆嗕笂榪愯 FxCop 騫舵煡鐪嬪彂鐢熶簡浠涔堜簨鎯呫傦級
FxCop 鍙互甯姪鎮ㄥ垱寤烘洿濂界殑銆佹洿涓鑷寸殑浠g爜錛屼絾瀹冩棤娉曡ˉ鍋夸綆鍔g殑搴旂敤紼嬪簭璁捐鎴栭潪甯哥畝鍗曟嫏鍔g殑緙栫▼銆侳xCop 涔熶笉鑳芥浛浠e絳変唬鐮佹鏌ワ紝浣嗘槸鍥犱負瀹冨彲浠ュ湪榪涜浠g爜媯鏌ヤ箣鍓嶆崟鑾峰ぇ閲忛敊璇紝鎵浠ユ偍鍙互鑺辮垂鏇村鏃墮棿鏉ヨВ鍐充弗閲嶇殑闂錛岃屼笉蹇呮媴蹇冨懡鍚嶇害瀹氥侳xCop 鐢?nbsp;Microsoft 寮鍙戯紝騫朵笖鍙互浠?nbsp;http://www.gotdotnet.com/team/fxcop 涓嬭澆銆?br>
榪斿洖欏甸
Lutz Roeder 鐨?nbsp;.NET Reflector
涓嬩竴涓繀涓嶅彲灝戠殑宸ュ叿縐頒負 .NET Reflector錛屽畠鏄竴涓被嫻忚鍣ㄥ拰鍙嶇紪璇戝櫒錛屽彲浠ュ垎鏋愮▼搴忛泦騫跺悜鎮ㄥ睍紺哄畠鐨勬墍鏈夌瀵嗐?NET 妗嗘灦鍚戝叏涓栫晫寮曞叆浜嗗彲鐢ㄦ潵鍒嗘瀽浠諱綍鍩轟簬 .NET 鐨勪唬鐮侊紙鏃犺瀹冩槸鍗曚釜綾昏繕鏄畬鏁寸殑紼嬪簭闆嗭級鐨勫弽灝勬蹇點傚弽灝勮繕鍙互鐢ㄦ潵媯绱㈡湁鍏崇壒瀹氱▼搴忛泦涓寘鍚殑鍚勭綾匯佹柟娉曞拰灞炴х殑淇℃伅銆備嬌鐢?nbsp;.NET Reflector錛屾偍鍙互嫻忚紼嬪簭闆嗙殑綾誨拰鏂規硶錛屽彲浠ュ垎鏋愮敱榪欎簺綾誨拰鏂規硶鐢熸垚鐨?nbsp;Microsoft 涓棿璇█ (MSIL)錛屽茍涓斿彲浠ュ弽緙栬瘧榪欎簺綾誨拰鏂規硶騫舵煡鐪?nbsp;C# 鎴?nbsp;Visual Basic ®.NET 涓殑絳変環綾誨拰鏂規硶銆?br>
涓轟簡婕旂ず .NET Reflector 鐨勫伐浣滄柟寮忥紝鎴戝皢鍔犺澆鍜屽垎鏋愬墠闈㈠凡緇忔樉紺虹殑 NUnitExample 紼嬪簭闆嗐傚浘 7 鏄劇ず浜?nbsp;.NET Reflector 涓姞杞界殑璇ョ▼搴忛泦銆?br>
鍥?nbsp;7 NUnitExample 紼嬪簭闆?br>
鍦?nbsp;.NET Reflector 鍐呴儴錛屾湁鍚勭鍙敤鏉ヨ繘涓姝ュ垎鏋愯紼嬪簭闆嗙殑宸ュ叿銆傝鏌ョ湅鏋勬垚鏌愪釜鏂規硶鐨?nbsp;MSIL錛岃鍗曞嚮璇ユ柟娉曞茍浠庤彍鍗曚腑閫夋嫨 Disassembler銆?br>
闄や簡鑳藉鏌ョ湅 MSIL 浠ュ錛屾偍榪樺彲浠ラ氳繃閫夋嫨 Tools 鑿滃崟涓嬬殑 Decompiler 鏉ユ煡鐪嬭鏂規硶鐨?nbsp;C# 褰㈠紡銆傞氳繃鍦?nbsp;Languages 鑿滃崟涓嬫洿鏀規偍鐨勯夋嫨錛屾偍榪樺彲浠ユ煡鐪嬭鏂規硶琚弽緙栬瘧鍒?nbsp;Visual Basic .NET 鎴?nbsp;Delphi 浠ュ悗鐨勫艦寮忋備互涓嬩負 .NET Reflector 鐢熸垚鐨勪唬鐮侊細
public void HashtableAddTest()
{
Hashtable hashtable1;
hashtable1 = new Hashtable();
hashtable1.Add("Key1", "Value1");
hashtable1.Add("Key2", "Value2");
Assert.AreEqual("Value1", hashtable1["Key1"],
"Wrong object returned!");
Assert.AreEqual("Value2", hashtable1["Key2"],
"Wrong object returned!");
}
鍓嶉潰鐨勪唬鐮佺湅璧鋒潵闈炲父鍍忔垜涓鴻鏂規硶瀹為檯緙栧啓鐨勪唬鐮併備互涓嬩負璇ョ▼搴忛泦涓殑瀹為檯浠g爜錛?nbsp;
public void HashtableAddTest()
{
Hashtable ht = new Hashtable();
ht.Add("Key1", "Value1");
ht.Add("Key2", "Value2");
Assert.AreEqual("Value1", ht["Key1"],
"Wrong object returned!");
Assert.AreEqual("Value2", ht["Key2"],
"Wrong object returned!");
}
灝界涓婅堪浠g爜涓瓨鍦ㄤ竴浜涘皬鐨勫樊寮傦紝浣嗗畠浠湪鍔熻兘涓婃槸瀹屽叏鐩稿悓鐨勩?br>
铏界劧璇ョず渚嬫槸涓縐嶆樉紺哄疄闄呬唬鐮佷笌鍙嶇紪璇戜唬鐮佷箣闂村姣旂殑濂芥柟娉曪紝浣嗗湪鎴戠湅鏉ワ紝瀹冨茍涓嶄唬琛?nbsp;.NET Reflector 鎵鍏鋒湁鐨勬渶浣崇敤閫?nbsp;鈥?nbsp;鍒嗘瀽 .NET 妗嗘灦紼嬪簭闆嗗拰鏂規硶銆?NET 妗嗘灦鎻愪緵浜嗚澶氭墽琛岀被浼兼搷浣滅殑涓嶅悓鏂規硶銆備緥濡傦紝濡傛灉鎮ㄩ渶瑕佷粠 XML 涓鍙栦竴緇勬暟鎹紝鍒欏瓨鍦ㄥ縐嶄嬌鐢?nbsp;XmlDocument銆乆PathNavigator 鎴?nbsp;XmlReader 瀹屾垚璇ュ伐浣滅殑涓嶅悓鏂規硶銆傞氳繃浣跨敤 .NET Reflector錛屾偍鍙互鏌ョ湅 Microsoft 鍦ㄧ紪鍐欐暟鎹泦鐨?nbsp;ReadXml 鏂規硶鏃朵嬌鐢ㄤ簡浠涔堬紝鎴栬呮煡鐪嬩粬浠湪浠庨厤緗枃浠惰鍙栨暟鎹椂鍋氫簡鍝簺宸ヤ綔銆?NET Reflector 榪樻槸涓涓簡瑙d互涓嬫渶浣沖疄鏂界瓥鐣ョ殑浼樼鏂規硶錛氬垱寤鴻濡?nbsp;HttpHandlers 鎴栭厤緗鐞嗙▼搴忎箣綾葷殑瀵硅薄錛屽洜涓烘偍鍙互浜嗚В鍒?nbsp;Microsoft 宸ヤ綔緇勫疄闄呬笂鏄浣曞湪妗嗘灦涓敓鎴愯繖浜涘璞$殑銆?br>
.NET Reflector 鐢?nbsp;Lutz Roeder 緙栧啓錛屽茍涓斿彲浠ヤ粠 http://www.aisto.com/roeder/dotnet 涓嬭澆銆?br>
榪斿洖欏甸
NDoc
緙栧啓浠g爜鏂囨。璧勬枡鍑犱箮鎬繪槸涓欏逛護浜虹晱鎯х殑浠誨姟銆傛垜鎵璇寸殑涓嶆槸鏃╂湡璁捐鏂囨。錛岀敋鑷充篃涓嶆槸鏇翠負璇︾粏鐨勮璁℃枃妗o紱鎴戣鐨勬槸璁板綍綾諱笂鐨勫悇涓柟娉曞拰灞炴с侼Doc 宸ュ叿鑳藉浣跨敤鍙嶅皠鏉ュ垎鏋愮▼搴忛泦錛屽茍浣跨敤浠?nbsp;C# XML 娉ㄩ噴鐢熸垚鐨?nbsp;XML 鑷姩涓轟唬鐮佺敓鎴愭枃妗h祫鏂欍俋ML 娉ㄩ噴浠呴傜敤浜?nbsp;C#錛屼絾鏈変竴涓悕涓?nbsp;VBCommenter 鐨?nbsp;Visual Studio .NET Power Toy錛屽畠鑳藉涓?nbsp;Visual Basic .NET 瀹屾垚綾諱技鐨勫伐浣溿傛澶栵紝涓嬩竴鐗堟湰鐨?nbsp;Visual Studio 灝嗕負鏇村璇█鏀寔 XML 娉ㄩ噴銆?br>
浣跨敤 NDoc 鏃訛紝鎮ㄤ粛鐒跺湪緙栧啓浠g爜鐨勬妧鏈枃妗o紝浣嗘偍鏄湪緙栧啓浠g爜鐨勮繃紼嬩腑瀹屾垚浜嗘枃妗g紪鍐欏伐浣滐紙鍦?nbsp;XML 娉ㄩ噴涓級錛岃岃繖鏇村鏄撳繊鍙椼備嬌鐢?nbsp;NDoc 鏃訛紝絎竴姝ユ槸涓烘偍鐨勭▼搴忛泦鎵撳紑 XML 娉ㄩ噴鐢熸垚鍔熻兘銆傚彸閿崟鍑昏欏圭洰騫墮夋嫨 Properties | Configuration Properties | Build錛岀劧鍚庡湪 XML Documentation File 閫夐」涓緭鍏ョ敤浜庝繚瀛?nbsp;XML 鏂囦歡鐨勮礬寰勩傚綋璇ラ」鐩敓鎴愭椂錛屽皢鍒涘緩涓涓?nbsp;XML 鏂囦歡錛屽叾涓寘鍚墍鏈?nbsp;XML 娉ㄩ噴銆備笅闈㈡槸 NUnit 紺轟緥涓殑涓涓敤 XML 緙栧啓浜嗘枃妗g殑鏂規硶錛?nbsp;
/// <summary>
/// This test adds a number of values to the Hashtable collection
/// and then retrieves those values and checks if they match.
/// </summary>
[Test]
public void HashtableAddTest()
{
//Method Body Here
}
鏈夊叧璇ユ柟娉曠殑 XML 鏂囨。璧勬枡灝嗚鎻愬彇騫朵繚瀛樺湪 XML 鏂囦歡涓紝濡備笅鎵紺猴細
<member name="M:NUnitExample.HashtableTest.HashtableAddTest">
<summary>This test adds a number of values to the Hashtable collection
and then retrieves those values and checks if they match.</summary>
</member>
NDoc 浣跨敤鍙嶅皠鏉ヨ冨療鎮ㄧ殑紼嬪簭闆嗭紝鐒跺悗璇誨彇璇ユ枃妗d腑鐨?nbsp;XML錛屽茍涓斿皢瀹冧滑榪涜鍖歸厤銆侼Doc 浣跨敤璇ユ暟鎹潵鍒涘緩浠繪剰鏁伴噺鐨勪笉鍚屾枃妗f牸寮忥紝鍖呮嫭 HTML 甯姪鏂囦歡 (CHM)銆傚湪鐢熸垚 XML 鏂囦歡浠ュ悗錛屼笅涓姝ユ槸灝嗙▼搴忛泦鍜?nbsp;XML 鏂囦歡鍔犺澆鍒?nbsp;NDoc 涓紝浠ヤ究鍙互瀵瑰畠浠繘琛屽鐞嗐傞氳繃鎵撳紑 NDoc 騫跺崟鍑?nbsp;Add 鎸夐挳錛屽彲浠ュ鏄撳湴瀹屾垚璇ュ伐浣溿?br>
鍦ㄥ皢紼嬪簭闆嗗拰 XML 鏂囦歡鍔犺澆鍒?nbsp;NDoc 涓茍涓斾嬌鐢ㄥ彲鐢ㄧ殑灞炴ц寖鍥磋嚜瀹氫箟杈撳嚭浠ュ悗錛屽崟鍑?nbsp;Generate 鎸夐挳灝嗗惎鍔ㄧ敓鎴愭枃妗h祫鏂欑殑榪囩▼銆備嬌鐢ㄩ粯璁ょ殑灞炴э紝NDoc 鍙互鐢熸垚涓浜涢潪甯稿惛寮曚漢騫朵笖瀹炵敤鐨?nbsp;.html 鍜?nbsp;.chm 鏂囦歡錛屼粠鑰屼互蹇熸湁鏁堢殑鏂瑰紡鑷姩瀹屾垚鍘熸潵闈炲父涔忓懗鐨勪換鍔°?br>
NDoc 鏄竴涓紑鏀炬簮浠g爜欏圭洰錛屽茍涓斿彲浠ヤ粠 http://ndoc.sourceforge.net 涓嬭澆銆?br>
榪斿洖欏甸
NAnt
NAnt 鏄竴涓熀浜?nbsp;.NET 鐨勭敓鎴愬伐鍏鳳紝涓庡綋鍓嶇増鏈殑 Visual Studio .NET 涓嶅悓錛屽畠浣垮緱涓烘偍鐨勯」鐩垱寤虹敓鎴愯繃紼嬪彉寰楅潪甯稿鏄撱傚綋鎮ㄦ嫢鏈夊ぇ閲忎粠浜嬪崟涓」鐩殑寮鍙戜漢鍛樻椂錛屾偍涓嶈兘渚濊禆浜庝粠鍗曚釜鐢ㄦ埛鐨勫駭浣嶈繘琛岀敓鎴愩傛偍涔熶笉甯屾湜蹇呴』瀹氭湡鎵嬪姩鐢熸垚璇ラ」鐩傛偍鏇存効鎰忓垱寤烘瘡澶╂櫄涓婅繍琛岀殑鑷姩鐢熸垚榪囩▼銆侼Ant 浣挎偍鍙互鐢熸垚瑙e喅鏂規銆佸鍒舵枃浠躲佽繍琛?nbsp;NUnit 嫻嬭瘯銆佸彂閫佺數瀛愰偖浠訛紝絳夌瓑銆傞仐鎲劇殑鏄紝NAnt 緙哄皯婕備寒鐨勫浘褰㈢晫闈紝浣嗗畠鐨勭‘鍏鋒湁鍙互鎸囧畾搴旇鍦ㄧ敓鎴愯繃紼嬩腑瀹屾垚鍝簺浠誨姟鐨勬帶鍒跺彴搴旂敤紼嬪簭鍜?nbsp;XML 鏂囦歡銆傛敞鎰忥紝MSBuild錛堝睘浜?nbsp;Visual Studio 2005 鐨勬柊鐨勭敓鎴愬鉤鍙幫級涓烘瘡縐嶅仴澹殑鐢熸垚鏂規榪涜浜嗗噯澶囷紝騫朵笖鐢卞熀浜?nbsp;XML 鐨勯」鐩枃浠朵互綾諱技鐨勬柟寮忛┍鍔ㄣ?br>
榪斿洖欏甸
瀹為檯榪愯鐨?nbsp;NAnt
鍦ㄨ紺轟緥涓紝鎴戝皢涓哄墠闈㈠垱寤虹殑 NUnitExample 瑙e喅鏂規鍒涘緩涓涓?nbsp;NAnt 鐗堟湰鏂囦歡銆傞鍏堬紝鎴戦渶瑕佸垱寤轟竴涓叿鏈?nbsp;.build 鎵╁睍鍚嶇殑 XML 鏂囦歡錛屽皢鍏舵斁鍦ㄦ垜鐨勯」鐩殑鏍圭洰褰曚腑錛岀劧鍚庡悜璇ユ枃浠剁殑欏墮儴娣誨姞涓涓?nbsp;XML 澹版槑銆傛垜闇瑕佹坊鍔犲埌璇ユ枃浠剁殑絎竴涓爣璁版槸 project 鏍囪錛?nbsp;
<?xml version="1.0"?>
<project name="NUnit Example" default="build" basedir=".">
<description>The NUnit Example Project</description>
</project>
欏圭洰鏍囪榪樼敤浜庤緗」鐩悕縐般侀粯璁ょ洰鏍囦互鍙婂熀鐩綍銆侱escription 鏍囪鐢ㄤ簬璁劇疆璇ラ」鐩殑綆鐭鏄庛?br>
鎺ヤ笅鏉ワ紝鎴戝皢娣誨姞 property 鏍囪錛岃鏍囪鍙敤浜庡皢璁劇疆瀛樺偍鍒板崟涓綅緗紙闅忓悗鍙互浠庢枃浠朵腑鐨勪換鎰忎綅緗闂浣嶇疆錛夈傚湪璇ヤ緥涓紝鎴戝皢鍒涘緩涓涓悕涓?nbsp;debug 鐨勫睘鎬э紝鎴戝彲浠ラ殢鍚庡皢鍏惰緗負 true 鎴?nbsp;false錛屼互鍙嶆槧鎴戞槸鍚﹁鍦ㄨ皟璇曢厤緗笅緙栬瘧璇ラ」鐩傦紙鏈鍚庯紝榪欎竴鐗瑰畾灞炴у茍鏈湡姝e獎鍝嶅浣曠敓鎴愯欏圭洰錛涘畠鍙槸鎮ㄨ緗殑涓涓彉閲忥紝褰撴偍鐪熸紜畾浜嗗浣曠敓鎴愯欏圭洰鏃跺皢璇誨彇璇ュ彉閲忋傦級
鎺ヤ笅鏉ワ紝鎴戦渶瑕佸垱寤轟竴涓?nbsp;target 鏍囪銆備竴涓」鐩彲浠ュ寘鍚涓彲鍦?nbsp;NAnt 榪愯鏃舵寚瀹氱殑 target銆傚鏋滄湭鎸囧畾 target錛屽垯浣跨敤榛樿 target錛堟垜鍦?nbsp;project 鍏冪礌涓緗殑 target錛夈傚湪璇ョず渚嬩腑錛岄粯璁?nbsp;target 鏄?nbsp;build銆傝鎴戜滑瑙傚療涓涓?nbsp;target 鍏冪礌錛屽畠灝嗗寘鍚ぇ澶氭暟鐢熸垚淇℃伅錛?nbsp;
<target name="build" description="compiles the source code">
</target>
鍦?nbsp;target 鍏冪礌鍐咃紝鎴戝皢鎶?nbsp;target 鐨勫悕縐拌緗負 build錛屽茍涓斿垱寤烘湁鍏寵 target 灝嗗仛鍝簺宸ヤ綔鐨勮鏄庛傛垜榪樺皢鍒涘緩涓涓?nbsp;csc 鍏冪礌錛岃鍏冪礌鐢ㄤ簬鎸囧畾搴旇浼犻掔粰 csc C# 緙栬瘧鍣ㄧ殑鏁版嵁銆傝鎴戜滑鐪嬩竴涓嬭 csc 鍏冪礌錛?nbsp;
<csc target="library" output=".\bin\debug\NUnitExample.dll"
debug="${debug}">
<references>
<includes name="C:\program files\NUnit V2.1\bin\NUnit.Framework.dll"/>
</references>
<sources>
<includes name="HashtableTest.cs"/>
</sources>
</csc>
棣栧厛錛屾垜蹇呴』璁劇疆璇?nbsp;csc 鍏冪礌鐨?nbsp;target銆傚湪璇ヤ緥涓紝鎴戝皢鍒涘緩涓涓?nbsp;.dll 鏂囦歡錛屽洜姝ゆ垜灝?nbsp;target 璁劇疆涓?nbsp;library銆傛帴涓嬫潵錛屾垜蹇呴』璁劇疆 csc 鍏冪礌鐨?nbsp;output錛屽畠鏄皢瑕佸垱寤?nbsp;.dll 鏂囦歡鐨勪綅緗傛渶鍚庯紝鎴戦渶瑕佽緗?nbsp;debug 灞炴э紝瀹冪‘瀹氫簡鏄惁鍦ㄨ皟璇曚腑緙栬瘧璇ラ」鐩傚洜涓烘垜鍦ㄥ墠闈㈠垱寤轟簡涓涓敤浜庡瓨鍌ㄨ鍊肩殑灞炴э紝鎵浠ユ垜鍙互浣跨敤涓嬮潰鐨勫瓧絎︿覆鏉ヨ闂灞炴х殑鍊鹼細${debug}銆侰sc 鍏冪礌榪樺寘鍚竴浜涘瓙鍏冪礌銆傛垜闇瑕佸垱寤轟袱涓厓绱狅細references 鍏冪礌灝嗗憡璇?nbsp;NAnt 闇瑕佷負璇ラ」鐩紩鐢ㄥ摢浜涚▼搴忛泦錛宻ources 鍏冪礌鍛婅瘔 NAnt 瑕佸湪鐢熸垚榪囩▼涓寘鍚摢浜涙枃浠躲傚湪璇ョず渚嬩腑錛屾垜寮曠敤浜?nbsp;NUnit.Framework.dll 紼嬪簭闆嗗茍鍖呭惈浜?nbsp;HashtableTest.cs 鏂囦歡銆傚浘 8 涓樉紺轟簡瀹屾暣鐨勭敓鎴愭枃浠躲傦紙鎮ㄩ氬父榪樿鍒涘緩涓涓共鍑鐨?nbsp;target錛岀敤浜庡垹闄ょ敓鎴愮殑鏂囦歡錛屼絾涓轟簡綆媧佽搗瑙侊紝鎴戝凡緇忓皢鍏剁渷鐣ャ傦級
瑕佺敓鎴愯鏂囦歡錛屾垜闇瑕佽漿鍒版垜鐨勯」鐩殑鏍圭洰褰曪紙鐢熸垚鏂囦歡浣嶄簬姝ゅ錛夛紝鐒跺悗浠庤浣嶇疆鎵ц nant.exe銆傚鏋滅敓鎴愭垚鍔燂紝鎮ㄥ彲浠ュ湪璇ュ簲鐢ㄧ▼搴忕殑 bin 鐩綍涓壘鍒?nbsp;.dll 鍜?nbsp;.pdb 鏂囦歡銆傚敖綆′嬌鐢?nbsp;NAnt 鑲畾涓嶅儚鍦?nbsp;Visual Studio 涓崟鍑?nbsp;Build 閭f牱綆鍗曪紝浣嗗畠浠嶇劧鏄竴縐嶉潪甯稿己澶х殑宸ュ叿錛屽彲鐢ㄤ簬寮鍙戞寜鑷姩璁″垝榪愯鐨勭敓鎴愯繃紼嬨侼Ant 榪樺寘鎷竴浜涙湁鐢ㄧ殑鍔熻兘錛屼緥濡傝兘澶熻繍琛屽崟鍏冩祴璇曟垨鑰呭鍒墮檮鍔犳枃浠訛紙榪欎簺鍔熻兘娌℃湁鍙楀埌褰撳墠 Visual Studio 鐢熸垚榪囩▼鐨勬敮鎸侊級銆?br>
NAnt 鏄竴涓紑鏀炬簮浠g爜欏圭洰錛屽茍涓斿彲浠ヤ粠 http://nant.sourceforge.net 涓嬭澆銆?br>
榪斿洖欏甸
杞崲宸ュ叿
鎴戝凡緇忓皢涓や釜鐙珛鐨勫伐鍏峰悎鍦ㄤ竴璧鋒斁鍦ㄦ爣棰?#8220;杞崲宸ュ叿”涓嬮潰銆傝繖涓や釜宸ュ叿閮介潪甯哥畝鍗曪紝浣嗗張鍙兘鏋佷負鏈夌敤銆傜涓涓伐鍏鋒槸 ASP.NET 鐗堟湰杞崲鍣紝瀹冨彲鐢ㄤ簬杞崲 ASP.NET錛堣櫄鎷熺洰褰曞湪瀹冧笅闈㈣繍琛岋級鐨勭増鏈傜浜屼釜宸ュ叿鏄?nbsp;Visual Studio Converter錛屽畠鍙敤浜庡皢欏圭洰鏂囦歡浠?nbsp;Visual Studio .NET 2002 杞崲鍒?nbsp;Visual Studio .NET 2003銆?br>
褰?nbsp;IIS 澶勭悊璇鋒眰鏃訛紝瀹冧細鏌ョ湅姝e湪璇鋒眰鐨勬枃浠剁殑鎵╁睍鍚嶏紝鐒跺悗鍩轟簬璇?nbsp;Web 绔欑偣鎴栬櫄鎷熺洰褰曠殑鎵╁睍鍚嶆槧灝勶紝灝嗚姹傚媧劇粰 ISAPI 鎵╁睍鎴栬呰嚜宸卞鐞嗚璇鋒眰銆傝繖姝f槸 ASP.NET 鐨勫伐浣滄柟寮忥紱灝嗕負鎵鏈?nbsp;ASP.NET 鎵╁睍鍚嶆敞鍐屾墿灞曞悕鏄犲皠錛屽茍灝嗚繖浜涙墿灞曞悕鏄犲皠瀵煎悜 aspnet_isapi.dll銆傝繖縐嶅伐浣滄柟寮忔槸瀹岀編鏃犵己鐨勶紝闄ら潪鎮ㄥ畨瑁呬簡 ASP.NET 1.1 鈥?nbsp;瀹冧細灝嗘墿灞曞悕鏄犲皠鍗囩駭鍒版柊鐗堟湰鐨?nbsp;aspnet_isapi.dll銆傚綋鍦?nbsp;ASP.NET 1.0 涓婄敓鎴愮殑搴旂敤紼嬪簭璇曞浘鐢?nbsp;1.1 鐗堣繍琛屾椂錛岃繖浼氬鑷撮敊璇傝瑙e喅璇ラ棶棰橈紝鍙互灝嗘墍鏈夋墿灞曞悕鏄犲皠閲嶆柊杞崲鍒?nbsp;1.0 鐗堢殑 aspnet_isapi.dll錛屼絾鏄敱浜庢湁 18 縐嶆墿灞曞悕鏄犲皠錛屾墍浠ユ墜鍔ㄥ畬鎴愯繖涓宸ヤ綔灝嗗緢鏋嚗銆傝繖姝f槸 ASP.NET 鐗堟湰杞崲鍣ㄥ彲浠ュ彂鎸ヤ綔鐢ㄧ殑鏃跺欍備嬌鐢ㄨ繖涓灝忓瀷瀹炵敤宸ュ叿錛屽彲浠ヨ漿鎹換浣曞崟涓?nbsp;ASP.NET 搴旂敤紼嬪簭鎵浣跨敤鐨?nbsp;.NET 妗嗘灦鐨勭増鏈?br>
鍥?nbsp;9 ASP.NET 鐗堟湰杞崲鍣?br>
鍥?nbsp;9 鏄劇ず浜嗗疄闄呰繍琛岀殑 ASP.NET 鐗堟湰杞崲鍣ㄣ傚畠鐨勪嬌鐢ㄦ柟娉曢潪甯哥畝鍗曪紝鍙』閫夋嫨鐩稿簲鐨勫簲鐢ㄧ▼搴忥紝鐒跺悗閫夋嫨鎮ㄥ笇鏈涜搴旂敤紼嬪簭浣跨敤鐨?nbsp;.NET 妗嗘灦鐗堟湰銆傝宸ュ叿闅忓悗灝嗕嬌鐢?nbsp;aspnet_regiis.exe 鍛戒護琛屽伐鍏峰皢璇ュ簲鐢ㄧ▼搴忚漿鎹㈠埌鎵閫夌増鏈殑妗嗘灦銆傞殢鐫灝嗘潵鐗堟湰鐨?nbsp;ASP.NET 鍜?nbsp;.NET 妗嗘灦鐨勫彂甯冿紝璇ュ伐鍏峰皢鍙樺緱鏇翠負鏈夌敤銆?br>
ASP.NET 鐗堟湰杞崲鍣ㄧ敱 Denis Bauer 緙栧啓錛屽茍涓斿彲浠ヤ粠 http://www.denisbauer.com/NETTools/ASPNETVersionSwitcher.aspx 涓嬭澆銆?br>
Visual Studio .NET 欏圭洰杞崲鍣紙鍙傝鍥?nbsp;10錛夐潪甯哥被浼間簬 ASP.NET 鐗堟湰杞崲鍣紝鍖哄埆鍦ㄤ簬瀹冪敤浜庤漿鎹?nbsp;Visual Studio 欏圭洰鏂囦歡鐨勭増鏈傚敖綆″湪 .NET 妗嗘灦鐨?nbsp;1.0 鐗堝拰 1.1 鐗堜箣闂村彧鏈夊緢灝忕殑宸紓錛屼絾涓鏃﹀皢欏圭洰鏂囦歡浠?nbsp;Visual Studio .NET 2002 杞崲鍒?nbsp;Visual Studio .NET 2003錛屽皢鏃犳硶鍐嶆妸瀹冭漿鎹㈠洖鍘匯傝櫧鐒惰繖鍦ㄥぇ澶氭暟鏃跺欏彲鑳戒笉浼氭垚涓洪棶棰橈紙鍥犱負鍦?nbsp;.NET 妗嗘灦 1.0 鐗堝拰 1.1 鐗堜箣闂村嚑涔庢病鏈変粈涔堢牬鍧忔х殑鏇存敼錛夛紝浣嗗湪鏌愪簺鏃跺埢鎮ㄥ彲鑳介渶瑕佸皢欏圭洰杞崲鍥炲幓銆傝杞崲鍣ㄥ彲浠ュ皢浠諱綍瑙e喅鏂規鎴栭」鐩枃浠朵粠 Visual Studio 7.1 (Visual Studio .NET 2003) 杞崲鍒?nbsp;Visual Studio 7.0 (Visual Studio .NET 2002)錛屽茍鍦ㄥ繀瑕佹椂榪涜鍙嶅悜杞崲銆?br>
鍥?nbsp;10 Visual Studio .NET 欏圭洰杞崲鍣?br>
Visual Studio .NET 欏圭洰杞崲鍣ㄧ敱 Dacris Software 緙栧啓銆傝宸ュ叿鍙互浠?nbsp;http://www.codeproject.com/macro/vsconvert.asp 涓嬭澆銆?br>
榪斿洖欏甸
灝忕粨
鏈枃閲囩敤璧伴┈瑙傝姳鐨勬柟寮忎粙緇嶄簡涓婅堪宸ュ叿錛屼絾鎴戝凡緇忚瘯鍥捐搗鐮佸悜鎮ㄦ彁渚涜凍澶熺殑淇℃伅浠ユ縺璧鋒偍鐨勫ソ濂囧績銆傛垜鐩鎬俊鏈枃宸茬粡璁╂偍鍦ㄦ煇縐嶇▼搴︿笂棰嗘偀浜嗗嚑涓厤璐瑰伐鍏鳳紝鎮ㄥ彲浠ョ珛鍗沖紑濮嬩嬌鐢ㄨ繖浜涘伐鍏鋒潵緙栧啓鏇村ソ鐨勯」鐩傚悓鏃訛紝鎴戣繕瑕佹暒淇冩偍紜繚鑷繁鎷ユ湁鎵鏈夊叾浠栧彲浠ヨ幏寰楃殑鍚堥傚伐鍏鳳紝鏃犺鏄渶鏂扮増鏈殑 Visual Studio銆佸姛鑳藉己澶х殑璁$畻鏈鴻繕鏄厤璐圭殑瀹炵敤宸ュ叿銆傛嫢鏈夊悎閫傜殑宸ュ叿灝嗕嬌涓鍒囧彉寰楀ぇ涓嶇浉鍚屻?br>
James Avery 鏄竴浣嶄嬌鐢?nbsp;.NET 鍜屽叾浠?nbsp;Microsoft 鎶鏈殑欏鵑棶銆備粬宸茬粡鎾板啓浜嗚澶氫功綾嶅拰鏂囩珷錛屼粬鐨勬渶鏂拌憲浣滄槸銆夾SP.NET Setup and Configuration Pocket Reference銆?Microsoft Press, 2003)銆傛偍鍙互閫氳繃 javery@infozerk.com 鍚戜粬鍙戦佺數瀛愰偖浠訛紝騫朵笖鍦?nbsp;http://www.dotavery.com/blog 闃呰浠栫殑緗戠粶鏃ヨ銆?br>
]]>
1. 寮曡█
1.1 璁捐妯″紡
闈㈠悜瀵硅薄鎶鏈殑鍑虹幇鍜屽簲鐢ㄥぇ澶ф彁楂樹簡杞歡鐨勯噸鐢ㄦу拰杞歡鐨勮川閲忋傞潰鍚戝璞$殑緙栫▼涔熸瘮浠ュ線鐨勫悇縐嶇紪紼嬫ā寮忚綆鍗曞拰楂樻晥錛屼絾鏄潰鍚戝璞$殑璁捐鏂規硶瑕佹瘮浠ュ線鐨勮璁℃柟娉曡澶嶆潅鍜屾湁鎶宸у緱澶氾紝涓涓壇濂界殑璁捐搴旇鏃㈠叿鏈夊闂鐨勯拡瀵規э紝涔熷厖鍒嗚冭檻鍒板灝嗘潵闂鍜岄渶姹傛湁瓚沖鐨勯氱敤鎬с傚湪榪囧幓鐨勫崄鍑犲勾涓紝浜轟滑鍦ㄥ闈㈠悜瀵硅薄鎶鏈殑鐮旂┒鎺㈢儲鍜屽疄闄呭簲鐢ㄤ腑閽堝鏌愪簺闂鍒涢犱簡涓浜涜壇濂界殑瑙e喅鏂規,鍗蟲墍璋撶殑闈㈠悜瀵硅薄鐨勮璁℃ā寮忋傞潰鍚戝璞℃妧鏈殑鐩殑涔嬩竴灝辨槸鎻愰珮杞歡鐨勯噸鐢ㄦэ紝鑰屽璁捐妯″紡銆佽璁℃柟妗堢殑閲嶇敤鍒欎粠鏇存繁鐨勫眰嬈′笂浣撶幇浜嗛噸鐢ㄧ殑鎰忎箟鍜屾湰璐ㄣ?br>浜轟滑瀵硅璁℃ā寮忔湁寰堝瀹氫箟錛屽叾涓寮曠敤鐨勬渶澶氭槸Christopher Alexander鐨勮璁℃ā寮忕殑瀹氫箟錛氭瘡涓涓璁℃ā寮忔槸涓涓笁鏂圭殑瑙勫垯錛屽畠琛ㄨ揪浜嗕竴涓笂涓嬫枃鐜錛圕ontext錛?涓涓棶棰樺拰涓涓В鍐蟲柟妗堛傝璁℃ā寮忎竴鑸湁濡備笅鍑犱釜鍩烘湰瑕佺礌錛氭ā寮忓悕縐幫紝闂錛岀洰鐨勶紝瑙e喅鏂規錛屾晥鏋滐紝鏍蜂緥浠g爜鍜岀浉鍏寵璁℃ā寮忋?br>璁捐妯″紡鐨勫垎綾繪湁濂藉嚑縐嶏紝鍙互鏍規嵁鍏剁洰鐨勫垎涓哄垱寤哄瀷(Creational)錛岀粨鏋勫瀷(Structural)鍜岃涓哄瀷(Behavioral)涓夌銆傚垱寤哄瀷妯″紡涓昏鏄敤鏉ュ垱寤哄璞★紝緇撴瀯鍨嬫ā寮忎富瑕佹槸澶勭悊綾繪垨瀵硅薄鐨勭粍鍚堬紝琛屼負鍨嬫ā寮忓垯涓昏鐢ㄦ潵鎻忚堪瀵圭被鎴栧璞℃庢牱浜や簰鍜屾庢牱鍒嗛厤鑱岃矗銆備篃鍙互鏍規嵁鑼冨洿灝嗚璁℃ā寮忓垎涓虹被妯″紡鍜屽璞℃ā寮忥紝綾繪ā寮忓鐞嗙被鍜屽瓙綾諱箣闂寸殑鍏崇郴錛岃繖浜涘叧緋婚氳繃緇ф壙寤虹珛錛屽湪緙栬瘧鏃跺埢灝辮紜畾涓嬫潵錛屾槸灞炰簬闈欐佺殑銆傚璞℃ā寮忔槸澶勭悊瀵硅薄闂寸殑鍏崇郴錛岃繖浜涘叧緋誨湪榪愯鏃跺埢鍙樺寲錛屾洿鍏峰姩鎬佹с?
妯″紡鐨勭壒鐐癸細鏄氳繃緇忛獙鑾峰彇鐨勶紝浠ユ煇縐嶇粨鏋勫寲鐨勬牸寮忎功鍐欎笅鏉ワ紝閬垮厤浜嗛亣鍒扮浉鍚岀殑闂閲嶅ご璁捐錛屽瓨鍦ㄤ簬涓嶅悓鐨勬娊璞″眰錛屽湪涓嶆柇瀹屽杽鐨勶紝鏄彲閲嶇敤鐨勪漢宸ヤ駭鐗╋紝浣胯璁″拰鏈濂界殑緇冧範浜や簰錛屼互琚粍鍚堣搗鏉ヨВ鍐蟲洿澶х殑闂銆?
MVC鏈鍒濇槸鍦⊿malltalk-80涓鐢ㄦ潵鏋勫緩鐢ㄦ埛鐣岄潰鐨勩侻浠h〃妯″瀷Model, V浠h〃瑙嗗浘 View錛?C浠h〃 鎺у埗鍣–ontroller銆?br>MVC鐨勭洰鐨勬槸澧炲姞浠g爜鐨勯噸鐢ㄧ巼錛屽噺灝戞暟鎹〃杈撅紝鏁版嵁鎻忚堪鍜屽簲鐢ㄦ搷浣滅殑鑰﹀悎搴︺?鍚屾椂涔熶嬌寰楄蔣浠跺彲緇存姢鎬э紝鍙慨澶嶆э紝鍙墿灞曟э紝鐏墊椿鎬т互鍙婂皝瑁呮уぇ澶ф彁楂樸?br>鍗曠敤鎴風殑搴旂敤閫氬父鏄互浜嬩歡椹卞姩鐨勭敤鎴風晫闈負緇勭粐緇撴瀯鐨勩傚紑鍙戜漢鍛樼敤涓涓晫闈㈠伐鍏風敾浜嗕竴涓敤鎴鋒帴鍙g晫闈紝鐒跺悗緙栧啓浠g爜鏍規嵁鐢ㄦ埛杈撳叆鍘繪墽琛岀浉搴旂殑鍔ㄤ綔錛岃澶氫氦浜掑紡鐨勫紑鍙戠幆澧冮紦鍔辮繖涔堝仛錛屽洜涓哄畠寮鴻皟鍏堟湁鐣岄潰鐒跺悗鍐嶆湁鍔熻兘銆備竴浜涜蔣浠惰璁℃ā寮忕瓥鐣ユ槸榪欐牱鐨勶紝鐒跺悗緇忓父灝嗗浐瀹氬悗鐨勪唬鐮佽瀺鍏ユ渶鍚庣殑緋葷粺褰撲腑銆傚鑷寸殑緇撴灉灝辨槸錛岀▼搴忕粍緇囧洿緇曠敤鎴風晫闈㈠厓绱犲拰鐢ㄦ埛鍦ㄩ偅浜涚晫闈㈠厓绱犱笂鐨勫姩浣滐紝鏁版嵁鐨勫瓨鍌紝搴旂敤鐨勫姛鑳戒互鍙婄敤鏉ユ樉紺虹殑浠g爜閮芥潅涔辨棤绔犵殑緙犵粫鍦ㄤ竴璧楓傚湪鍗曠敤鎴風殑緋葷粺閲屼唬鐮佺粨鏋勬槸鍙互榪欐牱鐨勶紝鍥犱負緋葷粺闇姹備笉浼氶綣佸彉鍖栥備絾鏄涓涓ぇ鐨勭郴緇熷澶у瀷Web緋葷粺錛屾垨鐢靛瓙鍟嗗姟緋葷粺鏉ヨ灝變笉澶傜敤浜嗐?br>閫氳繃鎶婃暟鎹ā寮忎粠鍚勭鍙互琚瓨鍙栧拰鎺у埗鐨勬暟鎹腑鍒嗙鍑烘潵鍙互鏀瑰杽鍒嗗竷寮忕郴緇熺殑璁捐銆侻VC璁捐妯″紡鐢變笁閮ㄥ垎緇勬垚銆傛ā鍨嬫槸搴旂敤瀵硅薄錛屾病鏈夌敤鎴風晫闈€傝鍥捐〃紺哄畠鍦ㄥ睆騫曚笂鐨勬樉紺猴紝浠h〃嫻佸悜鐢ㄦ埛鐨勬暟鎹傛帶鍒跺櫒瀹氫箟鐢ㄦ埛鐣岄潰瀵圭敤鎴瘋緭鍏ョ殑鍝嶅簲鏂瑰紡錛岃礋璐f妸鐢ㄦ埛鐨勫姩浣滆漿鎴愰拡瀵筂odel鐨勬搷浣溿侻odel 閫氳繃鏇存柊View鐨勬暟鎹潵鍙嶆槧鏁版嵁鐨勫彉鍖栥?br>涓夎呭叧緋誨鍥撅細 
瀵筂VC鍏崇郴鍥劇殑鐞嗚В
鍥? MVC鐨勫垎宸ヤ笌鍗忎綔
2. MVC涓殑璁捐妯″紡
涓涓互MVC涓烘灦鏋勭殑緋葷粺鍖呭惈浜嗗緢澶氱殑璁捐妯″紡錛屼絾鏄笌MVC鏈涓哄瘑鍒囩浉鍏崇殑鏄笅闈笁縐嶆ā寮忥細Observer, Composite鍜孲trategy銆?br>2.1 Observer妯″紡
MVC閫氳繃浣跨敤瀹氳喘/閫氱煡鐨勬柟寮忓垎紱諱簡Model鍜孷iew銆俈iew瑕佷繚璇佽嚜宸辨樉紺鴻兘姝g‘鍦板弽鏄犲嚭Model鐨勫唴瀹瑰拰鐘舵併備竴鏃odel鐨勫唴瀹瑰彂鐢熷彉鍖栵紝蹇呴』鏈変竴涓満鍒舵潵浣垮緱Model鑳藉閫氱煡鐩稿叧鐨刅iew錛屼嬌寰楃浉鍏崇殑View鍙互鍦ㄩ傚綋鐨勬椂鏈哄埛鏂版暟鎹傝繖涓璁¤繕鍙互瑙e喅鏇翠竴鑸殑闂錛屽皢瀵硅薄鍒嗙錛屼嬌寰椾竴涓璞$殑鏀瑰彉鑳藉褰卞搷鍒板彟涓浜涘璞★紝鑰岃繖涓璞″茍涓嶇煡閬撻偅浜涜褰卞搷鐨勫璞$殑緇嗚妭銆傝繖灝辨槸琚弿榪頒負Observer鐨勮璁℃ā寮忋?
妯″紡綾誨瀷錛歄bserver妯″紡鏄璞″瀷妯″紡錛屽悓鏃跺畠涔熸槸琛屼負鍨嬫ā寮忋?br>妯″紡鐩殑錛氬畾涔夊璞¢棿鐨勪竴瀵瑰鐨勪緷璧栧叧緋伙紝褰撲竴涓璞$殑鍊兼垨鐘舵佸彂鐢熸敼鍙樻椂錛屾墍鏈変笌瀹冩湁渚濊禆鍏崇郴鐨勫璞¢兘寰楀埌閫氱煡騫惰嚜鍔ㄦ洿鏂般傛煇涓鏁版嵁鍙兘鏈夊縐嶆樉紺烘柟寮忥紝騫朵笖鍙兘鍚屾椂浠ヤ笉鍚岀殑鏂瑰紡鏄劇ず錛堝鍥?錛夈傚綋閫氳繃鏌愪竴縐嶆柟寮忔敼鍙樹簡鏁版嵁錛岄偅涔堝叾浠栫殑鏄劇ず閮藉簲璇ヨ兘绔嬪嵆鐭ラ亾鏁版嵁鐨勬敼鍙樺拰鍋氱浉搴旂殑璋冩暣銆?br>妯″紡緇撴瀯錛?br>
鍥?3. Observer妯″紡鐨勭粨鏋勫浘
鏁堟灉錛?br>1. 鎶借薄鑰﹀悎銆傜洰鏍囧璞″彧鐭ラ亾瀹冩湁涓浜涜瀵熻咃紝姣忎釜瑙傚療鑰呴兘絎﹀悎鎶借薄鐨凮bserver綾葷殑綆鍗曟帴鍙o紝騫朵笉鐭ラ亾瀹冧滑鍏蜂綋灞炰簬鍝釜綾匯傝繖鏍蜂嬌寰楃洰鏍囧拰瑙傚療鑰呬箣闂寸殑鑰﹀悎鏈灝忎笖鎶借薄銆?br>2. 鏀寔騫挎挱閫氫俊銆傜洰鏍囧彂閫侀氱煡涓嶇敤鎸囧畾瑙傚療鑰咃紝濡備綍澶勭悊閫氱煡鐢辮瀵熻呭喅瀹氥?br>3. 鍙兘鐨勬剰澶栨洿鏂般傝澶勭悊濂芥洿鏂伴昏緫錛岄伩鍏嶉敊璇洿鏂般?
MVC鐨勪竴涓噸瑕佺壒寰佸氨鏄疺iew鍙互宓屽銆傚祵濂楃殑緇勫悎瑙嗗浘鍙敤浜庝換浣曡鍥懼彲鐢ㄧ殑鍦版柟錛岃屼笖鍙互綆$悊宓屽瑙嗗浘銆傝繖縐嶆濇兂鍙嶆槧鍑哄皢緇勫悎鐨勮鍥句笌鍏剁粍浠跺鉤絳夊寰呯殑璁捐銆傝繖縐嶈璁℃濇兂鍦ㄩ潰鍚戝璞¢鍩熷唴琚弿榪版垚涓篊omposite鐨勮璁℃ā寮忋?br>妯″紡綾誨瀷錛欳omposite妯″紡鏄璞″瀷妯″紡錛屽悓鏃跺畠涔熸槸緇撴瀯鍨嬫ā寮忋?br>妯″紡鐩殑錛氬皢瀵硅薄緇勫悎鎴愭爲褰㈢粨鏋勪互琛ㄧず"閮ㄥ垎-鏁翠綋"灞傛緇撴瀯銆侰omposite浣跨粍鍚堝璞$殑浣跨敤鍜屽崟涓璞$殑浣跨敤鍏鋒湁涓鑷存с?br>妯″紡緇撴瀯錛?br>
鍥?. Composite妯″紡鐨勭粨鏋勫浘
鏁堟灉錛?br>1. 瀹氫箟浜嗗寘鍚畝鍗曞璞″拰緇勫悎瀵硅薄鐨勭被灞傛緇撴瀯銆傜畝鍗曞璞″彲浠ヨ緇勫悎鍒板鏉傚璞′腑錛岃岀粍鍚堢殑瀵硅薄鍙互鍐嶈緇勫悎銆傝繖鏍峰鎴風浠g爜涓敤鍒扮畝鍗曞璞$殑鍦版柟閮藉彲浠ヤ嬌鐢ㄧ粍鍚堝璞°?br>2. 綆鍖栧鎴風浠g爜銆傚鎴風涓嶇敤鐭ラ亾鏌愬璞℃槸綆鍗曞璞¤繕鏄粍鍚堝璞★紝鍙互浠ヤ竴鑷寸殑鏂瑰紡浣跨敤榪欎簺瀵硅薄銆?br>3. 鏇村鏄撳鍔犳柊綾誨瀷鐨勭粍浠躲傛柊鐨勭粍浠跺彲浠ユ柟渚垮湴鍔犲叆宸叉湁緇勫悎瀵硅薄涓笉鐢ㄦ敼鍙樺鎴風浠g爜銆?/p>
MVC鐨勫彟涓閲嶈鐗瑰緛鏄彲浠ュ湪涓嶆敼鍙榁iew鐨勬儏鍐典笅鏀瑰彉View瀵圭敤鎴瘋緭鍏ョ殑鍝嶅簲鏂瑰紡銆傝繖瀵逛竴涓粡甯擱渶瑕佸彉鏇村搷搴旈昏緫鐨勭郴緇熸潵璇存槸闈炲父閲嶈鐨勩侻VC鎶婂搷搴旈昏緫灝佽鍦–ontroller涓傛湁涓涓狢ontroller鐨勭被灞傛緇撴瀯錛屽彲浠ユ柟渚垮湴瀵瑰師鏈塁ontroller鍋氶傚綋鏀瑰彉錛屽垱寤烘柊鐨凜ontroller銆俈iew浣跨敤Controller瀛愮被鐨勫疄渚嬫潵瀹炵幇涓涓壒瀹氱殑鍝嶅簲絳栫暐銆傝瀹炵幇涓嶅悓鐨勫搷搴旂瓥鐣ワ紝鍙鐢ㄤ笉鍚岀綾葷殑Controller瀹炰緥鏇挎崲鍗沖彲銆傝繕鍙互鍦ㄨ繍琛屾椂鍒婚氳繃鏀瑰彉View鐨凜ontroller鏉ユ敼鍙榁iew瀵圭敤鎴瘋緭鍏ョ殑鍝嶅簲絳栫暐銆傝繖縐峍iew-Controller鐨勫叧緋繪槸琚弿榪頒負Strategy鐨勮璁℃ā寮忕殑涓涓緥瀛愩?br>妯″紡綾誨瀷錛歋trategy妯″紡鏄璞″瀷妯″紡錛屽悓鏃跺畠涔熸槸琛屼負鍨嬫ā寮忋?br>妯″紡鐩殑錛氬畾涔変竴緋誨垪鐨勭畻娉曪紝騫朵笖鎶婂畠浠皝瑁呰搗鏉ワ紝浣垮畠浠彲浠ヤ簰鐩告浛鎹紝浣垮緱綆楁硶鍙互鐙珛浜庝嬌鐢ㄥ畠鐨勫鎴風鑰屽彉鍖栥?
妯″紡緇撴瀯錛?br>
鐜板湪鐨勪竴浜涘熀浜嶹eb鐨勫垎甯冨紡緋葷粺濡侭2B鐢靛瓙鍟嗗姟緋葷粺錛屽氨閫傚悎閲囩敤MVC鏋舵瀯銆?br>閫氳繃鍒嗘瀽錛屼粠楂樺眰嬈$殑瑙掑害鍙互灝嗕竴涓簲鐢ㄧ殑瀵硅薄鍒嗕負涓夌被銆備竴綾誨氨鏄礋璐f樉紺虹殑瀵硅薄錛屼竴綾誨璞″寘鍚晢涓氳鍒欏拰鏁版嵁錛岃繕鏈変竴綾誨氨鏄帴鏀惰姹傦紝鎺у埗鍟嗕笟瀵硅薄鍘誨畬鎴愯姹傘傝繖浜涘簲鐢ㄧ殑鏄劇ず鏄粡甯擱渶瑕佸彉鎹㈢殑錛屽緗戦〉鐨勯鏍鹼紝鑹茶皟錛岃繕鏈夐渶瑕佹樉紺虹殑鍐呭錛屽唴瀹圭殑鏄劇ず鏂瑰紡絳夈傝屽晢涓氳鍒欏拰鏁版嵁鏄浉瀵硅紼沖畾鐨勩傚洜姝わ紝琛ㄧず鏄劇ず鐨勫璞iew緇忓父闇瑕佸彉鍖栫殑錛岃〃紺哄晢涓氳鍒欏拰鏁版嵁鐨勫璞odel瑕佺浉瀵圭ǔ瀹氾紝鑰岃〃紺烘帶鍒剁殑Controller鍒欐渶紼沖畾銆?br>閫氬父褰撶郴緇熷彂甯冨悗錛孷iew瀵硅薄鏄敱緹庡伐錛孒TML/JSP璁捐浜哄憳鎴栬呯郴緇熺鐞嗗憳鏉ヨ礋璐g鐞嗙殑銆侰ontroller瀵硅薄鐢卞簲鐢ㄥ紑鍙戜漢鍛樺紑鍙戝疄鏂斤紝鍟嗕笟瑙勫垯瀵硅薄鍜屽晢涓氭暟鎹璞″垯鐢卞紑鍙戜漢鍛橈紝棰嗗煙涓撳鍜屾暟鎹簱綆$悊鍛樺叡鍚屽畬鎴愮殑銆傛樉紺洪昏緫鍦╓eb灞傛垨瀹㈡埛绔帶鍒訛紝鍙互鏄疭ervlet 鎴朖SP錛屽姩鎬佸湴鐢熸垚Html銆備竴鑸潵璇撮噰鐢↗SP瑕佹瘮閲囩敤Servlet瑕佸ソ銆侸SP鏇村ソ鍦板皢浠g爜涓嶩tml閮ㄥ垎鍒嗗紑錛屾湁鍒╀簬欏甸潰璁捐浜哄憳鍜屼唬鐮佸紑鍙戜漢鍛樼殑鍒嗙錛屾彁楂樻晥鐜囥傚悓鏃禞SP鍙互瀹屾垚鎵鏈塖ervlet瀹屾垚鐨勫姛鑳斤紝瀹為檯涓奐SP鏈緇堜篃杞崲鎴愪竴涓猄ervlet銆備笌鎺у埗鏈夊叧鐨勫璞″瓨鍦ㄤ簬緋葷粺鐨勬瘡涓涓眰嬈★紝鍗忚皟璺ㄥ眰鍔ㄤ綔銆傚寘鍚晢涓氳鍒欏拰鏁版嵁鐨勫璞″瓨鍦ㄤ簬EJB灞傦紙浠JB涓轟腑蹇冪殑妯″紡錛夋垨Web灞傦紙浠eb涓轟腑蹇冪殑妯″紡錛夈?br>
View浠h〃緋葷粺鐨勬樉紺猴紝瀹冨畬鍏ㄥ瓨鍦ㄤ簬Web灞傘備竴鑸敱JSP, Java Bean鍜孋ustom Tag緇勬垚銆侸SP鍙互鍔ㄦ佺敓鎴愮綉欏靛唴瀹癸紝Custom Tag 鏇存柟渚夸簡浣跨敤Java Bean錛岃屼笖瀹冨彲浠ュ皝瑁呮樉紺洪昏緫錛屾洿鏈夊埄浜庝簬妯″潡鍖栧拰閲嶇敤銆備竴浜涜璁¤壇濂界殑Custom Tag鍙互鍦ㄥ涓狫SP鐢氳嚦鍙互鍦ㄤ笉鍚岀殑緋葷粺閲岄噸澶嶄嬌鐢ㄣ侸ava Bean鐢ㄦ潵鎺у埗JSP鍜孧odel瀵硅薄銆侸SP閫氳繃Java Bean 鏉ヨ鍙朚odel瀵硅薄涓殑鏁版嵁錛孧odel鍜孋ontroller瀵硅薄鍒欒礋璐eJava Bean鐨勬暟鎹洿鏂般備竴鑸潵璇達紝鍙互鍏堣璁捐鍑烘墍鏈夊彲鑳藉嚭鐜扮殑灞忓箷錛屽嵆鐢ㄦ埛浣跨敤緋葷粺鏃跺彲浠ョ湅鍒扮殑鎵鏈夊唴瀹廣傜劧鍚庢牴鎹繖浜涘唴瀹癸紝鎵懼嚭鍏叡閮ㄥ垎錛岄潤鎬侀儴鍒嗗拰鍔ㄦ佸彉鍖栭儴鍒嗐傚彲浠ヨ冭檻浣跨敤妯℃澘鏂規硶錛屾妸鍏敤鐨勫唴瀹瑰崟鐙敓鎴怞SP錛岄渶瑕佸彉鍖栫殑涔熷悇鑷敓鎴怘tml鎴朖SP, 鐢變竴涓ā鏉縅SP, 鎶婅繖浜涗笉鍚岄儴鍒嗗姩鎬佸湴寮曞叆錛坕nclude鏂規硶錛夈傝繕鏈変竴涓鑰冭檻鐨勯棶棰樺氨鏄睆騫曠殑閫夋嫨闂錛屽綋澶勭悊瀹岀敤鎴瘋姹傦紝妯℃澘琚嚜鍔ㄨ皟鐢ㄦ潵鏄劇ず錛岃繖涓樉紺轟竴瀹氳鐭ラ亾鐢ㄦ埛鍏沖績鐨勫睆騫曟槸鏈夊摢浜涢儴鍒嗙粍鎴愩傛墍浠ュ彲浠ヨ冭檻鎶婃墍鏈夊睆騫曠殑瀹氫箟鏀懼湪涓涓泦涓殑鏂囦歡閲岋紝濡備竴涓猨ava鏂囦歡鎴栨枃鏈枃浠躲傜敱浜庤冭檻鍒板睆騫曞畾涔夋枃浠跺皢鏉ョ殑鍙樻洿鍙兘鎬э紝鏈濂戒嬌鐢ㄦ枃鏈枃浠跺涓涓猉ML鏂囦歡錛岃繖鏍峰皢鏉ユ洿鏀逛笉鐢ㄩ噸鏂扮紪璇戙傚彲浠ユ牴鎹敤鎴瘋緭鍏ョ殑URL鍜屽弬鏁板彲浠ユ槧灝勫埌鏌愪竴涓粨鏋滃睆騫曪紝褰撶劧鏈夊彲鑳借繕瑕佹牴鎹姩浣滅殑鎵ц緇撴灉閫夋嫨涓嶅悓鐨勭粨鏋滃睆騫曞唴瀹廣傛墍浠ラ渶瑕佷竴涓姹備笌璧勬簮鐨勫尮閰嶆枃浠訛紙XML錛夛紝濡傛灉涓涓猆RL璇鋒眰鏈夊嚑縐嶄笉鍚岀粨鏋滐紝鍒欒鍦ㄨ鏂囦歡涓寚鏄庢槸鍚﹂渶瑕佹祦鎺у埗錛堜竴縐峜ontroller瀵硅薄錛変互鍙婁笉鍚屾祦鍚戠殑瀵瑰簲灞忓箷銆?br>
3.2 Model鍦╓eb緋葷粺涓殑搴旂敤
Model瀵硅薄浠h〃浜嗗晢涓氳鍒欏拰鍟嗕笟鏁版嵁錛屽瓨鍦ㄤ簬EJB灞傚拰Web灞傘傚湪J2EE鐨勮鑼冧腑錛岀郴緇熸湁浜涙暟鎹渶瑕佸瓨鍌ㄤ簬鏁版嵁搴撲腑錛屽鐢ㄦ埛鐨勮處鍙蜂俊鎭紙account model錛夛紝鍏徃鐨勬暟鎹?company model)絳夛紝涔熸湁涓浜涗笉闇瑕佽褰曞湪鏁版嵁搴撻噷鐨勶紝濡傛煇鐢ㄦ埛嫻忚鐨勫綋鍓嶄駭鍝佺洰褰?catalog model)錛屼粬鐨勮喘鐗╁唴瀹?shopping cart model)絳夈傝繖浜沵odel鏁版嵁瀛樺湪浜庡摢涓灞傝鏍規嵁瀹冧滑鐨勭敓鍛藉懆鏈熷拰鑼冨洿鏉ュ喅瀹氥傚湪Web灞傛湁HttpSession鍜孲ervletContext鍙奐ava Bean瀵硅薄鏉ュ瓨鍌ㄦ暟鎹紝鍦‥JB灞傚垯鏈塃JB鏉ュ瓨鍌ㄦ暟鎹拰閫昏緫銆俉eb灞傜殑Java Bean鐨刴odel瀵硅薄瀛樺偍浜咵JB灞俶odel瀵硅薄鐨勬暟鎹殑鎷瘋礉銆傚洜涓篍JB灞傛湁寰堝涓嶅悓鐨刴odel瀵硅薄錛屾墍浠eb灞傚彲浠ラ氳繃涓涓狹odelManager鏉ユ帶鍒禘JB灞傜殑鍚刴odel瀵硅薄錛屽湪ModelManger涓彲浠ュ皝瑁呬嬌鐢ㄥ悗鍙癿odel瀵硅薄鐨勬柟娉曘?br>鍦‥JB灞傛妸鎵鏈夌殑鏁版嵁鍜岃鍒欓兘妯″紡鍖栦負EJB涔熸槸涓嶆伆褰撶殑銆傚鍙互鎶婂瓨鍙栨暟鎹簱鐨勫璞℃ā寮忓寲涓篋AO瀵硅薄銆侱AO涓彲浠ュ皝瑁呬笌鍏蜂綋鏁版嵁搴撶殑浜や簰緇嗚妭錛屽鍙互璇誨啓涓嶅悓鐨勮〃錛屽涓暟鎹簱錛岀敋鑷沖縐嶆暟鎹簱銆傚瀹氬崟鐨刴odel瀵硅薄鍙互鏄竴涓狾rderDAO, 瀹冨彲鑳借鍚屾椂澶勭悊Order琛紝OrderStatus琛ㄥ拰OrderItemLines琛ㄣ?br>榪樻湁鍙互鑰冭檻浣跨敤Value瀵硅薄銆備竴涓猇alue 瀵硅薄鍙互灝佽榪滅▼瀵硅薄錛屽洜涓烘瘡涓涓榪滅▼瀵硅薄鐨勫睘鎬ч兘鍙兘鏄竴涓繙紼嬭繃紼嬭皟鐢紝閮戒細鑰楄垂緗戠粶璧勬簮銆傚彲浠ュ湪EJB鐨勮繙紼嬪璞′腑浣跨敤Value瀵硅薄. 鍦ㄨ繙紼嬪璞′腑涓嬈℃у緱鍒癡alue瀵硅薄鏉ュ緱鍒版墍鏈夊睘鎬х殑鍊箋?/p>
Controller瀵硅薄鍗忚皟Model涓嶸iew錛屾妸鐢ㄦ埛璇鋒眰緲昏瘧鎴愮郴緇熻瘑鍒殑浜嬩歡銆傚湪Web灞傦紝涓鑸湁涓涓狹ainServlet(鎴朚ain.jsp)錛屾帴鏀舵墍鏈夎姹傦紝瀹冨彲浠ヨ皟鐢ㄥ睆騫曟祦綆$悊鍣紙ScreenFlowManger錛夊喅瀹氫笅涓涓睆騫曘備竴鑸繕鏈変竴涓姹傚鐞嗗櫒RequestProcessor錛屽寘鍚墍鏈夎姹傞兘闇瑕佸仛鐨勫鐞嗛昏緫錛屽鎶婅姹傜炕璇戞垚緋葷粺浜嬩歡錛圧equestToEvent錛夈傝姹傚鐞嗗櫒閫氬父榪樺寘鍚竴涓唬鐞嗗璞lientControlWebImpl錛屽畠鏄疎JB灞傜殑閫昏緫澶勭悊鐨勫湪Web灞傜殑浠g悊銆傚湪EJB灞傦紝鏈変竴涓狢lientController鎻愪緵Web 灞傚EJB灞傜殑鍙璁塊棶銆傝繕鏈変竴涓猄tateMachine鐢ㄦ潵寤虹珛鍜屽垹闄jb錛屽鐞哤eb灞傞佹潵鐨勪簨浠躲?br>Controller榪樻湁涓涓噸瑕佺殑鍔熻兘灝辨槸鍚屾View鍜孧odel鐨勬暟鎹傚湪ModelManger涓寘鍚竴涓狹odelUpdateManger錛屽畠鎶婄郴緇熶簨浠惰漿鎹負涓涓狹odel鐨勯泦鍚堬紝鍗蟲墍鏈夐渶瑕佸悓姝ョ殑Model錛岀劧鍚庨氱煡Listeners鍘誨仛鍚屾鎿嶄綔銆?br>
榪戝勾鏉ラ殢鐫浜掕仈緗戞妧鏈殑鍙戝睍鍜屾柊鐨勫晢涓氭ā寮忕殑鍑虹幇錛屽繀鐒朵細鍑虹幇澶ч噺鍩轟簬Web鐨勫簲鐢ㄧ郴緇熴傚浜庡浣曡璁¤繖浜涚郴緇熺殑浣撶郴緇撴瀯錛屼篃閫愭笎鏈変簡涓浜涚粺涓鐨勮璇嗭紝鏈涓昏鐨勬槸鐨勫氨鏄叾浣撶郴緇撴瀯瑕佸悎鐞嗭紝寮鏀俱傞渶姹傛案榪滀細姣旀妧鏈拰璁捐鎬濇兂鍙戝睍蹇紝瑕佷嬌灝嗘潵緋葷粺鐨勫崌綰ф墍浠樺嚭鐨勪唬浠鋒渶灝忥紝鐮旂┒杞歡緋葷粺鐨勪綋緋葷粨鏋勮繕鏄潪甯稿緢鐢ㄥ拰鏈夊繀瑕佺殑銆?br>
鍙傝冩枃鐚?/strong>
[1] 璁捐妯″紡錛屼綔鑰匛rich Gamma 絳夛紝ISBN 7-111-07575-7, 鏈烘宸ヤ笟鍑虹増紺?2000.9
[2] Core J2EE Patterns, 浣滆匘eepak Alurm 絳? ISBN 0-13-064884-1, Sun Microsystems Inc, 2001騫?br>[3] Designing Enterprise Applications with the J2EETM Platform, 浣滆匩icholas Kassem 絳夛紝 Sun Microsystems, Inc. 2000騫?br>
]]>
鏈夊崄涓紑鍏崇瓑闂磋窛鎺掓垚涓綰匡紝姣忎釜寮鍏沖搴斿叾涓婃柟鐨勪竴鐩忕伅錛堝崄鐩忕伅涔熸帓鎴愪竴綰匡級銆傛瘡鎸夊姩涓涓嬪紑鍏籌紝鍙互浣垮搴旂殑鐏敼鍙樼姸鎬侊紙鍘熸潵浜潃鐨勫皢鐔勭伃錛屽師鏉ョ唲鐏殑灝嗚鐐逛寒錛夈?br>浣嗘槸錛岀敱浜庡紑鍏充箣闂寸殑璺濈寰堝皬錛屾瘡嬈℃寜鍔ㄥ紑鍏蟲椂錛岀浉閭葷殑涓涓紑鍏充篃灝嗚鎸夊姩銆備緥濡傦細鎸夊姩絎?涓紑鍏籌紝鍒欏疄闄呬笂絎?銆?銆?涓紑鍏抽兘琚寜鍔ㄣ傝屾寜鍔ㄩ潬杈圭殑絎?涓紑鍏蟲椂錛岀1銆?涓紑鍏抽兘琚寜鍔ㄣ傚茍涓旓紝鏃犳硶鍙寜鍔ㄦ渶闈犺竟鐨勪竴涓紑鍏熾?br>鐜板湪緇欏嚭鍗佺洀鐏殑鍒濆鐨勭姸鎬佸拰鐩爣鐘舵侊紝瑕佹眰璁$畻錛氫粠鍒濆鐘舵佹敼鍙樺埌鐩爣鐘舵佹墍闇瑕佺殑鏈灝戞搷浣滄鏁般?br>鍑芥暟鎺ュ彛錛?br>int MinChange(const int Start[],const int End[]);
鍏朵腑錛歋tart琛ㄧず浜嗗垵濮嬬姸鎬侊紝End琛ㄧず浜嗙洰鏍囩姸鎬併傝〃紺虹姸鎬佺殑鏁扮粍錛圫tart鍜孍nd錛変腑錛岃嫢鏌愬厓绱犱負0琛ㄧず瀵瑰簲鐨勭伅浜潃錛屽惁鍒欒〃紺哄搴旂殑鐏病鏈変寒銆傝皟鐢ㄥ嚱鏁版椂淇濊瘉Start鍜孍nd鏁扮粍闀垮害鍧囦負10錛屽茍淇濊瘉鏈夎В銆?
鐪嬩簡寰堝浜虹殑瑙f硶閮芥槸鐢ㄥ驚鐜亶鍘嗘潵鍒ゆ柇鏄惁杈懼埌鏈鍚庤姹傦紝浣嗘槸濡傛灉鍜岀嚎褰唬鏁扮粨鍚堢殑璇濓紝灝辨湁涓縐嶅緢蹇熺殑瑙f硶銆?br>
綰﹀畾錛氫互涓嬫墍鐢ㄧ殑‘錛?#8217;鍙烽兘鏄?#8216;寮傛垨’鐨勮繍綆椼?br>鍏堢畝鍖栦竴涓嬶紝鍋囪鏈夊洓涓伅錛屽垵濮嬬姸鎬乻0锝瀞3錛岀洰鏍囩姸鎬佹槸e0锝瀍3錛岃漿鎹竴嬈$姸鎬佸氨鏄拰1榪涜寮傛垨榪愮畻涓嬈★紝鎵浠ョ姸鎬佽漿縐葷煩闃典負錛?br>(s0,s1,s2,s3)+k0*(1,1,0,0)+k1*(1,1,1,0)錛媖2*(0,1,1,1)+k3*(0,0,1,1)=(e0,e1,e2,e3);
鍏朵腑k(n)琛ㄧず絎琻涓紑鍏蟲墍緲誨姩鐨勬鏁般傚茍涓旓紝娉ㄦ剰寮傛垨榪愮畻涓璦錛媌錛媌錛漚錛屾墍浠ワ紝鏌愪釜寮鍏崇炕鍔ㄥ伓鏁版鐨勬晥鏋滅浉褰撲簬娌℃湁緲誨姩錛岀炕鍔ㄥ鏁版鐨勬晥鏋滅浉褰撲簬緲誨姩涓嬈★紱鍙堢敱浜庡紓鎴栬繍綆楁弧瓚充氦鎹㈠緥錛屾墍浠ョ炕鍔ㄧ殑欏哄簭娌℃湁褰卞搷銆傜患涓婃瘡涓紑鍏崇炕鍔ㄧ殑嬈℃暟鍙湁1嬈℃垨0嬈″氨瓚沖浜嗐?br>
璁緈(n)=s(n)+e(n)錛屾敞鎰忓紓鎴栬繍綆椾腑鐨?-'涔熷氨鏄?+'錛屾墍浠ヨВ綰挎ф柟紼嬬粍錛?br>k0+k1 =m1;
k0+k1+k2 =m2;
k1+k2+k3=m3;
k2+k3=m4;
鍋囪瑙e瓨鍦紝灝卞彲浠ョ畻鍑洪氳В(k0,k1,k2,k3)錛屽啀緇熻鍑洪氳В涓?鐨勪釜鏁幫紝灝辨槸鎵闇瑕佺炕鍔ㄧ殑嬈℃暟浜嗐傚茍涓旇繕鍙互鐭ラ亾鍝簺寮鍏抽渶瑕佹嫧鍔紝姣斿綆楀嚭瑙f槸(1,0,1,0)灝辨槸絎?鍜?涓紑鍏抽渶瑕佹嫧鍔ㄤ竴嬈°?br>
鍥犳閽堝鏈鐩殑10涓伅娉★紝鏈漢宸茬畻鍑鴻繖10鍏冪嚎鎬ф柟紼嬬粍鐨勯氳В錛?br>k0=m0+m2+m3+m5+m6+m8+m9;
k1=m2+m3+m5+m6+m8+m9;
k2=m0+m1;
k3=m3+m0+m1+m5+m6+m8+m9;
k4=m5+m6+m8+m9;
k5=m4+m3+m0+m1;
k6=m6+m4+m3+m0+m1+m8+m9;
k7=m8+m9;
k8=m7+m6+m4+m3+m0+m1;
k9=m9+m7+m6+m4+m3+m0+m1;
鍜屼笂闈竴鏍鳳紝m(n)涓哄紑濮嬬姸鎬佷笌鐩爣鐘舵佺殑姣忎綅寮傛垨銆傝嚦浜庢槸鍚﹀瓨鍦ㄨВ錛屾湰浜哄凡灝嗘緋繪暟鐭╅樀鍖栫畝涓哄瑙掔煩闃碉紝鍙互鐪嬪埌緋繪暟鐭╅樀鐨勭З錛圧ank錛変笌鏈煡鏁扮殑涓暟鐩哥瓑錛屾墍浠ユ棤璁烘槸浠諱綍鐨勮緭鍏ュ拰杈撳嚭鍙樻崲閮借兘鎵懼埌鍞竴瑙c?br>
鏈漢紼嬪簭濡備笅錛?br>int MinChange(const int Start[],const int End[]){
int m[10];
int k[10];
int res=0;
int i,j,n;
for(i=0;i<10;i++){
m[i]=Start[i]^End[i]; /* m[]=Start[] XOR End[] */
}
/* calculate roots */
k[0]=m[0]^m[2]^m[3]^m[5]^m[6]^m[8]^m[9];
k[1]=m[2]^m[3]^m[5]^m[6]^m[8]^m[9];
k[2]=m[0]^m[1];
k[3]=m[3]^m[0]^m[1]^m[5]^m[6]^m[8]^m[9];
k[4]=m[5]^m[6]^m[8]^m[9];
k[5]=m[4]^m[3]^m[0]^m[1];
k[6]=m[6]^m[4]^m[3]^m[0]^m[1]^m[8]^m[9];
k[7]=m[8]^m[9];
k[8]=m[7]^m[6]^m[4]^m[3]^m[0]^m[1];
k[9]=m[9]^m[7]^m[6]^m[4]^m[3]^m[0]^m[1];
/* count for switch times */
for(j=0;j<10;j++){
if(k[j]) res++;
}
/* display k(n); */
for(n=0;n<10;n++) printf("%d,",k[n]);
return res;
}
嫻嬭瘯涓葷▼搴忥細
main(){
int A[10]={1,1,1,0,0,1,0,1,1,0};
int B[10]={0,0,1,1,0,0,1,1,1,1};
int C;
C=MinChange(A,B);
printf("**%d**",C);
}
鏄劇ず緇撴灉涓猴細
1錛?錛?錛?錛?錛?錛?錛?錛?錛?錛?*6**
灝辨槸濡傛灉瑕佹妸鐘舵丄杞負鐘舵丅錛岄渶瑕佹妸絎?錛?錛?錛?錛?錛?鍙峰紑鍏崇炕鍔ㄤ竴嬈★紝鍏?嬈°?br>嫻嬭瘯楠岃瘉緇撴灉姝g‘錛氾級
褰撶劧錛屾鍋氭硶涔熸湁涓涓己鐐癸紝灝辨槸褰撶伅鐨勪釜鏁版敼鍙樻椂錛屽氨瑕侀噸鏂拌瀹氱嚎褰㈡柟紼嬬粍鐨勭壒瑙e艦寮忋?br>
]]>
l 鍒濆鍖?br>² 褰撻〉闈㈣鎻愪氦璇鋒眰絎竴涓柟娉曟案榪滄槸鏋勯犲嚱鏁般傛偍鍙互鍦ㄦ瀯閫犲嚱鏁伴噷闈㈠垵濮嬩竴浜涜嚜瀹氫箟灞炴ф垨瀵硅薄錛屼笉榪囪繖鏃跺欏洜
涓洪〉闈㈣繕娌℃湁琚畬鍏ㄥ垵濮嬪寲鎵浠ュ灝戜細鏈変簺闄愬埗銆傜壒鍒湴錛屾偍闇瑕佷嬌鐢℉ttpContext瀵硅薄銆傚綋鍓嶅彲浠ヤ嬌鐢ㄧ殑瀵硅薄鍖呮嫭QueryString,
Form浠ュ強Cookies闆嗗悎錛岃繕鏈塁ache瀵硅薄銆傛敞鎰忥細鍦ㄦ瀯閫犲嚱鏁伴噷鏄笉鍏佽浣跨敤Session鐨勩?
² 涓嬩竴涓柟娉曡繕鏄?
ProcessPostData錛屽疄闄呬笂灝辨槸鍓嶄竴涓柟娉曠殑鍙︿竴嬈¤皟鐢紝瀹冧粛鐒舵槸鍙湪鍥炰紶鐨勬椂鍊欐墽琛屽茍涓旂敱浜庢槸縐佹湁鏂規硶涓嶅彲浠ヨ閲嶅啓銆傚鏋滄偍鏄涓嬈$湅欏甸潰
鐨勮繍琛岃建榪逛篃璁鎬細瑙夊緱榪欎釜鏂規硶鏈変簺澶氫綑銆備絾瀹為檯涓婅繖涓柟娉曟槸蹇呰鐨勫洜涓哄湪OnLoad涓垱寤虹殑鍔ㄦ佹帶浠朵篃闇瑕佷粬浠洖浼犵殑鍊箋備換浣曞湪榪欎互鍚庡垱寤虹殑鎺т歡灝嗗彲浠?
寰楀埌浠栦滑鐨刅iewState錛屼絾鏄笉鑳藉啀寰楀埌浠栦滑鐨勫洖浼犵殑鍊鹼紝騫朵笖涓嶄細瑙﹀彂浠諱綍鍊兼敼鍙樹簨浠?Change Event)銆?/p>
鏂規硶鍥炰紶鎺т歡
ConstructorAlwaysAll
AddParsedSubObjectAlwaysAll
DeterminePostBackModeAlwaysPage
OnInitAlwaysAll
LoadPageStateFromPersistenceMediumPostBackPage
LoadViewStatePostBackAll
ProcessPostData1PostBackPage
OnLoadAlwaysAll
ProcessPostData2PostBackPage
RaiseChangedEventsPostBackPage
RaisePostBackEventPostBackPage
OnPreRenderAlwaysAll
SaveViewStateAlwaysAll
SavePageStateToPersistenceMediumAlwaysPage
RenderAlwaysAll
OnUnloadAlwaysAll
]]>
2錛庣敓瀛樿繕鏄瘉鐏紝榪欐槸涓涓煎緱鎬濊冪殑闂銆?(銆婂搱濮嗛渼鐗廣?
3錛庡杽鑹漢鍦ㄨ拷姹備腑綰電劧榪鋒儤錛屽嵈緇堝皢鎰忚瘑鍒版湁涓鏉℃閫斻?銆婃誕澹痙銆?
4錛庤璇嗚嚜宸辯殑鏃犵煡鏄璇嗕笘鐣岀殑鏈鍙潬鐨勬柟娉曘?(銆婇殢絎旈泦銆?
5錛庝綘浠ヤ負鎴戣傳絀楓佺浉璨屽鉤騫沖氨娌℃湁鎰熸儏鍚?鎴戝悜浣犲彂瑾擄紝濡傛灉涓婂笣璧嬩簣鎴戣儲瀵屽拰緹庤矊錛屾垜浼氳浣犳棤娉曠寮鎴戯紝灝卞儚鎴戠幇鍦ㄦ棤娉曠寮浣犱竴鏍楓傝櫧鐒朵笂甯濇病鏈夎繖涔堝仛錛屽彲鎴戜滑鍦ㄧ簿紲炰笂渚濈劧鏄鉤絳夌殑銆?銆婄畝?鐖便?
6錛庡ぇ浜洪兘瀛﹀潖浜嗭紝涓婂笣姝h冮獙浠栦滑鍛紝浣犺繕娌℃湁鍙楄冮獙錛屼綘搴斿綋鐓х潃瀛╁瓙鐨勬兂娉曠敓媧匯?(銆婄騫淬?
7錛屼綘瓚婃病鏈夊績鑲濓紝灝辮秺楂樺崌寰楀揩錛屼綘姣笉鐣欐儏鍦版墦鍑諱漢瀹訛紝浜哄灝辨曚綘銆傚彧鑳芥妸鐢風敺濂沖コ褰撲綔椹塊┈錛屾妸瀹冧滑楠戝緱絳嬬柌鍔涘敖錛屽埌浜嗙珯涓婁涪涓嬫潵錛岃繖鏍蜂綘灝辮兘杈懼埌嬈叉湜鐨勬渶楂樺嘲銆?(銆婇珮鑰佸ご銆?
8錛庢垜鍙兂璇佹槑涓浠朵簨錛屽氨鏄紝閭f椂欖旈寮曡鎴戯紝鍚庢潵鍙堝憡璇夋垜錛岃鎴戞病鏈夋潈鍒╄蛋閭f潯璺紝鍥犱負鎴戜笉榪囨槸涓櫛瀛愶紝鍜屾墍鏈夊叾浣欑殑浜轟竴鏍楓?(銆婄姜涓庣綒銆?
9錛庝綘鐬э紝妗戜笜?娼樻矙鏈嬪弸錛岄偅杈瑰嚭鐜頒簡涓夊崄澶氫釜澶у緱鍑哄鐨勫法浜恒?(銆婂爞?鍚夎瘍寰楓?
10錛庢垜騫朵笉鎰挎剰浣犲彈鐨勮嫤姣旀垜鍙楃殑榪樺ぇ錛屽笇鏂厠鍒╁か銆傛垜鍙効鎴戜滑姘歌繙涓嶅垎紱伙細濡傛灉鎴戞湁涓鍙ヨ瘽浣夸綘浠婂悗闅捐繃錛屾兂鎯蟲垜鍦ㄥ湴涓嬩篃鎰熷埌涓鏍風殑闅捐繃錛岀湅鍦ㄦ垜鑷繁鐨勪喚涓婏紝楗舵仌鎴戝惂! (銆婂懠鍟稿北搴勩?
11錛庡垢紱忕殑瀹跺涵鏄浉鍚岀殑錛屼笉騫哥殑瀹跺涵鍚勬湁鍚勭殑涓嶅悓銆?(銆婂畨濞?鍗″垪灝煎銆?
12錛庡攭錛屽ゴ闅惰埇鐨勬剰澶у埄錛屼綘鍝鐥涗箣閫嗘梾錛屼綘榪欐毚椋庨洦涓病鏈夎埖鎵嬬殑瀛よ垷錛屼綘涓嶅啀鏄悇鐪佺殑涓誨錛岃屾槸濡撻櫌! (銆婄鏇層?
13錛庡皢鎰熸儏鍩嬭棌寰楀お娣辨湁鏃舵槸浠跺潖浜嬨傚鏋滀竴涓コ浜烘帺楗頒簡瀵硅嚜宸辨墍鐖辯殑鐢峰瓙鐨勬劅鎯咃紝濂逛篃璁稿氨澶卞幓浜嗗緱鍒頒粬鐨勬満浼氥?(銆婂偛鎱笌鍋忚銆?
14錛庨挓澹板張楦e搷浜嗏︹︿竴澹板張涓澹幫紝闈欒哀鑰屽畨璇︼紝鍗充嬌鍦ㄥコ浜哄仛鏂板鐨勯偅涓ソ鏈堜喚閲岋紝閽熷0閲屼篃鎬誨甫鏈夌澶╃殑鍛抽亾銆?(銆婂枾鍤d笌楠氬姩銆?
15錛庝竴涓漢騫朵笉鏄敓鏉ヨ琚墦璐ョ殑錛屼綘灝藉彲浠ユ妸浠栨秷鐏帀錛屽彲灝辨槸鎵撲笉璐ヤ粬銆?(銆婅佷漢涓庢搗銆?
銆銆銆16錛庡綋鐒訛紝琛屾槸琛岀殑錛岃繖鍥虹劧寰堝ソ錛屽彲鏄崈涓囧埆闂瑰嚭浠涔堜貢瀛愭潵鍟娿?(銆婂涓漢銆?
銆銆銆17錛庨潰鍖?闈㈠寘!鎴戜滑瑕侀潰鍖? (銆婅悓鑺姐?
銆銆銆18錛庢垜浠庢病鏈夌埍榪囪繖涓栫晫錛屽畠瀵規垜涔熶竴鏍楓?(銆婃嫓浼﹁瘲閫夈?
19錛?銆鐖辨儏搴旇緇欎漢涓縐嶈嚜鐢辨劅錛岃屼笉鏄洑紱佹劅銆?(銆婂効瀛愪笌鎯呬漢銆?
銆銆銆20錛庢毚椋庨洦灝嗚鍦ㄩ偅涓澶╋紝鐢氳嚦鎶婁竴浜涙Р鏍戝惞鍊掞紝涓浜涙暀鍫傜殑楂樺瑕佸掑錛屼竴浜涘孌夸篃灝嗚鍔ㄦ憞! (銆婃搗娑呰瘲閫夈?
銆銆銆21錛庤嚜宸辯殑琛屼負鏈鎯逛漢鑰葷瑧鐨勪漢錛屽嵈姘歌繙鏄渶鍏堝幓璇村埆浜哄潖璇濈殑浜恒?(銆婁吉鍚涘瓙銆?
銆銆銆22錛庤繖鏃朵竴縐嶇簿紲炰笂鐨勬劅鎱ㄦ補鐒惰岀敓錛岃涓轟漢鐢熸槸鐢卞暅娉c佹娊鍣庡拰寰瑧緇勬垚鐨勶紝鑰屾娊鍣庡崰浜嗗叾涓粷澶ч儴鍒嗐?銆婃?浜ㄥ埄鐭瘒灝忚閫夈?
銆銆銆23錛庡巻鍙插枩鐖辮嫳鍕囪豹榪堢殑浜嬭抗錛屽悓鏃朵篃璋磋矗榪欑浜嬭抗鎵閫犳垚鐨勫悗鏋溿?(銆婄縐樺矝銆?
銆銆銆24錛庢暣涓笅鍗婂ぉ錛屼漢閮藉惉鍑緤鑴傜悆鍘繪濈儲銆備笉榪囨湰鏉ヤ竴鐩寸О鍛煎ス浣溾滃か浜衡濓紝鐜板湪鍗寸畝鍗曞湴縐板懠濂逛綔鈥滃皬濮愨濅簡錛岃皝涔熶笉寰堢煡閬撹繖鏄負鐫浠涔堬紝浠?
浣涘ス浠庡墠鍦ㄨ瘎浠峰綋涓埇鍒頒簡鏌愮鍦頒綅錛岀幇鍦ㄥ憿錛屼漢閮芥兂鎶婂ス浠庨偅縐嶅湴浣嶆媺涓嬩竴綰т技鐨勶紝浣垮ス鏄庣櫧鑷繁鐨勫湴浣嶆槸灝氬彥鎽?(銆婅帿娉婃鐭瘒灝忚閫夈?
25錛庡鏋滃啲澶╂潵浜嗭紝鏄ュぉ榪樹細榪滃悧? 銆(銆婇洩鑾辮瘲閫夈?
銆銆銆26錛庢垜鏄庣櫧浜嗭紝鎴戝凡緇忔壘鍒頒簡瀛樺湪鐨勭瓟妗堬紝鎴戞伓蹇冪殑絳旀錛屾垜鏁翠釜鐢熷懡鐨勭瓟妗堛傚叾瀹烇紝鎴戞墍鐞嗚В鐨勪竴鍒囦簨鐗╅兘鍙互褰掔粨涓鴻崚璇炶繖涓牴鏈殑涓滆タ銆?銆婃伓蹇冦?
銆銆銆27錛庝笘鐣屼笂鏈夎繖鏍蜂竴浜涘垢紱忕殑浜猴紝浠栦滑鎶婅嚜宸辯殑鐥涜嫤鍖栦綔浠栦漢鐨勫垢紱忥紝浠栦滑鎸ユ唱鍩嬭懍浜嗚嚜宸卞湪灝樹笘闂寸殑甯屾湜錛屽畠鍗村彉鎴愪簡縐嶅瓙錛岄暱鍑洪矞鑺卞拰棣欒啅錛屼負瀛よ嫤浼朵粌鐨勮嫤鍛戒漢鍖繪不鍒涗激銆?銆婃堡濮嗗彅鍙旂殑灝忓眿銆?
銆銆銆28錛庡綋鏍奸噷楂?钀ㄥ鑾庝粠鐑﹁簛涓嶅畨鐨勬ⅵ涓啋鏉ユ椂錛屽彂鐜頒粬鍦ㄥ簥涓婂彉鎴愪簡涓涓法澶х殑璺寵殼銆?銆婂彉褰㈣銆?
銆銆銆29錛庡綋鐜板疄鎶樿繃鏉ヤ弗涓濆悎緙濆湴璐村湪鎴戜滑闀挎湡鐨勬ⅵ鎯充笂鏃訛紝瀹冪洊浣忎簡姊︽兂錛屼笌瀹冩販涓轟竴浣擄紝濡傚悓涓や釜鍚屾牱鐨勫浘褰㈤噸鍙犺搗鏉ュ悎鑰屼負涓涓鏍楓?銆婅拷蹇嗕技姘村勾鍗庛?
銆銆銆30錛庝漢涓庝漢涔嬮棿錛屾渶鍙棝蹇冪殑浜嬭帿榪囦簬鍦ㄤ綘璁や負鐞嗗簲鑾峰緱鍠勬剰鍜屽弸璋婄殑鍦版柟錛屽嵈閬彈浜嗙儲鎵板拰鎹熷銆?銆婂法浜轟紶銆?
銆銆銆31錛庣幇鍦ㄦ垜璇寸殑鎮ㄨ鐗瑰埆娉ㄦ剰鍚細鍦ㄥ埆浜哄績涓瓨鍦ㄧ殑浜猴紝灝辨槸榪欎釜浜虹殑鐏甸瓊銆傝繖鎵嶆槸鎮ㄦ湰韜紝鎵嶆槸鎮ㄧ殑鎰忚瘑鍦ㄤ竴鐢熷綋涓禆浠ュ懠鍚搞佽惀鍏諱互鑷抽櫠閱夌殑涓滆タ錛岃繖涔熷氨鏄偍鐨勭伒欖傘佹偍鐨勪笉鏈藉拰瀛樺湪浜庡埆浜鴻韓涓婄殑鎮ㄧ殑鐢熷懡銆?銆婃棩鐡︽垐鍖葷敓銆?
銆銆銆32錛庣編寰風姽濡傚悕棣欙紝緇忕噧鐑ф垨鍘嬫Θ鑰屽叾棣欐剤鐑堬紝鐩栧垢榪愭渶鑳芥樉闇叉伓寰瘋屽巹榪愭渶鑳芥樉闇茬編寰楓?銆婂煿鏍硅璇存枃闆嗐?
銆銆銆33錛庝翰鐖辯殑鑹懼Ξ鏂紝鎴戝嚭鍥斤紝涓轟簡鐖變綘錛屾垜鐣欏湪鍥藉錛屼負浜嗙埍浣狅紝鎴戝洖鍥斤紝涔熸槸涓轟簡鐖變綘!(銆婂ぇ鍗?縐戞嘗鑿插皵銆?
銆銆銆34錛庡己榪粡甯鎬嬌鐑亱鐨勪漢鏇村姞閾佸績錛岃屼粠鏉ヤ笉鑳藉彨浠栦滑鍥炲績杞剰銆?銆婇槾璋嬩笌鐖辨儏銆?
35錛庡湪鍚勭浜嬬墿鐨勫父鐞嗕腑錛岀埍鎯呮槸鏃犳硶鏀瑰彉鍜岄樆鎸$殑錛屽洜涓哄氨鏈ц岃█錛岀埍鍙細鑷娑堜骸錛屼換浣曡璋嬮兘闅句互浣垮畠閫嗚漿銆?銆婂崄鏃ヨ皥銆?
銆銆銆36錛庡彧瑕佷綘鏄ぉ楣呰泲錛屽氨鏄敓鍦ㄥ吇楦″満閲屼篃娌℃湁浠涔堝叧緋匯?銆婂畨寰掔敓绔ヨ瘽銆?
銆銆銆37錛庡氨鎶曟満閽昏惀鏉ヨ錛屼笘鏁呯殑浠峰兼案榪滄槸鏃犲彲姣旀嫙鐨勩?銆婃欖傜伒銆?
銆銆銆38. 璋侀兘鍙兘鍑轟釜閿欏効錛屼綘鍦ㄤ竴浠朵簨鎯呬笂瓚婄悽紓ㄥ緱澶氬氨瓚婂鏄撳嚭閿欍?銆婂ソ鍏靛竻鍏嬪巻闄╄銆?
銆銆銆39錛庢垜浠粡鍘嗙潃鐢熸椿涓獊鐒墮檷涓寸殑涓鍒囷紝姣棤闃插錛屽氨鍍忔紨鍛樿繘鍏ュ垵鎺掋傚鏋滅敓媧諱腑鐨勭涓嬈″僵鎺掍究鏄敓媧繪湰韜紝閭g敓媧繪湁浠涔堜環鍊煎憿?(銆婄敓鍛戒腑涓嶈兘鎵垮彈涔嬭交銆?
銆銆銆40錛庝粬鍙戠幇浜嗕漢綾昏涓虹殑涓********鑷繁榪樹笉鐭ラ亾鈥斺旈偅灝辨槸錛屼負浜嗚浣夸竴涓ぇ浜烘垨灝忓鏋佹兂騫叉煇鏍蜂簨鎯咃紝鍙渶瑕佽娉曟妸閭d歡浜嬫儏寮勫緱涓嶆槗鍒版墜灝辮浜嗐?銆婃堡濮?绱簹鍘嗛櫓璁般?
銆銆銆41錛庡鏈変俊浠扮殑浜猴紝姝繪槸姘哥敓涔嬮棬銆?銆婂け涔愬洯銆?
銆銆銆42錛庢湁涓涓紶璇達紝璇寸殑鏄湁閭d箞涓鍙笩鍎匡紝瀹冧竴鐢熷彧鍞變竴嬈★紝閭f瓕澹版瘮涓栦笂鎵鏈変竴鍒囩敓鐏電殑姝屽0閮芥洿鍔犱紭緹庡姩鍚?銆婅崋媯橀笩銆?
銆銆銆43錛庣寮涓杈堝瓙鍚庯紝浠栧張鍥炲埌浜嗚嚜宸卞嚭鐢熺殑閭g墖鍦熷湴涓娿備粠灝忓埌澶э紝浠栦竴鐩存槸閭d釜鍦版柟鐨勭洰鍑昏呫?銆婂挨鍒╄タ鏂?
銆銆銆44錛庡悓涓婂笣淇濇寔鑱旂郴鏄竴鐮佷簨錛屼粬浠兘璧炲悓榪欎竴鐐癸紝浣嗚涓婂笣涓澶╀簩鍗佸洓灝忔椂閮藉緟鍦ㄨ韓杈瑰氨鏄彟涓鐮佷簨浜嗐?銆婄浜屽崄浜屾潯鍐涜銆?
銆銆銆45錛庡湪鐢滆湝鐨勬ⅵ涔¢噷錛屼漢浜洪兘鏄鉤絳夌殑錛屼絾鏄綋澶槼鍗囪搗錛岀敓瀛樼殑鏂椾簤閲嶆柊寮濮嬫椂錛屼漢涓庝漢涔嬮棿鍙堟槸澶氫箞鐨勪笉騫崇瓑銆?銆婃葷粺鍏堢敓銆?
銆銆銆46錛庡紑鍙戜漢綾繪櫤鍔涚殑鐭胯棌鏄皯涓嶄簡瑕佺敱鎮i毦鏉ヤ績鎴愮殑銆?銆婂熀搴﹀北浼埖銆?
銆銆銆47錛庣浣犺秺榪戠殑鍦版柟錛岃礬閫旇秺榪滐紱鏈綆鍗曠殑闊寵皟錛岄渶瑕佹渶鑹拌嫤鐨勭粌涔犮?銆婃嘲鎴堝皵璇楅夈?
銆銆銆48錛庢偛浼や嬌浜烘牸澶栨晱閿愩?銆婄害緲?鍏嬮噷鏂湹澶?
銆銆銆49錛庢垜鍦ㄥコ浜鴻窡鍓嶇粡甯稿け璐ワ紝灝辨槸鐢變簬鎴戝お鐖卞ス浠簡銆?銆婂繌鎮斿綍銆?
]]>