विंडोज फॉर्म

From Vigyanwiki
Revision as of 14:02, 3 March 2023 by alpha>Soumyabisht (TEXT)
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# या दृश्य आधार में लिखा जा सकता है।

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

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

विशेषताएँ

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


बाहरी संबंध