<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      XCode之第一次親密接觸

      XCode之第一次親密接觸

      首先得說明,本教程僅用于讓第一次接觸XCode的朋友了解XCode,不具有任何別的實際意義,真正的項目也不會采取這種開發方式,而采用更先進、快速而強大的開發方式

      NewLife.XCode是一個數據映射框架,包括但大于ORM的范圍XCode意為未知的代碼的意思,是整個X系列組件很重要的一員。實際項目開發,會根據項目類型不同,應用場合不同,由多個不同的組件配合發力,這就導致了幾乎無法發現XCode在其中的用處,而XCode的學習,也就無從做起。按某朋友的說法:“想看看這個頁面怎么工作,結果頁面后面一行代碼也沒有,深入一點發現全是接口!”

      所以,本教程從最最最通俗的做法談起,先使用純XCode實現,然后一步步的引入其它組件,讓大伙明明白白最終項目是如何工作的!

      這次我們做一個最簡單的CMS,只有管理員、欄目、文章三張表,字段也是最精簡的。后面會針對這個例子,一步步展開,介紹XCode的各個主要功能。

      關于XCode的層次介紹參看ORM組件XCode(簡介)

      作為入門的更有深度的姐妹篇ORM組件XCode(動手)

      一、數據庫

      最原始的做法,我們先到MSSQL里面建立好數據表,我這里是MSSQL2008,你用別的版本或者別的數據庫也沒有關系。

      管理員表,只要用戶名和密碼,我們弄一個自增ID的字段作為主鍵。用別的比如GUID作為主鍵也行,最好有一個單一主鍵,那樣會方便一些,后面會講到。

      wps_clip_image-26243

      欄目表,我們先不考慮多級,只要一級,那樣子只需要一個名稱字段就足夠了。注意設置ID字段為主鍵和標識。

      wps_clip_image-3422

      文章表,需要跟欄目表建立管理關系,然后有標題和內容。注意設置ID字段為主鍵和標識。

      wps_clip_image-16747

      這樣子就建好了最簡單的三張表。

      二、生成實體類

      很多ORM都有配套的代碼生成器,下面我們請出我們的代碼生成器XCoder,注意,這里是XCoder,意為未知編碼者,而前面是XCode。這個剛解壓后的樣子,一個主程序,三個類庫,一個配置文件。

      wps_clip_image-8407

      啟動主程序。這里也許它會自動升級,不用擔心,升級會自動完成。

      wps_clip_image-28552

      很土的界面,不過沒關系啦,這個XCoder就是一個很簡單的空殼子(開放源碼),真正的使用者會用自己的修改版,或者使用更先進的魔方開發平臺。

      我們看看“連接”右邊的下來菜單,看看都有哪些連接:

      wps_clip_image-23945

      這是配置文件里面內置的一些連接,每一種數據庫的都有,其實是連接字符串的樣板,省得用到時找不到。XCoder在這里有自動探測功能,能夠探測本機的MSSQL,本目錄的AccessSQLite

      可以看到mssql_CMS那個就是我們剛才建立的庫,為了加深理解,我們手工去配置一下。

      關閉XCoder,打開配置文件“XCoder.exe.config”:

      wps_clip_image-25206

      這里是最常用的一些設置,我們重點看連接字符串部分,增加一個名為CMS的連接:

      wps_clip_image-3922

      這個name就是在連接名,將會在前面代碼生成器界面的“連接”下拉里面列出。重新打開代碼生成器看看:

      wps_clip_image-7305

      我們剛添加的CMS在第一位,后面也多了好些,我們不用去管它。

      點擊“連接”按鈕吧,下面的數據表選擇就激活了:

      wps_clip_image-9588

      這里可以見到我們剛才添加的三張表。右邊的兩個生成按鈕也亮了,也就是說可以生成了。不過先別著急,我們看看下面的各個設置框,重點是右邊的模版:

      wps_clip_image-29999

      先看右邊的模版,有六個帶星號開頭的模版,星號表示內置模版,如果感興趣,可以點右邊的“釋放內置模版”按鈕,把它們釋放出來到文件中,學習一下怎么寫模版也行,這里就不多說了。

      這次我們主要是想生成實體類代碼,要用到實體數據和實體業務兩個模版,因為一個實體類由兩個文件采用分部類的方式組成,如果修改了數據庫表結構,下次只需要生成實體數據那個文件即可,而開發者自己寫的代碼都寫在實體業務那個文件里面。

      我們修改一下左邊的設置:

      wps_clip_image-4600

      命名空間就是要生成的實體類的命名空間,連接名也是實體類里面的一個模版變量,輸出目錄自然就是實體類文件要存放的目錄啦,相對于代碼生成器根目錄。

      一切準備就緒,選擇實體數據模版,點擊“生成所有表”按鈕,然后換成實體業務模版,再生成所有一次。

      wps_clip_image-30042

      下面我們去看看MyCMS目錄,我們生成的東西在那:

      wps_clip_image-17645

      都在這!每個表兩個文件,帶Biz的是業務文件,供手寫代碼的,另一個就是數據文件,方便數據表結構變更時重新生成覆蓋。

      先看看實體數據文件:

      wps_clip_image-13370

      上面這個命名空間,就是剛才代碼生成器那里填寫的;下面這個ConnName就是代碼生成器那里填寫的連接名。

      再看看實體業務文件:

      wps_clip_image-10933

      命名空間和類型,跟數據實體是一樣的,注意那個partial關鍵字,表示分部類的意思,一個類分成兩個文件存放。絕大部分ORM的實體類都這么干。

      這個類繼承自Entity<Admin>,其中Entity<>是泛型基類,也就是XCode實體層的核心,實體類的絕大部分功能都由它提供。這個對應于代碼生成器上的“實體基類”,有些時候可能需要使用自己的實體基類。

      下面有很多代碼段,里面幾乎都是一些注釋,告訴用戶最常用的一些功能怎么用怎么寫。

      三、建立站點

      實體類都生成好了,我們開始建立項目吧。一個CMS解決方案,包括一個CMS類庫和一個Web站點(Website)。

      wps_clip_image-7889

      把那個Class1.cs刪了,把上面生成的實體類文件放進去,設置站點Web引用類庫CMS

      wps_clip_image-3530

      開始編譯一下看看。

      wps_clip_image-10536

      真是壯觀呀!原來是我們忘記引用XCode了。把我們準備好的DLL放進來,跟WebCMS目錄并排。(XCode.dll依賴于核心庫NewLife.Core.dll

      wps_clip_image-32671

      類庫CMS引用這兩個DLL,網站就不需要引用了,因為網站引用了類庫,XCode那些會跟著過來的。再編譯!

      wps_clip_image-7729

      這回編譯通過了!

      web.config設置一些常用設置,當然最重要的就是數據庫連接字符串;

      wps_clip_image-18823

      打開全局調試開關和XCode調試開關,主要是為了看到完整的XCode工作日志。

      我們先在默認頁Default.aspx寫一段測試代碼看看,同時也是給系統增加一個管理員帳號:

      wps_clip_image-11153

      這段代碼很簡單,調用實體類的靜態方法Find去查找UserNameadmin的對象,如果沒找到,就實例化一個,然后分別給兩個屬性賦值,再保存Save回去,這樣子就往數據庫插入了一條記錄。

      不要忘了引用實體類的命名空間“NewLife.CMS”,這樣才能使用實體類Admin

      這算是第一段使用XCode的代碼,趕緊的預覽頁面看看效果:

      wps_clip_image-11715

      執行成功!到這里,一個只有實體類的空白站點就建立了。

      四、后臺登錄

      建立一個后臺目錄Admin,包括后臺首頁Default.aspx和登錄頁Login.aspx

      wps_clip_image-28905

      設計登錄頁,登錄成功后跳轉到后臺首頁。后臺首頁如果發現沒有登錄就跳轉到登錄頁。

      wps_clip_image-16944

      這里也不要忘了引用實體類命名空間“NewLife.CMS”。預覽頁面看看效果!

      wps_clip_image-22115

      關于XCode里面添刪改查等完整代碼操作參看ORM組件XCode(速覽)

      五、建立后臺

      我們在后臺目錄Admin中增加一個用來管理管理員的頁面Admin.aspx,然后調整一下后臺首頁Default.aspx,讓它作為后臺導航頁,通過菜單鏈接到其它管理頁面Admin.aspxAdminForm.aspx

      wps_clip_image-14629wps_clip_image-19583

      下面開始設計Admin.aspx,這個作為一個列表頁,把該表所有數據列出來。我們采用經典的GridView+ObjectDataSource來實現。

      wps_clip_image-21121

      如果你是第一次使用ObjectDataSource,這里可要看好了。ObjectDataSource的右邊有個智能標記,一個小箭頭,可以點開。我們選擇“配置數據源”,看看神奇的一幕。

      wps_clip_image-26489

      wps_clip_image-15874

      wps_clip_image-6855

      wps_clip_image-16717

      ObjectDataSource的設計界面列出來我們的所有實體類,Select那里列出來一個Search方法(XCodeEntity<>基類內置),還有UpdateInsertDelete也有(也是內置)。我們先默認,一路下去。(在這里,各個DLL的版本一定要對應,重點是XCode.dllNewLife.Core.dll,否則ObjectDataSource將可能無法列出實體類)

      選擇GridView,打開智能標記,選擇數據源為下面這個ObjectDataSource

      wps_clip_image-15728

      預覽看看效果:

      wps_clip_image-18264

      出來了!沒有寫一行代碼,數據就列出來了。

      我們修改一下根目錄的Default.aspx,往數據庫里面添加50個管理員數據。

      Admin.Meta.Count是返回Admin實體對應的數據表的總記錄數)

      wps_clip_image-1624

      現在再來看看前面的管理員列表

      wps_clip_image-27676

      全都列出來了,但是沒有分頁呀。

      現在開始設置一下ObjectDataSource

      wps_clip_image-26550wps_clip_image-28329

      EnablePaging設為true,表示支持分頁,SelectCountMethod設為SearchCount,這個也是實體基類內置方法,它跟前面的Search方法是一對,具有完全相同的參數列表,startRowIndexmaximumRows就是其中的兩個。SortParameterName設為orderClause,表示排序的那一個參數,也是Search的參數之一。

      再來設置一下GridView,點開智能標記,選擇分頁、排序、編輯、刪除

      wps_clip_image-11072

      wps_clip_image-1304

      把屬性DataKeyNames設置為ID,也就是實體類的主鍵。趕緊看看效果!

      wps_clip_image-31971

      分頁有了,每一行多了編輯和刪除,列頭也變成藍色可選。

      下面試試基本操作,同時附上日志文件(網站根目錄下的Log目錄)中的SQL語句。先看分頁

      wps_clip_image-10491

      wps_clip_image-16375

      準確跳到第三頁!后面有第一頁和第三頁的查詢語句,XCode能夠根據當前使用的數據庫和版本自動生成性能最優的分頁語句。

      再試試編輯ID=30的數據,并更新回去

      wps_clip_image-26666

      wps_clip_image-11085

      wps_clip_image-25891

      刪除ID=31這一行

      wps_clip_image-19090

      wps_clip_image-19296

      點擊列頭的UserName,讓數據按鈕UserName排序,跳到第三頁

      wps_clip_image-14294

      wps_clip_image-24387

      再點擊一次,讓其反向排序,然后跳到第三頁

      wps_clip_image-13881

      wps_clip_image-20114

      我們來做個查詢,增加一個文本框和查詢按鈕,查詢按鈕不需要寫代碼,僅僅是為了讓頁面回發。

      wps_clip_image-24329

      然后改一下ObjectDataSource的參數,可以通過打開智能標記,一路到最后一步,也可以從屬性窗口的SelectParameters打開,設置key參數綁定控件txtKey,也就是上面的文本框。

      wps_clip_image-19858

      “確定”后保存頁面,有時候設計器的修改無法更新到頁面源碼上面,可以通過把設計器切換為源碼試試,也可以點擊源碼右邊的滾動條。

      wps_clip_image-23771

      圖中可以看出源碼的改變。上圖中可以看出Search方法和SearchCount有四個參數,除了key外,另外三個前面都有提到。這個方法實際上就是對這個實體類的所有字符串字段進行模糊查詢。

      預覽看一下效果,輸入關鍵字“修改”進行查詢,看看能不能找到我們剛才修改的那一行。

      wps_clip_image-11845

      wps_clip_image-19558

      試試查詢“admin3

      wps_clip_image-19035

      wps_clip_image-22816

      日志里面的SQL與時俱進!

      上面展示了分頁、排序、編輯、刪除、查詢,實際上還可以查詢加分頁加排序,混合進行。

      ObjectDataSource高級查詢可以參考《在XCode中如何使用高級查詢

      ObjectDataSource的更多精彩《與ObjectDataSource共舞

      我們增加一個添加管理員用的表單頁面AdminForm.aspx

      wps_clip_image-7631

      wps_clip_image-7161

      試試添加一個管理員test/test

      wps_clip_image-8009wps_clip_image-13472

      wps_clip_image-3260

      添加成功!

      六、總結

      到此為止,我們完成了一個最簡單的后臺管理模塊,欄目和文章的管理,也可采用類似的做法來實現。

      看到這里,如果沒看明白,建議結合例子代碼回頭再看幾次。

      如果你要鄙視這種做法,那么恭喜你,終于邁開了通向XCode的第一步!

      我們開頭就說過,真正用XCode開發項目,肯定不會是這么做的,因為這種做法,實在是——效率太低、可維護性太差!

      如果你開始對XCode感興趣,可以先看看這幾篇文章:

      數據映射組件NewLife.XCode優勢

      ORM組件XCode(撬動千萬級數據)

      充血模型的ORM能做什么?——ORM組件XCode(十八般武藝)

      更多精彩敬請等待!

       

      XCode入門例子項目下載

       

      代碼生成器XCoder下載

       

      大石頭

      新生命開發團隊

      2012-02-27 00:17

      posted @ 2012-02-27 00:29  大石頭  閱讀(6749)  評論(15)    收藏  舉報
      主站蜘蛛池模板: 精品人妻av综合一区二区| 久女女热精品视频在线观看| 日本中文字幕不卡在线一区二区| 国产太嫩了在线观看| 国产精品女人毛片在线看| 无码欧美毛片一区二区三| 亚洲色一色噜一噜噜噜| 人妻少妇偷人无码视频| 中文字幕日韩有码av| 国产精品久久久久aaaa| 国产精品嫩草99av在线| 国产激情一区二区三区午夜 | 九九成人免费视频| 中文字幕日韩精品人妻| 亚洲成人动漫av在线| 精品精品久久宅男的天堂| 成人影片一区免费观看| 97久久精品人人做人人爽| 日韩国产av一区二区三区精品 | 国产片av在线观看国语| 国产精品高清一区二区三区| 亚洲日韩亚洲另类激情文学| 国产一区二区在线有码| 精品无码久久久久久久久久| 久久精品国产亚洲成人av| 国产AV福利第一精品| 亚洲伊人久久精品影院| 久久不见久久见免费影院www日本| 好屌草这里只有精品| 嫩b人妻精品一区二区三区| 国产精品播放一区二区三区| 久久无码中文字幕免费影院蜜桃| 国产成人综合久久亚洲精品| 99久久激情国产精品| 陆丰市| 欧美精品国产综合久久| 偷炮少妇宾馆半推半就激情| 亚洲色婷婷综合开心网| 综合亚洲网| 亚洲一区二区三区久久综合| 成人国产精品三上悠亚久久 |