国产精品高清一区二区三区久久,国产精品无码Av免费播放,屁屁影院一区二区三区,亚洲国产砖一线二线

WEBAPI上傳文件,讀取 MIME 多節(jié)正文部分時出錯。

                var multipartMemoryStreamProvider = await Request.Content.ReadAsMultipartAsync();


//默認只能接收4096KB的文件,超過這個大小的文件時便會報以下錯誤。

//Error reading MIME multipart body part


解決方案:

web.config:

<system.web>
   <!--允許請求長度,設(shè)置未1GB內(nèi)容-->
   <httpRuntime targetFramework="4.5.1" maxRequestLength="1073741824" />
</system.web>

了解更多

MVC 中Html.TextBoxFor 如何實現(xiàn) data-options屬性與值格式化

Html.TextBoxFor(model => model.AreaName, new {@class="header", @data_options = "multiline:true", @data_date_format="yyyy/mm/dd"})

關(guān)鍵在于把 @data-options 寫成 @data_options

@Html.TextBoxFor(model => model.StartDate, new { Value = String.Format("{0:yyyy-MM-dd}", Model.StartDate)})
@Html.TextBoxFor(model => model.StartDate,"{0:yyyy-MM-dd}", new { @class = "m-wrap small", @readonly = "true" })
@Html.TextBoxFor(model => model.StartDate, new { Value = Model.StartDate.ToString("yyyy-MM-dd")})
上面三種寫法均正確,這里需要注意兩點:
1、強制更改控件value屬性,注意這個Value不能小寫;
2、注意Model是System.Web.Mvc.WebViewPage<TModel>的屬性,區(qū)別于Lamda表達式中model。
Model的定義public TModel Model { get; }
WebViewPage<TModel>繼承自WebViewPage;
3、ModelState.Clear();清空model中的值,ModelState.Remove("XXX");清空某一個值。

舉例:
<span>操作時間:</span>
           從 @Html.TextBoxFor(model => model.Query.BeginTime, new { Value = Model.Query.BeginTime.ToString("yyyy-MM-dd"), @class = "Wdate", onClick = "WdatePicker({dateFmt:'yyyy-MM-dd'});", style = "width:100px;" })
           到 @Html.TextBoxFor(model => model.Query.EndTime, new { Value = Model.Query.EndTime.ToString("yyyy-MM-dd"), @class = "Wdate", onClick = "WdatePicker({dateFmt:'yyyy-MM-dd'});", style = "width:100px;" })

了解更多

C# 用QQ企業(yè)郵箱發(fā)郵件

問題System.Net.Mail下的SmtpClient來發(fā)送郵件,而System.Net.Mail only僅支持Explicit SSL

不要465端口,用25,不用EnableSsl = true;

 

    {
        static void Main(string[] args)
        {
            SmtpClient client = new SmtpClient();
            client.Host = "smtp.exmail.qq.com";
            client.Port = 25;
           // client.Port = 465;
          //  client.EnableSsl = true;
            client.Timeout = 10000;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.UseDefaultCredentials = false;
            client.Credentials = new System.Net.NetworkCredential("test@ms.com", "1234567890");
            MailMessage mm = new MailMessage("test@ms.com", "user1@ms.com", "test", "test");
            mm.BodyEncoding = UTF8Encoding.UTF8;
            mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
            client.Send(mm);
        }
    }

 

最后在配置TFS郵件通知設(shè)置的時候端口改用25,不選擇SSL,順利解決問題。

SmtpClient發(fā)送郵件超時的異常參考:

http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx

了解更多

開源軟件開發(fā)項目管理軟件

最近總為項目怎么管理費腦筋,每個流程和細節(jié)都得記錄和處理,所以結(jié)果就是找來了一些開源的、功能全的軟件來了,做下記錄,各位有什么不同軟件推薦的也可以在博客留言討論。

 

Redmine
Redmine是用Ruby開發(fā)的基于web的項目管理軟件,是用ROR框架開發(fā)的一套跨平臺項目管理系統(tǒng),據(jù)說是源于Basecamp的ror版而來,支持多種數(shù)據(jù)庫,有不少自己獨特的功能,例如提供wiki、新聞臺等,還可以集成其他版本管理系統(tǒng)和BUG跟蹤系統(tǒng),例如SVN、CVS、TD等等。這種 Web 形式的項目管理系統(tǒng)通過“項目(Project)”的形式把成員、任務(問題)、文檔、討論以及各種形式的資源組織在一起,大家參與更新任務、文檔等內(nèi)容來推動項目的進度,同時系統(tǒng)利用時間線索和各種動態(tài)的報表形式來自動給成員匯報項目進度。

TeamLab

TeamLab 是一個免費開源的商業(yè)協(xié)作和項目管理的平臺。TeamLab 主要功能包括:項目管理、里程碑管理、任務、報表、事件、博客、論壇、書簽、Wiki、即時消息等等。

采用.net開發(fā),目前版本6.5,編譯、安裝、部署與測試方法:

1、打開redistributable/asc文件夾,運行buildanddeploy.bat文件。2、根目錄下會看到_ci文件夾下多出一個deploy文件夾3.進入到serverice文件夾下,運行TeamLabSvc.exe。4、一切完成后,打開IE,輸入http://本機IP:8082,應該可以看到登錄界面了。
5、修改默認端口可以在teamlabsvc.exe中進行配置

 

Endeavour Software Project Management

JAVA開發(fā),(中文:奮進號項目周期管理系統(tǒng))是一個功能豐富基于Web的軟件項目管理工具。Endeavour適合用來管理大規(guī)模的迭代和增量企業(yè)系統(tǒng)軟件項目,主要功能包括:用例管理、迭代開發(fā)、項目計劃、需求變更管理、缺陷跟蹤、測試用例、文檔管理和其他功能等

Project-Open

project-open采用TCL開發(fā)的基于Web的項目管理系統(tǒng),它能幫助你的業(yè)務涵蓋領(lǐng)域,如客戶關(guān)系管理,銷售,項目規(guī)劃,項目跟蹤,協(xié)作,時間表,發(fā)票和付款等。

功能包括:

◆ 項目/方案
◆ 甘特圖
◆ 項目模板
◆ 項目計劃
◆ 項目跟蹤
◆ 項目報告
◆ 風險管理
◆ 財政管理
◆ 時間表
◆ 項目管理
◆ 定購單
◆ 發(fā)票和付款
◆ 人力資源
◆ 雇員薪水表
◆ 查詢管理
◆ 客戶
◆ 新聞
◆ 討論
◆ 聊天
◆ 維基
◆ 事物


Project.net

Project.net是一套強大、可擴展、可定制基于Web的項目管理系統(tǒng),采用java開發(fā),結(jié)構(gòu)定的比較大


Plandora

Plandora 是一個需求變更和項目管理平臺,采用甘特圖進行任務計劃,項目周期存儲在知識庫中


Onepoint Project

Onepoint Project代表了一類新的項目領(lǐng)導軟件解決方案,不再讓你在易用性和功能性的選擇上左右為難。此外,它的不同的版本能滿足您的需求和業(yè)務的規(guī)模。

功能和特點
減少項目風險:通過集成解決方案提高可用性
最小的項目管理工作:管理項目模板和團隊
增加項目透明度:通過特設(shè)的監(jiān)測,計劃與實際的比較
大大減少成本:通過它減少風險和管理,而且增加透明度

 

 


eGroupWare Community

已經(jīng)收費

 

zentaopms

國產(chǎn)開源的項目管理軟件,資料很多


dotProject

DotProject是一個在1996年左右,基于Web,強大,小巧.被翻譯為了大約40多種語言,應用于100多個國家, 只要能夠跑AMP的OS,都可以(AMP指Apache,Mysql,PHP),它包含的模塊有:公司管理,項目管理,任務進度跟蹤(運用甘特圖),論壇,文件管理,日歷,通信 錄,備忘錄/幫助桌面,用戶與模塊的權(quán)限管理,主題管理。并采用模塊化設(shè)計以便于擴展。

 

 最后,還推薦一些更多的文章,大家一起去研究下。

一個國外統(tǒng)計c#各類開源項目的網(wǎng)站:http://csharp-source.net/

國內(nèi)有人統(tǒng)計的c#開源項目:http://alance.iteye.com/blog/693987

了解更多

C#開源項目介紹

