对于.NET的直接对象持久性
FastObjects NET 10.0与Microsoft NET 2.0 framework完全相符合。
因为FastObjects .NET 10.0与Visual Studio 2005紧密集成,
所以为关系数据库提供了一个对开发者友好,面向对象的新选择,可以实现.NET的持久性。
FastObject .NET为.NET开发者提供了透明的持久性和状态管理。 使用了FastObjects
NET,开发者可以不用再为数据而担忧,相反, 他只需要把注意力集中在应用程序所需要解决的问题领域上即可。
FastObjects .NET是和.NET中间语言(IL)一同工作的,所以它可以支持用C#, 托管C++, J#,
VB.NET或者是任何其它支持.NET中间语言的编程语言所写入的应用程序。 与ADO.NET一样,FastObjects.
NET即可以在连接模式下工作,也可以在非连接模式下工作。 FastObjects. NET对您的对象模型没有任何的限制,完全支持继承,接口和.NET
framework集合的概念。 最后一点,FastObjects. NET和Visual
Studio.NET联系紧密集成,因此可以在您每次完成新的代码编译之后, 对您的应用程序的数据库进行自动更新。
FastObjects.NET是一种高性能的事务型数据库,它可以通过调整配置满足您部署的要求。
如果您需要一种可扩展性的多用户数据库服务器,FastObjects.NET会提供相关的选项,
例如多个处理器支持,加密技术,复制和失效转移/再连接。如果你需要一个真正的嵌入式的数据库,
FastObjects.NET提供了专门为大规模部署设计的特性,例如对象/模式版本控制和零维护。
不管您对布署有何要求,FastObjects .NET都能通过使用ACID事务,并发性控制和管理功能,
保证数据的一致性和数据的完整性。除此之外,因为FastObjectsNET使用您的对象模型作为其数据库模式,
所以,它能够通过便捷的导航和强大的查询引擎来实现高性能。
架构
FastObjects .NET是由一个能够提供必要的数据库功能的核心数据库服务器系统和一组客户端应用程序库组成的。
有了FastObjects .NET,数据库模式和所有的访问代码都会可以直接由对象模型生成。
这样就可以直接将对象和对象之间的关系映射到数据库表示,从而就不再需要模式映射代码了。
FastObjects .NET服务器在一组TCP/IP套接字上监听并维持客户端连接。
专门为二层应用程序和三层应用程序所设计的这种服务器通过复杂的对象级锁来进行并发控制,
并由此管理所有数据库里运行着的事务。对象都存储在FastObjects.NET服务器的本地文件系统上,
以便快速、有效地进行存储。内部高速缓存可以用来改善这种服务器在运行时的性能。
FastObjects .NET运行架构
FastObjects .NET的设计目标是要能够透明地嵌入一个应用程序之中,要使应用程序能够管理复杂的数据, 同时又不增加部署的难度。
而应用程序的最终用户则不需要知道有FastObjects.NET数据库的存在。
FastObjects.NET运行时间系统只需要与应用程序连接起来,这样就创建了一个完整的应用程序,而无需复杂的安装过程。 FastObjects .NET
的管理 API使得开发者可以将原本由DBA完成的管理程序完全自动化,例如,在线数据库备份。
关键特性
通过代码增强来实现透明的持久性和状态管理
FastObjects .NET是一种持久性的框架,可以通过后编译代码增强来提供透明的持久性。
同样,增加持久性功能不会对对象模型带来任何干扰。自定义属性是被用来将属性归属到各个不同的类。
通过自定义属性,类可以被声明为是持久性的,例如,可以为类的列建立索引。
有了FastObjects,各个类就不必从某一个基类那里继承或是实现一个特定的接口之后才能实现持久性。 FastObjects
.NET对对象模型没有限制,同时它也支持继承、接口和.NET框架集合。
后编译代码增强也使得FastObjects .NET可以进行所有的状态管理。
对象透明地从数据库里载入,我们内部变化追踪保证了只有发生变化的对象和新的对象才会被写入数据库。
多用户或者是多进程的并发访问
FastObjects .NET的设计目标是要对由数据库服务器控制的数据库进行大规模并发访问。FastObjects
.NET提供乐观锁策略和悲观锁策略, 这两种策略保证多个用户或者是多个进程在同时工作时,对象的一致性。
对于多线程访问数据库来说,FastObjects
.NET可以允许开发者通过不同线程运行多个事务,这样,每一个应用程序的线程都可以运行它们自己的事务。
灵活的对象级锁策略保证了对象不会同时被多个事务改变,从而保证了对象的一致性。
完全的面向对象
FastObjects .NET完全支持对象和对象集的接口、继承、多态性和封装性的面向对象范型。
代码重用的概念最后能被像预想的那样达成。
例如,继承是面向对象语言中最为复杂、最重要的特性之一。 不用继承就很难完成一个有效的面向对象的设计。FastObjects
.NET理解类的继承层次, 这样,就可以设计出一个包含数据库在内的有效的多态性应用程序。有了FastObjects .NET,
不论多么复杂的数据模型都变成了可能。 不必“简单化”应用程序设计以适应非面向对象数据库。
有效的直接映射
有了FastObjects .NET,开发者可以极为有效地使用户定义的类对象实现持久性。 有了FastObjects
.NET,对象在内存中的保存方式就会同样地被转移到为磁盘上的保存方式,
这样,内存中的引用就变成了内部对象标识符。有了这种机制,开发者就可以轻易便捷地储存复杂的对象关系。
这样,关系型数据库所固有的复杂而且代价昂贵的对象-关系映射问题就完全地迎刃而解了。
简单有效地管理复杂数据
对于.NET 的应用程序而言,FastObjects .NET中间语言代码增强会自动从您的类声明中精选出所有必要的模式信息。
类源代码中特殊的类/成员属性声明说明是否一种类是可持久化的,并对它的各种持久化的结果进行定义。 FastObjects
.NET增强对.NET程序集文件进行处理,改变了中间语言代码,以自动支持持久性。
FastObjects .NET中间语言代码增强与模型生成
高速导航和检索
因为对象储存时保留引用信息,所以应用程序就能够快速有效地检索和遍历对象图表。
从对象到对象的直接导航使您可以最快地访问您的数据。当一个对象被存储时,引用就会自动转换成数据库标识。
当加载对象时,可以使用对象的标识在数据库里迅速地定位对象。索引引擎通过使开发者完全控制模式中每一个类所建立的索引, 来进一步加强FastObjects
.NET数据库的性能。长久以来,索引一直被用于关系数据库以加快应用程序的响应时间, 组织数据的保存方式。FastObjects
.NET使用与关系数据库系统中相类似的索引技术, 但是它的索引项并不是指向表的一行,而是指向整个对象。
查询
与索引系统密不可分的是FastObjects .NET中的先进的查询引擎。 查询会自动利用类的索引来改善您的应用程序的性能。
您可以使用行业标准的对象查询语言在FastObjects .NET数据库中进行查询。
数据的完整性
FastObjects .NET完全支持所有传统的数据完整性特性,例如事务,日志和锁。
事务保证了操作的原子执行性,这意味着或者事务的所有内容都被写入稳定存储器, 亦或者是事务一点也没有被写入稳定存储器。这是通过日志文件来实现的。
这也意味着当事务在执行时,事务做出的所有改动第一次首先被写入日志文件,然后再被写入数据库文件。
如果日志写入失败,那么就不会有任何东西被写入数据库。如果数据库写入因为某些特殊事件,例如系统崩溃等,而失败了, 那么FastObjects
.NET会重新将日志文件(例如重做日志)中的内容写入数据库文件。
除此之外,每一个被写入FastObjects .NET数据库的对象都会和一个校验和联系在一起进行编码校验,
以防止介质出现故障。如果磁盘存储有一个块出现故障,那么所有受到故障影响的对象都因为它们自己的校验被发现, 从而保证您的应用程序不会使用错误的数据。
有了FastObjects .NET,开发者就可以在任何时候依据应用程序的情况来选择乐观锁或是悲观锁。
现代的多个用户架构越来越多地与乐观锁和悲观锁的组合一同工作,从而提高性能,实现最优的并发性。
透明性和零维护
FastObjects .NET的设计目标是要成为一种嵌入式的独立系统,这种系统在部署时不需要与终端用户进行交互。
应用程序的终端用户并不会意识到数据库的存在。FastObjects .NET数据库只是一些文件,这些文件和您的.NET应用程序打包、
部署在一起。因为FastObjects .NET数据库集成了空闲空间管理,索引维护,模式版本控制,动态对象版本控制等智能特性, 所以一旦FastObjects
.NET数据库被部署, 那么不需要任何外部的管理,FastObjects .NET数据库可以无限期地工作下去。
模式更新
FastObjects .NET模式更新的特性可以帮助开发者在应用程序更新时,不需要编写复杂的更新代码。
因为数据库里的对象会自动转移到新的模式里,所以,后续版本的应用程序的发布会大大获益。 FastObjects
.NET给应用程序从设计到发布的生命周期管理带来了好处。
可扩展性
对于那些基于网络的大型应用程序,FastObjects .NET通过只读复制特性提供了额外的性能。 FastObjects
.NET通过建立一个可读写的‘主’服务器与任何数量的只读的‘从’服务器之间的关系来实现一个高性能,
可扩展性的架构。当事务被提交到‘主’服务器上时,‘从’服务器上的数据被自动同步。 此外,FastObjects .NET还提供先进的客户端缓存,
从而可以通过减少经常读取的对象占用的数据库服务器上的流量来大幅度地改善大量数据读取的应用程序的性能。
FastObjects .NET的增量备份特性使得大规模部署的数据库中的数据的定期备份有了一种更加实用或者是实际的方法。
随着数据库规模的增长,定期的数据库备份变得更为关键但却更加难以执行。 FastObjects
.NET的增量备份特性使您可以只存储上一次完全备份或者是增量备份之后数据库里的变化。
这样,较小的增量备份文件被放入了永久备份介质中,并被维护,直到进行下一次完全备份。
复制和失效转移
使用FastObjects .NET复制特性可以设计出高可用性系统。
复制的数据库可以将数据库的变化通过网络复制代理写入一级主数据库和二级次数据库服务器。 可以使用本地系统或者是几千英里以外的远程系统建立复制。
依据应用程序的设计需求,复制代理可以被配置为同步的或是异步的。
数据加密
FastObjects .NET可以通过可选的数据库信息的加密选项防止物理数据被偷窃或非法访问。
通信加密
FastObjects .NET可以通过可选的基于SSL的加密选项保护您的应用程序和数据库服务器之间的通信。
附加技术信息
当前版本 |
|
FastObjects .NET 10.0 |
开发语言 |
|
C#, Managed C++, J#, VB.NET Any IL-capable
language |
内存要求 |
|
5.5 MB |
存储要求 |
|
FastObjects服务器 本地文件系统 |
开发平台 |
|
Microsoft .NET |
编译器 |
|
Visual Studio 2005 .NET Framework 2.0 |
.NET环境 |
|
.NET Framework 2.0 |
客户端部署操作系统 |
|
Microsoft Windows | |