首页
学习
活动
专区
圈层
工具
发布

Rails框架流行在他的设计理念

-让简单的事情变的容易,同时让复杂的事情的实现成为可能。...只是自己创建一套规则是否会更好。...SubSonic项目和Castle的ActiveRecord的子项目,由于.net静态语言的原因,在动态特性的实现上没有RoR中那么灵活,它基于.net中的attribute来标识字段和关系,SubSonic...他们的设计模式都是ActiveRecord,ActiveRecord做CRUD很简单,每个对象可以有自己的Fetch,FetchByxxx方法,从开发者的角度看这些对象,它们知道如何加载和保存自己,对象自己来维护...,Castle 框架和spring.net,MS企业类库都有log,还有一个更通用的Log库,可参看通用日志 5、Mails: 对一个web应用,log是很常用的,Castle框架里面的支持很全面,从邮件模板到

2.7K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用 Castle Windsor 实现 Web API 依赖注入

    使用 Castle Windsor 实现 Web API 依赖注入 Web API 的依赖注入 Web API 定义了依赖注入的接口 IDependencyResolver , 定义如下: public...: GetService 创建指定类型的一个新实例; GetServices 创建制定类型的集合; IDependencyResolver 接口继承自 IDependencyScope 并添加了一个 BeginScope...当请求完成时, 调用的 Dispose 方法来销毁子作用域, 如果 Controller 有资源需要销毁, 请在 Controller 的 Dispose 方法中显式销毁资源。...使用 Castle Windsor 实现依赖注入 通过下面的 PowerShell 命令来安装 Windsor: Install-Package Castle.Windsor 知道了 IDependencyScope...} } 有了 WindsorDependencyScope , 再实现一个 WindsorDependencyResolver 就更容易了, 代码如下: public class WindsorDependencyResolver

    1.1K20

    事件总线知多少(2)

    下面我们就以Castle Windsor作为我们的IOC容器为例,来讲解下如何解除依赖。 4.1....了解Castle Windsor 使用Castle Windsor主要包含以下几步: 初始化容器:var container = new WindsorContainer(); 使用WindsorInstallers...使用Castle Windsor 使用IOC容器的目的很明确,一个是在注册事件时完成依赖的注入,一个是在触发事件时完成依赖的解析。从而完成事件的动态绑定和触发。 4.2.1....因为Castle Windsor在3.0版本取消了UnRegister方法,所以在进行事件注册时,就不再手动卸载IOC容器中已注册的依赖。...拿到程序集后就可以将所有IEventHandler的实现注册到IOC容器,然后再基于IOC容器注册的IEventHandler动态映射事件源和事件处理。

    1.3K70

    依赖注入容器Autofac

    在.NET上现在存在许多的依赖注入容器, 我也在实践中使用过Castle Windsor、StructureMap、Autofac 、Unity。...表达式还有一个好处是不需要使用反射或者是使用XML语法来表达。 资源管理的可视性:基于依赖注入容器构建的应用程序的动态性,意味着什么时候应该处理那些资源有点困难。...IDisposable接口接口是把双刃剑,既是一个老孙手上的金箍棒,也是老孙头上的魔咒,有一种明确的方式告诉那一部分应该被清理,但是一个组件要何时处理并不是很容易确定的事情,比如说一个服务可以有多个实现的时候就变得很糟糕...,组件的创建上(GOF的创建型设计模式)有的是通过工厂方式创建的,有的是单件方式创建的,有些需要被清理,有些却不需要清理。...组件的使用者无法知道是否把转换为IDisposable接口调用它的Disposal方法。Autofac通过容器来跟踪组件的资源管理。

    1.5K90

    asp.net mvc相关开源项目推荐

    1、 Asp.net mvc 和Castle 的MonoRail项目有着直接的渊源关系,第一个是Castle的Monorail项目,网站地址: http://www.castleproject.org/...我也在使用WIKI整理castle 的文档:http://www.openbeta.cn/ioc.ashx 2、 NHaml --ASP.NET MVC View Engine,这是一个Ruby的Haml...XML和System.Xml.Linq 就实现了XsltViewEngine视图引擎,项目网站:http://www.codeplex.com/MVPXML 4、 mvccontrib:已经有好几个的....NET IOC应用框架: Castle Windsor 、StructureMap 、Spring.NET 、Ninject、以及微软Enterprise Library 4.0将支持依赖注入 。...这个项目就是整合这些IoC框架以及视图引擎,包括Castle MonoRail所用的NVelocityView视图引擎、NHamlView视图引擎、XsltViewEngine视图引擎等等,如果你有精力和激情

    2.4K60

    我的CMS开发记-2 该ORM就ORM,该写SQL还是写SQL

    先扯段题外话,我原来公司的产品是java和.net共存,java部分是外包的,于是么各位也可想而知,两派程序员遇到一块会发生什么事情-____-;;好在大家都是文明人,口水战之后,各取所需,我也是从他们那里得来的...MVC,HIBERNATE等等框架方面的概念,从而才得知世界上还有这样的编程思想。...那么我在开发的时候就遇到这样的问题,ORM能极大地解放生产力,在做后台维护的时候,那代码是无比简洁,而且再也不用去担心什么字段拼错啊,漏字段啊什么什么乱七八糟的破事,只要去管需要实现的功能即可。...以我使用的Castle ActiveRecord(内部调用Nhibernate)为例,不错他确实可以使用本地sql语句,但是你使用的话必须把字段全部写全,而且时常会遇到莫名奇妙的问题。...activerecord那可怜的一点点查询条件压根没法满足如此复杂(虽然实际上不复杂)的查询,好吧那我用HQL,经过一番研究,hql是写出来了,可是他自动翻译成的sql语句实在是比手写的sql要差了不少

    1.1K100

    mybatis-plus思维导图,让mybatis-plus不再难懂

    但mybatis有个让我比较头疼的一个问题是sql工作量很大,尤其是字段多的时候。...mybatis-plus的底层实现原理是什么? mybatis-plus与其他同类框架如mybatis helper有很什么优势?...3 特性 从上图可以看出,mybatis-plus不仅仅封装了基本的CRUD操作,还内置了防SQL注入操作、常用的分页插件,还有我最喜欢的ActiveRecord模式。...用过jfinal的人应该都知道ActiveRecord是啥。Active Record 是一种数据访问设计模式,它可以帮助你实现数据对象Object到关系数据库的映射。...相比两种写法,我更喜欢ActiveRecord的模式写法,因为我不用注入userMapper,new了一个对象之后直接调用方法操作就行了。

    1.8K80

    java三大框架是什么?

    (还让你感觉不到spring的存在)成为一个完成的应用。...Struts:基于MVC的充当了其中的试图层和控制器,不说了,大名鼎鼎的功能强大的MVC架构。...Hibernate:做持久化的,对JDBC轻量级的封装,使得我们能过面向对象的操作数据库,强大的ORM工具,然后很方便将数据库记录转化为java的实体实例,将java的实体实例很容易的保存到数据库中,如果你不需要很复杂的数据库访问...,利用它你根本就不用了解数据库的细节 这里,提到一点:新出来的Jfinal框架相比以上框架其实更使用,下面简单说说特点: 1、JFinal采用ActiveRecord实现数据库操作支持,较Hibernaet...2、JFinal ActiveRecord较Hibernate学习成本低,一小时内能上手开发。

    58720

    02Prism WPF 入门实战 - 建项

    ,用于在WPF、Xamarin Forms、Uno Platform和WinUI中构建松散耦合、可维护和可测试的XAML应用程序。...Prism实现了多种设计模式,突出架构设计的松耦合、关注点分离等原则。使用设计模式和Prism提供的额能力,你可以通过独立开发的松耦合组件轻松的集成到整个应用程序中,从而开发一个应用程序。...Prism围绕架构原则的分散关注点和松耦合原则而设计的。这使得Prism提供能以下的好处: 重用。Prism通过允许组件和服务能够轻松的被开发、测试、集成到一个或多个程序来实现重用。...还允许程序基于不同的角色和配置,提供不同的使用功能。 团队开发。Prism促进团队开发,通过允许不同的团队单独开发甚至部署不同的应用程序部分。...IoC的框架有很多种例如MEF、Autofac、Castle Windsor、Unity。 初学可简单理解为有两个部分组成一个业务容器,和若干个业务模块组成。都塞到容器中进行管理。

    1.1K10

    mybatis-plus思维导图,让mybatis-plus不再难懂

    [回顾mybatis的特点.png] 但mybatis有个让我比较头疼的一个问题是sql工作量很大,尤其是字段多的时候。...#####mybatis-plus 而mybatis-plus这样一个框架,一种集mybatis与hibernate的优点一起的框架。...特性 [image.png] 从上图可以看出,mybatis-plus不仅仅封装了基本的CRUD操作,还内置了防SQL注入操作、常用的分页插件,还有我最喜欢的ActiveRecord模式。...用过jfinal的人应该都知道ActiveRecord是啥。Active Record 是一种数据访问设计模式,它可以帮助你实现数据对象Object到关系数据库的映射。...[MP增删改查.png] 相比两种写法,我更喜欢ActiveRecord的模式写法,因为我不用注入userMapper,new了一个对象之后直接调用方法操作就行了。

    4.2K180

    Go 数据存储篇(七):GORM 使用入门

    典型的 ORM 库比如 Java 中的 Hibernate、Ruby 中的 ActiveRecord、以及 Laravel 中的 Eloquent。...在 Go 语言中,也有这样的 ORM 库,最流行的当属 GORM。 GORM 是一个适用于 Go 语言的 ORM 库,遵循 ActiveRecord 模式进行设计。...注:ORM 有两种实现方式 —— ActiveRecord 和 DataMapper,关于两者之间的区别可以参考这篇教程:https://xueyuanjun.com/post/966.html。...但是还是有一些字段设置了结构体标签,这是为了给该字段添加额外的数据表字段约束,比如索引、是否允许为空等: Author string `sql:"not null"` PostId int `sql:"...,所有的 SQL 语句都由 GORM 底层去构建并执行,它会将上层模型实例的增删改查、关联操作方法执行转化为相应的 SQL 语句去执行,这也是 ORM 的设计初衷。

    3.8K20

    ASP.NET Core开发者成长路线图

    ⭐ 如果你喜欢或正在使用这个项目进行学习或引用在你的解决方案中,请给它一个星星。谢谢!...依赖注入 DI容器 Microsoft.Extensions.DependencyInjection AutoFac Ninject StructureMap Castle Windsor 生命周期...CQRS 装饰模式 策略模式 观察者模式 建造者模式 单例模式 外观模式 中介者模式 总结 如果你认为该指南可以改进,请提交包含任何更新的 PR 并提交任何问题。...上发布的开源项目清单等你签收 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器 JS实现页面复制文字时自动加版权 开发小白也毫无压力的hexo静态博客建站全攻略 - 躺坑后亲诉心路历程...,又双叒叒简单的基于MSXML的XML解析指南-C++ 相关链接: ASP.NET Core 中文文档目录 - .NET_CORE_COMMUNITY - 博客园 本文首发于本人的博客园博客,转载请注明出处

    2.4K30

    码云推荐 | Java 持久层工具 jSqlBox

    一个支持动态配置、ORM、SQL 重构、跨数据库的 Java 持久层工具。 1jSqlBox 是什么?...基于 ActiveRecord 模式,无 Session 的显式注入。支持多上下文。但当仅有一个数据源时,鼓励运用全局缺省上下文来简化配置。...低侵入,PO 类只需要声明实现 Entity 接口即可(仅适用于 Java8 及以上,对于 Java 7及以下需要继承自 EntityBase 基类)。...(开发中)二级缓存和查询缓存,类似于 Hibernate 的缓存设计,可配置第三方缓存工具如 EHcache 等。 支持多主键,适于使用了业务多主键的数据库。...一些特殊的需求可以通过直接调用内核的 JdbcTemplate 来实现,内核建立在 JdbcTemplate 上倒不是作者对 Spring 有偏爱,而是因为它的声明式事务比较好用,目前找不到其它的 JDBC

    2.3K70

    DotNet软件开发框架

    在已有的众多开源项目中选择若干优秀的项目进行整合。“站在巨人肩膀上”是牛顿有一句名言.,同样适合我们的IT行业。...1、 开源框架选择: 数据持久层Nhibernate和IbatisNet这两个都是非常优秀的数据持久层,Nhibernate是优秀的Hibernate的dotNet移植版本,在开源社区具有非常高的人气,...IbatisNet是Data Mapper框架,也是JAVA版的Ibatis的移植版本,在dotnet的开源社区一样是非常受欢迎的一个工具。...Spring.Net同样是Java的Spring 的移植版本,目前的版本是0.6,Castle则是dotnet下出现新的IOC容器,它的功能,成熟度方面比Spring.Net好得多,框架中准备采用Castle...在实现DAO时, 我们使用了Castle的Nhibernate/IbatisNet DAO Support,极大地简化了代码, 很多方法都只用简单的一行完成。

    1.5K90
    领券