程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 客戶關系管理系統(CRM)的開發過程中使用到的開發工具總結

客戶關系管理系統(CRM)的開發過程中使用到的開發工具總結

編輯:關於.NET

開發《客戶關系管理系統(CRM)》軟件過程,也就是一個標准的Winform程序的開發過程,我們可以通 過這個典型的軟件開發過程來了解目前的開發思路、開發理念,以及一些必要的高效率手段。本篇隨筆 主要介紹我在開發這個CRM客戶關系管理系統過程中,所用到的一些開發工具,力求從開發工具的層面使 大家對這個系統的形成過程有一個大致的了解。

在文章的開篇,我們先來聊幾句。一直以來,我都知道,廣州這個城市,在圖書館建設方面都做的很 好,提供了很多公眾的借閱服務,幾年前也曾經在區一個小的圖書館裡借閱過書籍,不過但是對整個過 程沒覺得什麼特別。上個周末,去了廣東省立中山大學圖書館(這個可能是廣州最為完善、大型的圖書 館)逛了一趟,發現借書的流程真是方便,隨著科技工具的引入,一切都非常輕松和高效。曾經在大學 年代,也是對圖書熱愛的年代,找一本書,用替書牌,東找西找找到幾本滿意的書籍後,拿去登記更是 痛苦,排隊到自己後,把每本書的借閱欄填好,折到條形碼頁面,給老師一本本掃描錄入。但是那天去 了中山大學圖書館,發現藏書很多不說,不用替書牌,找到一摞拿出來後,一並放到一個黑色板上,交 上借閱卡,幾秒鐘就搞定。這一切也是工具引入的效率改進,因此,不管是日常生活,或者是軟件的開 發過程,以及更多的方方面面,好的工具引入,能給我們提供更快的速度,更高的效率。

言歸正傳,開發《客戶關系管理系統(CRM)》軟件過程,也用到了很多工具來輔助我們進行高效的軟 件開發,否則一個軟件,可能需要更多的時間,更多的資源,更多的校驗排錯投入,本文以《客戶關系 管理系統(CRM)》為例,介紹在這個軟件開發過程中用到的相關工具和開發思路,希望對大家有一定的借 鑒作用。

1、軟件的數據庫表設計PowerDesigner

我們知道,做任何一件事情,都有一個開始的過程,對於常規的軟件工程過程而言,一般開始是需要 設計模型、流程等東西的,不過從我自身十多年的開發歷程,先做UML的一般不多,而我們往往是通過數 據庫設計來完善整個模型。數據庫設計也有很多工具輔助,不過我覺得使用PowerDesigner就已經很好了 ,這個設計工具從剛一開始使用,就覺得非常方便實用,所以這麼多年也都是以它進行數據庫表的設計 工作的。

一般我們可以根據需要先在一個數據庫類型上設計,如基於SqlServer的,還是Oracle的,或者是其 他的,通常用這兩種居多。數據庫設計過程,可以指定表名稱、字段名稱(備注作為字段描述)、表之間 的關系等方面。

如果我們已經有一些現成的數據庫表,那麼也可以通過反向工程的方式,把數據庫表的設計導入到 PowerDesigner上進行管理,也非常方便。

使用PowerDesigner設計的數據庫表,非常方便維護,也方便修改,因為我們設計數據庫,不可能一 下就全部考慮的很好,可能需要多次反復的過程才能最終確定整個表的結構,使用這樣的數據庫設計工 具,能給我們節省更多的修改時間,提高效率。

基於PowerDesigner的數據庫設計,我們還可以更改數據庫的類型,使之生成其他類型的數據庫腳本 ,PowerDesigner本身也支持很多數據庫類型,因此生成的腳本也具有更高的通用性,即使我們變換數據 庫的時候,數據庫類型可能需要一定的調整,但是已經能節省大部分的時間了。

2、數據庫工具

在我的《客戶關系管理系統(CRM)》開發過程中,前期我一直使用SqlServer作為基礎的數據庫開發, 因為它的方便和通用性,因為使用Microsoft SQL Server Management Studio來管理數據庫非常方便, 比很多數據庫可能都方便一些,SqlServer用的人比較多,我也就不再贅述。

