Dịch vụ wcf ria là gì?

Hey there! Thanks for dropping by trungbq! Take a look around và grab the RSS feed to lớn stay updated. See you around!

Tổng quan

Trong phần trước, tôi đã ra mắt sơ qua về WCF RIA Services thông sang 1 ví dụ tựa “Hello World”. Nó chắc là quá dễ dàng và chẳng thể sử dụng trong vận dụng thực tiễn. Đối với áp dụng thực tiễn, bạn phải biết cách có tác dụng vắt nào nhằm tùy chỉnh services và áp dụng nó sinh hoạt client ra sao. Trong bài viết này, tôi đang đi sâu rộng một chút vào quá trình truy hỏi vấn dữ liệu trường đoản cú client. Tôi cũng trở nên lướt qua về quy ước viết tên phương thức được tư tưởng trong tên miền service, cũng giống như cách làm cho thế như thế nào để gia công điều này thực hiện attribute cố vì chưng theo đúng quy ước. Tôi cũng sẽ hướng dẫn giải pháp dùng những truy nã vấn từ bỏ client. Cuối thuộc, tôi đã nói về kiểu cách sử dụng tài liệu tự các mối cung cấp dữ liệu khác Entity Framework.Quý khách hàng đã xem: Wcf ria là gì

Để bước đầu bạn nên áp dụng hiệu quả đang làm cho được từ bỏ phần trước. Quý Khách rất có thể download tại đây (khác).

Bạn đang xem: Dịch vụ wcf ria là gì?

Download code hoàn hảo của bài viết này tại đây (khác).

Bước 1: Thêm tmê say số mang đến câu truy vấn

Trong nội dung bài viết trước, sau thời điểm được tạo nên xong, trong domain name service gồm một cách tiến hành truy vấn như vậy này:

1: public IQueryable GetTasks() 2: 3: return this.ObjectContext.Tasks; 4: Câu tầm nã vấn này trả về toàn bộ các Task trong database dưới dạng một IQueryable. Nếu bạn có nhu cầu có những truy nã vấn cụ thể rộng chứ đọng chưa hẳn trả về toàn bộ các mẫu, chúng ta cũng có thể thêm những cách thức truy vấn vấn cụ thể vào tên miền service và nó sẽ được từ hiện ra ở client side. Quý Khách cũng hoàn toàn có thể lựa chọn kiểu trả về làIEnumerable, nhưng lại nếu như những provider bên dưới (Entity Framework hoặc LINQ to SQL) trả vềIQueryable, bạn cũng bắt buộc trả về kiểu IQueryable cố gắng vày gửi hình dáng.

Một ngôi trường đúng theo hay gặp mặt là áp dụng của bạn cho phép người tiêu dùng đem các Task trong một khoảng thời hạn. Để cung ứng điều này, chúng ta thêm cách thức sau vào domain name service

