विंडोज फॉर्म

विंडोज फॉर्म्स (विनफॉर्म्स) एक मुक्त और खुला-स्रोत ग्राफिकल यूज़र इंटरफ़ेस (जीयूआई) पुस्तकालय (कम्प्यूटिंग) है जो माइक्रोसॉफ्ट .NET, .NET फ्रेमवर्क या मोनो (सॉफ्टवेयर) के हिस्से के रूप में शामिल है। डेस्कटॉप, लैपटॉप और टैबलेट पीसी के लिए क्लाइंट एप्लिकेशन लिखने के लिए एक मंच प्रदान करना। जबकि इसे पहले के और अधिक जटिल C++ आधारित Microsoft माइक्रोसॉफ्ट फाउंडेशन क्लास लाइब्रेरी प्रतिस्थापन के रूप में देखा जाता है, यह एक तुलनीय प्रतिमान प्रदान नहीं करता है और केवल एक बहुस्तरीय वास्तुकला|मल्टी-टियर सॉल्यूशन में यूजर इंटरफेस टियर के लिए एक प्लेटफॉर्म के रूप में कार्य करता है। 4 दिसंबर, 2018 को माइक्रोसॉफ्ट कनेक्ट इवेंट में, माइक्रोसॉफ्ट ने गिटहब पर ओपन सोर्स प्रोजेक्ट के रूप में विंडोज फॉर्म जारी करने की घोषणा की। यह मेरा लाइसेंस के तहत जारी किया गया है। इस रिलीज़ के साथ, .NET कोर फ्रेमवर्क को लक्षित करने वाली परियोजनाओं के लिए विंडोज़ फॉर्म उपलब्ध हो गए हैं। हालाँकि, फ्रेमवर्क अभी भी केवल विंडोज प्लेटफॉर्म पर उपलब्ध है, और मोनो फ्रेमवर्क | मोनो का अधूरा कार्यान्वयन विंडोज फॉर्म का एकमात्र क्रॉस-प्लेटफॉर्म कार्यान्वयन है।

वास्तु
विंडोज़ फॉर्म एप्लिकेशन एक घटना-संचालित प्रोग्रामिंग है। इवेंट-ड्रिवन एप्लिकेशन माइक्रोसॉफ्ट के .NET फ्रेमवर्क द्वारा समर्थित है। प्रचय संसाधन के विपरीत, यह अपना अधिकांश समय केवल उपयोगकर्ता द्वारा कुछ करने की प्रतीक्षा में व्यतीत करता है, जैसे पाठ बॉक्स भरना या बटन (कंप्यूटिंग) पर क्लिक करना। एप्लिकेशन के लिए कोड .NET प्रोग्रामिंग लैंग्वेज जैसे C Sharp (प्रोग्रामिंग लैंग्वेज)|C# या विजुअल बेसिक .NET में लिखा जा सकता है।

विंडोज फॉर्म मौजूदा विंडोज एपीआई को प्रबंधित कोड में लपेटकर देशी विंडोज यूजर कॉमन कंट्रोल तक पहुंच प्रदान करता है। विंडोज फॉर्म की मदद से, .NET फ्रेमवर्क विज़ुअल बेसिक या MFC की तुलना में Win32 API के ऊपर अधिक व्यापक अमूर्तता प्रदान करता है। क्लाइंट अनुप्रयोगों के विकास में विंडोज़ फॉर्म माइक्रोसॉफ्ट फाउंडेशन क्लास लाइब्रेरी (एमएफसी) लाइब्रेरी के समान है। यह विंडोज़ अनुप्रयोगों के विकास के लिए सी ++ कक्षाओं के एक सेट से युक्त एक रैपर प्रदान करता है। हालाँकि, यह MFC की तरह एक डिफ़ॉल्ट एप्लिकेशन फ्रेमवर्क प्रदान नहीं करता है। विंडोज़ फॉर्म एप्लिकेशन में प्रत्येक नियंत्रण कक्षा का एक ठोस उदाहरण है।

