自己上去来,我晕了,都是程序。
一、AOP框架
Encase 是C#编写开发的为.NET平台提供的AOP框架。Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式。这种部署方面(aspects)的方法帮助缺少经验的开发人员提高开发效率,NKalore是一款编程语言,它扩展了C#允许在.net平台使用AOP。NKalore的语法简单、直观,它的编译器是基于Mono C#编译器(MCS)。NKalore目前只能在命令行或#Develop内部使用。NKalore兼容公共语言规范CLS(Common Language Specification),它可以在任何.NET开发环境中使用,包括微软的Visual Studio .NET。PostSharp读取.NET字节模块,转换成对象模型。让插件分析和转换这个模型并写回到MSIL。PostSharp使开发程序分析应用程序容易得像分析代码规则和设计模式,它使程序开发的思想变革为面向方面软件开发(AOSD/AOD)思想。AspectDNG的目标是为.NET开发人员提供简单而功能强大的AOP-GAOP实现。它效仿java下的开源工具AspectJ 和 Spoon,成熟程度也很接近它们。
RAIL(Runtime Assembly Instrumentation Library) 开源项目可以在C#程序集加载和运行前进行处理控制调整和重新构建。C#在CLR中,我们已经能够动态加载程序集并且获得程序集中的类和方法,RAIL(Runtime Assembly Instrumentation Library)的出现填补了CLR处理过程中的一些空白。SetPoint是一款.NET框架下的全功能(full-featured)AOP引擎.它着重为称为语义切点(semantic pointcuts)的定义依赖RDF/OWL的使用.它的功能为一个IL-level,highly dynamic weaver&LENDL,一个引人注目的定义语言、、、、、、
DotNetAOP为 CLR language提供AOP 框架基础属性。NAop是一个DotNet下的AOP框架。AspectSharp是DotNet下的免费AOP框架,它以Dynamic Proxies和XML作为配置文件。
二、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支持将业务模型转换成软件模型。业务开发人员可以使用模型驱动的方法设计,实现,执行和跟踪业务流程。因此开发人员能够更容易的关注业务逻辑的变化。
三、文本编辑
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配置。
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站点以节省你的时间和金钱。
八、代码覆盖(Code Coverage)
NCover是.NET框架下的C#版本代码覆盖分析工具。NCover可以对程序进行 line-by-line 的代码覆盖统计。
九、论坛系统
YetAnotherForum可以作为ASP.NET开发的网站的论坛或是留言板。它使用MSSQL作为底层数据库。
十、开发工具(IDE)
SharpDevelop是一个DotNet平台下的免费开发工具,支持C#和VB.NET。
MonoDevelop是可以支持C#和其它符合.Net规范的开发语言的IDE。C# Studio是 C#/Mono/GTK# 开发者的一个简单的IDE。
十一、安装制作
izfree是一套套免费的工具用于帮助创建使用Microsoft''''s Windows Installer 技术的安装程序。使用izfree你可以为你的应用程序制作强劲的安装程序。Windows Installer XML (WiX)可以重XML源文件创建Windows程序安装包的工具集。它支持命令行方式,开发人员可以把结合它来创建MSI和MSM安装包一个可以和商业软件安装产品相比的开源打包工具。
十二、IoC容器
Spring.net是从java的Spring Framework移植过来的。java的Spring包含了许多功能和特性,在当前的Spring.net都有提供。Spring.net最初发布的版本包含了一个很有特色的IoC容器。Castle是一组应用开发的工具,内含一个简单的IoC容器。StructureMap是.NET环境下的一个轻量级依赖注入工具,StructureMap也是一个灵活的、可扩展的通用“插件”机制的.NE
十三、Bug追踪
BugNet是一款C#编写的基于Web的开源Bug跟踪系统。BTsys是一款轻量级的开源桌面Bug跟踪系统,是C#和ADO.NET实现。一个Bug记录和跟踪的解决方案,支持文件附件和注释历史。BugTracker.NET是使用ASP.NET 和 C#开发的基于web的开源Bug跟踪系统。需要SQL Server 或 MSDE支持。它安装简单,容易使用,功能强大。BugBye是一款ASP.NET和C#开发的基于web的Bug跟踪系统。
十四、日志工具
log4net是一个可以帮助程序员把日志信息输出到各种不同目标的.net类库。它可以容易的加载到开发项目中,实现程序调试和运行的时候的日志信息输出,提供了比.net自己提供的debug类和trace类的功能更多。log4net是从java下有卓越表现的log4j移植过来的。它是apache基金资助的项目的一部分。NLog是C#编写的开源日志类库,它的设计思想是使其简单而灵活。NLog让你处理诊断的日志消息,用相关信息扩充消息,依照你的选择格式化日志消息和把日志消息输出到一个或多个目的地。 LogThis是为.NET应用程序提供的一款C#开源日志框架,它可以嵌入到应用程序之中。AppLog是一个简单的应用日志工具。它使用C#开发,且使用ByteFX MySQL 数据访问库.。C#开发的可扩展日志工具,有高级消息队列支持,可以异步使用。CSharp Logger是apache继log4net项目后设计的又一个日志工具。它用来向Windows的事件日志写入debug、info、warn和error四个等级的信息。
十五、网络客户端
.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。
网络服务器
ODC(#)H是一款C#编写的开源hub software,它功能强大,消耗的资源少且支持插件功能。Dawn of Light (DOL)是第一个开源的Dark Age of Camelot (DAOC)游戏服务器,你可以创建自己的服务器且自己设计游戏内容。DOL使用.Net Framework框架的C#编写,使用XML和MySQL存储数据,支持Windows和Mono平台。
NeatUpload可以让ASP.NET开发人员把磁盘上的文件通过流的方式上传并且可以监视上传进度。它是开源的且在 Mono''s XSP/mod_mono和微软的ASP.NET下运行得Advanced Data Provider是为ADO.NET提供的动态数据提供者。可以让应用程序透明的访问不同的ADO.NET 数据提供者。
OJB.NET是一款.NET平台下的对象/关系映射(O/R Mapping)工具。
门户系统
OmniPortal基于一种web-portal-kernel(Web门户核心)的思想而构建的开源基础框架,它解决了安全控制、主题和本地化等。你可以基于 OmniPortal 来更容易的创建任意的Web应用系统(例如 ERP, CMS, CRM)。它支持Mono 和.Net 。对于Web开发人员来说,OmniPortal为他们提供了一款优秀的二次开发基础类库。SharpNuke.NET是一款C#开发的基于 ASP.NET 的开源 Portal/CMS。最初是从流行的VB.NET开发的web portal系统DotNetNuke移植过来的的。以后的版本将会兼容 Windows和 Linux Mono。
Personal .NET Portal是一个基于Web的个人门户系统。它试图提供一种简单的方式建立个人网站,页面使用标签和模板创建。
My Community Portal提供了一个统一的Internet门户,作为论坛,群组,聊天,你自己的Email,搜索引擎,网络目录,个人主页,投票还有更多的功能入口。
剖析工具(Profilers)
Prof-It是一款独特易用的C#程序剖析工具。当保持对一个最小量的源代码的探测时,它为每一条语句测量执行频率。
NProf不仅仅是成熟的剖析程序,也是一套可以用来创建其它功能齐全的剖析程序的完整API,以及用可视化的工具扩展的默认GUI。
NProfiler,.NET平台下的一个应用程序剖析工具。
项目管理
SharpForge支持协作多个软件项目的开发和管理,它为你的团队提供类似 SourceForge 和 CodePlex的功能。SharpForge是C#开发的.NET 2.0开源项目。User Story.NET是一个Extreme Programming 项目。
RSS和RDF工具
Rss Bandit是C#开发的开源RSS阅读器,它内建多国语系,支持Atom 1.0以及其他各种的RSS feed格式。它画面漂亮,拥有分页浏览功能,软件细部设置d性度高。它的 *** 作画面直观简单易懂,有一个很好的Command模式和ListViewEx来使用,可让使用者很快的上手。iPodder.NET是一款C#编写的开源媒体收集器,它能自动帮你从互联网上下载音乐,能帮你轻松地从成千上万的音乐中选择你喜欢的。用它设置好订阅RSS feeds后,只要节目一有更新,它就自动下载了,你不必大量的浪费时间自己手工下载。它还整合了iTunes,创建播放列表和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#开发的开源RSS和RDF客户端,它用于 Mono, Gtk#, 和 RSS.NET。它也可以通过内嵌于Mozilla的窗口来显示内容。
Atom.NET是一款完全使用C#开发的开源类库,它的目标是提供便捷的方法来 *** 作Arom Feeds。它提供一个对象模型来写入和解析Atom Feeds。它只兼容0.3Atom规范,可以运行于微软.NET 1.x,Mono 0.29 或更高版本。
NRss是为微软.NET框架和Mono下提供的开源类库,它读取RSS Feeds元素然后以树型结构来展现对象关系。
Aggie是一个新闻收集器,它是桌面应用程序,可以下载最新的新闻并通过web页面的形式呈现。mail2rss是.NET下的 web service,它在你请求时检查你的电子信箱并返回包含电子信箱里的消息的 RSS feed。它是完全用C#开发的开源项目,没用使用任何第三方控件。
规则引擎
NxBRE是.NET平台下的一款开源轻量级的业务规则引擎(aka Rule Based Engine),它由正向串行的推理引擎(forward-chaining inference engine)和XML驱动流控制引擎(XML-driven flow control engine)组成.它支持 RuleML 0.9 Naf Datalog 和 Visio 2003 建模。
SRE (Simple Rule Engine)是.NET下的一款轻量级的开源正向串行的推理规则引擎(forward chaining inference rule engine)。它容易理解,可以解决复杂的问题。
搜索引擎
NLucene是Lucene的.NET版本。
DotLucene,Lucene.Net开源项目转向商业化后,DotLucene以Lucene.Net作为基础继续进行开发。
版本控制(CVS)
Porc是为CVS和项目管理工具提供了完整的图形化界面,它在CVS的基础上增加了一些有趣的功能。它是.NET平台下用C#编写的。
Sharpcvslib是C#语言编写的CVS客户端API。当前它为公共CVS命令提供了核心函数。NetCvsLib是为.NET平台下C#开发的一个CVS客户端。它作为一个单独的程序集而实现,因而可以很容易的集成到其它项目中去。
SQL客户端
qlBuddy是C#编写的一款用于Microsoft SQL Server和MSDE的开源工具,使用它可以很容易的编写SQL脚本。SqlBuddy提供的功能和查询分析器的目的有些微不同,它倾向于帮助使用者编写SQL。QueryCommander是一款开源的Sql editor,模拟微软的查询分析器,Visual Studio的环境类型。QueryCommander的特点包括类似IntelliSense功能,自动注释,xml文档模型,xml2data等。SQL Buddy是一款有特色的免费MSDE / Sql Server IDE,它是用.NET框架的C#编写。Database Commander是Windows *** 作系统下的一款用户界面友好的数据库管理工具。
模板引擎
NVelocity 是一个以 .NET 为基础的模板引擎。它允许任何人通过简单而强大的模板语言来定义对象。
测试工具
NUnit一款单元测试框架,它可以应用于遵循.NET框架标准的所有语言下。NUnit最初是从JUnit移植过来的。NUnit完全使用C#编写且设计时考虑了多数.NET语言的特性,例如自定义属性和其它反射特性。NMock是一款.NET平台下的基于动态代理的Mock模拟对象类库,用于C#开发。Mock对象使测试更简单,它测试单个组件或单个类时不需要其它所有组件真正实现。也就是说我们可以仅仅只是测试一个类,比起测试一个完整的对象关系树更容易查清楚Bug。Mock对象一般用于以测试为驱动的开发当中。TestDriven.NET是一款和Visual Studio .NET无缝结合的测试插件。它可以和NUnit, MbUnit 和 Team System紧密结合。Rhino.Mocks源于EasyMock.Net,它试图提供一种更简单的方法去创建和使用mock objects且使你得到更好的重构支持。它结合了EasyMock.Net和NMock的方式。Dot NetUnit实现了XUnit 测试框架,是.NET平台下的单元测试组件。EasyMock.NET是由Java实现的EasyMock到.net平台的一个移植版本的一组类库。它提供了一个简单的方法用来模拟接口和远程对象。dotunit是JUnit移植到微软.net平台的测试框架。它可以实现自动化测试。NUnitForms是NUnit的扩展。它为Windows Forms应用程序提供单元测试和压力测试,可以容易的用它为你的Windows Forms类进行自动化测试。
Web框架
NStruts 是java下大名鼎鼎的struts开源MVC框架的ASP.NET版本,是jakarta struts框架的一部分。Maverick.NET是从Maverick移植来的.NET版本,是一款开源的 Web MVC框架.它专注于MVC逻辑,它支持丰富的模板和转换技术。
MaverickLite是ASP.Net下的一款简单的开源表现层框架。它在建立在Maverick.Net framework基础上。它使用front controller的方式来处理请求。
Ingenious MVC ,基于.NET 2.0的构MVC结构的应用程序,它包含即开即用(out-of-the-box)的特性支持ASP.NET和Windows Forms应用程序.它也可以在大多数方法中扩展和定制.Websharp是.NET平台下的一款轻量级应用框架。
Email客户端
GmailerXP是为Google的Gmail服务提供了全套的工具开源程序。在线所能做的GmailerXP都允许用户做,它也整合了你任何时候在Gmail需要的其它一些程序的特点(GML, Gmailto,等)。
RemoteCalendars是C#开发的为Outlook 2003/2007提供的一款开源 COM-.NET 插件。安装完这款插件后,Outlook的用都可以用Outlook 2003/2007订阅、重新读取和删除远程iCalendar(RFC 2445)。
SharpWebMail是一款C#编写的ASP.NET下的EMail客户端。它通过POP3服务器接收邮件,通过SMTP服务器发送邮件。它的配置很简单(只需要在web.config 里面做几个设置)。
Web测试
NUnitAsp是一款自动测试 ASP.NET页面的开源工具. 它是从NUnit扩展来的。
Wiki引擎
Perspective是一款C#开源Wiki引擎,它使用户可以很容易的合作进行编辑,链接和共享Web页面,它里面有安全和分级的管理环境。Perspective居于奇妙的Wiki思想,包含了其它一些有前途且效果好的特性。
DevHawk Wiki是一款.NET平台下由C#实现的开源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技术(C#和ASP.NET)编写实现的开源多人协作的写作工具。Thufir提供了字处理和文档链接功能。它类似Wiki-Wiki ,且它具有“所见即所得”的界面。它还可以通过和Word交互来利用Word的拼写检查功能。
XML解析
NASA World Wind 是C#开发的个人电脑上的开源的3D图形虚拟地球系统。它结合了美国国家航空航天局(NASA)从卫星拍摄的图像,这些图像应用于Blue Marble, Landsat 7, SRTM, MODIS 以及其它更多的地方。
其它C#开源项目DockPanel Suite是一款开源的.Net Windows Forms开发环境下的停靠控件(docking)类库。它模仿Visual Studio .Net的效果开发的。wx.NET是基于.NET通用语言基础结构 (CLI)的开源项目。它致力于开发一个基于.NET的GUI库,它按照wxWidgets的类层次用C#编写,可以在多种CLI下执行,包括.NET,Mono,和DotGNU Portable.NET。MMC .NET类库是为Windows的MMC+Snapin开发提供支持而包装的一套开源类库。DPAToolkit(Design Pattern Automation Toolkit)是应用设计模式设计应用程序的开源工具包,它有便捷的代码生成,反向工程功能。拖拽(Drag and Drop)方式便捷的创建UML类图。支持为代码生成,反向工程编写自定义插件。mjbWorld 是一款开源的3D编辑器,它允许用户通过图形界面的选择和拖拽方式来编辑图形。它基于和应用X3D与VRML标准。该软件目的用于利用建立开放免费程序建立3D世界。同时它也可以用于其他免费开放软件程序之间进行数据交换。mjbWorld有Java, C# 和C++ /Qt等版本。MonoCalendar是.NET平台下的开源日历程序,它的目的是为Mac平台之外的其它平台提供一款类似iCal的日历程序。Data Tier Generator是一款微软 .NET平台下的开源项目,它为访问SQL Server 2000而生成存储过程的SQL Server 2000脚本和C#类。这些存储过程包含了Insert, Update, Delete, Select, 根据PK的Select, 根据FK的Select的SQL脚本。Finisar.SQLite是.NET框架下的一款为存取SQLite-Databases提供的ADO.NET Data Provider。Math.NET的目标是为提供一款自身包含清晰框架的符号运算和数学运算/科学运算,它是C#开发的开源类库。Math.NET含了一个支持线性代数的解析器,分析复杂微分,解方程等等功能。Ascii Generator dotNET (ascgen2)是一款把图片转换成高质量的ASCII字符组合(ASCII art - text)。第一个版本支持变形和粗体字体,和实时调节输出。GPSProxy是.NET Compact Framework下的开源程序。它通过COM口在Pocket PC之间拷贝GPS数据,可以把GPS数据格式从NMEA 0183转换成Garmin GPS。它是基于.NET Fra的Windows版本。FOP C# Port这是Apache居于java的 XSL-FO 格式转换器的C#版本。它采用并扩展了XSL-FO标准使FOPs在可以嵌入.NET CLR管理代码应用。14:18 浏览 (1263) 评论 (0) 分类: c# 2008-04-16缩略显示ASP.NET下载文件(d出打开保存文件对话框)ASP.NET下载文件(d出打开保存文件对话框) //fileURL为带路径的文件全名 System.IO.FileInfo fileInfo = new System.IO.FileInfo(fileURL)Response.Clear()Response.AddHeader("content-disposition","attachmentfilename="+Server.UrlEncode(fileInfo.Name.ToString()))Response.AddHeader("content-length",fileInfo.Length.ToString())Response.ContentType = "application/octet-stream"Response.ContentEncoding = System.Text.Encoding.DefaultResponse.WriteFile(fileURL)无错版: try ...{ FullFileName = Server.MapPath(FileName)//FileName--要下载的文件名 FileInfo DownloadFile= new FileInfo(FullFileName)if(DownloadFile.Exists) ...{ Response.Clear()Response.ClearHeaders()Response.Buffer=falseResponse.ContentType="application/octet-stream"Response.AppendHeader("Content-Disposition","attachmentfilename=" +HttpUtility.UrlEncode(DownloadFile.FullName,System.Text.Encoding.ASCII))Response.AppendHeader("Content-Length",DownloadFile.Length.ToString())Response.WriteFile(DownloadFile.FullName)Response.Flush()Response.End()} else ...{ //文件不存在 } } catch ...{ //文件不存在 }
1、Netty的组件设计: Netty的主要组件有Channel、EventLoop、ChannelFuture、ChannelHandler、ChannelPipe等。2、ChannelHandler充当了处理入站和出站数据的应用程序逻辑的容器。例如,实现ChannelInboundHandler接口(或ChannelInboundHandlerAdapter),你就可以接收入站事件和数据,这些数据会被业务逻辑处理。当要给客户端发送响应时,也可以从ChannelInboundHandler冲刷数据。业务逻辑通常写在一个或者多个ChannelInboundHandler中。ChannelOutboundHandler原理一样,只不过它是用来处理出站数据的。
3、ChannelPipeline提供了ChannelHandler链的容器。以客户端应用程序为例,如果事件的运动方向是从客户端到服务端的,那么我们称这些事件为出站的,即客户端发送给服务器端的数据会通过pipeline中的一些列ChannelOutboundHandler,并被这些Handler处理,反之则称为入站的。
1、当Netty发送或者接受一个消息的时候,就将会发生一次数据转换。入站消息会被解码:从字节转换为另一种格式(比如Java对象)如果是出站消息,它会被编码成字节。
2、Netty提供一些列实用的编解码器,他们都实现了ChannelInboundHandler或者ChannelOutboundHandler接口。在这些类中,channelRead方法已经被重写了。以入站为例,对于每个从入站Channel读取的消息,这个方法会被调用。随后,它将调用由解码器所提供的decode()方法进行解码,并将已经解码的字节转发给ChannelPipeline中的下一个ChannelInboundHandler。
1、关系继承图
2、由于不可能知道远程节点是否会一次性发送一个完整的信息,tcp有可能出现粘包拆包的问题,这个类会对入站数据进行缓冲,知道它准备好被处理。
3、一个关于ByteToMessageDecoder实例分析
ASP NET MVC概念
ASP NET MVC 是微软官方提供的MVC模式 说白了 ASP NET MVC知识开发ASP NET Web
应用程序的一个框架而已 而且其只是一个表示层框架 同时也是微软的第一个开源项目
使用ASP NET开发web应用程序方式
WebForm方式
Asp Net MVC 方式
注意 WebForm方式和Asp Net MVC方式是使用开发web应用程序的两种并行方式 mvc(以下简称mvc)的目的并不是取代WebForm 而是web开发的另外一种选择而已
MVC模式简介
MVC模式是一种表现模式 它将web应用程序分成三个主要组件 即 视图(View) 控制器(Controller)和模型(Model)
M Model主要是存储或者是处理数据的组件
Model其实是实现业务逻辑层对实体类相应数据库 *** 作 如CRUD(Create/Retrieve/Update/Delete) 它包括数据 验证规则 数据访问和业务逻辑等应用程序信息
V View是用户接口层组件 主要是将Model中的数据展示给用户
C Controller处理用户交互 从Model中获取数据并将数据传给指定的View
要点
M和V的实现代码分离 从而使同一个程序可以使用不同的表现形式 C存在的目的则是确保M和V的同步 一旦M改变 V应该同步更新
控制器隔离了业务逻辑和View耦合 使得业务逻辑和数据规则等很容易改变而不影响到前台页面
View和Controller都可以直接请求Model 但是Model不依赖View和Controller
Controller可以直接请求View来显示具体页面 View不依赖Controller
第一个Asp Net MVC程序
案例 下面我们通过向EFFirst数据库的Customer表中添加数据数据并且将所有用户信息展示到对应页面的方式 来书写第一个Asp Net MVC应用程序
Customer表结构
CustId(客户编号) 主键自动增长
CustName(客户姓名)
CustAddress(客户地址)
首先创建MVC 的项目
对解决方案点右键 新建项目 如下图
将项目名称命名为MyMVC 然后点击确定 如下图
选择否 点击确定
接下来对项目的目录结构进行剖析
App_Data在该文件夹下的文件是不同通过URL访问的 起到保护文件的作用
Content:项目用到的素材和样式等的文件夹 例如我们可以将Image文件夹和Css文件夹放到Content文件夹中
Controllers:控制器存储文件夹
Models 模型存放文件夹
Scripts js(javascript)文件存储文件夹
Views 视图存放文件夹
创建控制器UserInfoController
创建视图Register
Register页面对Controller发起请求 请求可以分两种 get和post 所以我们写了两个action 为了方便后续 *** 作 我们可以对action写一个重载 无参的Register()用来处理get请求 带参数的Register(FormCollection collection)用来处理post请求 如下图
然后对无参的Register点右键 选择添加视图菜单项
点击添加按钮 则在Views文件夹中会自动创建出一个名称为UserInfo(和action所在的控制器名称相同)的文件夹 并且在该文件夹下创建一个名称为Register的aspx文件 注意 这里的aspx文件没有后缀名为 cs的文件
在Register中书写代码如下所示
既然是注册页面 必须将用户输入的信息提交到服务器 此时我们可以使用form表单 为其action属性设置属性值为 /UserInfo/Register UserInfo代表的是UserInfoController Register代表UserInfoController下的action 也即是说我们将信息提交到了Register这个action
用户填写完信息后 流程跳转到了UserInfoController 此时我们可以在接收Post请求的action中书写如下代码
说明 return RedirectToAction( Index )作用是跳转到名称为Index的action继续执行
创建action Index和视图Index
用同样的方式对Index点右键 创建View Index
<style type= text/css > th td { text align: center } </style> <h >微冷的雨 用户详细信息页面</h > <h >由于顾客的数据肯定会出现多条 因此使用table显示</h > <table width= % > <thead> <tr> <td>编号</td> <td>用户姓名</td> <td>用户地址</td> </tr> </thead> <tbody> <% foreach (var item in (IEnumerable<Customer>)ViewData[ Customer ]) {%> <tr> <td><%:item CustId %></td> <td><%:item CustName %></td> <td><%:item CustAddress %></td> </tr> <%} %> </tbody> </table> View Code 最终我们可以实现如下效果lishixinzhi/Article/program/net/201311/12164
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)