Complex Data Types এবং Collection Data Contract তৈরি করা

Microsoft Technologies - উইন্ডোজ কমিউনিকেশন সিস্টেম (WCF) - Data Contracts এবং Data Serialization Techniques
194

WCF (Windows Communication Foundation) সার্ভিসে, Complex Data Types এবং Collection Data Contracts ব্যবহার করে আপনি আরও জটিল এবং কাঠামোবদ্ধ ডেটা আদান-প্রদান করতে পারেন। Complex Data Types হলো ডেটা কন্ট্র্যাক্ট যেগুলো একাধিক প্রোপার্টি ধারণ করে, এবং Collection Data Contracts হলো বিভিন্ন উপাদান সম্বলিত ডেটা ধরনের একটি কালেকশন।

এখানে আমরা দেখব কিভাবে Complex Data Types এবং Collection Data Contracts তৈরি করা হয়।


১. Complex Data Types তৈরি করা

Complex Data Types হল ক্লাস বা স্ট্রাকচার যা একাধিক ডেটা সদস্য ধারণ করে। এগুলো ডেটা কন্ট্র্যাক্ট হিসেবে ব্যবহৃত হতে পারে, যাতে বিভিন্ন ডেটা একসাথে সার্ভিসের মাধ্যমে আদান-প্রদান করা যায়।

Complex Data Type তৈরি করা:

  1. Complex Data Type (Class) তৈরি করুন: প্রথমে একটি ক্লাস তৈরি করুন, এবং সেই ক্লাসে [DataContract] অ্যাট্রিবিউট এবং [DataMember] অ্যাট্রিবিউট ব্যবহার করুন।
  2. [DataContract] অ্যাট্রিবিউট: ক্লাসকে চিহ্নিত করে যাতে এটি WCF-এর মাধ্যমে আদান-প্রদান করা যায়।
  3. [DataMember] অ্যাট্রিবিউট: ক্লাসের প্রোপার্টিগুলিকে চিহ্নিত করে, যা ডেটা আদান-প্রদানের জন্য প্রস্তুত থাকবে।
[DataContract]
public class Address
{
    [DataMember]
    public string Street { get; set; }

    [DataMember]
    public string City { get; set; }

    [DataMember]
    public string ZipCode { get; set; }
}

[DataContract]
public class Person
{
    [DataMember]
    public string Name { get; set; }

    [DataMember]
    public int Age { get; set; }

    [DataMember]
    public Address Address { get; set; }  // Complex Data Type
}

এখানে, Person ক্লাসটি একটি Address (Complex Data Type) ধারণ করছে। এইভাবে, আপনি একাধিক ডেটা সদস্য একত্রে আদান-প্রদান করতে পারবেন।


২. Collection Data Contract তৈরি করা

Collection Data Contract হলো এমন একটি ডেটা কন্ট্র্যাক্ট, যা একাধিক উপাদান ধারণ করে। WCF-এ আপনি Arrays, Lists, Collections, এবং Dictionaries এ ধরনের ডেটা কালেকশন ব্যবহার করতে পারেন।

Collection Data Contract তৈরি করা:

  1. Collection Data Type (List) তৈরি করুন: সাধারণত, WCF-এ List, Array, IEnumerable ইত্যাদি কালেকশন ব্যবহার করা হয়।
  2. [CollectionDataContract] অ্যাট্রিবিউট: এটি WCF-এ কালেকশন টাইপগুলির জন্য ব্যবহৃত হয়।
[CollectionDataContract]
public class PersonList : List<Person>
{
}

এখানে, PersonList হলো একটি List যা WCF সার্ভিসের মাধ্যমে আদান-প্রদান করা যাবে। এর ফলে একাধিক Person অবজেক্ট সার্ভিসে পাঠানো যাবে।

WCF সার্ভিসে Complex Data Type এবং Collection Data Type ব্যবহার করা