सुविधाएँ
विंडोज़ फॉर्म क्लास लाइब्रेरी में सभी दृश्य तत्व कंट्रोल क्लास से प्राप्त होते हैं। यह उपयोगकर्ता इंटरफ़ेस तत्व जैसे स्थान, आकार, रंग, फ़ॉन्ट, पाठ, साथ ही क्लिक और ड्रैग/ड्रॉप जैसी सामान्य घटनाओं की न्यूनतम कार्यक्षमता प्रदान करता है। कंट्रोल क्लास में डॉकिंग सपोर्ट भी होता है ताकि कंट्रोल अपने माता-पिता के तहत अपनी स्थिति को पुनर्व्यवस्थित कर सके। कंट्रोल क्लास में माइक्रोसॉफ्ट एक्टिव एक्सेसिबिलिटी सपोर्ट बिगड़ा हुआ उपयोगकर्ताओं को विंडोज फॉर्म का बेहतर उपयोग करने में मदद करता है। विज़ुअल स्टूडियो में, खींचें और छोड़ें तकनीकों का उपयोग करके फ़ॉर्म बनाए जाते हैं। प्रपत्र (विंडो) पर नियंत्रण (जैसे, टेक्स्ट बॉक्स, बटन, आदि) रखने के लिए एक उपकरण का उपयोग किया जाता है। नियंत्रणों में गुण (कंप्यूटिंग) और उनसे जुड़े ईवेंट हैंडलर होते हैं। नियंत्रण बनाए जाने पर डिफ़ॉल्ट मान प्रदान किए जाते हैं, लेकिन प्रोग्रामर द्वारा इसे बदला जा सकता है। एक गतिशील अनुप्रयोग प्रदान करते हुए उपयोगकर्ता के कार्यों या पर्यावरण में परिवर्तन के आधार पर रन टाइम के दौरान कई विशेषता मानों को संशोधित किया जा सकता है। उदाहरण के लिए, कोड को फॉर्म रीसाइज आयोजन प्रबंधकर्ता में डाला जा सकता है ताकि नियंत्रण को फिर से स्थापित किया जा सके ताकि यह फॉर्म पर केंद्रित रहे, फॉर्म भरने के लिए विस्तारित हो, आदि। टेक्स्ट बॉक्स में कीप्रेस के लिए इवेंट हैंडलर में कोड डालने से, प्रोग्राम स्वचालित रूप से दर्ज किए जा रहे पाठ का अनुवाद कर सकता है, या कुछ वर्णों को सम्मिलित होने से भी रोक सकता है।

बटन, टेक्स्टबॉक्स, चेकबॉक्स और लिस्टव्यू जैसे देशी विंडोज नियंत्रणों तक पहुंच प्रदान करने के अलावा, विंडोज फॉर्म ने ActiveX होस्टिंग, लेआउट व्यवस्था, सत्यापन और समृद्ध डेटा बाइंडिंग के लिए अपने स्वयं के नियंत्रण जोड़े। वे नियंत्रण ग्राफिक्स डिवाइस इंटरफ़ेस का उपयोग करके प्रदान किए जाते हैं।

इतिहास और भविष्य
सार विंडो टूलकिट (एडब्ल्यूटी), समतुल्य जावा (प्रोग्रामिंग भाषा) एपीआई की तरह, विंडोज फॉर्म .NET फ्रेमवर्क को ग्राफिकल यूजर इंटरफेस घटक प्रदान करने का एक प्रारंभिक और आसान तरीका था। विंडोज फॉर्म मौजूदा विंडोज एपीआई पर बनाया गया है और कुछ नियंत्रण केवल अंतर्निहित विंडोज घटकों को लपेटते हैं। कुछ विधियाँ Win32 कॉलबैक (कंप्यूटर प्रोग्रामिंग) तक सीधी पहुँच की अनुमति देती हैं, जो गैर-Windows प्लेटफ़ॉर्म में उपलब्ध नहीं हैं।

.NET फ्रेमवर्क 2.0 में, विंडोज फॉर्म ने समृद्ध लेआउट नियंत्रण, कार्यालय 2003 शैली टूलस्ट्रिप नियंत्रण, मल्टीथ्रेडिंग घटक, समृद्ध डिज़ाइन-टाइम और डेटा बाइंडिंग समर्थन के साथ-साथ वेब-आधारित परिनियोजन के लिए क्लिकऑन प्राप्त किया। .NET 3.0 की रिलीज़ के साथ, Microsoft ने GUI को रेंडर करने के लिए एक दूसरा, समानांतर API जारी किया: DirectX पर आधारित Windows प्रस्तुति फाउंडेशन (WPF), साथ में एक जीयूआई घोषणात्मक भाषा जिसे एक्स्टेंसिबल एप्लिकेशन मार्कअप लैंग्वेज कहा जाता है। बिल्ड (डेवलपर सम्मेलन) सम्मेलन में एक सवाल-जवाब सत्र के दौरान, माइक्रोसॉफ्ट ने समझाया कि विंडोज फॉर्म रखरखाव मोड में था, जिसमें कोई नई सुविधाएँ नहीं जोड़ी जा रही थीं, लेकिन पाए गए बग अभी भी ठीक हो जाएंगे। हाल ही में, .NET फ्रेमवर्क वर्जन 4.5 के अपडेट में विभिन्न विंडोज फॉर्म कंट्रोल के लिए बेहतर हाई-डीपीआई सपोर्ट पेश किया गया था।

