WCF Data Services একটি বিশেষ ধরনের WCF সার্ভিস, যা OData (Open Data Protocol) ভিত্তিক সার্ভিস তৈরির জন্য ব্যবহৃত হয়। এটি আপনাকে ডেটা অ্যাক্সেস প্রদান করে এবং HTTP প্রোটোকলের মাধ্যমে ক্লায়েন্ট অ্যাপ্লিকেশনগুলোকে ডেটা ফিল্টার, সার্চ, এবং আপডেট করার সুযোগ দেয়। WCF Data Services আপনাকে ডেটাবেসের ডেটা ক্লায়েন্ট অ্যাপ্লিকেশনগুলোর জন্য এক্সপোজ করতে সাহায্য করে।
এই গাইডে, আমরা একটি WCF Data Service তৈরি এবং কনফিগার করার পুরো প্রক্রিয়া দেখবো।
ধাপ ১: WCF Data Service তৈরি করা
- Visual Studio খুলুন এবং একটি নতুন WCF Data Service Application প্রজেক্ট তৈরি করুন।
- File > New > Project এ যান।
- প্রজেক্ট টেমপ্লেট থেকে WCF Data Service Application নির্বাচন করুন।
- প্রজেক্টের নাম দিন (যেমন:
MyWCFDataService) এবং লোকেশন নির্বাচন করুন। - Create বাটনে ক্লিক করুন।
- প্রজেক্ট তৈরি হওয়ার পর, Service1.svc ফাইলটি তৈরি হবে। এটি WCF Data Service সার্ভিস ফাইল।
ধাপ ২: Data Model তৈরি করা
WCF Data Services সাধারণত Entity Framework (EF) ব্যবহার করে ডেটাবেসের সাথে যোগাযোগ করে। আপনাকে একটি Entity Data Model (EDM) তৈরি করতে হবে, যা ডেটাবেসের টেবিলগুলিকে কনট্র্যাক্ট হিসাবে প্রকাশ করবে।
- Solution Explorer থেকে Model ফোল্ডারে ADO.NET Entity Data Model যোগ করুন।
- Entity Framework ব্যবহার করার জন্য Database First অথবা Code First পদ্ধতি নির্বাচন করুন।
- যদি আপনি Database First ব্যবহার করেন, তাহলে আপনার ডেটাবেস থেকে টেবিলগুলো মডেল হিসেবে তৈরি হবে।
- Code First ব্যবহার করে আপনি কোডের মাধ্যমে মডেল তৈরি করবেন।
- Entity Framework মডেল তৈরি করার পর, আপনি এটি WCF Data Service এ ব্যবহার করতে পারবেন।
ধাপ ৩: WCF Data Service ক্লাস তৈরি করা
- Service1.svc.cs ফাইলে
DataService<T>ক্লাস তৈরি করুন, যেখানেTহলো আপনার Entity Framework মডেল ক্লাস।
public class MyWCFDataService : DataService<MyEntities>
{
// Specify the rights to allow for the data service.
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("MyEntities", EntitySetRights.All);
}
}
এখানে:
MyEntitiesহলো আপনার Entity Framework মডেল ক্লাস।SetEntitySetAccessRuleমেথড ব্যবহার করে আপনি ডেটার অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন।
ধাপ ৪: Data Service Configuration
Data Service Configuration হল একটি গুরুত্বপূর্ণ পদক্ষেপ, যা WCF Data Service এর কার্যকলাপ কনফিগার করে। এটি SetEntitySetAccessRule মেথডের মাধ্যমে entity sets-এর উপর অ্যাক্সেস নিয়ন্ত্রণ করার জন্য ব্যবহৃত হয়।
Service1.svc ফাইলের মধ্যে InitializeService মেথডটি কল করুন:
<%@ ServiceHost Language="C#" Debug="true" Service="MyWCFDataService" CodeBehind="Service1.svc.cs" %>
এখানে MyWCFDataService হলো ক্লাসের নাম যা আপনি তৈরি করেছেন এবং যেখানে আপনি InitializeService কনফিগারেশনটি সেট করেছেন।
এছাড়াও, আপনি web.config ফাইলে কনফিগারেশন করতে পারেন, যেমন:
<system.serviceModel>
<services>
<service name="MyWCFDataService">
<endpoint address="" binding="webHttpBinding" contract="MyWCFDataService" />
</service>
</services>
</system.serviceModel>
এখানে webHttpBinding ব্যবহার করা হয়েছে, যা HTTP প্রোটোকল মাধ্যমে ওয়েব সার্ভিস এক্সপোজ করবে।
ধাপ ৫: WCF Data Service টেস্ট করা
- F5 বা Start বাটনে ক্লিক করুন এবং সার্ভিস রান করুন।
- ব্রাউজারে http://localhost:PortNumber/Service1.svc ঠিকানা টাইপ করুন।
- আপনি যদি OData সার্ভিসটি টেস্ট করতে চান, আপনি URL এর মাধ্যমে
MyEntitiesটেবিলের ডেটা দেখতে পারবেন, যেমন:http://localhost:PortNumber/Service1.svc/MyEntities
- আপনি যদি OData সার্ভিসটি টেস্ট করতে চান, আপনি URL এর মাধ্যমে
- আপনি OData Query করতে পারেন, যেমন:
http://localhost:8080/Service1.svc/MyEntities?$filter=Name eq 'John'http://localhost:8080/Service1.svc/MyEntities?$orderby=Age desc
এই ভাবে, আপনি WCF Data Service এ ডেটা অ্যাক্সেস এবং ম্যানিপুলেট করতে পারবেন।
ধাপ ৬: Data Service Client তৈরি করা
WCF Data Service কে ক্লায়েন্ট অ্যাপ্লিকেশন থেকে ব্যবহার করতে, আপনাকে DataServiceContext ব্যবহার করতে হবে। এটি ক্লায়েন্ট অ্যাপ্লিকেশন এবং সার্ভিসের মধ্যে যোগাযোগ সহজ করে।
- Console Application তৈরি করুন।
- Service Reference যোগ করুন:
- Solution Explorer-এ References-এ রাইট ক্লিক করুন এবং Add Service Reference নির্বাচন করুন।
- সার্ভিসের URL দিন, যেমন:
http://localhost:8080/Service1.svc/. - ক্লায়েন্টের জন্য DataServiceContext ব্যবহার করে ডেটা ফেচ করুন।
var context = new MyWCFDataServiceEntities(new Uri("http://localhost:8080/Service1.svc"));
var query = from entity in context.MyEntities
where entity.Name == "John"
select entity;
foreach (var item in query)
{
Console.WriteLine($"Name: {item.Name}, Age: {item.Age}");
}
এখানে:
MyWCFDataServiceEntitiesহলো DataServiceContext ক্লাস।MyEntitiesহলো Entity Set, যা WCF Data Service এ প্রকাশিত হয়েছে।
সারাংশ
- WCF Data Service তৈরি করতে WCF এর DataService ক্লাস ব্যবহার করতে হয়।
- OData (Open Data Protocol) ব্যবহার করে WCF Data Service HTTP প্রোটোকল এর মাধ্যমে ডেটা অ্যাক্সেস এবং আপডেট করার সুযোগ দেয়।
- Entity Framework এর মাধ্যমে ডেটাবেসের টেবিলগুলি Entity Set হিসেবে এক্সপোজ করা হয়, যা ক্লায়েন্ট অ্যাপ্লিকেশন থেকে অ্যাক্সেস করা যায়।
- Data Service Configuration WCF Data Service এর কনফিগারেশন নিশ্চিত করে, যেখানে অ্যাক্সেস নিয়ন্ত্রণ করা যায়।
এই প্রক্রিয়া অনুসরণ করে আপনি একটি WCF Data Service তৈরি এবং কনফিগার করতে পারবেন, যা ডেটাবেসের ডেটাকে ক্লায়েন্ট অ্যাপ্লিকেশনগুলোর জন্য HTTP মাধ্যমে এক্সপোজ করবে।
Read more