Web開發(fā)新體驗(yàn):ASP.NET+3.5MVC+架構(gòu)與實(shí)戰(zhàn)學(xué)習(xí)總結(jié)_第1頁
Web開發(fā)新體驗(yàn):ASP.NET+3.5MVC+架構(gòu)與實(shí)戰(zhàn)學(xué)習(xí)總結(jié)_第2頁
Web開發(fā)新體驗(yàn):ASP.NET+3.5MVC+架構(gòu)與實(shí)戰(zhàn)學(xué)習(xí)總結(jié)_第3頁
Web開發(fā)新體驗(yàn):ASP.NET+3.5MVC+架構(gòu)與實(shí)戰(zhàn)學(xué)習(xí)總結(jié)_第4頁
Web開發(fā)新體驗(yàn):ASP.NET+3.5MVC+架構(gòu)與實(shí)戰(zhàn)學(xué)習(xí)總結(jié)_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、web開發(fā)新體驗(yàn):asp.net 3.5 mvc架構(gòu)與實(shí)戰(zhàn)電子書的網(wǎng)址(目前有第四、第十三章):第1篇 體驗(yàn)篇第1章 初識 3.5 mvc開發(fā)第2章 路由進(jìn)階第3章 htmlhelper控件解析第4章 自定義gridview控件開發(fā)第5章 自定義視圖引擎第6章 圖表開發(fā)第7章 大、中型 3.5 mvc項(xiàng)目開發(fā)第8章 過濾器解析、開發(fā)第9章 控制器與視圖之間的數(shù)據(jù)傳遞第10章 jquery視圖開發(fā)第11章 多項(xiàng)目混合開發(fā)第12章 單元測試第13章 網(wǎng)站部署第2篇 架 構(gòu) 篇第14章 初識聯(lián)系人管理網(wǎng)站第15章 聯(lián)系人管理網(wǎng)站初探第16章 聯(lián)系人管理網(wǎng)站進(jìn)階第17章 聯(lián)系人管理網(wǎng)站高級實(shí)現(xiàn)第3篇

2、實(shí)戰(zhàn)篇第18章 博客網(wǎng)站初探第19章 多層架構(gòu)的博客網(wǎng)站第20章 博客網(wǎng)站頁面總體設(shè)計第22章 博客網(wǎng)站管理頁面第23章 博客網(wǎng)站安全1 體驗(yàn)篇1.1 初識asp.net 3.5 mvc開發(fā)asp.net 3.5 mvc的特點(diǎn)1) 易于調(diào)試2) 易于實(shí)施測試驅(qū)動開發(fā)3) 可擴(kuò)展、可替換如視圖引擎、url路由策略4) 支持web forms的相關(guān)性在視圖模板中支持當(dāng)前的web forms頁面(.aspx)、用戶控件(.ascx)及母版頁(.master)等還支持嵌套母版也、內(nèi)聯(lián)表達(dá)式、數(shù)據(jù)綁定、本地化、數(shù)據(jù)緩存等。5) url被映射到控制器文件夾:對于視圖組建中的公用部分,可以創(chuàng)建一個名稱為sh

3、ared的文件夾,該目錄不屬于單個的控制器,而是屬于所有的控制器,在此文件夾中可以存放母版頁、css樣式表等文件。配置httpmodules節(jié)點(diǎn)注冊了該模塊,程序就會使用 3.5 mvc框架,將頁面的請求轉(zhuǎn)換為url路由,并調(diào)用相關(guān)控制器中的相關(guān)方法,實(shí)現(xiàn)指定視圖的輸出。1.2 路由進(jìn)階路由解析分析在傳統(tǒng)的應(yīng)用程序中,每個請求的頁面對應(yīng)著文件系統(tǒng)中的一個文件,沒有就會出錯。這些頁面事實(shí)上都被表示為一個類,而該類實(shí)現(xiàn)了ihttphandler接口,每當(dāng)一個頁面請求時,就會調(diào)用該類中的processrequest()方法,執(zhí)行processrequest()方法之后,就會將指定的內(nèi)容返回到瀏覽器中

