Tải bản đầy đủ (.pdf) (35 trang)

bài 5 quản lý dữ liệu sharepoint

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (485.27 KB, 35 trang )

Bài 5:
Quản lý dữ liệu SharePoint
Hệ thống bài cũ
Tìm hiểu ADO.NET Data Services và REST trên
SharePoint
Tìm hiểu các thủ tục thao tác dữ liệu SharePoint sử dụng
ADO.NET Data Services
Quản lý dữ liệu SharePoint
2
Nội dung bài học
Tìm hiểu Events (sự kiện) trong SharePoint 2010
Truy vấn dữ liệu sử dụng CAML
Truy vấn dữ liệu sử dụng LINQ to SharePoint
Quản lý dữ liệu SharePoint
3
Sự kiện trong SharePoint
Sự kiện (Event) trong SharePoint là Microsoft .NET
assembly chứa một hoặc nhiều lớp xử lý sự kiện xảy ra
trên SharePoint
Ngăn chặn việc xóa công
việc khi chưa hoàn
thành
Quản lý dữ liệu SharePoint
4
Giám sát mọ i thay đổi
liên quan đến công việc
Điều chỉnh quy trình xử
lý khi một công việc có
độ ưu tiên thay đổi đến
mức cao
Ngăn chặ n việc xóa một


trường dữ liệu khỏi List
Before Event (Synchronous)
Được đặt tên với kết thúc là …ing
Vd: ItemAdding
Sự kiện này xảy ra trước khi sự kiện trên SharePoint
thực thi và trước khi SharePoint lưu dữ liệu xuống CSDL
Hỗ trợ cơ chế từ chối thực thi thông qua e.Cancel = true
Thường dùng để phê chuẩn dữ liệu trên SharePoint
Được đặt tên với kết thúc là …ing
Vd: ItemAdding
Sự kiện này xảy ra trước khi sự kiện trên SharePoint
thực thi và trước khi SharePoint lưu dữ liệu xuống CSDL
Hỗ trợ cơ chế từ chối thực thi thông qua e.Cancel = true
Thường dùng để phê chuẩn dữ liệu trên SharePoint
Quản lý dữ liệu SharePoint
5
Before Event (Synchronous)
Synchronous (đồng bộ) Event:
Là sự kiện trên SharePoint mà được thực thi ngay khi và
trong cùng một thread (luồng hay tiến trình) với hành
động gây nên sự kiện đó
Toàn bộ Before event là Synchronous event.
Quản lý dữ liệu SharePoint
6
After Event (Asynchronous)
Được đặt tên với kết thúc là …ed
Vd: ItemAdded
Sự kiện này xảy ra sau khi sự kiện trên SharePoint đã
thực thi và dữ liệu đã được ghi xuống CSDL
Không hỗ trợ cơ chế từ chối sự kiện

Việc thực thi sự kiện này là không đồng bộ
Được đặt tên với kết thúc là …ed
Vd: ItemAdded
Sự kiện này xảy ra sau khi sự kiện trên SharePoint đã
thực thi và dữ liệu đã được ghi xuống CSDL
Không hỗ trợ cơ chế từ chối sự kiện
Việc thực thi sự kiện này là không đồng bộ
Quản lý dữ liệu SharePoint
7
After Event (Asynchronous)
Asynchronous (không đồng bộ) Event
Là sự kiện trên SharePoint mà được thực thi trên một
thread (luồng hay tiến trình) khác với hành động gây nên
sự kiện đó và việc thực thi này có thể xảy ra sau một thời
gian so với hành động gây nên sự kiện.
Asynchronous (không đồng bộ) Event
Là sự kiện trên SharePoint mà được thực thi trên một
thread (luồng hay tiến trình) khác với hành động gây nên
sự kiện đó và việc thực thi này có thể xảy ra sau một thời
gian so với hành động gây nên sự kiện.
Quản lý dữ liệu SharePoint
8
Sự kiện trong SharePoint 2010
Event Host: Các đối tượng trên SharePoint có thể viết sự
kiện do người dùng định nghĩa bao gồm
Site Collections:
Bao gồm các sự kiện: Xóa site collection
Sites:
Bao gồm các sự kiện: Tạo, xóa, thay đổi URL của site…
Lists:

