• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 198
  • Last Modified:

PLUGIN PROBLEM

Hi All,

I usually call form using :

  Private Sub mnuSetupMenu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSetupMenu.Click
        Dim strAppNo As String = ERV_Screen_Function.Get_App_No(sender, strMainMenuId, strMainMenuName)

        Dim clsFormAuthority As New clsFormAuthority(ERV_Global.strLoginUserID, _
                                                     strAppId, _
                                                     strMainMenuId, _
                                                     strMainMenuName, _
                                                     strAppNo, _
                                                     "TMUSERMENU", _
                                                     "USER MENU")

        If Not ERV_Global.Form_Active("frmTMUSERMENU", Me) Then
            If clsFormAuthority.blnAccess Then
                Dim frmTMUSERMENU As New frmTMUSERMENU()
                frmTMUSERMENU.clsFormAuthority = clsFormAuthority
                frmTMUSERMENU.MdiParent = Me
                frmTMUSERMENU.Show()
            End If
        End If
    End Sub

The form is inside the same project ?

Could I use the above method for form that came from plugin ?

The are several things that should aware at the plugin :

1. Connection.
2. Authority
3. Parameter

That usually there are no problem when it is inside the same project.

How could I  overcome this stuff ?

Thank you.
0
emi_sastra
Asked:
emi_sastra
  • 10
  • 9
1 Solution
 
CodeCruiserCommented:
You can create and show a form from plugin the same way you can any other object.

Not sure what you mean by the 3 items you listed. Are these some variables that the form needs access to? Can you not pass these to the form?
0
 
emi_sastraAuthor Commented:
The are several things that should aware at the plugin :

1. Connection.
    Usually the form get variable from main application.

2. Authority
    frmTMUSERMENU.clsFormAuthority = clsFormAuthority

3. Parameter
    We need to show certain data for example.

Thank you.
0
 
emi_sastraAuthor Commented:
Option Explicit On

Imports System.Data.SqlClient

Public Class frmTMUSERMENU

    Public clsFormAuthority As clsFormAuthority

End Sub
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
CodeCruiserCommented:
Is frmTMUSERMENU from plugin? If not, plugin form would need you to pass that information the same way you are currently passing. Are you writing the plugin?
0
 
emi_sastraAuthor Commented:
- Is frmTMUSERMENU from plugin?
Currently not, but I am trying to do so. The sample above does not using plugin.

-If not, plugin form would need you to pass that information the same way you are currently passing.
Ok. Thus, there is not changing code at the plugin form ?

-Are you writing the plugin?
Currently not, but I am trying to do so.

Thank you.
0
 
CodeCruiserCommented:
Can you elaborate more on your requirements and why you are writing plugin? From information given, does not look like you need to make much changes.
0
 
emi_sastraAuthor Commented:
- Can you elaborate more on your requirements and why you are writing plugin?
Generate different report for different company. I don't want to change the main application.

-From information given, does not look like you need to make much changes.
Why ?

Thank you.
0
 
CodeCruiserCommented:
>Why ?
Keep passing the same information to the form loaded from pluggin.
0
 
emi_sastraAuthor Commented:
Would you please explain :

1. Form compiled to dll
2. Form using plugin
3. MEF

What makes them different ?

Thank you.
0
 
CodeCruiserCommented:
1. Class in DLL just like any other class
2. A technique which can be implemented by 1 and 3
3. A framework to implement a plugin.


Would you have multiple plugins (companies) for each installation or is it one per installation?
0
 
emi_sastraAuthor Commented:
-Would you have multiple plugins (companies) for each installation or is it one per installation?
Don't get it. What makes it different ?

Thank you.
0
 
CodeCruiserCommented:
>Don't get it. What makes it different ?

There is a difference between having a different but only one DLL per installation vs having the possibility to load an infinite number of DLLs from a plugins folder based on some configuration/condition.

If its a single DLL, you can just keep one DLL per installation and load a form from it. On the source side, you will maintain that DLL for each company separately and then copy the correct DLL for the company when deploying.

If its multiple DLLs per installation, you need to add logic to load the correct DLL in current situation (company drop down on a form for example).
0
 
emi_sastraAuthor Commented:
Ok. I think single dll is more simple to deploy. Is it correct ?
Does it mean, we just have one main application for all of the companies ?
Anything different just replace the dll (the plugin) ?

Thank you.
0
 
CodeCruiserCommented:
Yes.
0
 
emi_sastraAuthor Commented:
Ok. Back to the pluging problem :

1. Connection.
2. Authority
3. Parameter

How to communicate among Main App, Plugin and DLL Forms for the above stuff ?

Thank you.
0
 
CodeCruiserCommented:
Reference the DLL, create the form from DLL, and assign these values to properties of form.
0
 
emi_sastraAuthor Commented:
- Reference the DLL
From where ? Main or Plugin ?

 - create the form from DLL
I am sorry, do not get it.

-and assign these values to properties of form.
I am sorry, do not get it too.

Thank you.
0
 
CodeCruiserCommented:
- Reference the DLL
>From where ? Main or Plugin ?
Obviously from main. Why would you reference the DLL from DLL?

 - create the form from DLL
>I am sorry, do not get it.

Create a form!
Dim MyForm As New DLLName.NamespaceIfAny.FormName

-and assign these values to properties of form.
>I am sorry, do not get it too.

MyForm.Connection = SomeConnection
MyForm.Authority = SomeAuthority
MyForm.Parameter = SomeParameter
0
 
emi_sastraAuthor Commented:
Great.

Thank you very much for your help.
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 10
  • 9
Tackle projects and never again get stuck behind a technical roadblock.
Join Now