4、。在基于 3.5 mvc框架的網(wǎng)站中,每個被請求的頁面被映射到相應(yīng)的控制器中的相關(guān)方法,控制器負(fù)責(zé)將指定的內(nèi)容返回到瀏覽器中。路由解析分析,主要說明路由解析的主要流程,也就是路由解析管道,實(shí)現(xiàn)路由解析的urlroutingmodule類、iroutehandler接口和ihttphandler接口。urlroutingmodule類是asp.net3.5 mvc 網(wǎng)站中處理程序的入口,每當(dāng)用戶在瀏覽器中鍵入一個url地址,就發(fā)出一個用戶請求,urlroutingmodule類就響應(yīng)用戶的請求,處理用戶的請求;檢索routtable類中的routcollection集合,獲得匹配的路由;通過路由

5、解析,得到route類的實(shí)例化對象;將用戶的請求分發(fā)到實(shí)現(xiàn)接口iroutehandler的路由處理程序,并輸入requestcontext參數(shù);最后再次分發(fā)到實(shí)現(xiàn)接口ihttphandler的mvchandler處理程序,定位到相關(guān)的控制器,從而執(zhí)行控制器中的相關(guān)動作方法,實(shí)現(xiàn)響應(yīng)的輸出。 urlroutingmodule類主要實(shí)現(xiàn)路由的處理,如檢索、匹配等解析過程。使用時在web.config中的配置: httpmodulesurlroutingmodule類在獲得url路由后,將用戶的請求分發(fā)到實(shí)現(xiàn)接口 iroutehandler的mvcroutehandler類,并傳入requestco

6、ntext參數(shù)。url路由 定義url路由將用戶請求的url路由解析為一系列的離散值,該url路由通過占位符定義url的模式。在url路由中,通過大括號()定義占位符,這些占位符就是url路由參數(shù),而字符串中的“/”、“.”等符號則作為分隔符被url路由解析這些離散的數(shù)據(jù),對于不在小括號或者方括號中的信息則被視為一個常量。有效的url路由定義匹配的url例子controller/action/id/products/show/beveragestable/details.aspx/products/ details.aspx products:表名 details.aspx為常量blog/ac

