從零開始編寫自己的C#框架(1)——前言

  記得十五年前自學編程時,拿著C語言厚厚的書,想要上機都不知道要用什么編譯器來執行書中的例子。十二年前在大學自學ASP時,由于身邊沒有一位同學和朋友學習這種語言,也只能整天混在圖收館里拼命的啃書。而再后來也差不多,自學了很多不同的知識,都一直只能自己默默的克服一個又一個困難。所以這幾年帶一些應屆生或只有一兩年經驗的新人時,都會同他們講:你們現在太幸福了,有問題可以找度娘,還可以找我來解決。做為過來人,能深深的體會到剛入門的時候,沒有系統的介紹和老師指導,會多走很多很多彎路和經歷過不知多少不眠之夜,頭發都不知白了多少根。

  雖然工作了這么多年,但一直都沒有將自己成長的點點滴滴記錄下來,覺得非常的遺憾,很多技術現在都忘了。而在博客園注冊博客也有好幾年了,也一直空空的,直到去年的七月份,才嘗試將自己學習SubSonic3.0的過程慢慢記錄下來,然后天天上博客園來刷頁面,在這個過程中從各位大牛的身上學到了很多很多東西,非常感謝大家無私的分享。

  在寫博的過程中,非常羨慕眾多大神能寫了一系列的文章,自己雖然不是個牛人,也想嘗試一下,對自己這么多年的技術做一下總結,寫一寫一個項目無到有,到最終上線的過程,希望能給初學者一個了解的窗口。

  本系列文章主要講的就是怎么從項目的準備、需求分析、框架設計、編碼、測試到服務器的部署,來講述開發過程中的注意事項和使用相關插件來打造一個快捷開發的ORM框架(當然你也可以使用本系列中講述的思想,使用其他插件來開發你自己的框架)。

  由于近一年時間一直都在接觸和使用SubSonic2.2與SubSonic3.0,也接觸了不少還在使用或正在學習的朋友,所以寫寫如何使用SubSonic3.0來開發ORM框架,希望對大家有所幫助。雖然SubSonic插件,也有不少朋友都說它已經過時了、已經沒什么人在繼續使用了......不過我還是堅持自己的看法,無論是SubSonic還是其他ORM框架插件,只要適合自己的適合公司的就是最好的。當然以后項目有變動也可能會使用其它ORM插件,哈哈...

?

  本文章適合什么朋友?

  學過相關開發語言的初學者或有過一定開發經驗但對開發與框架架構缺乏經驗的人。

?

  下面簡單說說這個框架的特點:

  在最近幾年時間里,我一直在做框架開發,用不同的語言開發了幾個不同的框架,要說這幾個框架的共同特點是什么:那就是快,不少同事朋友使用了我的框架后,都給了正面的評價,可以減少60%以上的代碼量,而開發周期也自然可以壓縮50%以上的編碼時間(實際上使用了T4模板或相關代碼生成工具的都有這種感覺)。不但可以非常快速的完成功能開發,而且進行二次開發也非常方便快捷(除了自己幾年前寫的第一個框架,呵呵......),當然性能也是不錯的。

?

目錄:

從零開始編寫自己的C#框架(1)——前言
從零開始編寫自己的C#框架(2)——開發前的準備工作
從零開始編寫自己的C#框架(3)——開發規范
從零開始編寫自己的C#框架(4)——文檔編寫說明
從零開始編寫自己的C#框架(5)——三層架構介紹
從零開始編寫自己的C#框架(6)——SubSonic3.0插件介紹
從零開始編寫自己的C#框架(7)——需求分析
從零開始編寫自己的C#框架(8)——后臺管理系統功能設計
從零開始編寫自己的C#框架(9)——數據庫設計與創建
從零開始編寫自己的C#框架(10)——項目實施計劃與甘特圖
從零開始編寫自己的C#框架(11)——創建解決方案
從零開始編寫自己的C#框架(12)——T4模板在邏輯層中的應用(一)
從零開始編寫自己的C#框架(13)——T4模板在邏輯層中的應用(二)
從零開始編寫自己的C#框架(14)——T4模板在邏輯層中的應用(三)
從零開始編寫自己的C#框架(15)——Web層后端登陸功能
從零開始編寫自己的C#框架(16)——Web層后端父類
從零開始編寫自己的C#框架(16)——Web層后端首頁
從零開始編寫自己的C#框架(18)——Web層后端權限模塊——菜單管理
從零開始編寫自己的C#框架(19)——Web層后端權限模塊
從零開始編寫自己的C#框架(20)——框架異常處理及日志記錄
從零開始編寫自己的C#框架(21)——添加分類類型頁面
從零開始編寫自己的C#框架(22)——添加普通列表頁面
從零開始編寫自己的C#框架(23)——上傳組件使用說明
從零開始編寫自己的C#框架(24)——測試
從零開始編寫自己的C#框架(25)——網站部署
從零開始編寫自己的C#框架(26)——小結
從零開始編寫自己的C#框架(27)——什么是開發框架

