विंडोज फॉर्म

विंडोज फॉर्म्स (विनफॉर्म्स) एक मुक्त और मुक्त-स्रोत आलेखी (जीयूआई) वर्ग लाइब्रेरी है, जिसमें माइक्रोसॉफ्ट .NET, .NET फ्रेमवर्क या मोनो के एक भाग के रूप में सम्मिलित है, जो डेस्कटॉप, लैपटॉप और टैबलेट पीसी के लिए ग्राहक अनुप्रयोग लिखने के लिए एक प्लेटफॉर्म प्रदान करता है। जबकि इसे पहले और अधिक जटिल C++ आधारित माइक्रोसॉफ्ट आधार वर्ग लाइब्रेरी के प्रतिस्थापन के रूप में देखा जाता है, यह एक तुलनीय प्रतिमान प्रदान नहीं करता है और केवल बहुस्तरीय समाधान में उपयोगकर्ता अंतरापृष्ठ स्तर के लिए एक प्लेटफॉर्म के रूप में कार्य करता है।

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

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

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

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

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

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

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

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

.NET फ्रेमवर्क 2.0 में, विंडोज फॉर्म ने समृद्ध लेआउट नियंत्रण, कार्यालय 2003 शैली टूलस्ट्रिप नियंत्रण, बहु सूत्रण घटक, समृद्ध अभिकल्पना-अवधि और डेटा बाध्यकारी समर्थन के साथ-साथ वेब-आधारित परिनियोजन के लिए एक बार क्लिक प्राप्त किया।

.NET 3.0 की निवारण के साथ, माइक्रोसॉफ्ट ने जीयूआई का अनुवाद करने के लिए एक दूसरा, समानांतर एपीआई जारी किया: विंडोज प्रस्तुतीकरण आधार (डब्ल्यूपीएफ) डायरेक्टएक्स पर आधारित है, साथ में जीयूआई घोषणात्मक भाषा जिसे XAML कहा जाता है।

निर्माण 2014 सम्मेलन में एक सवाल-जवाब सत्र के दौरान, माइक्रोसॉफ्ट ने समझाया कि विंडोज फॉर्म अनुरक्षण प्रणाली में था, जिसमें कोई नई विशेषताएँ नहीं जोड़ी जा रही थीं, लेकिन स्थापित किए गए बग अभी भी ठीक हो जाएंगे। हाल ही में, .NET फ्रेमवर्क आरूप 4.5 के अद्यनीकृत में विभिन्न विंडोज फॉर्म नियंत्रण के लिए बेहतर उच्च -डीपीआई समर्थन प्रस्तावित किया गया था।

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

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

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

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

यह भी देखें

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