不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了。虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来。今天就给大家介绍.NET平台下的文档型数据库RavenDB,虽然我以前也在小项目用过其他文档型数据库,但问题很多,小项目还可以,大项目就歇菜了。这个数据库我关注了很久,最近一直在看它的文档,所以把知道的先总结下来。

注意:RavenDB虽然商业化,但对社区是免费的,收费的是提供的其他服务。免费版本功能没有限制,只是用户认证有限制。

1.RavenDB概述与特性

1.1 RavenDB基本介绍

在这里就不介绍所谓的关系型数据库和NOSQL数据库的区别和优缺点了,需要了解的可以自行搜索。

RavenDB是针对Windows/.NET平台而设计的开源文档数据库。RavenDB的出现将.NET应用与非关系数据库连接到一起。数据以Shcema-less方式存储,并直接通过HTTP、RESTful API或更方便的.NET客户端API连接,.NET客户端API使用LINQ操作RavenDB数据库文档存储,所以你懂的,很舒服。RavenDB有.NET和JAVA版本,目前都在3.0。虽然RavenDB是开源的,但官方也提供了一些付费服务,可以参考官网,不过在国内这个还是算了,墙比较高,累。 下面我们进入正题,看看它的主要特性吧。

RavenDB官网:http://ravendb.net

GitHub主页  :https://github.com/ravendb/ravendb

1.2 RavenDB主要特点

1.2.1 客户端API支持.NET和JAVA

  主要说.NET API吧,在语言层面最主要的是LINQ支持,这一点估计是现在.NET NOSQL数据库的标配了。其他就是扩展性和灵活的配置方便,API都提供了。值得注意的是,不管是.NET API还是JAVA API都是建立在它的REST API基础上的。

1.2.2 伸缩、可扩展、插件化

  RavenDB具有非常高的可伸缩性。支持Multi-tenancy (多用户数据隔离),以及不同的同步类型,还可以根据需要支持分区分片等等。可以对RavenDB进行扩展,目前已有的插件如:触发器,编码器/解码器,任务调度,编译扩展,分析器,加密,压缩等等。Multi-tenancy翻译有点别扭,这里解释一下:Multi-tenancy 使每个客户组织都工作在一个为其定制好的虚拟软件或者解决方案实例中,并认为自己在独享环境。Multi-tenancy 与多软件实例体系结构不同,多软件实例结构拥有多个软件实例并且每个实例服务于一个客户组织,而 Multi-tenancy 结构是由一个软件实例为所有的客户组织提供服务。多软件实例结构物理上隔离客户组织的数据,而 Multi-tenancy 环境中的软件或者解决方案逻辑上隔离客户组织的数据和配置。

1.2.3 性能与安全

自动调优,智能索引,快速读取优化,不会被锁,多级缓存支持。 ACID事务支持,自动批处理,没有锁,客户端和服务器端连接保护。

授权(文档级,用户/用户组),身份验证(使用Windows身份验证或OAuth API来进行认证),数据加密(可以加密内容数据和索引数据),兼容FIPS(联邦信息处理标准)。

1.2.4 其他

全文搜索(基于Lucene,可以使用Lucene的内置特性,支持自定义分词器/分析器,与标准查询无缝集成),RavenFS分布式虚拟文件系统(同步,搜索,版本控制,加密等)

2.RavenDB安装

说了这么多,那总得干点实际的对吧,无码无真相,那么就一起来看看如何搭建环境,以及搞个Demo玩玩呢。注意第一次玩下载安装包好一点。图形化界面安装,比较容易懂,我第一次搞的时候没有用安装方式。

2.1 下载Windows安装包

在http://ravendb.net/downloads页面下载最新的稳定的.NET工具包,目前为止.NET平台最稳定的版本为3.0.30115:

有时候下载比较慢,我使用百度云共享了一份,有需要的下载:链接:http://pan.baidu.com/s/1eSyNyqm 密码:o2k6

2.2 安装步骤

这种Windows安装就很简单了,不过多说,这里只说明几个重点问题:

