SlideShare une entreprise Scribd logo
1  sur  72
Mongo DB 簡介
What is NoSQL?Why NoSQL
MongoDB Introduction
MongoDB HA
MongoDB C# Driver
MongoDB Install & Setup
What is NoSQL?Why NoSQL
MongoDB Introduction
MongoDB HA
MongoDB C# Driver
MongoDB Install & Setup
Relational Database的瓶頸
0 Lock機制保證ACID
0 Query cache為Table等級
0 Shema 固定
0 連線數無法應付訪問量的增加
0 資料量大時IO壓力沉重
0 未來連線數只會越來越大,資料量只會越來越多
0 擴展不易
RDB+Memcached
0 傳統的文件快取不能多台Server共享
0 大量的的小資料快取還是有很大的IO壓力
0 內部網路速度越來越快
0 記憶體越來越便宜
0 Memcached變成一種很流行很實用的技術
Memcached(1/3)
Memcached(2/3)
Memcached

Memcached

演算法

函式庫

應用程式

Memcached
Memcached(3/3)
0 高性能
0 分散式儲存
0 Name-Value Pair
0 Key 的長度被限制在 250 characters
0 儲存的資料不能超過 1 megabyte
0 沒有分散式運算控制器,透過儲存時的演算法達成分

散式
0 只能分擔讀取的壓力
NoSQL(1/6)
0 去掉Relation DB的關聯特性,不嚴謹的保證ACID
0 數據間無關聯,可分散式儲存,且增加擴展性
0 不用考慮關聯性,增加讀寫性能
0 Cache為記錄級的,非table級,粒度較小
0 無固定的Schema,除去大量資料在修改schema時的

效能影響
0 節省開發成本及維護成本
0 不支援SQL
0 不保證Transaction
NoSQL(2/6)
0 適合
0 大量寫入跟更新的資料,資料無需進行關聯式操作,
EX:LOG類型,使用者操作紀錄、系統運行記錄,簡訊
發送記錄
0 大尺寸但低價值的資料,NoSQL成本較低。
0 需要大量分散式存取的資料,可支援MapReduce,存取
數十或數百台資料伺服器
0 不適合
0 交易一致性需求高的, NoSQL不嚴謹保證ACID
0 需要關聯性儲存的資料
0 要使用傳統SQL的solution
NoSQL(3/6)
儲存類型

NoSQL DB

Doucument MongoDB(10 gen)
CouchDB(Apache)

特性
使用JSON格式來儲存,內容為Document
型,因此可以對某些屬性建立索引,來
實現一些RDB的功能

Row

Hbase(Hadoop)
使用row方式來儲存,最大特性是方便儲
Cassandra(Facebook) 存結構化和半結構化數據,方便做數據
Hypertable
壓縮,針對一列或某幾列的查詢有很大
的IO優勢

Key-Value

Redis(VMware)
Flare(green.jp)
SimpleDB(Amazon)

可透過鍵值快速找的值,對值的內容格
式不加以限制

Graph

Neo4J
FlockDB(Twitter)

方便用來儲存大量的圖片數據
NoSQL(4/6)
0 RDB已死?
0 NoSQL vs. RDB
0 功能
0 性能
0 擴展
0 NoSQL+RDB
0 選擇適合的NoSQL
0 資料結構、數據特性
0 Insert、Update的比例
0 查詢的需求
NoSQL(5/6)
0 RDB專門負責處理擅長的關係存儲,NoSQL作為資

料的存儲
0 節省RDB的IO開銷
0 提高SQL cache的hit rate
0 提昇RDB主從同步效率
0 提昇RDB備份與恢復效率
0 提高擴展性及系統承載量
NoSQL(6/6)

NOSQL
What is NoSQL?Why NoSQL
MongoDB Introduction
MongoDB HA
MongoDB C# Driver
MongoDB Install & Setup
MongoDB(1/3)
0 open source
0 C++開發
0 高性能
0 無Schema
0 Doucument儲存
0 存儲格式為BSON(一種JSON的擴展)
0 支持RUBY,PYTHON,JAVA,PHP,C++,C#等多種語言
MongoDB(2/3)
0 支援索引的建立
0 支援動態查詢
0 支援replica與Sharding
0 使用高效的二進位資料存儲,包括大型物件(如影

片)
0 BSON格式的資料(文檔)存儲有尺寸限制,最大為16M
0 MongoDB可運行在Linux、Windows或OS X平台,
支援32位和64位應用,默認埠為27017。推薦運行在
64位平台,因為MongoDB在32位元模式運行時支援
的最大檔尺寸為2GB
MongoDB(3/3)
0 Memory-mapped file
0 服務本身佔據很少資源、但Memory-mapped會佔用

