473,408 Members | 2,399 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,408 software developers and data experts.

Add-ons

Hi,

We have developed a web solution using ASP.NET.

Now, there is a need of add-ons for our web solution.
We want to allow third party companies write their own code and put it to
our web solution.

But there is one problem :)

Let's say our website contains dlls of 1.0 version.
The third party company writes their own dll that references our dll of 1.0
version.
Everything works fine until the website contains dlls of 1.0 version.
In case if we upgrade the web solution from 1.0 to 2.0 version, the third
part add-ons won't work.
The whole website will go down, because third party addon seeks for dll of
version 1.0 and doesn't find it.

Do you have any suggestions how this framework should be implemented?
Perpahps you can specify some good article?

Best regards,
Mantas Miliukas
mmiliukas(replace with @)doclogix.lt
Dec 20 '05 #1
5 1084
Hi Mantas,

Welcome to ASPNET newsgroup.
Regarding on the assembly versioning problem in asp.net web based
application whch will adopt micro-core/add-on architecture, here are some
of my understanding:

For .net application, the assembly's reference(to other assemblies...) have
strong-reference or weak reference.... For strong-reference, it will
identify the referenced assemblies' Full name( name, culture, version,
public key token....), and this is only applied on strong-named assembly...
For private assemblies(non-strongnamed), such version or key token
checking is not performed....)..
So this this concern with your scenario, is your main application's
assemblies(which will change version...) strong-named? If not, then we
won't need to worry about versioning problem.....

If your application's shared/core assemblies are strong-named, then, we
need to consider versioning problem. Based on my experience, we can use
the .net's assembly version binding/redirection to redirect different
version of certain assemblies (by specify assembly's identitfy....). Here
is the MSDN reference demonstrate redirecting assembly version:

#Redirecting Assembly Versions
http://msdn.microsoft.com/library/en...mblyVersionRed
irection.asp?frame=true

Also, the below aritcle can help you better understandg how .net runtime
locate assemblies:

#How the Runtime Locates Assemblies
http://msdn.microsoft.com/library/de...us/cpguide/htm
l/cpconhowruntimelocatesassemblies.asp

In addition, one thing need to take care is that for ASP.NET web
application, we should always put those strong-named assemblies used in
GAC, this is because ASP.NET application dosn't support strong-named
assemblies in private bin path.....

Hope helps. Thanks,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)


--------------------
| From: "Mantas Miliukas" <do******@community.nospam>
| Subject: Add-ons
| Date: Tue, 20 Dec 2005 15:12:23 +0200
| Lines: 27
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
| X-RFC2646: Format=Flowed; Original
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
| Message-ID: <e7*************@TK2MSFTNGP12.phx.gbl>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: 213.226.165.199
| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFT NGP12.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:365930
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| Hi,
|
| We have developed a web solution using ASP.NET.
|
| Now, there is a need of add-ons for our web solution.
| We want to allow third party companies write their own code and put it to
| our web solution.
|
| But there is one problem :)
|
| Let's say our website contains dlls of 1.0 version.
| The third party company writes their own dll that references our dll of
1.0
| version.
| Everything works fine until the website contains dlls of 1.0 version.
| In case if we upgrade the web solution from 1.0 to 2.0 version, the third
| part add-ons won't work.
| The whole website will go down, because third party addon seeks for dll
of
| version 1.0 and doesn't find it.
|
| Do you have any suggestions how this framework should be implemented?
| Perpahps you can specify some good article?
|
| Best regards,
| Mantas Miliukas
| mmiliukas(replace with @)doclogix.lt
|
|
|

Dec 21 '05 #2
Hi,

Our web solution consists only of strongly-named assemblies.

I liked your idea with assembly version redirecting,
however it would be too hard to maintain and ensure the integrity of the
whole system with large number of add-ons.

We have another solution:

Lets say we have one assembly which contains only interfaces.
Web solution assemblies only implement those interfaces. We assume that
interfaces are static, they wont' change as fast as the product core.

So third party addon developer should load our assemblies dynamically and
cast using the provided interfaces.
The web solution upgrades wont' impact the behavior of the addons until the
interfaces dll is not changed.

What do you think about it?
Have you heard any familiar patterns?