從零開始編寫自己的C#框架(28)——建模、架構與框架
從零開始編寫自己的C#框架(29)——設計用例

......(待續)

?(由于個人工作太忙,后面的章節等手上的項目完成的七七八八后會繼續寫下去)

?

這不是最終的目錄,會在編寫的過程中根據具體情況作出調整,如果想要對開發過程描述得更加具體的話,初步估計目錄數量會多上2至3倍。本項目只是完成框架以及后端系統的常用功能,對前端與其他方面的內容,如果本系列很受歡迎的話會考慮繼續編寫實現出來。

?

  總結

  要寫這一系列文章,朋友們知道后都說好大的工程啊......說的也是,要全部寫完,也要好長的時間,水平有限到時也不知道會碰到多少雷區,也不清楚寫出來的內容是否表達得清楚,鴨梨山大@_@,不過事情都是逼出來的,希望在寫的過程中自己也能得到一個好的提升。

?

  本系列文章會將我開發的過程說明與源代同步更新上來,如果引用了某些文章或使用了某些開源代碼也會詳細標明出處,其版權歸原作者所有,編寫本系列文章主要是對自己這么多年工作做一個總結,也希望能幫助到剛入行的朋友,謝謝你的關注,如果覺得本系列文章有幫到你,請幫忙點擊推薦。

?

??

?版權聲明:

  本文由AllEmpty原創并發布于博客園,歡迎轉載,未經本人同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,否則保留追究法律責任的權利。如有問題,可以通過1654937@qq.com 聯系我,非常感謝。

  發表本編內容,只要主為了和大家共同學習共同進步,有興趣的朋友可以加加Q群:327360708 或Email給我(1654937@qq.com),大家一起探討。

  更多內容,敬請觀注博客:http://www.cnblogs.com/EmptyFS/

?

轉載于:https://www.cnblogs.com/EmptyFS/p/3621484.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258794.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258794.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258794.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Bash內置命令

Bash有很多內置命令,因為這些命令是內置的,因此bash不需要在磁盤上為它們定位,執行速度更快。 1)列出所有內置命令列表$enable 2)關閉內置命令test$enable -n test 3)打開內置命令test$enable test 4&…

postman調用webservice接口_接口對前后端和測試的意義

1.什么是接口?接口測試主要用于外部系統與系統之間以及內部各個子系統之間的交互點,定義特定的交互點,然后通過這些交互點來,通過一些特殊的規則也就是協議,來進行數據之間的交互。2.接口都有哪些類型?接口…

基于代數距離的橢圓擬合

問題 給定離散點集Xi(xi,yi),i1,2,...NX_i(x_i,y_i) ,i1,2,...NXi?(xi?,yi?),i1,2,...N,我們希望找到誤差最小的橢圓去擬合這些離散點。 方法 由于橢圓的形式可以給定, 自然我們將使用最小二乘法來求解橢圓。主要依據論文《Direct least squares f…

Java與C語言比較(Java參考書中摘錄)

C語言為面向過程的編程語言,Java為面向對象的編程語言。 在面向過程的編程語言(如C語言)中,編程一般面向操作,編程單位是函數(在Java中函數稱為方法)。 在Java中,編程單位是類。最終實例化(即創建)這些類而得到對象,屬…

Android調試技巧之Eclipse行號和Logcat

很多初入Android的開發者可能會發現經常遇到Force Close或ANR這樣的問題,一般我們通過Android系統的錯誤日志打印工具Logcat可以看到出錯的內容,今天一起來說下如何通過 Eclipse行號和Logcat捕捉出錯點,我們遇到錯誤可以首先在Eclipse的DDMS中…

第六章 產權市場

《市場經濟概論》(6)產權市場一 第六章 產權市場 產權是指人們對于某種資產所擁有的所有權、占有權、支配權、使用權。產權市場是指人們對于某種資產所擁有的所有權、占有權、支配權、使用權進行有償轉讓的場所領域及其有關各方面相互關系的總和。在過去…

js打開本地文件夾_vue + ArcGIS 地圖應用系列一:arcgis api本地部署(開發環境)