大量內存。
MongoDB結構(1/7)
0 邏輯結構關系對比
 關係型資料庫:MSSQL資料庫(database)、表

(table)、記錄(rows) 三個層次概念組成。
 非關係型數據庫:MongoDB 資料庫(database)、集合
(collection)、文檔對象(document)三個層次概念組成。
 MongoDB 裡的集合對應於關係型數據庫裡的表,但是
集合中沒有列、行和關係的概念,集合中只有
document,一個document就相當與一條記錄,這實現
了無Schema的特點。
MongoDB結構(2/7)
MongoDB結構(3/7)
0 MongoDB的document使用BSON(Binary JSON)

來組織資料,BSON類似於JSON,JSON只是一種
簡單的表示資料的方式,只包含了6種資料類型(null、
布林、數位、字串、陣列及物件),不能完全滿足複
雜的需要,因此,BSON還提供日期、32位元數字、
64位元數位等類型
MongoDB結構(4/7)
0 null

null類型用於表示空值或不存在的欄位
如:{“one”:null}
0 boolean

布林類型有兩種值,’true’和’false’
如:{“one”:true}
0 32位元整數

mongoDB的控制台使用JS引擎進行輸入,而JS僅支
持64位浮點數,所以32位元整數將會被自動轉義。
0 64位元整數

64位元整數與32位元整數一樣,在MongoDB控制台使用
時,會轉義成64位浮點數
MongoDB結構(5/7)
0 64位浮點數

MongoDB控制台數位的預設類型。
如:{“one”:2.02} {“one”:10}
0 字符串

UTF-8字串都可以表示為字串類型的資料。
如:{“one”:”Hello World”}
MongoDB結構(6/7)
0 ObjectId 類型

對象id是文檔中唯一的12位的ID
0|1|2|3|4|5|6|7|8|9|10|11
時間戳記 |機器 | PID | 計數器
如:ObjectId("4eae239f63520362e051e7fd")
0 日期

注意:使用的時候要加上new
如:{“one”:new Date()}
0 正則運算式

文檔鍵值可以包含規則運算式,其規則運算式採用JS語法
來表示。
如:{“one”:/ho/i}
MongoDB結構(7/7)
0 code

文檔中可以包含JS code
如:{“one”:function(){/*………….*/}}
0

Array
文檔中鍵值可以表示為陣列,在陣列內還可以嵌套陣列;
如:{“x”:[“a”,”b”,[“c”,”d”]]}
0 內嵌document

document可以包含別的document
如:{“x”:{“name”:”Tom”,”age”:20}}
基本操作(1/6)
> db.users.insert({"_id":1,"name":"mongo"})
> show dbs
admin (empty)
local (empty)
mydb 0.0625GB
> show collections
system.indexes
users
> db.users.find()
{ "_id" : 1, "name" : "mongo" }
基本操作(2/6)
0 儲存在MongoDB 集合中的每個document都有一個默

認的主鍵_id,它必須是唯一的,這個主鍵名稱是固
定的,它可以是MongoDB 支持的任何資料類型,默
認是ObjectId。
0 若沒有指定,則MongoDB會自動產生一個像GUID的
ID
基本操作(3/6)
> a={"name":"caida"} { "name" : "caida" }
> b={"age":24}
{ "age" : 24 }
> db.users.insert(a);
> db.users.save(b);
> db.users.find()
{ "_id" : 1, "name" : "mongo" }
{ "_id" : ObjectId("4eb2a192bf10550b2177b6f7"), "name" : "caida" }
{ "_id" : ObjectId("4eb2a199bf10550b2177b6f8"), "age" : 24 }
基本操作(4/6)
> db.users.remove({"name":"caida"})
> db.users.find()
{ "_id" : 1, "name" : "mongo" }
{ "_id" : ObjectId("4eb2a199bf10550b2177b6f8"), "age" : 24 }

0 db.collname.remove({條件})(不寫條件則刪除所有

記錄)
基本操作(5/6)
> db.users.update({"_id":1},{"name":"nosql"})
> db.users.find()
{ "_id" : 1, "name" : "nosql" }
{ "_id" : ObjectId("4eb2a199bf10550b2177b6f8"), "age" : 24 }

0 db.collname.update({條件},{內容})
基本操作(6/6)
> db.users.find()
{ "_id" : 1, "name" : "nosql" }
{ "_id" : ObjectId("4eb2a199bf10550b2177b6f8"), "age" : 24 }
> db.users.find({"name":"nosql"})
{ "_id" : 1, "name" : "nosql" }

