विंडोज फॉर्म: Difference between revisions

From Vigyanwiki
(Created page with "{{update|date=January 2023}} {{short description|Graphical user interface software library}} {{Infobox software | name = Windows Forms (WinForms) | screensho...")
 
(TEXT)
Line 20: Line 20:
| website                = {{URL|https://docs.microsoft.com/en-us/dotnet/framework/winforms/}}
| website                = {{URL|https://docs.microsoft.com/en-us/dotnet/framework/winforms/}}
}}
}}
विंडोज फॉर्म्स (विनफॉर्म्स) एक [[मुक्त और खुला-स्रोत]] [[ग्राफिकल यूज़र इंटरफ़ेस]] (जीयूआई) [[पुस्तकालय (कम्प्यूटिंग)]] है जो [[माइक्रोसॉफ्ट]] .NET, .NET फ्रेमवर्क या [[मोनो (सॉफ्टवेयर)]] के हिस्से के रूप में शामिल है।<ref>{{cite book|title=Windows Forms Programming in C#|last=Sells|first=Chris|publisher=Addison-Wesley Professional|edition=1st|date=September 6, 2003|page=xxxviiii}}</ref> डेस्कटॉप, लैपटॉप और टैबलेट पीसी के लिए क्लाइंट एप्लिकेशन लिखने के लिए एक मंच प्रदान करना।<ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/ff647339.aspx|title=Design and Implementation Guidelines for Web Clients by Microsoft Pattern and Practices|publisher=Microsoft|date=November 2003}}</ref> जबकि इसे पहले के और अधिक जटिल [[C++]] आधारित Microsoft [[माइक्रोसॉफ्ट फाउंडेशन क्लास लाइब्रेरी]] प्रतिस्थापन के रूप में देखा जाता है, यह एक तुलनीय प्रतिमान प्रदान नहीं करता है<ref>{{cite book|chapter=Appendix B|title=Moving from MFC, Windows Forms 2.0 Programming|last1=Sells|first1=Chris|last2=Weinhardt|first2=Michael|publisher=Addison-Wesley Professional|edition=2nd|date=May 16, 2006}}</ref> और केवल एक [[बहुस्तरीय वास्तुकला]]|मल्टी-टियर सॉल्यूशन में यूजर इंटरफेस टियर के लिए एक प्लेटफॉर्म के रूप में कार्य करता है।<ref>{{cite web|title=Introduction to Windows Forms|type=Visual Studio 2003 documentation|publisher=Microsoft 2003|url=https://msdn.microsoft.com/en-us/library/aa983655(v=vs.71).aspx}}</ref>
विंडोज फॉर्म्स (विनफॉर्म्स) [[माइक्रोसॉफ्ट]] .NET, .NET फ्रेमवर्क या [[मोनो (सॉफ्टवेयर)|मोनो]] के एक भाग के रूप में सम्मिलित एक [[मुक्त और खुला-स्रोत]] [[ग्राफिकल यूज़र इंटरफ़ेस|आलेखी]] (जीयूआई) [[माइक्रोसॉफ्ट फाउंडेशन क्लास लाइब्रेरी|कक्षा लाइब्रेरी]] है, जो डेस्कटॉप, लैपटॉप और टैबलेट पीसी के लिए ग्राहक अनुप्रयोग लिखने के लिए एक प्लेटफॉर्म प्रदान करता है।<ref>{{cite book|title=Windows Forms Programming in C#|last=Sells|first=Chris|publisher=Addison-Wesley Professional|edition=1st|date=September 6, 2003|page=xxxviiii}}</ref> <ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/ff647339.aspx|title=Design and Implementation Guidelines for Web Clients by Microsoft Pattern and Practices|publisher=Microsoft|date=November 2003}}</ref> जबकि इसे पहले और अधिक जटिल [[C++]] आधारित [[माइक्रोसॉफ्ट फाउंडेशन क्लास लाइब्रेरी|माइक्रोसॉफ्ट फाउंडेशन कक्षा लाइब्रेरी]] के प्रतिस्थापन के रूप में देखा जाता है, यह एक तुलनीय प्रतिमान प्रदान नहीं करता है<ref>{{cite book|chapter=Appendix B|title=Moving from MFC, Windows Forms 2.0 Programming|last1=Sells|first1=Chris|last2=Weinhardt|first2=Michael|publisher=Addison-Wesley Professional|edition=2nd|date=May 16, 2006}}</ref> और केवल [[बहुस्तरीय वास्तुकला|बहुस्तरीय]] समाधान में उपयोगकर्ता  इंटरफ़ेस स्तर के लिए एक प्लेटफॉर्म  के रूप में कार्य करता है।<ref>{{cite web|title=Introduction to Windows Forms|type=Visual Studio 2003 documentation|publisher=Microsoft 2003|url=https://msdn.microsoft.com/en-us/library/aa983655(v=vs.71).aspx}}</ref>
4 दिसंबर, 2018 को [[माइक्रोसॉफ्ट कनेक्ट]] इवेंट में, माइक्रोसॉफ्ट ने गिटहब पर ओपन सोर्स प्रोजेक्ट के रूप में विंडोज फॉर्म जारी करने की घोषणा की। यह [[मेरा लाइसेंस]] के तहत जारी किया गया है। इस रिलीज़ के साथ, .NET कोर फ्रेमवर्क को लक्षित करने वाली परियोजनाओं के लिए विंडोज़ फॉर्म उपलब्ध हो गए हैं। हालाँकि, फ्रेमवर्क अभी भी केवल विंडोज प्लेटफॉर्म पर उपलब्ध है, और मोनो फ्रेमवर्क | मोनो का अधूरा कार्यान्वयन विंडोज फॉर्म का एकमात्र क्रॉस-प्लेटफॉर्म कार्यान्वयन है।<ref name="OpenSourcingGuiMartin">{{cite web |url=https://www.infoq.com/news/2018/12/msft-open-source-wpf-winforms | title=Microsoft Open Sources WPF, WinForms, and WinUI | last=Martin  | first=Jeff | work=InfoQ | date=4 December 2018| archive-date=2018-12-06|access-date=2018-12-06 }}</ref><ref name="OpenSourcingGuiHanselman">{{cite web |url=https://www.hanselman.com/blog/AnnouncingWPFWinFormsAndWinUIAreGoingOpenSource.aspx | title=Announcing WPF, WinForms, and WinUI are going Open Source | last=Hanselman | first=Scott | date=4 December 2018| archive-date=2018-12-06|access-date=2018-12-06 }}</ref>


 
4 दिसंबर, 2018 को [[माइक्रोसॉफ्ट कनेक्ट]] घटना में, माइक्रोसॉफ्ट ने गिटहब पर खुले स्रोत परियोजना के रूप में विंडोज फॉर्म जारी करने की घोषणा की है। यह [[मेरा लाइसेंस|एमआईटी अनुज्ञप्‍त]] के अंतर्गत जारी किया गया है। इस निवारण के साथ, .NET क्रोड फ्रेमवर्क को लक्षित करने वाली परियोजनाओं के लिए विंडोज़ फॉर्म उपलब्ध हो गए हैं। तथापि, फ्रेमवर्क अभी भी केवल विंडोज प्लेटफॉर्म पर उपलब्ध है, और मोनो फ्रेमवर्क | मोनो का विंडोज फॉर्म का अधूरा कार्यान्वयन विंडोज फॉर्म का एकमात्र क्रॉस-प्लेटफॉर्म कार्यान्वयन है।<ref name="OpenSourcingGuiMartin">{{cite web |url=https://www.infoq.com/news/2018/12/msft-open-source-wpf-winforms | title=Microsoft Open Sources WPF, WinForms, and WinUI | last=Martin  | first=Jeff | work=InfoQ | date=4 December 2018| archive-date=2018-12-06|access-date=2018-12-06 }}</ref><ref name="OpenSourcingGuiHanselman">{{cite web |url=https://www.hanselman.com/blog/AnnouncingWPFWinFormsAndWinUIAreGoingOpenSource.aspx | title=Announcing WPF, WinForms, and WinUI are going Open Source | last=Hanselman | first=Scott | date=4 December 2018| archive-date=2018-12-06|access-date=2018-12-06 }}</ref>
== वास्तु ==
== वास्तुकला ==
[[File:DotNet3.0.svg|thumb|right|300px|यह [[अप्लिकेशन प्रोग्रामिंग अंतरफलक]] .NET Framework 3.0 का एक हिस्सा है]]विंडोज़ फॉर्म एप्लिकेशन एक [[घटना-संचालित प्रोग्रामिंग]] है। इवेंट-ड्रिवन एप्लिकेशन माइक्रोसॉफ्ट के .NET फ्रेमवर्क द्वारा समर्थित है। [[प्रचय संसाधन]] के विपरीत, यह अपना अधिकांश समय केवल उपयोगकर्ता द्वारा कुछ करने की प्रतीक्षा में व्यतीत करता है, जैसे [[पाठ बॉक्स]] भरना या [[बटन (कंप्यूटिंग)]] पर क्लिक करना। एप्लिकेशन के लिए कोड .NET प्रोग्रामिंग लैंग्वेज जैसे C Sharp (प्रोग्रामिंग लैंग्वेज)|C# या विजुअल बेसिक .NET में लिखा जा सकता है।
[[File:DotNet3.0.svg|thumb|right|300px|यह [[अप्लिकेशन प्रोग्रामिंग अंतरफलक]] .NET Framework 3.0 का एक हिस्सा है]]विंडोज़ फॉर्म अनुप्रयोग एक [[घटना-संचालित प्रोग्रामिंग|घटना-संचालित अनुप्रयोग]] है जो माइक्रोसॉफ्ट के .NET फ्रेमवर्क द्वारा समर्थित है। [[प्रचय संसाधन]] के विपरीत, यह अपना अधिकांश समय केवल उपयोगकर्ता द्वारा कुछ करने की प्रतीक्षा में व्यतीत करता है, जैसे [[पाठ बॉक्स]] भरना या [[बटन (कंप्यूटिंग)]] पर क्लिक करना। अनुप्रयोग के लिए कोड .NET प्रोग्रामिंग लैंग्वेज जैसे C Sharp (प्रोग्रामिंग लैंग्वेज)|C# या विजुअल बेसिक .NET में लिखा जा सकता है।


विंडोज फॉर्म मौजूदा [[विंडोज एपीआई]] को [[प्रबंधित कोड]] में लपेटकर देशी [[विंडोज यूजर]] कॉमन कंट्रोल तक पहुंच प्रदान करता है।<ref>{{cite book|url=http://www.informit.com/articles/article.aspx?p=2048355&seqNum=4|title=C# 4.0 Unleashed|last=De Smet|first=Bart|publisher=Sams Publishing|date=January 4, 2011|chapter=Chapter 5}}</ref> विंडोज फॉर्म की मदद से, .NET फ्रेमवर्क विज़ुअल बेसिक या MFC की तुलना में Win32 API के ऊपर अधिक व्यापक अमूर्तता प्रदान करता है।<ref>{{cite book|title=NET Windows Forms in a Nutshell|last1=Griffiths|first1=Ian|last2=Adams|first2=Matthew|publisher=O'Reilly Media|date=March 2003|page=4}}</ref>
विंडोज फॉर्म मौजूदा [[विंडोज एपीआई]] को [[प्रबंधित कोड]] में लपेटकर देशी [[विंडोज यूजर]] कॉमन कंट्रोल तक पहुंच प्रदान करता है।<ref>{{cite book|url=http://www.informit.com/articles/article.aspx?p=2048355&seqNum=4|title=C# 4.0 Unleashed|last=De Smet|first=Bart|publisher=Sams Publishing|date=January 4, 2011|chapter=Chapter 5}}</ref> विंडोज फॉर्म की मदद से, .NET फ्रेमवर्क विज़ुअल बेसिक या MFC की तुलना में Win32 API के ऊपर अधिक व्यापक अमूर्तता प्रदान करता है।<ref>{{cite book|title=NET Windows Forms in a Nutshell|last1=Griffiths|first1=Ian|last2=Adams|first2=Matthew|publisher=O'Reilly Media|date=March 2003|page=4}}</ref>
क्लाइंट अनुप्रयोगों के विकास में विंडोज़ फॉर्म माइक्रोसॉफ्ट फाउंडेशन क्लास लाइब्रेरी (एमएफसी) लाइब्रेरी के समान है। यह विंडोज़ अनुप्रयोगों के विकास के लिए सी ++ कक्षाओं के एक सेट से युक्त एक रैपर प्रदान करता है। हालाँकि, यह MFC की तरह एक डिफ़ॉल्ट एप्लिकेशन फ्रेमवर्क प्रदान नहीं करता है। विंडोज़ फॉर्म एप्लिकेशन में प्रत्येक नियंत्रण कक्षा का एक ठोस उदाहरण है।
क्लाइंट अनुप्रयोगों के विकास में विंडोज़ फॉर्म माइक्रोसॉफ्ट फाउंडेशन कक्षा लाइब्रेरी (एमएफसी) लाइब्रेरी के समान है। यह विंडोज़ अनुप्रयोगों के विकास के लिए सी ++ कक्षाओं के एक सेट से युक्त एक रैपर प्रदान करता है। तथापि, यह MFC की तरह एक डिफ़ॉल्ट अनुप्रयोग फ्रेमवर्क प्रदान नहीं करता है। विंडोज़ फॉर्म अनुप्रयोग में प्रत्येक नियंत्रण कक्षा का एक ठोस उदाहरण है।


== सुविधाएँ ==
== सुविधाएँ ==
विंडोज़ फॉर्म क्लास लाइब्रेरी में सभी दृश्य तत्व कंट्रोल क्लास से प्राप्त होते हैं। यह उपयोगकर्ता इंटरफ़ेस तत्व जैसे स्थान, आकार, रंग, फ़ॉन्ट, पाठ, साथ ही क्लिक और ड्रैग/ड्रॉप जैसी सामान्य घटनाओं की न्यूनतम कार्यक्षमता प्रदान करता है। कंट्रोल क्लास में डॉकिंग सपोर्ट भी होता है ताकि कंट्रोल अपने माता-पिता के तहत अपनी स्थिति को पुनर्व्यवस्थित कर सके। कंट्रोल क्लास में [[माइक्रोसॉफ्ट एक्टिव एक्सेसिबिलिटी]] सपोर्ट बिगड़ा हुआ उपयोगकर्ताओं को विंडोज फॉर्म का बेहतर उपयोग करने में मदद करता है।<ref name="Griffiths2003">{{cite book|title=NET Windows Forms in a Nutshell|last1=Griffiths|first1=Ian|last2=Adams|first2=Matthew|publisher=O'Reilly Media|date=March 2003|pages=27–53}}</ref>
विंडोज़ फॉर्म कक्षा लाइब्रेरी में सभी दृश्य तत्व कंट्रोल कक्षा से प्राप्त होते हैं। यह उपयोगकर्ता इंटरफ़ेस तत्व जैसे स्थान, आकार, रंग, फ़ॉन्ट, पाठ, साथ ही क्लिक और ड्रैग/ड्रॉप जैसी सामान्य घटनाओं की न्यूनतम कार्यक्षमता प्रदान करता है। कंट्रोल कक्षा में डॉकिंग सपोर्ट भी होता है ताकि कंट्रोल अपने माता-पिता के अंतर्गत अपनी स्थिति को पुनर्व्यवस्थित कर सके। कंट्रोल कक्षा में [[माइक्रोसॉफ्ट एक्टिव एक्सेसिबिलिटी]] सपोर्ट बिगड़ा हुआ उपयोगकर्ताओं को विंडोज फॉर्म का बेहतर उपयोग करने में मदद करता है।<ref name="Griffiths2003">{{cite book|title=NET Windows Forms in a Nutshell|last1=Griffiths|first1=Ian|last2=Adams|first2=Matthew|publisher=O'Reilly Media|date=March 2003|pages=27–53}}</ref>
विज़ुअल स्टूडियो में, [[खींचें और छोड़ें]] तकनीकों का उपयोग करके फ़ॉर्म बनाए जाते हैं। प्रपत्र (विंडो) पर नियंत्रण (जैसे, टेक्स्ट बॉक्स, बटन, आदि) रखने के लिए एक उपकरण का उपयोग किया जाता है। नियंत्रणों में गुण (कंप्यूटिंग) और उनसे जुड़े ईवेंट हैंडलर होते हैं। नियंत्रण बनाए जाने पर डिफ़ॉल्ट मान प्रदान किए जाते हैं, लेकिन प्रोग्रामर द्वारा इसे बदला जा सकता है। एक गतिशील अनुप्रयोग प्रदान करते हुए उपयोगकर्ता के कार्यों या पर्यावरण में परिवर्तन के आधार पर रन टाइम के दौरान कई विशेषता मानों को संशोधित किया जा सकता है। उदाहरण के लिए, कोड को फॉर्म रीसाइज [[आयोजन प्रबंधकर्ता]] में डाला जा सकता है ताकि नियंत्रण को फिर से स्थापित किया जा सके ताकि यह फॉर्म पर केंद्रित रहे, फॉर्म भरने के लिए विस्तारित हो, आदि। टेक्स्ट बॉक्स में कीप्रेस के लिए इवेंट हैंडलर में कोड डालने से, प्रोग्राम स्वचालित रूप से दर्ज किए जा रहे पाठ का अनुवाद कर सकता है, या कुछ वर्णों को सम्मिलित होने से भी रोक सकता है।
विज़ुअल स्टूडियो में, [[खींचें और छोड़ें]] तकनीकों का उपयोग करके फ़ॉर्म बनाए जाते हैं। प्रपत्र (विंडो) पर नियंत्रण (जैसे, टेक्स्ट बॉक्स, बटन, आदि) रखने के लिए एक उपकरण का उपयोग किया जाता है। नियंत्रणों में गुण (कंप्यूटिंग) और उनसे जुड़े ईवेंट हैंडलर होते हैं। नियंत्रण बनाए जाने पर डिफ़ॉल्ट मान प्रदान किए जाते हैं, लेकिन प्रोग्रामर द्वारा इसे बदला जा सकता है। एक गतिशील अनुप्रयोग प्रदान करते हुए उपयोगकर्ता के कार्यों या पर्यावरण में परिवर्तन के आधार पर रन टाइम के दौरान कई विशेषता मानों को संशोधित किया जा सकता है। उदाहरण के लिए, कोड को फॉर्म रीसाइज [[आयोजन प्रबंधकर्ता]] में डाला जा सकता है ताकि नियंत्रण को फिर से स्थापित किया जा सके ताकि यह फॉर्म पर केंद्रित रहे, फॉर्म भरने के लिए विस्तारित हो, आदि। टेक्स्ट बॉक्स में कीप्रेस के लिए इवेंट हैंडलर में कोड डालने से, प्रोग्राम स्वचालित रूप से दर्ज किए जा रहे पाठ का अनुवाद कर सकता है, या कुछ वर्णों को सम्मिलित होने से भी रोक सकता है।


बटन, टेक्स्टबॉक्स, चेकबॉक्स और लिस्टव्यू जैसे देशी विंडोज नियंत्रणों तक पहुंच प्रदान करने के अलावा, विंडोज फॉर्म ने [[ActiveX]] होस्टिंग, लेआउट व्यवस्था, सत्यापन और समृद्ध डेटा बाइंडिंग के लिए अपने स्वयं के नियंत्रण जोड़े। वे नियंत्रण [[ग्राफिक्स डिवाइस इंटरफ़ेस]] का उपयोग करके प्रदान किए जाते हैं।<ref name="Griffiths2003"/>
बटन, टेक्स्टबॉक्स, चेकबॉक्स और लिस्टव्यू जैसे देशी विंडोज नियंत्रणों तक पहुंच प्रदान करने के अलावा, विंडोज फॉर्म ने [[ActiveX]] होस्टिंग, लेआउट व्यवस्था, सत्यापन और समृद्ध डेटा बाइंडिंग के लिए अपने स्वयं के नियंत्रण जोड़े। वे नियंत्रण [[ग्राफिक्स डिवाइस इंटरफ़ेस]] का उपयोग करके प्रदान किए जाते हैं।<ref name="Griffiths2003"/>
== इतिहास और भविष्य ==
== इतिहास और भविष्य ==
[[सार विंडो टूलकिट]] (एडब्ल्यूटी), समतुल्य [[जावा (प्रोग्रामिंग भाषा)]] एपीआई की तरह, विंडोज फॉर्म .NET फ्रेमवर्क को ग्राफिकल यूजर इंटरफेस घटक प्रदान करने का एक प्रारंभिक और आसान तरीका था। विंडोज फॉर्म मौजूदा विंडोज एपीआई पर बनाया गया है और कुछ नियंत्रण केवल अंतर्निहित विंडोज घटकों को लपेटते हैं।<ref name="monofaq-winform">{{cite web
[[सार विंडो टूलकिट]] (एडब्ल्यूटी), समतुल्य [[जावा (प्रोग्रामिंग भाषा)]] एपीआई की तरह, विंडोज फॉर्म .NET फ्रेमवर्क को ग्राफिकल यूजर इंटरफेस घटक प्रदान करने का एक प्रारंभिक और आसान तरीका था। विंडोज फॉर्म मौजूदा विंडोज एपीआई पर बनाया गया है और कुछ नियंत्रण केवल अंतर्निहित विंडोज घटकों को लपेटते हैं।<ref name="monofaq-winform">{{cite web
Line 45: Line 42:


.NET फ्रेमवर्क 2.0 में, विंडोज फॉर्म ने समृद्ध लेआउट नियंत्रण, कार्यालय 2003 शैली टूलस्ट्रिप नियंत्रण, मल्टीथ्रेडिंग घटक, समृद्ध डिज़ाइन-टाइम और डेटा बाइंडिंग समर्थन के साथ-साथ वेब-आधारित परिनियोजन के लिए क्लिकऑन प्राप्त किया।<ref>{{cite book|chapter=Appendix A. What s New in Windows Forms 2.0|title=Windows Forms 2.0 Programming|last1=Sells|first1=Chris|last2=Weinhardt|first2=Michael|publisher=Addison-Wesley Professional|edition=2nd|date=May 16, 2006}}</ref><ref>{{cite book|title=Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET|url=https://archive.org/details/databindingwithw0000noye|url-access=registration|last=Noyes|first=Brian|publisher=Addison-Wesley Professional|edition=1st|date=January 12, 2006|chapter=Preface}}</ref>
.NET फ्रेमवर्क 2.0 में, विंडोज फॉर्म ने समृद्ध लेआउट नियंत्रण, कार्यालय 2003 शैली टूलस्ट्रिप नियंत्रण, मल्टीथ्रेडिंग घटक, समृद्ध डिज़ाइन-टाइम और डेटा बाइंडिंग समर्थन के साथ-साथ वेब-आधारित परिनियोजन के लिए क्लिकऑन प्राप्त किया।<ref>{{cite book|chapter=Appendix A. What s New in Windows Forms 2.0|title=Windows Forms 2.0 Programming|last1=Sells|first1=Chris|last2=Weinhardt|first2=Michael|publisher=Addison-Wesley Professional|edition=2nd|date=May 16, 2006}}</ref><ref>{{cite book|title=Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET|url=https://archive.org/details/databindingwithw0000noye|url-access=registration|last=Noyes|first=Brian|publisher=Addison-Wesley Professional|edition=1st|date=January 12, 2006|chapter=Preface}}</ref>
.NET 3.0 की रिलीज़ के साथ, Microsoft ने GUI को रेंडर करने के लिए एक दूसरा, समानांतर API जारी किया: DirectX पर आधारित Windows प्रस्तुति फाउंडेशन (WPF),<ref>{{cite book|section=DirectX, not GDI+|title=Pro WPF and Silverlight MVVM: Effective Application Development with Model|last=Hall|first=Gary|publisher=Apress|edition=2010|date=December 27, 2010|page=2}}</ref> साथ में एक जीयूआई घोषणात्मक भाषा जिसे [[एक्स्टेंसिबल एप्लिकेशन मार्कअप लैंग्वेज]] कहा जाता है।<ref>{{cite web
.NET 3.0 की रिलीज़ के साथ, Microsoft ने GUI को रेंडर करने के लिए एक दूसरा, समानांतर API जारी किया: DirectX पर आधारित Windows प्रस्तुति फाउंडेशन (WPF),<ref>{{cite book|section=DirectX, not GDI+|title=Pro WPF and Silverlight MVVM: Effective Application Development with Model|last=Hall|first=Gary|publisher=Apress|edition=2010|date=December 27, 2010|page=2}}</ref> साथ में एक जीयूआई घोषणात्मक भाषा जिसे [[एक्स्टेंसिबल एप्लिकेशन मार्कअप लैंग्वेज|एक्स्टेंसिबल अनुप्रयोग मार्कअप लैंग्वेज]] कहा जाता है।<ref>{{cite web
| access-date = 2011-08-25
| access-date = 2011-08-25
| last      = Smith
| last      = Smith
Line 77: Line 74:
| quote=''Windows Forms is continuing to be supported, but in maintenance mode. They will fix bugs as they are discovered, but new functionality is off the table''
| quote=''Windows Forms is continuing to be supported, but in maintenance mode. They will fix bugs as they are discovered, but new functionality is off the table''
| access-date=2014-04-21}}</ref> हाल ही में, .NET फ्रेमवर्क वर्जन 4.5 के अपडेट में विभिन्न विंडोज फॉर्म कंट्रोल के लिए बेहतर हाई-डीपीआई सपोर्ट पेश किया गया था।<ref>{{Cite web|url = http://www.infoq.com/news/2014/05/DotNet-4-5-2|title = High DPI Improvements for Windows Forms in .NET 4.5.2|date = 2014-05-06|access-date = 2015-02-10|website = InfoQ|last = Allen|first = Jonathan}}</ref>
| access-date=2014-04-21}}</ref> हाल ही में, .NET फ्रेमवर्क वर्जन 4.5 के अपडेट में विभिन्न विंडोज फॉर्म कंट्रोल के लिए बेहतर हाई-डीपीआई सपोर्ट पेश किया गया था।<ref>{{Cite web|url = http://www.infoq.com/news/2014/05/DotNet-4-5-2|title = High DPI Improvements for Windows Forms in .NET 4.5.2|date = 2014-05-06|access-date = 2015-02-10|website = InfoQ|last = Allen|first = Jonathan}}</ref>
==XAML विंडोज फॉर्म्स के साथ पश्चगामी संगतता ==
==XAML विंडोज फॉर्म्स के साथ पश्चगामी संगतता ==
भविष्य के विकास के लिए, माइक्रोसॉफ्ट ने विंडोज प्रेजेंटेशन फाउंडेशन और [[यूनिवर्सल विंडोज प्लेटफॉर्म]] जैसे फ्रेमवर्क का उपयोग करके [[एक्सएएमएल]]-आधारित जीयूआई प्रविष्टि के साथ विंडोज फॉर्म को सफल बनाया है। हालाँकि, Windows प्रपत्रों के समान तरीके से GUI घटकों का ड्रैग एंड ड्रॉप प्लेसमेंट अभी भी XAML में पेज/विंडो के रूट XAML तत्व को कैनवास UI-कंट्रोल के साथ बदलकर प्रदान किया जाता है। यह परिवर्तन करते समय, उपयोगकर्ता विज़ुअल स्टूडियो जीयूआई का उपयोग करके घटकों को सीधे खींचकर और गिराकर उसी तरह से एक विंडो बना सकता है जैसे कि विंडोज़ फॉर्म में।
भविष्य के विकास के लिए, माइक्रोसॉफ्ट ने विंडोज प्रेजेंटेशन फाउंडेशन और [[यूनिवर्सल विंडोज प्लेटफॉर्म]] जैसे फ्रेमवर्क का उपयोग करके [[एक्सएएमएल]]-आधारित जीयूआई प्रविष्टि के साथ विंडोज फॉर्म को सफल बनाया है। तथापि, Windows प्रपत्रों के समान तरीके से GUI घटकों का ड्रैग एंड ड्रॉप प्लेसमेंट अभी भी XAML में पेज/विंडो के रूट XAML तत्व को कैनवास UI-कंट्रोल के साथ बदलकर प्रदान किया जाता है। यह परिवर्तन करते समय, उपयोगकर्ता विज़ुअल स्टूडियो जीयूआई का उपयोग करके घटकों को सीधे खींचकर और गिराकर उसी तरह से एक विंडो बना सकता है जैसे कि विंडोज़ फॉर्म में।


जबकि XAML कैनवास नियंत्रण के माध्यम से ड्रैग एंड ड्रॉप प्लेसमेंट पश्चगामी संगतता प्रदान करता है, XAML नियंत्रण केवल Windows प्रपत्र नियंत्रणों के समान हैं और एक-से-एक पश्चगामी संगत नहीं हैं। वे समान कार्य करते हैं और एक समान दिखते हैं, लेकिन एक एपीआई से दूसरे में रीमैपिंग की आवश्यकता के लिए गुण और विधियाँ पर्याप्त भिन्न होती हैं।
जबकि XAML कैनवास नियंत्रण के माध्यम से ड्रैग एंड ड्रॉप प्लेसमेंट पश्चगामी संगतता प्रदान करता है, XAML नियंत्रण केवल Windows प्रपत्र नियंत्रणों के समान हैं और एक-से-एक पश्चगामी संगत नहीं हैं। वे समान कार्य करते हैं और एक समान दिखते हैं, लेकिन एक एपीआई से दूसरे में रीमैपिंग की आवश्यकता के लिए गुण और विधियाँ पर्याप्त भिन्न होती हैं।
Line 99: Line 94:
| quote=''Does Winforms run on OSX? Yes, as of Mono 1.9, Winforms has a native OSX driver that it uses by default''
| quote=''Does Winforms run on OSX? Yes, as of Mono 1.9, Winforms has a native OSX driver that it uses by default''
| access-date=2011-07-30}}</ref>
| access-date=2011-07-30}}</ref>
हालाँकि, System.Windows.Forms को मोनो पर सक्रिय रूप से विकसित नहीं किया गया है।<ref>{{cite web
तथापि, System.Windows.Forms को मोनो पर सक्रिय रूप से विकसित नहीं किया गया है।<ref>{{cite web
  |url=http://tirania.org/blog/archive/2011/Mar-07.html
  |url=http://tirania.org/blog/archive/2011/Mar-07.html
  | title=GDC 2011
  | title=GDC 2011
Line 115: Line 110:
}}</ref>
}}</ref>
मोनो को अपग्रेड किया गया है ताकि इसका डिफॉल्ट 64 बिट प्लेटफॉर्म मान लिया जाए।
मोनो को अपग्रेड किया गया है ताकि इसका डिफॉल्ट 64 बिट प्लेटफॉर्म मान लिया जाए।
हालाँकि, Macintosh OS X प्लेटफ़ॉर्म के लिए मोनो पर System.Windows.Forms को 32 बिट सबसिस्टम, कार्बन (API) का उपयोग करके बनाया गया है।<ref>{{cite web
तथापि, Macintosh OS X प्लेटफ़ॉर्म के लिए मोनो पर System.Windows.Forms को 32 बिट सबसिस्टम, कार्बन (API) का उपयोग करके बनाया गया है।<ref>{{cite web
  |url=https://www.infoq.com/news/2018/02/mono-forms-carbon64/
  |url=https://www.infoq.com/news/2018/02/mono-forms-carbon64/
  | title=Windows.Forms Comes to 64-bit Mac OS X
  | title=Windows.Forms Comes to 64-bit Mac OS X
Line 143: Line 138:


[[Category: Machine Translated Page]]
[[Category: Machine Translated Page]]
[[Category:Created On 18/02/2023]]
[[Category:Created On 18/02/2023]]-->

Revision as of 12:53, 3 March 2023

Windows Forms (WinForms)
Other namesWinForms
Original author(s).NET: Microsoft,
Mono: Ximian/Novell
Developer(s).NET Foundation
Initial releaseFebruary 13, 2002; 22 years ago (2002-02-13)
Stable release
v5.0.17 / May 11, 2022; 2 years ago (2022-05-11)
Written inC#
Operating systemMicrosoft Windows
Platform.NET Framework, .NET, Mono
TypeSoftware framework
LicenseMIT License
Websitedocs.microsoft.com/en-us/dotnet/framework/winforms/

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

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

वास्तुकला

यह अप्लिकेशन प्रोग्रामिंग अंतरफलक .NET Framework 3.0 का एक हिस्सा है

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

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

सुविधाएँ

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

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

इतिहास और भविष्य

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

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

XAML विंडोज फॉर्म्स के साथ पश्चगामी संगतता

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

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

वैकल्पिक कार्यान्वयन

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

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

यह भी देखें

संदर्भ

  1. Sells, Chris (September 6, 2003). Windows Forms Programming in C# (1st ed.). Addison-Wesley Professional. p. xxxviiii.
  2. "Design and Implementation Guidelines for Web Clients by Microsoft Pattern and Practices". Microsoft. November 2003.
  3. Sells, Chris; Weinhardt, Michael (May 16, 2006). "Appendix B". Moving from MFC, Windows Forms 2.0 Programming (2nd ed.). Addison-Wesley Professional.
  4. "Introduction to Windows Forms" (Visual Studio 2003 documentation). Microsoft 2003.
  5. Martin, Jeff (4 December 2018). "Microsoft Open Sources WPF, WinForms, and WinUI". InfoQ. Retrieved 2018-12-06. {{cite web}}: |archive-date= requires |archive-url= (help)
  6. Hanselman, Scott (4 December 2018). "Announcing WPF, WinForms, and WinUI are going Open Source". Retrieved 2018-12-06. {{cite web}}: |archive-date= requires |archive-url= (help)
  7. De Smet, Bart (January 4, 2011). "Chapter 5". C# 4.0 Unleashed. Sams Publishing.
  8. Griffiths, Ian; Adams, Matthew (March 2003). NET Windows Forms in a Nutshell. O'Reilly Media. p. 4.
  9. 9.0 9.1 Griffiths, Ian; Adams, Matthew (March 2003). NET Windows Forms in a Nutshell. O'Reilly Media. pp. 27–53.
  10. 10.0 10.1 10.2 "FAQ: Winforms". mono-project.com. It is very unlikely that the implementation will ever implement everything needed for full compatibility with Windows.Forms. The reason is that Windows.Forms is not a complete toolkit, and to work around this problem some of the underlying Win32 foundation is exposed to the programmer in the form of exposing the Windows message handler
  11. Sells, Chris; Weinhardt, Michael (May 16, 2006). "Appendix A. What s New in Windows Forms 2.0". Windows Forms 2.0 Programming (2nd ed.). Addison-Wesley Professional.
  12. Noyes, Brian (January 12, 2006). "Preface". Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET (1st ed.). Addison-Wesley Professional.
  13. Hall, Gary (December 27, 2010). "DirectX, not GDI+". Pro WPF and Silverlight MVVM: Effective Application Development with Model (2010 ed.). Apress. p. 2.
  14. Smith, Josh (2007-09-05). "WPF vs. Windows Forms". Josh Smith on WPF. Retrieved 2011-08-25. WPF is not intended to replace Windows Forms. [...] Windows Forms is still alive and well, and will continue to be enhanced and supported by Microsoft for years to come. WPF is simply another tool for Windows desktop application developers to use, when appropriate.
  15. "A WPF Q&A". infoq.com. 2014-04-03. Retrieved 2014-04-21. Windows Forms is continuing to be supported, but in maintenance mode. They will fix bugs as they are discovered, but new functionality is off the table
  16. Allen, Jonathan (2014-05-06). "High DPI Improvements for Windows Forms in .NET 4.5.2". InfoQ. Retrieved 2015-02-10.
  17. "WinForms". mono-project.com. Retrieved 2011-07-30. Support for Windows Forms 2.0 is complete. At this point, we are largely just fixing bugs and polishing our code.
  18. "WinForms". mono-project.com. Retrieved 2011-07-30. Does Winforms run on OSX? Yes, as of Mono 1.9, Winforms has a native OSX driver that it uses by default
  19. de Icaza, Miguel (2011-03-07). "GDC 2011". Retrieved 2011-07-30. For tools that are mostly OpenGL/DirectX based, use Windows.Forms, keeping in mind that some bug fixing or work around on their part might be needed as our Windows.Forms is not actively developed.
  20. "Introduction to Mono on macOS". mono-project.com. Retrieved 2019-11-12.
  21. Martin, Jess. "Windows.Forms Comes to 64-bit Mac OS X". Retrieved 2019-11-12.


बाहरी संबंध