Bao gồm các sự kiện: Tạo, xóa, nhận email…của List hay
tạo, sửa, xóa, check-in, check-out…của List item
Workflows:
Bao gồm các sự kiện: Khởi động, hoàn thành, tạm dừng
workflow…
Event Host: Các đối tượng trên SharePoint có thể viết sự
kiện do người dùng định nghĩa bao gồm
Site Collections:
Bao gồm các sự kiện: Xóa site collection
Sites:
Bao gồm các sự kiện: Tạo, xóa, thay đổi URL của site…
Lists:
Bao gồm các sự kiện: Tạo, xóa, nhận email…của List hay
tạo, sửa, xóa, check-in, check-out…của List item
Workflows:
Bao gồm các sự kiện: Khởi động, hoàn thành, tạm dừng
workflow…
Quản lý dữ liệu SharePoint
9
Các loại sự kiện trong
SharePoint 2010
List Events:
Các sự kiện xảy ra cho List:
List Item Events:
Các sự kiện xảy ra đối với item trong list hay document
trong document library
List Email Events
Các sẽ kiện xảy ra đối với quá trình nhận email của list
Web Events
Các sự kiện xảy ra đối với site

List Workflow Events
Các sự kiện xảy ra đối với Workflow
List Events:
Các sự kiện xảy ra cho List:
List Item Events:
Các sự kiện xảy ra đối với item trong list hay document
trong document library
List Email Events
Các sẽ kiện xảy ra đối với quá trình nhận email của list
Web Events
Các sự kiện xảy ra đối với site
List Workflow Events
Các sự kiện xảy ra đối với Workflow
Quản lý dữ liệu SharePoint
10
Tham khảo: />Sự kiện trong SharePoint 2010
Lớp Event receiver
Host
Events được hỗ trợ
SPWebEventReceiver
SPSite, SPWeb
SiteDeleting, SiteDeleted,
WebAdding, WebProvisioned,
WebDeleting, WebDeleted,
WebMoving, WebMoved,
SPListEventReceiver
(lists)
SPSite, SPWeb
ListAdding, ListAdded,
ListDeleting, ListDeleted

Quản lý dữ liệu SharePoint
11
SPListEventReceiver
(lists)
SPSite, SPWeb
ListAdding, ListAdded,
ListDeleting, ListDeleted
SPListEventReceiver
(fields)
SPSite, SPWeb,
SPList,
SPContentType
FieldAdding, FieldAdded,
FieldDeleting, FieldDeleted,
FieldUpdating, FieldUpdated,
SPEmailEventReceiver
SPSite, SPWeb,
SPList
EmailReceived,
Tham khảo: />Sự kiện trong SharePoint 2010
Lớp Event
receiver
Host
Events được hỗ trợ
SPItemEventRec
eiver
SPSite, SPWeb,
SPList,
SPContentType
ItemAdding, ItemAdded, ItemDeleting,

ItemDeleted, ItemUpdating, ItemUpdated,
ItemFileConverted, ItemFileMoving,
ItemFileMoved, ItemCheckingIn,
ItemCheckedIn, ItemCheckingOut,
ItemCheckedOut, ItemAttachmentAdding,
ItemAttachmentAdded,
ItemAttachmentDeleting,
ItemAttachmentDeleted
Quản lý dữ liệu SharePoint
12
ItemAdding, ItemAdded, ItemDeleting,
ItemDeleted, ItemUpdating, ItemUpdated,
ItemFileConverted, ItemFileMoving,
ItemFileMoved, ItemCheckingIn,
ItemCheckedIn, ItemCheckingOut,
ItemCheckedOut, ItemAttachmentAdding,
ItemAttachmentAdded,
ItemAttachmentDeleting,
ItemAttachmentDeleted
SPWorkflowEve
ntReceiver
SPSite, SPWeb,
SPList,
SPContentType
WorkflowStarting, WorkflowStarted,
WorkflowCompleted,
WorkflowPostponed,
Khai báo sự kiện trong Element.xml
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns=" /><Receivers ListTemplateId="104">

