Naming assemblies in asp.net 2.0

G

Guest

In my ASP.NET 1.1 solutions, I created several web projects and compiled them
each into an assembly. The assembly names reflected the functionality of the
feature (Membership.dll, Dues.dll, etc). This made it easy to update an area
of the product and deploy that assembly (along with it's associated Business
Layer assembly).

In 2.0, I can use pure dynamic compilation (ick - source code on the
server); fixed_names (ick - hundreds or thousands of dlls to manage); or full
precompilation mode (ick - no predictable names and no obvious way to upgrade
a particular application area). I really like the full precompilation option
a lot -- IF I COULD SPECIFY AN ASSEMBLY NAME. If I am precompiling the
assembly anyway, why can't I specify the assembly name? This would allow me
to later go to the server and update the Membership.dll instead of trying to
guess which APP_fdru3jdiuafu3kjf.dll file is the right one.
 
S

Steven Cheng[MSFT]

Hi Bob,

Welcome to ASPNET newsgroup.
As for the ASP.NET 2.0 precompilation generated assembly's name problem,
I've also got some feedback on this from some other community members. In
fact, the current precompilation genearted assemblies are still using the
same dynamic compilation mechanism like the full-dynamic compilation, so
you'll found the naming style of the precompilation assemblies are the same
with the ones being generated at runtime when not use precompilation (view
them in the ASP.NET Temporary folder). So they're different from the
assemblies we build in asp.net 1.1 project, those ones are not compiled
following the dynamic compilation naming rules.

And for your senario, since you have certain business components or other
class components which need to be separated compiled from the asp.net front
UI's assemblies, I think you can move those separate component classes into
external class library projects and compile them separately, thus we can
control the output assemblies' name for them. Also in the asp.net
application, we can reference those external components assemblies and
deploy them in the private bin dir also.

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.)


--------------------
| Thread-Topic: Naming assemblies in asp.net 2.0
| thread-index: AcXOv8IknPw4anqJSoC6ogp233X9vw==
| X-WBNR-Posting-Host: 206.71.69.234
| From: "=?Utf-8?B?SmFzb24=?=" <[email protected]>
| Subject: Naming assemblies in asp.net 2.0
| Date: Tue, 11 Oct 2005 16:59:04 -0700
| Lines: 14
| Message-ID: <[email protected]>
| MIME-Version: 1.0
| Content-Type: text/plain;
| charset="Utf-8"
| Content-Transfer-Encoding: 7bit
| X-Newsreader: Microsoft CDO for Windows 2000
| Content-Class: urn:content-classes:message
| Importance: normal
| Priority: normal
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 10.40.2.250
| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGXA03.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:350141
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| In my ASP.NET 1.1 solutions, I created several web projects and compiled
them
| each into an assembly. The assembly names reflected the functionality of
the
| feature (Membership.dll, Dues.dll, etc). This made it easy to update an
area
| of the product and deploy that assembly (along with it's associated
Business
| Layer assembly).
|
| In 2.0, I can use pure dynamic compilation (ick - source code on the
| server); fixed_names (ick - hundreds or thousands of dlls to manage); or
full
| precompilation mode (ick - no predictable names and no obvious way to
upgrade
| a particular application area). I really like the full precompilation
option
| a lot -- IF I COULD SPECIFY AN ASSEMBLY NAME. If I am precompiling the
| assembly anyway, why can't I specify the assembly name? This would allow
me
| to later go to the server and update the Membership.dll instead of trying
to
| guess which APP_fdru3jdiuafu3kjf.dll file is the right one.
|
 
S

Scott Allen

I really like the full precompilation option
a lot -- IF I COULD SPECIFY AN ASSEMBLY NAME. If I am precompiling the
assembly anyway, why can't I specify the assembly name? This would allow me
to later go to the server and update the Membership.dll instead of trying to
guess which APP_fdru3jdiuafu3kjf.dll file is the right one.


There will be a build and deployment tool available soon that will
allow you to place all of the pre-compiled assemblies into a single
assembly. I'm not sure if the name of the final assembly can be
specified or not, but we'll have to wait and see.
 
G

Guest

Do you mean a third party tool? Or will this functionality be available in
VS.NET 2005? If I have the ability to build my asp.net pages to an assembly
of a certain, developer-defined name, I will be a very happy camper, indeed!
 
G

Guest

Thank you, Steven, for your reply.