Thanks for your help.

Best regards,
Mantas Miliukas
mmiliukas(replace with @)doclogix.lt

"Steven Cheng[MSFT]" <st*****@online.microsoft.com> wrote in message
news:2T**************@TK2MSFTNGXA02.phx.gbl...
Hi Mantas,

Welcome to ASPNET newsgroup.
Regarding on the assembly versioning problem in asp.net web based
application whch will adopt micro-core/add-on architecture, here are some
of my understanding:

For .net application, the assembly's reference(to other assemblies...)
have
strong-reference or weak reference.... For strong-reference, it will
identify the referenced assemblies' Full name( name, culture, version,
public key token....), and this is only applied on strong-named
assembly...
For private assemblies(non-strongnamed), such version or key token
checking is not performed....)..
So this this concern with your scenario, is your main application's
assemblies(which will change version...) strong-named? If not, then we
won't need to worry about versioning problem.....

If your application's shared/core assemblies are strong-named, then, we
need to consider versioning problem. Based on my experience, we can use
the .net's assembly version binding/redirection to redirect different
version of certain assemblies (by specify assembly's identitfy....). Here
is the MSDN reference demonstrate redirecting assembly version:

#Redirecting Assembly Versions
http://msdn.microsoft.com/library/en...mblyVersionRed
irection.asp?frame=true

Also, the below aritcle can help you better understandg how .net runtime
locate assemblies:

#How the Runtime Locates Assemblies
http://msdn.microsoft.com/library/de...us/cpguide/htm
l/cpconhowruntimelocatesassemblies.asp

In addition, one thing need to take care is that for ASP.NET web
application, we should always put those strong-named assemblies used in
GAC, this is because ASP.NET application dosn't support strong-named
assemblies in private bin path.....

Hope helps. Thanks,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)


--------------------
| From: "Mantas Miliukas" <do******@community.nospam>
| Subject: Add-ons
| Date: Tue, 20 Dec 2005 15:12:23 +0200
| Lines: 27
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
| X-RFC2646: Format=Flowed; Original
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
| Message-ID: <e7*************@TK2MSFTNGP12.phx.gbl>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: 213.226.165.199
| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFT NGP12.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:365930
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| Hi,
|
| We have developed a web solution using ASP.NET.
|
| Now, there is a need of add-ons for our web solution.
| We want to allow third party companies write their own code and put it
to
| our web solution.
|
| But there is one problem :)
|
| Let's say our website contains dlls of 1.0 version.
| The third party company writes their own dll that references our dll of
1.0
| version.
| Everything works fine until the website contains dlls of 1.0 version.
| In case if we upgrade the web solution from 1.0 to 2.0 version, the
third
| part add-ons won't work.
| The whole website will go down, because third party addon seeks for dll
of
| version 1.0 and doesn't find it.
|
| Do you have any suggestions how this framework should be implemented?
| Perpahps you can specify some good article?
|
| Best regards,
| Mantas Miliukas
| mmiliukas(replace with @)doclogix.lt
|
|
|

Dec 21 '05 #3
Thanks for your followup Mantas,

Using micro core( common interfaces) and mutiple concrete implementation is
a good design style. One thing I'm not sure is how will the 3rd party
developers dynamically load those assembly? IMO, they just need to
statically reference your core interfaces assembly and develop their own
concrete implementation... Also, as long as your interface assembly (if
strong-named) dosn't change version, those concrete implement assemblies's
version changing won't hurt your main application as long as your main
application is coded based on interfaces...

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

