Ⅰ android 手機自動化測試工具有哪幾種
1、MonkeyAndroid SDK自帶測試工具測試程向系統發送偽隨機用戶事件流按鍵輸入、觸摸屏輸入、手勢輸入等)實現發應用程序進行壓力測試志輸實際該工具能做程序做些壓力測試由於測試事件數據都隨機能自定義所局限性
2、MonkeyRunnerAndroid SDK提供測試工具嚴格意義說MonkeyRunner其實Api工具包比Monkey強編寫測試腳本自定義數據、事件缺點腳本用python寫測試員說要求較高比較習本
3、Instrumentation早期Google提供Android自化測試工具類雖候JUnitAndroid進行測試Instrumentation允許應用程序做更復雜測試甚至框架層面通Instrumentation模擬按鍵按、抬起、屏幕點擊、滾等事件Instrumentation通主程序測試程序運行同進程實現些功能Instrumentation看類似Activity或者Service並且帶界面組件程序運行期間監控主程序缺點測試員說編寫代碼能力要求較高需要Android相關知識定解需要配置AndroidManifest.xml文件能跨App
4、UiAutomatorAndroid提供自化測試框架基本支持所Android事件操作比Instrumentation需要測試員解代碼實現細節(用UiAutomatorviewer抓App頁面控制項屬性看源碼)基於java測試代碼結構簡單、編寫容易、習本編譯所設備或模擬器都能運行測試能跨App(比:App選擇相冊、打相機拍照跨App測試)缺點支持SDK 16(Android 4.1)及支持Hybird App、WebApp
5、EspressoGoogle源自化測試框架相於RobotiumUIAutomator特點規模更、更簡潔API更加精確編寫測試代碼簡單容易快速手基於Instrumentation所能跨App配合Android Studio編寫測試簡單例
6、Selendroid:基於Instrumentation測試框架測試Native App、Hybird App、Web App網資料較少社區躍度
7、Robotium基於Instrumentation測試框架目前內外用比較資料比較社區比較躍缺點測試員說要定Java基礎解Android基本組件能跨App
8、Athrun淘寶移測試框架/平台同支持iOSAndroidAndroid部基於InstrumentationAndroid原類基礎進行擴展提供整套面向象API詳細介紹
9、Appium近比較熱門框架社區躍框架應該功能強
-
Ⅱ 要成為一名專業的程序員,從零開始需要怎麼一步步來比較好,要把最底層的先學精通嗎(個人認為)求學長
前言
你是否覺得自己從學校畢業的時候只做過小玩具一樣的程序?走入職場後哪怕沒有什麼經驗也可以把以下這些課外練習走一遍(朋友的抱怨:學校課程總是從理論出發,作業項目都看不出有什麼實際作用,不如從工作中的需求出發)
建議:
不要亂買書,不要亂追新技術新名詞,基礎的東西經過很長時間積累而且還會在未來至少10年通用。
回顧一下歷史,看看歷史上時間線上技術的發展,你才能明白明天會是什麼樣。
一定要動手,例子不管多麼簡單,建議至少自己手敲一遍看看是否理解了里頭的細枝末節。
一定要學會思考,思考為什麼要這樣,而不是那樣。還要舉一反三地思考。
註:你也許會很奇怪為什麼下面的東西很偏Unix/linux,這是因為我覺得Windows下的編程可能會在未來很沒有前途,原因如下:
現在的用戶界面幾乎被兩個東西主宰了,1)Web,2)移動設備iOS或Android。Windows的圖形界面不吃香了。
越來越多的企業在用成本低性能高的Linux和各種開源技術來構架其系統,Windows的成本太高了。
微軟的東西變得太快了,很不持久,他們完全是在玩弄程序員。詳情參見《Windows編程革命史》
所以,我個人認為以後的趨勢是前端是Web+移動,後端是Linux+開源。開發這邊基本上沒Windows什麼事。
啟蒙入門
1、 學習一門腳本語言,例如Python/Ruby
可以讓你擺脫對底層語言的恐懼感,腳本語言可以讓你很快開發出能用得上的小程序。實踐項目:
處理文本文件,或者csv (關鍵詞 python csv, python open, python sys) 讀一個本地文件,逐行處理(例如 word count,或者處理log)
遍歷本地文件系統 (sys, os, path),例如寫一個程序統計一個目錄下所有文件大小並按各種條件排序並保存結果
跟資料庫打交道 (python sqlite),寫一個小腳本統計資料庫里條目數量
學會用各種print之類簡單粗暴的方式進行調試
學會用Google (phrase, domain, use reader to follow tech blogs)
為什麼要學腳本語言,因為他們實在是太方便了,很多時候我們需要寫點小工具或是腳本來幫我們解決問題,你就會發現正規的編程語言太難用了。
2、 用熟一種程序員的編輯器(不是IDE) 和一些基本工具
Vim / Emacs / Notepad++,學會如何配置代碼補全,外觀,外部命令等。
Source Insight (或 ctag)
使用這些東西不是為了Cool,而是這些編輯器在查看、修改代碼/配置文章/日誌會更快更有效率。
3、 熟悉Unix/Linux Shell和常見的命令行
如果你用windows,至少學會用虛擬機里的linux, vmware player是免費的,裝個Ubuntu吧
一定要少用少用圖形界面。
學會使用man來查看幫助
文件系統結構和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
學會使用一些文本操作命令 sed/awk/grep/tail/less/more …
學會使用一些管理命令 ps/top/lsof/netstat/kill/tcpmp/iptables/dd…
了解/etc目錄下的各種配置文章,學會查看/var/log下的系統日誌,以及/proc下的系統運行信息
了解正則表達式,使用正則表達式來查找文件。
對於程序員來說Unix/Linux比Windows簡單多了。(參看我四年前CSDN的博文《其實Unix很簡單》)學會使用Unix/Linux你會發現圖形界面在某些時候實在是太難用了,相當地相當地降低工作效率。
4、 學習Web基礎(HTML/CSS/JS) + 伺服器端技術 (LAMP)
未來必然是Web的世界,學習WEB基礎的最佳網站是W3School。
學習HTML基本語法
學習CSS如何選中HTML元素並應用一些基本樣式(關鍵詞:box model)
學會用 Firefox + Firebug 或 chrome 查看你覺得很炫的網頁結構,並動態修改。
學習使用Javascript操縱HTML元件。理解DOM和動態網頁(Dynamic HTML: The Definitive Reference, 3rd Edition - O'Reilly Media) 網上有免費的章節,足夠用了。或參看 DOM 。
學會用 Firefox + Firebug 或 chrome 調試Javascript代碼(設置斷點,查看變數,性能,控制台等)
在一台機器上配置Apache 或 Nginx
學習php,讓後台PHP和前台HTML進行數據交互,對伺服器相應瀏覽器請求形成初步認識。實現一個表單提交和反顯的功能。
把PHP連接本地或者遠程資料庫 MySQL(MySQL 和 SQL現學現用夠了)
跟完一個名校的網路編程課程(例如:http://www.stanford.e/~ouster/cgi-bin/cs142-fall10/index.php ) 不要覺得需要多於一學期時間,大學生是全職一學期選3-5門課,你業余時間一定可以跟上
學習一個javascript庫(例如jQuery 或 ExtJS)+ Ajax (非同步讀入一個伺服器端圖片或者資料庫內容)+JSON數據格式。
HTTP: The Definitive Guide 讀完前4章你就明白你每天上網用瀏覽器的時候發生的事情了(proxy, gateway, browsers)
做個小網站(例如:一個小的留言板,支持用戶登錄,Cookie/Session,增、刪、改、查,上傳圖片附件,分頁顯示)
買個域名,租個空間,做個自己的網站。
進階加深
1、 C語言和操作系統調用
重新學C語言,理解指針和內存模型,用C語言實現一下各種經典的演算法和數據結構。推薦《計算機程序設計藝術》、《演算法導論》和《編程珠璣》。
學習(麻省理工免費課程)計算機科學和編程導論
學習(麻省理工免費課程)C語言內存管理
學習Unix/Linux系統調用(Unix高級環境編程),,了解系統層面的東西。
用這些系統知識操作一下文件系統,用戶(實現一個可以拷貝目錄樹的小程序)
用fork/wait/waitpid寫一個多進程的程序,用pthread寫一個多線程帶同步或互斥的程序。多進程多進程購票的程序。
用signal/kill/raise/alarm/pause/sigprocmask實現一個多進程間的信號量通信的程序。
學會使用gcc和gdb來編程和調試程序(參看我的《用gdb調試程序》)
學會使用makefile來編譯程序。(參看我的《跟我一起寫makefile》)
IPC和Socket的東西可以放到高級中來實踐。
學習Windows SDK編程(Windows 程序設計 ,MFC程序設計)
寫一個窗口,了解WinMain/WinProcere,以及Windows的消息機制。
寫一些程序來操作Windows SDK中的資源文件或是各種圖形控制項,以及作圖的編程。
學習如何使用MSDN查看相關的SDK函數,各種WM_消息以及一些常式。
這本書中有很多常式,在實踐中請不要照抄,試著自己寫一個自己的常式。
不用太多於精通這些東西,因為GUI正在被Web取代,主要是了解一下Windows 圖形界面的編程。@virushuo 說:「 我覺得GUI確實不那麼熱門了,但充分理解GUI工作原理是很重要的。包括移動設備開發,如果沒有基礎知識仍然很吃力。或者說移動設備開發必須理解GUI工作,或者在win那邊學,或者在mac/iOS上學」。
2、學習Java
Java 的學習主要是看經典的Core Java 《Java 核心技術編程》和《Java編程思想》(有兩卷,我僅鏈了第一卷,足夠了,因為Java的圖形界面了解就可以了)
學習JDK,學會查閱Java API Doc Java Platform SE 6
了解一下Java這種虛擬機語言和C和Python語言在編譯和執行上的差別。從C、Java、Python思考一下「跨平台」這種技術。
學會使用IDE Eclipse,使用Eclipse 編譯,調試和開發Java程序。
建一個Tomcat的網站,嘗試一下JSP/Servlet/JDBC/MySQL的Web開發。把前面所說的那個PHP的小項目試著用JSP和Servlet實現一下。
3、Web的安全與架構
學習HTML5,網上有很多很多教程,以前酷殼也介紹過很多,我在這里就不羅列了。
學習Web開發的安全問題(參考新浪微博被攻擊的這個事,以及Ruby的這篇文章)
學習HTTP Server的rewrite機制,Nginx的反向代理機制,fast-cgi(如:PHP-FPM)
學習Web的靜態頁面緩存技術。
學習Web的非同步工作流處理,數據Cache,數據分區,負載均衡,水平擴展的構架。
實踐任務:
使用HTML5的canvas 製作一些Web動畫。
嘗試在前面開發過的那個Web應用中進行SQL注入,JS注入,以及XSS攻擊。
把前面開發過的那個Web應用改成構造在Nginx + PHP-FPM + 靜態頁面緩存的網站
4、學習關系型資料庫
你可以安裝MSSQLServer或MySQL來學習資料庫。
學習教科書里資料庫設計的那幾個範式,1NF,2NF,3NF,……
學習資料庫的存過,觸發器,視圖,建索引,游標等。
學習SQL語句,明白表連接的各種概念(參看《SQL Join的圖示》)
學習如何優化資料庫查詢(參看《MySQL的優化》)
實踐任務:設計一個論壇的資料庫,至少滿足3NF,使用SQL語句查詢本周,本月的最新文章,評論最多的文章,最活躍用戶。
5、一些開發工具
學會使用SVN或Git來管理程序版本。
學會使用JUnit來對Java進行單元測試。
學習C語言和Java語言的coding standard 或 coding guideline。(我N年前寫過一篇關C語言非常簡單的文章——《編程修養》,這樣的東西你可以上網查一下,一大堆)。
推薦閱讀《代碼大全》《重構》《代碼整潔之道》
高級深入
1、C++ / Java 和面向對象
我個人以為學好C++,Java也就是舉手之勞。但是C++的學習曲線相當的陡。不過,我覺得C++是最需要學好的語言了。參看兩篇趣文「C++學習信心圖」 和「21天學好C++」
學習(麻省理工免費課程)C++面向對象編程
讀我的 「如何學好C++」中所推薦的那些書至少兩遍以上(如果你對C++的理解能夠深入到像我所寫的《C++虛函數表解析》或是《C++對象內存存局(上)(下)》,或是《C/C++返回內部靜態成員的陷阱》那就非常不錯了)
然後反思為什麼C++要干成這樣,Java則不是?你一定要學會對比C++和Java的不同。比如,Java中的初始化,垃圾回收,介面,異常,虛函數,等等。
實踐任務:
用C++實現一個BigInt,支持128位的整形的加減乘除的操作。
用C++封裝一個數據結構的容量,比如hash table。
用C++封裝並實現一個智能指針(一定要使用模板)。
《設計模式》必需一讀,兩遍以上,思考一下,這23個模式的應用場景。主要是兩點:1)鍾愛組合而不是繼承,2)鍾愛介面而不是實現。(也推薦《深入淺出設計模式》)
實踐任務:
使用工廠模式實現一個內存池。
使用策略模式製做一個類其可以把文本文件進行左對齊,右對齊和中對齊。
使用命令模式實現一個命令行計算器,並支持undo和redo。
使用修飾模式實現一個酒店的房間價格訂價策略——旺季,服務,VIP、旅行團、等影響價格的因素。
學習STL的用法和其設計概念 - 容器,演算法,迭代器,函數子。如果可能,請讀一下其源碼。
實踐任務:嘗試使用面向對象、STL,設計模式、和WindowsSDK圖形編程的各種技能
做一個貪吃蛇或是俄羅斯方塊的游戲。支持不同的級別和難度。
做一個文件瀏覽器,可以瀏覽目錄下的文件,並可以對不同的文件有不同的操作,文本文件可以打開編輯,執行文件則執行之,mp3或avi文件可以播放,圖片文件可以展示圖片。
學習C++的一些類庫的設計,如: MFC(看看候捷老師的《深入淺出MFC》) ,Boost, ACE, CPPUnit,STL (STL可能會太難了,但是如果你能了解其中的設計模式和設計那就太好了,如果你能深入到我寫的《STL string類的寫時拷貝技術》那就非常不錯了,ACE需要很強在的系統知識,參見後面的「加強對系統的了解」)
Java是真正的面向對象的語言,Java的設計模式多得不能再多,也是用來學習面向對象的設計模式的最佳語言了(參看Java中的設計模式)。
推薦閱讀《Effective Java》 and 《Java解惑》
學習Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是學習Java的設計,如IoC等。
Java的技術也是爛多,重點學習J2EE架構以及JMS, RMI, 等消息傳遞和遠程調用的技術。
學習使用Java做Web Service (官方教程在這里)
實踐任務: 嘗試在Spring或Hibernate框架下構建一個有網路的Web Service的遠程調用程序,並可以在兩個Service中通過JMS傳遞消息。
C++和Java都不是能在短時間內能學好的,C++玩是的深,Java玩的是廣,我建議兩者選一個。我個人的學習經歷是:
深究C++(我深究C/C++了十來年了)
學習Java的各種設計模式。
2、加強系統了解
重要閱讀下面的幾本書:
《Unix編程藝術》了解Unix系統領域中的設計和開發哲學、思想文化體系、原則與經驗。你一定會有一種醍醐灌頂的感覺。
《Unix網路編程卷1,套接字》這是一本看完你就明白網路編程的書。重要注意TCP、UDP,以及多路復用的系統調用select/poll/epoll的差別。
《TCP/IP詳解 卷1:協議》- 這是一本看完後你就可以當網路黑客的書。了解乙太網的的運作原理,了解TCP/IP的協議,運作原理以及如何TCP的調優。
實踐任務:
理解什麼是阻塞(同步IO),非阻塞(非同步IO),多路復用(select, poll, epoll)的IO技術。
寫一個網路聊天程序,有聊天伺服器和多個聊天客戶端(服務端用UDP對部分或所有的的聊天客戶端進Multicast或Broadcast)。
寫一個簡易的HTTP伺服器。
《Unix網路編程卷2,進程間通信》信號量,管道,共享內存,消息等各種IPC…… 這些技術好像有點老掉牙了,不過還是值得了解。
實踐任務:
主要實踐各種IPC進程序通信的方法。
嘗試寫一個管道程序,父子進程通過管道交換數據。
嘗試寫一個共享內存的程序,兩個進程通過共享內存交換一個C的結構體數組。
學習《Windows核心編程》一書。把CreateProcess,Windows線程、線程調度、線程同步(Event, 信號量,互斥量)、非同步I/O,內存管理,DLL,這幾大塊搞精通。
實踐任務:使用CreateProcess啟動一個記事本或IE,並監控該程序的運行。把前面寫過的那個簡易的HTTP服務用線程池實現一下。寫一個DLL的鉤子程序監控指定窗口的關閉事件,或是記錄某個窗口的按鍵。
有了多線程、多進程通信,TCP/IP,套接字,C++和設計模式的基本,你可以研究一下ACE了。使用ACE重寫上述的聊天程序和HTTP伺服器(帶線程池)
實踐任務:通過以上的所有知識,嘗試
寫一個服務端給客戶端傳大文件,要求把100M的帶寬用到80%以上。(注意,磁碟I/O和網路I/O可能會很有問題,想一想怎麼解決,另外,請注意網路傳輸最大單元MTU)
了解BT下載的工作原理,用多進程的方式模擬BT下載的原理。
3、系統架構
負載均衡。HASH式的,純動態式的。(可以到Google學術里搜一些關於負載均衡的文章讀讀)
多層分布式系統 – 客戶端服務結點層、計算結點層、數據cache層,數據層。J2EE是經典的多層結構。
CDN系統 – 就近訪問,內容邊緣化。
P2P式系統,研究一下BT和電驢的演算法。比如:DHT演算法。
伺服器備份,雙機備份系統(Live-Standby和Live-Live系統),兩台機器如何通過心跳監測對方?集群主結點備份。
虛擬化技術,使用這個技術,可以把操作系統當應用程序一下切換或重新配置和部署。
學習Thrift,二進制的高性能的通訊中間件,支持數據(對象)序列化和多種類型的RPC服務。
學習Hadoop。Hadoop框架中最核心的設計就是:MapRece和HDFS。MapRece的思想是由Google的一篇論文所提及而被廣為流傳的,簡單的一句話解釋MapRece就是「任務的分解與結果的匯總」。HDFS是Hadoop分布式文件系統(Hadoop Distributed File System)的縮寫,為分布式計算存儲提供了底層支持。
了解NoSQL資料庫(有人說可能是一個過渡炒作的技術),不過因為超大規模以及高並發的純動態型網站日漸成為主流,而SNS類網站在數據存取過程中有著實時性等剛性需求,這使得目前NoSQL資料庫慢慢成了人們所關注的焦點,並大有成為取代關系型資料庫而成為未來主流數據存儲模式的趨勢。當前NoSQL資料庫很多,大部分都是開源的,其中比較知名的有:MemcacheDB、Redis、Tokyo Cabinet(升級版為Kyoto Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。
Ⅲ 國內外對安卓手機日程管理軟體的研究現狀
日程管理軟體,基於日期、時間節點、事件安排的管理軟體。
現狀:
手機端:從各個應用市場以及手機預裝情況來看,軟體基本按照上述概念提供的提示性的功能。問題在於,手機作為工作載體可以實現,但在效率上遠遠不及PC
電腦端:在PC端,是有一個完成的處理鏈條,PC的劣勢在於不能隨身攜帶,但處理效率高。
目前手機日程管理和工作流處理已經實現並打通,如、用友、紛享銷客等企業提供的企業管理軟體。
日程管理軟體的應用有非常強的實用性,但用戶群體的不同導致軟體分化嚴重。例如,生活中和工作中的場景決定了軟體的內容和功能,延伸至市場,生活類的主要為免費提供,工作中一般為收費。
猜想:日常管理軟體的商業化還需要一段非常長的路要走,載體最好是移動端;首先,那麼信息的錄入效率和處理效率很重要,也就是說用戶體驗要好。其次,商業模式需要重新定義,這個暫時沒有行之有效的模式。
Ⅳ 推薦android開發視頻,最好清楚點的。謝謝
【黑馬程序員】Java多線程與並發庫高級應用
【黑馬程序員】畢向東Java入門視頻
【黑馬程序員】方立勛JavaWeb視頻
【黑馬程序員】項目視頻經典之作巴巴運動網續集
【黑馬程序員】項目視頻經典之作巴巴運動網106集
【黑馬程序員】Java視頻教程(最適合Java初學者的經典入門視頻)
【黑馬程序員】張孝祥2010年賀歲視頻:Java高新技術
【黑馬程序員】JavaWEB開發(JSP+Servlet)視頻
【黑馬程序員】JDBC視頻教程
【黑馬程序員】_struts2實用簡潔版視頻
【黑馬程序員】張孝祥Struts開發視頻教程
【黑馬程序員】Struts1 視頻教程
【黑馬程序員】AJax技術入門視頻教程
【黑馬程序員】Hibernate視頻教程
【黑馬程序員】Spring2.5視頻教程
【黑馬程序員】EJB3.0視頻教程
【黑馬程序員】JPA詳解視頻教程
【黑馬程序員】ibatis視頻教程
【黑馬程序員】張孝祥-7K月薪面試題破解之二:銀行業務調度系統
【黑馬程序員】張孝祥-7K月薪面試題破解之一:交通燈管理系統
【黑馬程序員】java網上在線支付實戰視頻
【黑馬程序員】JAVA郵件開發視頻教程
【黑馬程序員】FCKeditor視頻教程
【黑馬程序員】俄羅斯、貪吃蛇游戲-項目視頻
【黑馬程序員】HTML、CSS、JavaScript技術的入門視頻
【黑馬程序員】王澤佑JNI視頻教程
【黑馬程序員】_FTP視頻教程
【黑馬程序員】Oracle視頻教程(內部經典)
【黑馬程序員】OA+工作流(JBPM)
視頻持續更新中...
Ⅳ C#服務端,Android客戶端 開發IM,服務端怎麼弄,有沒有開源的框架
C#開源項目(國外的還是很多) 一、Ajax框架 Ajax.NET Professional
(AjaxPro)是最先把AJAX技術在微軟.NET環境下的實現的AJAX框架之一。它在客戶端腳本之上創建代理類來調用伺服器端的方法。
MagicAjax.NET是一款在ASP.NET下創建Web頁面提供AJAX技術的框架。它使開發人員很容易把AJAX整合到他們的頁面而不需要替換ASP.NET控制項或自己寫javascript腳本代碼。
Anthem.NET是為ASP.NET開發環境提供的開源AJAX工具包,它可以運行於ASP.NET 1.1和2.0。
二、工作流(workflow)
Workflow.Net是使用微軟.Net技術基於wmfc標準的創建工作流引擎。
NetBPM是JBpm移植到.net平台下的一款開源工作流軟體。NetBpm可以很容易和.Net應用程序集成在一起,可以創建,執行和管理工作流程序。 Bpm
Tool支持將業務模型轉換成軟體模型。業務開發人員可以使用模型驅動的方法設計,實現,執行和跟蹤業務流程。因此開發人員能夠更容易的關注業務邏輯的變化。
其實微軟自己的WPF做WorkFlow也很厲害。
三、文本編輯 FCKeditor是一款功能強大的開源在線文本編輯器(DHTML
editor),它使你在web上可以使用類似微軟Word 的桌面文本編輯器的許多強大功能。它是輕量級且不必在客戶端進行任何方式的安裝。 FreeTextBox
是一個基於 Internet Explorer 中 MSHTML 技術的 ASP.NET 開源伺服器控制項。這是一款優秀的自由軟體(Free
Software),我們可以輕松地將其嵌入到 Web Forms 中實現 HTML 內容的在線編輯,在新聞發布、博客寫作、論壇社區等多種 Web
系統中都會有用途。 VietPad是一個功能完整的跨平台的Java/.NET的Vietnamese
Unicode開源文本編輯器。支持打開,編輯,列印,轉換,排序,和保存基於文本的Unicode格式的Vietnamese文件。
NetSpell是一款.NET框架下的開源拼寫檢查引擎。 PPC_edit是一款應用在Pocket PC上的開源文本編輯器,它支持TXT, RTF, HTML,
WordML, DocBook 和 ZIP格式的文件,屏幕上會顯示國際標準的軟鍵盤。
四、博客(Blog)
NovaShare是一款Blog引擎,它使你創建基於互動式的web的新聞和論壇網站,很像WonkoSlice或Slashdot。管理員可以發布文章和發起投票,瀏覽者可以創建用戶帳號,發表議論等等。
dasBlog是從BlogX 網上日誌引擎發展而來。像Trackback ,Pingback
一樣增加許多附加的特徵,有完整的Blogger/MovableType
API支持,API注釋,完整的Radio-style模板定製,支持Mail-To-Weblog/POP3的附件和內嵌圖片,基於WEB的
DHTML,OPML,配置的編輯器。 DotText是一個被使用了數百個blogs的強勁的blog引擎。這是一個N-tiered應用的例子。
tBlogger是一個C#開發的完整的blog網站程序,使用XML配置。
Blog現在可以使用MVC的其他開源項目來構建,這些項目在codeplex上有很多,其中微軟自己的就有OXite。
五、系統構建
.NETZ是一款免費開源工具,它可以壓縮和打包微軟 .NET 框架可執行文件(EXE,
DLL)以使他們更小。更小的可執行文件佔用的磁碟空間較少且因為讀取文件時對磁碟的訪問較少而使讀取數度更快。它和PE(portable
executable)打包工具不一樣,.NETZ是使用 C# 編寫的存粹的 .NET 解決方案。.NETZ可以用來打包幾乎每一種 .NET
支持的語言編寫的程序。.NETZ支持 .NET EXE 和 非共享(non-shared)的 DLL
文件。壓縮過的程序能以相同的方式解壓縮這些對最終用戶是透明的。 NAntContrib為NAnt提供定製任務的工具。
Prebuild是XML驅動的一款跨平台pre-build工具,使開發人員很容易就可以為IDE和.NET開發工具生成項目或構建文件。它支持 Visual
Studio .NET 2002, 2003, 2005, SharpDevelop, MonoDevelop 和 NAnt。
BusyBeeBuilder是.NET平台下功能強大,易於使用,可擴展的開源構建自動操作工具。 Draco.NET 是 Windows
服務應用程序。它的設計使其容易持續的集成新特性。Draco.NET監視你的源代碼儲存庫。當探測到你的項目有變化時自動重新創建項目並把包含變化列表的創建結果發送到你的Email。
Build Studio為軟體的自動構件處理提供了一套完整的解決方案。 CruiseControl.NET是.NET平台下的一款整合伺服器。
NAnt類似Apache項目下的Ant,是.Net下的開源構建工具。適用在自動編譯.NET應用的場合,如.NET項目的每日構建(nightly
build)。
說老實話,我並不認為系統構建工具的作用真的有那麼強大,如果你真的計劃做一個很大的項目,且持續開發時間很長,那麼你可以使用上面的系統構建工具。
五、圖表製作
ZedGraph是C#編寫的.NET類庫,提供了用戶控制項和web控制項。它可以創建2D的線性圖、條形圖和餅圖。它功能完整且有詳細的功能自定義,不過
使用默認的選項就足夠好用了。一款類似 PieChart, StackBar, LineChart的C#開源圖表組件。
NPlot是一款.NET下的開源圖表類庫.它值得稱道的地方是優雅且靈活的API設計.NPlot包含了Windows Form控制項,
ASP.NET控制項和一個創建Bitmap圖片的類。還有一個可用的GTK#控制項。 XSCharting是C#開發的圖表組件,提供了多種多樣的圖表選項。
DaveChart是一個免費的DotNet類庫。 NChart 提供了很多值得應用在商業,教育等多個領域的2 D圖表。
微軟自己已經提供了一個chat繪制控制項,也就是原來的nat,如果那個可以滿足你的要求,那麼完全沒有必要使用上面的。但是如果你需要研究畫圖,作自己定義的chat,那麼這些開源的項目將對你有很大的幫助。
六、聊天系統
Dot Net Chat
server是基於DotNet框架開發的聊天伺服器和客戶端項目。說老實話,我對這個很感興趣,有時間,要瞧瞧它的代碼是咋實現的。
七、內容管理系統(CMS)
Ludico是C#編寫的居於ASP.NET
2.0的Portal/CMS系統。它的模塊化設計是你可以按照你希望的使用或開發網站功能。它裡面有高級的用戶管理,一個所見即所的(WYSIWYG)的編輯器等。
mojoPortal是一款C#開發的面相對象網站框架,它可以運行於Windows的ASP.NET 和GNU/Linux 或Mac OS X的Mono的平台上。
Cuyahoga是C#開發的靈活的CMS / Portal 解決方案。它可以運行於Microsoft .NET 和Mono 平台,支持SQL Server,
PostgreSQL或MySQL作為底層資料庫。 Umbraco是一款在.net平台下C#開發的開源內容管理系統,該系統效率,靈活,用戶界面都不錯。 Kodai
CMS是.NET平台下的一款功能齊全的內容管理系統。 Rainbow項目是一款使用Microsoft』』s
ASP.NET和C#技術開發的有豐富功能的開源內容管理系統。 NkCMS是使用ASP.net和Sql server 2000開發的內容管理系統。
Amplefile是一款內容管理系統,是.Net環境下的windows應用程序,使用了.Net remoting.
Go.Kryo是一個用ASP.NET(C#).NET 實現的簡單的內容管理系統,後台資料庫使用Microsoft SQL Server 。 ndCMS是
ASP.net
(C#)下的一個內容管理系統。它提供了用戶管理,文件管理,一個WYSIWYG編輯器,模板管理,拼寫檢查和內置的http壓縮。ndCMS的目標是提供一個簡單而快速的方式部署.Net站點以節省你的時間和金錢。
這些開源的CMS我試用了幾個,說真的,拿來研究可以,要真的實施,估計很難。
九、論壇系統
YetAnotherForum可以作為ASP.NET開發的網站的論壇或是留言板。它使用MSSQL作為底層資料庫。
十、安裝製作
izfree是一套套免費的工具用於幫助創建使用Microsoft」』』s Windows
Installer 技術的安裝程序。使用izfree你可以為你的應用程序製作強勁的安裝程序。
Windows Installer XML
(WiX)可以重XML源文件創建Windows程序安裝包的工具集。它支持命令行方式,開發人員可以把結合它來創建MSI和MSM安裝包一個可以和商業軟體安裝產品相比的開源打包工具。
一般的需求試用VS
自帶的就可以了,更復雜的需要用到InstallShield,這樣看起來開源的就沒啥意義了。
十一、IoC容器
Spring.net是從java的Spring
Framework移植過來的。java的Spring包含了許多功能和特性,在當前的Spring.net都有提供。Spring.net最初發布的版本包含了一個很有特色的IoC容器。
Castle是一組應用開發的工具,內含一個簡單的IoC容器。
StructureMap是.NET環境下的一個輕量級依賴注入工具,StructureMap也是一個靈活的、可擴展的通用「插件」機制的.NE
我用過StrucutureMap,但是給我的感覺是,試用這個似乎沒多發幫助。
十二、網路客戶端
.NET FTP Client是C#編寫的開源類庫。
.NET Telnet是微軟.NET
Framework下的C#開發的開源telnet類庫。它的靈感來至Java Telnet Application。
metro這個項目是C#編寫的類庫,它提供了一套豐富的類使開發IP version 4, TCP,
UDP and ICMP等工作更容易。它包含了有很有用的工具如包嗅探器,網路分析工具例如路由跟蹤,ping等。
LJ.NET是LiveJournal站點的客戶端。它為LJ在線日誌服務提供了簡單而強大的用戶介面。
NET VNC Viewer 是一款完全用C#開發的開源VNC觀察器。它兼容Smartphones,
Pocket PC和Windows的電腦(.NET CF or .NET Framework)。它比起其它觀察器的優點是可以在Pocket
PC上全屏顯示而且可以旋轉屏幕。
GVDownloader允許你從google videos, metacafe, putfile,
youtube, break.com 和更多的地方快速下載內含的視頻和多媒體。它的包含一個強勁IE插件和位於你系統托盤的獨立程序。
DotNetOpenMail能夠使你在微軟.net框架開發的asp.net,
WinForm應用程序發送Email。它是C#編寫的開源組件,它不需要使用System.Web.Mail類庫就可以容易的創建帶附件HTML和
Plain-text的Email。程序員不需要知道很多相關的細節就可以使用不同的字元集或不同的MINE編碼來創建
multipart/alternative,multipart/related和multipart/mixed的MIME消息。
DotMSN是一款獨立的開源類庫,它不需要和官方的MSN Messenger交互,因此不必安裝MSN
Messenger就可以使用DotMSN和MSN
Messenger服務通信.DotMSN是C#編寫的,所以.NET環境支持的語言都能夠使用.DotMSN類庫使用簡單而且實現方便。它靈活,堅固,
輕量級利於整合到任何應用系統.使用DotMSN的應用系統能實現從創建消息機器人到自定義客戶端等各種不同的功能.如果你的應用程序需要和
Messenger服務通信,DotMSN是一個不錯的工具.
SharpSSH使用C#實現了SSH2協議,它支持SSH, SCP 和 SFTP.
OpenPOP.NET一組和POP Servers通信的.NET類庫。
IceChat是為連接多樣的IRC Servers設計的Internet Relay Chat
Client。
lphant是為edonkey/emule開發的開源客戶端程序。
.NET FTP Client C#開發的類庫。
OpenSmtp.net 是 C# 開發的開源SMTP組件。它不依賴.NET Framework
的System.Web.Mail 包中的類。允許開發人員使用不同於MS SMTP的SMTP 伺服器且提供了web
service而可以通過HTTP發送email。
這裡面有幾個值得推薦,例如DotMsn這個,在某些場合就很有用處。