2. Xamarin
Shared Asset Projects
Use a single set of files and offers a quick and simple way
in which to share code within a solution and generally
employs conditional compilation directives to specify code
paths for various platforms that will use it
3. Xamarin
Shared Asset Projects
Benefits :
● Allows you to share code across multiple projects.
● Shared code can be branched based on the platform using compiler
directives (eg. using #if __ANDROID__ , _IOS__ , __WINDOWS_PHONE__)
● Application projects can include platform-specific references that the shared
code can utilize (such as using Community.CsharpSqlite.WP7 in the Tasky
sample for Windows Phone).
4. Xamarin
Shared Asset Projects
Disadvantages:
● Unlike most other project types, a Shared Project has no 'output' assembly.
During compilation, the files are treated as part of the referencing project and
compiled into that DLL. If you wish to share your code as a DLL then Portable
Class Libraries are a better solution.
● Refactorings that affect code inside 'inactive' compiler directives will not
update the code.
7. Xamarin
Portable Class Libraries
Projects target specific profiles that
support a known set of BCL
classes/features. However, the down
side to PCL is that they often require
extra architectural effort to separate
profile specific code into their own
libraries
Básicamente usa directivas de compilación condicionales, para especificar las partes de código que van a usarse.
Permite compartir código en multiples proyectos.
Usando directivas de compilación, permite condicionar que partes de código van a aplicar según el sistema operativo a utilizar.
A diferencia de la mayoría de los otros tipos de proyectos , un proyecto compartido sin módulo de "salida" . Durante la compilación , los archivos son tratados como parte del proyecto de referencia y compilados en esa DLL . Si desea compartir su código como un archivo DLL entonces bibliotecas de clases portátiles son una solución mejor.Refactorizaciones que afectan al código dentro de las directivas del compilador "inactivos" no van a actualizar el código .
Permite compartir código en multiples proyectos.
Al hacer un refactor, actualiza todas sus referencias.
No se puede utilizar directivas de compilación . (para definir el so)Sólo un subconjunto de .NET Framework está disponible para usar , determinada por el perfil seleccionado .