Hi,
let’s try to suppose a large project, a “Web Desktop Application” project that opens numerous sub-projects.
If we make update, when we upload the new dlls, the web browser go out for reload.
Example, suppose we have 10 project in this Web Desktop Application: project 1, project 2, project 3,……
If my users are using project 1 and we upgrade project 3, there is a way or have you a suggestion for not to interrupt those who works in project 1 but only who works on project 3? What is the best pratice to do so?
I was thinking of something that loading the dll of the sub-projects at runtime and show the forms…
Regards
Cristian Zerbinati
Hi Frank,
thank you, maybe your answer is the best choice for many people, anyway I have do a solution:
Time ago I have used reflection for load plugin of my software compiled at runtime,
well… suppose to have a subproject named “WebApplication1” that it has a Form, buttons ecc ecc and with my entry point is a class named “myclass” (as program) that open the form:
Public Class myclass
Sub New()
Dim window As New Window1()
window.Show()
End Sub
End Class
Now on the root of “Main project” there are:
bin <— the bin folder
dll <— here I put my sub-projects
Default.html
Default.json
Web.config
in dll I have put my sub project dll, in this test is called WebApplication1.dll (only this dll, not other wisej dlls)
For run at runtime the sub-project I use this code:
Dim asm As System.Reflection.Assembly
asm = System.Reflection.Assembly.Load(IO.File.ReadAllBytes(Application.MapPath("\dll\WebApplication1.dll")))
Dim type As Type = asm.GetType("WebApplication1.miaclasse")
Dim instanceOfMyType As Object = Activator.CreateInstance(type)
and everything works perfectly 🙂
I can change, delete and substitute the dll of subproject without logout the user
Cristian Zerbinati
Hi Cristian,
the only way to avoid the AppPool to recycle is to create a different AppPool for each application.
Otherwise IIS will reload it when it detects any change in /bin.
Best regards,
Frank
Please login first to submit.