SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
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: http://msdn.microsoft.com/en-us/library/gg749858.aspx
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: http://msdn.microsoft.com/en-us/library/gg749858.aspx
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="http://schemas.microsoft.com/sharepoint/">
<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="http://schemas.microsoft.com/sharepoint/">
<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: http://msdn.microsoft.com/en-us/library/ms431081.aspx
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 FieldFieldRef 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: http://msdn.microsoft.com/en-us/library/ms467521.aspx
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: http://msdn.microsoft.com/en-us/library/ms467521.aspx
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
Tạo các lớp thực thể
Add Reference tới Microsoft.SharePoint.Linq.dll
Thêm mã nguồn của Entity được sinh ra từ công cụ
SPMetal vào Visual Studio Project
[ContentTypeAttribute(Name="Announcement", Id="0x0104")]
public partial class Announcement : Item {
[ColumnAttribute(Name="Body", Storage="_body", FieldType="Note")]
public string Body {
get { return this._body; }
set {
if ((value != this._body)) {
this.OnPropertyChanging("Body", this._body);
this._body = value; this.OnPropertyChanged("Body");
}
}
}
Quản lý dữ liệu SharePoint 26
[ContentTypeAttribute(Name="Announcement", Id="0x0104")]
public partial class Announcement : Item {
[ColumnAttribute(Name="Body", Storage="_body", FieldType="Note")]
public string Body {
get { return this._body; }
set {
if ((value != this._body)) {
this.OnPropertyChanging("Body", this._body);
this._body = value; this.OnPropertyChanged("Body");
}
}
}
Tạo đối tượng DataContext
Sử dụng các lớp Entities
Sử dụng đối tượng DataContext để truy cập tới các
Entity
public partial class Lab05DataContext : DataContext {
…
public Lab05DataContext(string requestUrl)
: base(requestUrl)
{
this.OnCreated();
}
…
}
Quản lý dữ liệu SharePoint 27
public partial class Lab05DataContext : DataContext {
…
public Lab05DataContext(string requestUrl)
: base(requestUrl)
{
this.OnCreated();
}
…
}
List có quan hệ
Có thể thực hiện truy vấn chéo giữa các List có quan hệ
Sử dụng thuộc tính Association để khai báo quan hệ giữa
các list (Entity)
[ContentTypeAttribute(Name="Employees", Id="0x0104")]
public partial class Employees : Item {
[AssociationAttribute(Name="Body",
Storage="_project",
MultivalueType=AssociationType.Single
List=“Projects")]
public string Project {
get {…}
set {…}
}
Quản lý dữ liệu SharePoint 28
[ContentTypeAttribute(Name="Employees", Id="0x0104")]
public partial class Employees : Item {
[AssociationAttribute(Name="Body",
Storage="_project",
MultivalueType=AssociationType.Single
List=“Projects")]
public string Project {
get {…}
set {…}
}
List có quan hệ
Truy vấn chéo giữa các list có quan hệ sử dụng cú pháp
LINQ
Ví dụ: List Employees có quan hệ với List Project
var qw = from emp in dc.Employees
where emp.Project.DueDate < DateTime.Now.AddYears(5)
orderby emp.Project.DueDate
select emp;
Quản lý dữ liệu SharePoint 29
var qw = from emp in dc.Employees
where emp.Project.DueDate < DateTime.Now.AddYears(5)
orderby emp.Project.DueDate
select emp;
Sửa đổi dữ liệu
Các thay đổi đối với các đối tượng Entity (List item…)
được kiểm soát bởi LINQ Provider.
Để thực hiện thay đổi, gọi phương thức
SubmitChanges()
Quản lý dữ liệu SharePoint 30
Sửa đổi dữ liệu
// Khởi tạo đối tượng DataContext
DataContext data = new DataContext(SPContext.Current.Web.Url);
// Lấy ra đối tượng Customers list
EntityList<Customer> Customers
= data.GetList<Customer>("Customers");
// Tạo mới một đối tượng Customer
Customer newCustomer = new Customer()
{ CustomerId=36, City="Madrid" };
// Đánh dấu đối tượng này sẽ được thêm vào trong lần Submit tới
Customers.InsertOnSubmit(newCustomer);
// Submit toàn bộ thay đổi
data.SubmitChanges();
Quản lý dữ liệu SharePoint 31
// Khởi tạo đối tượng DataContext
DataContext data = new DataContext(SPContext.Current.Web.Url);
// Lấy ra đối tượng Customers list
EntityList<Customer> Customers
= data.GetList<Customer>("Customers");
// Tạo mới một đối tượng Customer
Customer newCustomer = new Customer()
{ CustomerId=36, City="Madrid" };
// Đánh dấu đối tượng này sẽ được thêm vào trong lần Submit tới
Customers.InsertOnSubmit(newCustomer);
// Submit toàn bộ thay đổi
data.SubmitChanges();
DEMO
Demo:
Ứng dụng Console sử dụng LINQ to SharePoint Provider
để truy vấn dữ liệu SharePoint
Quản lý dữ liệu SharePoint 32
Tổng kết bài học
Chúng ta có thể viết các Event để xử lý các sự kiện được
thực thi trên SharePoint
Có hai loại Event trên SharePoint bao gồm
Before event
After event
CAML được sử dụng như là ngôn ngữ truy vấn dữ liệu
SharePoint
Chúng ta có thể viết các Event để xử lý các sự kiện được
thực thi trên SharePoint
Có hai loại Event trên SharePoint bao gồm
Before event
After event
CAML được sử dụng như là ngôn ngữ truy vấn dữ liệu
SharePoint
Quản lý dữ liệu SharePoint 33
Tổng kết bài học
Ngoài việc sử dụng CAML chúng ta có thể sử dụng LINQ
to SharePoint để truy vấn dữ liệu SharePoint trên môi
trường server.
DataContext là đối tượng trung tâm trong LINQ to
SharePoint để truy vấn dữ liệu
Quản lý dữ liệu SharePoint 34
Tham khảo
http://msdn.microsoft.com/en-us/library/gg749858.aspx
http://msdn.microsoft.com/en-us/library/ee535491.aspx
Quản lý dữ liệu SharePoint 35

Más contenido relacionado

La actualidad más candente

Share point 2010-for-admin-basic-v2
Share point 2010-for-admin-basic-v2Share point 2010-for-admin-basic-v2
Share point 2010-for-admin-basic-v2
Hưng Nguyễn
 
Tu hoc microsoft asp.net
Tu hoc microsoft asp.netTu hoc microsoft asp.net
Tu hoc microsoft asp.net
namhh1984ag
 

La actualidad más candente (13)

Share point 2010-for-admin-basic-v2
Share point 2010-for-admin-basic-v2Share point 2010-for-admin-basic-v2
Share point 2010-for-admin-basic-v2
 
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVC
 
Lap trinh asp.net
Lap trinh asp.netLap trinh asp.net
Lap trinh asp.net
 
Bài 4: Template & điều hướng trang Web - Giáo trình FPT - Có ví dụ kèm theo
Bài 4: Template & điều hướng trang Web - Giáo trình FPT - Có ví dụ kèm theoBài 4: Template & điều hướng trang Web - Giáo trình FPT - Có ví dụ kèm theo
Bài 4: Template & điều hướng trang Web - Giáo trình FPT - Có ví dụ kèm theo
 
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
 
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
 
Slide Bao Cao Thuc Tap
Slide Bao Cao Thuc TapSlide Bao Cao Thuc Tap
Slide Bao Cao Thuc Tap
 
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
 
01 tong-quan-ado
01 tong-quan-ado01 tong-quan-ado
01 tong-quan-ado
 
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
 
Bài 6: Điều khiển DetailsView, FormView, ListView, DataPager
Bài 6: Điều khiển DetailsView, FormView, ListView, DataPagerBài 6: Điều khiển DetailsView, FormView, ListView, DataPager
Bài 6: Điều khiển DetailsView, FormView, ListView, DataPager
 
Tu hoc microsoft asp.net
Tu hoc microsoft asp.netTu hoc microsoft asp.net
Tu hoc microsoft asp.net
 

Destacado

SharePoint 2010 Online for Developer
SharePoint 2010 Online for DeveloperSharePoint 2010 Online for Developer
SharePoint 2010 Online for Developer
K.Mohamed Faizal
 

Destacado (17)

Hệ thống thông tin quản lý - Bài 8 Phát triển hệ thống thông tin (phần 3)
Hệ thống thông tin quản lý - Bài 8 Phát triển hệ thống thông tin (phần 3)Hệ thống thông tin quản lý - Bài 8 Phát triển hệ thống thông tin (phần 3)
Hệ thống thông tin quản lý - Bài 8 Phát triển hệ thống thông tin (phần 3)
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
Bài 1 Tìm hiểu về Hệ Thống Quản Trị Nội Dung - CMS
Bài 1 Tìm hiểu về Hệ Thống Quản Trị Nội Dung - CMSBài 1 Tìm hiểu về Hệ Thống Quản Trị Nội Dung - CMS
Bài 1 Tìm hiểu về Hệ Thống Quản Trị Nội Dung - CMS
 
Pdf tim hieuc#vaungdung-mastercode.vn
Pdf tim hieuc#vaungdung-mastercode.vnPdf tim hieuc#vaungdung-mastercode.vn
Pdf tim hieuc#vaungdung-mastercode.vn
 
BÀI 5 Tạo app cho thiết bị di động & một số cải tiến cho web di động - Giáo t...
BÀI 5 Tạo app cho thiết bị di động & một số cải tiến cho web di động - Giáo t...BÀI 5 Tạo app cho thiết bị di động & một số cải tiến cho web di động - Giáo t...
BÀI 5 Tạo app cho thiết bị di động & một số cải tiến cho web di động - Giáo t...
 
Bài 11: Công cụ quản trị Server Manager - Giáo trình FPT
Bài 11: Công cụ quản trị Server Manager - Giáo trình FPTBài 11: Công cụ quản trị Server Manager - Giáo trình FPT
Bài 11: Công cụ quản trị Server Manager - Giáo trình FPT
 
Bài 7: Quản trị người dùng thông qua chính sách nhóm - Giáo trình FPT
Bài 7: Quản trị người dùng thông qua chính sách nhóm - Giáo trình FPTBài 7: Quản trị người dùng thông qua chính sách nhóm - Giáo trình FPT
Bài 7: Quản trị người dùng thông qua chính sách nhóm - Giáo trình FPT
 
SharePoint 2010 Online for Developer
SharePoint 2010 Online for DeveloperSharePoint 2010 Online for Developer
SharePoint 2010 Online for Developer
 
SharePoint Migration What do I expect ? (The issues and solutions)
SharePoint Migration What do I expect ? (The issues and solutions)SharePoint Migration What do I expect ? (The issues and solutions)
SharePoint Migration What do I expect ? (The issues and solutions)
 
SharePoint Saturday Stockholm 2015 - SharePoint Online Friend or Foe
SharePoint Saturday Stockholm 2015 - SharePoint Online Friend or FoeSharePoint Saturday Stockholm 2015 - SharePoint Online Friend or Foe
SharePoint Saturday Stockholm 2015 - SharePoint Online Friend or Foe
 
Hệ thống thông tin quản lý - Bài 4 Quản lý HTTT trong doanh nghiệp (phần 2)
Hệ thống thông tin quản lý - Bài 4 Quản lý HTTT trong doanh nghiệp (phần 2)Hệ thống thông tin quản lý - Bài 4 Quản lý HTTT trong doanh nghiệp (phần 2)
Hệ thống thông tin quản lý - Bài 4 Quản lý HTTT trong doanh nghiệp (phần 2)
 
Hệ thống thông tin quản lý - Bài 7 Phát triển hệ thống thông tin (phần 2)
Hệ thống thông tin quản lý - Bài 7 Phát triển hệ thống thông tin (phần 2)Hệ thống thông tin quản lý - Bài 7 Phát triển hệ thống thông tin (phần 2)
Hệ thống thông tin quản lý - Bài 7 Phát triển hệ thống thông tin (phần 2)
 
Bài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng ExtensionBài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng Extension
 
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng webBài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
 
Bài 6 Sử dụng hàm - Giáo trình FPT
Bài 6 Sử dụng hàm - Giáo trình FPTBài 6 Sử dụng hàm - Giáo trình FPT
Bài 6 Sử dụng hàm - Giáo trình FPT
 
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPTBÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
 
Hệ thống thông tin quản lý - Bài 5 Quản lý HTTT trong doanh nghiệp (phần 3)
Hệ thống thông tin quản lý - Bài 5 Quản lý HTTT trong doanh nghiệp (phần 3)Hệ thống thông tin quản lý - Bài 5 Quản lý HTTT trong doanh nghiệp (phần 3)
Hệ thống thông tin quản lý - Bài 5 Quản lý HTTT trong doanh nghiệp (phần 3)
 

Similar a Bài 5: Quản lý dữ liệu SharePoint

Linq n hibernate net-tier
Linq n hibernate net-tierLinq n hibernate net-tier
Linq n hibernate net-tier
Nguyen Tran
 
Slide Web Service
Slide Web ServiceSlide Web Service
Slide Web Service
ask bills
 
Giao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpGiao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharp
ngohanty13
 
Web Services
Web ServicesWeb Services
Web Services
ask bills
 

Similar a Bài 5: Quản lý dữ liệu SharePoint (17)

Bai3 basic servlets_956
Bai3 basic servlets_956Bai3 basic servlets_956
Bai3 basic servlets_956
 
Net06 asp.net applications & state management
Net06 asp.net applications & state managementNet06 asp.net applications & state management
Net06 asp.net applications & state management
 
Asp
AspAsp
Asp
 
Ajax report
Ajax reportAjax report
Ajax report
 
Linq n hibernate net-tier
Linq n hibernate net-tierLinq n hibernate net-tier
Linq n hibernate net-tier
 
Slide 04
Slide 04Slide 04
Slide 04
 
Bài 4 Quản trị domain & hosting Windows - Quản trị website
Bài 4 Quản trị domain & hosting Windows - Quản trị websiteBài 4 Quản trị domain & hosting Windows - Quản trị website
Bài 4 Quản trị domain & hosting Windows - Quản trị website
 
Ung dun web chuong 2
Ung dun web  chuong 2Ung dun web  chuong 2
Ung dun web chuong 2
 
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPTBÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
 
Qt tainguyenso
Qt tainguyensoQt tainguyenso
Qt tainguyenso
 
Asp control
Asp controlAsp control
Asp control
 
Ung dung web chuong 5
Ung dung web  chuong 5Ung dung web  chuong 5
Ung dung web chuong 5
 
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPTBài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
 
Slide Web Service
Slide Web ServiceSlide Web Service
Slide Web Service
 
Giao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpGiao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharp
 
Php 01 modau
Php 01 modauPhp 01 modau
Php 01 modau
 
Web Services
Web ServicesWeb Services
Web Services
 

Más de MasterCode.vn

Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
MasterCode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
MasterCode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
MasterCode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
MasterCode.vn
 

Más de MasterCode.vn (20)

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
 

Bài 5: Quản lý dữ liệu SharePoint

  • 1. Bài 5: Quản lý dữ liệu SharePoint
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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: http://msdn.microsoft.com/en-us/library/gg749858.aspx
  • 11. 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: http://msdn.microsoft.com/en-us/library/gg749858.aspx
  • 12. 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,
  • 13. Khai báo sự kiện trong Element.xml <?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <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="http://schemas.microsoft.com/sharepoint/"> <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>
  • 14. 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: http://msdn.microsoft.com/en-us/library/ms431081.aspx
  • 15. SharePoint Events trong VS2010 Quản lý dữ liệu SharePoint 15
  • 16. DEMO Demo: Viết một Event Receiver sử dụng Visual Studio 2010 Quản lý dữ liệu SharePoint 16
  • 17. 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
  • 18. 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 FieldFieldRef 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: http://msdn.microsoft.com/en-us/library/ms467521.aspx
  • 19. 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: http://msdn.microsoft.com/en-us/library/ms467521.aspx
  • 20. 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>
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. Tạo các lớp thực thể Add Reference tới Microsoft.SharePoint.Linq.dll Thêm mã nguồn của Entity được sinh ra từ công cụ SPMetal vào Visual Studio Project [ContentTypeAttribute(Name="Announcement", Id="0x0104")] public partial class Announcement : Item { [ColumnAttribute(Name="Body", Storage="_body", FieldType="Note")] public string Body { get { return this._body; } set { if ((value != this._body)) { this.OnPropertyChanging("Body", this._body); this._body = value; this.OnPropertyChanged("Body"); } } } Quản lý dữ liệu SharePoint 26 [ContentTypeAttribute(Name="Announcement", Id="0x0104")] public partial class Announcement : Item { [ColumnAttribute(Name="Body", Storage="_body", FieldType="Note")] public string Body { get { return this._body; } set { if ((value != this._body)) { this.OnPropertyChanging("Body", this._body); this._body = value; this.OnPropertyChanged("Body"); } } }
  • 27. Tạo đối tượng DataContext Sử dụng các lớp Entities Sử dụng đối tượng DataContext để truy cập tới các Entity public partial class Lab05DataContext : DataContext { … public Lab05DataContext(string requestUrl) : base(requestUrl) { this.OnCreated(); } … } Quản lý dữ liệu SharePoint 27 public partial class Lab05DataContext : DataContext { … public Lab05DataContext(string requestUrl) : base(requestUrl) { this.OnCreated(); } … }
  • 28. List có quan hệ Có thể thực hiện truy vấn chéo giữa các List có quan hệ Sử dụng thuộc tính Association để khai báo quan hệ giữa các list (Entity) [ContentTypeAttribute(Name="Employees", Id="0x0104")] public partial class Employees : Item { [AssociationAttribute(Name="Body", Storage="_project", MultivalueType=AssociationType.Single List=“Projects")] public string Project { get {…} set {…} } Quản lý dữ liệu SharePoint 28 [ContentTypeAttribute(Name="Employees", Id="0x0104")] public partial class Employees : Item { [AssociationAttribute(Name="Body", Storage="_project", MultivalueType=AssociationType.Single List=“Projects")] public string Project { get {…} set {…} }
  • 29. List có quan hệ Truy vấn chéo giữa các list có quan hệ sử dụng cú pháp LINQ Ví dụ: List Employees có quan hệ với List Project var qw = from emp in dc.Employees where emp.Project.DueDate < DateTime.Now.AddYears(5) orderby emp.Project.DueDate select emp; Quản lý dữ liệu SharePoint 29 var qw = from emp in dc.Employees where emp.Project.DueDate < DateTime.Now.AddYears(5) orderby emp.Project.DueDate select emp;
  • 30. Sửa đổi dữ liệu Các thay đổi đối với các đối tượng Entity (List item…) được kiểm soát bởi LINQ Provider. Để thực hiện thay đổi, gọi phương thức SubmitChanges() Quản lý dữ liệu SharePoint 30
  • 31. Sửa đổi dữ liệu // Khởi tạo đối tượng DataContext DataContext data = new DataContext(SPContext.Current.Web.Url); // Lấy ra đối tượng Customers list EntityList<Customer> Customers = data.GetList<Customer>("Customers"); // Tạo mới một đối tượng Customer Customer newCustomer = new Customer() { CustomerId=36, City="Madrid" }; // Đánh dấu đối tượng này sẽ được thêm vào trong lần Submit tới Customers.InsertOnSubmit(newCustomer); // Submit toàn bộ thay đổi data.SubmitChanges(); Quản lý dữ liệu SharePoint 31 // Khởi tạo đối tượng DataContext DataContext data = new DataContext(SPContext.Current.Web.Url); // Lấy ra đối tượng Customers list EntityList<Customer> Customers = data.GetList<Customer>("Customers"); // Tạo mới một đối tượng Customer Customer newCustomer = new Customer() { CustomerId=36, City="Madrid" }; // Đánh dấu đối tượng này sẽ được thêm vào trong lần Submit tới Customers.InsertOnSubmit(newCustomer); // Submit toàn bộ thay đổi data.SubmitChanges();
  • 32. DEMO Demo: Ứng dụng Console sử dụng LINQ to SharePoint Provider để truy vấn dữ liệu SharePoint Quản lý dữ liệu SharePoint 32
  • 33. Tổng kết bài học Chúng ta có thể viết các Event để xử lý các sự kiện được thực thi trên SharePoint Có hai loại Event trên SharePoint bao gồm Before event After event CAML được sử dụng như là ngôn ngữ truy vấn dữ liệu SharePoint Chúng ta có thể viết các Event để xử lý các sự kiện được thực thi trên SharePoint Có hai loại Event trên SharePoint bao gồm Before event After event CAML được sử dụng như là ngôn ngữ truy vấn dữ liệu SharePoint Quản lý dữ liệu SharePoint 33
  • 34. Tổng kết bài học Ngoài việc sử dụng CAML chúng ta có thể sử dụng LINQ to SharePoint để truy vấn dữ liệu SharePoint trên môi trường server. DataContext là đối tượng trung tâm trong LINQ to SharePoint để truy vấn dữ liệu Quản lý dữ liệu SharePoint 34