How does {smartassembly} improve your Application? (3/9)
This information refers to {smartassembly} 1.1 and will be updated with 2.0.
|
Pruning
In the next Step, we can decide if we want to remove the non-useful code from
the resulting Assembly.

We select the option I want to remove ALL the non-useful code.
If we click on the Edit the list button, {smartassembly} will open a dialog
form. This form displays the code and metadata, which is going to be removed.
In our sample, {smartassembly} will remove some code in the MyMath library:

In the MyUI library, some properties are not needed either, and will thus be
removed too:

Examples of non useful-code:
Dead-code,
which is code that will never be accessed because all calls to it have been
removed, due to changes in the program.
Features
that are still in development and not yet fully implemented. This is common
when you create a patch from a more recent source code.
Most
assemblies use specific code at design-time (designers, attributes, metadata,
etc.) with is not necessary at run-time.
The use
or re-use of external components (developed internally or by a 3rd party) leads
to a lot of generic code which is implemented but not always used: Properties,
methods, and even objects not useful for your application.
Practically, it's impossible to remove useless code in each component, mainly
because the code used may change at each compilation.
But, as {smartassembly} creates a unique assembly, based on all these
components, it can remove all this useless code, even if it changes between
each compilation.
As {smartassembly} is a post-compilation process, no developments facilities
allowed by these components are sacrificed.
What are the benefits of removing the non-useful code?
It
reduces the size of the Assembly, and thus improves loading time and global
performance. A smaller Assembly is also easier to deploy through the Internet
or a corporate network.
It
avoids exposing non useful code, like code not fully implemented yet, which may
reveal upcoming features.
< Merging (2/9) | Obfuscation (4/9) >
|
 |
 |
 |
|