emi_sastra
asked on
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_Ap p_No(sende r, strMainMenuId, strMainMenuName)
Dim clsFormAuthority As New clsFormAuthority(ERV_Globa l.strLogin UserID, _
strAppId, _
strMainMenuId, _
strMainMenuName, _
strAppNo, _
"TMUSERMENU", _
"USER MENU")
If Not ERV_Global.Form_Active("fr mTMUSERMEN U", Me) Then
If clsFormAuthority.blnAccess Then
Dim frmTMUSERMENU As New frmTMUSERMENU()
frmTMUSERMENU.clsFormAutho rity = 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.
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_Ap
Dim clsFormAuthority As New clsFormAuthority(ERV_Globa
strAppId, _
strMainMenuId, _
strMainMenuName, _
strAppNo, _
"TMUSERMENU", _
"USER MENU")
If Not ERV_Global.Form_Active("fr
If clsFormAuthority.blnAccess
Dim frmTMUSERMENU As New frmTMUSERMENU()
frmTMUSERMENU.clsFormAutho
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.
ASKER
The are several things that should aware at the plugin :
1. Connection.
Usually the form get variable from main application.
2. Authority
frmTMUSERMENU.clsFormAutho rity = clsFormAuthority
3. Parameter
We need to show certain data for example.
Thank you.
1. Connection.
Usually the form get variable from main application.
2. Authority
frmTMUSERMENU.clsFormAutho
3. Parameter
We need to show certain data for example.
Thank you.
ASKER
Option Explicit On
Imports System.Data.SqlClient
Public Class frmTMUSERMENU
Public clsFormAuthority As clsFormAuthority
End Sub
Imports System.Data.SqlClient
Public Class frmTMUSERMENU
Public clsFormAuthority As clsFormAuthority
End Sub
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?
ASKER
- 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.
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.
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.
ASKER
- 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.
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.
>Why ?
Keep passing the same information to the form loaded from pluggin.
Keep passing the same information to the form loaded from pluggin.
ASKER
Would you please explain :
1. Form compiled to dll
2. Form using plugin
3. MEF
What makes them different ?
Thank you.
1. Form compiled to dll
2. Form using plugin
3. MEF
What makes them different ?
Thank you.
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?
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?
ASKER
-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.
Don't get it. What makes it different ?
Thank you.
>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).
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).
ASKER
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.
Does it mean, we just have one main application for all of the companies ?
Anything different just replace the dll (the plugin) ?
Thank you.
Yes.
ASKER
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.
1. Connection.
2. Authority
3. Parameter
How to communicate among Main App, Plugin and DLL Forms for the above stuff ?
Thank you.
Reference the DLL, create the form from DLL, and assign these values to properties of form.
ASKER
- 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.
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.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Great.
Thank you very much for your help.
Thank you very much for your help.
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?