--------------------
| From: "Mantas Miliukas" <do******@community.nospam>
| References: <e7*************@TK2MSFTNGP12.phx.gbl>
<2T**************@TK2MSFTNGXA02.phx.gbl>
| Subject: Re: Add-ons
| Date: Wed, 21 Dec 2005 14:30:24 +0200
| Lines: 136
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
| X-RFC2646: Format=Flowed; Original
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
| Message-ID: <eS*************@TK2MSFTNGP11.phx.gbl>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: 213.226.165.199
| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFT NGP11.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:366215
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| Hi,
|
| Our web solution consists only of strongly-named assemblies.
|
| I liked your idea with assembly version redirecting,
| however it would be too hard to maintain and ensure the integrity of the
| whole system with large number of add-ons.
|
| We have another solution:
|
| Lets say we have one assembly which contains only interfaces.
| Web solution assemblies only implement those interfaces. We assume that
| interfaces are static, they wont' change as fast as the product core.
|
| So third party addon developer should load our assemblies dynamically and
| cast using the provided interfaces.
| The web solution upgrades wont' impact the behavior of the addons until
the
| interfaces dll is not changed.
|
| What do you think about it?
| Have you heard any familiar patterns?
|
| Thanks for your help.
|
| Best regards,
| Mantas Miliukas
| mmiliukas(replace with @)doclogix.lt
|
| "Steven Cheng[MSFT]" <st*****@online.microsoft.com> wrote in message
| news:2T**************@TK2MSFTNGXA02.phx.gbl...
| > Hi Mantas,
| >
| > Welcome to ASPNET newsgroup.
| > Regarding on the assembly versioning problem in asp.net web based
| > application whch will adopt micro-core/add-on architecture, here are
some
| > of my understanding:
| >
| > For .net application, the assembly's reference(to other assemblies...)
| > have
| > strong-reference or weak reference.... For strong-reference, it will
| > identify the referenced assemblies' Full name( name, culture, version,
| > public key token....), and this is only applied on strong-named
| > assembly...
| > For private assemblies(non-strongnamed), such version or key token
| > checking is not performed....)..
| > So this this concern with your scenario, is your main application's
| > assemblies(which will change version...) strong-named? If not, then we
| > won't need to worry about versioning problem.....
| >
| > If your application's shared/core assemblies are strong-named, then, we
| > need to consider versioning problem. Based on my experience, we can use
| > the .net's assembly version binding/redirection to redirect different
| > version of certain assemblies (by specify assembly's identitfy....).
Here
| > is the MSDN reference demonstrate redirecting assembly version:
| >
| > #Redirecting Assembly Versions
| >
http://msdn.microsoft.com/library/en...mblyVersionRed
| > irection.asp?frame=true
| >
| > Also, the below aritcle can help you better understandg how .net runtime
| > locate assemblies:
| >
| > #How the Runtime Locates Assemblies
| >
http://msdn.microsoft.com/library/de...us/cpguide/htm
| > l/cpconhowruntimelocatesassemblies.asp
| >
| > In addition, one thing need to take care is that for ASP.NET web
| > application, we should always put those strong-named assemblies used in
| > GAC, this is because ASP.NET application dosn't support strong-named
| > assemblies in private bin path.....
| >
| > Hope helps. Thanks,
| >
| > Steven Cheng
| > Microsoft Online Support
| >
| > Get Secure! www.microsoft.com/security
| > (This posting is provided "AS IS", with no warranties, and confers no
| > rights.)
| >
| >
| >
| >
| > --------------------
| > | From: "Mantas Miliukas" <do******@community.nospam>
| > | Subject: Add-ons
| > | Date: Tue, 20 Dec 2005 15:12:23 +0200
| > | Lines: 27
| > | X-Priority: 3
| > | X-MSMail-Priority: Normal
| > | X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
| > | X-RFC2646: Format=Flowed; Original
| > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
| > | Message-ID: <e7*************@TK2MSFTNGP12.phx.gbl>
| > | Newsgroups: microsoft.public.dotnet.framework.aspnet
| > | NNTP-Posting-Host: 213.226.165.199
| > | Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFT NGP12.phx.gbl
| > | Xref: TK2MSFTNGXA02.phx.gbl
| > microsoft.public.dotnet.framework.aspnet:365930
| > | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
| > |
| > | Hi,
| > |
| > | We have developed a web solution using ASP.NET.
| > |
| > | Now, there is a need of add-ons for our web solution.
| > | We want to allow third party companies write their own code and put
it
| > to
| > | our web solution.
| > |
| > | But there is one problem :)
| > |
| > | Let's say our website contains dlls of 1.0 version.
| > | The third party company writes their own dll that references our dll
of
| > 1.0
| > | version.
| > | Everything works fine until the website contains dlls of 1.0 version.
| > | In case if we upgrade the web solution from 1.0 to 2.0 version, the
| > third
| > | part add-ons won't work.
| > | The whole website will go down, because third party addon seeks for
dll
| > of
| > | version 1.0 and doesn't find it.
| > |
| > | Do you have any suggestions how this framework should be implemented?
| > | Perpahps you can specify some good article?
| > |
| > | Best regards,
| > | Mantas Miliukas
| > | mmiliukas(replace with @)doclogix.lt
| > |
| > |
| > |
| >
|
|
|

