zoukankan      html  css  js  c++  java
  • 基于盛大的云数据库系统 MongoIC 构建图片系统

    盛大云MongoIC服务(http://mongoic.grandcloud.cn),MongoIC是2011年10月中旬盛大云正式对外开放的一个系统,不仅是中国第一家专业的MongoDB云服务,也是全球第一家支持数据库恢复的MongoDB云服务。盛大云”的MongoIC支持在线一键申请数据库,可以免去搭建MongoDB集群的烦琐工作,给用户以极大的便捷。MongoIC支持各种形式的备份:用户不仅可以定制每日或每周备份,在进行重要操作前,还可以执行即时备份。而且,MongoIC上的数据库提供高可用性服务,每个数据库都会有多台机器做备份,当主机出现故障后,备用机会自动升级成主机,继续提供数据库服务,从而保证用户业务的连续性。

    目前使用的是官方发布的2.0.0版本,价格方面也很实惠:

    image

    在上篇文章 《基于MongoDB GridFS的图片存储》 已经做了说明,这里把相关代码补上,使用的是官方的C#客户端MongoDB.Driver 1.3。

    public class MongoFSDirectoryParameters 
        { 
            public string ConnectionString { get; set; } 
            public string RootName { get; set; }

            public MongoFSDirectoryParameters() 
            { 
                ConnectionString = "mongodb://localhost/images"; 
                RootName = "imagesFs"; 
            } 
        }

        public class MongoFSDirectory

        {  
            private readonly MongoDatabase mDatabase; 
            private readonly MongoGridFS fs; 
            private bool _alreadyDisposed; 
            public MongoFSDirectory(MongoFSDirectoryParameters parameters) 
            {    
                mDatabase = MongoDatabase.Create(parameters.ConnectionString); 
                fs = new MongoGridFS(mDatabase, new MongoGridFSSettings() 
                { 
                    Root = parameters.RootName               
                }); 
            } 
            /// <summary> 
            /// add a document to mongodb 
            /// </summary> 
            /// <param name="content">document bytes array</param> 
            /// <returns>the unique identity filename in mongodb</returns> 
            public string AddFile(string remoteFileName,byte[] content,string contentType) 
            { 
                MongoGridFSCreateOptions option = new MongoGridFSCreateOptions() 
                { 
                    ContentType = contentType, UploadDate = DateTime.Now 
                }; 
                MongoGridFSFileInfo info = new MongoGridFSFileInfo(fs, remoteFileName, option); 
                using (MongoGridFSStream gfs = info.Create()) 
                { 
                    gfs.Write(content, 0, content.Length); 
                } 
                return remoteFileName;

            }

            /// <summary> 
            /// add a document to mongodb 
            /// </summary> 
            /// <param name="content">document bytes array</param> 
            /// <returns>the unique identity filename in mongodb</returns> 
            public string AddFile(byte[] content, string contentType) 
            { 
                string remoteFileName = Guid.NewGuid().ToString(); 
                return AddFile(remoteFileName, content,contentType); 
            } 
            /// <summary> 
            /// delete doc from mongodb 
            /// </summary> 
            /// <param name="filename">the unique identity filename</param> 
            public string DeleteFile(string filename) 
            { 
                fs.Delete(filename); 
                return filename; 
            }

            /// <summary> 
            /// 是否已经存在文件 
            /// </summary> 
            /// <param name="filename"></param> 
            /// <returns></returns> 
            public bool IsExists(string filename) 
            { 
                return fs.Exists(filename); 
            }

            /// <summary> 
            /// get document bytes array from mongodb 
            /// </summary> 
            /// <param name="filename">unique filename</param> 
            /// <returns>bytes array</returns> 
            public MongoGridFSFileInfo GetFileInfo(string filename) 
            { 
                var fileInfo = fs.FindOne(filename); 
                return fileInfo; 
            }

            /// <summary> 
            /// get document bytes array from mongodb 
            /// </summary> 
            /// <param name="filename">unique filename</param> 
            /// <returns>bytes array</returns> 
            public byte[] GetFile(string filename) 
            { 
                byte[] bytes = null; 
                using (MongoGridFSStream gfs = fs.Open(filename, FileMode.Open)) 
                { 
                    bytes = new byte[gfs.Length]; 
                    gfs.Read(bytes, 0, bytes.Length);                 
                } 
                return bytes;

            }

        }

    也有使用着反映存在性能问题 mongoic蛋疼的性能,期待盛大运营好。下图是保存到了盛大云里头的数据

    image

    基于MongoDB GridFS的图片存储

     

    它是mongodb的一个子模块,使用GridFS可以基于mongodb来持久存储文件.并且支持分布式应用(文件分布存储和读取).GridFS是mongodb中用户存储大对象的工具,对于mongodb,BSON格式的数据(文档)存储有尺寸限制,最大为16M.但是在实际系统开发中,经常会有上传图片或者文件的功能,这些文件可能尺寸会很大..我们可以借用Gridfs来辅助实现这些文件的管理.

    Mongo GFS的文件表是由 表名.files和 表名.chunks 构成,前者是文件信息构成,后者是文件的内容,两者通过_id与files_id建立关联。

    GridFS会将大文件对象分割成多个小的chunk(文件片段),一般为256k/个,每个chunk将作为mongodb的一个文档(document)被存储在chunks集合中..gridfs模块会为每个文件创建chunks和files信息.每个文件的实际内容被存在chunks(二进制数据)中,和文件有关的meta数据(filename,content_type,还有用户自定义的属性)将会被存在files集合中.files集合中的文档就是BSON格式,可以使用mongodb的索引等等特性,当然可以对files文档做数据分析。

    使用场景:如果你的系统有如下情景

    1) 有大量的上传图片(用户上传或者系统本身的文件发布等)

    2) 文件的量级处于飞速增长,有可能打到单机操作系统自己的文件系统的查询性能瓶颈,甚至超过单机硬盘的扩容范围.

    3) 文件的备份(不适用gridfs这种三方也可以做,但是不尽方便),文件系统访问的故障转移和修复..

    4) 文件的索引,存储除文件本身以外还需要关联更多的元数据信息(比如,不仅仅存储文件,还要保存一些文件的发布式作者/发布时间/文件tag属性等等自定义信息)并且需要索引的...

    5) 基于4),对文件的分类模糊,如果采用操作系统的文件系统,文件夹分类关系混乱或者无法分类时..

    6) 当前系统是基于web的,对图片的访问根据url了规则路由的..(普通文件系统也可以)

    7) 文件尺寸较小,而且众多,且文件有可能被迁移/删除等..

    下面是两个PPT,对MongoDB的GridFS都做了介绍,包括了GridFS相对于传统文件系统存储,网络文件系统存储的优势。虽然内容相似,但介绍方法各异。推荐给大家。

    MongoDB gridfs
    View more PowerPoint from Xue Wei

    使用Mongodb存储上传物理文件并进行SQUID加速(基于aspx页面)

    Mongodb亿级数据量的性能测试

    MongoDB资料汇总专题

    Castle MonoRail 和asp.net MVC

    摘要: 从 .NET 3.5 开始 WCF 已经支持用 WebHttpBinding 构建 RESTful Web 服务,基于 WCF 框架的 RESTful Web 服务还是建立在 WCF Message ...阅读全文
    posted @ 2012-03-11 21:35 张善友 阅读(795) | 评论 (7) 编辑
     
    摘要: ASP.NET MVC 4 beta中包含了一个实验项目,用作开发“单页面应用程序(single page applications)”。该项目也称为ASP.NET SPA,其项目类型基于一组开源库以...阅读全文
    posted @ 2012-03-04 12:08 张善友 阅读(495) | 评论 (0) 编辑
     
    摘要: ASP.NET MVC 4 Beta 新功能特性: (1) ASP.NET Web API (2) 添加移动项目模板 (3) 对移动 app 特性的功能支持,JQuery Moblie,V...阅读全文
    posted @ 2012-03-04 11:59 张善友 阅读(226) | 评论 (0) 编辑
     
     
    摘要: MVC MiniProfiler是Stack Overflow团队设计的一款对ASP.NET MVC和WebForm 的性能分析的小程序。可以对一个页面本身,及该页面通过直接引用、Ajax、Ifram...阅读全文
    posted @ 2011-10-18 22:17 张善友 阅读(1105) | 评论 (0) 编辑
     
    摘要: 如果你使用asp.net mvc,而且使用的js库是jQuery, 那么一定别错过使用jQuery UI,使用jQuery UI 有个一套的mvc套件值得使用jQuery ASP.Net MVC Co...阅读全文
    posted @ 2011-07-17 16:24 张善友 阅读(1628) | 评论 (0) 编辑
     
    摘要: 51Degrees.mobi 提供了一个免费开源的ASP.NET移动应用程序编程接口,允许开发人员来利用WURFL中各种广泛的移动设备信息;目前,BBC、Bank of America、MySpace...阅读全文
    posted @ 2011-02-07 12:58 张善友 阅读(694) | 评论 (0) 编辑
     
    摘要: Orchard是一个免费和开源的社区交流项目,致力于在ASP.NET平台开发应用程序和可重用性组件。它将创建用于ASP.Net应用和扩展的共享组件,以及修改这些组件以便使其应用于终端用户,脚本人员和开...阅读全文
    posted @ 2011-01-13 23:26 张善友 阅读(3839) | 评论 (8) 编辑
     
    摘要: BBCode是Bulletin Board Code的缩写,有译为「BB代码」者,属于轻量标记语言(Lightweight Markup Language)的一种,如字面上所显示的,它主要是使用在BB...阅读全文
    posted @ 2010-11-06 09:26 张善友 阅读(691) | 评论 (0) 编辑
     
    摘要: MVC Foolproof Validation是一个数据模型类库扩展。 操作符验证 有效的操作符验证器 非空验证 条件非空验证 启用客户端验证要启用客户端验证,必须包含标准的客户端验证文件和Mvc...阅读全文
    posted @ 2010-07-10 23:20 张善友 阅读(1570) | 评论 (1) 编辑
     
    摘要: 联动式的下拉选择是一个很普遍的需求,在ASP.NET MVC中可以使用Json和jQuery来实现,更简单的是使用jQuery的级联插件CascadingDropDown ,具体参见文章http://...阅读全文
    posted @ 2010-07-04 16:48 张善友 阅读(2069) | 评论 (0) 编辑
     
    摘要: 很多同学都读过这篇文章吧 ASP.NET MVC中你必须知道的13个扩展点,今天给大家介绍一个ASP.NET MVC的扩展库,主要就是针对这些扩展点进行。这个项目的核心是IOC容器,包括Ninject...阅读全文
    posted @ 2010-05-15 23:44 张善友 阅读(3256) | 评论 (7) 编辑
     
    摘要: 网站优化理论方面可以看杨正祎同学的文章如何提高网页的效率(上篇)——提高网页效率的14条准则,如何提高网页的效率(下篇)——Use YSlow to know why your web Slow,本文给你介绍一个实际的类库帮助你完成网站的优化。 Combres - WebForm & MVC Client-side Resource Combine Library 是一个 ASP.NET 网站的客户端资源js,css的压缩,合成和缓存库,基于Apache 2.0协议开源,最新版本是2.0。这个库同时支持WebForm和MVC.阅读全文
    posted @ 2010-04-03 10:44 张善友 阅读(3382) | 评论 (8) 编辑
     
    摘要: DomainModel代表着相应的域,但ViewModel却是为View的需要而创建。这两者之间或许(一般情况下都)是不同的,此外DomainModel是数据加上行为的组合体,是由复杂的变量类型组成的并且具有层次。而ViewModel只是由一些String等简单变量类型组成。如果想移除冗余并且容易导致出错的ORM代码,可以使用AutoMapper.阅读全文
    posted @ 2010-04-03 00:30 张善友 阅读(2891) | 评论 (17) 编辑
     
    摘要: 网站的权限判断是一个非常普遍的需求,从文章ASP.NET MVC的Action Filter中我们知道实现这样的需求只要从AuthorizeAttribute集成,重写相关的判断逻辑就可以了。AuthorizeCore方法返回false,MVC 此时将返回的ActionResult是HttpUnauthorizedResult,从HttpUnauthorizedResult的源码可以看出,HttpUnauthorizedResult的执行很简单,就是设置当前的HttpContext.Response的状态码为401,这样就回激活authentication module 执行它默认的 unauthorized handler,也就是跳转到登陆页面的,这似乎也不符合逻辑,认证和授权应该是验证的两个方面。这不符合要求,用户已经登陆成功了,只是没有权限而已。我这里只是重写OnAuthorization方法,重定向到一个页面而已,也可以写一个ActionResult。 阅读全文
    posted @ 2010-03-29 13:34 张善友 阅读(3543) | 评论 (2) 编辑
     
    摘要: 一年前写了一篇短文ASP.NET MVC Action Filters,整理了Action Filter方面的资源,本篇文章详细的描述Action Filter。Action Filter作为一个可以应用到Controller Action(或者是整个controller)上的属性(Attribute),改变Action执行的行为,当应用于整个Controller上时,Controller上的所有Action都应用了同样设置的Action。 使用Action Filter 可以处理缓存、 验证和错误处理您的操作使用声明性编程模型的行为。阅读全文
    posted @ 2010-03-27 22:52 张善友 阅读(2639) | 评论 (2) 编辑
     
    摘要: Tailspin Travel 是一个旅游预订的应用程序示例,最新版本采用ASP.NET MVC 2技术构建,主要使用 DataAnnotations 验证, 客户端验证和ViewModels,还展示了许多Visual Studio 2010, .NET Framework 4, 和Windows Server AppFabric的技术,参看ASP.NET MVC 2示例Tailspin Travel。 Tailspin Travel设计的技术比较多,今天我们来看看界面(UI)上的技术,在UI层上来说主要采用的技术是ASP.NET MVC2和ASP.NET DynamicData框架。从功能上来分为向普通用户提供的前台页面和管理员使用的后台界面,前台页面主要实现的是旅游活动日程安排,航班,酒店,租车这几部分采用的ASP.NET MVC 2技术,管理员用的后台管理页面使用的是ASP.NET DynamicData开发的,这两种技术在网站里的应用有示范作用,对于管理员使用的后台的访问量不可能很大,网站的主要流量是普通用户使用的前台页面,组合使用这两个框架,可以加快网站的开发。 阅读全文
    posted @ 2010-03-26 00:08 张善友 阅读(3066) | 评论 (2) 编辑
     
    摘要: Tailspin Travel 是一个旅游预订的应用程序示例,最新版本采用ASP.NET MVC 2技术构建,主要使用 DataAnnotations 验证, 客户端验证和ViewModels,还展示...阅读全文
    posted @ 2010-03-20 22:40 张善友 阅读(5344) | 评论 (1) 编辑
     
     
    摘要: 微软已经宣布ASP.NET MVC 2的代码以MS-PL协议发布,MS-PL是一个得到OSI认证的开源协议,ASP.NET MVC基于MS-PL发布,是一个真正的开源框架且没有任何平台限制,也就是说,...阅读全文
    posted @ 2010-03-14 15:18 张善友 阅读(2569) | 评论 (1) 编辑
     
    摘要: 似水流年报告了ASP.NET MVC 2 正式发布,那么我们有许多ASP.NET MVC 1.0的程序需要移植到2.0怎么办呢?Eilon Lipton 已经发布了一篇博文 migration tool for converting ASP.NET MVC 1 application projects,为我们的Visual Studio 2008的MVC项目的迁移准备好工具,主要工作就是转化项目类型,更新程序集的引用和生成配置信息,添加一些新的script文件。阅读全文
    posted @ 2010-03-12 23:24 张善友 阅读(2763) | 评论 (4) 编辑
     
    摘要: Yonkly 是一个新颖的多媒体社区型微博客程序,基于asp.net mvc和jQuery构建。支持直接在帖子中上传照片。并且集成Picasa和Flickr,可以在自己的帐户页面中查看这两个网站的照片...阅读全文
    posted @ 2010-02-19 19:58 张善友 阅读(1513) | 评论 (0) 编辑
     
    摘要: ASP.NET MVC是继ASP.NET WebForms之后,微软推出的Front Controller式的Web开发模型,它弥补了前者对HTML控制能力不足,单元测试较为困难等缺点。更重要的是,A...阅读全文
    posted @ 2009-12-18 09:16 张善友 阅读(1734) | 评论 (1) 编辑
     
    摘要: S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。这几条原则是非常基础而且重要的面向对象设计原则。正是由于这些原则的基础性,理解、融汇贯通这些原则需要不少的经验和知识的积累。阅读全文
    posted @ 2009-09-21 07:19 张善友 阅读(1904) | 评论 (3) 编辑
     
    摘要: 在asp.net mvc的强类型视图(strongly typed view)下拉列表,在Controller中设定的选择项在View上选中失效了。问题就出在DropDownList的Name和ViewData相同了,只要修改一下Name如下就可以了阅读全文
    posted @ 2009-07-30 13:43 张善友 阅读(2172) | 评论 (3) 编辑
     
    摘要: jQuery.ajax() 函数消费的Json数据的Date类型可以通过jQuery 1.2.6以上版本所增加的 jQuery.ajax.dataFilter和时间格式化阅读全文
    posted @ 2009-07-24 12:48 张善友 阅读(1663) | 评论 (1) 编辑
     
     
    摘要: 《ASP.NET 2.0 Website Programming / Problem - Design - Solution》一书的范例TheBeerHouse 现在采用ASP.NET MVC进行了重写,书名也进行了更新《ASP.NET MVC 1.0 Website Programming: Problem - Design Solution (Amazon)》,现在可算是asp.net mvc的一个范例:阅读全文
    posted @ 2009-05-24 10:35 张善友 阅读(2128) | 评论 (0) 编辑
     
    摘要: ASP.NET MVC 例子和PPT阅读全文
    posted @ 2009-05-19 21:36 张善友 阅读(964) | 评论 (0) 编辑
     
    摘要: jQuery,让我们控制页面元素更加方便快捷,让我们在编写js的时候不需要过多地考虑浏览器特性问题了。但是jQuery功能越强大,它本身的文件也越大。在做网站优化的时候,通常会通过优化js、css和图片文件能挤出来的几百k尺寸的下载量. Google挺够意思,就提供了jQuery库,通过使用Google提供的jQuery库,Google的服务器和线路品质那自然是不在话下的。即提高了下载速度又减少了自己服务器的并发连接数。 阅读全文
    posted @ 2009-05-09 22:38 张善友 阅读(9263) | 评论 (14) 编辑
     
    摘要: InfoQ上有篇文章ASP.NET开发人员需要学习ASP.NET MVC么? 文章已经覆盖了绝大多数对于学习/使用ASP.NET MVC的观点。 我觉得ASP.NET MVC作为asp.net 堆栈上的Web开发框架,和WebForms处于同等重要的位置。作为.NET的Web开发人员非常有必要去学习,应用ASP.NET MVC。 阅读全文
    posted @ 2009-05-09 22:24 张善友 阅读(2265) | 评论 (0) 编辑
     
    摘要: 在看这篇Fun with Http Headers in ASP.NET MVC Action Filters的时候,提到了 Roni Schuetz在codeplex上创建的一个项目ASP.NET MVC Action Filters。计划在5月10日推出第一个版本。阅读全文
    posted @ 2009-04-29 20:43 张善友 阅读(1607) | 评论 (0) 编辑
     
    摘要: ASP.NET 路由使您可以使用不必映射到网站中特定文件的 URL。由于 URL 不必映射到文件,所以可以在 Web 应用程序中使用 URL,这些 URL 是描述性的用户操作,因此更易于被用户理解。阅读全文
    posted @ 2009-04-19 11:59 张善友 阅读(966) | 评论 (1) 编辑
     
    摘要: Lightweight Test Automation Framework是ASP.NET QA团队开发的自动化集成测试框架,并且应用在ASP.NET QA团队的自动化测试产品中,目前最新版本是April Update,这个框架的作用与WatiN和Selenium类似,可操作浏览器对应用程序编写回归测试。根据ASP.NET QA团队博客上发布的Lightweight Test Automation Framework April Release,这个版本主要是修复bug和增加一些新特性.如何在asp.net mvc项目中应用LTAF。阅读全文
    posted @ 2009-04-11 12:43 张善友 阅读(2334) | 评论 (2) 编辑
     
    摘要: T4(Text Template Transformation Toolkit)则是微软官方在VisualStudio 2008中开始使用的代码生成引擎,可惜T4不像微软公布的别的工具那样参考资料充足,而且模板也很少,MSDN上甚至没有一个专门的目录用来介绍它,惟一沾边的就是在介绍DSL工具时带上的Generating Artifacts By Using Text Templates。 T4模板不仅仅应用在ASP.NET MVC里了,它可以应用于代码生成的所有领域,只是T4的资料太少了。我在社区里建了一个小组T4模板引擎,欢迎大家一起来整理T4的资料。 阅读全文
    posted @ 2009-04-06 10:42 张善友 阅读(4832) | 评论 (6) 编辑
     
    摘要: Scott Guthrie昨天宣布了ASP.NET MVC 按照Ms-PL协议开源发布,具体内容参见ASP.NET MVC 1.0 has been released,也可以参看Scott Hanselman的新闻稿Microsoft ASP.NET MVC 1.0 is now Open Source MS-PL。 微软同时也推出了一套ASP.NET MVC frameworke培训教材, 其中包含了许多范例程序、PPT、实验演练(Labs)教材等,想学习新技术的人不用在等了,赶快下载回来学习吧。 阅读全文
    posted @ 2009-04-02 22:08 张善友 阅读(4247) | 评论 (12) 编辑
     
    摘要: Microsoft 现在完全支持 jQuery 并将它集成在ASP.NET MVC 框架。jQuery-vsdoc.js文件,该文件对串连的jQuery selector方法的JavaScript intellisense提供了帮助注释和支持。 此外,扩展已完全集成 jQuery Visual Studio 2008 SP 1 中的 IntelliSense。2009年2月24日Visual Web Developer Team宣告了1.3*-vsdoc的官方版本! 現在大家可以直接由jQuery官方网站的下载页面直接下载。阅读全文
    posted @ 2009-03-28 23:13 张善友 阅读(3027) | 评论 (0) 编辑
     
    摘要: Microsoft已经发布了ASP.NET Model-View-Controller (MVC) web框架1.0版,这是微软采用开源协议发布,并且同开发社区充分互动的一个产品,和ASP.NET Webform 1.0的发布完全不同,ASP.NET MVC自从RC版本开始就进入了稳定版本 。阅读全文
    posted @ 2009-03-23 22:54 张善友 阅读(2022) | 评论 (0) 编辑
     
    摘要: Visual Studio 2008包含了一个文本模板转换工具箱,又称为T4,是领域特定语言工具的一部分,并可用于基于文本模板的方式来生成代码。 ASP.NET MVC中使用T4来生成代码. 现在T4 将来到MonoDevelop上,MonoDevelop也是通过T4来支持ASP.NET MVC, 也就是Mono版的T4.阅读全文
    posted @ 2009-03-15 21:14 张善友 阅读(1637) | 评论 (1) 编辑
     
    摘要: 应用程序发生异常时,给用户一个友好的处理方式,同时将异常记录下来并通知系统管理员或是运维人员是应用的开发的常用场景。web form上微软提供了一个工具包,关于这个工具包参看推荐一个工具包自定义HTTP 404错误。如何在asp.net mvc上实现这样的功能呢?asp.net mvc 在创建项目的时候在Views的Shared目录下有一个错误处理页Error.aspx视图,这个默认的错误处理功能没有实现对错误日志的记录。阅读全文
    posted @ 2009-03-14 12:22 张善友 阅读(1782) | 评论 (0) 编辑
     
    摘要: Scott博客上的ASP.NET MVC免费电子书教程,应该不应错过. 185页的教程,从头开始按部就班地建造起一个小型但完整的ASP.NET MVC应用。同样的asp.net mvc的一些Open Source 的项目也值得去研究研究阅读全文
    posted @ 2009-03-12 07:56 张善友 阅读(2132) | 评论 (1) 编辑
     
    摘要: Steve Sanderson在codeplex上发布了一个asp.net mvc validation framework xVal ,并写一篇详细的文章介绍这个框架 xVal - a validation framework for ASP.NET MVC。xVal可以把客户端和服务端的验证机制结合起来。阅读全文
    posted @ 2009-03-04 22:02 张善友 阅读(1457) | 评论 (1) 编辑
     
    摘要: 微软去年11月发布了一个很酷的新ASP.NET服务器控件,<asp:chart />,可以免费用在ASP.NET 3.5中,而且还可以用在asp.net mvc。 阅读全文
    posted @ 2009-02-14 17:45 张善友 阅读(5359) | 评论 (5) 编辑
     
    摘要: 现在 ASP.NET MVC Release Candidate 已经可以下载, 如何着手开始用asp.net mvc开发应用呢? 这是一个学习ASP.NET MVC Release Candidate 1的资源指南。阅读全文
    posted @ 2009-02-02 16:11 张善友 阅读(2347) | 评论 (2) 编辑
     
    摘要: Scott Gu宣布了ASP.NET MVC 1.0 RC的发布, Scott Gu在blog上写了一篇ASP.NET MVC 1.0 Release Candidate Now Available,RC版本有很多小的改进: Visual Studio同 MVC的集成更成熟了,也就说有了更好用的脚手架- "Go to Controller" / "Go to View" / "Add View" 等等 AJAX 的改进 FileUpload / "Download" 改进,例如 FileResult映射到 Fileupload Visual Studio T4 模板,这就意味着自己可以去定制MVC模板 … 阅读全文
    posted @ 2009-01-28 11:16 张善友 阅读(3912) | 评论 (6) 编辑
     
    摘要: Routing现在可以作为URLRewriting技术的替代者,出现在asp.net mvc框架中,将它应用于WebForms上也是很简单的,可以到codeplex上下载ASP.NET MVC WebFormRouting Demo。 阅读全文
    posted @ 2009-01-03 16:26 张善友 阅读(1281) | 评论 (2) 编辑
     
    摘要: 最近有个项目使用ASP.NET MVC开发,遇到一个问题,表现为:通过本地(localhost,本地ip)访问一切正常,但是通过远程链接的时候,呈现给浏览器的都是http 500内部服务器错误.在web.config 配置文件中启用错误处理节点后表现正常了。customErrors 和HandleError之间有什么关系呢? 阅读全文
    posted @ 2008-12-17 13:38 张善友 阅读(998) | 评论 (2) 编辑
     
    摘要: Oxite更是一个asp.net mvc项目的实例,Oxite目的就是向开发者展示ASP.Net MVC的功能。微软使用Oxite创建了Mix Online网站,并向开发者提供了该站点的源代码以供学习。 阅读全文
    posted @ 2008-12-11 22:02 张善友 阅读(2945) | 评论 (1) 编辑
     
    摘要: Web应用程序框架-Catharsis是一个在codeplex上的项目,相关的文档说明比较详细. 阅读全文
    posted @ 2008-09-23 20:22 张善友 阅读(1834) | 评论 (1) 编辑
     
    摘要: 我们从 UrlRoutingModule 开始,历经 MvcRouteHandler、MvcHandler、Controller、ActionFilterAttribute,直到最后的 ViewEngine、ViewPage.完成了整个ASP.NET MVC的生命周期探索。 
    阅读全文
    posted @ 2008-03-22 13:14 张善友 阅读(6473) | 评论 (122) 编辑
     
    摘要: 发现了一个asp.net 脚手架代码生成工具,它是一个免费的工具,自动生成asp.net mvc的CRUD页面. 
    阅读全文
    posted @ 2008-03-20 21:58 张善友 阅读(2530) | 评论 (4) 编辑
     
    摘要: 这两天看了一本书《Grails权威指南》,看了这个Java上Rails框架,其中有两条设计理念: 
    1、make simple thing easy and make complex possible -让简单的事情变的容易,同时让复杂的事情的实现成为可能 
    2、Convention Over Configuration --约定高于配置 
    Rails几乎成了敏捷web框架的代名词,Java社区的Grails,.NET开源项目Mono Rails和Subsonic,还有微软ASP.NET Team正在做的ASP.NET MVC框架无不体现着上述两项设计理念。 
    阅读全文
    posted @ 2008-02-24 16:35 张善友 阅读(3662) | 评论 (8) 编辑
     
    摘要: asp.net mvc ctp版本发布不到一个月时间,在社区出现了丛多的优秀开源项目,社区的活跃性非常高哦,前一段时间园子里也引发了MVC和WebForm的讨论,现在给各位推荐几个相关的优秀项目,这些项目是MVC的价值的最佳证明。阅读全文
    posted @ 2008-01-05 14:38 张善友 阅读(15468) | 评论 (12) 编辑
     
    摘要: 看了为WebForms说几句话,以及一些ASP.NET开发上的经验(上) 和为 MVC 和 Web Form 正名的一份“大字报” 的相关评论。阅读全文
    posted @ 2007-12-22 16:24 张善友 阅读(4422) | 评论 (19) 编辑
     
    摘要: Hamilton向微软MVC团队通报了Castle团队从现实应用中获得的所有复杂和不直观的需求,并告知他们如何处理这些事情。另外他还开发了一些集成案例,作为对MS MVC可扩展性和插拔性的概念验证。 
    阅读全文
    posted @ 2007-11-24 21:33 张善友 阅读(2533) | 评论 (3) 编辑
     
    摘要: ASP.NET MVC还会使用aspx,但是它没有viewstate,没有postback,所以它在这里只是个模板引擎.这和Castle的Monorail项目是一样的,只是Monorail的非强类型的PropertyBag以及没有Intellisense的模板编辑。Castle项目的首页上的对ASP.NET MVC作出了回应。阅读全文
    posted @ 2007-10-10 07:53 张善友 阅读(6939) | 评论 (21) 编辑
    摘要: 从 .NET 3.5 开始 WCF 已经支持用 WebHttpBinding 构建 RESTful Web 服务,基于 WCF 框架的 RESTful Web 服务还是建立在 WCF Message ...阅读全文
    posted @ 2012-03-11 21:35 张善友 阅读(795) | 评论 (7) 编辑
     
    摘要: 盛大云MongoIC服务(http://mongoic.grandcloud.cn),MongoIC是2011年10月中旬盛大云正式对外开放的一个系统,不仅是中国第一家专业的MongoDB云服务,也是...阅读全文
    posted @ 2012-03-11 12:35 张善友 阅读(125) | 评论 (0) 编辑
     
    摘要: 它是mongodb的一个子模块,使用GridFS可以基于mongodb来持久存储文件.并且支持分布式应用(文件分布存储和读取).GridFS是mongodb中用户存储大对象的工具,对于mongodb,...阅读全文
    posted @ 2012-03-10 14:47 张善友 阅读(154) | 评论 (0) 编辑
     
    摘要: ASP.NET MVC 4 beta中包含了一个实验项目,用作开发“单页面应用程序(single page applications)”。该项目也称为ASP.NET SPA,其项目类型基于一组开源库以...阅读全文
    posted @ 2012-03-04 12:08 张善友 阅读(495) | 评论 (0) 编辑
     
    摘要: ASP.NET MVC 4 Beta 新功能特性: (1) ASP.NET Web API (2) 添加移动项目模板 (3) 对移动 app 特性的功能支持,JQuery Moblie,V...阅读全文
    posted @ 2012-03-04 11:59 张善友 阅读(226) | 评论 (0) 编辑
     
    摘要: 微软在BUILD大会后两天向外披露了一个新的注册商标“CHARM”。据悉,该商标将被用于说明微软Windows 8中的新功能。美国商标专利局网页显示“CHARM”商标的用途范围是“计算机程序;图形用户...阅读全文
    posted @ 2012-03-03 21:28 张善友 阅读(234) | 评论 (0) 编辑
     
    摘要: 发布了Windows 8消费者预览版,将PC、移动端操作系统合二为一。作为Win8的公开测试版本,它重视平板操作体验、内置应用商店、云服务及社交分享无处不在等等特性,均备受关注。计划用Macbook ...阅读全文
    posted @ 2012-03-03 14:05 张善友 阅读(435) | 评论 (0) 编辑
     
    摘要: Entity Framework 4.3 版本终于为开发者带来了迁移(Migrations)功能,从此以后使用EF不必依赖于单独预发布的迁移库了。 什么是EF迁移呢?如果你正在使用Entity Fr...阅读全文
    posted @ 2012-03-03 09:15 张善友 阅读(205) | 评论 (0) 编辑
     
    摘要: Ido Flatow最近发布了一篇文章,其中讲述了一系列WCF将在.NET 4.5中做出的变更。 由于减少了噪音,WCF自动生成的配置文件会大大减小。从WCF的第一个版本开始,开发者就发现他们需要维...阅读全文
    posted @ 2012-03-03 09:08 张善友 阅读(191) | 评论 (0) 编辑
  • 相关阅读:
    CentOS7安装注意
    ES插件安装
    CentOS7命令
    ES安装手册
    五 、redis-cluster java api
    四 、Redis 集群的搭建
    三 redis 的 java api(jedis)
    C#验证码 使用GDI绘制验证码
    云时代架构阅读笔记二——Java性能优化(二)
    【转载】Asp .Net Web Api路由路径问题
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2392009.html
Copyright © 2011-2022 走看看