विंडोज फॉर्म: Difference between revisions
No edit summary |
(TEXT) |
||
Line 19: | Line 19: | ||
| 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++]] आधारित [[माइक्रोसॉफ्ट फाउंडेशन क्लास लाइब्रेरी|माइक्रोसॉफ्ट आधार वर्ग लाइब्रेरी]] के प्रतिस्थापन के रूप में देखा जाता है, यह एक तुलनीय प्रतिमान प्रदान नहीं करता है<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 को [[माइक्रोसॉफ्ट कनेक्ट|माइक्रोसॉफ्ट संबद्ध]] घटना में, माइक्रोसॉफ्ट ने गिटहब पर | 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 | [[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> | ||
विंडोज फॉर्म ग्राहक अनुप्रयोग विकसित करने में माइक्रोसॉफ्ट आधार वर्ग (एमएफसी) | विंडोज फॉर्म ग्राहक अनुप्रयोग विकसित करने में माइक्रोसॉफ्ट आधार वर्ग (एमएफसी) लाइब्रेरी के समान है। यह विंडोज़ अनुप्रयोगों के विकास के लिए C++ वर्ग के एक समुच्चय से युक्त एक आवरण प्रदान करता है। तथापि, यह एमएफसी की तरह एक व्यतिक्रम अनुप्रयोग फ्रेमवर्क प्रदान नहीं करता है। विंडोज़ फॉर्म अनुप्रयोग में प्रत्येक नियंत्रण वर्ग का एक ठोस उदाहरण है। | ||
== विशेषताएँ == | == विशेषताएँ == | ||
विंडोज़ फॉर्म वर्ग | विंडोज़ फॉर्म वर्ग लाइब्रेरी में सभी दृश्य अवयव नियंत्रण वर्ग से प्राप्त होते हैं। यह उपयोगकर्ता अंतरापृष्ठ अवयव जैसे स्थान, आकार, रंग, फ़ॉन्ट, पाठ, साथ ही क्लिक और ड्रैग/ड्रॉप जैसी सामान्य घटनाओं की न्यूनतम कार्यक्षमता प्रदान करता है। नियंत्रण वर्ग में डॉकिंग समर्थन भी होता है ताकि नियंत्रण अपने अभिभावक के अंतर्गत अपनी स्थिति को पुनर्व्यवस्थित कर सके। नियंत्रण वर्ग में [[माइक्रोसॉफ्ट एक्टिव एक्सेसिबिलिटी|माइक्रोसॉफ्ट सक्रिय पहुँच]] समर्थन क्षीण हुए उपयोगकर्ताओं को विंडोज फॉर्म का बेहतर उपयोग करने में सहायता करता है।<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 | [[सार विंडो टूलकिट]] (एडब्ल्यूटी) की तरह, समतुल्य [[जावा (प्रोग्रामिंग भाषा)|जावा]] एपीआई, विंडोज फॉर्म .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 | ||
Line 42: | Line 42: | ||
| 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"/> | | 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 | .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 की निवारण के साथ, माइक्रोसॉफ्ट ने जीयूआई का अनुवाद करने के लिए एक दूसरा, समानांतर एपीआई जारी किया: विंडोज प्रस्तुतीकरण आधार (डब्ल्यूपीएफ) डायरेक्टएक्स पर आधारित है,<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 | .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 | ||
Line 60: | 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 | | 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]]-आधारित जीयूआई प्रविष्टि के साथ विंडोज फॉर्म को सफल बनाया है। तथापि, जीयूआई घटकों के स्थानन को विंडोज़ फॉर्म के समान ड्रैग एंड ड्रॉप स्थानन अभी भी XAML में <nowiki>''</nowiki>चित्रफलक<nowiki>''</nowiki> यूआई-नियंत्रण के साथ पृष्ठ/विंडो के मूल XAML अवयव को बदलकर प्रदान किया जाता है। यह परिवर्तन करते समय, उपयोगकर्ता दृश्य स्टूडियो जीयूआई का उपयोग करके घटकों को स्पष्टतः खींचना और छोडना उसी तरह से एक विंडो बना सकता है जैसे कि विंडोज़ फॉर्म में है। | ||
जबकि XAML चित्रफलक नियंत्रण के माध्यम से ड्रैग एंड ड्रॉप स्थानन पश्चगामी अनुकूलता प्रदान करता है, XAML नियंत्रण केवल विंडोज़फ़ार्म नियंत्रणों के समान हैं और एक-से-एक पश्चगामी अनुकूलता नहीं हैं। वे समान कार्य करते हैं और एक समान दिखते हैं, लेकिन एक एपीआई से दूसरे में पुनः मानचित्रित की आवश्यकता के लिए गुण और विधियाँ पर्याप्त भिन्न होती हैं। | जबकि XAML चित्रफलक नियंत्रण के माध्यम से ड्रैग एंड ड्रॉप स्थानन पश्चगामी अनुकूलता प्रदान करता है, XAML नियंत्रण केवल विंडोज़फ़ार्म नियंत्रणों के समान हैं और एक-से-एक पश्चगामी अनुकूलता नहीं हैं। वे समान कार्य करते हैं और एक समान दिखते हैं, लेकिन एक एपीआई से दूसरे में पुनः मानचित्रित की आवश्यकता के लिए गुण और विधियाँ पर्याप्त भिन्न होती हैं। | ||
== वैकल्पिक कार्यान्वयन == | == वैकल्पिक कार्यान्वयन == | ||
मोनो एक्समारिन (पूर्व में [[ξ सतह|एक्समारिन]], फिर [[नोवेल]] द्वारा) के नेतृत्व वाली एक परियोजना है, जो [[एक्मा इंटरनेशनल]] मानक अनुवर्ती .NET | मोनो एक्समारिन (पूर्व में [[ξ सतह|एक्समारिन]], फिर [[नोवेल]] द्वारा) के नेतृत्व वाली एक परियोजना है, जो [[एक्मा इंटरनेशनल]] मानक अनुवर्ती .NET फ्रेमवर्क उपकरणों के अनुकूलता समुच्चय का निर्माण करती है। | ||
2011 में, .NET 2.0 के रूप में c के लिए मोनो का समर्थन पूर्ण घोषित किया गया था; प्रणाली विंडोज फॉर्म 2.0 Mac OS X पर मूल रूप से काम करता है।<ref>{{cite web | 2011 में, .NET 2.0 के रूप में c के लिए मोनो का समर्थन पूर्ण घोषित किया गया था; प्रणाली विंडोज फॉर्म 2.0 Mac OS X पर मूल रूप से काम करता है।<ref>{{cite web | ||
Line 82: | 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>.NET के साथ पूर्ण | |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 | ||
|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 | ||
Line 99: | Line 99: | ||
* [[एक बार क्लिक करें]] | * [[एक बार क्लिक करें]] | ||
* [[सार विंडो टूलकिट]] (एडब्ल्यूटी), जावा क्रमदेशन भाषा के लिए समकक्ष [[जीयूआई अनुप्रयोग क्रमदेशन अंतरापृष्ठ]] (एपीआई)। | * [[सार विंडो टूलकिट]] (एडब्ल्यूटी), जावा क्रमदेशन भाषा के लिए समकक्ष [[जीयूआई अनुप्रयोग क्रमदेशन अंतरापृष्ठ]] (एपीआई)। | ||
* बोर्लैंड से [[विजुअल कंपोनेंट लाइब्रेरी|दृश्य घटक | * बोर्लैंड से [[विजुअल कंपोनेंट लाइब्रेरी|दृश्य घटक लाइब्रेरी]] (वीसीएल)। | ||
* [[विजुअल टेस्ट|दृश्य परीक्षण]], परीक्षण स्वाचालन | * [[विजुअल टेस्ट|दृश्य परीक्षण]], परीक्षण स्वाचालन | ||
Revision as of 16:56, 6 March 2023
File:दृश्य स्टूडियो में देखे गए विनफॉर्म अभिकल्प का स्क्रीनशॉट 2019.png | |
Other names | विनफॉर्म |
---|---|
Original author(s) | .NET: माइक्रोसॉफ्ट, मोनो : Ximian/नोवेल |
Developer(s) | .NET फाउंडेशन |
Initial release | Template:प्रारंभ तिथि और उम्र |
Stable release | v5.0.17
/ Template:प्रारंभ तिथि और उम्र |
Written in | C# |
Operating system | माइक्रोसॉफ़्ट विंडोज़ |
Platform | .NET विनफॉर्म, .NET, मोनो |
Type | सॉफ्टवेयर फ्रेमवर्क |
License | MIT लाइसेंस |
Website | docs |
विंडोज फॉर्म्स (विनफॉर्म्स) एक मुक्त और मुक्त-स्रोत आलेखी (जीयूआई) वर्ग लाइब्रेरी है, जिसमें माइक्रोसॉफ्ट .NET, .NET फ्रेमवर्क या मोनो के एक भाग के रूप में सम्मिलित है, जो डेस्कटॉप, लैपटॉप और टैबलेट पीसी के लिए ग्राहक अनुप्रयोग लिखने के लिए एक प्लेटफॉर्म प्रदान करता है।[1] [2] जबकि इसे पहले और अधिक जटिल C++ आधारित माइक्रोसॉफ्ट आधार वर्ग लाइब्रेरी के प्रतिस्थापन के रूप में देखा जाता है, यह एक तुलनीय प्रतिमान प्रदान नहीं करता है[3] और केवल बहुस्तरीय समाधान में उपयोगकर्ता अंतरापृष्ठ स्तर के लिए एक प्लेटफॉर्म के रूप में कार्य करता है।[4]
4 दिसंबर, 2018 को माइक्रोसॉफ्ट संबद्ध घटना में, माइक्रोसॉफ्ट ने गिटहब पर मुक्त स्रोत परियोजना के रूप में विंडोज फॉर्म जारी करने की घोषणा की है। यह एमआईटी अनुज्ञप्त के अंतर्गत जारी किया गया है। इस निवारण के साथ, .NET कोर फ्रेमवर्क को लक्षित करने वाली परियोजनाओं के लिए विंडोज़ फॉर्म उपलब्ध हो गए हैं। तथापि, फ्रेमवर्क अभी भी केवल विंडोज प्लेटफॉर्म पर उपलब्ध है, और मोनो फ्रेमवर्क का विंडोज फॉर्म का अधूरा कार्यान्वयन विंडोज फॉर्म का एकमात्र क्रॉस-प्लेटफॉर्म कार्यान्वयन है।[5][6]
वास्तुकला
विंडोज़ फॉर्म अनुप्रयोग एक घटना-संचालित अनुप्रयोग है जो माइक्रोसॉफ्ट के .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 अनुप्रयोगों के निष्पादन की उम्मीद की जा सकती है।
यह भी देखें
- माइक्रोसॉफ्ट दृश्य स्टूडियो
- एक बार क्लिक करें
- सार विंडो टूलकिट (एडब्ल्यूटी), जावा क्रमदेशन भाषा के लिए समकक्ष जीयूआई अनुप्रयोग क्रमदेशन अंतरापृष्ठ (एपीआई)।
- बोर्लैंड से दृश्य घटक लाइब्रेरी (वीसीएल)।
- दृश्य परीक्षण, परीक्षण स्वाचालन
संदर्भ
- ↑ Sells, Chris (September 6, 2003). Windows Forms Programming in C# (1st ed.). Addison-Wesley Professional. p. xxxviiii.
- ↑ "Design and Implementation Guidelines for Web Clients by Microsoft Pattern and Practices". Microsoft. November 2003.
- ↑ Sells, Chris; Weinhardt, Michael (May 16, 2006). "Appendix B". Moving from MFC, Windows Forms 2.0 Programming (2nd ed.). Addison-Wesley Professional.
- ↑ "Introduction to Windows Forms" (Visual Studio 2003 documentation). Microsoft 2003.
- ↑ 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) - ↑ 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) - ↑ De Smet, Bart (January 4, 2011). "Chapter 5". C# 4.0 Unleashed. Sams Publishing.
- ↑ Griffiths, Ian; Adams, Matthew (March 2003). NET Windows Forms in a Nutshell. O'Reilly Media. p. 4.
- ↑ 9.0 9.1 Griffiths, Ian; Adams, Matthew (March 2003). NET Windows Forms in a Nutshell. O'Reilly Media. pp. 27–53.
- ↑ 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
- ↑ 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.
- ↑ 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.
- ↑ Hall, Gary (December 27, 2010). "DirectX, not GDI+". Pro WPF and Silverlight MVVM: Effective Application Development with Model (2010 ed.). Apress. p. 2.
- ↑ 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.
- ↑ "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
- ↑ Allen, Jonathan (2014-05-06). "High DPI Improvements for Windows Forms in .NET 4.5.2". InfoQ. Retrieved 2015-02-10.
- ↑ "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
- ↑ 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.
- ↑ "Introduction to Mono on macOS". mono-project.com. Retrieved 2019-11-12.
- ↑ Martin, Jess. "Windows.Forms Comes to 64-bit Mac OS X". Retrieved 2019-11-12.