0 db.collname.find({條件})(不寫條件查詢所有的資

料)
GridFS
GridFS是一種在MongoDB中儲存大二進位檔案

的機制,使用GridFS的原因有以下幾種:
 儲存巨大的檔,比如影片、高解析度圖片等。
 GridFS會直接利用已經建立的replica或sharding機制,故

障恢復和擴展都很容易。
 GridFS可以避免使用者上傳內容的檔案系統出現問題,像
是相同目錄中儲存過量數目檔案的問題
 GridFS不產生Disk碎片。
 GridFS 檔案分成檔案資訊和區塊(Chunks) 二個部分,檔
案資訊用來儲存檔案名稱和容量等資訊,而區塊則是將檔
案做分割後儲存,透過分割儲存的方式能夠達到快速讀取
檔案中的任一段資料的功能
What is NoSQL?Why NoSQL
MongoDB Introduction
MongoDB HA
MongoDB C# Driver
MongoDB Install & Setup
Replica Set(1/2)
Replica Set(2/2)
0 利用Replica Set即可完成簡單的failover與load

balance功能
0 最小instance數是兩台,但如果只有兩個instance,
當其中一個instance掛掉只剩一台時,MongoDB為了
避免新寫入的資料會丟失,所以會將整個服務變成唯
讀
0 只有Primary可以寫入資料,Secondary只能讀取資料,
當Primary被寫入資料時,會立即同步至Secondary,
若Primary Node掛掉時,則會由其他Node立即選出
新的Primary
Sharding(1/7)
0 將資料水平切分到不同的物理節點
0 利用更多的硬體資源來解決了單機性能極限的問題
0 數據量超過伺服器的硬碟容量時,就必需做 sharding
0 資水平切分後,會減小每個索引的體積。索引一般都

是 B樹 結構,索引體積減小後,索引深度也會隨之
減小,索引查詢的速度也會隨之提高
0 Mongo的sharding可以動態擴展、自動平衡、統一接
口
0 搭配replica set提高可用性及容錯
Sharding(2/7)
Sharding(3/7)
0 Mongos
0 對用戶端來說,直接訪問的是Mongos
0 它對外的介面就和普通的 mongod 一樣
0 可以使用標準 mongodb 用戶端和驅動進行訪問
0 主要作用是資料路由,定位資料位置,合併查詢結果
0 mongos 節點還負責資料移轉和資料自動平衡,並作為
sharding 集群的管理節點
0 不保存任何資料,可以任意水平擴展,這樣任意一個節
點發生故障都可以很容易的進行容錯移轉
Sharding(4/7)
0 Config
0 config 節點存儲了中繼資料,包括資料的位置,即哪些
資料位於哪些節點,以及集群配置信息
0 config 節點也是普通的 mongod
0 這 3 個 config 節點並非是一個 replica set。它們的資
料同步是由 mongos 執行兩階段提交來保證的
0 config 節點一定程度上實現了高可用。在一個或兩個節
點發生故障時,config 集群會變成唯讀。但此時,整個
sharding 集群仍然可以正常讀寫資料。只是無法進行
資料移轉和自動均衡而已
Sharding(5/7)
0 Shard
0 實際存放資料的資料節點。
0 每個 shard 節點可以是單個 mongod 實例,也可以是
一個 replica set
0 通常在使用 sharding 的時候,都會同時使用 replica
set 來實現高可用,避免單點故障的時候影響服務,及
數據丟失
0 對於每個開啟 sharding 的 db 來說,都會有一個 預設
shard 。初始時,第一個 chunk 就會在那裡建立。新資
料也就會先插入到那個 shard 節點中去。
Sharding(6/7)
Sharding(7/7)
What is NoSQL?Why NoSQL
MongoDB Introduction
MongoDB HA
MongoDB C# Driver
MongoDB Install & Setup
MongoDB C# / .NET Driver
0 http://docs.mongodb.org/ecosystem/drivers/csharp/
0 IDE
0 Visual Studio 2010
0 Visual Studio 2012
0 .NET Versions
0 .NET 3.5
0 .NET 4.0
0 .NET 4.5
0 支援LINQ操作
Get from NuGet
C# Driver (1/)
C# Driver (1/9)
C# Driver (2/9)
C# Driver (3/9)
C# Driver (4/9)
C# Driver (5/9)
C# Driver (6/9)
C# Driver (7/9)
C# Driver (8/9)
C# Driver (9/9)
What is NoSQL?Why NoSQL
MongoDB Introduction
MongoDB HA
MongoDB C# Driver
MongoDB Install & Setup
架構
0 三台instance做replica set
0 三台node的ip分別為