Dec 22 '05 #4
Thanks for advices :)

Regards,
Mantas Miliukas

"Steven Cheng[MSFT]" <st*****@online.microsoft.com> wrote in message
news:2L**************@TK2MSFTNGXA02.phx.gbl...
Thanks for your followup Mantas,

Using micro core( common interfaces) and mutiple concrete implementation
is
a good design style. One thing I'm not sure is how will the 3rd party
developers dynamically load those assembly? IMO, they just need to
statically reference your core interfaces assembly and develop their own
concrete implementation... Also, as long as your interface assembly (if
strong-named) dosn't change version, those concrete implement assemblies's
version changing won't hurt your main application as long as your main
application is coded based on interfaces...

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

--------------------
| From: "Mantas Miliukas" <do******@community.nospam>
| References: <e7*************@TK2MSFTNGP12.phx.gbl>
<2T**************@TK2MSFTNGXA02.phx.gbl>
| Subject: Re: Add-ons
| Date: Wed, 21 Dec 2005 14:30:24 +0200
| Lines: 136
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
| X-RFC2646: Format=Flowed; Original
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
| Message-ID: <eS*************@TK2MSFTNGP11.phx.gbl>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: 213.226.165.199
| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFT NGP11.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:366215
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| Hi,
|
| Our web solution consists only of strongly-named assemblies.
|
| I liked your idea with assembly version redirecting,
| however it would be too hard to maintain and ensure the integrity of the
| whole system with large number of add-ons.
|
| We have another solution:
|
| Lets say we have one assembly which contains only interfaces.
| Web solution assemblies only implement those interfaces. We assume that
| interfaces are static, they wont' change as fast as the product core.
|
| So third party addon developer should load our assemblies dynamically
and
| cast using the provided interfaces.
| The web solution upgrades wont' impact the behavior of the addons until
the
| interfaces dll is not changed.
|
| What do you think about it?
| Have you heard any familiar patterns?
|
| Thanks for your help.
|
| Best regards,
| Mantas Miliukas
| mmiliukas(replace with @)doclogix.lt
|
| "Steven Cheng[MSFT]" <st*****@online.microsoft.com> wrote in message
| news:2T**************@TK2MSFTNGXA02.phx.gbl...
| > Hi Mantas,
| >
| > Welcome to ASPNET newsgroup.
| > Regarding on the assembly versioning problem in asp.net web based
| > application whch will adopt micro-core/add-on architecture, here are
some
| > of my understanding:
| >
| > For .net application, the assembly's reference(to other assemblies...)
| > have
| > strong-reference or weak reference.... For strong-reference, it will
| > identify the referenced assemblies' Full name( name, culture, version,
| > public key token....), and this is only applied on strong-named
| > assembly...
| > For private assemblies(non-strongnamed), such version or key token
| > checking is not performed....)..
| > So this this concern with your scenario, is your main application's
| > assemblies(which will change version...) strong-named? If not, then we
| > won't need to worry about versioning problem.....
| >
| > If your application's shared/core assemblies are strong-named, then,
we
| > need to consider versioning problem. Based on my experience, we can
use
| > the .net's assembly version binding/redirection to redirect different
| > version of certain assemblies (by specify assembly's identitfy....).
Here
| > is the MSDN reference demonstrate redirecting assembly version:
| >
| > #Redirecting Assembly Versions
| >
http://msdn.microsoft.com/library/en...mblyVersionRed
| > irection.asp?frame=true
| >
| > Also, the below aritcle can help you better understandg how .net
runtime
| > locate assemblies:
| >
| > #How the Runtime Locates Assemblies
| >
http://msdn.microsoft.com/library/de...us/cpguide/htm
| > l/cpconhowruntimelocatesassemblies.asp
| >
| > In addition, one thing need to take care is that for ASP.NET web
| > application, we should always put those strong-named assemblies used
in
| > GAC, this is because ASP.NET application dosn't support strong-named
| > assemblies in private bin path.....
| >
| > Hope helps. Thanks,
| >
| > Steven Cheng
| > Microsoft Online Support
| >
| > Get Secure! www.microsoft.com/security
| > (This posting is provided "AS IS", with no warranties, and confers no
| > rights.)
| >
| >
| >
| >
| > --------------------
| > | From: "Mantas Miliukas" <do******@community.nospam>
| > | Subject: Add-ons
| > | Date: Tue, 20 Dec 2005 15:12:23 +0200
| > | Lines: 27
| > | X-Priority: 3
| > | X-MSMail-Priority: Normal
| > | X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
| > | X-RFC2646: Format=Flowed; Original
| > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
| > | Message-ID: <e7*************@TK2MSFTNGP12.phx.gbl>
| > | Newsgroups: microsoft.public.dotnet.framework.aspnet
| > | NNTP-Posting-Host: 213.226.165.199
| > | Path:
TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFT NGP12.phx.gbl
| > | Xref: TK2MSFTNGXA02.phx.gbl
| > microsoft.public.dotnet.framework.aspnet:365930
| > | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
| > |
| > | Hi,
| > |
| > | We have developed a web solution using ASP.NET.
| > |
| > | Now, there is a need of add-ons for our web solution.
| > | We want to allow third party companies write their own code and put
it
| > to
| > | our web solution.
| > |
| > | But there is one problem :)
| > |
| > | Let's say our website contains dlls of 1.0 version.
| > | The third party company writes their own dll that references our dll
of
| > 1.0
| > | version.
| > | Everything works fine until the website contains dlls of 1.0
version.
| > | In case if we upgrade the web solution from 1.0 to 2.0 version, the
| > third
| > | part add-ons won't work.
| > | The whole website will go down, because third party addon seeks for
dll
| > of
| > | version 1.0 and doesn't find it.
| > |
| > | Do you have any suggestions how this framework should be
implemented?
| > | Perpahps you can specify some good article?
| > |
| > | Best regards,
| > | Mantas Miliukas
| > | mmiliukas(replace with @)doclogix.lt
| > |
| > |
| > |
| >
|
|
|