一、AOP框架
        Encase 是C#編寫開發(fā)的為.NET平臺提供的AOP框架。Encase 獨特的提供了把方面(aspects)部署到運行時代碼,而其它AOP框架依賴配置文件的方式。這種部署方面(aspects)的方法幫助缺少經(jīng)驗的開發(fā) 人員提高開發(fā)效率。
        NKalore是一款編程語言,它擴展了C#允許在.net平臺使用AOP。NKalore的語法簡單、直觀,它的編譯器是基于Mono C#編譯器(MCS)。NKalore目前只能在命令行或#Develop內(nèi)部使用。NKalore兼容公共語言規(guī)范CLS(Common Language Specification),它可以在任何.NET開發(fā)環(huán)境中使用,包括微軟的Visual Studio .NET。


        PostSharp讀取.NET字節(jié)模塊,轉(zhuǎn)換成對象模型。讓插件分析和轉(zhuǎn)換這個模型并寫回到MSIL。PostSharp使開發(fā)程序分析應用程序容易得 像分析代碼規(guī)則和設(shè)計模式,它使程序開發(fā)的思想變革為面向方面軟件開發(fā)(AOSD/AOD)思想。
        AspectDNG的目標是為.NET開發(fā)人員提供簡單而功能強大的AOP-GAOP實現(xiàn)。它效仿java下的開源工具AspectJ 和 Spoon,成熟程度也很接近它們。
        RAIL(Runtime Assembly Instrumentation Library) 開源項目可以在C#程序集加載和運行前進行處理控制調(diào)整和重新構(gòu)建。C#在CLR中,我們已經(jīng)能夠動態(tài)加載程序集并且獲得程序集中的類和方 法,RAIL(Runtime Assembly Instrumentation Library)的出現(xiàn)填補了CLR處理過程中的一些空白


        SetPoint是一款.NET框架下的全功能(full-featured)AOP引擎.它著重為稱為語義切點(semantic pointcuts)的定義依賴RDF/OWL的使用.它的功能為一個IL-level,highly dynamic weaver&LENDL,一個引人注目的定義語言、、、、、、
        DotNetAOP為 CLR language提供AOP 框架基礎(chǔ)屬性。
        NAop是一個DotNet下的AOP框架。
        AspectSharp是DotNet下的免費AOP框架,它以Dynamic Proxies和XML作為配置文件。
二、Ajax框架
        Ajax.NET Professional (AjaxPro)是最先把AJAX技術(shù)在微軟.NET環(huán)境下的實現(xiàn)的AJAX框架之一。它在客戶端腳本之上創(chuàng)建代理類來調(diào)用服務器端的方法。
        MagicAjax.NET是一款在ASP.NET下創(chuàng)建Web頁面提供AJAX技術(shù)的框架。它使開發(fā)人員很容易把AJAX整合到他們的頁面而不需要替換 ASP.NET控件或自己寫javascript腳本代碼。
        Anthem.NET是為ASP.NET開發(fā)環(huán)境提供的開源AJAX工具包,它可以運行于ASP.NET 1.1和2.0。
三、工作流(workflow)
        Workflow.Net是使用微軟.Net技術(shù)基于wmfc標準的創(chuàng)建工作流引擎。
        NetBPM是JBpm移植到.net平臺下的一款開源工作流軟件。NetBpm可以很容易和.Net應用程序集成在一起,可以創(chuàng)建,執(zhí)行和管理工作流程 序。
        Bpm Tool支持將業(yè)務模型轉(zhuǎn)換成軟件模型。業(yè)務開發(fā)人員可以使用模型驅(qū)動的方法設(shè)計,實現(xiàn),執(zhí)行和跟蹤業(yè)務流程。因此開發(fā)人員能夠更容易的關(guān)注業(yè)務邏輯的變 化。
三、文本編輯
        FCKeditor是一款功能強大的開源在線文本編輯器(DHTML editor),它使你在web上可以使用類似微軟Word 的桌面文本編輯器的許多強大功能。它是輕量級且不必在客戶端進行任何方式的安裝。
        FreeTextBox 是一個基于 Internet Explorer 中 MSHTML 技術(shù)的 ASP.NET 開源服務器控件。這是一款優(yōu)秀的自由軟件(Free Software),我們可以輕松地將其嵌入到 Web Forms 中實現(xiàn) HTML 內(nèi)容的在線編輯,在新聞發(fā)布、博客寫作、論壇社區(qū)等多種 Web 系統(tǒng)中都會有用途。
        VietPad是一個功能完整的跨平臺的Java/.NET的Vietnamese Unicode開源文本編輯器。支持打開,編輯,打印,轉(zhuǎn)換,排序,和保存基于文本的Unicode格式的Vietnamese文件。
        NetSpell是一款.NET框架下的開源拼寫檢查引擎。
        PPC_edit是一款應用在Pocket PC上的開源文本編輯器,它支持TXT, RTF, HTML, WordML, DocBook 和 ZIP格式的文件,屏幕上會顯示國際標準的軟鍵盤。
四、博客(Blog)
        NovaShare是一款Blog引擎,它使你創(chuàng)建基于交互式的web的新聞和論壇網(wǎng)站,很像WonkoSlice或Slashdot。管理員可以發(fā)布文 章和發(fā)起投票,瀏覽者可以創(chuàng)建用戶帳號,發(fā)表議論等等。
        dasBlog是從BlogX 網(wǎng)上日志引擎發(fā)展而來。像Trackback ,Pingback 一樣增加許多附加的特征,有完整的Blogger/MovableType API支持,API注釋,完整的Radio-style模板定制,支持Mail-To-Weblog/POP3的附件和內(nèi)嵌圖片,基于WEB的 DHTML,OPML,配置的編輯器。
        DotText是一個被使用了數(shù)百個blogs的強勁的blog引擎。這是一個N-tiered應用的例子。
         tBlogger是一個C#開發(fā)的完整的blog網(wǎng)站程序,使用XML配置。
五、 系統(tǒng)構(gòu)建

        .NETZ是一款免費開源工具,它可以壓縮和打包微軟 .NET 框架可執(zhí)行文件(EXE, DLL)以使他們更小。更小的可執(zhí)行文件占用的磁盤空間較少且因為讀取文件時對磁盤的訪問較少而使讀取數(shù)度更快。它和PE(portable executable)打包工具不一樣,.NETZ是使用 C# 編寫的存粹的 .NET 解決方案。.NETZ可以用來打包幾乎每一種 .NET 支持的語言編寫的程序。.NETZ支持 .NET EXE 和 非共享(non-shared)的 DLL 文件。壓縮過的程序能以相同的方式解壓縮這些對最終用戶是透明的。
        NAntContrib為NAnt提供定制任務的工具。
        Prebuild是XML驅(qū)動的一款跨平臺pre-build工具,使開發(fā)人員很容易就可以為IDE和.NET開發(fā)工具生成項目或構(gòu)建文件。它支持 Visual Studio .NET 2002, 2003, 2005, SharpDevelop, MonoDevelop 和 NAnt。
        BusyBeeBuilder是.NET平臺下功能強大,易于使用,可擴展的開源構(gòu)建自動操作工具。
        Draco.NET 是 Windows 服務應用程序。它的設(shè)計使其容易持續(xù)的集成新特性。Draco.NET監(jiān)視你的源代碼儲存庫。當探測到你的項目有變化時自動重新創(chuàng)建項目并把包含變化列表 的創(chuàng)建結(jié)果發(fā)送到你的Email。
        Build Studio為軟件的自動構(gòu)件處理提供了一套完整的解決方案。
        CruiseControl.NET是.NET平臺下的一款整合服務器。
        NAnt類似Apache項目下的Ant,是.Net下的開源構(gòu)建工具。適用在自動編譯.NET應用的場合,如.NET項目的每日構(gòu)建(nightly build)。
五、圖表制作

        ZedGraph是C#編寫的.NET類庫,提供了用戶控件和web控件。它可以創(chuàng)建2D的線性圖、條形圖和餅圖。它功能完整且有詳細的功能自定義,不過 使用默認的選項就足夠好用了。一款類似 PieChart, StackBar, LineChart的C#開源圖表組件。
        NPlot是一款.NET下的開源圖表類庫.它值得稱道的地方是優(yōu)雅且靈活的API設(shè)計.NPlot包含了Windows Form控件, ASP.NET控件和一個創(chuàng)建Bitmap圖片的類。還有一個可用的GTK#控件。
        XSCharting是C#開發(fā)的圖表組件,提供了多種多樣的圖表選項。
        DaveChart是一個免費的DotNet類庫。
        NChart 提供了很多值得應用在商業(yè),教育等多個領(lǐng)域的2 D圖表。
