উইন্ডোজ ফর্মগুলি থেকে ডাব্লুপিএফ-তে রূপান্তরকরণ


113

দীর্ঘদিন ধরে, আমি উইন্ডোজ ফর্মগুলির বিকাশের সাথে আটকে আছি (ভিবি 6 দিয়ে শুরু হয়েছে, এবং সি #। নেট 4.5 পর্যন্ত অব্যাহত রেখেছি), এবং উইন্ডোজ ফর্মগুলি যা করতে পারে তার সীমাতে আমি প্রায় অনেকটাই আঘাত পেয়েছি, খাঁটি। নেট ব্যবহার করে , এবং নেটিভ কোড সহ বিশেষ প্রভাব।

আমি ডাব্লুপিএফ এবং এক্সএএমএল শিখার চেষ্টা করেছি, তবে ডাব্লুপিএফের নতুন ডিজাইনারের সাথে আমি আটকে গিয়েছি। উইন্ডোজ ফর্ম ডিজাইনারের তুলনায় এটি সত্যই ব্যবহার করা খুব কঠিন বলে মনে হচ্ছে।

আমি জানতে চাই যে .NET এর ডাব্লুপিএফ ডিজাইনারের কোনও বিকল্প আছে কিনা, যা উইন্ডোজ ফর্ম ডেভেলপারদের পক্ষে বেশি উপযুক্ত?


7
আমি সাধারণত ডিজাইনারও ব্যবহার করি না, সামগ্রিক বিন্যাসটি আমি প্রত্যাশা করব কিনা তা যাচাই করার জন্য সংরক্ষণ করুন; শেষ পর্যন্ত আমি এক্সএএমএল-তে হাত দিয়ে সবকিছু লিখি এবং / বা প্রয়োজনের সাথে মিশ্রণটি ব্যবহার করি - যদিও আমি ডিজাইনার নই যাতে সবে কখনও ঘটে না।
প্যাট্রিক ieউইক

আপনি এক্সপ্রেশন মিশ্রণটি ব্যবহার করতে পারেন, তবে আমি মনে করি এটি সত্যিই কোনও সহজ নয়, এটি ডেভলপারদের আইএমওর চেয়ে ডিজাইনারদের পক্ষে বেশি। আমি সাধারণত প্রিভিউ বন্ধ করে দিয়েছি এবং এক্সএমএল নিয়ে কাজ করি।
ব্ল্যাকইস

5
এটি ব্যবহার করা কঠিন নয়, আপনি কেবল এটির জন্য অভ্যস্ত নন। কাটিয়ে উঠতে সবচেয়ে বড় বাধা হ'ল দুটি প্রযুক্তির মধ্যে দৃষ্টান্ত পরিবর্তন। এক্সএএমএল থেকে নিজেকে একটি ভাল বই পান, একবার এক্সএএমএল অভ্যস্ত হয়ে গেলে আপনি আর ডিজাইনার ব্যবহার করবেন না - আপনি সরাসরি এক্সএএমএল টাইপ করবেন।
স্লাগস্টার

3
স্লাগস্টার, আমি সে সম্পর্কে অবাক হয়েছি। এইচটিএমএল-তেও একই ঘটনা ঘটেছিল ... আমি স্বপ্নের সাথে ইউআই তৈরি করতাম, এবং এখন আমি হাতের দ্বারা এইচটিএমএল কোড করি
ম্যাথু লেটন

উত্তর:


175

আমি ডাব্লুপিএফের জন্য প্রারম্ভিক নিবন্ধগুলি সম্পর্কে ব্লগ করতে চাই এবং বিশেষত কয়েকটি এখানে রয়েছে যা আপনাকে সাহায্য করতে পারে:

সংক্ষেপে বলতে গেলে উইনফরম এবং ডাব্লুপিএফ-এর মধ্যে সবচেয়ে বড় পার্থক্য হ'ল ডাব্লুপিএফ-তে আপনার ডেটা স্তর (the DataContext) আপনার অ্যাপ্লিকেশন, উইনফর্মগুলিতে আপনার ইউআই স্তরটি আপনার অ্যাপ্লিকেশন।

এটি অন্যভাবে দেখার জন্য, ডাব্লুপিএফের সাহায্যে আপনার অ্যাপ্লিকেশনটি আপনার তৈরি করা বস্তুগুলি নিয়ে গঠিত এবং আপনি কীভাবে আপনার অ্যাপ্লিকেশন উপাদানগুলি আঁকবেন সে সম্পর্কে ডাব্লুপিএফকে টেমপ্লেট এবং অন্যান্য UI অবজেক্ট ব্যবহার করেন।

এটি উইনফর্মগুলির বিপরীতে যেখানে আপনি ইউআই আইটেমগুলির বাইরে আপনার অ্যাপ্লিকেশনটি তৈরি করেন এবং তারপরে প্রয়োজনীয় ডেটা সরবরাহ করেন।

এর কারণে, ডিজাইনার আসলে এতটা ব্যবহার করেন না যেহেতু আপনার অ্যাপ্লিকেশন উপাদানগুলি কোডে নকশা করা হয়েছে এবং ডিজাইনার কেবলমাত্র একটি ব্যবহারকারী-বান্ধব ইন্টারফেস আঁকার জন্য প্রয়োজন যা আপনার ডেটা ক্লাসগুলিকে প্রতিবিম্বিত করে (সাধারণত Modelsএবং ViewModels)

এবং ব্যক্তিগতভাবে, আমি আমার সমস্ত এক্সএএমএল হাতের মাধ্যমে টাইপ করতে পছন্দ করি কারণ এটি দ্রুত এবং ড্র্যাগ / ড্রপ ডাব্লুপিএফ ডিজাইনার যেমন করেন তেমন কোনও গণ্ডগোল তৈরি করে না, যদিও আমি আমার ইউআই দেখতে কী হবে তা প্রাকদর্শন করার জন্য উপলক্ষে ডিজাইনার ব্যবহার করি না মত।

সুতরাং উইনফোর্স বিকাশকারীদের জন্য অন্য ডাব্লুপিএফ ডিজাইনার উপযুক্ত কিনা তা সম্পর্কে আপনার প্রশ্নের উত্তরটির জন্য আমি পরামর্শ দেব যে অন্য ডিজাইনার সন্ধানের পরিবর্তে ডাব্লুপিএফকে কীভাবে ব্যবহার করা যায় তা কীভাবে ব্যবহার করতে হবে তা শিখুন। উইনফর্মস এর মতো ডাব্লুপিএফ ব্যবহার করার অর্থ আপনি এটিকে এত দুর্দান্ত করে তোলে তার অনেকটাই মিস করেছেন :)