1. 下載 ArcGIS API for JavaScript 官網地址: https://developers.arcgis.com/javascript/3/ 下載地址:http://links.esri.com/javascript-api/latest-download需要穩定的網絡環境注冊賬號后才可以下載下載完成后解壓文件,文件比較大可能需要…

基于幾何距離的橢圓擬合

問題 給定離散點集Xi(xi,yi)X_i(x_i,y_i)Xi?(xi?,yi?),我們希望找到最好的橢圓去擬合這些離散點。 方法 通常我們使用最小二乘法求解如下的最優化問題: Min∑i1Nf(xi,E)2Min \sum_{i1}^N f(x_i,E)^2 Mini1∑N?f(xi?,E)2 這里f(xi,E)f(x_i,E)f(xi…

Generate Parentheses

題目 Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n 3, a solution set is: "((()))", "(()())", "(())()", "()(())", "()()()" 方法…

ReportViewer 2010 打印預覽,用鼠標快速切換顯示比例時報錯:存儲空間不足,不能處理此命令...

CreateCompatibleDIB 存儲空間不足 無法處理此命令 安裝 ReportViewer 2010 sp1 即可。轉載于:https://www.cnblogs.com/runliuv/p/3640856.html

貪心/二分查找 BestCoder Round #43 1002 pog loves szh II

題目傳送門 1 /*2 貪心/二分查找:首先對ai%p,然后sort,這樣的話就有序能使用二分查找。貪心的思想是每次找到一個aj使得和為p-1(如果有的話)3 當然有可能兩個數和超過p,那么an的值最優,每次還要和…

nohup命令輸出日志_逼格高又實用的Linux高級命令,開發運維都要懂

在運維的坑里摸爬滾打好幾年了,我還記得我剛開始的時候,我只會使用一些簡單的命令,寫腳本的時候,也是要多簡單有多簡單,所以有時候寫出來的腳本又長又臭,像一些高級點的命令,比如說Xargs 命令、…

JavaScript中OOP——面向對象中的繼承/閉包

前 言 OOP JavaScript中OOP——>>>面向對象中的繼承/閉包 1.1面向對象的概念 使用一個子類繼承另一個父類,子類可以自動擁有父類的屬性和方法。>>> 繼承的兩方,發生在兩個類之間。1.2JS模擬實現繼承的三種方式: 首先&am…

js常用字符串函數

這些東西是以前整理的,放到這里,有需要的可以看看~挺全的~ /** * anchor()方法 * 在對象中的指定文本兩端放置一個有Name屬性的HTML錨點 * strVariable.anchor(anchorString) anchorString為錨點名稱 * 它本身不會檢查其他的ahchor錨點是否有name指…

c++11中的智能指針

在C11中有四種智能指針,auto_ptr,shared-ptr,unique_ptr和weak-ptr,其中auto_ptr有許多不足之處,在C11中已經建議廢棄使用。 1. shared_ptr std::shared_ptr智能指針可以通過共享指向對象的所有權,從而實現…

ubuntu14.04設置靜態IP

啊,最近懶惰了,好久沒有寫博客了。 一般機器啟動的時候會自動從DHCP服務器上面獲取動態IP地址,這是一件很方便的事情,可以不用手動設置網絡相關的蠶參數,但是有時候還是需要機器固定IP地址的。 第一步,編輯…

高中學歷python培訓靠譜嗎_高中學歷學完Python就能干人工智能?

最近Python大熱,主要是人工智能的熱度,昨天后院活動部介紹了一位女網友為男朋友選擇Java還是Python,大量的程序員熱議,也有人詢問如何學習Python,比如這位網友詢問高中學歷學習Python是不是就能干人工智能。兄弟&#…

curl+個人證書(又叫客戶端證書)訪問https站點

目前,大公司的OA管理系統(俗稱內網),安全性要求較高,通常采用https的雙向 認證模式。 首先,什么是https,簡單的說就是在SSL協議之上實現的http協議(get、post等操作)。更…

boot.oat FC問題分析報告

【NE現場】 pid: 5252, tid: 5252, name: ndroid.contacts >>> com.android.contacts <<< signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1458x0 0000000000000000 x1 0000000090d9892c x2 0000000000000001 x3 000000000000012cx4 …

c++ 虛函數的實現機制

轉載自&#xff1a;http://blog.csdn.net/jiangnanyouzi/article/details/3720807 1、c實現多態的方法 其實很多人都知道&#xff0c;虛函數在c中的實現機制就是用虛表和虛指針&#xff0c;但是具體是怎樣的呢&#xff1f;從more effecive c其中一篇文章里面可以知道&#xff…