7、tion/entry/ blog(常量) /show(相關(guān)控制器重的方法)/123(一個entry變量)reporttype/year/month/day/sales(reporttype變量)/2008(year變量)/1(month變量)/5(day變量) 設(shè)定url路由參數(shù)的默認(rèn)值 routes.maproute( default, / route name controller/action/id, / url with parameters new controller = home, action = index, id = / parameter defaults 設(shè)定url路由

8、通配符為了實(shí)現(xiàn)對一類url路由的定義,可以使用星號來定義url路由通配符。假定url路由通配符為:query/queryname/*queryvalues,則url通配符參數(shù)值/query/select/bikes/onsalebikes/onsale/query/select/bikesbikes/query/select空白字符串 添加url路由參數(shù)的約束constraints=new routevaluedictionarylocale,a-z2-a-z2,year,d4;locale必須為英文字母,前面2位英文字母必須小寫的,后面2位英文字母必須大寫的。而year必須是4位數(shù)字。url

9、匹配結(jié)果/en-us/2008不匹配/en-us/08不匹配/en-us/2008locale=”en-us”,year=”2008”routing的擴(kuò)展方法擴(kuò)展方法的由來:路由程序集(system.web.routing)是在2008年8月11日更新 的.net 3.5框架sp1版本中發(fā)布的,而asp.net 3.5 mvc 1.0版本是在2009年3月18日才正式發(fā)布。在asp.net mvc版本的不斷改進(jìn)中,微軟的開發(fā)團(tuán)隊(duì)感覺到以往的路由設(shè)置給開發(fā)者帶來不便,但是路由的程序集已經(jīng)發(fā)布,如何在路由程序集中添加新的功能呢?所以將擴(kuò)展方法加在了 system.web.mvc程序集的routec

10、ollectionextemsion類中。優(yōu)化路由設(shè)置 設(shè)置路由名稱:在路由的設(shè)置中,路由名稱是可選的輸入?yún)?shù),路由名稱可以用來生成url路由,但是在路由解析中沒有什么作用。當(dāng)開發(fā)者使用路由名稱來生成url路由的時候,路由模塊將快速定位到指定名稱的路由。則不會通過查詢的方式,一個接一個的查詢。而是直接跳轉(zhuǎn)到路由表中的對應(yīng)路由名稱的路由。 將常用的路由存放在路由表的最前面。該方法不僅提高生成url路由的效率,而且還提高路由解析的效率。這是因?yàn)樵诮馕雎酚傻倪^程中,一旦選找到匹配的路由,就停止路由解析。但需要說明的是,在改變路由的存放位置時,需要注意路由的次序改變是否實(shí)質(zhì)性影響匹配。自定義路由約束1

11、.3 htmlhelper概述在視圖viewpage類中,專門設(shè)置了一個html屬性即為htmlhelper類的類型。1.7 大、中型 3.5 mvc項(xiàng)目開發(fā)個性化目錄 設(shè)置視圖路徑首先:view/home/product文件夾然后: public actionresult list() return view(“product/list”);缺點(diǎn):不便于項(xiàng)目的維護(hù),控制器最好不需要知道視圖的存儲位置,以便實(shí)現(xiàn)控制器與視圖之間良好的分離。mvc進(jìn)階學(xué)習(xí)-個性化目錄結(jié)構(gòu)(一) (一) 簡單mvc目錄結(jié)構(gòu)分析以上是一個再簡單不過的mvc目錄結(jié)構(gòu)了,這也是微軟mvc解決方案的基礎(chǔ)目錄結(jié)構(gòu),在我們一般

12、的mvc開發(fā)項(xiàng)目中,基本上就是套用了這種格式。我們不需要去自己去定義一個目錄,因?yàn)槲④浺呀?jīng)幫我們定義好了。我們只需要在原有的基礎(chǔ)上添加和修改。content 文件夾,內(nèi)容文件夾,姑且這樣理解,我們主要存放樣式文件,圖片文件,xml文件以及其他的一些資源文件。這個沒有太多的介紹。當(dāng)然我們不一定要放到這個 里面去,也可以自己定義一個文件夾。不過我個人還是趨向于放在這個里面,畢竟是別人已經(jīng)定義好了的,拿來主義,直接用就可以了。scripts 文件夾,則主要存放的是javascript 的js文件,其中里面自帶了jquery的核心包和微軟自帶的ajax相關(guān)的js文件。如果我們沒有用到可以刪除(我想你會

13、喜歡上它,舍不得將它刪除)。 還有我們自己定義的一些js文件也可以存放在這個文件夾中。這樣是為了使目錄結(jié)構(gòu)清楚,方便于文件的管理views文件夾,在我們新建mvc項(xiàng)目的時候,這個文件夾下有三個文件夾,分別是shared,home,account。其中 home,account存放的一些aspx頁面。我想你一定會主要到得里面只有aspx頁面而沒有cs頁面。這就是mvc與webform很大不同的地 方。shared文件夾則是存放了母版頁和用戶控件等文件,當(dāng)然它可以存放aspx頁面,比如我們的錯誤頁面。只要是我們想讓他共享的頁面文件都可以存放 在這個里面。這里的home,account 這兩個文件夾

14、不是普通的文件夾(這是要注意的地方),因?yàn)樗c控制器相關(guān)聯(lián)。controllers文件夾,這個文件夾這是存放 控制器類的文件夾,mvc的核心文件夾,一切控制請求轉(zhuǎn)發(fā)都是這個里面的類文件來處理。controller 主要作用是捕獲請求和控制流程轉(zhuǎn)發(fā),其作用可想而知。我們主要到每個控制器都是以*controller 來命名的,如果你第一眼能看出來說明你很聰明。這里的每個控制器都是與views文件夾下的文件夾對應(yīng),home文件夾則對應(yīng) homecontroller 類,home文件夾下的所有文件都可以由homecontroller來處理。當(dāng)然不是一定由它處理。要分清楚,views文件夾下的文件夾就一

15、定對應(yīng)一 個controller,反之的理解是狹隘的(二)視圖路徑的設(shè)置當(dāng)我們苦惱于如果頁面文件很多的時候,1000個aspx頁面我要放在一個文件下,這些文件怎么管理啊。呵呵mvc可以再新建視圖路徑,如上 圖。我們可以再home 文件夾中再建立一個文件夾,這兒里面同樣可以存放aspx頁面。既然可以新建文件夾,那么管理文件就方便多了訪問方式: public actionresult list()return view(detail/studetail);使用這種方式就ok了 設(shè)置視圖查詢路徑mvc進(jìn)階學(xué)習(xí)-個性化目錄結(jié)構(gòu)(二) (一) 淺談mvc目錄結(jié)構(gòu)在上一篇(mvc進(jìn)階學(xué)習(xí)-個性化目錄結(jié)構(gòu)(

16、一)中了解到了mvc 的基本目錄結(jié)構(gòu),以及各個目錄的作用。我們只是說到了表面的目錄結(jié)構(gòu),沒有了解到它運(yùn)行的原理。是不是mvc的目錄結(jié)構(gòu)只能有那種固定的模式呢,我們能否 根據(jù)自己的需要擴(kuò)展這些目錄結(jié)構(gòu)呢。答案是肯定的。因?yàn)?mvc中引用了webfromviewengine 這個視圖引擎(二) webformviewengine視圖引擎1.iview接口 iview接口是對mvc結(jié)構(gòu)中view對象的抽象, 此接口只有一個方法:void render(viewcontext viewcontext, textwriter writer); render方法的作用就是展示view對象, 通常是將頁面h

17、tml寫入到writer中供瀏覽器展示.2.iviewengine接口 mvc中viewengine的抽象,該接口有兩個方法:viewengineresult findpartialview(controllercontext controllercontext, string partialviewname, bool usecache)viewengineresult findview(controllercontext controllercontext, string viewname, string mastername, bool usecache)該方法的作用就是尋找視圖對象,值

18、得注意的是上面兩個方法返回的都不是viewpage 頁面對象,而是viewengineresult 對象。我們可以將viewengineresult理解為一次查詢的結(jié)果, 在viewengineresult對象中包含有本次找到的iview對象. 這句話我也不是太懂,看很多相關(guān)資料是這樣寫的,我也姑且這樣寫吧3.iviewengine 的實(shí)現(xiàn)類iviewengine有兩個實(shí)現(xiàn)類。webformviewengine :virtualpathproviderviewengine:iviewengine 這個是它們的關(guān)系。而mvc中的試圖引擎就是使用的webformviewengine。 webfor

19、mviewengine包括了三個屬性:masterlocationformats 可以個性化母版頁的路徑viewlocationformats 可以個性化試圖頁面的路徑partialviewlocationformats 可以個性化用戶控件的路徑4.在global.asax 中注冊個性化路徑1protectedvoidapplication_start()23viewengines.engines.clear();45viewengines.engines.add(newwebformviewengine()67viewlocationformats=newstring8/0.aspx,9/0

20、.ascx,10/views/1/0.aspx,11/views/1/0.ascx,12/views/shared/0.aspx,13/views/shared/0.ascx1415);16 控件器分組開發(fā)mvc進(jìn)階學(xué)習(xí)-個性化目錄結(jié)構(gòu)(三) (一) 目錄結(jié)構(gòu)看到上面的目錄結(jié)構(gòu) 會有耳目一新的感覺,終于突破了原有的mvc目錄結(jié)構(gòu)。該目錄結(jié)構(gòu)除了使用原有的controllers 文件夾之外,我們還使用了games自定義文件夾中的controllers。在users文件夾中也同樣還有一個controllers文件夾,這些文 件夾都是存放控制器類的。我們可以根據(jù)自己的需要建立不同的controlle

21、r 組。在大型項(xiàng)目開發(fā)的過程中,模塊的數(shù)量可能會很多,僅僅只靠原有的目錄結(jié)構(gòu)是不能滿足我們的要求的,而且擴(kuò)展性也不是太好,因?yàn)樗枷刖捅皇`在它 本身的結(jié)構(gòu)上,擴(kuò)展談何容易。但真正的作為一個企業(yè)級架構(gòu)這肯定是不行的,最起碼走起來比較困難。于是控制器組,個性化的目錄就是解決方案的開始。(二) 擴(kuò)展路由配置(routecollection 類的擴(kuò)展)我們都知道 .net3.0 3.5 中出現(xiàn)的擴(kuò)展方法使.net 出現(xiàn)了新的生機(jī),我們不必在為系統(tǒng)方法的不適用而煩惱,也不用為其思維的束縛的叫苦不迭。擴(kuò)展方法能使我們能夠擴(kuò)展系統(tǒng)中的任何一個類,給它重新添加自己想要的方法。code1publicclasss

22、tudent23privateint_id;45publicintid67getreturn_id;8set_id=value;91011privatestring_name;1213publicstringname1415getreturn_name;16set_name=value;1718我定義一個實(shí)體類,這個類中只有兩個屬相,沒有任何自定方法?,F(xiàn)在我們用擴(kuò)展方法給student添加一個write()自定義方法1publicstaticclassstudentextension23publicstaticvoidwrite(thisstudentstu,stringname)45cons

23、ole.writeline(name);67擴(kuò)展方法的使用代碼:code1publicclasstest23publicvoidshow()45studentstu=newstudent();6stu.id=1;7stu.name=ddd;8stu.write(stu.name);910注意 擴(kuò)展方法必須在靜態(tài)類中,而且擴(kuò)展方法也必須用static修飾。擴(kuò)展方法的第一個參數(shù)用this修飾,參考上面的就可以知道,當(dāng)我們使用這個擴(kuò)展方法的時候 參數(shù)就static 修飾方法中的非this修飾的參數(shù),說的有點(diǎn)繞口。相信能夠明白。routecollection擴(kuò)展類,擴(kuò)展路由設(shè)置1publicstati

24、cclassarearoutehelper23publicstaticvoidcreatearea(thisroutecollectionroutes,4stringareaname,5stringcontrollernamespace,6paramsrouterouteentries)78foreach(routerouteinrouteentries)910if(route.constraints=null)1112route.constraints=newroutevaluedictionary();131415if(route.defaults=null)1617route.defau

25、lts=newroutevaluedictionary();181920if(route.datatokens=null)2122route.datatokens=newroutevaluedictionary();232425route.constraints.add(area,areaname);26route.defaults.add(area,areaname);27route.datatokens.add(namespaces,newstringcontrollernamespace);2829if(!routes.contains(route)3031routes.add(rout

26、e);32333435對于自定義視圖的關(guān)鍵還是如下:webformviewengine 定義了視圖文件的顯示,我們可以繼承改類從而重載覆蓋父類的方法達(dá)到自己定義文件映射路徑的目的1publicclassareaviewengine:webformviewengine23publicareaviewengine()4:base()56/定義頁面文件或者用戶控件文件的路徑規(guī)則7viewlocationformats=newstring8/0.aspx,9/0.ascx,10/views/1/0.aspx,11/views/1/0.ascx,12/views/shared/0.aspx,13/vie

27、ws/shared/0.ascx14;1516/第一母版頁文件路徑規(guī)則17masterlocationformats=newstring18/0.master,19/shared/0.master,20/views/shared/0.master,21/views1/0.master22;2324partialviewlocationformats=viewlocationformats;25262728/29/匹配頁面文件的,尋找相應(yīng)的部分視圖文件30/31/32/33/34/35publicoverrideviewengineresultfindpartialview(controller

28、contextcontrollercontext,stringpartialviewname,boolusecache)3637viewengineresultviewresult=null;38if(controllercontext.requestcontext.routedata.values.containskey(area)3940stringareapartialname=formatviewname(controllercontext,partialviewname);41viewresult=base.findpartialview(controllercontext,area

29、partialname,usecache);42if(viewresult!=null&viewresult.view!=null)4344returnviewresult;454647stringsharedareapartialname=formatpartialviewname(controllercontext,partialviewname);48viewresult=base.findpartialview(controllercontext,sharedareapartialname,usecache);49if(viewresult!=null&viewresult.view!

30、=null)5051returnviewresult;525354returnbase.findpartialview(controllercontext,partialviewname,usecache);555657/58/匹配頁面文件的,尋找相應(yīng)的試圖文件59/60/61/62/63/64/65publicoverrideviewengineresultfindview(controllercontextcontrollercontext,stringviewname,stringmastername,boolusecache)6667viewengineresultviewresult

31、=null;68if(controllercontext.requestcontext.routedata.values.containskey(area)6970stringareapartialname=formatviewname(controllercontext,viewname);71viewresult=base.findview(controllercontext,areapartialname,mastername,usecache);72if(viewresult!=null&viewresult.view!=null)7374returnviewresult;757677

32、stringsharedareapartialname=formatpartialviewname(controllercontext,viewname);78viewresult=base.findview(controllercontext,sharedareapartialname,mastername,usecache);79if(viewresult!=null&viewresult.view!=null)8081returnviewresult;828384returnbase.findview(controllercontext,viewname,mastername,useca

33、che);858687/88/這個匹配一般的頁面文件或用戶控件路徑89/90/91/92/93publicstringformatviewname(controllercontextcontext,stringviewname)9495/根據(jù)路由的參數(shù)值獲得控制器的名稱96stringcontrollername=context.routedata.getrequiredstring(controller);9798/根據(jù)路由的參數(shù)獲得控制器組的名稱99stringarea=context.requestcontext.routedata.valuesarea.tostring();100re

34、turnarea/+area+/views/+controllername+/+viewname;101102103/104/這個一般匹配母版頁的文件路徑105/106/107/108/109publicstringformatpartialviewname(controllercontextcontext,stringviewname)110111/根據(jù)路由的參數(shù)獲得控制器組的名稱112stringarea=context.requestcontext.routedata.valuesarea.tostring();113returnarea/+area+/views/shared/+vie

35、wname;114115116全局應(yīng)用程序類配置:public class mvcapplication : system.web.httpapplication protected void application_start() viewengines.engines.clear(); viewengines.engines.add(new areaviewengine(); registerroutes(routetable.routes); /注冊新的個性化視圖引擎areaviewengine public static void registerroutes(routecollect

36、ion routes) routes.ignoreroute(resource.axd/*pathinfo); / routing config for the blogs area routes.createarea(blogs, areasdemo.areas.blogs.controllers, routes.maproute(null, blogs/controller/action, new controller = home, action = index ) ); / routing config for the forums area routes.createarea(for

37、ums, areasdemo.areas.forums.controllers, routes.maproute(null, forums/controller/action, new controller = home, action = index ) ); / routing config for the root area routes.createarea(root, areasdemo.controllers, routes.maproute(null, controller/action, new controller = home, action = index ) ); /創(chuàng)

38、建不同的控件組 1.8 過濾器解析、開發(fā)在amvc中當(dāng)你有以下及類似以下需求時你可以使用filter功能1. 判斷登錄與否或用戶權(quán)限2. 決策輸出緩存 3. 防盜鏈 4. 防蜘蛛 5. 本地化與國際化設(shè)置6. 實(shí)現(xiàn)動態(tài)actionfilter是一種聲明式編程方式,在a mvc中它只能限制于action(或它的controller)。 filter要繼承于actionfilterattribute抽象類,并可以覆寫void onactionexecuting(actionexecutingcontext)和 void onactionexecuted(actionexecutedcontext)

39、以及void onresultexecuting(resultexecutingcontext)和 void onresultexecuted(resultexecutedcontext)onactionexecuting是action執(zhí)行前的操作,onactionexecuted則是action執(zhí)行后的操作而onresultexecuting是解析actionresult前執(zhí)行,onresultexecuted是解析actionresult后執(zhí)行。一、應(yīng)用于action的filter下面我給大家一個示例,來看看它的的執(zhí)行順序 首先我們先建立 一個filter,名字叫做testfilter p

40、ublic class testfilter : actionfilterattribute public override void onactionexecuting(actionexecutingcontext filtercontext) filtercontext.httpcontext.sessiontemp += testfilter onactionexecuting; public override void onactionexecuted(actionexecutedcontext filtercontext) filtercontext.httpcontext.sess

41、iontemp += testfilter onactionexecuted; public override void onresultexecuting(resultexecutingcontext filtercontext) filtercontext.httpcontext.sessiontemp += testfilter onresultexecuting; public override void onresultexecuted(resultexecutedcontext filtercontext) filtercontext.httpcontext.sessiontemp += testfilter onresultexecuted; 然后建立一個action: testfilter/將此filter應(yīng)用于action public actionresult filteraction() return view(); 在它的view中寫入:%sessiontemp += view execute; %最后在其它頁面得到sessiontemp的輸出結(jié)果:testfilter onactionexecutingtestfilter onactionexecu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論