এখন, আমরা এই Complex Data Type এবং Collection Data Contract-কে WCF সার্ভিসের মধ্যে ব্যবহার করবো। নিচে সার্ভিস কনট্র্যাক্ট এবং সার্ভিস ইমপ্লিমেন্টেশন দেখানো হলো:

[ServiceContract]
public interface IPersonService
{
    [OperationContract]
    Person GetPersonDetails(string name);

    [OperationContract]
    PersonList GetAllPersons();
}

এখানে, GetPersonDetails মেথডটি একটি Person অবজেক্ট ফেরত দেয়, এবং GetAllPersons মেথডটি একটি PersonList (Collection) ফেরত দেয়।

সার্ভিস ইমপ্লিমেন্টেশন

public class PersonService : IPersonService
{
    public Person GetPersonDetails(string name)
    {
        // একটি Address তৈরি করা
        Address address = new Address
        {
            Street = "123 Main St",
            City = "Springfield",
            ZipCode = "12345"
        };

        // একটি Person তৈরি করা
        Person person = new Person
        {
            Name = name,
            Age = 30,
            Address = address
        };

        return person;
    }

    public PersonList GetAllPersons()
    {
        // কয়েকটি Person অবজেক্ট তৈরি করা
        List<Person> persons = new List<Person>
        {
            new Person
            {
                Name = "Alice",
                Age = 28,
                Address = new Address { Street = "456 Maple Ave", City = "Greenfield", ZipCode = "67890" }
            },
            new Person
            {
                Name = "Bob",
                Age = 35,
                Address = new Address { Street = "789 Oak Dr", City = "Lakeside", ZipCode = "11223" }
            }
        };

        PersonList personList = new PersonList();
        personList.AddRange(persons);

        return personList;
    }
}

WCF সার্ভিস কনফিগারেশন (web.config)

<system.serviceModel>
  <services>
    <service name="MyService.PersonService">
      <endpoint address="" binding="basicHttpBinding" contract="MyService.IPersonService" />
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost:8080/PersonService" />
        </baseAddresses>
      </host>
    </service>
  </services>
</system.serviceModel>

ধাপ ৩: Client Application তৈরি করা

  1. WCF Client তৈরি করার জন্য, Visual Studio-তে একটি Console Application তৈরি করুন এবং Service Reference যোগ করুন।
  2. Service Reference যোগ করতে Solution Explorer-এ References-এ রাইট ক্লিক করুন এবং Add Service Reference নির্বাচন করুন।
  3. সার্ভিসের URL দিন, যেমন http://localhost:8080/PersonService এবং Go ক্লিক করুন। তারপর Add Reference ক্লিক করুন।

Client Application Code

using System;
using MyServiceReference;

class Program
{
    static void Main(string[] args)
    {
        PersonServiceClient client = new PersonServiceClient();

        // Get a single Person object
        Person person = client.GetPersonDetails("John");
        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}, Street: {person.Address.Street}");

        // Get a collection of Person objects
        PersonList personList = client.GetAllPersons();
        foreach (Person p in personList)
        {
            Console.WriteLine($"Name: {p.Name}, Age: {p.Age}, Street: {p.Address.Street}");
        }

        client.Close();
    }
}

সারাংশ

  • Complex Data Types: একাধিক প্রোপার্টি ধারণকারী ডেটা কন্ট্র্যাক্ট, যা WCF সার্ভিসের মাধ্যমে আদান-প্রদান করা যায়।
  • Collection Data Contracts: ডেটার একটি কালেকশন যা একাধিক উপাদান ধারণ করে, যেমন List, Array, ইত্যাদি।
  • DataContract এবং DataMember অ্যাট্রিবিউট ব্যবহার করে আপনি WCF সার্ভিসে জটিল এবং কালেকশন ডেটা কন্ট্র্যাক্ট তৈরি করতে পারেন।

এই পদ্ধতিতে, আপনি WCF সার্ভিসের মাধ্যমে আরো জটিল ডেটা কাঠামো এবং কালেকশন সহজে পরিচালনা এবং আদান-প্রদান করতে পারবেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...