Dec 22 '05 #5
You're welcome Mantas,

Good luck.

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
| From: "Mantas Miliukas" <do******@community.nospam>
| References: <e7*************@TK2MSFTNGP12.phx.gbl>
<2T**************@TK2MSFTNGXA02.phx.gbl>
<eS*************@TK2MSFTNGP11.phx.gbl>
<2L**************@TK2MSFTNGXA02.phx.gbl>
| Subject: Re: Add-ons
| Date: Thu, 22 Dec 2005 10:11:21 +0200
| Lines: 206
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
| X-RFC2646: Format=Flowed; Original
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
| Message-ID: <eT**************@TK2MSFTNGP10.phx.gbl>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: 213.226.165.199
| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFT NGP10.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:366507
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| Thanks for advices :)
|
| Regards,
| Mantas Miliukas
|
| "Steven Cheng[MSFT]" <st*****@online.microsoft.com> wrote in message
| news:2L**************@TK2MSFTNGXA02.phx.gbl...
| > Thanks for your followup Mantas,
| >
| > Using micro core( common interfaces) and mutiple concrete
implementation
| > is
| > a good design style. One thing I'm not sure is how will the 3rd party
| > developers dynamically load those assembly? IMO, they just need to
| > statically reference your core interfaces assembly and develop their own
| > concrete implementation... Also, as long as your interface assembly
(if
| > strong-named) dosn't change version, those concrete implement
assemblies's
| > version changing won't hurt your main application as long as your main
| > application is coded based on interfaces...
| >
| > Regards,
| >
| > Steven Cheng
| > Microsoft Online Support
| >
| > Get Secure! www.microsoft.com/security
| > (This posting is provided "AS IS", with no warranties, and confers no
| > rights.)
| >
| >
| >
| > --------------------
| > | From: "Mantas Miliukas" <do******@community.nospam>
| > | References: <e7*************@TK2MSFTNGP12.phx.gbl>
| > <2T**************@TK2MSFTNGXA02.phx.gbl>
| > | Subject: Re: Add-ons
| > | Date: Wed, 21 Dec 2005 14:30:24 +0200
| > | Lines: 136
| > | X-Priority: 3
| > | X-MSMail-Priority: Normal
| > | X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
| > | X-RFC2646: Format=Flowed; Original
| > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
| > | Message-ID: <eS*************@TK2MSFTNGP11.phx.gbl>
| > | Newsgroups: microsoft.public.dotnet.framework.aspnet
| > | NNTP-Posting-Host: 213.226.165.199
| > | Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFT NGP11.phx.gbl
| > | Xref: TK2MSFTNGXA02.phx.gbl
| > microsoft.public.dotnet.framework.aspnet:366215
| > | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
| > |
| > | Hi,
| > |
| > | Our web solution consists only of strongly-named assemblies.
| > |
| > | I liked your idea with assembly version redirecting,
| > | however it would be too hard to maintain and ensure the integrity of
the
| > | whole system with large number of add-ons.
| > |
| > | We have another solution:
| > |
| > | Lets say we have one assembly which contains only interfaces.
| > | Web solution assemblies only implement those interfaces. We assume
that
| > | interfaces are static, they wont' change as fast as the product core.
| > |
| > | So third party addon developer should load our assemblies dynamically
| > and
| > | cast using the provided interfaces.
| > | The web solution upgrades wont' impact the behavior of the addons
until
| > the
| > | interfaces dll is not changed.
| > |
| > | What do you think about it?
| > | Have you heard any familiar patterns?
| > |
| > | Thanks for your help.
| > |
| > | Best regards,
| > | Mantas Miliukas
| > | mmiliukas(replace with @)doclogix.lt
| > |
| > | "Steven Cheng[MSFT]" <st*****@online.microsoft.com> wrote in message
| > | news:2T**************@TK2MSFTNGXA02.phx.gbl...
| > | > Hi Mantas,
| > | >
| > | > Welcome to ASPNET newsgroup.
| > | > Regarding on the assembly versioning problem in asp.net web based
| > | > application whch will adopt micro-core/add-on architecture, here are
| > some
| > | > of my understanding:
| > | >
| > | > For .net application, the assembly's reference(to other
assemblies...)
| > | > have
| > | > strong-reference or weak reference.... For strong-reference, it
will
| > | > identify the referenced assemblies' Full name( name, culture,
version,
| > | > public key token....), and this is only applied on strong-named
| > | > assembly...
| > | > For private assemblies(non-strongnamed), such version or key token
| > | > checking is not performed....)..
| > | > So this this concern with your scenario, is your main application's
| > | > assemblies(which will change version...) strong-named? If not, then
we
| > | > won't need to worry about versioning problem.....
| > | >
| > | > If your application's shared/core assemblies are strong-named,
then,
| > we
| > | > need to consider versioning problem. Based on my experience, we
can
| > use
| > | > the .net's assembly version binding/redirection to redirect
different
| > | > version of certain assemblies (by specify assembly's identitfy....).
| > Here
| > | > is the MSDN reference demonstrate redirecting assembly version:
| > | >
| > | > #Redirecting Assembly Versions
| > | >
| >
http://msdn.microsoft.com/library/en...mblyVersionRed
| > | > irection.asp?frame=true
| > | >
| > | > Also, the below aritcle can help you better understandg how .net
| > runtime
| > | > locate assemblies:
| > | >
| > | > #How the Runtime Locates Assemblies
| > | >
| >
http://msdn.microsoft.com/library/de...us/cpguide/htm
| > | > l/cpconhowruntimelocatesassemblies.asp
| > | >
| > | > In addition, one thing need to take care is that for ASP.NET web
| > | > application, we should always put those strong-named assemblies
used
| > in
| > | > GAC, this is because ASP.NET application dosn't support strong-named
| > | > assemblies in private bin path.....
| > | >
| > | > Hope helps. Thanks,
| > | >
| > | > Steven Cheng
| > | > Microsoft Online Support
| > | >
| > | > Get Secure! www.microsoft.com/security
| > | > (This posting is provided "AS IS", with no warranties, and confers
no
| > | > rights.)
| > | >
| > | >
| > | >
| > | >
| > | > --------------------
| > | > | From: "Mantas Miliukas" <do******@community.nospam>
| > | > | Subject: Add-ons
| > | > | Date: Tue, 20 Dec 2005 15:12:23 +0200
| > | > | Lines: 27
| > | > | X-Priority: 3
| > | > | X-MSMail-Priority: Normal
| > | > | X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
| > | > | X-RFC2646: Format=Flowed; Original
| > | > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
| > | > | Message-ID: <e7*************@TK2MSFTNGP12.phx.gbl>
| > | > | Newsgroups: microsoft.public.dotnet.framework.aspnet
| > | > | NNTP-Posting-Host: 213.226.165.199
| > | > | Path:
| > TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFT NGP12.phx.gbl
| > | > | Xref: TK2MSFTNGXA02.phx.gbl
| > | > microsoft.public.dotnet.framework.aspnet:365930
| > | > | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
| > | > |
| > | > | Hi,
| > | > |
| > | > | We have developed a web solution using ASP.NET.
| > | > |
| > | > | Now, there is a need of add-ons for our web solution.
| > | > | We want to allow third party companies write their own code and
put
| > it
| > | > to
| > | > | our web solution.
| > | > |
| > | > | But there is one problem :)
| > | > |
| > | > | Let's say our website contains dlls of 1.0 version.
| > | > | The third party company writes their own dll that references our
dll
| > of
| > | > 1.0
| > | > | version.
| > | > | Everything works fine until the website contains dlls of 1.0
| > version.
| > | > | In case if we upgrade the web solution from 1.0 to 2.0 version,
the
| > | > third
| > | > | part add-ons won't work.
| > | > | The whole website will go down, because third party addon seeks
for
| > dll
| > | > of
| > | > | version 1.0 and doesn't find it.
| > | > |
| > | > | Do you have any suggestions how this framework should be
| > implemented?
| > | > | Perpahps you can specify some good article?
| > | > |
| > | > | Best regards,
| > | > | Mantas Miliukas
| > | > | mmiliukas(replace with @)doclogix.lt
| > | > |
| > | > |
| > | > |
| > | >
| > |
| > |
| > |
| >
|
|
|

Dec 22 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: LU | last post by:
I have a datagrid for viewing and deleting. Under that I have a drop down with binded info and a button to add the select drop down item into database. 1User can view datagrid and delete info....
0
by: Steve | last post by:
Greetings, I'm having problems with the use of an Access 2003 Add-In on Windows XP Pro. Administrative-level users have no problems running the Add-In, but those users with restricted rights on...
8
by: localhost | last post by:
I would like to wrap all of the HTML inside of my <body> tag inside a <div> with in my code-behind. I do not want to touch the .aspx page template at all. I know how to make the body tag...
2
by: InBigTrouble | last post by:
As my previous Post I am a terrible programmer but giving it my best shot. I’ve used the following code to bind the data from an access database to text boxes in Windows Form in VB.Net. Now I want...
3
by: Lespaul36 | last post by:
I have a couple of add-ins that use. I have noticed that if I have 2 sessions of VS going that the second session doesn't have the add-ins. I also have some add-ins listed in the add-in manager...
6
by: Bill Nguyen | last post by:
I need to add a checkbox in front of all the rows in a datagrid so that users can select/unselect them. Any help is greatly appreciated! Bill
7
by: sreenulanka | last post by:
please help me in my forum i have labels and textareas .iwant to add textarea components dyanamically when i am clicking the button.please help me import java.awt.*; import javax.swing.*;...
3
by: Terry Olsen | last post by:
I'm trying to add a domain user to a local group using the code below: Dim LCL As New DirectoryEntry("WinNT://" + Environment.MachineName + ",computer") Dim DOM As New...
13
by: PetterL | last post by:
I writing a program where I read menu items from a file. But I have problem when I click an menu item i want it to mark that one as checked but I cant access the menu object of that item to see...
9
by: gavy7210 | last post by:
hello friends i am new to struts. i want to add the user information in the database and then display it back to him. i am using struts 1.2,Eclipse Platform Version: 3.4.2,mySql 5.0.1,jdk...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.