Integrando IA en aplicaciones .NET: del modelo al despliegue
🇪🇸 Español
La inteligencia artificial (IA) dejó de ser una curiosidad académica: hoy es una herramienta práctica que potencia desde chatbots hasta sistemas empresariales complejos. Si trabajas con .NET, la buena noticia es que no necesitas abandonar tu stack para aprovechar su poder. En este artículo aprenderás cómo integrar modelos de IA —entrenados en Python o directamente con ML.NET— dentro de tus aplicaciones .NET, desde el entrenamiento hasta el despliegue.
¿Por qué .NET y no otra plataforma?
.NET ha evolucionado. Con soporte nativo para ML.NET, interoperabilidad con Python y compatibilidad con modelos ONNX, se convierte en un entorno ideal para desarrollar, probar y desplegar soluciones inteligentes sin salir de tu ecosistema habitual.
Ventajas principales:
- Integración directa con C# y F#.
- Compatibilidad con modelos ONNX exportados desde frameworks populares.
- Despliegue fácil en entornos Windows, Linux o contenedores Docker.
1️⃣ Preparando el entorno
Antes de comenzar, asegúrate de tener:
- Visual Studio / VS Code con SDK de .NET 8+
- ML.NET Model Builder o CLI
- Python 3.10+ si planeas entrenar el modelo fuera de .NET
- ONNX Runtime para interoperabilidad
Ejemplo de instalación rápida:
dotnet tool install -g mlnet
pip install onnxruntime scikit-learn
2️⃣ Entrenando el modelo
Tienes dos rutas posibles:
🔹 Opción A: Usar ML.NET directamente
ML.NET permite crear modelos de clasificación, regresión y detección de anomalías con código C#.
var context = new MLContext();
var data = context.Data.LoadFromTextFile<InputData>("datos.csv", hasHeader: true, separatorChar: ',');
var pipeline = context.Transforms.Conversion.MapValueToKey("Label")
.Append(context.Transforms.Text.FeaturizeText("Features", "Texto"))
.Append(context.MulticlassClassification.Trainers.SdcaMaximumEntropy());
var model = pipeline.Fit(data);
context.Model.Save(model, data.Schema, "modelo.zip");
🔹 Opción B: Entrenar en Python y exportar a ONNX
import skl2onnx
from sklearn.linear_model import LogisticRegression
from skl2onnx import convert_sklearn
from skl2onnx.common.data_types import FloatTensorType
model = LogisticRegression().fit(X_train, y_train)
onnx_model = convert_sklearn(model, initial_types=[('input', FloatTensorType([None, X_train.shape[1]]))])
with open("modelo.onnx", "wb") as f:
f.write(onnx_model.SerializeToString())
3️⃣ Integrando el modelo en .NET
Una vez tengas el modelo entrenado (ZIP o ONNX), puedes cargarlo desde C#.
using Microsoft.ML;
var mlContext = new MLContext();
var model = mlContext.Model.Load("modelo.zip", out _);
var predictor = mlContext.Model.CreatePredictionEngine<InputData, OutputData>(model);
var resultado = predictor.Predict(new InputData { Texto = "Este es un ejemplo." });
Console.WriteLine(resultado.Prediccion);
Para ONNX:
using Microsoft.ML.OnnxRuntime;
using Microsoft.ML.OnnxRuntime.Tensors;
var session = new InferenceSession("modelo.onnx");
// Ejecutar inferencia con inputs serializados
4️⃣ Desplegando la solución
El modelo puede exponerse como un servicio web con ASP.NET Core:
app.MapPost("/predict", (InputData input) => {
var prediction = predictor.Predict(input);
return Results.Ok(prediction);
});
Y desplegarlo fácilmente en Docker:
FROM mcr.microsoft.com/dotnet/aspnet:8.0
COPY . /app
WORKDIR /app
ENTRYPOINT ["dotnet", "MiApp.dll"]
🚀 Buenas prácticas
- Versiona modelos con etiquetas semánticas.
- Registra métricas de rendimiento y deriva de datos.
- Automatiza el retraining mediante pipelines CI/CD.
🧩 Conclusión
Integrar IA en .NET ya no es un desafío técnico, sino una oportunidad estratégica. Con herramientas maduras y soporte multiplataforma, puedes desarrollar soluciones inteligentes manteniendo tu flujo de trabajo familiar.
“El futuro del desarrollo .NET no solo está en el backend, sino también en la inteligencia.”
🇬🇧 English
Artificial Intelligence (AI) is no longer an academic curiosity — it’s a practical tool powering everything from chatbots to enterprise systems. If you’re a .NET developer, the great news is: you don’t need to switch tech stacks to take advantage of it. This article walks you through integrating AI models — trained in Python or ML.NET — into .NET apps, from training to deployment.
Why .NET?
With built-in ML.NET, Python interop, and ONNX support, .NET provides a friendly environment for intelligent solutions.
Steps Covered:
- Set up your environment (Visual Studio, ML.NET, Python, ONNX Runtime)
- Train your model (in C# or Python)
- Integrate it into a .NET app
- Deploy via ASP.NET Core & Docker
Machine learning is now native to .NET — bringing AI to your fingertips without leaving your favorite language.
Tags: ai, dotnet, tutorial, programming
Top comments (0)