14
সম্পূর্ণরূপে @ রাচেলের সাথে একমত ডব্লিউপিএফের আলোতে আসার সময় সবচেয়ে গুরুত্বপূর্ণ উপলব্ধি হ'ল ইউআইটি ডেটা নয় এবং সেই অনুযায়ী কাজ করা।
ফেডেরিকো বেরাসেটুই

2
@ রাচেল - কেবল শয়তানের উকিল খেলতে: ইউআই দিয়ে শুরু করা (উইন্ডোতে কোন বোতাম, পাঠ্য বাক্সগুলি প্রদর্শিত হয়) আপনি কী করতে চান তার উপর অ্যাপ্লিকেশনটিকে ফোকাস করতে সহায়তা করে। বাকিটি হ'ল আপনি কীভাবে এটি করতে চান তার বাস্তবায়ন বিশদ ।
আসফ

3
@HighCore কটাক্ষপাত করা stackoverflow.com/questions/982978/mvvm-for-winforms এবং আপনি স্বীকার করেন যে Winforms শুধু একটি দেখুন / ইউআই উপাদান ব্যবসার বস্তু ব্যবহারকারীর নিয়ন্ত্রণগুলি আবদ্ধ করা যায় থাকবে। ঠিক আছে: ডাব্লুপিএফ এমভিভিএমের জন্য আরও উপযুক্ত তবে তবুও উইনফর্মগুলিও এই জাতীয় ডিজাইন প্যাটার্নে কাজ করতে পারে। এবং রাহেলা যেমন বলেছে যে এটি উইনফর্মগুলির বিপরীতে যেখানে আপনি ইউআই আইটেমগুলির বাইরে আপনার অ্যাপ্লিকেশনটি তৈরি করেন এবং তারপরে প্রয়োজনীয় ডেটা সরবরাহ করেন। যদিও এটি এত অসত্য। আমি সর্বদা কমপক্ষে ডেটা এবং ভিউয়ের পদ্ধতিতে ভাবি। ডেটা এবং উইনফরম / ডাব্লুপিএফ / এইচটিএমএল যাই হোক না কেন।
বার্নোল্লি আইটি