<Receiver>
<Name>EventReceiver1ItemAdding</Name>
<Type>ItemAdding</Type>
<Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
<Class>Lab05.EventReceiver.EventReceiver1</Class>
<SequenceNumber>10000</SequenceNumber>
</Receiver>
</Receivers>
</Elements>
Quản lý dữ liệu SharePoint
13
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns=" /><Receivers ListTemplateId="104">
<Receiver>
<Name>EventReceiver1ItemAdding</Name>
<Type>ItemAdding</Type>
<Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
<Class>Lab05.EventReceiver.EventReceiver1</Class>
<SequenceNumber>10000</SequenceNumber>
</Receiver>
</Receivers>
</Elements>
Receivers element
Attribute
Mô tả
ListTemplateId
Chỉ ra Event sẽ áp dụng cho loại List nào
ListTemplateOwner
Tùy chọn
ListUrl

Chỉ ra URL của list mà Event sẽ áp dụng
cho
Quản lý dữ liệu SharePoint
14
Chỉ ra URL của list mà Event sẽ áp dụng
cho
RootWebOnly
Tùy chọn kiểu Boolean. True nếu Event
chỉ áp dụng cho Root Web
Scope
Phạm vi triển khai Event. Có thể là
- Site: Áp dụng cho toàn Site Collection
- Web: Chỉ áp dụng cho Web site
Tham khảo: />SharePoint Events trong VS2010
Quản lý dữ liệu SharePoint
15
DEMO
Demo:
Viết một Event Receiver sử dụng Visual Studio 2010
Quản lý dữ liệu SharePoint
16
Truy vấn CAML
CAML (Collaborative Application Markup Language): là
một ngôn ngữ dựa trên XML được sử dụng trong
SharePoint để định nghĩa các trường dữ liệu (fields) hay
các View được sử dụng trên SharePoint List và Site
CAML cũng được sử dụng để truy vấn dữ liệu trên
SharePoint
CAML (Collaborative Application Markup Language): là
một ngôn ngữ dựa trên XML được sử dụng trong

SharePoint để định nghĩa các trường dữ liệu (fields) hay
các View được sử dụng trên SharePoint List và Site
CAML cũng được sử dụng để truy vấn dữ liệu trên
SharePoint
Quản lý dữ liệu SharePoint
17
Các thành phần trong
truy vấn CAML
Thành phần
Mô tả
And
Nhóm nhiều điều kiện
BeginsWith
Tìm kiếm chuỗi ký tự mà bắt đầu với
Contains
Tìm kiếm chuỗi có chứa
Eq
Toán từ so sánh bằng
FieldRef
Tham chiếu tới một Field
FieldRef
Tham chiếu tới một Field
Geq
Lớn hơ n hoặc bằng
GroupBy
Nhóm kết quả nhận đượ c
Gt
Lớn hơ n
IsNotNull
Không được rỗng

IsNull
Rỗng
Quản lý dữ liệu SharePoint
18
Tham khảo: />Các thành phần trong
truy vấn CAML
Thành phần
Mô tả
Leq
Nhỏ hơn hoặc bằng
Lt
Nhỏ hơn
Neq
Không bằng
Now
Thời gian hiện tại
Quản lý dữ liệu SharePoint
19
Now
Thời gian hiện tại
Or
Hoặc
OrderBy
Sắp xếp kết quả
Today
Ngày hiện tại
TodayIso
Ngày hiện tại với định dạng ISO
Where
Lọc

Tham khảo: />Ví dụ truy vấn CAML
<Query>
<OrderBy>
<FieldRef Name="Modified" Ascending="FALSE"></FieldRef>
</OrderBy>
<Where>
<Or>
<Neq>
<FieldRef Name="Status"></FieldRef>
<Value Type="Text">Completed</Value>
</Neq>
<IsNull>
<FieldRef Name="Status"></FieldRef>
</IsNull>
</Or>
</Where>
</Query>
<Query>
<OrderBy>
<FieldRef Name="Modified" Ascending="FALSE"></FieldRef>
</OrderBy>
<Where>
<Or>
<Neq>
<FieldRef Name="Status"></FieldRef>
<Value Type="Text">Completed</Value>
</Neq>
<IsNull>
<FieldRef Name="Status"></FieldRef>
</IsNull>

