环境:win8消费者预览版,vs11,mongodb,win2003,java
考虑:考察了很多nosql数据库,也深入研究了cassandra机制,并尝试编写程序操作了一番。后来在win8 metro群里受教了,在此也非常感谢“无疆乄炎戎”群主的帮助。后改为考虑mongodb,逻辑层选择开发简单快速的框架,所以选择了asp.net mvc,因安装了vs11,所以用了mvc 4。mvc web api主要以rest形式服务,故选择了开源的rest客户端,目前使用RestSharp,不过据群里大侠们讲,很久没有更新了,以后考虑换掉。
1、安装mongodb
下载:http://www.mongodb.org/downloads
选择2.0.4,windows 32位,没有选择Unstable版本。
下载后解压,需要新建data目录,以及data目录下的db目录。
因为32位的系统,mongodb最大支持数据库大小为2G,所以官方推荐64位系统。
以上工作做完后,在命令行里运行
>mongod --dbpath e:\mongodb-2.0.4\data即可
在浏览器里http://localhost:27017/
会显示
You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
至此,安装完毕。
简单配置
# 除了启动时接受命令行参数,MongoDB也可以配置使用一个配置文件,可以以指定使用 -f 或 --config 命令行选项。
mongod -f d:\mongodb-2.0.4\mongodb.conf
# 配置文件范例
# This is an example config file for MongoDB.
dbpath = d:\mongodb-2.0.4\data # 指定数据库路径
logpath = d:\mongodb-2.0.4\mongodb.log # 日志路径
logappend = true # 以追加的方式写日志
port = 27277 # 指定端口号,默认27017
auth = true # 增加验证选项
安全
目前mongodb的安全机制很一般,仅仅在用户权限方面做了些工作(也许我孤陋寡闻,希望不吝赐教)。可以创建只读用户和读取的权限。
默认,mongodb启动是没有授权验证的,需要配置,可以在启动的时候在命令中添加–auth参数。也可以将-auth加入配置文件。mongodb的授权验证是在数据库连接以后。用户权限有两种,一种是数据库管理用户,一种是个体数据库私有用户。
据我看到一位首次接触mongodb的学习过程中,尝试扫描一部分计算机的mongodb的默认连接端口,发现只有很少一部分加了验证。
2、asp.net mvc 4 web api
因为做了小白鼠,所以安装了win8和vs11。看着别人的示例,简单做了个流程,发现比spring的简单多了,基本不需要怎么配置。主要集中学习rest式数据服务。c#操作mongodb,使用官方的客户端api。下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads。不需要源码的,可以直接下载MongoDB.Bson.dll和MongoDB.Driver.dll。接着引用到mvc工程中。
数据库连接字符串:mongodb://fred:foobar@localhost/baz fred:foobar是用户名和密码,baz相当于你建立的数据库,即使没有这个库,在连接的时候会自动建好。
创建:
var db = MongoDatabase.Create(ConfigurationManager.ConnectionStrings["MongoDB_feni"].ConnectionString);
插入数据:
db["testTable"].Insert(new MongoDB.Bson.BsonDocument {
{ "PhotoID", photo.PhotoID },
{ "Name", photo.Name },
{ "Description", photo.Description },
{ "Data", photo.Data },
{ "DateTime", photo.DateTime } });
删除数据:
var query = Query.EQ("PhotoID", photo.PhotoID);
db["testTable"].Remove(query);
查找所有数据:
db["testTable"].FindAll();
web api的相对简单,只需要在里面写点逻辑即可。运行后默认url/api/action....,可以直接在浏览器上测试一下。
3、Rest Client
客户端api选择restSharp,导入dll文件后,即可进行数据服务连接,目前没有考虑安全方面,因其考虑较多,以实现功能为主。
客户端代码从国外一个开源项目中剥离出来。
连接url
//获取所有记录
string url = ConfigurationManager.AppSettings["serviceUrl"];
string requestUrl = string.Format("{0}", url);
RestClient client = new RestClient();
client.BaseUrl = requestUrl;
client.ExecuteAsync(new RestRequest(),
(response) =>
{
foreach (var photo in response.Data)
photo.UploadedOn = new DateTime(photo.UploadedOn.Ticks, DateTimeKind.Utc).ToLocalTime();
listPhotoItem = response.Data;
});
dgPhotos.ItemsSource = listPhotoItem;
4、测试rest 客户端
使用restclient-ui-2.3.3-jar.jar,需要java环境。直接运行即可。
sln下载
http://files.iyunv.com/feni/Projects.part1.rar
http://files.iyunv.com/feni/Projects.part2.rar
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com