विंडोज़ फॉर्म

From alpha
Revision as of 12:33, 27 February 2024 by Indicwiki (talk | contribs) (Created page with "{{distinguish|Microsoft Forms}} {{update|date=January 2023}} {{short description|Graphical user interface software library}} {{Infobox software | name = Windows Forms (WinForm...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Jump to navigation Jump to search
Windows Forms (WinForms)
और नामWinForms
मूल लेखक.NET: Microsoft,
Mono: Ximian/Novell
डेवलपर(ओं).NET Foundation
आरंभिक रिलीजFebruary 13, 2002; 22 years ago (2002-02-13)
Stable release
v8.0.0 / November 14, 2023; 6 months ago (2023-11-14)[1]
इसमें लिखा हुआC#
ऑपरेटिंग सिस्टमMicrosoft Windows
प्लेटफॉर्म.NET Framework, .NET, Mono
प्रकारSoftware framework, widget toolkit
लाइसेंसMIT License
वेबसाइटlearn.microsoft.com/en-us/dotnet/desktop/winforms/

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


वास्तुकला

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

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

विशेषताएँ

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

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


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

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

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


Windows फॉर्म के साथ XAML पश्चगामी संगतता

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

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

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

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

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

यह भी देखें

संदर्भ

  1. "v8.0.0". github.com. 2023-11-14. Retrieved 2023-11-21.
  2. Sells, Chris (September 6, 2003). C# में विंडोज़ फॉर्म प्रोग्रामिंग (1st ed.). Addison-Wesley Professional. p. xxxviiii.
  3. "माइक्रोसॉफ्ट पैटर्न और प्रथाओं द्वारा वेब ग्राहकों के लिए डिजाइन और कार्यान्वयन दिशानिर्देश". Microsoft. November 2003.
  4. Sells, Chris; Weinhardt, Michael (May 16, 2006). "Appendix B". Moving from MFC, Windows Forms 2.0 Programming (2nd ed.). Addison-Wesley Professional.
  5. "विंडोज़ फॉर्म का परिचय" (Visual Studio 2003 documentation). Microsoft 2003.
  6. Martin, Jeff (4 December 2018). "माइक्रोसॉफ्ट ओपन सोर्स WPF, WinForms, और WinUI". InfoQ. Retrieved 2018-12-06.
  7. Hanselman, Scott (4 December 2018). "WPF, WinForms और WinUI की घोषणा ओपन सोर्स पर जा रही है". Retrieved 2018-12-06.
  8. De Smet, Bart (January 4, 2011). "Chapter 5". C# 4.0 Unleashed. Sams Publishing.
  9. Griffiths, Ian; Adams, Matthew (March 2003). संक्षेप में NET विंडोज़ फॉर्म. O'Reilly Media. p. 4.
  10. 10.0 10.1 Griffiths, Ian; Adams, Matthew (March 2003). संक्षेप में NET विंडोज़ फॉर्म. O'Reilly Media. pp. 27–53.
  11. 11.0 11.1 11.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
  12. 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.
  13. 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.
  14. Hall, Gary (December 27, 2010). "DirectX, not GDI+". Pro WPF and Silverlight MVVM: Effective Application Development with Model (2010 ed.). Apress. p. 2.
  15. 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.
  16. "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
  17. Allen, Jonathan (2014-05-06). "High DPI Improvements for Windows Forms in .NET 4.5.2". InfoQ. Retrieved 2015-02-10.
  18. "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.
  19. "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
  20. 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.
  21. "Introduction to Mono on macOS". mono-project.com. Retrieved 2019-11-12.
  22. Martin, Jess. "Windows.Forms Comes to 64-bit Mac OS X". Retrieved 2019-11-12.


बाहरी संबंध