public IQueryable GetTasksByStartDate( DateTime lowerDateTimeInclusive sầu, DateTime upperDateTimeInclusive){ return this.ObjectContext.Tasks.Where( t => t.StartDate >= lowerDateTimeInclusive sầu && t.StartDate

Cách 2: Thêm đồ họa nhằm triển khai các truy hỏi vấn

Để Call các truy vấn vấn tìm kiếm nỗ lực vì chưng gọi GetTasks thời gian Page_Load, bạn cần chỉnh sửa hình ảnh một tí. Msống trang MainPage.xaml, bớt form size của DataGrid nhằm chừa chỗ trống cung ứng hai TextBox cùng một Button nlỗi dưới đây


*

Đặt tên đến TextBox đầu tiên là lowerDate, TextBox vật dụng hai là upperDate với Button là searchButton. Nhấp đúp vào button nhằm thêm hàm giải pháp xử lý sự kiện.

Bước 3: Thực thi câu tầm nã vấn từ bỏ client thông qua DomainContext

Nlỗi sẽ trình làng trong phần 1, DomainContext là bạn dạng sao của DomainService được từ hình thành sinh sống client side. Trong áp dụng này, khớp ứng với tên miền service TasksDomainService nghỉ ngơi server side, domain name context sống client side là TasksDomainContext. Nó cung ứng khả năng hotline bất đồng bộ cùng gửi những biến hóa trên entity (được tiến hành sống client) đến server side. DomainContext đích thực là khối óc của WCF RIA Service sống phía client. Bất cứ bao giờ các bạn thực hiện tầm nã vấn để đưa những entity từ bỏ hệ thống trải qua tên miền context, nó đầy đủ cất giữ links đến những entity đó với cả đầy đủ biến hóa bên trên những entity kia. Vì vậy, nếu như bạn sửa đổi rất nhiều đối tượng người tiêu dùng đó, nó biết gồm sự biến đổi và hoàn toàn có thể gửi trở lại hệ thống khi bạn đưa ra quyết định update đầy đủ biến hóa kia. Tôi đang nói nhiều hơn thế trong nội dung bài viết sau đó. Còn trong nội dung bài viết này, bọn họ tập trung vào việc đem tài liệu.

Thêm đoạn code sau vào hàm giải pháp xử lý sự khiếu nại button searchButton

private void searchButton_Click(object sender, RoutedEventArgs e) DateTime lowerDateVal; DateTime upperDateVal; GetDates(out lowerDateVal, out upperDateVal); TasksDomainContext context = new TasksDomainContext(); taskDataGrid.ItemsSource = context.Tasks; EntityQuery query = context.GetTasksByStartDateQuery(lowerDateVal, upperDateVal); LoadOperation loadOp = context.Load(query);Đoạn code đặc biệt ngơi nghỉ đó là tư cái cuối. Để Hotline mang lại server side, bạn phải một instance của domain name context. Trong áp dụng thực tiễn, bạn cần giữ lại tên miền context lại vị sẽ là nơi giữ những thay đổi bên trên đối tượng người sử dụng nhằm update. thường thì, các bạn sẽ khai báo nó trong view mã sản phẩm hoặc phạm vi áp dụng. Tôi sẽ phân tích rộng trong phần 4 của loạt bài bác này.

Domain context có property là một collection những entity được trả về bởi vì các cách tiến hành tầm nã vấn ở domain name service. Trong ví dụ này, tên miền service chỉ kết xuất một collection các Task. Để ý rằng dòng lệnh gán ItemsSource của DataGrid bởi context.Tasks trước lúc Điện thoại tư vấn ngẫu nhiên truy tìm vấn nào. Vì khi chúng ta truy vấn trải qua tên miền context, câu tróc nã vấn được gọi bất đồng nhất với đang sửa chữa thay thế ngôn từ của collection ngay khi nhận thấy dữ liệu trả về tự VPS. Collection này (context.Tasks) hiện thực eventINotifyCollectionChanged cùng vẫn raise event để DataGrid từ bỏ update lại khi nhận được event này.

Dòng lệnh sau đó đem một EntityQuery trường đoản cú tên miền context với những tham số truyền vào khớp ứng. Đó mới chỉ là cấu hình thiết lập đông đảo gì bạn có nhu cầu tiến hành, nó đang chưa thực thụ call mang lại server. Cuối cùng, ta rước một LoadOperation trường đoản cú domain context bằng cách gọi phương thức Load. Đây là dịp tiến hành lời hotline mang đến VPS, nó sẽ chạy xe trên background thread và tự update lúc nhận thấy công dụng trả về tự VPS.

Xem thêm: Qua Ngân Hàng Nhà Nước: Vpbank Phải Chấn Chỉnh Việc Cấp Tín Dụng Cho Fe Credit

Đây tựa như mọi gì xẩy ra với DomainDataSource được sử dụng trong XAML ở nội dung bài viết trước.

Bước 4: Thêm câu truy vấn vấn trả về một entity duy nhất

Để trả về một entity ráng vì một collection các bạn chỉ cần khái niệm nó bên trên tên miền service. Một cách thức tróc nã vấn tương xứng sẽ tiến hành tạo vào domain name context sau khi biên dịch.

public Task GetTask(int taskId) return this.ObjectContext.Tasks.FirstOrDefault(t => t.TaskId == taskId);

Quy ước viết tên pmùi hương thức

Đây là một trong Xu thế new nổi trong cải cách và phát triển .NET – làm sút lượng thông số kỹ thuật trong code phụ thuộc vào một vài quy ước khắc tên. Có một trong những chi phí tố WCF RIA Services phân biệt được cùng với những thủ tục update, thêm mới, xóa như UpdateTask, InsertTask, DeleteTask (với những chi phí tố khác ví như Change, Modify, Add, Create, Remove).

Quý Khách cũng hoàn toàn có thể thông số kỹ thuật bằng phương pháp áp dụng các attribute. lấy ví dụ như cùng với các câu truy nã vấn, chúng ta áp dụng attribute . Những cách làm tất cả loại trả về là IQueryableIEnumerable hoặc một entity cũng khá được xác định cụ thể là 1 trong những phương thức truy vấn vấn. giữa những ưu thế của việc áp dụng atrribute là nó cung ứng thêm 1 vài ba thứ nhỏng số lượng phần tử buổi tối nhiều vào kết quả trả về.

quý khách hàng hoàn toàn có thể đọc thêm một trong những quy ước đặt tên trên trên đây.

Tùy chỉnh Domain Service

Bạn không thích thực hiện Entity Framework? Một gạn lọc khác là LINQ khổng lồ SQL. Theo chủ kiến cá nhân, tôi đề nghị bạn nên thực hiện Entity Framework nếu khách hàng bắt đầu một dự án mới. Nó đích thực có tác dụng với có vẻ như đã là phương pháp truy hỏi xuất dữ liệu từ .NET tốt được sử dụng dài lâu. LINQ to SQL cũng khá được cung ứng thông qua WCF RIA Services Toolkit nếu như bạn thực thụ ý muốn sử dụng nó.

Nhưng không hề ít tín đồ đang sử dụng mọi kế hoạch truy nã xuất tài liệu không giống (vd: nHibernate, SubSonic…) cùng những mối cung cấp dữ liệu khác (vd: Oracle, MySQL…). Quý khách hàng hoàn toàn có thể dễ ợt thực hiện chúng với WCF RIA Services miễn sao bạn định nghĩa các đối tượng người tiêu dùng tài liệu bạn có nhu cầu truyền qua là các entity đơn giản dễ dàng. Nó được Điện thoại tư vấn là POCO (Plain Old CLR Objects) tên miền services.

Xem thêm: Incidents Là Gì, Nghĩa Của Từ Incident, What Is The Meaning Of Isolated Incident

Để làm cho điều này, bạn chỉ cần kế thừa domain name service của người tiêu dùng thẳng trường đoản cú class DomainService, cố kỉnh bởi kế thừa từ LinqToEntitiesDomainService. Trong cửa ngõ sổ Add New Domain Service Class (Add > New Item > Domain Data Service) chỉ việc lựa chọn “empty tên miền service class” trong Available DataContext/ObjectContext. Sau đó từ bỏ có mang các entity, trả về IEnumerable ví như những nguồn dữ liệu bên dưới không cung cấp IQueryable cùng làm cho bất cứ điều gì bạn cần trong các phương thức trên nguồn tài liệu tương ứng.


Chuyên mục: Công Nghệ 4.0