विंडोज फॉर्म: 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...")
 
No edit summary
 
(10 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{update|date=January 2023}}
{{short description|Graphical user interface software library}}
{{short description|Graphical user interface software library}}
{{Infobox software
{{Infobox software
| name                  = Windows Forms (WinForms)
| name                  = विंडोज फॉर्म (विनफॉर्म)
| screenshot            = Screenshot of WinForms Designer as seen in Visual Studio 2019.png
| screenshot            = दृश्य स्टूडियो में देखे गए विनफॉर्म अभिकल्प का स्क्रीनशॉट 2019.png
| screenshot alt        = Screenshot of Windows Forms designer as seen in [[Visual Studio 2019]].
| screenshot alt        = विंडोज़ फॉर्म अभिकल्प का स्क्रीनशॉट जैसा कि इसमें देखा गया है[[दृश्य स्टूडियो 2019]].
| author                = [[.NET Framework|.NET]]: [[Microsoft]],<br />[[Mono Framework|Mono]]: [[Ximian]]/[[Novell]]
| author                = [[.NET फ्रेमवर्क|.NET]]: [[माइक्रोसॉफ्ट]],<br />[[मोनो फ्रेमवर्क|मोनो ]]: [[Ximian]]/[[नोवेल]]
| other_names            = WinForms
| other_names            = विनफॉर्म
| developer              = [[.NET Foundation]]
| developer              = [[.NET फाउंडेशन]]
| released              = {{Start date and age|2002|02|13}}
| released              = {{प्रारंभ तिथि और उम्र|2002|02|13}}
| latest release version = v5.0.17
| latest release version = v5.0.17
| latest release date    = {{Start date and age|2022|05|11}}
| latest release date    = {{प्रारंभ तिथि और उम्र|2022|05|11}}
| latest preview version =  
| latest preview version =  
| latest preview date    =  
| latest preview date    =  
| programming language  = [[C Sharp (programming language)|C#]]
| programming language  = [[C प्रखर (क्रमादेशन भाषा)|C#]]
| operating system      = [[Microsoft Windows]]
| operating system      = [[माइक्रोसॉफ़्ट विंडोज़]]
| platform              = [[.NET Framework]], [[.NET]], [[Mono (software)|Mono]]
| platform              = [[.NET विनफॉर्म]], [[.NET]], [[मोनो (सॉफ़्टवेयर)|मोनो]]
| genre                  = [[Software framework]]
| genre                  = [[सॉफ्टवेयर फ्रेमवर्क]]
| license                = [[MIT License]]
| license                = [[MIT लाइसेंस]]
| 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 फ्रेमवर्क 3.0 का एक भाग है]]विंडोज़ फॉर्म अनुप्रयोग एक [[घटना-संचालित प्रोग्रामिंग|घटना-संचालित अनुप्रयोग]] है जो माइक्रोसॉफ्ट के .NET फ्रेमवर्क द्वारा समर्थित है। एक वर्ग क्रमादेश के विपरीत, यह अपना अधिकांश समय केवल उपयोगकर्ता द्वारा कुछ करने की प्रतीक्षा में व्यतीत करता है, जैसे [[पाठ बॉक्स|टेक्स्ट बॉक्स]] भरण या [[बटन (कंप्यूटिंग)|बटन]] पर क्लिक करना। अनुप्रयोग के लिए कूट .NET क्रमदेशन भाषा जैसे C# या दृश्य आधार में लिखा जा सकता है।


== वास्तु ==
विंडोज फॉर्म उपस्थित [[विंडोज एपीआई]] को [[प्रबंधित कोड|प्रबंधित कूट]] में वेष्टन देशी [[विंडोज यूजर|विंडोज उपयोगकर्ता]] सामान्य नियंत्रण तक पहुंच प्रदान करता है।<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 फ्रेमवर्क दृश्य आधार या एमएफसी की तुलना विन 32 एपीआई के ऊपर अधिक व्यापक अमूर्तता प्रदान करता है।<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>
[[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>
विंडोज फॉर्म ग्राहक अनुप्रयोग विकसित करने में माइक्रोसॉफ्ट आधार वर्ग (एमएफसी) लाइब्रेरी के समान है। यह विंडोज़ अनुप्रयोगों के विकास के लिए C++ वर्ग के एक समुच्चय से युक्त एक आवरण प्रदान करता है। तथापि, यह एमएफसी की तरह एक व्यतिक्रम अनुप्रयोग फ्रेमवर्क प्रदान नहीं करता है। विंडोज़ फॉर्म अनुप्रयोग में प्रत्येक नियंत्रण वर्ग का एक ठोस उदाहरण है।
क्लाइंट अनुप्रयोगों के विकास में विंडोज़ फॉर्म माइक्रोसॉफ्ट फाउंडेशन क्लास लाइब्रेरी (एमएफसी) लाइब्रेरी के समान है। यह विंडोज़ अनुप्रयोगों के विकास के लिए सी ++ कक्षाओं के एक सेट से युक्त एक रैपर प्रदान करता है। हालाँकि, यह 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
| url=http://www.mono-project.com/FAQ:_Winforms
| url=http://www.mono-project.com/FAQ:_Winforms
| title= FAQ: Winforms
| title= FAQ: Winforms
| publisher=mono-project.com
| publisher=mono-project.com
| quote= ''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''}}</ref> कुछ विधियाँ Win32 [[कॉलबैक (कंप्यूटर प्रोग्रामिंग)]] तक सीधी पहुँच की अनुमति देती हैं, जो गैर-Windows प्लेटफ़ॉर्म में उपलब्ध नहीं हैं।<ref name="monofaq-winform"/>
| quote= ''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''}}</ref> कुछ विधियाँ Win32 [[कॉलबैक (कंप्यूटर प्रोग्रामिंग)|कॉलबैक]] तक सीधी पहुँच की अनुमति देती हैं, जो गैर-विंडोज प्लेटफ़ॉर्म में उपलब्ध नहीं हैं।<ref name="monofaq-winform"/>


.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 की निवारण के साथ, माइक्रोसॉफ्ट ने जीयूआई का अनुवाद करने के लिए एक दूसरा, समानांतर एपीआई जारी किया: विंडोज प्रस्तुतीकरण आधार (डब्ल्यूपीएफ) डायरेक्टएक्स पर आधारित है,<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> साथ में जीयूआई घोषणात्मक भाषा जिसे [[एक्स्टेंसिबल एप्लिकेशन मार्कअप लैंग्वेज|XAML]] कहा जाता है।<ref>{{cite web
| access-date = 2011-08-25
| access-date = 2011-08-25
| last      = Smith
| last      = Smith
Line 53: Line 52:
| title      = WPF vs. Windows Forms
| title      = WPF vs. Windows Forms
| quote      = 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.  
| quote      = 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.  
| url        = https://joshsmithonwpf.wordpress.com/2007/09/05/wpf-vs-windows-forms/}}</ref> <!--Since WPF is relatively new, it is unclear if Windows Forms will continue to be improved in future .NET releases.<ref>{{cite web
| url        = https://joshsmithonwpf.wordpress.com/2007/09/05/wpf-vs-windows-forms/}}</ref>  
| url=http://joshsmithonwpf.wordpress.com/2007/09/05/wpf-vs-windows-forms/
 
| title= WPF vs. Windows Forms
[[बिल्ड (डेवलपर सम्मेलन)|निर्माण 2014]] सम्मेलन में एक सवाल-जवाब सत्र के दौरान, माइक्रोसॉफ्ट ने समझाया कि विंडोज फॉर्म अनुरक्षण प्रणाली में था, जिसमें कोई नई विशेषताएँ नहीं जोड़ी जा रही थीं, लेकिन स्थापित किए गए बग अभी भी ठीक हो जाएंगे।<ref>{{cite web
| first=Josh|last=Smith
| date=2007-09-05
| access-date=2008-07-26}}</ref><ref>{{cite web
| url=http://blogs.msdn.com/mharsh/archive/2004/09/20/231888.aspx
| title= WPF vs. Windows Forms
| first=Mike|last=Harsh
| quote=''If you’re targeting only Windows XP and Longhorn, Avalon is the way to go.  But Windows Forms is still the only way to write managed UI that will run on Win 2K and below''
| date=2004-09-20
| access-date=2008-07-26}}</ref><ref>{{cite web
| url=http://www.longhorncorner.com/Blogs/BlogDetail.aspx?BlogId=660
| title= Future of Windows Forms and ASP.NET
| first=Mahesh|last=Chand
| date=2008-05-08
| access-date=2008-07-26}}</ref>-->
[[बिल्ड (डेवलपर सम्मेलन)]] सम्मेलन में एक सवाल-जवाब सत्र के दौरान, माइक्रोसॉफ्ट ने समझाया कि विंडोज फॉर्म रखरखाव मोड में था, जिसमें कोई नई सुविधाएँ नहीं जोड़ी जा रही थीं, लेकिन पाए गए बग अभी भी ठीक हो जाएंगे।<ref>{{cite web
| url=http://www.infoq.com/news/2014/04/WPF-QA
| url=http://www.infoq.com/news/2014/04/WPF-QA
| title=A WPF Q&A
| title=A WPF Q&A
Line 76: Line 60:
| date=2014-04-03
| date=2014-04-03
| 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]]-आधारित जीयूआई प्रविष्टि के साथ विंडोज फॉर्म को सफल बनाया है। तथापि, जीयूआई घटकों के स्थानन को विंडोज़ फॉर्म के समान ड्रैग एंड ड्रॉप स्थानन अभी भी XAML में <nowiki>''</nowiki>चित्रफलक<nowiki>''</nowiki> यूआई-नियंत्रण के साथ पृष्ठ/विंडो के मूल XAML अवयव को बदलकर प्रदान किया जाता है। यह परिवर्तन करते समय, उपयोगकर्ता दृश्य स्टूडियो जीयूआई का उपयोग करके घटकों को स्पष्टतः खींचना और छोडना उसी तरह से एक विंडो बना सकता है जैसे कि विंडोज़ फॉर्म में है।


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


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


2011 में, मोनो (सॉफ्टवेयर) का System.Windows.Forms के लिए समर्थन .NET Framework संस्करण इतिहास#.NET Framework 2.0|.NET 2.0 के रूप में पूर्ण घोषित किया गया था;<ref>{{cite web
2011 में, .NET 2.0 के रूप में c के लिए मोनो का समर्थन पूर्ण घोषित किया गया था; प्रणाली विंडोज फॉर्म 2.0 Mac OS X पर मूल रूप से काम करता है।<ref>{{cite web
| url=http://www.mono-project.com/WinForms
| title= WinForms
| publisher=mono-project.com
| quote=''Support for Windows Forms 2.0 is complete. At this point, we are largely just fixing bugs and polishing our code. ''
| access-date=2011-07-30}}</ref>
System.Windows.Forms 2.0 मैक ओएस एक्स पर मूल रूप से काम करता है।<ref>{{cite web
| url=http://www.mono-project.com/FAQ:_Winforms
| url=http://www.mono-project.com/FAQ:_Winforms
| title= WinForms
| title= WinForms
| publisher=mono-project.com
| publisher=mono-project.com
| 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> तथापि, प्रणाली विंडोज फॉर्म को मोनो पर सक्रिय रूप से विकसित नहीं किया गया है।<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 107: Line 82:
  |date=2011-03-07
  |date=2011-03-07
  |access-date=2011-07-30
  |access-date=2011-07-30
  |quote=''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.''}}</ref>
  |quote=''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.''}}</ref>.NET के साथ पूर्ण अनुकूलता संभव नहीं थी, क्योंकि माइक्रोसॉफ्ट का प्रणाली विंडोज फॉर्म मुख्य रूप से विंडोज़ API के चारों ओर एक आवरण है, और कुछ विधियाँ Win32 कॉलबैक तक प्रत्यक्ष अभिगम की अनुमति देती हैं, जो कि विंडोज़ के भिन्न अन्य प्लेटफ़ॉर्म में उपलब्ध नहीं हैं।<ref name="monofaq-winform"/>एक अधिक महत्वपूर्ण समस्या यह है कि, संस्करण 5.2 के बाद से,<ref>{{cite web
.NET के साथ पूर्ण संगतता संभव नहीं थी, क्योंकि Microsoft का System.Windows फॉर्म मुख्य रूप से Windows API के चारों ओर एक आवरण है, और कुछ विधियाँ Win32 कॉलबैक (कंप्यूटर प्रोग्रामिंग) तक सीधी पहुँच की अनुमति देती हैं, जो कि Windows के अलावा अन्य प्लेटफ़ॉर्म में उपलब्ध नहीं हैं।<ref name="monofaq-winform"/>एक अधिक महत्वपूर्ण समस्या यह है कि, संस्करण 5.2 के बाद से,<ref>{{cite web
  |url=https://www.mono-project.com/docs/about-mono/supported-platforms/macos/
  |url=https://www.mono-project.com/docs/about-mono/supported-platforms/macos/
  | title=Introduction to Mono on macOS
  | title=Introduction to Mono on macOS
  | publisher=mono-project.com
  | publisher=mono-project.com
  | access-date=2019-11-12
  | access-date=2019-11-12
}}</ref>
}}</ref> मोनो को उन्नत किया गया है ताकि इसका व्यतिक्रम 64 बिट प्लेटफॉर्म मान लिया जाए। तथापि, Macintosh OS X प्लेटफ़ॉर्म के लिए मोनो पर प्रणाली विंडोज फॉर्म को 32 बिट उपप्रणाली, कार्बन का उपयोग करके बनाया गया है।<ref>{{cite web
मोनो को अपग्रेड किया गया है ताकि इसका डिफॉल्ट 64 बिट प्लेटफॉर्म मान लिया जाए।
हालाँकि, 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 121: Line 93:
  | first=Jess
  | first=Jess
  | access-date=2019-11-12
  | access-date=2019-11-12
}}</ref>
}}</ref> इस तिथि के अनुसार{{when|date=January 2021}}, Mac OS X पर उपयोग के लिए प्रणाली विंडोज फॉर्म का 64-बिट संस्करण उपलब्ध नहीं है और केवल 32 बिट प्लेटफॉर्म के लिए निर्मित .NET अनुप्रयोगों के निष्पादन की उम्मीद की जा सकती है।
इस तिथि के अनुसार{{when|date=January 2021}}, Mac OS X पर उपयोग के लिए System.Windows.Forms का 64-बिट संस्करण अनुपलब्ध रहता है और केवल 32 बिट प्लेटफॉर्म के लिए निर्मित .NET अनुप्रयोगों के निष्पादन की उम्मीद की जा सकती है।


== यह भी देखें ==
== यह भी देखें{{Portal|Free and open-source software}}==
{{Portal|Free and open-source software}}
* [[माइक्रोसॉफ्ट विजुअल स्टूडियो|माइक्रोसॉफ्ट दृश्य स्टूडियो]]
* [[माइक्रोसॉफ्ट विजुअल स्टूडियो]]
* [[एक बार क्लिक करें]]
* एक बार क्लिक करें
* [[सार विंडो टूलकिट]] (एडब्ल्यूटी), जावा क्रमदेशन भाषा के लिए समकक्ष [[जीयूआई अनुप्रयोग क्रमदेशन अंतरापृष्ठ]] (एपीआई)
* सार विंडो टूलकिट (एडब्ल्यूटी), जावा (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा के लिए समतुल्य ग्राफिकल यूजर इंटरफेस एप्लीकेशन प्रोग्रामिंग इंटरफेस (एपीआई)
* बोर्लैंड से [[विजुअल कंपोनेंट लाइब्रेरी|दृश्य घटक लाइब्रेरी]] (वीसीएल)।
* बोर्लैंड से [[विजुअल कंपोनेंट लाइब्रेरी]] (वीसीएल)।
* [[विजुअल टेस्ट|दृश्य परीक्षण]], परीक्षण स्वाचालन
* [[विजुअल टेस्ट]], टेस्ट ऑटोमेशन


== संदर्भ ==
== संदर्भ ==
Line 137: Line 107:


== बाहरी संबंध ==
== बाहरी संबंध ==
{{Wikibooks|.NET Development Foundation}}
<!--
<!--






[[Category: Machine Translated Page]]
 
[[Category:Created On 18/02/2023]]
-->
 
[[Category:All articles with vague or ambiguous time]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with broken file links]]
[[Category:Pages with empty portal template]]
[[Category:Pages with script errors]]
[[Category:Portal templates with redlinked portals]]
[[Category:Short description with empty Wikidata description]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Vague or ambiguous time from January 2021]]

Latest revision as of 11:27, 10 March 2023

विंडोज फॉर्म (विनफॉर्म)
Other namesविनफॉर्म
Original author(s).NET: माइक्रोसॉफ्ट,
मोनो : Ximian/नोवेल
Developer(s).NET फाउंडेशन
Initial releaseTemplate:प्रारंभ तिथि और उम्र
Stable release
Written inC#
Operating systemमाइक्रोसॉफ़्ट विंडोज़
Platform.NET विनफॉर्म, .NET, मोनो
Typeसॉफ्टवेयर फ्रेमवर्क
LicenseMIT लाइसेंस
Websitedocs.microsoft.com/en-us/dotnet/framework/winforms/

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

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

वास्तुकला

यह एपीआई .NET फ्रेमवर्क 3.0 का एक भाग है

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

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

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

विशेषताएँ

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

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

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

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

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

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

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

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

विंडोज़ फॉर्म के साथ XAML पश्चगामी अनुकूलता

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

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

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

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

2011 में, .NET 2.0 के रूप में c के लिए मोनो का समर्थन पूर्ण घोषित किया गया था; प्रणाली विंडोज फॉर्म 2.0 Mac OS X पर मूल रूप से काम करता है।[17] तथापि, प्रणाली विंडोज फॉर्म को मोनो पर सक्रिय रूप से विकसित नहीं किया गया है।[18].NET के साथ पूर्ण अनुकूलता संभव नहीं थी, क्योंकि माइक्रोसॉफ्ट का प्रणाली विंडोज फॉर्म मुख्य रूप से विंडोज़ API के चारों ओर एक आवरण है, और कुछ विधियाँ Win32 कॉलबैक तक प्रत्यक्ष अभिगम की अनुमति देती हैं, जो कि विंडोज़ के भिन्न अन्य प्लेटफ़ॉर्म में उपलब्ध नहीं हैं।[10]एक अधिक महत्वपूर्ण समस्या यह है कि, संस्करण 5.2 के बाद से,[19] मोनो को उन्नत किया गया है ताकि इसका व्यतिक्रम 64 बिट प्लेटफॉर्म मान लिया जाए। तथापि, Macintosh OS X प्लेटफ़ॉर्म के लिए मोनो पर प्रणाली विंडोज फॉर्म को 32 बिट उपप्रणाली, कार्बन का उपयोग करके बनाया गया है।[20] इस तिथि के अनुसार[when?], Mac OS X पर उपयोग के लिए प्रणाली विंडोज फॉर्म का 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. Does Winforms run on OSX? Yes, as of Mono 1.9, Winforms has a native OSX driver that it uses by default
  18. 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.
  19. "Introduction to Mono on macOS". mono-project.com. Retrieved 2019-11-12.
  20. Martin, Jess. "Windows.Forms Comes to 64-bit Mac OS X". Retrieved 2019-11-12.


बाहरी संबंध