Nebula.NET
Matriz de compatibilidad de frameworks
Qué runtimes, modelos de aplicación y lenguajes de .NET protege Nebula.NET — de .NET Framework 4.x a .NET 10, Native AOT, Blazor, MAUI/Xamarin, Unity y más.
Nebula trabaja a nivel de IL (mediante dnlib), así que protege cualquier ensamblado .NET gestionado sin importar el lenguaje en el que se escribió ni el modelo de aplicación en el que se envía. Esta página es la respuesta rápida a “¿es compatible con mi stack?” — para los ajustes por proyecto, consulta Protección de distintos tipos de proyecto.
Runtimes
| Runtime | Compatible | Notas |
|---|---|---|
| .NET Framework 4.6.2 – 4.8.1 | ✅ | Compatibilidad total, incl. multi-targeting mixto net462;net6.0+ mediante la integración de MSBuild. |
| .NET 6 / 7 / 8 | ✅ | Compatibilidad total. |
| .NET 9 | ✅ | Compatibilidad total. |
| .NET 10 | ✅ | Compatibilidad total. |
| Bibliotecas .NET Standard 2.0 / 2.1 | ✅ | Protegidas como cualquier otra biblioteca gestionada. |
| Mono | ✅ | Los ensamblados gestionados se protegen con normalidad (p. ej., el backend Mono de Unity). |
Modelos de aplicación
| Modelo de aplicación | Compatible | Notas |
|---|---|---|
| Bibliotecas de clases / paquetes NuGet | ✅ | preservePublicApi: true mantiene tu contrato público; las partes internas se renombran. Apunta Nebula a un .nupkg para reempaquetar un paquete protegido. |
| Aplicaciones de consola / servicios de Windows / demonios | ✅ | Sin superficie pública — protege todo para obtener la máxima fuerza. |
| ASP.NET Core / Web API | ✅ | Preserva los controladores, los nombres de propiedad de los DTO y todo lo enlazado por nombre; las partes internas se ofuscan con libertad (detectadas automáticamente). |
| Blazor Server | ✅ | Los ensamblados del lado servidor se protegen con normalidad. |
| Blazor WebAssembly | ✅ | Los ensamblados gestionados se descargan al navegador — el objetivo de mayor exposición. Protege una aplicación publicada con el comando nebula blazor (ofusca + repara el manifiesto de integridad). |
| WPF / WinForms | ✅ | Preserva los miembros enlazados a XAML/diseñador (detectados automáticamente; excluye el resto). |
| .NET MAUI / Xamarin | ✅ | Los ensamblados gestionados de la aplicación se protegen en cada head (Android/iOS/Windows/Mac Catalyst); mantén los miembros enlazados a XAML, [DllImport] se preserva automáticamente. Consulta Protección de MAUI y Xamarin. |
| Unity | ✅ | Preserva los campos [SerializeField]/serializados y los objetivos de SendMessage; las subclases de MonoBehaviour referenciadas en las escenas. |
| Archivo único / autónomo | ✅ | Ofusca los ensamblados gestionados y luego publica. (El auto-hash de la anti-manipulación no hace nada dentro de un paquete de archivo único — ahí confía en el flujo de control + el cifrado de cadenas.) |
| Native AOT | ✅ | Ofusca el IL gestionado antes de la publicación AOT. AOT ya elimina el IL de la imagen nativa enviada; Nebula endurece la capa gestionada de antemano (y cualquier ensamblado que siga siendo gestionado), de modo que tu pipeline de compilación queda defendido de principio a fin. |
Lenguajes
| Lenguaje | Compatible | Notas |
|---|---|---|
| C# | ✅ | — |
| F# | ✅ | A nivel de IL, así que totalmente compatible; mantén autoDetect: true para los miembros generados por el compilador de F#. |
| VB.NET | ✅ | Totalmente compatible. |
| Cualquier lenguaje que produzca IL | ✅ | Si compila a un ensamblado gestionado, Nebula lo protege. |
Entrega y CI
| Superficie | Compatible |
|---|---|
Línea de comandos (nebula, dirigida por config, códigos de salida documentados) | ✅ |
| Interfaz de escritorio | ✅ |
Integración con MSBuild / CI (dotnet build y Visual Studio / msbuild.exe) | ✅ — consulta MSBuild y CI |
| Proyectos multi-targeted (cada TFM protegido automáticamente) | ✅ |
La regla recurrente en cada stack: todo lo que se resuelve por nombre en tiempo de ejecución (reflexión, serialización, enlace de XAML/Razor/Blazor) debe preservarse. Nebula lo detecta automáticamente en su mayoría, y el resto puedes preservarlo de forma explícita.
¿No ves tu caso exacto? Pregúntanos — si compila a un ensamblado .NET gestionado, está dentro del alcance.