2
এটি ডেটা এন্ড্রি / সংশোধন পর্যায়ে অন্তত ডেটাবাইন্ডিং সমর্থন করে। এবং এই 99.9999999% বিকাশকারীরা আমার সন্দেহজনক ডাব্লুপিএফতেও গণ্ডগোল করবে। তবে আসুন এই আলোচনাটি শেষ করুন। ডাব্লুপিএফ একেবারে আরও পাওয়ারফুল / এমভিভিএম এবং উদ্বেগের পৃথকীকরণের জন্য উপযুক্ত তবে আমি আপনাকে এবং রাচেল উইনফর্মগুলিকে একটি নেতিবাচক কোণে ঠেলাচ্ছি বলে মনে করি। বিশেষত যখন আপনি শব্দগুলি ব্যবহার করেন ...
বার্নল্লি IT

3
@ ইউটিউব ঠিক বলেছেন, উইনফর্মস ডেটা বন্ডিং সমর্থন করে এবং ডিফল্ট বাঁধাই সিস্টেমটি খুব বেশি কাজ করবে না এমন ক্ষেত্রেও আপনার নিজস্ব কাস্টম বাইন্ডিং তৈরি করা সম্ভব। আমি এই উত্তরটি লিখেছিলাম এবং আমার ব্লগ নিবন্ধগুলি যদিও প্রাথমিকভাবে মনে রেখেই লিখেছি এবং সাধারণত প্রাথমিকভাবে সূচিগুলি ইউআই উপাদানগুলির সাথে বিবেচনা করে না ডেটা অবজেক্টগুলির উদ্দেশ্যে। তদতিরিক্ত, উইনফর্মগুলিতে বাঁধাই এখন যে রাজ্যে থাকে তা সর্বদা বিদ্যমান ছিল না, এতগুলি বিকাশকারী যারা উইনফোর্ডসের সাথে বেড়েছে বা যারা অন্যান্য প্রযুক্তিগুলিতে ব্যবহৃত হয় যা বাইন্ডিং ব্যবহার করে না, প্রায়শই স্যুইচ করার সময় এই মূল পার্থক্যটি সনাক্ত করতে পারে না একটি আবদ্ধ আর্কিটেকচার। :)
রাহেল

9

যদিও কিছু লোক একমত নয়, আমি ভিএস ডিজাইনার ব্যবহার না করার জন্যও ক্ষতিপূরণ দেবো। অন্তত একটি ইন্টারফেস তৈরি করতে না। আপনি যদি অ্যাপ্লিকেশনটি শুরু না করেই আপনার প্রয়োগের প্রথম ধারণা পেতে চাইতে পারেন তবে কমপক্ষে যতক্ষণ না কোনও অত্যাধুনিক জিনিস যেমন ব্যবহার করা হয় না Stylesএবং Templatesব্যবহার করা হয় এটি তত ভাল দর্শক । তবে, আইএমএইচও, এর ড্রাগ এবং ড্রপ ফলাফলটি কেবলমাত্র প্রোটোটাইপ হিসাবে ব্যবহার করা উচিত এবং তাই এটির আর প্রয়োজনের পরে ফেলে দেওয়া উচিত।