</Or>
</Where>
</Query>
Quản lý dữ liệu SharePoint
20
<Query>
<OrderBy>
<FieldRef Name="Modified" Ascending="FALSE"></FieldRef>
</OrderBy>
<Where>
<Or>
<Neq>
<FieldRef Name="Status"></FieldRef>
<Value Type="Text">Completed</Value>
</Neq>
<IsNull>
<FieldRef Name="Status"></FieldRef>
</IsNull>
</Or>
</Where>
</Query>
<Query>
<OrderBy>
<FieldRef Name="Modified" Ascending="FALSE"></FieldRef>
</OrderBy>
<Where>
<Or>
<Neq>
<FieldRef Name="Status"></FieldRef>
<Value Type="Text">Completed</Value>

</Neq>
<IsNull>
<FieldRef Name="Status"></FieldRef>
</IsNull>
</Or>
</Where>
</Query>
DEMO
Demo:
Ứng dụng Console truy vấn dữ liệu SharePoint sử dụng
CAML
Quản lý dữ liệu SharePoint
21
Truy vấn LINQ to SharePoint
LINQ to SharePoint Provider được định nghĩa trong
namespace Microsoft.SharePoint.Linq.
SharePoint thực hiện việc chuyển truy vấn dưới dạng
LINQ sang truy vấn dưới dạng CAML trước khi thực thi.
LINQ to SharePoint là một cách thức để truy vấn dữ liệu
SharePoint mà không phải sử dụng CAML.
LINQ to SharePoint Provider được định nghĩa trong
namespace Microsoft.SharePoint.Linq.
SharePoint thực hiện việc chuyển truy vấn dưới dạng
LINQ sang truy vấn dưới dạng CAML trước khi thực thi.
LINQ to SharePoint là một cách thức để truy vấn dữ liệu
SharePoint mà không phải sử dụng CAML.
Quản lý dữ liệu SharePoint
22
Truy vấn LINQ to SharePoint
Xây dựng dựa trên nền tảng và cú pháp LINQ (tương tự

như LINQ to SQL hay LINQ to Object trong Microsoft
.NET framework), dành riêng để truy vấn dữ liệu
SharePoint
Chỉ hoạt động cho các ứng dụng Server-side (phía
server)
Để truy vấn LINQ dữ liệu SharePoint từ phía Client sử
dụng ADO.NET Data Services
Xây dựng dựa trên nền tảng và cú pháp LINQ (tương tự
như LINQ to SQL hay LINQ to Object trong Microsoft
.NET framework), dành riêng để truy vấn dữ liệu
SharePoint
Chỉ hoạt động cho các ứng dụng Server-side (phía
server)
Để truy vấn LINQ dữ liệu SharePoint từ phía Client sử
dụng ADO.NET Data Services
Quản lý dữ liệu SharePoint
23
Sử dụng LINQ to SharePoint
Tạo các lớp
thực thể
Tạo
DataContext
Viết truy
vấn
Quản lý dữ liệu SharePoint
24
Tạo các lớp
thực thể
Tạo
DataContext

Viết truy
vấn
Tạo các lớp thực thể
Tự động tạo các lớp thực thể tương ứng với các
Lists/Libraries trên SharePoint sử dụng công cụ
SPMetal.exe
spmetal /web:<url> /code:Projects.cs
Tự động tạo các lớp cho một hoặc nhiều List
Tự động tạo đối tượng DataContext
Tự động tạo các lớp thực thể tương ứng với các
Lists/Libraries trên SharePoint sử dụng công cụ
SPMetal.exe
spmetal /web:<url> /code:Projects.cs
Tự động tạo các lớp cho một hoặc nhiều List
Tự động tạo đối tượng DataContext
Quản lý dữ liệu SharePoint
25

×