1.安装之前安装.NET Framework 4.0这是必不可少的哦;

2.RavenDB可以在不同的模式下运行,如Windows服务,IIS应用程序;

3.安装的时候如果是Production/Test 是需要授权文件的,因为生产环境需要完善的功能,授权文件可以用邮件获取:support@hibernatingrhinos.com,商业授权是有服务支持的,当然是需要收费的。 如果是Development模式,则是对所有用户开放的,没有任何功能限制。我安装的时候选择的是Development。

4.如果开发机没有安装IIS,只会安装Windows 服务哦。我是Win10机器,由于基本不搞Web开发,所以IIS没有安装。

5.配置好,数据库相关文件路径,安装好后可以在系统服务里面看到RavenDB服务已经在运行了。

官方安装指南地址:http://ravendb.net/docs/article-page/3.0/csharp/server/installation/using-installer

2.3 RavenDB Studio初体验

安装好后,先别慌打开VS哦。先好好看文章。上面的2.2中,我们选择的端口为8080,那么在开发环境中,打开浏览器输入这个:http://localhost:8080

进入RavenDB的Studio数据库管理界面哦。BS形式的,还不错,由于刚开始没有数据库,当你打开的时候,会提示你新建数据库。如下图:

设置好后,如果选择了加密,还会跳出加密选择对话框,如下图:

添加好后,就进入到了Studio的界面,看看总的,功能还很多呢,值得好好研究一下,今天先打住把,希望更多的人研究并分享。

  

3.C#开发初体验

  环境搞好了,那可以打开VS干一票了。由于我们下载的安装包里面没有.NET驱动,不过NuGet把一切都准备好了。新建项目啥就不说了,打开NuGet,搜索RevenDB.Client,如下图:

  安装上之后。引用命名空间,话说这里很多新人不知道添加一个DLL后默认的命名空间是啥,这里就多说一句吧。右键添加的DLL,选择“ 在对象浏览器中查看”,然后会打开你选择的DLL的相关结构,展开你要选择的DLL,一目了然了。我们添加命名空间:


    注意,我们这里为了便于查询,加了Id字段,实际上,每个Document都是有一个默认的ID的,即使你不加也会给你分配值。看看简单的新增修改代码:


    我们看看数据库管理界面,系统会默认新建Northwind数据库。

其他操作我们暂且就放过吧,有兴趣大家自己尝试一下,官方的文档非常全面,系统大家看懂后能写文章出来,这样让其他人少走弯路。

4.RavenDB资源

RavenDB官网:http://ravendb.net

GitHub主页:https://github.com/ravendb/ravendb

RavenDB官网文档:http://ravendb.net/docs/article-page/3.0/csharp/start/getting-started

本文RavenDB的代码:链接:http://pan.baidu.com/s/1slQRp5F 密码:g3ep

RavenDB书籍之打包:链接:http://pan.baidu.com/s/1skZy5e1 密码:2e6k

RavenDB 最新版下载:链接:http://pan.baidu.com/s/1eSyNyqm 密码:o2k6

原文地址:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_RavenDB_Intro.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