এখানে কিছু কারণ রয়েছে যা আমার পক্ষে এটি ব্যবহার না করা গুরুত্বপূর্ণ।

  1. ভিএস ডিজাইনার ফিক্স মার্জিন এবং প্রান্তিককরণগুলি নিয়ে কাজ করছেন (যা সাধারণত প্রয়োজন হয় না, যদি আপনি লেআউট নিয়ন্ত্রণ ব্যবহার করেন), এর অর্থ যদি প্রয়োজনীয়তা পরিবর্তন করা হয় তবে আপনাকে অনেকগুলি নিয়ন্ত্রণ স্পর্শ করতে হবে। আপনি যদি এক্সএএমএল এবং ডাব্লুপিএফ মেকানিক্সগুলিতে গভীর হন তবে আপনি এমন একটি অ্যাপ্লিকেশন তৈরি করতে পারেন যা চেহারা এবং অনুভূতি সম্পর্কিত, ছোট চেষ্টা করে পরিবর্তন করা যেতে পারে।

  2. যেহেতু ডিজাইনার এক্সএএমএল তৈরি করছে, রচনাটি অনুকূল নয় এবং ইউআই খারাপভাবে পারফর্ম করতে পারে। আমি এটি পরিমাপ করিনি, এটি কেবল একটি অনুভূতি।

আরও ভাল বিকল্প এমএস ব্লেন্ড , যদিও শুরুটি সবকিছুই সহজ তবে সহজ। এর ড্র্যাগ এবং ড্রপ ফলাফল ভিএস ডিজাইনারের ফলাফলের চেয়ে অনেক ভাল।
তবে এটি একটি দুর্দান্ত শক্তিশালী সরঞ্জাম, যা আপনাকে শিল্পের UI- এর রাজ্য তৈরি করতে বেশ শক্তিশালী উপাদান ব্যবহার করতে সহায়তা করে। আমি এর সুযোগগুলি সম্পর্কে ধারণা পেতে কমপক্ষে একটি সংক্ষিপ্ত কর্মশালা দেখার পরামর্শ দিচ্ছি।

পিছনে আপনার প্রশ্ন, এই প্রোগ্রামটিতে, এবং আমি মনে অনেক মানুষ একমত, নিজের একটি ভাল বই যেমন পেতে WPF Unleashed আপনি বিবরণ, সম্পর্কে আরো জানতে চান, এবং পরে WPF প্রো । এখানে অনেকগুলি বৈশিষ্ট্য রয়েছে যা আলাদা Winforms। কোনও ডিজাইনার ব্যবহার করে আপনি সেগুলি জানতে পারবেন না। আমি মনে করি এটিই সেরা পন্থা।

দয়া করে এটি বিবেচনা করুন যে সেখানে অনেকগুলি ফ্রেমওয়ার্ক এবং লাইব্রেরি রয়েছে (যেমন এমভিভিএম আলো , ডাব্লুপিএফটুলকিট ) যা ইতিমধ্যে কিছু সাধারণ সমস্যা সমাধান করছে। সুতরাং চাকাটি পুনরায় উদ্ভাবনের প্রয়োজন নেই।


9

আমি জানি এটি একটি পুরানো প্রশ্ন তবে এটি দেখার জন্য অন্য কারও উপকারের জন্য, আমি মনে করি আমার ভারসাম্যটি কিছুটা সমাধান করা উচিত - অন্যান্য উত্তরগুলির কয়েকটি পড়ে, আমি অনুভব করি যে 'ডিজাইনার ব্যবহারকারীর মধ্যে কিছু ব্যবহার করবেন না 'সঠিকভাবে এটি ব্যবহার না করেই অনুভূতি আসে। এই টিউটোরিয়ালটি আপনাকে যেতে এবং অন্যান্য পোস্টগুলির কিছু সমালোচনার জবাব দেওয়ার পক্ষে বেশ ভাল।