10.20.4.101, 10.20.4.102, 10.20.4.103。
0 Port : 27017
0 監控port : 28017
0 登入時需驗證
下載
0 http://www.mongodb.org/downloads
0 下載64-bit *2008R2+的版本
0 下載完後解壓縮即可
建立資料夾
0 解壓縮完的目錄下需要開一個放資料的目錄跟一個放

log的目錄。
data
logs
0 如果是replica set的話,則必須多開一個放key的目
錄,key是各node之間溝通時認證用的,所以每一台
放的key必須一樣
keykey.txt
安裝服務
0 在每一台的命令提示字元下,執行以下命令
cd C:mongodb-win32-x86_64-2008plus-2.4.5bin
mongod.exe -dbpath "C:mongodb-win32-x86_64-2008plus-2.4.5data" -logpath "C:mongodb-win32-x86_64-2008plus-2.4.5logsmongod.txt" -auth --install --replSet crm2 --keyFile "C:mongodb-win32-x86_642008plus-2.4.5keykey.txt" --rest
net start MongoDB

0 --dbpath是指定db目錄
0 --logpath指定log位置
0 --auth是指定之後連線必須經過認證過程
0 --install則是將服務安裝為windows service形式
0 -replSet crm2則是指定複本集的名稱為crm2
0 --keyFile指定key位置
0 --rest是指打開內建監控網站的rest api
初始化(1/4)
0 在初始化之前,必須確保每台node的port : 27017是

可以互通不被防火牆擋掉的
0 假設我們一開始以10.20.4.102做為Primary,我們就
在10.20.4.102的機器上,執行cmd.exe,並透過
mongo這個指令連進服務。
初始化(2/4)
0 連進服務後,執行rs.initiate()來初始化replica set服務。
0 接著執行rs.add(“10.20.4.101”)將101加入至replica set服務
0 執行rs.add(“10.20.4.103”)將103加入至replica set服務
0 加完之後可以使用rs.conf()來檢視設定
0 也可以使用rs.status()來檢視狀態
初始化(3/4)
初始化(4/4)
0 這樣replica set的初始化就算完成,但預設Secondary

也是無法讀取資料的,所以必須連進101跟103執行
rs.slaveOk() ,讓secondary也可以讀取資料,才能達
到load balance的效果。
帳號設定
0 在primary中執行以下命令
0 use admin
0 db.addUser(“{user}”,”{pwd}”)
0 在執行此行指定以前是不進行帳號密碼驗證的
監控網站(1/2)
監控網站(2/2)
MongoVUE(1/2)
0 GUI管理工具
0 http://www.mongovue.com/downloads/
MongoVUE(2/2)
Mongo db 簡介

Contenu connexe

Tendances

“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
knuthocean
 
Big Data, NoSQL, and MongoDB
Big Data, NoSQL, and MongoDBBig Data, NoSQL, and MongoDB
Big Data, NoSQL, and MongoDB
Monster Supreme
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优
thinkinlamp
 

Tendances (19)

redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
 
RockStor - A Cloud Object System based on Hadoop
RockStor -  A Cloud Object System based on HadoopRockStor -  A Cloud Object System based on Hadoop
RockStor - A Cloud Object System based on Hadoop
 
How to Build Cloud Storage Service Systems
How to Build Cloud Storage Service SystemsHow to Build Cloud Storage Service Systems
How to Build Cloud Storage Service Systems
 
我对后端优化的一点想法
我对后端优化的一点想法我对后端优化的一点想法
我对后端优化的一点想法
 
Buffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracleBuffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracle
 
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
 
MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)
 
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
 
Spark sql培训
Spark sql培训Spark sql培训
Spark sql培训
 
Memcached vs redis
Memcached vs redisMemcached vs redis
Memcached vs redis
 
Couchbase introduction - Chinese
Couchbase introduction - Chinese Couchbase introduction - Chinese
Couchbase introduction - Chinese
 
Big Data, NoSQL, and MongoDB
Big Data, NoSQL, and MongoDBBig Data, NoSQL, and MongoDB
Big Data, NoSQL, and MongoDB
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构
 
Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照
 
Concurrency model for mysql data processing@rubyconf.tw 2012
Concurrency model for mysql data processing@rubyconf.tw 2012Concurrency model for mysql data processing@rubyconf.tw 2012
Concurrency model for mysql data processing@rubyconf.tw 2012
 
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈
 