I was aware that I could name the business layer objects whatever I wanted.

The concern is with the assemblies generated by the pages. An update usually
consists of a vertical portion of the application (i.e., Membership). I would
want to replace the Presentation layer, the Business layer, and upgrade the
DB layer. The second two are easy, because I know what is where. The
Presentation layer is unmanageable if I can't identify which assembly
contains which function group.

I need to be able to have Membership.dll (contains the compiled pages and
their codefiles), MembershipBL.dll (contains the business components),
Utility.dll (contains shared classes, etc), and SQLData.dll (database layer).

Under the current model (the way I understand it), I could have
MembershipBL.dll, Utility.dll, and SQLData.dll. But what I would like to call
Membership.dll, would actually be dynamically named and that name would not
persist across builds (which, incidentally, also causes problems with my
automated build and deploy process). And I don't want to use -fixednames,
because I don't want to end up with 1400 dlls.
 
J

Juan T. Llibre

re:
Do you mean a third party tool?

No. A Microsoft tool.

http://weblogs.asp.net/scottgu/archive/2005/08/28/423888.aspx

<quote>

"Note: one request we've heard from several people since Beta2 has been to
provide a new third compilation granularity option above which would allow you
to merge the assembly output from multiple directories into a single assembly
that has a well known name that you define (and which does not change across
re-builds - which is one unfortunate side-affect of the per-directory build option today).

We are working on a tool right now that does this, and have a prototype up and
running that seems to work great.

</quote>

It should work integrated with Visual Studio 2005.

However, that just covers the additional granularity involved when you want
all the files in multiple directories compiled to a single assembly.

VS.NET 2005 has another option, the "fixed names" option,
which is available when you pre-compile a website.

Just above the above-quoted paragraph,
in Scott's blog, is a paragraph which states:

<quote>

"Specifically, VS 2005 + ASP.NET 2.0 now by default compiles your
web project so that each separate directory of .aspx/.ascx content compiles
into a separate assembly.

For even more flexibility, you can also optionally choose to compile each
..aspx or .ascx file into its own separate assembly (this option is called the
"fixed name" option because it also results in assemblies whose names are
fixed across multiple compilations).

The benefit with this later approach is that you can now deploy individual updates
on your system without having to re-build and update your entire site."

</quote>

See the images just below the blog's heading titled:
" Building and Deploying the Web Project Library from the VS IDE "

and you'll see where to select the "fixed names" option
when pre-compiling your website.

When you select the "Use fixed naming and single page assemblies"
option when you publish your web site, you'll be able to, at least,
name your assemblies, which will take you closer to your goal.

However, if what you want to do is build to a *single* named assembly
for all of your website, then you'll have to wait until the tool mentioned
by Scott is released, which should be at about product release this coming month.
 
G

Guest