উদাহরণস্বরূপ, আপনি উইনফর্মস-এর মতো মার্জিন-ভিত্তিক লেআউটটি থেকে ডিফল্ট হিসাবে স্যুইচ করতে পারেন যখন আপনি কোনও নিয়ন্ত্রণ ড্রপ করেন, ডান-ক্লিক করে 'রিসেট লেআউট' নির্বাচন করে আরও ডাব্লুপিএফ-ইশ স্টাইলে যেতে পারেন

এই ভিডিওতে অনুরূপ স্থলটি coversাকা রয়েছে।

আমি এখনও ভারসাম্যের উপরে VS2010 ডিজাইনারকে পছন্দ করি - টবিআইটেমস ** এ টানা এবং নেমে যাওয়ার সময় VS2013 কিছুটা বগি বলে মনে হচ্ছে (যা আমার বর্তমান প্রকল্পটি প্রচুর পরিমাণে ব্যবহার করে) - তবে VS2013 ডকুমেন্টের আউটলাইন ভিউ আপনাকে সেই দৃশ্যে জিনিসগুলিকেও প্রায় স্থানান্তর করতে দেয় , যা সত্যিকারের প্লাস হতে পারে।

সত্যই, যদিও, ডাব্লুপিএফ এবং এক্সএএমএল থেকে সর্বাধিক উপকার পাওয়ার জন্য আপনাকে ডিজাইনার ভিউ এবং এক্সএএমএল ভিউ এবং এগুলির মধ্যে স্যুইচিং উভয় ক্ষেত্রেই যথেষ্ট সাবলীল হতে হবে; আপনি যদি ডিজাইনার থেকে দূরে সরে যান তবে আপনি এমন কোনও কিছু হারিয়ে ফেলছেন যা আপনাকে অনেক সাহায্য করতে পারে।

** সম্পাদনা করুন - যদিও মনে হয় এটি ভিএস 2013 এর জন্য আপডেট 3 এ উন্নত হয়েছে এবং ভিএস 14 এর পূর্বরূপে আজ অবধি আমি এখনও মাঝে মাঝে অদ্ভুত আচরণ পাই।


7

প্রথমত, ভিজ্যুয়াল স্টুডিও ডিজাইনারের ডাব্লুপিএফ (এক্সএএমএল) এ, আপনাকে ইউআই তৈরি করতে সর্বদা এক্সএএমএল কোডটি ব্যবহার করা উচিত এবং আপনার নিয়ন্ত্রণটিকে টেনে আনে এবং ফেলে না! আপনার কোড পরিষ্কার রাখতে হবে। আপনাকে সহায়তা করতে আপনি এক্সপ্রেশন মিশ্রণটি ব্যবহার করতে পারেন, এটি ড্রাগ এবং ড্রপের সাথে আরও গ্রাফিকমুখী, তবে এটি নিখরচায় নয়।

এটি কোনও বড় শিক্ষার বক্ররেখা নয়, তবে আমি মনে করি বিকল্পের সন্ধানের পরিবর্তে কীভাবে আপনার নিজের xaml করবেন তা আপনার শিখানো উচিত।


1
ড্র্যাগ-এন-ড্রপ কোনও ক্ষতি নয়, আপনি যদি টাইপিং পছন্দ করেন তবে এটিও ঠিক আছে। ম্যানুয়ালি টাইপ করা কখনই ডাব্লুপিএফ-এর মূল চাবিকাঠি নয়।
ডেভিড

3
আপনি যখন ডাব্লুপিএফ-এ টানুন এবং ফেলেছেন, আমি প্রায়ই দেখতে পাই যে আপনি -1200 এর অনেকগুলি মার্জিন পেয়েছেন এবং এরকম জিনিসগুলি মোটেই বোঝা যায় না ... আমি সবসময় হাতে হাতে এটি নিশ্চিত করে নেওয়া ভাল
ম্লেমে