文档数据库RavenDB-介绍与初体验相关推荐

  1. 一、Scoop介绍与初体验

    Scoop--强大的Windows命令行包管理工具 说在前面的话:本文主要写给基础一般的读者,所以有很多解释说明,请各位大佬忽略这些看起来很没用的解释, 补充,代码块里的注释要详细看,CSDN代码样式 ...

  2. ES6新特性_ES6语法糖class介绍与初体验_就是个语法糖而已---JavaScript_ECMAScript_ES6-ES11新特性工作笔记033

    然后我们看es6中的class,es6中引入这个class这个概念,为了让js的写法更加的 面向对象,写起来方便好理解一些. 其实就是个语法糖而已,他的这个功能,es5的语法都能实现. . 可以看看e ...

  3. 联想服务器型号介绍,EasyStartup初体验_ThinkServer RD630 S2620 4/300AHROD_服务器评测与技术-中关村在线...

    作为服务器来说,再强大的硬件性能,也离不开高效.灵活.简便的系统工具对其进行管理和部署.联想ThinkServer RD630依托联想著名的ThinkServer EasyStartup导航工具,有助 ...

  4. React 360 初体验介绍与环境搭建

    React 360 初体验介绍 从这章节内容呢,我们来学习并了解下什么是react 360,并使用它来开发一个360度可旋转大屏的案例项目.接下来,我们就一起来逐步揭开它神秘的面纱吧! 我们本章节将会 ...

  5. web安全最亲密的战友Burp Suite—网络攻防常用工具介绍--burp suit工具初体验一

    本文是我的免费专栏<网络攻防常用工具介绍>的第一篇文章 磨刀不误砍柴工! 在介绍攻防技术时,突然意识基础工具的使用很容易会被忽略,但是对不熟悉的同学来说,这将会极大影响该领域的学习. 所以 ...

  6. 苹果电脑安装python3密码_mac系统安装Python3初体验

    前沿 对于iOS开发不要随便拆卸系统自带的Python,因为有很多 library 还是使用 Python2.7. 1 安装Xcode 1.1 App Store 搜索Xcode 并安装 1.2 安装 ...

  7. 小程序 缩放_缩放流星应用程序的初体验

    小程序 缩放 by Elie Steinbock 埃莉·斯坦博克(Elie Steinbock) 缩放流星应用程序的初体验 (First Experiences Scaling a Meteor Ap ...

  8. Windows Embedded Standard开发初体验(二)

    支持Silverlight的Windows Embedded Standard 好了,完成安装之后,我们就可以来做Windows Embedded Standard的第一个操作系统镜像了.在开始菜单中 ...

  9. 深度探索Hyperledger技术与应用之超级账本初体验(附部署代码)

    2019独角兽企业重金招聘Python工程师标准>>> 本章零基础地介绍了如何快速体验超级账本搭建的区块链网络,我们先绕过了比较复杂的初始化配置,用官方提供的fabric-sampl ...

最新文章

  1. 从实例一步一步入门学习SpringCloud的Eureka、Ribbon、Feign、熔断器、Zuul的简单使用(附代码下载)
  2. [Luogu 3258] JLOI2014 松鼠的新家
  3. 大型打脸现场!被藐视的少女摇身一变成为“抽象代数之母”,哲学教授只能跪地喊爸爸...
  4. 操作系统(八)进程管理——进程同步
  5. python离散化方法_python中字符串离散化的例子
  6. pythoninit_Python __init__.py文件的作用
  7. 案例分享:Windows Phone上的移动浏览体验
  8. CBoard项目学习
  9. 微型计算机系统评课,微机课评课稿.doc
  10. 【通信系统信道估计】
  11. 评分卡模型python实现
  12. Telink 825x 蓝牙开发笔记1
  13. QT中的.pro文件,以及.pri .prj .prl文件说明
  14. 稳坐青梅零食第一宝座,溜溜梅凭什么?
  15. 1395786-30-7,DBCO Maleimide,DBCO-Mal
  16. vue中防止按钮重复点击提交的方法
  17. 高温寿命试验气候环境模拟长寿命试验
  18. 大国重器“兵器谱”,了解一下
  19. 【历史上的今天】8月19日:大型计算机先驱和小型机之父诞生;中国雅虎邮箱成历史
  20. JavaWeb学习之入门

热门文章

  1. XMPP聊天之Openfire 的安装和配置---Mac OS
  2. 快速配置Ehcache
  3. GitHub Copilot 现已登陆 Visual Studio!
  4. 如何通过 C# kill 指定进程?
  5. 如何实现 asp.net core 安全优雅退出 ?
  6. WPF实现数据拾取器
  7. 【开源框架】:解决方案级别的代码生成器 WebFirst
  8. .NET 6 新特性 WaitAsync
  9. 听说过Netflix的Chaos Monkey吗?不用羡慕,我们.NET也有
  10. [Abp 源码分析]ASP.NET Core 集成