Adapter
Authored by: Daniel Cazzulino
The provided adapter pattern allows to convert any object to any other supported type, as provided by the registered adapters.
This package is a convenience grouping of all three separate pieces, for cases where you want to deploy all of them in a single project.
======= Example =======
IProject project = GetCurrentProject();
// say we need to use it as an MSBuild project, if possible
IMSBuildProject msbuild = project.As<IMSBuildProject>();
if (msbuild != null)
// do MSBuild stuff with it.
======= Adapters =======
public class ProjectToMsBuildAdapter : IAdapter<IProject, IMSBuildProject>
{
// Implement actual conversion.
}
The conversion behavior is now decoupled from the usage.
|
1.1.1310.2819 |
12 years ago |
Adapter.Composition
Authored by: Daniel Cazzulino
The provided ComposedAdapterService exports the IAdapterService interface, and "imports many" IAdapter implementations.
Initialize your composition container so that it contains both the exported adapters and the adapter service, and it
will be initialized automatically for use.
======= Example =======
// Initialize container with your assemblies/types/catalogs
CompositionContainer container = new CompositionContainer(catalog);
// Retrieve initialized adapter service
IAdapterService service = container.GetExportedValue<IAdapterService>();
// Initialize the adapter facade with the service
Adapters.SetService(service);
// Use adapter extension method As as needed, i.e.
// say we need to use it as an MSBuild project, if possible
IMSBuildProject msbuild = project.As<IMSBuildProject>();
if (msbuild != null)
// do MSBuild stuff with it.
======= Adapters =======
[Export(typeof(IAdapter))]
public class ProjectToMsBuildAdapter : IAdapter<IProject, IMSBuildProject>
{
// Implement actual conversion.
}
Simply by exporting the right contract, the adapter service will locate it.
Note that to create adapter implementations, you need to install the Adapter.Sdk package.
|
1.1.1310.2819 |
12 years ago |
Adapter.Composition.Source
Authored by: Daniel Cazzulino
The provided ComposedAdapterService exports the IAdapterService interface, and "imports many" IAdapter implementations.
Initialize your composition container so that it contains both the exported adapters and the adapter service, and it
will be initialized automatically for use.
======= Example =======
// Initialize container with your assemblies/types/catalogs
CompositionContainer container = new CompositionContainer(catalog);
// Retrieve initialized adapter service
IAdapterService service = container.GetExportedValue<IAdapterService>();
// Initialize the adapter facade with the service
Adapters.SetService(service);
// Use adapter extension method As as needed, i.e.
// say we need to use it as an MSBuild project, if possible
IMSBuildProject msbuild = project.As<IMSBuildProject>();
if (msbuild != null)
// do MSBuild stuff with it.
======= Adapters =======
[Export(typeof(IAdapter))]
public class ProjectToMsBuildAdapter : IAdapter<IProject, IMSBuildProject>
{
// Implement actual conversion.
}
Simply by exporting the right contract, the adapter service will locate it.
Note that to create adapter implementations, you need to install the Adapter.Sdk package.
|
1.1.1310.2819 |
12 years ago |
Adapter.Implementation
Authored by: Daniel Cazzulino
The provided adapter pattern allows to convert any object to any other supported type, as provided by the registered adapters.
This package provides the actual implementation of the service. It should only be added to the bootstrapping component of your application.
======= Example =======
IProject project = GetCurrentProject();
// say we need to use it as an MSBuild project, if possible
IMSBuildProject msbuild = project.As<IMSBuildProject>();
if (msbuild != null)
// do MSBuild stuff with it.
======= Adapters =======
public class ProjectToMsBuildAdapter : IAdapter<IProject, IMSBuildProject>
{
// Implement actual conversion.
}
The conversion behavior is now decoupled from the usage.
Note that to create adapter implementations, you need to install the Adapter.Sdk package.
|
1.1.1310.2819 |
12 years ago |
Adapter.Implementation.Source
Authored by: Daniel Cazzulino
The provided adapter pattern allows to convert any object to any other supported type, as provided by the registered adapters.
This package provides the actual implementation of the service. It should only be added to the bootstrapping component of your application.
======= Example =======
IProject project = GetCurrentProject();
// say we need to use it as an MSBuild project, if possible
IMSBuildProject msbuild = project.As<IMSBuildProject>();
if (msbuild != null)
// do MSBuild stuff with it.
======= Adapters =======
public class ProjectToMsBuildAdapter : IAdapter<IProject, IMSBuildProject>
{
// Implement actual conversion.
}
The conversion behavior is now decoupled from the usage.
Note that to create adapter implementations, you need to install the Adapter.Sdk package.
|
1.1.1310.2819 |
12 years ago |
Adapter.Interfaces
Authored by: Daniel Cazzulino
Only two APIs are provided: the IAdapterService and its facade extension method As in the Adapters type.
You can chose to use the former service directly instead of the convenience extension method. You don't
lose any testability in doing either way, although you do need to pass around the adapter service in one
case.
======= Example =======
// Calling code assumes there is a service always setup before invoking.
// If there isn't, an InvalidOperationException is thrown automatically.
// Use adapter extension method As as needed, i.e.
// say we need to use it as an MSBuild project, if possible
IMSBuildProject msbuild = project.As<IMSBuildProject>();
if (msbuild != null)
// do MSBuild stuff with it.
|
1.1.1310.2819 |
12 years ago |
Adapter.Interfaces.Source
Authored by: Daniel Cazzulino
Only two APIs are provided: the IAdapterService and its facade extension method As in the Adapters type.
You can chose to use the former service directly instead of the convenience extension method. You don't
lose any testability in doing either way, although you do need to pass around the adapter service in one
case.
======= Example =======
// Calling code assumes there is a service always setup before invoking.
// If there isn't, an InvalidOperationException is thrown automatically.
// Use adapter extension method As as needed, i.e.
// say we need to use it as an MSBuild project, if possible
IMSBuildProject msbuild = project.As<IMSBuildProject>();
if (msbuild != null)
// do MSBuild stuff with it.
|
1.1.1310.2819 |
12 years ago |
Adapter.Sdk
Authored by: Daniel Cazzulino
The only contract provided by this assembly is the IAdapter interface. This is the interface that
the adapter service implementation interacts with. As such, the SDK does not have any other
external dependencies, since it's the adapter service that consumes this interface. The client-facing
code does not need to know about adapters either.
======= Example =======
public class ProjectToMsBuildAdapter : IAdapter<IProject, IMSBuildProject>
{
// Implement actual conversion.
}
|
1.1.1310.2819 |
12 years ago |
Adapter.Sdk.Source
Authored by: Daniel Cazzulino
The only contract provided by this assembly is the IAdapter interface. This is the interface that
the adapter service implementation interacts with. As such, the SDK does not have any other
external dependencies, since it's the adapter service that consumes this interface. The client-facing
code does not need to know about adapters either.
======= Example =======
public class ProjectToMsBuildAdapter : IAdapter<IProject, IMSBuildProject>
{
// Implement actual conversion.
}
|
1.1.1310.2819 |
12 years ago |
Adapter.Source
Authored by: Daniel Cazzulino
The provided adapter pattern allows to convert any object to any other supported type, as provided by the registered adapters.
This package is a convenience grouping of all three separate pieces, for cases where you want to deploy all of them in a single project.
======= Example =======
IProject project = GetCurrentProject();
// say we need to use it as an MSBuild project, if possible
IMSBuildProject msbuild = project.As<IMSBuildProject>();
if (msbuild != null)
// do MSBuild stuff with it.
======= Adapters =======
public class ProjectToMsBuildAdapter : IAdapter<IProject, IMSBuildProject>
{
// Implement actual conversion.
}
The conversion behavior is now decoupled from the usage.
|
1.1.1310.2819 |
12 years ago |
Clarius.TransformOnBuild
Authored by: Daniel Cazzulino, Michael Naumov
Automatically transforms on build all files with a build action of `None/Content` that have the `TextTemplatingFileGenerator` custom tools associated, without requiring the installation of any Visual Studio SDK.
|
1.22.0 |
6 years ago |
Clarius.VisualStudio
Authored by: Daniel Cazzulino
Common targets to create version-aware Visual Studio extensions easily.
|
2.0.14 |
8 years ago |
Clide
Authored by: kzu, Daniel Cazzulino
Clide
|
3.2.11+sha.275e374 |
7 years ago |
Clide.Resolver
Authored by: Daniel Cazzulino
Provides custom resolution of assembly references that are deployed locally with the consuming extension.
|
2.3.33 |
10 years ago |
CommonComposition.Mef.Source
Authored by: ClariusLabs
Provides the Common Composition bindings for MEF.
|
0.2.4 |
9 years ago |
CommonComposition.Source
Authored by: Daniel Cazzulino
Portable component composition annotations, dependency injection framework agnostic.
Automatically register your application components by convention with the most popular DI frameworks, while keeping your code container-agnostic.
|
0.2.4 |
9 years ago |
CommonServiceLocator.Source
Authored by: Microsoft
Source code version of the Common Service Locator library. Origin: https://github.com/clariuslabs/CommonServiceLocator/tree/v1.0.2
|
1.0.2 |
9 years ago |
coveralls.io
Authored by: Jason Deering
Program for sending coverage reports to coveralls.io
|
1.4.2 |
8 years ago |
GitInfo
Authored by: Daniel Cazzulino
Access commit information from MSBuild and C#/F#/VB code, and infer SemVer from branch, tag or version file in Git repository.
> This project uses SponsorLink to attribute sponsor status (direct, indirect or implicit). For IDE usage, sponsor status is required.
> IDE-only warnings will be emitted after a grace period otherwise. Learn more at https://github.com/devlooped#sponsorlink.
|
3.5.0 |
8 months ago |
MSBuilder.CodeTaskAssembly
Authored by: Mobile Essentials
Provides the $(CodeTaskAssembly) property which properly locates the right assembly to use for inline tasks depending on the currently executing MSBuild engine.
|
0.2.6 |
7 years ago |
netfx-Guard
Authored by: Daniel Cazzulino, kzu, Clarius
The only argument validation file you need, with full refactoring support and strong-typing.
Examples:
Guard.NotNull(() => value, value)
Guard.NotNullOrEmpty(
() => stringValue, stringValue)
|
1.3.3.2 |
9 years ago |
netfx-Reflector
Authored by: Daniel Cazzulino, kzu, Clarius
Strong-typed static reflection via Reflect:
// Void static method
MethodInfo cw = Reflect.GetMethod(
() => Console.WriteLine);
// Instance void method
MethodInfo mi =
Reflect.GetMethod(v => v.Show);
// Boolean returning instance method
MethodInfo pi = Reflect
.GetMethod(v => v.Save);
|
1.0.0.11 |
6 years ago |
netfx-System.AmbientSingleton
Authored by: Daniel Cazzulino, kzu, Clarius
Provides an easy way to implement the singleton (anti?) pattern so that it is ambient-safe, propagates with a call context and can be overriden per ambient (i.e. in tests).
|
1.2.1.0 |
9 years ago |
netfx-System.AppDomainData
Authored by: Daniel Cazzulino, kzu, Clarius
Provides strong-typed persistence of data in an AppDomain, which can also be transient and automatically removed on dispose.
Usage: AppDomain.CurrentDomain.SetData<Foo>(foo);
var saved = AppDomain.CurrentDomain.GetData<Foo>();
|
1.1.0.3 |
9 years ago |
netfx-System.Collections.Generic.DictionaryGetOrAdd
Authored by: Daniel Cazzulino, kzu, Clarius
Provides the GetOrAdd extension method for generic dictionaries, borrowed from the ConcurrentDictionary class.
|
1.1.1.1 |
9 years ago |