|
dev
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Pointed in the right direction?functionality...for instance a basic PIM. But I want to be able to add functionality to this PIM in the future...but I want to do so in the form of pluggable modules. This way I can increase core functionality, or implement different functionality within the new module(this could be for different locations or different clients). I am thinking the provider pattern is the way to go with this, and i have looked over the examples but none of them really go in the direction I think I need to go. So for instance client A wants a PIM that tracks XYZ information, but client B wants to track WXYZ information. This would entail a database change to include W information. however because the plugins are unique...the change in the database does not affect them. Then if client b wants even different funtionality it can be added for them at a later time, by working on their plugin. At a later time client a wants to add POS to the application, they would receive a new module which is plugged in(obviously this is a common occurence). This would help to separate the program into various modules and (in my mind) provide for better maintenance down the road. So am I right to think that I need to start with the providerbase? Where could I find examples of what I am trying to do? I have looked at the quickstarts for the various providerbases...but they are super specific...any tips? Eric Hi Eric,
Based on my understanding, your question is how to use the Provider design pattern in your application. Please feel free to post here if I've misunderstood anything. The theory of this pattern is that it allows to define a well-documented, easy-to-understand API, but at the same time give developers complete control over the internals of what occurs when those APIs are called. Defined, a provider is simply a contract between an API and the Business Logic/Data Abstraction Layer. The provider is the implementation of the API separate from the API itself. For example, the Membership feature has a static method called Membership.ValidateUser(). The Membership class itself contains no business logic; instead it simply forwards this call to the configured provider. It is the responsibility of the provider class to contain the implementation for that method, calling whatever Business Logic Layer or Data Access Layer is necessary. To learn how to use this design pattern, you may read the source code of built-in ASP.NET 2.0 Membership, Role Management, Site Navigation, Session State, Profile, Web Events, and Web Part Personalization providers: http://weblogs.asp.net/scottgu/archive/2006/04/13/Source-Code-for-the-Built_ 2D00_in-ASP.NET-2.0-Providers-Now-Available-for-Download.aspx Or you can learn from how to implement the Provider design pattern in ASP.NET 1.1: http://msdn.microsoft.com/asp.net/downloads/providers/default.aspx?pull=/lib rary/en-us/dnaspnet/html/asp04212004.asp Hope this helps. Please feel free to post here if anything is unclear. Sincerely, Walter Wang (waw***@online.microsoft.com, remove 'online.') Microsoft Online Community Support ================================================== Get notification to my posts through email? Please refer to http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif ications. Note: The MSDN Managed Newsgroup support offering is for non-urgent issues where an initial response from the community or a Microsoft Support Engineer within 1 business day is acceptable. Please note that each follow up response may take approximately 2 business days as the support professional working with you may need further investigation to reach the most efficient resolution. The offering is not appropriate for situations that require urgent, real-time or phone-based interactions or complex project analysis and dump analysis issues. Issues of this nature are best handled working with a dedicated Microsoft Support Engineer by contacting Microsoft Customer Support Services (CSS) at http://msdn.microsoft.com/subscriptions/support/default.aspx. ================================================== This posting is provided "AS IS" with no warranties, and confers no rights. Thanks for the response Walter. I am sort of familiar with what the pattern
is...I guess my question wasn't real clear. I want to create an application that has base functionality. Or even a program that is a base shell. Then I want to be able to add modules to this application as needed. Similar to what a lot of Oracle integrators seem to do. Want Contact management? Here is that module. Want Financial? here is that module...Need Job tracking? Here is that module... I think the provider pattern is what will provide me with that functionality...but I have not found any information suggesting ways to code the modules for pluggability. Are there resources that will show me how to do this? does that make better sense? Show quote "Walter Wang [MSFT]" <waw***@online.microsoft.com> wrote in message news:HdrpIeDwGHA.5976@TK2MSFTNGXA01.phx.gbl... > Hi Eric, > > Based on my understanding, your question is how to use the Provider design > pattern in your application. Please feel free to post here if I've > misunderstood anything. > > The theory of this pattern is that it allows to define a well-documented, > easy-to-understand API, but at the same time give developers complete > control over the internals of what occurs when those APIs are called. > Defined, a provider is simply a contract between an API and the Business > Logic/Data Abstraction Layer. The provider is the implementation of the > API > separate from the API itself. For example, the Membership feature has a > static method called Membership.ValidateUser(). The Membership class > itself > contains no business logic; instead it simply forwards this call to the > configured provider. It is the responsibility of the provider class to > contain the implementation for that method, calling whatever Business > Logic > Layer or Data Access Layer is necessary. > > To learn how to use this design pattern, you may read the source code of > built-in ASP.NET 2.0 Membership, Role Management, Site Navigation, Session > State, Profile, Web Events, and Web Part Personalization providers: > http://weblogs.asp.net/scottgu/archive/2006/04/13/Source-Code-for-the-Built_ > 2D00_in-ASP.NET-2.0-Providers-Now-Available-for-Download.aspx > > Or you can learn from how to implement the Provider design pattern in > ASP.NET 1.1: > http://msdn.microsoft.com/asp.net/downloads/providers/default.aspx?pull=/lib > rary/en-us/dnaspnet/html/asp04212004.asp > > Hope this helps. Please feel free to post here if anything is unclear. > > Sincerely, > Walter Wang (waw***@online.microsoft.com, remove 'online.') > Microsoft Online Community Support > > ================================================== > Get notification to my posts through email? Please refer to > http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif > ications. > > Note: The MSDN Managed Newsgroup support offering is for non-urgent issues > where an initial response from the community or a Microsoft Support > Engineer within 1 business day is acceptable. Please note that each follow > up response may take approximately 2 business days as the support > professional working with you may need further investigation to reach the > most efficient resolution. The offering is not appropriate for situations > that require urgent, real-time or phone-based interactions or complex > project analysis and dump analysis issues. Issues of this nature are best > handled working with a dedicated Microsoft Support Engineer by contacting > Microsoft Customer Support Services (CSS) at > http://msdn.microsoft.com/subscriptions/support/default.aspx. > ================================================== > > This posting is provided "AS IS" with no warranties, and confers no > rights. > Hi Eric,
Thanks for the update. That does make better sense. If you only wanted to dynamically load modules into your "shell", a simple interface and plugin system will suffice. However, a system like Oracle integrators will require more complicated design patterns to be used together. The Provider design pattern is one specific design pattern which has specific purpose: design an API, choose an implementation dynamically at runtime. I recommend you take a look at http://patternshare.org, there're many design patterns which can help you design your application architecture. Regards, Walter Wang (waw***@online.microsoft.com, remove 'online.') Microsoft Online Community Support ================================================== When responding to posts, please "Reply to Group" via your newsreader so that others may learn and benefit from your issue. ================================================== This posting is provided "AS IS" with no warranties, and confers no rights. Could you point me in the direction of good information on designing an
interface and plugin system? I was looking at reflection as a possible way to load in the modules. Once I get my hands on some real meat I'll be ok...its just I haven't really found a lot of information on plugin systems(other than for VS or Office) on the net. I saw an article on JOM but that isn't really what I am striving for either. The reason I was looking at the provider is the way it works in .net with the configuration sections. But I am sure I could do that with anything once I can read the way others are doing it. Thanks Show quote "Walter Wang [MSFT]" <waw***@online.microsoft.com> wrote in message news:k74LwGRwGHA.3200@TK2MSFTNGXA01.phx.gbl... > Hi Eric, > > Thanks for the update. That does make better sense. > > If you only wanted to dynamically load modules into your "shell", a simple > interface and plugin system will suffice. However, a system like Oracle > integrators will require more complicated design patterns to be used > together. The Provider design pattern is one specific design pattern which > has specific purpose: design an API, choose an implementation dynamically > at runtime. > > I recommend you take a look at http://patternshare.org, there're many > design patterns which can help you design your application architecture. > > > > Regards, > Walter Wang (waw***@online.microsoft.com, remove 'online.') > Microsoft Online Community Support > > ================================================== > When responding to posts, please "Reply to Group" via your newsreader so > that others may learn and benefit from your issue. > ================================================== > > This posting is provided "AS IS" with no warranties, and confers no > rights. > Hi Eric,
#Creating a Plug-In Framework http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html /pluginframework.asp #Let Users Add Functionality to Your .NET Applications with Macros and Plug-Ins http://msdn.microsoft.com/msdnmag/issues/03/10/Plug-Ins/ #Designing Extensible Windows Forms Applications http://msdn.microsoft.com/msdnmag/issues/02/07/CuttingEdge/ #Speed Development With Custom Application Blocks For Enterprise Library http://msdn.microsoft.com/msdnmag/issues/06/07/PatternsAndPractices/default. aspx Regards, Walter Wang (waw***@online.microsoft.com, remove 'online.') Microsoft Online Community Support ================================================== When responding to posts, please "Reply to Group" via your newsreader so that others may learn and benefit from your issue. ================================================== This posting is provided "AS IS" with no warranties, and confers no rights. excellent...thank you very much...I actually found a couple more using
kartoo....Thanks for your patience and excellent help. Eric Show quote "Walter Wang [MSFT]" <waw***@online.microsoft.com> wrote in message news:mT7I54awGHA.5864@TK2MSFTNGXA01.phx.gbl... > Hi Eric, > > #Creating a Plug-In Framework > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html > /pluginframework.asp > > #Let Users Add Functionality to Your .NET Applications with Macros and > Plug-Ins > http://msdn.microsoft.com/msdnmag/issues/03/10/Plug-Ins/ > > #Designing Extensible Windows Forms Applications > http://msdn.microsoft.com/msdnmag/issues/02/07/CuttingEdge/ > > #Speed Development With Custom Application Blocks For Enterprise Library > http://msdn.microsoft.com/msdnmag/issues/06/07/PatternsAndPractices/default. > aspx > > > Regards, > Walter Wang (waw***@online.microsoft.com, remove 'online.') > Microsoft Online Community Support > > ================================================== > When responding to posts, please "Reply to Group" via your newsreader so > that others may learn and benefit from your issue. > ================================================== > > This posting is provided "AS IS" with no warranties, and confers no > rights. > Hi Eric,
You're welcome. I hope you will be successful in your project. Please feel free to post in according newsgroups if you need more help during your development. Thank you for using MSDN Managed Newsgroup service! Regards, Walter Wang (waw***@online.microsoft.com, remove 'online.') Microsoft Online Community Support ================================================== When responding to posts, please "Reply to Group" via your newsreader so that others may learn and benefit from your issue. ================================================== This posting is provided "AS IS" with no warranties, and confers no rights. |
|||||||||||||||||||||||