六、聊天系統(tǒng)

        Dot Net Chat server是基于DotNet框架開發(fā)的聊天服務器和客戶端項目。
七、內(nèi)容管理系統(tǒng)(CMS)

        Ludico是C#編寫的居于ASP.NET 2.0的Portal/CMS系統(tǒng)。它的模塊化設(shè)計是你可以按照你希望的使用或開發(fā)網(wǎng)站功能。它里面有高級的用戶管理,一個所見即所的(WYSIWYG) 的編輯器等。
        mojoPortal是一款C#開發(fā)的面相對象網(wǎng)站框架,它可以運行于Windows的ASP.NET 和GNU/Linux 或Mac OS X的Mono的平臺上。
        Cuyahoga是C#開發(fā)的靈活的CMS / Portal 解決方案。它可以運行于Microsoft .NET 和Mono 平臺,支持SQL Server, PostgreSQL或MySQL作為底層數(shù)據(jù)庫。
        Umbraco是一款在.net平臺下C#開發(fā)的開源內(nèi)容管理系統(tǒng),該系統(tǒng)效率,靈活,用戶界面都不錯。
        Kodai CMS是.NET平臺下的一款功能齊全的內(nèi)容管理系統(tǒng)。
        Rainbow項目是一款使用Microsoft''s ASP.NET和C#技術(shù)開發(fā)的有豐富功能的開源內(nèi)容管理系統(tǒng)。
        NkCMS是使用ASP.net和Sql server 2000開發(fā)的內(nèi)容管理系統(tǒng)。
        Amplefile是一款內(nèi)容管理系統(tǒng),是.Net環(huán)境下的windows應用程序,使用了.Net remoting.
        Go.Kryo是一個用ASP.NET(C#).NET 實現(xiàn)的簡單的內(nèi)容管理系統(tǒng),后臺數(shù)據(jù)庫使用Microsoft SQL Server 。
        ndCMS是 ASP.net (C#)下的一個內(nèi)容管理系統(tǒng)。它提供了用戶管理,文件管理,一個WYSIWYG編輯器,模板管理,拼寫檢查和內(nèi)置的http壓縮。ndCMS的目標是提 供一個簡單而快速的方式部署.Net站點以節(jié)省你的時間和金錢。
八、代碼覆蓋 (Code Coverage)

        NCover是.NET框架下的C#版本代碼覆蓋分析工具。NCover可以對程序進行 line-by-line 的代碼覆蓋統(tǒng)計。
九、論壇系統(tǒng)

        YetAnotherForum可以作為ASP.NET開發(fā)的網(wǎng)站的論壇或是留言板。它使用MSSQL作為底層數(shù)據(jù)庫。
十、開發(fā)工具(IDE)


        SharpDevelop是一個DotNet平臺下的免費開發(fā)工具,支持C#和VB.NET。


        MonoDevelop是可以支持C#和其它符合.Net規(guī)范的開發(fā)語言的IDE。


        C# Studio是 C#/Mono/GTK# 開發(fā)者的一個簡單的IDE。


十一、安裝制作


        izfree是一套套免費的工具用于幫助創(chuàng)建使用Microsoft''''s Windows Installer 技術(shù)的安裝程序。使用izfree你可以為你的應用程序制作強勁的安裝程序。


        Windows Installer XML (WiX)可以重XML源文件創(chuàng)建Windows程序安裝包的工具集。它支持命令行方式,開發(fā)人員可以把結(jié)合它來創(chuàng)建MSI和MSM安裝包一個可以和商業(yè) 軟件安裝產(chǎn)品相比的開源打包工具。


十二、IoC容器


        Spring.net是從java的Spring Framework移植過來的。java的Spring包含了許多功能和特性,在當前的Spring.net都有提供。Spring.net最初發(fā)布的版 本包含了一個很有特色的IoC容器。


        Castle是一組應用開發(fā)的工具,內(nèi)含一個簡單的IoC容器。


        StructureMap是.NET環(huán)境下的一個輕量級依賴注入工具,StructureMap也是一個靈活的、可擴展的通用“插件”機制的.NE


十三、Bug追蹤


        BugNet是一款C#編寫的基于Web的開源Bug跟蹤系統(tǒng)。


        BTsys是一款輕量級的開源桌面Bug跟蹤系統(tǒng),是C#和ADO.NET實現(xiàn)。一個Bug記錄和跟蹤的解決方案,支持文件附件和注釋歷史。


        BugTracker.NET是使用ASP.NET 和 C#開發(fā)的基于web的開源Bug跟蹤系統(tǒng)。需要SQL Server 或 MSDE支持。它安裝簡單,容易使用,功能強大。


        BugBye是一款ASP.NET和C#開發(fā)的基于web的Bug跟蹤系統(tǒng)。


十四、日志工具


        log4net是一個可以幫助程序員把日志信息輸出到各種不同目標的.net類庫。它可以容易的加載到開發(fā)項目中,實現(xiàn)程序調(diào)試和運行的時候的日志信息輸 出,提供了比.net自己提供的debug類和trace類的功能更多。log4net是從java下有卓越表現(xiàn)的log4j移植過來的。它是 apache基金資助的項目的一部分。


        NLog是C#編寫的開源日志類庫,它的設(shè)計思想是使其簡單而靈活。NLog讓你處理診斷的日志消息,用相關(guān)信息擴充消息,依照你的選擇格式化日志消息和 把日志消息輸出到一個或多個目的地。


        LogThis是為.NET應用程序提供的一款C#開源日志框架,它可以嵌入到應用程序之中。


        AppLog是一個簡單的應用日志工具。它使用C#開發(fā),且使用ByteFX MySQL 數(shù)據(jù)訪問庫.。


        C#開發(fā)的可擴展日志工具,有高級消息隊列支持,可以異步使用。


        CSharp Logger是apache繼log4net項目后設(shè)計的又一個日志工具。它用來向Windows的事件日志寫入debug、info、warn和 error四個等級的信息。


十五、網(wǎng)絡客戶端


        .NET FTP Client是C#編寫的開源類庫。


        .NET Telnet是微軟.NET Framework下的C#開發(fā)的開源telnet類庫。它的靈感來至Java Telnet Application。


        metro這個項目是C#編寫的類庫,它提供了一套豐富的類使開發(fā)IP version 4, TCP, UDP and ICMP等工作更容易。它包含了有很有用的工具如包嗅探器,網(wǎng)絡分析工具例如路由跟蹤,ping等。


        LJ.NET是LiveJournal站點的客戶端。它為LJ在線日志服務提供了簡單而強大的用戶接口。


NET VNC Viewer 是一款完全用C#開發(fā)的開源VNC觀察器。它兼容Smartphones, Pocket PC和Windows的電腦(.NET CF or .NET Framework)。它比起其它觀察器的優(yōu)點是可以在Pocket PC上全屏顯示而且可以旋轉(zhuǎn)屏幕。


        GVDownloader允許你從google videos, metacafe, putfile, youtube, break.com 和更多的地方快速下載內(nèi)含的視頻和多媒體。它的包含一個強勁IE插件和位于你系統(tǒng)托盤的獨立程序。


        DotNetOpenMail能夠使你在微軟.net框架開發(fā)的asp.net, WinForm應用程序發(fā)送Email。它是C#編寫的開源組件,它不需要使用System.Web.Mail類庫就可以容易的創(chuàng)建帶附件HTML和 Plain-text的Email。程序員不需要知道很多相關(guān)的細節(jié)就可以使用不同的字符集或不同的MINE編碼來創(chuàng)建 multipart/alternative,multipart/related和multipart/mixed的MIME消息。


        DotMSN是一款獨立的開源類庫,它不需要和官方的MSN Messenger交互,因此不必安裝MSN Messenger就可以使用DotMSN和MSN Messenger服務通信.DotMSN是C#編寫的,所以.NET環(huán)境支持的語言都能夠使用.DotMSN類庫使用簡單而且實現(xiàn)方便。它靈活,堅固, 輕量級利于整合到任何應用系統(tǒng).使用DotMSN的應用系統(tǒng)能實現(xiàn)從創(chuàng)建消息機器人到自定義客戶端等各種不同的功能.如果你的應用程序需要和 Messenger服務通信,DotMSN是一個不錯的工具.


        SharpSSH使用C#實現(xiàn)了SSH2協(xié)議,它支持SSH, SCP 和 SFTP.


        OpenPOP.NET一組和POP Servers通信的.NET類庫。


        IceChat是為連接多樣的IRC Servers設(shè)計的Internet Relay Chat Client。


        lphant是為edonkey/emule開發(fā)的開源客戶端程序。


        .NET FTP Client C#開發(fā)的類庫。


        OpenSmtp.net 是 C# 開發(fā)的開源SMTP組件。它不依賴.NET Framework 的System.Web.Mail 包中的類。允許開發(fā)人員使用不同于MS SMTP的SMTP 服務器且提供了web service而可以通過HTTP發(fā)送email。


網(wǎng)絡服務器


ODC(#)H是一款C#編寫的開源hub software,它功能強大,消耗的資源少且支持插件功能。


Dawn of Light (DOL)是第一個開源的Dark Age of Camelot (DAOC)游戲服務器,你可以創(chuàng)建自己的服務器且自己設(shè)計游戲內(nèi)容。DOL使用.Net Framework框架的C#編寫,使用XML和MySQL存儲數(shù)據(jù),支持Windows和Mono平臺。


NeatUpload可以讓ASP.NET開發(fā)人員把磁盤上的文件通過流的方式上傳并且可以監(jiān)視上傳進度。它是開源的且在 Mono''s XSP/mod_mono和微軟的ASP.NET下運行得一樣好。包含2個自定義控件:*用戶可以通過INPUTFILE選擇一個要上傳的文件。


ProgressBar可以用進度條方式或彈出窗方式顯示上傳進度。當JavaScript可用時ProgressBar是用類似AJAX 的無刷新方式展現(xiàn),但也允許JavaScript不可用的用戶見到上傳進度。


NMail ,C#開發(fā)的開源程序,提供SMTP 客戶端和服務器, POP3 和 IMAP4 服務器。


ftp://ftp.net/是使用C#編寫的開源多線程FTP程序。


CSharp Email Server C# Email Server是 Java Email Server (JES) 的C#版本。


PDF類庫


PDFsharp是一款可以讓.NET框架支持的任何語言很容易的創(chuàng)建PDF文件的類庫。


ASP.NET FO PDF 是一款C#編寫類似于ASP.NET服務器控件的控件。它接受DataTable 和一些其它參數(shù)來創(chuàng)建XSL FO,并使用NFOP (Apache FOP Port in J#) PDF Formatter來繪制一個類似PDF Report 的DataGrid 。今后將會增加更多的標簽來可以生成XSL FO 。


Report.NET 開源類庫包含了生成精確PDF文檔的類。它是.NET平臺下的C#編寫的,可以幫助你創(chuàng)建簡單的靈活的PDF文件。你可以從任何ADO.NET的 DataSet取得數(shù)據(jù)來創(chuàng)建PDF文檔。ASP.NET可以用Report.NET來創(chuàng)建動態(tài)的PDF響應頁面。


SharpPDF是可以用來簡單的創(chuàng)建PDF文件的C#類庫。它創(chuàng)建的文件百分白兼容PDF格式。


iTextSharp是一款開源的PDF操作類庫,使用它可以快速的創(chuàng)建PDF文件。http://hardrock.cnblogs.com/ 是一個關(guān)于 iTextSharp的中文Blog。


持久層框架


NHibernate是一個面向.NET環(huán)境的針對關(guān)系型數(shù)據(jù)庫的對象持久化類庫。 NHibernate來源于非常優(yōu)秀的基于Java的Hibernate關(guān)系型持久化工具。 NHibernate從數(shù)據(jù)庫底層來持久化你的.Net對象到關(guān)系型數(shù)據(jù)庫。NHibernate為你處理這些,你不用自己寫SQL去數(shù)據(jù)庫存取對象。你 的代碼僅僅和對象關(guān)聯(lián),NHibernat自動產(chǎn)生SQL語句,并確保對象提交到正確的表和字段中去.大量減少開發(fā)時人工使用SQL和ADO.NET處理 數(shù)據(jù)的時間. NHibernate可以幫助你消除或者包裝那些針對特定數(shù)據(jù)庫的SQL代碼,并且?guī)湍惆呀Y(jié)果集從表格式的表示形式轉(zhuǎn)換到一系列的對象去。因此對于那些在 基于.NET的中間層的應用中,它們實現(xiàn)面向?qū)ο蟮臉I(yè)務模型和商業(yè)邏輯的應用,NHibernate是最有用的。


FileHelpers Library是一款C#編寫的開源 .NET 類庫。它使用簡單,很容易就可以從固定長度文件或界定記錄(CSV)讀/寫數(shù)據(jù)。它也支持從不同的數(shù)據(jù)存儲格式(Excel, Access, SqlServer)導入/導出數(shù)據(jù)。


Websharp是國人開源的一款開源持久層框架,它的目標是設(shè)計一個基于.Net的通用的應用軟件系統(tǒng)的框架,以簡化基于.Net平臺的 企業(yè)應用軟件的開發(fā)。目前,Websharp關(guān)注于企業(yè)應用軟件的以下幾個方面:1、數(shù)據(jù)庫訪問 2、 O/R 映射 3、 AOP 4、 分布式訪問


ObjectBroker是.NET平臺下的一款開源O/R映射框架。它支持對象緩存,1:1, 1:n 和 m:n的關(guān)聯(lián)映射等特性。


Gentle.NET是一款開源的與關(guān)系數(shù)據(jù)庫(RDBMS)無關(guān)的對象持久層框架,可以自動生成SQL和對象結(jié)構(gòu)。它擁有一個SQL工廠 用來創(chuàng)建自定義查詢、DataView構(gòu)建助手和卓越的性能和完善的文檔。


Ubik是C# 2.0下的ORM持久層框架,當前是WinForms應用程序開發(fā)提供的.它支持OPath的子集而可以進行面向?qū)ο蟛樵?且包含一個網(wǎng)絡事件系統(tǒng).


NDal是一個數(shù)據(jù)提取層(DAL)框架,它可以運行在.NET和Mono環(huán)境下。


Persist.NET是C#編寫的一款完整的持久層框架。


ObjectBroker是.NET平臺下的數(shù)據(jù)庫對象/關(guān)系映射(O/R Mapping)框架。


iBATIS.NET幫助你的應用系統(tǒng)創(chuàng)建更好的持久層框架。


Advanced Data Provider是為ADO.NET提供的動態(tài)數(shù)據(jù)提供者。可以讓應用程序透明的訪問不同的ADO.NET 數(shù)據(jù)提供者。


OJB.NET是一款.NET平臺下的對象/關(guān)系映射(O/R Mapping)工具。


門戶系統(tǒng)


OmniPortal基于一種web-portal-kernel(Web門戶核心)的思想而構(gòu)建的開源基礎(chǔ)框架,它解決了安全控制、主題 和本地化等。你可以基于 OmniPortal 來更容易的創(chuàng)建任意的Web應用系統(tǒng)(例如 ERP, CMS, CRM)。它支持Mono 和.Net 。對于Web開發(fā)人員來說,OmniPortal為他們提供了一款優(yōu)秀的二次開發(fā)基礎(chǔ)類庫。


SharpNuke.NET是一款C#開發(fā)的基于 ASP.NET 的開源 Portal/CMS。最初是從流行的VB.NET開發(fā)的web portal系統(tǒng)DotNetNuke移植過來的的。以后的版本將會兼容 Windows和 Linux Mono。


Personal .NET Portal是一個基于Web的個人門戶系統(tǒng)。它試圖提供一種簡單的方式建立個人網(wǎng)站,頁面使用標簽和模板創(chuàng)建。


My Community Portal提供了一個統(tǒng)一的Internet門戶,作為論壇,群組,聊天,你自己的Email,搜索引擎,網(wǎng)絡目錄,個人主頁,投票還有更多的功能入 口。


剖析工具(Profilers)


Prof-It是一款獨特易用的C#程序剖析工具。當保持對一個最小量的源代碼的探測時,它為每一條語句測量執(zhí)行頻率。


NProf不僅僅是成熟的剖析程序,也是一套可以用來創(chuàng)建其它功能齊全的剖析程序的完整API,以及用可視化的工具擴展的默認GUI。


NProfiler,.NET平臺下的一個應用程序剖析工具。


項目管理


SharpForge支持協(xié)作多個軟件項目的開發(fā)和管理,它為你的團隊提供類似 SourceForge 和 CodePlex的功能。SharpForge是C#開發(fā)的.NET 2.0開源項目。


User Story.NET是一個Extreme Programming 項目。


RSS和RDF工具


Rss Bandit是C#開發(fā)的開源RSS閱讀器,它內(nèi)建多國語系,支持Atom 1.0以及其他各種的RSS feed格式。它畫面漂亮,擁有分頁瀏覽功能,軟件細部設(shè)置彈性度高。它的操作畫面直觀簡單易懂,有一個很好的Command模式和ListViewEx 來使用,可讓使用者很快的上手。


iPodder.NET是一款C#編寫的開源媒體收集器,它能自動幫你從互聯(lián)網(wǎng)上下載音樂,能幫你輕松地從成千上萬的音樂中選擇你喜歡的。 用它設(shè)置好訂閱RSS feeds后,只要節(jié)目一有更新,它就自動下載了,你不必大量的浪費時間自己手工下載。它還整合了iTunes,創(chuàng)建播放列表和iPod同步功能,你可以 用Apple iTunes或Media Player播放,也可以把音樂導入到你的iPod或其他MP3播放器中。


FeedExpress主要是讓你訂閱一些RSS/RDF資源,知名的如FeedExpress里的Subscriptions。它和 Outlook Express讓你訂閱一些新聞組是一樣的。


RSS.NET是一款操作RSS feeds的開源.NET類庫。它為解析和編寫RSS feeds提供了一個可重用的對象模型。它完全兼容RSS 0.90, 0.91, 0.92, 和 2.0.1等版本。


GtkSharpRSS是C#開發(fā)的開源RSS和RDF客戶端,它用于 Mono, Gtk#, 和 RSS.NET。它也可以通過內(nèi)嵌于Mozilla的窗口來顯示內(nèi)容。


Atom.NET是一款完全使用C#開發(fā)的開源類庫,它的目標是提供便捷的方法來操作Arom Feeds。它提供一個對象模型來寫入和解析Atom Feeds。它只兼容0.3Atom規(guī)范,可以運行于微軟.NET 1.x,Mono 0.29 或更高版本。


NRss是為微軟.NET框架和Mono下提供的開源類庫,它讀取RSS Feeds元素然后以樹型結(jié)構(gòu)來展現(xiàn)對象關(guān)系。


Aggie是一個新聞收集器,它是桌面應用程序,可以下載最新的新聞并通過web頁面的形式呈現(xiàn)。


mail2rss是.NET下的 web service,它在你請求時檢查你的電子信箱并返回包含電子信箱里的消息的 RSS feed。它是完全用C#開發(fā)的開源項目,沒用使用任何第三方控件。


規(guī)則引擎


NxBRE是.NET平臺下的一款開源輕量級的業(yè)務規(guī)則引擎(aka Rule Based Engine),它由正向串行的推理引擎(forward-chaining inference engine)和XML驅(qū)動流控制引擎(XML-driven flow control engine)組成.它支持 RuleML 0.9 Naf Datalog 和 Visio 2003 建模。


SRE (Simple Rule Engine)是.NET下的一款輕量級的開源正向串行的推理規(guī)則引擎(forward chaining inference rule engine)。它容易理解,可以解決復雜的問題。


搜索引擎


NLucene是Lucene的.NET版本。


DotLucene,Lucene.Net開源項目轉(zhuǎn)向商業(yè)化后,DotLucene以Lucene.Net作為基礎(chǔ)繼續(xù)進行開發(fā)。


版本控制(CVS)


Porc是為CVS和項目管理工具提供了完整的圖形化界面,它在CVS的基礎(chǔ)上增加了一些有趣的功能。它是.NET平臺下用C#編寫的。


Sharpcvslib是C#語言編寫的CVS客戶端API。當前它為公共CVS命令提供了核心函數(shù)。


NetCvsLib是為.NET平臺下C#開發(fā)的一個CVS客戶端。它作為一個單獨的程序集而實現(xiàn),因而可以很容易的集成到其它項目中去。


SQL客戶端


SqlBuddy是C#編寫的一款用于Microsoft SQL Server和MSDE的開源工具,使用它可以很容易的編寫SQL腳本。SqlBuddy提供的功能和查詢分析器的目的有些微不同,它傾向于幫助使用者編 寫SQL。


QueryCommander是一款開源的Sql editor,模擬微軟的查詢分析器,Visual Studio的環(huán)境類型。QueryCommander的特點包括類似IntelliSense功能,自動注釋,xml文檔模型,xml2data等。


SQL Buddy是一款有特色的免費MSDE / Sql Server IDE,它是用.NET框架的C#編寫。


Database Commander是Windows操作系統(tǒng)下的一款用戶界面友好的數(shù)據(jù)庫管理工具。


模板引擎


NVelocity 是一個以 .NET 為基礎(chǔ)的模板引擎。它允許任何人通過簡單而強大的模板語言來定義對象。


測試工具


NUnit一款單元測試框架,它可以應用于遵循.NET框架標準的所有語言下。NUnit最初是從JUnit移植過來的。NUnit完全使 用C#編寫且設(shè)計時考慮了多數(shù).NET語言的特性,例如自定義屬性和其它反射特性。


NMock是一款.NET平臺下的基于動態(tài)代理的Mock模擬對象類庫,用于C#開發(fā)。Mock對象使測試更簡單,它測試單個組件或單個類 時不需要其它所有組件真正實現(xiàn)。也就是說我們可以僅僅只是測試一個類,比起測試一個完整的對象關(guān)系樹更容易查清楚Bug。Mock對象一般用于以測試為驅(qū) 動的開發(fā)當中。


TestDriven.NET是一款和Visual Studio .NET無縫結(jié)合的測試插件。它可以和NUnit, MbUnit 和 Team System緊密結(jié)合。


Rhino.Mocks源于EasyMock.Net,它試圖提供一種更簡單的方法去創(chuàng)建和使用mock objects且使你得到更好的重構(gòu)支持。它結(jié)合了EasyMock.Net和NMock的方式。


Dot NetUnit實現(xiàn)了XUnit 測試框架,是.NET平臺下的單元測試組件。


EasyMock.NET是由Java實現(xiàn)的EasyMock到.net平臺的一個移植版本的一組類庫。它提供了一個簡單的方法用來模擬接 口和遠程對象。


dotunit是JUnit移植到微軟.net平臺的測試框架。它可以實現(xiàn)自動化測試。


NUnitForms是NUnit的擴展。它為Windows Forms應用程序提供單元測試和壓力測試,可以容易的用它為你的Windows Forms類進行自動化測試。


Web框架


NStruts 是java下大名鼎鼎的struts開源MVC框架的ASP.NET版本,是jakarta struts框架的一部分。


Maverick.NET是從Maverick移植來的.NET版本,是一款開源的 Web MVC框架.它專注于MVC邏輯,它支持豐富的模板和轉(zhuǎn)換技術(shù)。


MaverickLite是ASP.Net下的一款簡單的開源表現(xiàn)層框架。它在建立在Maverick.Net framework基礎(chǔ)上。它使用front controller的方式來處理請求。


Ingenious MVC ,基于.NET 2.0的構(gòu)MVC結(jié)構(gòu)的應用程序,它包含即開即用(out-of-the-box)的特性支持ASP.NET和Windows Forms應用程序.它也可以在大多數(shù)方法中擴展和定制.


Websharp是.NET平臺下的一款輕量級應用框架。


Email客戶端


GmailerXP是為Google的Gmail服務提供了全套的工具開源程序。在線所能做的GmailerXP都允許用戶做,它也整合了 你任何時候在Gmail需要的其它一些程序的特點(GML, Gmailto,等)。


RemoteCalendars是C#開發(fā)的為Outlook 2003/2007提供的一款開源 COM-.NET 插件。安裝完這款插件后,Outlook的用都可以用Outlook 2003/2007訂閱、重新讀取和刪除遠程iCalendar(RFC 2445)。


SharpWebMail是一款C#編寫的ASP.NET下的EMail客戶端。它通過POP3服務器接收郵件,通過SMTP服務器發(fā)送郵 件。它的配置很簡單(只需要在web.config 里面做幾個設(shè)置)。


Web測試


NUnitAsp是一款自動測試 ASP.NET頁面的開源工具. 它是從NUnit擴展來的。


Wiki引擎


Perspective是一款C#開源Wiki引擎,它使用戶可以很容易的合作進行編輯,鏈接和共享Web頁面,它里面有安全和分級的管理 環(huán)境。Perspective居于奇妙的Wiki思想,包含了其它一些有前途且效果好的特性。


DevHawk Wiki是一款.NET平臺下由C#實現(xiàn)的開源Wiki引擎。


ProntoWiki是使用VWD (Visual Web Developer)編寫的C#開源wiki引擎,ASP.NET 2.0 和 SQLExpress 2005作為后臺。Wiki引擎速度快且容易使用,提供了和 rich text editor 一樣的文本標記( text markup )功能。它可以自動通過web接口接收圖片和文件作為附件。另外,ProntoWiki的特點還有頁面可以在貼出或更新之前預覽,基于角色的用戶認證,使 用 web parts 自定義外觀和布局,歷史跟蹤,和功能查詢。


FlexWiki是一款使用.NET技術(shù)(C#和ASP.NET)編寫實現(xiàn)的開源多人協(xié)作的寫作工具。


Thufir提供了字處理和文檔鏈接功能。它類似Wiki-Wiki ,且它具有“所見即所得”的界面。它還可以通過和Word交互來利用Word的拼寫檢查功能。


XML解析


ODF Add-in for Microsoft Word是一款開源的XML轉(zhuǎn)換器,它提供的工具為在 Open XML Formats 和 Open Document Format(ODF)之間轉(zhuǎn)換提供了橋梁。作為第一款這類組件,ODF Add-in for Microsoft Word 2007使你可以在Word里打開和保存ODF文檔。


NDigester是Jakarta Commons-Digester 工具的.NET實現(xiàn)版本。提供了完整的對XML文檔的處理控制。


SAX.NET是用來操作XML的簡單的API。它是從最初在java上被廣泛使用的API移植來的。


多媒體工具


FreeImage是為開發(fā)人員提供的開源類庫項目,它支持多種流行的圖片格式(PNG, JPEG, TIFF, BMP等).FreeImage簡單,易用,快速,多線程安全,兼容所以32位的windows并且是跨平臺的(Linux和Mac OS X).


TVGuide是一款顯示通過簡單而清晰的接口下載的TV列表的Windows程序。


DirectShow.NET Library 這個類庫的目的是使你可以從.NET應用程序內(nèi)部調(diào)用Microsoft''''s DirectShow的功能。它支持Visual Basic .NET 和 C#,理論上應該是可以支持任何.NET語言。


iTunes Agent是和iTunes一起使用的C#開源MP3播放器。它可以使得在播放MP3時,播放列表與MP3自動播放器同步。


MeGUI是一款基于ISO MPEG-4的全面的GUI解決方案。它可以支持使用MPEG-4 ASP (XviD & libavcodec MPEG-4)標準的mencoder,使用MPEG-4 AVC (x264) 標準的x264.exe 或 mencoder,使用(HE)AAC audio標準的BeSweet、Nero AAC encoder和使用MP4 muxing標準的mp4box。


OpenImageManager是一款C#開發(fā)的新的開源圖片管理器。它基于非常流行的圖片查看器ACDSee(TM)的思想設(shè)計,它的 功能有縮略圖生成,HTML相冊生成器,支持10種語言等等。


abrViewer.NET是C#編寫的可以批量瀏覽和輸出Adobe Photoshop的筆刷(.abr files)的開源工具。


MeWiG是使用.NET框架開發(fā)的Windows下的開源MEncoder(MPlayer的一個組成部分)。你能夠轉(zhuǎn)換成幾乎任何視頻 資源,無需要命令行操作。


VTK.NET是.NET包裝的Visualization Toolkit。你可以使用它來編寫C#、C++、Visual Basic 或 J#的Windows Forms應用程序。它包含在設(shè)計時可拖拽的Windows Forms控件。


SubtitleCreator使你可以為你的DVD創(chuàng)建對白字幕。它擁有先進的同步特性,DVD預覽,和一個簡單的所見即所得 (WYSIWYG)的編輯器。當然你也能夠修改現(xiàn)有DVD的對白字幕的定位和顏色。


Paint.NET是在Windows下使用C#編寫的一款出色的開源圖像編輯器。


MediaPortal試圖幫你把電腦變成一個高級的Multi-Media Center / HTPC。它允許你聽你喜歡的音樂&收音機,看你的video和DVD,觀看,確定和記錄實況電視等其它功能。MediaPortal是開源的系 統(tǒng),你可以完全免費的獲得它。任何人都可以幫組開發(fā)MediaPortal 或者根據(jù)自己的需要把Media Portal 進行調(diào)整。


C#游戲


Exult是可以在現(xiàn)在的操作系統(tǒng)上面運行Ultima7的游戲引擎,它提供了一個地圖編輯器和其它的一些工具讓你制作屬于你自己的模型和 游戲.


Ch2r是第一款為光暈2(Halo 2)提供的開源模型編輯器。


這是一款從在Palm平臺上流行的Space Trader游戲移植的Windows版本。


EMU7800是C#編寫的一款Atari 2600/7800模擬器。


BooGame是面相對象的 CLS-compliant,開源2D游戲引擎框架。它提供了高級的硬件加速video,audio,keyboard,mouse,內(nèi)嵌腳本和許多圖片 格式。它使用C#開發(fā)的,目標是支持.NET 1.1, 2.0 和 Mono 平臺。


RealmForge這款開源的.NET 3D游戲引擎前身是Visual3D.NET,它是一套使用C#、 .NET 2.0和XNA進行可視化設(shè)計和開發(fā)3D游戲、模擬軟件和交互式環(huán)境的框架和工具集。


Pocket Sudoku是 Pocket PC (Windows Mobile)上的數(shù)獨(Sudoku)游戲。它可以有五種不同等級的難度來創(chuàng)建數(shù)獨(Sudoku)迷題,解答正確任何迷題,都會用鉛筆標記。


CsGL在.Net框架下為OpenGL 1.1 - 1.4和許多擴展的支持提供支持.


文檔工具


NDoc 可以將 C#.NET 編譯生成的程序集和對應的 /doc XML 文檔,自動轉(zhuǎn)換成如 .NET Framework SDK 類庫文檔或者 MSDN Library 在線 .NET 類庫文檔形式的代碼文檔,讓您快速擁有專業(yè)級的類庫API 文檔。


腳本語言


Sharp Vector Graphics (SVG#)是.Net框架下C#開發(fā)的文檔對象模型。它幫助你在.Net平臺上進行SVG開發(fā)。


IronPython是.NET平臺上的Python的CodeName。它擁有一個完全動態(tài)的交互式解釋器,可以支持所有的.NET類型 庫,并且集成了.NET Framework的諸多優(yōu)點,甚至可以用Python的類來擴展.NET類。IronPython遵從ECMA的CLI標準(ECMA-335),可以 運行在Microsoft .NET Framework和MONO上。


地理信息系統(tǒng)(GIS)


SharpMap是一款易于使用的地圖渲染器,它可以為Web和Windows應用程序渲染GIS數(shù)據(jù)。SharpMap是使用C#編寫, 基于.NET 2.0框架上開發(fā)的開源項目。


monoGIS將成為Mono平臺下的開源完整GIS。已經(jīng)發(fā)布了internet mapserver,OGC WMS實現(xiàn)和一些工具像空間格式轉(zhuǎn)換。


NASA World Wind 是C#開發(fā)的個人電腦上的開源的3D圖形虛擬地球系統(tǒng)。它結(jié)合了美國國家航空航天局(NASA)從衛(wèi)星拍攝的圖像,這些圖像應用于Blue Marble, Landsat 7, SRTM, MODIS 以及其它更多的地方。


其它C#開源項目


DockPanel Suite是一款開源的.Net Windows Forms開發(fā)環(huán)境下的停靠控件(docking)類庫。它模仿Visual Studio .Net的效果開發(fā)的。


wx.NET是基于.NET通用語言基礎(chǔ)結(jié)構(gòu) (CLI)的開源項目。它致力于開發(fā)一個基于.NET的GUI庫,它按照wxWidgets的類層次用C#編寫,可以在多種CLI下執(zhí)行,包 括.NET,Mono,和DotGNU Portable.NET。


MMC .NET類庫是為Windows的MMC+Snapin開發(fā)提供支持而包裝的一套開源類庫。


DPAToolkit(Design Pattern Automation Toolkit)是應用設(shè)計模式設(shè)計應用程序的開源工具包,它有便捷的代碼生成,反向工程功能。拖拽(Drag and Drop)方式便捷的創(chuàng)建UML類圖。支持為代碼生成,反向工程編寫自定義插件。


mjbWorld 是一款開源的3D編輯器,它允許用戶通過圖形界面的選擇和拖拽方式來編輯圖形。它基于和應用X3D與VRML標準。該軟件目的用于利用建立開放免費程序建 立3D世界。同時它也可以用于其他免費開放軟件程序之間進行數(shù)據(jù)交換。mjbWorld有Java, C# 和C++ /Qt等版本。


MonoCalendar是.NET平臺下的開源日歷程序,它的目的是為Mac平臺之外的其它平臺提供一款類似iCal的日歷程序。


Data Tier Generator是一款微軟 .NET平臺下的開源項目,它為訪問SQL Server 2000而生成存儲過程的SQL Server 2000腳本和C#類。這些存儲過程包含了Insert, Update, Delete, Select, 根據(jù)PK的Select, 根據(jù)FK的Select的SQL腳本。


Finisar.SQLite是.NET框架下的一款為存取SQLite-Databases提供的ADO.NET Data Provider。


Math.NET的目標是為提供一款自身包含清晰框架的符號運算和數(shù)學運算/科學運算,它是C#開發(fā)的開源類庫。Math.NET含了一個 支持線性代數(shù)的解析器,分析復雜微分,解方程等等功能。


Ascii Generator dotNET (ascgen2)是一款把圖片轉(zhuǎn)換成高質(zhì)量的ASCII字符組合(ASCII art - text)。第一個版本支持變形和粗體字體,和實時調(diào)節(jié)輸出。


GPSProxy是.NET Compact Framework下的開源程序。它通過COM口在Pocket PC之間拷貝GPS數(shù)據(jù),可以把GPS數(shù)據(jù)格式從NMEA 0183轉(zhuǎn)換成Garmin GPS。它是基于.NET Fra的Windows版本。


FOP C# Port這是Apache居于java的 XSL-FO 格式轉(zhuǎn)換器的C#版本。它采用并擴展了XSL-FO標準使FOPs在可以嵌入.NET CLR管理代碼應用。

了解更多

IT工程師的必備網(wǎng)站,初學者也值得一看

一、IT工具類網(wǎng)站

1、http://tool.lu/

在線工具是一個IT在線工具網(wǎng)站,IT能用的在線工具基本都在這里了

IT工程師的必備網(wǎng)站,初學者也值得一看

2、http://www.css88.com/

WEB前端開發(fā)包含各種前端類工具和技術(shù)類的文章

IT工程師的必備網(wǎng)站,初學者也值得一看

二、IT插件類網(wǎng)站

1、http://www.jq22.com/

jQuery插件庫這個網(wǎng)站提供各種jQuery特效的詳細使用方法,在線預覽,jQuery插件下載及教程

IT工程師的必備網(wǎng)站,初學者也值得一看

2、http://www.layui.com/

這是一個經(jīng)典模塊化的前端框架網(wǎng)站

IT工程師的必備網(wǎng)站,初學者也值得一看

IT工程師的必備網(wǎng)站,初學者也值得一看

三、IT配色類網(wǎng)站

1、http://www.mb5u.com/tool/peise/

站長工具這個網(wǎng)站給我們提供了很多的配色方案,我們可以根據(jù)自己的需求選擇使用。我們可以輸入RGB獲取我們想要的配色。

IT工程師的必備網(wǎng)站,初學者也值得一看

2、https://color.adobe.com/zh/create/color-wheel

這個網(wǎng)站是Adobe公司寫的,提供了多重配色方案,我們可以點擊中間的顏色方案來搭配我們所需要的顏色。

IT工程師的必備網(wǎng)站,初學者也值得一看

四、IT圖標類網(wǎng)站

1、http://www.iconfont.cn/plus

Iconfont-國內(nèi)功能很強大且圖標內(nèi)容很豐富的矢量圖標庫,提供矢量圖標下載、在線存儲、格式轉(zhuǎn)換等功能。

IT工程師的必備網(wǎng)站,初學者也值得一看

2、http://www.easyicon.net/iconsearch/ios/

這個網(wǎng)站提供的圖標不是單一顏色的,而是設(shè)計好的顏色。而且所有的圖標都是免費使用的,點擊就可以下載。

IT工程師的必備網(wǎng)站,初學者也值得一看

五、IT素材類網(wǎng)站

1、https://unsplash.com/

素材網(wǎng)站我只給大家分享Unsplash這個網(wǎng)站,其他的我相信大家都知道,我就不多做分享了。這個網(wǎng)站是一個分享免費高質(zhì)量照片的網(wǎng)站。

IT工程師的必備網(wǎng)站,初學者也值得一看

六、IT字體類網(wǎng)站

1、http://www.qiuziti.com/

這個網(wǎng)站是一個上圖片找字體的網(wǎng)站,只要你在圖片看的好看的字體,通過上傳圖片你就可以找到自己想要的字體。

IT工程師的必備網(wǎng)站,初學者也值得一看


2、http://font.chinaz.com/

站長素材也是一個不錯的字體查找網(wǎng)站,在這里也可以找到我們想要的字體

IT工程師的必備網(wǎng)站,初學者也值得一看

了解更多

linq to sql (Group By/Having/Count/Sum/Min/Max/Avg操作符)

Group By/Having操作符

適用場景:分組數(shù)據(jù),為我們查找數(shù)據(jù)縮小范圍。

說明:分配并返回對傳入?yún)?shù)進行分組操作后的可枚舉對象。分組;延遲

1.簡單形式:

var q = from p in db.Products group p by p.CategoryID into g select g;

語句描述:使用Group By按CategoryID劃分產(chǎn)品。

說明:from p in db.Products 表示從表中將產(chǎn)品對象取出來。group p by p.CategoryID into g表示對p按CategoryID字段歸類。其結(jié)果命名為g,一旦重新命名,p的作用域就結(jié)束了,所以,最后select時,只能select g。當然,也不必重新命名可以這樣寫:

var q = from p in db.Products group p by p.CategoryID;

我們用示意圖表示:

GroupBy分組統(tǒng)計示意圖

如果想遍歷某類別中所有記錄,這樣:

foreach (var gp in q) { if (gp.Key == 2) { foreach (var item in gp) { //do something } } }

2.Select匿名類:

var q = from p in db.Products group p by p.CategoryID into g select new { CategoryID = g.Key, g };

說明:在這句LINQ語句中,有2個property:CategoryID和g。這個匿名類,其實質(zhì)是對返回結(jié)果集重新進行了包裝。把g的property封裝成一個完整的分組。如下圖所示:

GroupBy分組匿名類示意圖

如果想遍歷某匿名類中所有記錄,要這么做:

foreach (var gp in q) { if (gp.CategoryID == 2) { foreach (var item in gp.g) { //do something } } }

3.最大值

var q = from p in db.Products group p by p.CategoryID into g select new { g.Key, MaxPrice = g.Max(p => p.UnitPrice) };

語句描述:使用Group By和Max查找每個CategoryID的最高單價。

說明:先按CategoryID歸類,判斷各個分類產(chǎn)品中單價最大的Products。取出CategoryID值,并把UnitPrice值賦給MaxPrice。

4.最小值

var q = from p in db.Products group p by p.CategoryID into g select new { g.Key, MinPrice = g.Min(p => p.UnitPrice) };

語句描述:使用Group By和Min查找每個CategoryID的最低單價。

說明:先按CategoryID歸類,判斷各個分類產(chǎn)品中單價最小的Products。取出CategoryID值,并把UnitPrice值賦給MinPrice。

5.平均值

var q = from p in db.Products group p by p.CategoryID into g select new { g.Key, AveragePrice = g.Average(p => p.UnitPrice) };

語句描述:使用Group By和Average得到每個CategoryID的平均單價。

說明:先按CategoryID歸類,取出CategoryID值和各個分類產(chǎn)品中單價的平均值。

6.求和

var q = from p in db.Products group p by p.CategoryID into g select new { g.Key, TotalPrice = g.Sum(p => p.UnitPrice) };

語句描述:使用Group By和Sum得到每個CategoryID 的單價總計。

說明:先按CategoryID歸類,取出CategoryID值和各個分類產(chǎn)品中單價的總和。

7.計數(shù)

var q = from p in db.Products group p by p.CategoryID into g select new { g.Key, NumProducts = g.Count() };

語句描述:使用Group By和Count得到每個CategoryID中產(chǎn)品的數(shù)量。

說明:先按CategoryID歸類,取出CategoryID值和各個分類產(chǎn)品的數(shù)量。

8.帶條件計數(shù)

var q = from p in db.Products group p by p.CategoryID into g select new { g.Key, NumProducts = g.Count(p => p.Discontinued) };

語句描述:使用Group By和Count得到每個CategoryID中斷貨產(chǎn)品的數(shù)量。

說明:先按CategoryID歸類,取出CategoryID值和各個分類產(chǎn)品的斷貨數(shù)量。 Count函數(shù)里,使用了Lambda表達式,Lambda表達式中的p,代表這個組里的一個元素或?qū)ο?,即某一個產(chǎn)品。

9.Where限制

var q = from p in db.Products group p by p.CategoryID into g where g.Count() >= 10 select new { g.Key, ProductCount = g.Count() };

語句描述:根據(jù)產(chǎn)品的―ID分組,查詢產(chǎn)品數(shù)量大于10的ID和產(chǎn)品數(shù)量。這個示例在Group By子句后使用Where子句查找所有至少有10種產(chǎn)品的類別。

說明:在翻譯成SQL語句時,在最外層嵌套了Where條件。

10.多列(Multiple Columns)

var categories = from p in db.Products group p by new { p.CategoryID, p.SupplierID } into g select new { g.Key, g };

語句描述:使用Group By按CategoryID和SupplierID將產(chǎn)品分組。

說明:既按產(chǎn)品的分類,又按供應商分類。在by后面,new出來一個匿名類。這里,Key其實質(zhì)是一個類的對象,Key包含兩個Property:CategoryID、SupplierID。用g.Key.CategoryID可以遍歷CategoryID的值。

11.表達式(Expression)

var categories = from p in db.Products group p by new { Criterion = p.UnitPrice > 10 } into g select g;

語句描述:使用Group By返回兩個產(chǎn)品序列。第一個序列包含單價大于10的產(chǎn)品。第二個序列包含單價小于或等于10的產(chǎn)品。

說明:按產(chǎn)品單價是否大于10分類。其結(jié)果分為兩類,大于的是一類,小于及等于為另一類。

Exists/In/Any/All/Contains操作符

適用場景:用于判斷集合中元素,進一步縮小范圍。

Any

說明:用于判斷集合中是否有元素滿足某一條件;不延遲。(若條件為空,則集合只要不為空就返回True,否則為False)。有2種形式,分別為簡單形式和帶條件形式。

1.簡單形式:

僅返回沒有訂單的客戶:

var q = from c in db.Customers where !c.Orders.Any() select c;

生成SQL語句為:

SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax] FROM [dbo].[Customers] AS [t0] WHERE NOT (EXISTS( SELECT NULL AS [EMPTY] FROM [dbo].[Orders] AS [t1] WHERE [t1].[CustomerID] = [t0].[CustomerID] ))

2.帶條件形式:

僅返回至少有一種產(chǎn)品斷貨的類別:

var q = from c in db.Categories where c.Products.Any(p => p.Discontinued) select c;

生成SQL語句為:

SELECT [t0].[CategoryID], [t0].[CategoryName], [t0].[Description], [t0].[Picture] FROM [dbo].[Categories] AS [t0] WHERE EXISTS( SELECT NULL AS [EMPTY] FROM [dbo].[Products] AS [t1] WHERE ([t1].[Discontinued] = 1) AND ([t1].[CategoryID] = [t0].[CategoryID]) )

All

說明:用于判斷集合中所有元素是否都滿足某一條件;不延遲

1.帶條件形式

var q = from c in db.Customers where c.Orders.All(o => o.ShipCity == c.City) select c;

語句描述:這個例子返回所有訂單都運往其所在城市的客戶或未下訂單的客戶。

Contains

說明:用于判斷集合中是否包含有某一元素;不延遲。它是對兩個序列進行連接操作的。

string[] customerID_Set = new string[] { "AROUT", "BOLID", "FISSA" }; var q = ( from o in db.Orders where customerID_Set.Contains(o.CustomerID) select o).ToList();

語句描述:查找"AROUT", "BOLID" 和 "FISSA" 這三個客戶的訂單。先定義了一個數(shù)組,在LINQ to SQL中使用Contains,數(shù)組中包含了所有的CustomerID,即返回結(jié)果中,所有的CustomerID都在這個集合內(nèi)。也就是in。 你也可以把數(shù)組的定義放在LINQ to SQL語句里。比如:

var q = ( from o in db.Orders where ( new string[] { "AROUT", "BOLID", "FISSA" }) .Contains(o.CustomerID) select o).ToList();

Not Contains則取反:

var q = ( from o in db.Orders where !( new string[] { "AROUT", "BOLID", "FISSA" }) .Contains(o.CustomerID) select o).ToList();

1.包含一個對象:

var order = (from o in db.Orders where o.OrderID == 10248 select o).First(); var q = db.Customers.Where(p => p.Orders.Contains(order)).ToList(); foreach (var cust in q) { foreach (var ord in cust.Orders) { //do something } }

語句描述:這個例子使用Contain查找哪個客戶包含OrderID為10248的訂單。

2.包含多個值:

string[] cities = new string[] { "Seattle", "London", "Vancouver", "Paris" }; var q = db.Customers.Where(p=>cities.Contains(p.City)).ToList();

語句描述:這個例子使用Contains查找其所在城市為西雅圖、倫敦、巴黎或溫哥華的客戶。

總結(jié)一下這篇我們說明了以下語句:

Group By/Having 分組數(shù)據(jù);延遲
Any 用于判斷集合中是否有元素滿足某一條件;不延遲
All 用于判斷集合中所有元素是否都滿足某一條件;不延遲
Contains 用于判斷集合中是否包含有某一元素;不延遲

 

 

 

適用場景:統(tǒng)計數(shù)據(jù)吧,比如統(tǒng)計一些數(shù)據(jù)的個數(shù),求和,最小值,最大值,平均數(shù)。

Count

說明:返回集合中的元素個數(shù),返回INT類型;不延遲。生成SQL語句為:SELECT COUNT(*) FROM

1.簡單形式:

得到數(shù)據(jù)庫中客戶的數(shù)量:

var q = db.Customers.Count();

2.帶條件形式:

得到數(shù)據(jù)庫中未斷貨產(chǎn)品的數(shù)量:

var q = db.Products.Count(p => !p.Discontinued);

LongCount

說明:返回集合中的元素個數(shù),返回LONG類型;不延遲。對于元素個數(shù)較多的集合可視情況可以選用LongCount來統(tǒng)計元素個數(shù),它返回long類型,比較精確。生成SQL語句為:SELECT COUNT_BIG(*) FROM

var q = db.Customers.LongCount();

Sum

說明:返回集合中數(shù)值類型元素之和,集合應為INT類型集合;不延遲。生成SQL語句為:SELECT SUM(…) FROM

1.簡單形式:

得到所有訂單的總運費:

var q = db.Orders.Select(o => o.Freight).Sum();

2.映射形式:

得到所有產(chǎn)品的訂貨總數(shù):

var q = db.Products.Sum(p => p.UnitsOnOrder);

Min

說明:返回集合中元素的最小值;不延遲。生成SQL語句為:SELECT MIN(…) FROM

1.簡單形式:

查找任意產(chǎn)品的最低單價:

var q = db.Products.Select(p => p.UnitPrice).Min();

2.映射形式:

查找任意訂單的最低運費:

var q = db.Orders.Min(o => o.Freight);

3.元素:

查找每個類別中單價最低的產(chǎn)品:

var categories = from p in db.Products group p by p.CategoryID into g select new { CategoryID = g.Key, CheapestProducts = from p2 in g where p2.UnitPrice == g.Min(p3 => p3.UnitPrice) select p2 };

Max

說明:返回集合中元素的最大值;不延遲。生成SQL語句為:SELECT MAX(…) FROM

1.簡單形式:

查找任意雇員的最近雇用日期:

var q = db.Employees.Select(e => e.HireDate).Max();

2.映射形式:

查找任意產(chǎn)品的最大庫存量:

var q = db.Products.Max(p => p.UnitsInStock);

3.元素:

查找每個類別中單價最高的產(chǎn)品:

var categories = from p in db.Products group p by p.CategoryID into g select new { g.Key, MostExpensiveProducts = from p2 in g where p2.UnitPrice == g.Max(p3 => p3.UnitPrice) select p2 };

Average

說明:返回集合中的數(shù)值類型元素的平均值。集合應為數(shù)字類型集合,其返回值類型為double;不延遲。生成SQL語句為:SELECT AVG(…) FROM

1.簡單形式:

得到所有訂單的平均運費:

var q = db.Orders.Select(o => o.Freight).Average();

2.映射形式:

得到所有產(chǎn)品的平均單價:

var q = db.Products.Average(p => p.UnitPrice);

3.元素:

查找每個類別中單價高于該類別平均單價的產(chǎn)品:

var categories = from p in db.Products group p by p.CategoryID into g select new { g.Key, ExpensiveProducts = from p2 in g where p2.UnitPrice > g.Average(p3 => p3.UnitPrice) select p2 };

了解更多