Similaire à Mongo db 簡介

Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
jasonfuoo
 
Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍
yczealot
 
Mongo db技术交流
Mongo db技术交流Mongo db技术交流
Mongo db技术交流
liuts
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
My own sweet home!
 
Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年
yp_fangdong
 
网站存储经验谈-pdf
网站存储经验谈-pdf网站存储经验谈-pdf
网站存储经验谈-pdf
Yu Lin
 

Similaire à Mongo db 簡介 (20)

MongoDB Basics and Tutorial
MongoDB Basics and TutorialMongoDB Basics and Tutorial
MongoDB Basics and Tutorial
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
善用 MySQL 及 PostgreSQL - RDBMS 的逆襲 - part1
善用 MySQL 及 PostgreSQL - RDBMS 的逆襲 - part1善用 MySQL 及 PostgreSQL - RDBMS 的逆襲 - part1
善用 MySQL 及 PostgreSQL - RDBMS 的逆襲 - part1
 
Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍
 
完全用Nosql轻松打造千万级数据量的微博系统
完全用Nosql轻松打造千万级数据量的微博系统完全用Nosql轻松打造千万级数据量的微博系统
完全用Nosql轻松打造千万级数据量的微博系统
 
Mongo db技术交流
Mongo db技术交流Mongo db技术交流
Mongo db技术交流
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
 
Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年
 
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
 
Jkcn MySQLDB 架构
Jkcn MySQLDB 架构Jkcn MySQLDB 架构
Jkcn MySQLDB 架构
 
分布式存储的元数据设计
分布式存储的元数据设计分布式存储的元数据设计
分布式存储的元数据设计
 
MongoDB gridfs
MongoDB gridfsMongoDB gridfs
MongoDB gridfs
 
110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury
 
内存数据库[1]
内存数据库[1]内存数据库[1]
内存数据库[1]
 
网站存储经验谈pdf
网站存储经验谈pdf网站存储经验谈pdf
网站存储经验谈pdf
 
网站存储经验谈-pdf
网站存储经验谈-pdf网站存储经验谈-pdf
网站存储经验谈-pdf
 
HDFS與MapReduce架構研討
HDFS與MapReduce架構研討HDFS與MapReduce架構研討
HDFS與MapReduce架構研討
 
HDInsight for Microsoft Users
HDInsight for Microsoft UsersHDInsight for Microsoft Users
HDInsight for Microsoft Users
 
MongoDB in SNS
MongoDB in SNSMongoDB in SNS
MongoDB in SNS
 
Sequoia db 技术概述_sacc
Sequoia db 技术概述_saccSequoia db 技术概述_sacc
Sequoia db 技术概述_sacc
 

Plus de 昱劭 劉

設計模式的解析與活用讀後心得
設計模式的解析與活用讀後心得設計模式的解析與活用讀後心得
設計模式的解析與活用讀後心得
昱劭 劉
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium
昱劭 劉
 
Python開發環境建立(使用ECLIPSE)
Python開發環境建立(使用ECLIPSE)Python開發環境建立(使用ECLIPSE)
Python開發環境建立(使用ECLIPSE)
昱劭 劉
 
持續整合與單元測試
持續整合與單元測試持續整合與單元測試
持續整合與單元測試
昱劭 劉
 
透過Nuget管理內部共用元件
透過Nuget管理內部共用元件透過Nuget管理內部共用元件
透過Nuget管理內部共用元件
昱劭 劉
 
Restful & odata using asp.net web api
Restful & odata using asp.net web apiRestful & odata using asp.net web api
Restful & odata using asp.net web api
昱劭 劉
 

Plus de 昱劭 劉 (6)

設計模式的解析與活用讀後心得
設計模式的解析與活用讀後心得設計模式的解析與活用讀後心得
設計模式的解析與活用讀後心得
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium
 
Python開發環境建立(使用ECLIPSE)
Python開發環境建立(使用ECLIPSE)Python開發環境建立(使用ECLIPSE)
Python開發環境建立(使用ECLIPSE)
 
持續整合與單元測試
持續整合與單元測試持續整合與單元測試
持續整合與單元測試
 
透過Nuget管理內部共用元件
透過Nuget管理內部共用元件透過Nuget管理內部共用元件
透過Nuget管理內部共用元件
 
Restful & odata using asp.net web api
Restful & odata using asp.net web apiRestful & odata using asp.net web api
Restful & odata using asp.net web api
 

Mongo db 簡介