當然,我對自己開發的系統,一般都會考慮多種數據庫的兼容性,以適應客戶自己的部署環境要求, 因此同時也會考慮Oracle、Sqlite等不同類型的數據庫的兼容。對於Oracle數據庫來說,一般都要求使 用PLSQL Developer來進行數據庫管理,這個工具彌補了Oracle本身的數據庫表管理和維護的短板。

對於非常好用的單機版數據庫SQLite,我們也需要一些管理工具來管理相關的表,我對比過很多 SQLite的管理工具,我覺得SQLite Developer還是最好,使用起來最方便,功能也挺多。雖然一直覺得 Sqlite Developer導入SqlServer的表的備注字段的時候有亂碼這個問題外,其他都挺好,沒有什麼其他 問題,我在之前有一些文章介紹過這個工具的使用:《使用SQLite數據庫和Access數據庫的一些經驗總 結》、《在Winform開發框架中實現對數據庫的加密支持》。

Sqlite的數據庫設計,我一般很少進行獨立的設計,基本上都是從SqlServer數據庫或者其他數據庫 進行導入,導入後,除了備注類型有亂碼外,其他的基本沒什麼問題,因此用起來也非常方便。一般在 我軟件絕大多數功能快要完成的時候,就會增加這種數據庫類型,然後進行一些功能上的調試。

對於另外一種Access數據庫,如非歷史原因,基本上可以使用Sqlite來替代它了。

3、代碼生成工具Database2Sharp

代碼生成工具,是綜合體現一個軟件開發過程的重要因素,因此選擇好的代碼生成工具,也意味著整 體性的開發思路,以及開發效率方面都應該有所提高,而且盡可能貼近開發的實際要求。 如果基於演示 原因或者簡單的小軟件,使用任何代碼生成工具都可以滿足要求,但是,實際上,開發一個成熟、穩定 、美觀的軟件,是一個綜合的過程,要求處處皆為開發者考慮才能使我們應用起來得心應手。