Thanks, Juan. Way to pick a nugget of gold out of an article about something
else entirely. I actually read that blog entry and glossed over this very
important peice of information because I was thinking about web control
libraries, not my build process. (Now if I can just master typing and
breathing at the same time, I've got it made!)
 
S

Steven Cheng[MSFT]

Thanks for your reply Bob,

Yes, for pages' assembly it has the limitation on manually naming their
names. However I think after the framework release our dev guys will turn
focus on such new feedbacks during the beta2 --->RC time. And at that time
I think there may occurs more deployment compilation model availble (like
something mixed the current compliation models)

Thanks for your feedback,

Steven Cheng
Microsoft Online Support

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


--------------------
| Thread-Topic: Naming assemblies in asp.net 2.0
| thread-index: AcXPP3Wr8aSG7+kkRCewZWU8gSu7yA==
| X-WBNR-Posting-Host: 206.71.69.234
| From: "=?Utf-8?B?SmFzb24=?=" <[email protected]>
| References: <[email protected]>
<[email protected]>
| Subject: RE: Naming assemblies in asp.net 2.0
| Date: Wed, 12 Oct 2005 08:13:11 -0700
| Lines: 106
| Message-ID: <[email protected]>
| MIME-Version: 1.0
| Content-Type: text/plain;
| charset="Utf-8"
| Content-Transfer-Encoding: 7bit
| X-Newsreader: Microsoft CDO for Windows 2000
| Content-Class: urn:content-classes:message
| Importance: normal
| Priority: normal
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 10.40.2.250
| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGXA01.phx.gbl!TK2MSFTNGXA03.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:350310
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| Thank you, Steven, for your reply.
|
| I was aware that I could name the business layer objects whatever I
wanted.
|
| The concern is with the assemblies generated by the pages. An update
usually
| consists of a vertical portion of the application (i.e., Membership). I
would
| want to replace the Presentation layer, the Business layer, and upgrade
the
| DB layer. The second two are easy, because I know what is where. The
| Presentation layer is unmanageable if I can't identify which assembly
| contains which function group.
|
| I need to be able to have Membership.dll (contains the compiled pages and
| their codefiles), MembershipBL.dll (contains the business components),
| Utility.dll (contains shared classes, etc), and SQLData.dll (database
layer).
|
| Under the current model (the way I understand it), I could have
| MembershipBL.dll, Utility.dll, and SQLData.dll. But what I would like to
call
| Membership.dll, would actually be dynamically named and that name would
not
| persist across builds (which, incidentally, also causes problems with my
| automated build and deploy process). And I don't want to use -fixednames,
| because I don't want to end up with 1400 dlls.
|
| "Steven Cheng[MSFT]" wrote:
|
| > Hi Bob,
| >
| > Welcome to ASPNET newsgroup.
| > As for the ASP.NET 2.0 precompilation generated assembly's name
problem,
| > I've also got some feedback on this from some other community members.
In
| > fact, the current precompilation genearted assemblies are still using
the
| > same dynamic compilation mechanism like the full-dynamic compilation,
so
| > you'll found the naming style of the precompilation assemblies are the
same
| > with the ones being generated at runtime when not use precompilation
(view
| > them in the ASP.NET Temporary folder). So they're different from the
| > assemblies we build in asp.net 1.1 project, those ones are not compiled
| > following the dynamic compilation naming rules.
| >
| > And for your senario, since you have certain business components or
other
| > class components which need to be separated compiled from the asp.net
front
| > UI's assemblies, I think you can move those separate component classes
into
| > external class library projects and compile them separately, thus we
can
| > control the output assemblies' name for them. Also in the asp.net
| > application, we can reference those external components assemblies and
| > deploy them in the private bin dir also.
| >
| > 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.)
| >
| >
| > --------------------
| > | Thread-Topic: Naming assemblies in asp.net 2.0
| > | thread-index: AcXOv8IknPw4anqJSoC6ogp233X9vw==
| > | X-WBNR-Posting-Host: 206.71.69.234
| > | From: "=?Utf-8?B?SmFzb24=?=" <[email protected]>
| > | Subject: Naming assemblies in asp.net 2.0
| > | Date: Tue, 11 Oct 2005 16:59:04 -0700
| > | Lines: 14
| > | Message-ID: <[email protected]>
| > | MIME-Version: 1.0
| > | Content-Type: text/plain;
| > | charset="Utf-8"
| > | Content-Transfer-Encoding: 7bit
| > | X-Newsreader: Microsoft CDO for Windows 2000
| > | Content-Class: urn:content-classes:message
| > | Importance: normal
| > | Priority: normal
| > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
| > | Newsgroups: microsoft.public.dotnet.framework.aspnet
| > | NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 10.40.2.250
| > | Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGXA03.phx.gbl
| > | Xref: TK2MSFTNGXA02.phx.gbl
| > microsoft.public.dotnet.framework.aspnet:350141
| > | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
| > |
| > | In my ASP.NET 1.1 solutions, I created several web projects and
compiled
| > them
| > | each into an assembly. The assembly names reflected the functionality
of
| > the
| > | feature (Membership.dll, Dues.dll, etc). This made it easy to update
an
| > area
| > | of the product and deploy that assembly (along with it's associated
| > Business
| > | Layer assembly).
| > |
| > | In 2.0, I can use pure dynamic compilation (ick - source code on the
| > | server); fixed_names (ick - hundreds or thousands of dlls to manage);
or
| > full
| > | precompilation mode (ick - no predictable names and no obvious way to
| > upgrade
| > | a particular application area). I really like the full precompilation
| > option
| > | a lot -- IF I COULD SPECIFY AN ASSEMBLY NAME. If I am precompiling
the
| > | assembly anyway, why can't I specify the assembly name? This would
allow
| > me
| > | to later go to the server and update the Membership.dll instead of
trying
| > to
| > | guess which APP_fdru3jdiuafu3kjf.dll file is the right one.
| > |
| >
| >
|
 

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

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,014
Latest member
BiancaFix3

Latest Threads

Top