亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

從零開始編寫自己的C#框架(2)——開發前準備工作

2019-11-17 01:27:36
字體:
來源:轉載
供稿:網友

從零開始編寫自己的C#框架(2)——開發前準備工作

  沒想到寫了個前言就受到很多朋友的支持,大家的推薦就是我最大的動力(推薦得我熱血沸騰,大家就用推薦來猛砸我吧O^-^O),謝謝大家支持。

  其實框架開發大家都知道,不過要想寫得通俗點,我個人覺得還是挺吃力的。在本系列中,我不會很深入的去講述那些映射啊關系?。ɡ@得我頭都暈了,這些請大家去查看相關的文檔學習吧)......概念上的東西會少講,直接上實例,講實際應用。當然如果您覺得這樣很不尊重面向對象什么的,那也沒辦法,只能說我們不在一個頻道上。

  本人是個技術宅,第一次寫長篇連載經驗不足,有時候會詞不達意,這也是很正常的事情。由于空閑時間不是非常多,發貼間隔時間可能有時會長點,希望大家諒解。

  也不再羅嗦太多,下面進入正題。

  俗話說工欲善其事必先利其器,在準備開發前,還需要做好各方面的準備工作,了解相關知識。

  怎么開始呢?

  要開發一個項目,有過開發經驗的人都知道,按軟件工程的話來講,必須先做好需求分析,然后總體設計與詳細設計,跟著編碼,測試......

  而在進入開發之前,我覺得除了開發環境與工具的準備之外,思想上的準備還是非常有必要的,如果不了解將要開始的項目,那就會覺得很蒙,迷迷糊糊的,無從下手(碰過不少這樣的朋友,呵呵......)。

  要接手開發一個項目,首先要問自己思想上準備好了沒有?也就是說做為一個項目的主要執行人員,你清楚你在做什么嗎?要實現什么功能?怎么實現?用什么平臺、工具開發?涉及什么技術?和什么人一起開發?水平如何?可能會遇到什么樣的困難?怎么解決?項目涉及什么業務?你了解這些業務流程嗎?對性能與安全有怎樣的要求?如何優化?你懂得代碼安全與服務器安全嗎?要寫那些文檔?怎么寫?有沒有開發計劃?計劃花多長時間?怎么控制進度?......

  很多朋友可能要說,我做這么多年開發,并沒有考慮過上面的問題,還不一樣能將項目做出來,而且做得很好。是的,對于有經驗的朋友來說,其實一拿到需要文檔,甚至客戶(或老板)口中只要簡單的描述出想要的功能,而我們就會立刻在大腦中描繪出這個功能實現的界面,以及要如何實現,在實現的過程中會碰到那些問題,而這些問題很多又會想到使用什么算法或解決方案來處理......其實這個過程不就是已經回答上面的問題了嗎?就如下面那樣(盜用了《為什么不能打斷程序員?》的圖片,嘿嘿)

  

  而對于還沒有足夠經驗的朋友們來說,還是腳踏實地,在接到項目后認真思考一下上面的問題,練習練習這種思維模式比較好。這樣才不會像不少開發人員那樣,項目做著做著就爛尾了......或者是做出自己也不知道是什么的,無法進行二次開發的項目出來......因為這種的事情我自己也經歷過,而接觸過這類型的開發人員也不少(后面文章會舉一些相關例子給大家參考一下)。

  當然如果不會回答上面的問題,沒有做好準備也問題不大,但必須要有一顆堅持到底,迎難而上的心,因為大牛們都是從初學者來的,只要認真學習,當你經歷了N個項目后,也就成為別人眼中的大神了。

  上面的問題并不要求全部都懂得,但在開發之前最好還是有所了解,最好將對它們的思考一一記錄下來(無論是答案還是疑問),形成文檔,這對你在實際的需求分析與相關設計時很有幫助,當然你試過了就知道其中的好處。

  那跟著下來,我們先做一做這個問答題,了解一下將要開發的框架一些問題。

  做為一個項目的主要執行人員,你清楚你在做什么嗎?

  我準備使用C#語言,借用一些利器(插件)開發一個快速開發框架,框架的數據層代碼與邏輯層代碼直接使用插件生成,減輕開發人員重復工作,減輕開發工作量與出錯率;框架的權限管理可以像QQ那些,控制帳號在同一時間只能一個人登陸使用,如果有人在其他電腦或新窗口登陸時,原登陸會給踢除下線,當然設置這個帳號為多人使用時,可以做到同時在線,有在線列表可以對登陸用戶進行維護,查看這些用戶當前位置以及登陸、操作日志;權限按部門、職位進行劃分,為不同職位定義對每個頁面以及頁面上的按鍵賦予不同的操作權限;每個頁面與按鍵在添加時需要在系統中進行注冊,當用戶未指派指定按鍵操作權限時,自動禁用該按鍵,頁面里的所有鏈接使用指定算法進行加密,即用戶只能通過頁面生成的鏈接或按鍵點擊進入下一個頁面,直接復制修改Id等參數將被默認為非法訪問;框架有自動記錄用戶操作日志功能,即用戶進入了什么頁面,做了什么操作都可以自動記錄下來;列表頁面的相關操作(比如修改狀態、保存排序、自動保存排序、列表排序、列表翻頁......)等各種常用功能將會使用相關插件或將代碼進行封裝起來,在開發時不用再重復復制或編輯代碼操作,直接通過繼承父類實現;對于數據量不大的表直接使用Redis緩存處理,減輕對數據庫的訪問量,提升框架性能;......總之整個框架既要保存開發的便捷性(手寫的代碼量少,開發效率高),又要保證其安全可靠,運行性能高效。

  用什么平臺、工具開發?

  使用Windows7操作系統,應用VS2010、MsSql2005、Excel、Word、Visio等軟件,以及ReSharper、SubSonic3.0、Redis、FineUI等插件來開發實現。

  涉及什么技術?

  本框架將會使用asp.net(C#)、MsSql、SubSonic3.0、FineUI、Linq、T4模板、IIS、Redis緩存等相關技術。(后面的對應章節會對其中一些技術做出相關說明)

  要實現什么功能?怎么實現?

  要實現的功能前面已進行簡單的描述。

  實現的步驟:將會按照軟件工程所描述的步驟,首先會制定開發規范要求、編寫需求文檔、開發文檔(總體設計文檔)、詳細文檔(細化相關技術難點與算法,繪制相關算法、流程圖表)、設計數據庫、然后編碼、測試、部署上線等,整個過程將會涉及很多文檔的編寫與維護工作,在實施過程中不斷完善相應文檔,并做好版本控制以及項目進度控制工作,做到項目需求的修改與變動都有法可依(有文檔可供查詢與查看),執法必嚴(嚴格控制開發進度)。

  和什么人一起開發?水平如何?

  本框架將由我一人開發。本人有十多年開發經驗,曾獨立開發過一個J2ME開發框架(組件模式)、安卓開發框架,以及.NET平臺4個大版本的開發框架等,曾負責或參與幾十個大中小型項目,有豐富的開發經驗。

  可能會遇到什么樣的困難?怎么解決?

  為了避免與公司項目有版權糾紛,整個系統將重新設計,應用更新的設計理念與功能設計,所有代碼將重新手打出來,架構代碼全部重構,這可能會遇到很多新的技術難點。對權限管理也將使用更合適的架構,使它可自由擴展,權限管理更加靈活,以使它能支持全國性大公司下,各分公司能獨立支持各自的人事與權限管理和業務管理(各分公司查看與管理權限互不影響)。由于是業余時間開發,并要編寫開發教材、開發文檔與說明,時間將會變得不可控。另外一直以來都在使用ExtJS,現在新框架將要使用FineUI,可能會存在未知的技術問題需要解決。

  以上問題我將會通過在設計階段對功能與算法進行細化,繪制相應的流程圖表,形成完善的開發文檔來指導開發,以實現對項目的技術難點與進度把控。而對相關插件將作進一步研究,熟悉使用方法,減少可能出現的技術問題。

  項目涉及什么業務?你了解這些業務流程嗎?

   本項目只是一個快速開發框架,只實現基本的基礎開發架構,不涉及具體的業務。(以后如果有需要,再考慮增加一些OA常用的功能)

  對性能有怎樣的要求?如何優化?

  對于ORM的優缺點,網上的討論已經有很多了,這里就不再細說。一般來說ORM框架會有性能上的損耗,但帶來的是開發效率的提升,從時間成本、人工成本等各方面來說,它都是我們的首先,當然某些特殊項目對性能要求非??量痰淖匀涣懋攧e論了。我們要尋找的是開發效率和性能中間找一個平衡點,而不是固執的要求整個框架使用一種技術。

  本框架將會使用到緩存技術(目前選擇的是使用Redis緩存,不過對于使用虛擬空間的朋友可能并不合適,到時會提供別一種純粹使用IIS緩存跨站解決方案),減少數據庫交互次數,提升框架執行性能。另外在數據庫結構設計上,也會應用一些設計模式,減少表關聯的方法來提高查詢效率。在編寫代碼的時候也會在適當的地方提出優化說明,提高性能。

  另外要說明一點,本框架不會完全使用面對象的思想來開發,而是以開發效率與性能等綜合考慮,在合適的地方使用合適的方式來實現,特殊情況特殊處理。比如框架使用的是SubSonic3.0插件,但某些地方也會直接使用ADO.NET來執行相關語句,因為這樣處理代碼量會更少,性能更優。而在復合查詢需要涉及多個表處理的地方,也會考慮使用存儲過程來實現,而不是死板的使用面向對象思想,寫了一大堆代碼以犧牲性能與開發效率來實現目的。一切都以開發效率為原則優先考慮。

  你懂得代碼安全與服務器安全嗎?

  一直以來都很注重代碼與服務器的安全問題,并關注這些方面的文章,努力提升自己。在公司技術部門中,做為資深的軟件開發工程師,對將要上線前的代碼都會經我手進行安全性檢查,有豐富的經驗。而對服務器方面,也有多年各種類型服務器的維護以及安全部署經驗,將各種類型的入侵擋之門外。

  要寫那些文檔?怎么寫?

  整個項目的實施將會涉及很多文檔的編寫,具體請留意后面的章節《從零開始編寫自己的C#框架(4)——文檔編寫說明》。

  有沒有開發計劃?計劃花多長時間?怎么控制進度?

  本框架將會利用晚上與周末時間來開發,平均每天兩到三小時左右,具體的開發計劃與進度甘特圖將會在相關的設計文檔與數據庫結構設計好以后,根據功能與個人的時間安排來編寫甘特圖,來確定開發計劃。具體花費時間將在甘特圖出來以后能才確定。對于進度的控制,具體請看后面的章節《從零開始編寫自己的C#框架(10)——項目實施計劃與甘特圖》。

  我沒有經驗怎么辦?

  以上的準備工作,對于不同項目不同工作經驗的人來說,要準備的內容也是有差別的,這個要根據具體情況而定,總的來說,主要目的就是通過一些手段或方法, 讓自己對整個項目有個總體的認知和準備,以減少項目失敗的機率。無論做什么項目都好,學習與沉淀是非常重要的。要在合適的時間做出合適的判斷和處理,才能達到最優的效果。有多少知識的沉淀,就搭多大的框框??蚣艿墓δ懿皇窃蕉嘣胶茫m合當前的環境所需要的,才是最合適的。

  有時候我們學習,并不一定要知其所以然。有朋友可能會說,你不了解得深入,怎么能做好它呢?其實所以然是在知其然的基礎上研究出來的,我們必須先踏出第一步,就算做出一個丑陋的框架,那也無所謂,因為有了第一個才會有第二個第三個。只有做過一次,你才能了解框架的結構,只有將自己搭建好的框架應用到生產環境中進行檢驗,才知道其中的優劣,才能不斷的找出問題,不停的學習,然后再進行升級,那么它也將越來越完善。而在完善的過程中,你就越來越了解所以然了。

  總結

  如果將要開發的是一個商業項目,要考慮的還不至上面這些,除了投入、產出、市場、風險外,還要考慮需求變更、團隊協作、服務器負載、分發、部署、安全(服務器、代碼等安全)、測試(指定整個的測試流程)、維護......

  當然這只是一個小小的、常用的快速開發框架而已,所以所要注意的只是技術相關的內容,只要你能堅持看完本系列文章,有一定的C#基礎,就可以打造一個屬于你自己的框架。

  由于本人理論水平有限,如果在某些地方使用的字詞描述以及技術術語的使用不恰當,敬請諒解。

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

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品国产suv| 亚洲欧美一区二区三区在线| 欧美性高跟鞋xxxxhd| 午夜精品久久久久久久男人的天堂| 91久久久国产精品| 亚洲天堂av网| 欧美在线一级va免费观看| 国产专区欧美专区| 欧美日本高清一区| 97国产在线观看| 亚洲欧美日韩天堂| 久久久久久久久久久免费精品| 亚洲黄色成人网| 超碰日本道色综合久久综合| 久久精品一本久久99精品| 日本a级片电影一区二区| 91tv亚洲精品香蕉国产一区7ujn| 欧美日韩一二三四五区| 国产精品一区二区三区免费视频| 国产精品日韩在线观看| 国产自摸综合网| 岛国精品视频在线播放| 欧美孕妇毛茸茸xxxx| 热re91久久精品国99热蜜臀| 亚洲女人天堂av| 久久亚洲电影天堂| 中文字幕亚洲无线码a| 一本色道久久88综合亚洲精品ⅰ| 亚洲乱亚洲乱妇无码| 国产精品爽爽爽爽爽爽在线观看| 国产亚洲精品美女久久久| 色天天综合狠狠色| 91国内产香蕉| 亚洲免费精彩视频| 91黑丝高跟在线| 欧美疯狂性受xxxxx另类| 亚洲精品国产综合区久久久久久久| 欧美理论电影在线播放| 欧美成人午夜免费视在线看片| 精品av在线播放| 91sao在线观看国产| 久久精品青青大伊人av| 久久中文字幕一区| 久久中文字幕在线| 亚洲电影在线看| 亚洲欧美激情在线视频| 国产精品成人在线| 国产精品嫩草影院一区二区| xxxxxxxxx欧美| 视频在线观看99| 亚洲第一男人av| 美女扒开尿口让男人操亚洲视频网站| 亚洲午夜精品久久久久久久久久久久| 中文字幕亚洲欧美一区二区三区| 国产色视频一区| 91欧美精品午夜性色福利在线| 亚洲第一精品久久忘忧草社区| 91在线色戒在线| 亚洲高清色综合| 国产91亚洲精品| 欧美在线视频免费播放| 国产欧美日韩中文| 国产精品美女av| 日韩欧美亚洲国产一区| 久久精品国产久精国产一老狼| 亚洲影视中文字幕| 欧美另类69精品久久久久9999| 777777777亚洲妇女| 456国产精品| 美日韩在线视频| 91精品国产高清久久久久久91| 91综合免费在线| 欧美亚洲成人免费| y97精品国产97久久久久久| www国产亚洲精品久久网站| 国产日韩在线一区| 久久精品国产成人精品| 欧美成人精品三级在线观看| 国产成人拍精品视频午夜网站| 亚洲成人教育av| 久久综合色影院| 久久久国产精品免费| 欧美刺激性大交免费视频| 色综合天天狠天天透天天伊人| 久久视频免费在线播放| 日韩中文字幕视频在线观看| 中文字幕亚洲情99在线| 夜夜嗨av一区二区三区四区| 久久久久久久一| 亚洲午夜精品久久久久久久久久久久| 全球成人中文在线| 久久久在线视频| 国产欧美精品一区二区| 国产在线拍偷自揄拍精品| 97超级碰碰碰久久久| 一本一本久久a久久精品牛牛影视| 欧美重口另类videos人妖| 97成人精品视频在线观看| 欧美电影在线播放| 久久精品影视伊人网| 日韩免费精品视频| 亚洲精品视频网上网址在线观看| 日韩电视剧在线观看免费网站| 福利一区福利二区微拍刺激| 91欧美日韩一区| 国产精品亚洲美女av网站| 最近中文字幕mv在线一区二区三区四区| 狠狠操狠狠色综合网| 亚洲综合av影视| 亚洲国产精品人久久电影| 精品免费在线视频| 亚洲级视频在线观看免费1级| 成人网在线观看| 26uuu另类亚洲欧美日本老年| 亚洲欧美视频在线| 亚洲欧美综合另类中字| 91精品国产网站| 国产精品看片资源| 国产在线观看91精品一区| 日韩视频第一页| 国产精品一区专区欧美日韩| 成人久久一区二区三区| 欧美日韩视频在线| 狠狠躁夜夜躁人人躁婷婷91| 久久精品中文字幕一区| 欧洲成人性视频| 欧美日韩亚洲视频一区| 国产成人欧美在线观看| 国模私拍一区二区三区| 91伊人影院在线播放| 日韩在线视频一区| 久久久久久com| 国内精品久久久久久久| 日韩一区二区在线视频| 国产精品欧美在线| 国语自产精品视频在线看抢先版图片| 欧美华人在线视频| 日韩美女视频中文字幕| 亚洲成人国产精品| 久久久免费高清电视剧观看| 中文字幕久热精品视频在线| 日韩中文字幕亚洲| 欧美激情视频在线观看| 亚洲欧美国产va在线影院| www.日韩欧美| 伦理中文字幕亚洲| 日韩久久精品成人| 国产精品久久久久久久久久久久| 欧美性69xxxx肥| 色综合色综合久久综合频道88| 欧美视频中文字幕在线| 97福利一区二区| 日韩精品视频在线观看免费| 91欧美激情另类亚洲| 在线播放日韩av| 97在线视频一区| 欧美日韩国产精品一区二区三区四区| 久久国产精品久久久久| 亚洲天堂av在线播放| 2018国产精品视频| 亚洲国产精品成人av| 国产中文字幕91| 91精品在线观看视频| 亚洲一区二区福利|