XAML विंडोज फॉर्म्स के साथ पश्चगामी संगतता
भविष्य के विकास के लिए, माइक्रोसॉफ्ट ने विंडोज प्रेजेंटेशन फाउंडेशन और यूनिवर्सल विंडोज प्लेटफॉर्म जैसे फ्रेमवर्क का उपयोग करके एक्सएएमएल-आधारित जीयूआई प्रविष्टि के साथ विंडोज फॉर्म को सफल बनाया है। हालाँकि, Windows प्रपत्रों के समान तरीके से GUI घटकों का ड्रैग एंड ड्रॉप प्लेसमेंट अभी भी XAML में पेज/विंडो के रूट XAML तत्व को कैनवास UI-कंट्रोल के साथ बदलकर प्रदान किया जाता है। यह परिवर्तन करते समय, उपयोगकर्ता विज़ुअल स्टूडियो जीयूआई का उपयोग करके घटकों को सीधे खींचकर और गिराकर उसी तरह से एक विंडो बना सकता है जैसे कि विंडोज़ फॉर्म में।

जबकि XAML कैनवास नियंत्रण के माध्यम से ड्रैग एंड ड्रॉप प्लेसमेंट पश्चगामी संगतता प्रदान करता है, XAML नियंत्रण केवल Windows प्रपत्र नियंत्रणों के समान हैं और एक-से-एक पश्चगामी संगत नहीं हैं। वे समान कार्य करते हैं और एक समान दिखते हैं, लेकिन एक एपीआई से दूसरे में रीमैपिंग की आवश्यकता के लिए गुण और विधियाँ पर्याप्त भिन्न होती हैं।

वैकल्पिक कार्यान्वयन
मोनो (सॉफ्टवेयर) एक्समारिन (पूर्व में ξ सतह, फिर नोवेल द्वारा) के नेतृत्व वाली एक परियोजना है, जो एक्मा इंटरनेशनल मानक के अनुरूप .NET फ्रेमवर्क उपकरणों के संगत सेट का निर्माण करती है।

2011 में, मोनो (सॉफ्टवेयर) का System.Windows.Forms के लिए समर्थन .NET Framework संस्करण इतिहास#.NET Framework 2.0|.NET 2.0 के रूप में पूर्ण घोषित किया गया था; System.Windows.Forms 2.0 मैक ओएस एक्स पर मूल रूप से काम करता है। हालाँकि, System.Windows.Forms को मोनो पर सक्रिय रूप से विकसित नहीं किया गया है। .NET के साथ पूर्ण संगतता संभव नहीं थी, क्योंकि Microsoft का System.Windows फॉर्म मुख्य रूप से Windows API के चारों ओर एक आवरण है, और कुछ विधियाँ Win32 कॉलबैक (कंप्यूटर प्रोग्रामिंग) तक सीधी पहुँच की अनुमति देती हैं, जो कि Windows के अलावा अन्य प्लेटफ़ॉर्म में उपलब्ध नहीं हैं। एक अधिक महत्वपूर्ण समस्या यह है कि, संस्करण 5.2 के बाद से, मोनो को अपग्रेड किया गया है ताकि इसका डिफॉल्ट 64 बिट प्लेटफॉर्म मान लिया जाए। हालाँकि, Macintosh OS X प्लेटफ़ॉर्म के लिए मोनो पर System.Windows.Forms को 32 बिट सबसिस्टम, कार्बन (API) का उपयोग करके बनाया गया है। इस तिथि के अनुसार, Mac OS X पर उपयोग के लिए System.Windows.Forms का 64-बिट संस्करण अनुपलब्ध रहता है और केवल 32 बिट प्लेटफॉर्म के लिए निर्मित .NET अनुप्रयोगों के निष्पादन की उम्मीद की जा सकती है।

यह भी देखें

 * माइक्रोसॉफ्ट विजुअल स्टूडियो
 * एक बार क्लिक करें
 * सार विंडो टूलकिट (एडब्ल्यूटी), जावा (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा के लिए समतुल्य ग्राफिकल यूजर इंटरफेस एप्लीकेशन प्रोग्रामिंग इंटरफेस (एपीआई)
 * बोर्लैंड से विजुअल कंपोनेंट लाइब्रेरी (वीसीएल)।
 * विजुअल टेस्ट, टेस्ट ऑटोमेशन

बाहरी संबंध
<!--