代碼生成工具Database2Sharp(http://www.iqidi.com/database2sharp.htm)是我05年的時候開發起 來的(之前還開發過一個SharpCode的代碼生成工具),這麼多年一直完善著、豐富著。堅持以自己為第 一用戶的原則,盡可能使自己的開發工作得到減輕,效率得到提高,並且綜合各種最新的技術,封裝好 各種基類和繼承關系,使得生成的框架代碼更少,提供的支持更多,具有更好的擴展性,不用機械式的 生成代碼。通過全面的整合,可以一鍵生成一個完整的項目工程代碼,生成後直接可以使用VS打開編譯 。

代碼生成工具Database2Sharp本身是基於模板引擎NVelocity的技術,能夠更方便調整和擴展,因此 能夠迅速響應我的開發要求,整合了整個解決解決方案的代碼,同時包括了界面層的代碼也可以快速生 成。

4、基於現成的開發模塊

我們做任何事情,都是繼承性的,不可能一切都從頭來過,我們人類的知識能繼續豐富的原因,很大 一個原因就是我們是基於原有的知識成果的基礎上進行探索,進行研究的。做開發工作也一樣,雖然微 軟給我們提供了很多豐富的.NET 的API,但是我們不可能什麼都是從零開始,很多開發是有時間要求的 ,更有質量要求,基於現成的一些開發模塊開發,也成為了我們的必然選擇。

我自己本身一直在做軟件的開發工作,很大部分都是基於.NET的開發,因此在吸收很多前輩的知識基 礎上,自己也逐漸積累了很多現成的模塊,這些模塊經過多個項目的反復利用,反復錘煉,都有著很高 的穩定性、通用性,這些模塊我在我的隨筆分類《Winform開發框架》介紹的很多,其中包括了主體的 Winform開發框架、通用權限管理系統、通用字典管理模塊、Winform分頁控件、程序自動更新模塊、公 用類庫、附件管理模塊、人員管理模塊等等。這些模塊組成一個生態體系, 不斷的完善著整體的 Winform開發框架,同時也為更多的項目應用提供支持,借用我很早的一篇隨筆《Winform開發框架之通 用人員信息管理》中的插圖來進行說明。

在我的《客戶關系管理系統(CRM)》這個系統裡面,基本上使用到了上面的所有模塊。首先是基於主 體Winform開發框架進行各種界面的集成展示,每個模塊同時可能有權限的集成,字典數據的使用,附件 的管理,公用類庫使用更能提高開發的效率,Winfrom分頁用於數據的展示模塊,使得內容更加合理的展 示。

5、集成開發環境IDE Visual Studio

和Java的開發標准配置是Eclipse的IDE 一樣,.NET 領域都使用VS(Visual Studio)來進行開發, 這個也是一站式的開發平台,我們可以使用它進行代碼編輯,界面設計,調試等工作,應該做.NET的沒 有人不用它的了,這些順帶介紹一下,以突顯它的重要性。同時,我們一般也使用VS來進行程序的打包 工作,雖然VS2012起,集成使用了InstallShield來進行安裝包的制作了,但是目前我還是主要用VS2010 ,暫不影響。

和VS配套使用,可能有一些類似Resharper的工具來提高開發效率,不過以目前IDE的智能程度,基本 上也可以不用其他插件了。

6、代碼對比工具Beyond Compare

除了VS這個龐大的IDE工具外,我們很多時候,還需要一些小工具來配合軟件的開發。例如,我們開 發的代碼或者重新生成的代碼,需要進行對比合並,那麼這個時候 Beyond Compare就會非常好用,我經 常性的使用這個工具,配合一些增量的修改工作,可以大大的提高合並的效率,減少出錯機會的。

7、常用代碼編輯工具EmEditor

代碼編輯工具EmEditor也是VS開發工具的有效補充,這款文本編輯器的功能是非常強大的,特別是語 法色彩加亮方面,可以支持很多類型的語法加亮顯示,同時它又具有很多方便的功能,可以作為一個替 換記事本最有潛力的工具了,有了這個工具,你可能再也不太想使用記事本那樣低級的文本編輯工具了 。

查看本欄目

8、代碼混淆工具.NET Reactor

在做軟件開發的時候,可能會有很多人批評你沒有開源,沒有共享,其實,對於你花了大量精力,大 量心血做出的一個系統,或者即使是一個小軟件,都希望得到應有的尊重,而.NET不像C++的那樣編譯的 方式,代碼很容易被反編譯出來,因此軟件代碼的混淆和保護就顯得非常重要,對公司對個人都一樣, 除非你自己願意分享奉獻,否則一定的保護措施還是必要的。

用過好多款的代碼混淆工具,有微軟自帶免費的Dotfuscator,也有很多商業收費的,最終覺得還是 .NET Reactor比較好用,方便高效,而且混淆的代碼有不錯的效果,雖然可能不會100%的安全,但是我 覺得這款軟件還是非常好的,一直以來都用這個進行一定的程序集保護處理。

9、圖片處理工具Photoshop CS

圖片的處理是我們需要掌握的一些必要的技能,即使對我們這樣非專業的圖形處理的程序員,具備一 定的圖形變換、塗改、修剪、設計工作也很有必要,即使做不出專業圖形處理人員那樣的效果特技,能 夠處理一般的圖形要求就很不錯了,我們在Winform開發過程中,有一些如啟動界面,背景圖片等,可能 都需要經過一定的處理才能使用,那麼就可以使用這個強大的圖形處理工具Photoshop CS來做一些工作 了。

10、虛擬機部署測試VMware Workstation

很多時候,如果你沒有在一些干淨(沒有安裝VS等開發工具的環境)系統上測試一款軟件,你就不應 該發給客戶,即使你對它有足夠的信心,也很難避免一些意外的情況,最好的措施就是自己先在干淨的 系統上進行測試,但我們不需要開著幾個機器開做這樣的事情,用虛擬機足夠處理這些工作了。

虛擬機我常用的就是VMware Workstation,我16G的內存+SD硬盤,可以同時快速構建幾個虛擬機了, 但一般也不需要同時使用幾個,同時用一兩個足以,簡單測試一下,如果正常啟動運行,那就減少了很 多錯誤的問題了。

虛擬機可以很方便的復制文件,也可以模擬網絡環境,作為一個單獨的機器使用,對於我們不常用的 Oracle數據庫,把它部署到虛擬機,偶爾測試使用,也不失為一個很好的辦法的。

虛擬機的軟件測試,可以減少一些如引用類庫缺少,運行環境支持不夠,路徑配置錯誤等問題,我們 把一個運行不起來的軟件發給客戶,而且客戶抱怨我們還不知道具體原因是什麼,那就顯得太不專業了 。

伍華聰  http://www.iqidi.com

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved