How to share code between two different sites?

N

Neo

Hello All,

I found that ASP.net website only accepts code withing site directory.
This creates big hurdle in shairng code. How to share code between two
websites, like the way share between two non-website code?

-Pravin
 
G

Guest

Add a new project of type Class to your web site, place the code in there
that you want to share, and then add this existing class project to the other
web site.
 
M

matt

Neo said:
I found that ASP.net website only accepts code withing site directory.
This creates big hurdle in shairng code. How to share code between two
websites, like the way share between two non-website code?

yes, you need to write your shared code into "class libraries"
projects, which are then compiled into .DLL assemblies. you then
distribute copies of these DLLs to the /bin folders of any other
website that youd like to make use of the shared code.

only caveat is, any time you update the shared-code project(s), you
must re-distribute the new .DLL to all the websites that use it.

another approach, is to write "web services" that perform common tasks,
and your various websites can consume the central webservice.


matt
 
G

Guest

If you add the "class libraries" project to each web site solution you have
to worry about the redistribution of the dll, and you can add/update the code
in the class libraries from either web site solution.
 
M

matt

Harolds said:
If you add the "class libraries" project to each web site solution you ["dont" ? -matt] have
to worry about the redistribution of the dll, and you can add/update the code
in the class libraries from either web site solution.

ah.. so youre saying instead of just coping the black-box .DLL to each
website, have each website's solution include the class library as a
child project.

yes that could be a better way to do it -- since each website points to
the same class project on the file system, it will build & include the
latest into that particular website.


matt
 
N

Neo

so what you mean, is child class project can refer to files outsite the
website folder? Isn't this flaw in secuirty? Normal aspx pages must
stay in webfolder where as class files can be outsite? I was under the
imporession all class files must be in app_dir folder.
-neo

Harolds said:
If you add the "class libraries" project to each web site solution you ["dont" ? -matt] have
to worry about the redistribution of the dll, and you can add/update the code
in the class libraries from either web site solution.

ah.. so youre saying instead of just coping the black-box .DLL to each
website, have each website's solution include the class library as a
child project.

yes that could be a better way to do it -- since each website points to
the same class project on the file system, it will build & include the
latest into that particular website.


matt
 
N

Neo

I just checked and found
1. You can't add child project to website.
2. Whenever you add reference to a dll, it gets copied in /bin folder
so you are always using duplicate not the orignal dll.

So effecitively, when we create update dll we must add it manually to
all websites. That sounds like nightmare. Is there really no solution
from microsoft to update dll automatically???

Web services sounds real cool solution but why won't that be slower if
network between servicing site and using site is slower?

-Neo
so what you mean, is child class project can refer to files outsite the
website folder? Isn't this flaw in secuirty? Normal aspx pages must
stay in webfolder where as class files can be outsite? I was under the
imporession all class files must be in app_dir folder.
-neo

Harolds said:
If you add the "class libraries" project to each web site solution you ["dont" ? -matt] have
to worry about the redistribution of the dll, and you can add/update the code
in the class libraries from either web site solution.

ah.. so youre saying instead of just coping the black-box .DLL to each
website, have each website's solution include the class library as a
child project.

yes that could be a better way to do it -- since each website points to
the same class project on the file system, it will build & include the
latest into that particular website.


matt
 
J

Juan T. Llibre

re:
Is there really no solution from microsoft to update dll automatically?

Placing an assembly in the GAC will make the
assembly available to all applications on the server.

One dll...one dll update when needed...all applications are served.

Updating the dll is a bit trickier than usual but if you want one dll,
putting the assembly in the GAC is the only way to do it.





Neo said:
I just checked and found
1. You can't add child project to website.
2. Whenever you add reference to a dll, it gets copied in /bin folder
so you are always using duplicate not the orignal dll.

So effecitively, when we create update dll we must add it manually to
all websites. That sounds like nightmare. Is there really no solution
from microsoft to update dll automatically???

Web services sounds real cool solution but why won't that be slower if
network between servicing site and using site is slower?

-Neo
so what you mean, is child class project can refer to files outsite the
website folder? Isn't this flaw in secuirty? Normal aspx pages must
stay in webfolder where as class files can be outsite? I was under the
imporession all class files must be in app_dir folder.
-neo

Harolds wrote:
If you add the "class libraries" project to each web site solution you ["dont" ? -matt] have
to worry about the redistribution of the dll, and you can add/update the code
in the class libraries from either web site solution.

ah.. so youre saying instead of just coping the black-box .DLL to each
website, have each website's solution include the class library as a
child project.

yes that could be a better way to do it -- since each website points to
the same class project on the file system, it will build & include the
latest into that particular website.


matt
 
N

Neo

That doesn't solve my problem though. I have three websites on three
servers. As the code is growing, I have to find a mechanism of
automatic update of shared code. but looks like there isn't any.

I am thinking of writing customize batch program which not only
compiles the common code but adds it to specified directory. This way I
can automate the compilation process. Does Visual studio has any
facility like that? putting dll in multiple pathes after compilation??
-neo
re:
Is there really no solution from microsoft to update dll automatically?

Placing an assembly in the GAC will make the
assembly available to all applications on the server.

One dll...one dll update when needed...all applications are served.

Updating the dll is a bit trickier than usual but if you want one dll,
putting the assembly in the GAC is the only way to do it.





Neo said:
I just checked and found
1. You can't add child project to website.
2. Whenever you add reference to a dll, it gets copied in /bin folder
so you are always using duplicate not the orignal dll.

So effecitively, when we create update dll we must add it manually to
all websites. That sounds like nightmare. Is there really no solution
from microsoft to update dll automatically???

Web services sounds real cool solution but why won't that be slower if
network between servicing site and using site is slower?

-Neo
so what you mean, is child class project can refer to files outsite the
website folder? Isn't this flaw in secuirty? Normal aspx pages must
stay in webfolder where as class files can be outsite? I was under the
imporession all class files must be in app_dir folder.
-neo

(e-mail address removed) wrote:
Harolds wrote:
If you add the "class libraries" project to each web site solutionyou ["dont" ? -matt] have
to worry about the redistribution of the dll, and you can add/update the code
in the class libraries from either web site solution.

ah.. so youre saying instead of just coping the black-box .DLL to each
website, have each website's solution include the class library as a
child project.

yes that could be a better way to do it -- since each website pointsto
the same class project on the file system, it will build & include the
latest into that particular website.


matt
 
J

Juan T. Llibre

re:
I have three websites on three servers.

You *really* should have mentioned that from the beginning.

That looks like it's an awful waste of resources.

What prevents you from having eveything in one server,
where you *could* share* resources ?

re:
As the code is growing, I have to find a
mechanism of automatic update of shared code

If your code is in 3 disconnected servers, I doubt you'll find one.

I don't think you'll find that feature on *any* server,
but if I'm mistaken, I'd learn something of value.

You might look, if you need 3 servers after all, into creating a cluster or a server farm.
That is not so hard to do, and it will make the multiple updates possible.

re:
Does Visual studio has any facility like that?
putting dll in multiple paths after compilation?

Not that I know of, and especially not to 3 disconnected servers.
Again, I don't think that *any* platform allows that.

re:
I am thinking of writing customize batch program which not only
compiles the common code but adds it to specified directory.
This way I can automate the compilation process.

That's a possibility which might work.




That doesn't solve my problem though. I have three websites on three
servers. As the code is growing, I have to find a mechanism of
automatic update of shared code. but looks like there isn't any.

I am thinking of writing customize batch program which not only
compiles the common code but adds it to specified directory. This way I
can automate the compilation process. Does Visual studio has any
facility like that? putting dll in multiple pathes after compilation??
-neo
re:
Is there really no solution from microsoft to update dll automatically?

Placing an assembly in the GAC will make the
assembly available to all applications on the server.

One dll...one dll update when needed...all applications are served.

Updating the dll is a bit trickier than usual but if you want one dll,
putting the assembly in the GAC is the only way to do it.





Neo said:
I just checked and found
1. You can't add child project to website.
2. Whenever you add reference to a dll, it gets copied in /bin folder
so you are always using duplicate not the orignal dll.

So effecitively, when we create update dll we must add it manually to
all websites. That sounds like nightmare. Is there really no solution
from microsoft to update dll automatically???

Web services sounds real cool solution but why won't that be slower if
network between servicing site and using site is slower?

-Neo
so what you mean, is child class project can refer to files outsite the
website folder? Isn't this flaw in secuirty? Normal aspx pages must
stay in webfolder where as class files can be outsite? I was under the
imporession all class files must be in app_dir folder.
-neo

(e-mail address removed) wrote:
Harolds wrote:
If you add the "class libraries" project to each web site solution you ["dont" ? -matt]
have
to worry about the redistribution of the dll, and you can add/update the code
in the class libraries from either web site solution.

ah.. so youre saying instead of just coping the black-box .DLL to each
website, have each website's solution include the class library as a
child project.

yes that could be a better way to do it -- since each website points to
the same class project on the file system, it will build & include the
latest into that particular website.


matt
 
N

Neo

Three servers are given since all they are for different clients. But
common code is just same.

I am not that much worried about update to three servers. I am just
worried about sharing code. Appearantly there doesn't seem to be any
mechanism to share code of different websites. When I say website I
don't mean sharing code on different server, I just mean sharing code
in my development machine. Update can be done later whenever there is
patch to be given. I can update three websites manually, what I am not
comfortable adding dll to each site manually (which I might forget :))
re:
I have three websites on three servers.

You *really* should have mentioned that from the beginning.

That looks like it's an awful waste of resources.

What prevents you from having eveything in one server,
where you *could* share* resources ?

re:
As the code is growing, I have to find a
mechanism of automatic update of shared code

If your code is in 3 disconnected servers, I doubt you'll find one.

I don't think you'll find that feature on *any* server,
but if I'm mistaken, I'd learn something of value.

You might look, if you need 3 servers after all, into creating a cluster or a server farm.
That is not so hard to do, and it will make the multiple updates possible.

re:
Does Visual studio has any facility like that?
putting dll in multiple paths after compilation?

Not that I know of, and especially not to 3 disconnected servers.
Again, I don't think that *any* platform allows that.

re:
I am thinking of writing customize batch program which not only
compiles the common code but adds it to specified directory.
This way I can automate the compilation process.

That's a possibility which might work.




That doesn't solve my problem though. I have three websites on three
servers. As the code is growing, I have to find a mechanism of
automatic update of shared code. but looks like there isn't any.

I am thinking of writing customize batch program which not only
compiles the common code but adds it to specified directory. This way I
can automate the compilation process. Does Visual studio has any
facility like that? putting dll in multiple pathes after compilation??
-neo
re:
Is there really no solution from microsoft to update dll automatically?

Placing an assembly in the GAC will make the
assembly available to all applications on the server.

One dll...one dll update when needed...all applications are served.

Updating the dll is a bit trickier than usual but if you want one dll,
putting the assembly in the GAC is the only way to do it.





Neo said:
I just checked and found
1. You can't add child project to website.
2. Whenever you add reference to a dll, it gets copied in /bin folder
so you are always using duplicate not the orignal dll.

So effecitively, when we create update dll we must add it manually to
all websites. That sounds like nightmare. Is there really no solution
from microsoft to update dll automatically???

Web services sounds real cool solution but why won't that be slower if
network between servicing site and using site is slower?

-Neo

Neo wrote:
so what you mean, is child class project can refer to files outsite the
website folder? Isn't this flaw in secuirty? Normal aspx pages must
stay in webfolder where as class files can be outsite? I was under the
imporession all class files must be in app_dir folder.
-neo

(e-mail address removed) wrote:
Harolds wrote:
If you add the "class libraries" project to each web site solution you ["dont" ? -matt]
have
to worry about the redistribution of the dll, and you can add/update the code
in the class libraries from either web site solution.

ah.. so youre saying instead of just coping the black-box .DLL to each
website, have each website's solution include the class library asa
child project.

yes that could be a better way to do it -- since each website points to
the same class project on the file system, it will build & includethe
latest into that particular website.


matt
 
N

Neo

One thing I missed, there is parameter called "auto-refresh path" for
added class library dll. Which takes care of auto-update so, adding dll
does solve my problem!
-Thanks
neo.
I guess, this does update if source dll is changed.
Neo said:
Three servers are given since all they are for different clients. But
common code is just same.

I am not that much worried about update to three servers. I am just
worried about sharing code. Appearantly there doesn't seem to be any
mechanism to share code of different websites. When I say website I
don't mean sharing code on different server, I just mean sharing code
in my development machine. Update can be done later whenever there is
patch to be given. I can update three websites manually, what I am not
comfortable adding dll to each site manually (which I might forget :))
re:
I have three websites on three servers.

You *really* should have mentioned that from the beginning.

That looks like it's an awful waste of resources.

What prevents you from having eveything in one server,
where you *could* share* resources ?

re:
As the code is growing, I have to find a
mechanism of automatic update of shared code

If your code is in 3 disconnected servers, I doubt you'll find one.

I don't think you'll find that feature on *any* server,
but if I'm mistaken, I'd learn something of value.

You might look, if you need 3 servers after all, into creating a cluster or a server farm.
That is not so hard to do, and it will make the multiple updates possible.

re:
Does Visual studio has any facility like that?
putting dll in multiple paths after compilation?

Not that I know of, and especially not to 3 disconnected servers.
Again, I don't think that *any* platform allows that.

re:
I am thinking of writing customize batch program which not only
compiles the common code but adds it to specified directory.
This way I can automate the compilation process.

That's a possibility which might work.




That doesn't solve my problem though. I have three websites on three
servers. As the code is growing, I have to find a mechanism of
automatic update of shared code. but looks like there isn't any.

I am thinking of writing customize batch program which not only
compiles the common code but adds it to specified directory. This way I
can automate the compilation process. Does Visual studio has any
facility like that? putting dll in multiple pathes after compilation??
-neo
re:
Is there really no solution from microsoft to update dll automatically?

Placing an assembly in the GAC will make the
assembly available to all applications on the server.

One dll...one dll update when needed...all applications are served.

Updating the dll is a bit trickier than usual but if you want one dll,
putting the assembly in the GAC is the only way to do it.





I just checked and found
1. You can't add child project to website.
2. Whenever you add reference to a dll, it gets copied in /bin folder
so you are always using duplicate not the orignal dll.

So effecitively, when we create update dll we must add it manually to
all websites. That sounds like nightmare. Is there really no solution
from microsoft to update dll automatically???

Web services sounds real cool solution but why won't that be slowerif
network between servicing site and using site is slower?

-Neo

Neo wrote:
so what you mean, is child class project can refer to files outsite the
website folder? Isn't this flaw in secuirty? Normal aspx pages must
stay in webfolder where as class files can be outsite? I was underthe
imporession all class files must be in app_dir folder.
-neo

(e-mail address removed) wrote:
Harolds wrote:
If you add the "class libraries" project to each web site solution you ["dont" ? -matt]
have
to worry about the redistribution of the dll, and you can add/update the code
in the class libraries from either web site solution.

ah.. so youre saying instead of just coping the black-box .DLL to each
website, have each website's solution include the class library as a
child project.

yes that could be a better way to do it -- since each website points to
the same class project on the file system, it will build & include the
latest into that particular website.


matt
 
J

Juan T. Llibre

re:
I am just worried about sharing code

Tell me, how do you plan on customizing each
application if you have common code for all ?

Are the applications *that* identical that the same code works for all ?

In that case, what's stopping you from having 3 different projects,
and just updating the projects with a batch file copy ?

Then, publishing to the 3 apps is only one click away for each app.





Three servers are given since all they are for different clients. But
common code is just same.

I am not that much worried about update to three servers. I am just
worried about sharing code. Appearantly there doesn't seem to be any
mechanism to share code of different websites. When I say website I
don't mean sharing code on different server, I just mean sharing code
in my development machine. Update can be done later whenever there is
patch to be given. I can update three websites manually, what I am not
comfortable adding dll to each site manually (which I might forget :))
re:
I have three websites on three servers.

You *really* should have mentioned that from the beginning.

That looks like it's an awful waste of resources.

What prevents you from having eveything in one server,
where you *could* share* resources ?

re:
As the code is growing, I have to find a
mechanism of automatic update of shared code

If your code is in 3 disconnected servers, I doubt you'll find one.

I don't think you'll find that feature on *any* server,
but if I'm mistaken, I'd learn something of value.

You might look, if you need 3 servers after all, into creating a cluster or a server farm.
That is not so hard to do, and it will make the multiple updates possible.

re:
Does Visual studio has any facility like that?
putting dll in multiple paths after compilation?

Not that I know of, and especially not to 3 disconnected servers.
Again, I don't think that *any* platform allows that.

re:
I am thinking of writing customize batch program which not only
compiles the common code but adds it to specified directory.
This way I can automate the compilation process.

That's a possibility which might work.




That doesn't solve my problem though. I have three websites on three
servers. As the code is growing, I have to find a mechanism of
automatic update of shared code. but looks like there isn't any.

I am thinking of writing customize batch program which not only
compiles the common code but adds it to specified directory. This way I
can automate the compilation process. Does Visual studio has any
facility like that? putting dll in multiple pathes after compilation??
-neo
re:
Is there really no solution from microsoft to update dll automatically?

Placing an assembly in the GAC will make the
assembly available to all applications on the server.

One dll...one dll update when needed...all applications are served.

Updating the dll is a bit trickier than usual but if you want one dll,
putting the assembly in the GAC is the only way to do it.





Neo said:
I just checked and found
1. You can't add child project to website.
2. Whenever you add reference to a dll, it gets copied in /bin folder
so you are always using duplicate not the orignal dll.

So effecitively, when we create update dll we must add it manually to
all websites. That sounds like nightmare. Is there really no solution
from microsoft to update dll automatically???

Web services sounds real cool solution but why won't that be slower if
network between servicing site and using site is slower?

-Neo

Neo wrote:
so what you mean, is child class project can refer to files outsite the
website folder? Isn't this flaw in secuirty? Normal aspx pages must
stay in webfolder where as class files can be outsite? I was under the
imporession all class files must be in app_dir folder.
-neo

(e-mail address removed) wrote:
Harolds wrote:
If you add the "class libraries" project to each web site solution you ["dont" ? -matt]
have
to worry about the redistribution of the dll, and you can add/update the code
in the class libraries from either web site solution.

ah.. so youre saying instead of just coping the black-box .DLL to each
website, have each website's solution include the class library as a
child project.

yes that could be a better way to do it -- since each website points to
the same class project on the file system, it will build & include the
latest into that particular website.


matt
 
N

Neo

Not all files are same. But some functionality like file logging, file
download code etc is common.

Each website has customize code as well as re-used common code. Of
course I can do batch copy but I want to happened automatically.

but this auto-refresh file property does the job. so I am all set.
re:
I am just worried about sharing code

Tell me, how do you plan on customizing each
application if you have common code for all ?

Are the applications *that* identical that the same code works for all ?

In that case, what's stopping you from having 3 different projects,
and just updating the projects with a batch file copy ?

Then, publishing to the 3 apps is only one click away for each app.





Three servers are given since all they are for different clients. But
common code is just same.

I am not that much worried about update to three servers. I am just
worried about sharing code. Appearantly there doesn't seem to be any
mechanism to share code of different websites. When I say website I
don't mean sharing code on different server, I just mean sharing code
in my development machine. Update can be done later whenever there is
patch to be given. I can update three websites manually, what I am not
comfortable adding dll to each site manually (which I might forget :))
re:
I have three websites on three servers.

You *really* should have mentioned that from the beginning.

That looks like it's an awful waste of resources.

What prevents you from having eveything in one server,
where you *could* share* resources ?

re:
As the code is growing, I have to find a
mechanism of automatic update of shared code

If your code is in 3 disconnected servers, I doubt you'll find one.

I don't think you'll find that feature on *any* server,
but if I'm mistaken, I'd learn something of value.

You might look, if you need 3 servers after all, into creating a cluster or a server farm.
That is not so hard to do, and it will make the multiple updates possible.

re:
Does Visual studio has any facility like that?
putting dll in multiple paths after compilation?

Not that I know of, and especially not to 3 disconnected servers.
Again, I don't think that *any* platform allows that.

re:
I am thinking of writing customize batch program which not only
compiles the common code but adds it to specified directory.
This way I can automate the compilation process.

That's a possibility which might work.




That doesn't solve my problem though. I have three websites on three
servers. As the code is growing, I have to find a mechanism of
automatic update of shared code. but looks like there isn't any.

I am thinking of writing customize batch program which not only
compiles the common code but adds it to specified directory. This way I
can automate the compilation process. Does Visual studio has any
facility like that? putting dll in multiple pathes after compilation??
-neo
re:
Is there really no solution from microsoft to update dll automatically?

Placing an assembly in the GAC will make the
assembly available to all applications on the server.

One dll...one dll update when needed...all applications are served.

Updating the dll is a bit trickier than usual but if you want one dll,
putting the assembly in the GAC is the only way to do it.





I just checked and found
1. You can't add child project to website.
2. Whenever you add reference to a dll, it gets copied in /bin folder
so you are always using duplicate not the orignal dll.

So effecitively, when we create update dll we must add it manually to
all websites. That sounds like nightmare. Is there really no solution
from microsoft to update dll automatically???

Web services sounds real cool solution but why won't that be slowerif
network between servicing site and using site is slower?

-Neo

Neo wrote:
so what you mean, is child class project can refer to files outsite the
website folder? Isn't this flaw in secuirty? Normal aspx pages must
stay in webfolder where as class files can be outsite? I was underthe
imporession all class files must be in app_dir folder.
-neo

(e-mail address removed) wrote:
Harolds wrote:
If you add the "class libraries" project to each web site solution you ["dont" ? -matt]
have
to worry about the redistribution of the dll, and you can add/update the code
in the class libraries from either web site solution.

ah.. so youre saying instead of just coping the black-box .DLL to each
website, have each website's solution include the class library as a
child project.

yes that could be a better way to do it -- since each website points to
the same class project on the file system, it will build & include the
latest into that particular website.


matt
 
M

matt

Neo said:
Not all files are same. But some functionality like file logging, file
download code etc is common.

i believe this is simple.

if you have 3 websites that live on different servers, but your
development is all on the same machine.. then you just create three
seperate solutions in VS.NET. each solution has two projects:

1) the unique website
2) a "my common code" project, w/ your shared code

....the common-code project lives on the filesystem outside of *any* of
the websites. ala:

c:\projects\MyCommonCode\
c:\projects\Website1
c:\projects\Website2
c:\projects\Website3

as mentioned, in each solution you include a "Project Reference" to the
MyCommonCode project. you can update the code in this project at any
time from any of the 3 solutions. when you re-build any of the 3
solutions, they will build the latest version of the MyCommonCode
project and automatically copy it to your current solutions' /bin.

that works.

now, if you want it to *automatically* update *all* 3 solutions (w/o
manually re-building each), then you must use the GAC idea as described
by another.

or, you could write some code that monitors the /bin/release folder of
the MyCommonCode project, and when its updated FTP copy it to your
other solutions.


matt
 
G

Guest

You add a child project to your website, by selecting Add/'(New/Existing)
Project...' under the File menu in VS 2005.
--
Harolds


Neo said:
I just checked and found
1. You can't add child project to website.
2. Whenever you add reference to a dll, it gets copied in /bin folder
so you are always using duplicate not the orignal dll.

So effecitively, when we create update dll we must add it manually to
all websites. That sounds like nightmare. Is there really no solution
from microsoft to update dll automatically???

Web services sounds real cool solution but why won't that be slower if
network between servicing site and using site is slower?

-Neo
so what you mean, is child class project can refer to files outsite the
website folder? Isn't this flaw in secuirty? Normal aspx pages must
stay in webfolder where as class files can be outsite? I was under the
imporession all class files must be in app_dir folder.
-neo

Harolds wrote:
If you add the "class libraries" project to each web site solution you ["dont" ? -matt] have
to worry about the redistribution of the dll, and you can add/update the code
in the class libraries from either web site solution.

ah.. so youre saying instead of just coping the black-box .DLL to each
website, have each website's solution include the class library as a
child project.

yes that could be a better way to do it -- since each website points to
the same class project on the file system, it will build & include the
latest into that particular website.


matt
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,994
Messages
2,570,223
Members
46,813
Latest member
lawrwtwinkle111

Latest Threads

Top