• MEF用军提供了一个托管环境,用于编写互动式系统的工具。 当你写的小型公用事业,还有一定量的冗长的重复性工作,得到它了。 创建主要窗口,盘图标(包括该标和菜单上下文),和其他常见的任务只是获取的方式。 在本文中,我已经创建了一个可重复使用的实用框架,并会显示如何使用它。

    那么我们实际上是创造这种文章吗? 我们都知道,使用基础课程是一种伟大的方式联系在一起密切相关的对象。 作为一个非常实际的例子,一个基窗口或控制的类可以让你添加功能,东西已经存在没有重新发明轮子,可以这么说。 Windows暴露了一个数码的执行模式,例如服务台应用程序,侧栏的小窗户的形式,WPF,COM,以及更多。 每个这些提供一定数量的功能,你不需要担心,例如启动/停止的挂钩的服务,或者系统的消息循环用于Windows的形式和WPF的。

    具有建立一个良好的数量的小型公用事业多年来,我们一定意识到,我复制或重新编写太多的代码。 什么浪费! 因为我总是创建一个通知(出由该系统的时钟),和我一样隐藏盘上的减少,并记住窗口设置的,我实现这些在每一个项目。 也许我应该已经创建了一个项目的模板在Visual Studio作为一个快捷方式,但这有一个缺点。 如果我加了一个很酷的新功能给我框架内,我需要重新编译和再加工的旧应用程序以利用它

    好的解决办法是创建一个"基础的应用程序。" 这实际上是其自己的应用程序,公开通知的图标和菜单和主要的窗口。 如果你移动的窗口,位置是保存。 个人的公用事业,然后可添加如插件。 我最初设想的一个框架能够举办多个应用程序,但这会产生一些有趣的设计挑战,有些应用程序。 最后,我定了一个可重复使用的应用程序,它可以主办一个单一的实用工具。

  • MEF उपयोगिता धावक प्रदान करता है एक होस्टिंग वातावरण के लिए लेखन इंटरैक्टिव प्रणाली उपयोगिताओं. जब आप लिखने के छोटे उपयोगिताओं के साथ, वहाँ है एक निश्चित राशि के थकाऊ दोहराए काम करने के लिए इसे पाने के लिए और जा रहा है । बनाने के लिए मुख्य विंडो में, ट्रे आइकन सहित (आइकन और संदर्भ मेनू), और अन्य आम कार्यों बस के रास्ते में मिलता है । इस अनुच्छेद में, मैं बनाया एक पुन: प्रयोज्य उपयोगिता ढांचे और आप कैसे दिखा देंगे करने के लिए इसे का उपयोग करना.

    तो क्या मैं वास्तव में बनाने के लिए इस अनुच्छेद है? हम सभी जानते हैं कि आधार का उपयोग कर वर्गों के लिए एक शानदार तरीका है एक साथ टाई बारीकी से संबंधित वस्तुओं. के रूप में एक बहुत ही व्यावहारिक उदाहरण के लिए, एक बेस खिड़की या नियंत्रण वर्ग की मदद से आप कार्यक्षमता जोड़ने के लिए कुछ है कि पहले से ही मौजूद है बिना पहिया बदलते है, तो बात करने के लिए. Windows को उजागर करता है के एक नंबर के कोड का निष्पादन मॉडल के रूप में ऐसी सेवाओं, सांत्वना क्षुधा, साइडबार गैजेट्स, Windows प्रपत्र, WPF, COM, और अधिक. इनमें से प्रत्येक एक निश्चित राशि प्रदान करता है की कार्यक्षमता है कि आप की जरूरत नहीं करने के लिए चिंता के बारे में, इस तरह के रूप में शुरू/रोक के लिए हुक सेवाओं, या सिस्टम संदेश पाश के लिए Windows प्रपत्र और WPF.

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

    बेहतर समाधान बनाने के लिए एक "आधार आवेदन है।" यह वास्तव में होगा अपने खुद के आवेदन को उजागर करता है कि एक अधिसूचना आइकन और मेनू, और एक मुख्य विंडो है । अगर आप विंडो को ले जाने के स्थान को बचाया है । अलग-अलग उपयोगिताओं कर सकते हैं तो जोड़ा जा सकता है के रूप में plugins के । मैं मूल रूप से कल्पना की एक रूपरेखा में सक्षम होस्ट करने के लिए कई अनुप्रयोगों, लेकिन यह है कि बनाता है कुछ दिलचस्प डिजाइन के साथ चुनौतियों दृश्य क्षुधा. अंत में, मैं पर बसे एक पुन: प्रयोज्य आवेदन कर सकते हैं, जो मेजबान एक ही उपयोगिता है ।

  • MEF Utility Runner provides a hosting environment for writing interactive system utilities. When you write small utilities, there’s a certain amount of tedious repetitive work to get it up and going. Creating the main window, the tray icon (including the icon and context menu), and other common tasks just get in the way. In this article, I’ve created a reusable utility framework and will show you how to make use of it.

    So what did I actually create for this article? We all know that using base classes is a great way to tie together closely-related objects. As a very practical example, a base window or control class lets you add functionality to something that already exists without reinventing the wheel, so to speak. Windows exposes a number of code execution models such as services, console apps, Sidebar gadgets, Windows forms, WPF, COM, and more. Each of these provides a certain amount of functionality that you don’t need to worry about, such as start/stop hooks for services, or the system message loop for Windows forms and WPF.

    Having built a good number of small utilities over the years, I’ve definitely realized that I’m copying or rewriting too much code. What a waste! Since I always create a notification icon (shows up by the system clock), and I like to hide to tray on minimize, and remember window settings, I implement these in each project. I probably should have created a project template in Visual Studio as a shortcut, but this has a disadvantage. If I added a cool new feature to my framework, I’d need to recompile and rework the older apps to take advantage of it

    The better solution was to create a “base application.” This would actually be its own application that exposes a notification icon and menu, and a main window. If you move the window, the location is saved. Individual utilities can then be added as plugins. I originally envisioned a framework able to host multiple applications, but that creates some interesting design challenges with visual apps. In the end, I settled on a reusable application which can host a single utility.