1
এটি বিষয় ছাড়াই। আপনার সমস্যাটি কেবল নিজেরাই নয়, সবার কাছে সাধারণ হয়ে রয়েছে তা নিশ্চিত করুন। এছাড়াও, আপনার যদি কিছু সমস্যা থাকে তবে আপনি ড্রাগ-এন-ড্রপটি খারাপ বলতে পারবেন না। ডিজাইনারের উপর নির্ভর করা এখনও প্রয়োজন এবং কখনও কখনও পছন্দসই হয়, আপনি সম্ভবত এটি সত্য দেখেন, যদি আপনি জানেন যে ডিজাইনার এবং বিকাশকারী উভয়ই কীভাবে অভিব্যক্তিটিকে স্বাগত জানায়।
ডেভিড

1
হ্যাঁ আপনি যদি এক্সপ্রেশন মিশ্রণটি ব্যবহার করেন, ঠিক আছে তবে আপনি এটি করতে পারেন, তবে আমি ভিজ্যুয়াল স্টুডিওতে কথা বলছিলাম ...
ম্লেমায়ে

12
আমি মনে করি ফর্ম থেকে আসা কাউকে পরামর্শ দেওয়া এবং ডিজাইনার ব্যবহার না করার জন্য ডাব্লুপিএফ শুরু করা সত্যিই খারাপ ধারণা। এক্সএএমএল বোঝার দ্রুততম উপায় হ'ল ড্রাগ এবং ড্রপ ব্যবহার করা এবং তারপরে কোডটি পর্যবেক্ষণ করা।
ইউকোডিয়া

7

আপনি যেমন করেছেন আমি এই প্রক্রিয়াটির মধ্য দিয়ে এসেছি। এরপরে আমি আমার সংস্থার ডাব্লুপিএফ-এর সবাইকে পড়াচ্ছিলাম। আমি কয়েকটি গুরুত্বপূর্ণ পাঠ শিখেছি এবং ডাব্লুপিএফ-এর সাথে কাজ করে এমন সবাইকে আমি জানি।

  1. আপনি যদি পিছনের কোডটিতে ইউআই নিয়ন্ত্রণের সাথে কাজ করছেন, .... তবে আপনি এটি ভুল করছেন। পিছনের কোডটিতে ইউআই নিয়ন্ত্রণগুলি মোকাবেলা করার জন্য আপনার একেবারেই দরকার নেই।
  2. এটিতে ক্লিক করার জন্য আপনার ভিজ্যুয়াল বিকাশকারী প্রয়োজন নেই। আপনি কেবল এক্সএএমএল নিয়ে কাজ করেই অনেক বেশি উত্পাদনশীল। অনুলিপি / আটকান ব্যবহার করুন। আপনার টাইপিং ক্ষমতার উপর বিশ্বাস করবেন না। এটি অনেকটা মাথা ব্যথা বাঁচাবে।
  3. এক্সএএমএলকে ঠিক এমন একটি উইন্ডো হিসাবে ভাবুন যা ডেটা ধরে রাখে। পেছনের কোডটিতে আপনি ডেটা পরিবর্তন করছেন। এক্সএএমএল-তে আপনি সংজ্ঞা দিচ্ছেন যে ইউআই কীভাবে ডেটাটি ব্যাখ্যা করবে।
  4. রূপান্তরকারী আশ্চর্যজনক। আপনি কীওয়ার্ভারগুলির একটি মূল পরিমাণ পাওয়ার সাথে সাথেই আপনার উত্পাদনশীলতা স্কাইকে উচ্চতর করে তুলবে। তারা লুকিয়ে বা পুনরায় আকার দিতে পারে এমন কন্ট্রোল ইভেন্ট ইভেন্টহেন্ডারগুলির ভূমিকা গ্রহণ করবে, বা ইউআই সম্পর্কে যা কখনও,

এটি ইউআই বিকাশকে মজাদার করে তোলে। বিশেষত একবার আপনি কীভাবে এটি Asyc প্রক্রিয়াগুলির সাথে খেলতে পছন্দ করেন তা জানতে পারেন। এটি সত্যই উইনফর্মগুলির কারণে প্রচুর মাথাব্যাথা সরিয়ে ফেলে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.