Metalama.Framework
2025.1.4-rc
Prefix Reserved
dotnet add package Metalama.Framework --version 2025.1.4-rc
NuGet\Install-Package Metalama.Framework -Version 2025.1.4-rc
<PackageReference Include="Metalama.Framework" Version="2025.1.4-rc" />
<PackageVersion Include="Metalama.Framework" Version="2025.1.4-rc" />
<PackageReference Include="Metalama.Framework" />
paket add Metalama.Framework --version 2025.1.4-rc
#r "nuget: Metalama.Framework, 2025.1.4-rc"
#addin nuget:?package=Metalama.Framework&version=2025.1.4-rc&prerelease
#tool nuget:?package=Metalama.Framework&version=2025.1.4-rc&prerelease
A Roslyn-based meta-programming framework for code generation, architecture validation and aspect-oriented programming in C#.
Metalama lets you write cleaner, more maintainable .NET code by automating repetitive patterns at compile time using aspects, templates, and compile-time logic. It integrates tightly with the Roslyn compiler, providing full control over how your code is built.
Why Metalama?
- Write and maintain less code: Eliminate boilerplate by generating it dynamically during compilation, reducing code lines and bugs by up to 15%.
- Validate your codebase in real time: Enforce adherence to design rules and conventions without waiting for code reviews.
- Excel with large, complex, or legacy codebases: Metalama shines at scale and does not require architectural changes.
When to use it?
Metalama is ideal for:
- Large projects: Automate repetitive patterns across dozens of entities and hundreds of properties or methods.
- Large teams: Align developers on consistent patterns and practices.
- Long lifecycle projects: Maintain quality over years of development.
It's main use cases are:
- Design Patterns: Singleton, Memento, Factory, Builder, Decorator, Proxy, ...
- UI Patterns: INotifyPropertyChanged, Change Tracking, Memoization, Undo/Redo, Command, Dependency Properties, ...
- Object Services: Cloning, ToString, Comparison, ...
- Defensive Programming: Code Contracts (preconditions, post-conditions, invariants)
- DevOps: Logging & Tracing, Metrics, Caching, Exception Handling
License
Metalama is released under the MIT license.
Some optional extensions and IDE tooling are released under a proprietary license. 💎
Features
- Code Generation
- Code Validation
- Architecture Validation 💎
- Immediate Editor Feedback
- Code Fix Toolkit 💎
- Ready-to-Use Aspect Libraries
- Visual Studio Tooling 💎
- Test Frameworks
- Debugging of Transformed Code
- Roslyn Extensibility SDK
- Code Query API
Resources
- 🌐 Metalama Website
- 📖 Documentation
- 📝 Annotated Examples
- 📜 Changelogs
- 📢 Release Notes
- ✨ Metalama Tools for Visual Studio Extension
Quick Start
Add the
Metalama.Framework
package to your project:dotnet add package Metalama.Framework
Optionally, install Metalama Tools for Visual Studio Extension. It's free for individuals, non-commercial uses, and companies with up to 3 users.
Explore the Metalama Marketplace for ready-made aspects or examples.
Follow the Getting Started guide to create your first aspect.
Building Metalama from Source
Please check instructions here.
Contributing
We welcome contributions! Here's how you can help:
- ⭐ Star this repository or review us on Visual Studio Marketplace.
- 📝 Write a blog post or record a video about Metalama.
- 📦 Share your aspects on the Metalama Marketplace.
- 🛠️ Contribute to Metalama.Community.
- 📚 Improve the documentation. Learn how.
- 🐛 Fix bugs or contribute code. Learn how.
For more details, see Contributing to Metalama.
Support & Community
- Report issues on GitHub. Follow these recommendations.
- Join GitHub discussions for questions and proposals.
- Enterprise support is available. Learn more about premium support. 💎
Related Packages
- Metalama.Extensions.DependencyInjection: allows you to inject services into your aspects using a dependency injection framework.
- Metalama.Extensions.Metrics: allows your aspects or fabrics to rely on code metrics, e.g. number of lines of code.
- Metalama.Extensions.Validation 💎: provides an API allowing to validate code and references, usages and dependencies.
- Metalama.Extensions.Architecture 💎: built on
Metalama.Extensions.Validation
, implements concrete rules for architecture verification. - Metalama.Extensions.CodeFixes 💎: allows you to attach code fix suggestions to errors and warnings or to suggest code refactorings.
- Metalama.Patterns.*: a set of ready-made, professionally-built aspect libraries built with
Metalama.Framework
, most of them open-source.
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Metalama.Compiler (>= 2025.1.3-rc)
- Metalama.Framework.Redist (>= 2025.1.4-rc)
- Microsoft.CSharp (>= 4.7.0)
NuGet packages (29)
Showing the top 5 NuGet packages that depend on Metalama.Framework:
Package | Downloads |
---|---|
Metalama.Extensions.DependencyInjection
An official and open-source Metalama extension that allows aspects to consume dependencies from an arbitrary dependency injection framework. |
|
Tofi.Framework.Aspects
Package Description |
|
Metalama.Patterns.Contracts
Contract-Based Programming (or Design-by-Contract) with custom attributes such as [NotNull] or [Url] thanks to Metalama: pre-conditions, post-conditions and invariants. |
|
Metalama.Extensions.Multicast
An official and open-source Metalama extension that emulates PostSharp multicasting. |
|
Metalama.Community.AutoCancellationToken
A Metalama weaver that automatically adds CancellationToken to your method definitions and your method calls. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Metalama.Framework:
Repository | Stars |
---|---|
metalama/Metalama
A meta-programming framework for code generation, aspect-oriented programming, and architecture verification in large C# codebases.
|
Version | Downloads | Last updated |
---|---|---|
2025.1.4-rc | 692 | 4/15/2025 |
2025.1.3-rc | 840 | 4/9/2025 |
2025.1.2-preview | 677 | 4/1/2025 |
2025.1.1-preview | 585 | 3/18/2025 |
2025.0.10 | 2,233 | 3/31/2025 |
2025.0.9 | 4,849 | 3/7/2025 |
2025.0.8 | 29,062 | 1/6/2025 |
2025.0.7-rc | 1,767 | 12/6/2024 |
2025.0.6-rc | 2,706 | 11/15/2024 |
2025.0.5-preview | 2,011 | 11/8/2024 |
2025.0.4-preview | 435 | 10/31/2024 |
2025.0.3-preview | 720 | 10/25/2024 |
2025.0.2-preview | 533 | 10/24/2024 |
2025.0.1-preview | 483 | 10/14/2024 |
2024.2.32 | 1,094 | 3/7/2025 |
2024.2.31 | 5,411 | 12/6/2024 |
2024.2.30 | 8,893 | 11/15/2024 |
2024.2.29 | 3,310 | 10/31/2024 |
2024.2.28 | 1,080 | 10/25/2024 |
2024.2.27 | 739 | 10/24/2024 |
2024.2.26 | 14,135 | 10/14/2024 |
2024.2.25 | 3,472 | 10/2/2024 |
2024.2.24 | 25,063 | 9/10/2024 |
2024.2.23 | 12,019 | 8/30/2024 |
2024.2.22 | 898 | 8/29/2024 |
2024.2.21 | 6,940 | 8/28/2024 |
2024.2.20 | 16,086 | 8/15/2024 |
2024.2.19 | 5,945 | 8/1/2024 |
2024.2.18 | 1,067 | 7/29/2024 |
2024.2.17-rc | 611 | 7/22/2024 |
2024.2.16-rc | 3,876 | 7/18/2024 |
2024.2.15-rc | 722 | 7/12/2024 |
2024.2.14-rc | 3,616 | 7/8/2024 |
2024.2.13-rc | 737 | 7/2/2024 |
2024.2.12-preview | 863 | 6/28/2024 |
2024.2.11-preview | 712 | 6/26/2024 |
2024.2.10-preview | 747 | 6/20/2024 |
2024.2.9-preview | 854 | 6/11/2024 |
2024.2.8-preview | 661 | 6/6/2024 |
2024.2.7-preview | 736 | 5/30/2024 |
2024.2.6-preview | 768 | 5/25/2024 |
2024.2.5-preview | 834 | 5/6/2024 |
2024.2.4-preview | 713 | 5/4/2024 |
2024.2.3-preview | 745 | 4/30/2024 |
2024.2.2-preview | 666 | 4/23/2024 |
2024.2.1-preview | 754 | 4/11/2024 |
2024.1.30 | 685 | 10/24/2024 |
2024.1.29 | 604 | 10/11/2024 |
2024.1.28 | 840 | 9/9/2024 |
2024.1.27 | 788 | 8/28/2024 |
2024.1.26 | 1,022 | 8/15/2024 |
2024.1.25 | 2,174 | 7/22/2024 |
2024.1.24 | 8,366 | 7/12/2024 |
2024.1.23 | 6,543 | 6/26/2024 |
2024.1.22 | 2,337 | 6/15/2024 |
2024.1.21 | 9,167 | 6/6/2024 |
2024.1.20 | 4,571 | 5/30/2024 |
2024.1.19 | 1,457 | 5/24/2024 |
2024.1.18 | 26,295 | 5/6/2024 |
2024.1.17 | 2,581 | 5/3/2024 |
2024.1.16 | 18,828 | 4/30/2024 |
2024.1.15 | 2,253 | 4/29/2024 |
2024.1.14 | 2,685 | 4/23/2024 |
2024.1.13 | 885 | 4/23/2024 |
2024.1.12 | 1,417 | 4/17/2024 |
2024.1.11-rc | 684 | 4/11/2024 |
2024.1.10-rc | 749 | 4/4/2024 |
2024.1.9-rc | 802 | 3/27/2024 |
2024.1.8-preview | 752 | 3/25/2024 |
2024.1.7-preview | 880 | 3/19/2024 |
2024.1.6-preview | 946 | 3/6/2024 |
2024.1.5-preview | 953 | 2/29/2024 |
2024.1.4-preview | 1,149 | 2/27/2024 |
2024.1.3-preview | 985 | 2/23/2024 |
2024.1.2-preview | 1,358 | 2/7/2024 |
2024.1.1-preview | 1,240 | 1/30/2024 |
2024.0.16 | 749 | 6/15/2024 |
2024.0.15 | 662 | 6/6/2024 |
2024.0.14 | 681 | 5/30/2024 |
2024.0.13 | 641 | 5/24/2024 |
2024.0.12 | 837 | 4/17/2024 |
2024.0.11 | 36,421 | 3/21/2024 |
2024.0.10 | 1,534 | 3/19/2024 |
2024.0.9 | 6,278 | 2/29/2024 |
2024.0.8 | 2,574 | 2/23/2024 |
2024.0.7 | 13,227 | 2/7/2024 |
2024.0.6 | 17,210 | 1/3/2024 |
2024.0.5-rc | 1,241 | 12/21/2023 |
2024.0.4-rc | 1,516 | 12/12/2023 |
2024.0.3-preview | 1,512 | 12/6/2023 |
2024.0.2-preview | 3,200 | 11/14/2023 |
2024.0.1-preview | 1,649 | 11/6/2023 |
2023.4.9 | 5,091 | 2/7/2024 |
2023.4.8 | 9,217 | 12/21/2023 |
2023.4.7 | 2,020 | 12/12/2023 |
2023.4.6 | 20,759 | 11/7/2023 |
2023.4.5-rc | 1,690 | 10/26/2023 |
2023.4.4-preview | 1,529 | 10/18/2023 |
2023.4.3-preview | 2,854 | 10/4/2023 |
2023.4.2-preview | 1,533 | 9/26/2023 |
2023.4.1-preview | 1,544 | 9/13/2023 |
2023.3.10 | 1,214 | 12/21/2023 |
2023.3.9 | 1,364 | 12/12/2023 |
2023.3.8 | 11,555 | 10/17/2023 |
2023.3.7-rc | 1,537 | 9/29/2023 |
2023.3.6-rc | 1,551 | 9/26/2023 |
2023.3.5-rc | 1,621 | 9/13/2023 |
2023.3.4-preview | 1,813 | 8/30/2023 |
2023.3.3-preview | 1,591 | 8/29/2023 |
2023.3.2-preview | 3,861 | 8/1/2023 |
2023.3.1-preview | 1,940 | 7/28/2023 |
2023.2.5 | 21,562 | 9/12/2023 |
2023.2.4 | 11,353 | 8/7/2023 |
2023.2.3-rc | 1,934 | 8/3/2023 |
2023.2.2-rc | 2,183 | 7/21/2023 |
2023.2.1-preview | 3,053 | 6/27/2023 |
2023.1.12 | 1,804 | 9/12/2023 |
2023.1.11 | 2,584 | 8/7/2023 |
2023.1.10 | 3,451 | 7/17/2023 |
2023.1.9 | 2,391 | 6/27/2023 |
2023.1.8-rc | 1,668 | 6/19/2023 |
2023.1.7-rc | 1,434 | 6/14/2023 |
2023.1.6-rc | 2,020 | 6/12/2023 |
2023.1.5-preview | 2,235 | 5/26/2023 |
2023.1.4-preview | 1,343 | 5/26/2023 |
2023.1.3-preview | 1,954 | 5/25/2023 |
2023.1.2-preview | 1,930 | 5/24/2023 |
2023.1.1-preview | 4,689 | 5/10/2023 |
2023.0.121 | 1,427 | 7/17/2023 |
2023.0.120 | 1,473 | 6/27/2023 |
2023.0.119 | 14,503 | 6/14/2023 |
2023.0.118 | 1,737 | 6/7/2023 |
2023.0.117 | 2,572 | 5/25/2023 |
2023.0.116 | 1,810 | 5/23/2023 |
2023.0.115 | 5,768 | 5/4/2023 |
2023.0.113-rc | 2,690 | 4/21/2023 |
2023.0.112-rc | 1,523 | 4/14/2023 |
2023.0.111-rc | 2,852 | 4/5/2023 |
2023.0.110-rc | 1,938 | 3/30/2023 |
2023.0.109-rc | 2,328 | 3/23/2023 |
2023.0.108-rc | 1,946 | 3/15/2023 |
2023.0.107-rc | 3,105 | 3/1/2023 |
2023.0.106-rc | 268 | 2/27/2023 |
2023.0.105-rc | 3,169 | 2/22/2023 |
2023.0.104-rc | 2,033 | 2/21/2023 |
2023.0.102-rc | 5,592 | 2/9/2023 |
2023.0.101-rc | 4,253 | 1/25/2023 |
0.5.83-preview | 2,304 | 1/23/2023 |
0.5.82-preview | 2,156 | 1/23/2023 |
0.5.81-preview | 2,085 | 1/18/2023 |
0.5.80-preview | 2,123 | 1/15/2023 |
0.5.79-preview | 2,042 | 1/13/2023 |
0.5.78-preview | 2,242 | 1/10/2023 |
0.5.77-preview | 1,997 | 1/9/2023 |
0.5.76-preview | 2,128 | 1/6/2023 |
0.5.75-preview | 2,065 | 1/5/2023 |
0.5.74-preview | 2,077 | 1/3/2023 |
0.5.73-preview | 2,836 | 12/15/2022 |
0.5.72-preview | 2,009 | 12/13/2022 |
0.5.71-preview | 2,649 | 12/10/2022 |
0.5.70-preview | 2,072 | 12/9/2022 |
0.5.69-preview | 2,012 | 12/8/2022 |
0.5.68-preview | 1,448 | 12/5/2022 |
0.5.67-preview | 1,595 | 12/2/2022 |
0.5.66-preview | 1,459 | 11/30/2022 |
0.5.65-preview | 1,359 | 11/30/2022 |
0.5.64-preview | 1,378 | 11/29/2022 |
0.5.63-preview | 2,083 | 11/25/2022 |
0.5.62-preview | 1,385 | 11/24/2022 |
0.5.61-preview | 1,312 | 11/17/2022 |
0.5.60-preview | 1,334 | 11/17/2022 |
0.5.59-preview | 1,270 | 11/16/2022 |
0.5.58-preview | 1,396 | 11/15/2022 |
0.5.57-preview | 1,434 | 11/10/2022 |
0.5.56-preview | 1,576 | 11/8/2022 |
0.5.55-preview | 1,358 | 11/3/2022 |
0.5.54-preview | 1,333 | 11/2/2022 |
0.5.53-preview | 1,322 | 11/1/2022 |
0.5.52-preview | 1,408 | 10/28/2022 |
0.5.51-preview | 2,051 | 10/27/2022 |
0.5.50-preview | 817 | 10/24/2022 |
0.5.49-preview | 374 | 10/20/2022 |
0.5.48-preview | 731 | 10/18/2022 |
0.5.47-preview | 655 | 10/12/2022 |
0.5.46-preview | 500 | 10/6/2022 |
0.5.45-preview | 280 | 10/6/2022 |
0.5.44-preview | 541 | 10/4/2022 |
0.5.43-preview | 577 | 10/1/2022 |
0.5.42-preview | 383 | 9/29/2022 |
0.5.41-preview | 822 | 9/28/2022 |
0.5.40-preview | 1,116 | 9/9/2022 |
0.5.39-preview | 471 | 9/6/2022 |
0.5.38-preview | 414 | 9/3/2022 |
0.5.37-preview | 1,456 | 8/19/2022 |
0.5.36-preview | 662 | 8/9/2022 |
0.5.35-preview | 346 | 8/6/2022 |
0.5.34-preview | 527 | 8/4/2022 |
0.5.33-preview | 213 | 8/2/2022 |
0.5.32-preview | 392 | 7/28/2022 |
0.5.31-preview | 353 | 7/26/2022 |
0.5.30-preview | 640 | 7/22/2022 |
0.5.29-preview | 565 | 7/21/2022 |
0.5.28-preview | 602 | 7/20/2022 |
0.5.27-preview | 309 | 7/19/2022 |
0.5.26-preview | 512 | 7/12/2022 |
0.5.25-preview | 879 | 6/25/2022 |
0.5.24-preview | 491 | 6/23/2022 |
0.5.23-preview | 988 | 6/7/2022 |
0.5.22-preview | 506 | 5/31/2022 |
0.5.21-preview | 358 | 5/27/2022 |
0.5.20-preview | 328 | 5/24/2022 |
0.5.19-preview | 742 | 5/17/2022 |
0.5.18-preview | 318 | 5/12/2022 |
0.5.16-preview | 358 | 5/9/2022 |
0.5.15-preview | 329 | 5/7/2022 |
0.5.13-preview | 746 | 4/28/2022 |
0.5.12-preview | 364 | 4/27/2022 |
0.5.11-preview | 354 | 4/15/2022 |
0.5.10-preview | 365 | 4/15/2022 |
0.5.9-preview | 299 | 4/14/2022 |
0.5.8-preview | 419 | 4/7/2022 |
0.5.7-preview | 362 | 3/22/2022 |
0.5.6-preview | 371 | 3/16/2022 |
0.5.5-preview | 353 | 3/15/2022 |
0.5.4-preview | 319 | 3/14/2022 |
0.5.3-preview | 321 | 3/9/2022 |
0.5.2-preview | 322 | 2/23/2022 |
0.5.1-preview | 347 | 2/18/2022 |
0.5.0-preview | 293 | 2/7/2022 |