早就想学习Spring.NET的。个人习惯喜欢直接学习原始资料,所以就直接从源码开始。利用Git从Github上获取sping.net的源码。然后根据里面的资料开始学习。
从Readme(spring-net\readme.txt)开始。虽然不难读懂,但还是翻译一下。
SPRING.NET FRAMEWORK 预发布版2.0.0说明。
http://www.springframework.net/
一 介绍
包含如下功能:
1 提供完善的控制反转容器
2 提供面向侧面编程的框架
3 Expression Language for lightweight scripting
4 与UI解耦的验证框架
5 ASP.NET Framework
- 提供以下元素的依赖注入:页面、自定义控件、单向数据绑定。。。
6 ASP.NET MVC和ASP.NET WebAPI Framework
- 提供MVC3和MVC4的依赖注入
7 通过使用通用 XML配置和属性支持对不同事务API的事务声明管理
8 简化了ADO.NET的使用。DAO支持类和Spring式的事务管理功能的集成
9 对服务的抽象
- 根据.NET Remoting,Web Service 或者.NET 服务组件输出.NET对象。并且创建基于endpoint URL和服务接口的客户端代理。
10 NHibernate 3.2和.3.3 集成了简化NHibernate和事务声明管理
11 Exporter能为被应用于JavaScript的依赖注入或者AOP暴露统一对象
12 NUit 和 MSTest的集成
- 提供依赖注入的测试案例和Sping 容器的加载器和缓存。。。数据访问和事务管理特性有助于集成测试
13 WCF 的集成。 - 提供了依赖注入和应用AOP通知WCF服务
14 集成了Quarzt 。通过使用依赖注入和Spring事务支持配置任务调度
15 集成了MSMQ。通过提供帮助类完成消息的发送和接收来简化MSMQ的使用。集成了Spring事务管理特性。
16 集成NMS。通过提供帮助类完成消息的发送和接收来简化NMS的使用
17 集成TIBCO EMS。
18 集成NVelocity。简化了配置过程
Spring.NET 是基于Java的Sping框架的一个端口。Java/J2EE Spring 框架则是基于Rod Johnson(Wrox,2002)发布的“Expert One-on-One J2EE Design and Development”的代码。
二 支持的.NET FRAMEWORK 版本
Spring.NET 2.0.0 支持.NET3.5和4.0。在目录bin
net\3.5和bin\net\4.0中分别放置了对应.NET 3.5 和 4.0的Dll
三 已知的问题
暂无
四 发布信息
发布的内容:
1 "src" 包含c#的源代码
2 "test"包含测试Sping.NET的代码
3 “lib/Net”包含Sping框架依赖的第三方库
4 "lib/NHibernate31"包含NHibernate 3.2的Dlls
5 "lib/NHbernate32 "包含NHibernate 3.3的Dlls
6 "doc"包含被引用的文档,MSDN风格的帮助,以及Sping.NET的xsd
7 “examples”包含的应用
8 "build-support"额外的应用用来帮助NAnt便捷的构建框架
9 "dev-support"包含帮助开发的工具和代码,比如VS的项目模板
调试版本使用/DEBUG:full,发布版本使用/DEBUG:pdbonly 标志
五 Dll的分布
“bin”目录包含应用程序中用到的dll。 Dependencies are those other than on the .NET BCL.(不知道准确意思。。。)
“Spring.Core”)(765kb)
-包含:控制反转容器。集合类
-依赖:Common.Logging
"Spring.Aop"(150kb)
-包含:面向切面编程框架
-依赖:Spring.Core,Common.Logging
“Spring.Data”(320kb)
-包含:事务和ADO.NET框架
-依赖:Sping.Core,Sping.Aop
“Spring.Data.NHibernate32”(90kb)
-包含:NHibernate3.2的集成
-依赖:Sping.Core,Spring.Aop,Spring.Data,NHibernate
“Spring.Data.NHibernate33”(90kb)
-包含:NHibernate3.3的集成
-依赖:Spring.Core,Spring.Aop,Spring.Data,NHibernate
“Spring.Serbvices”(70kb)
-包含:Web Services,Remoting,和基于服务的企业级组件
-依赖:Spring.Core,Spring.Aop
“Spring.Web”(165kb)
-包含:基于ASP.NET的应用框架
-依赖:Spring.Core,Spring.Aop,System.Web.Extensions
“Spring.Web.Mvc”(8kb)
-包含:ASP.NET MVC2的集成
-依赖:Spring.Core,Spring.Web
“Spring.Web.Mvc3”(8kb)
-包含:ASP.NET MVC3的集成
-依赖:Spring.Core,Spring.Web
“Spring.Web.Mvc4”(8kb)
-包含:ASP.NET MVC4 和WebAPI的集成
-依赖:Spring.Core,Spring.Web
“Spring.Testing.NUnit”(24kb)
-包含:NUnit的集成
-依赖:Spring.Core,Spring.Data,NUit
“Spring.Testing.Microsoft”(24kb)
-包含:MSTest 的集成
-依赖:Spring.Core,Spring.Data,MSTest
“Spring.Messaging”(65kb)
-包含:MSMQ的集成
-依赖:Spring.Core,Spring.Data,System.Messaging
“Spring.Messaging.Nms”(100kb)
-包含:NMS 的集成
-依赖:Spring.Core,Spring.Data,Apache NMS
“Spring.Scheduling.Quqrtz”(44kb)
-包含:Quartz 1.0的集成
-依赖:Spring.Core,Spring.Data,Quartz
“Spring.Data”(44kb)
-包含:NVelocity的集成
-依赖:Spring.Core,NVelocity
六 如何开始?
文档可以在"docs"目录中找到Spring参考文档
有文档参考的应用可以在“examples”中找到:
1 IoCQuickStart.MovieFinder。一个简单的事例用来展示Ioc容器的行为
2 IoCQuickStart.AppContext。展示各个IApplicationContext特性
3 IoCQuickStart.EventRegistry。展示松耦合事件处理特性
4 AopQuickStart。显示AOP特性
5 CachingQuickStart 。展示告诉缓存的抽象
6 SpringAir。展示Spring.Web的特性
7 Calculator 。展示Spring.Services的特性
8 WebQuickStart。展示如何一步一步的使用Spring.Web的特性
9 Web.Extensions.Example。展示ASP.NET AJAX的集成
10 DataQuickStart。展示Spring.Data的数据访问特性
11 TxQuickStart。展示Spring事务特性
12 Data.NHibernate.Northwind。展示如Spring的NHibernate特性
13 WCFQuickStart。展示如何通过WCF使用DI和AOP
14 NMSQuickStart。使用NMS的简单应用
15 MSMQ QuickStart。应用MSMQ的简单应用
16 MvcQuickStart。展示如何配置Mvc2支持
17 Mvc3QuickStart。展示如何配置Mvc3支持
18 Mvc4QuickStart。展示如何配置Mvc4支持
七 如何构建
使用VS.NET:
有两个版本的解决方案文件
VS.NET2008 使用Spring.Net.2008.sln
VS.NET2010S使用Spring.Net.2010.sln
注意:
如果在 使用Vista/Win7 上开启了UAC。你可能会遇到类似如下错误,
"C:\Spring.Net\Spring.NET-1.3.2\Spring.NET\test\Spring\Spring.Core.Tests\Spring.Core.Tests.dll.config"
..\..\..\..\build\VS.Net.2008\Spring.Core.Tests\Debug\ /y /s /q-Command exited with Code 9009. Spring.Core.Tests.2008你需要以管理员身份运行Visual Studio
使用NAnt:
在开始构建前你需要安装ASP.NET2,3和4。这是因为不能够在分发(不知道这么翻译合适不。。。)
ASP.NET 的Dll
构建所用脚本已经包含在下载的包中。
构建源代码和运行单元测试类,搭建测试
如果你需要构建强签名程序集,你可以通过如下命令生成秘钥(假设sn.exe路径正确),
sn -k Spring.Net.snk
你需要将Spring.NET.snk文件放到源代码文件夹得根目录中。当你执行如下命令时所有构建都将被强命名,
nant -D:project.build.sing=true
InnovaSys Document X!是用来生成SDK文档的
八 支持
在 Http://forum.springframework.net/ 论坛你可以提交问题,请求帮助,并且可以和其他Spring.NET用户交流。可以。
可以在http://fisheye.springframework.org/browse/spring-net上找到bug和问题跟踪。
可以在https://fisheye.springframework.org/browse/spring-net浏览代码库。
可以在github上获得源码https://github.com/SpringSource/spring-net。
我们总是乐于接受在论坛上的反馈。如果你认为你发现了一个bug,有改进建议或功能请求,请在JIRA上提交(见上面的链接)
在您提交bug前,如果可能,首先在http://www.springframework.net/downloads/nightly/上下载快照,查看bug是否已经被
修复。如果问题依旧存在,不要忘了提及您所使用的Spring.NET版本,并且告诉我们如何重现问题。更加理想的是
附加一些代码在JIRA上。
九 致谢
InnovaSys Document X!
InnovSys 慷慨的提供了一个许可证,让我们能够生成SDK文档以及集成于Visual Studio的配套设施
这个文档已经为学习Spring.NET指明了明确的方向。接下来的工作:
1 结合“doc”里面的文档逐个看懂“examples”下的18个demo。大致知道“src”里的每个项目能够做什么
2 逐个分析“src”里的项目代码
3 了解nant
4 如果遇到以前没有涉及到的技术需要查阅资料作为学习分支