DEV Community

Victor Olvera Thome (Vico)
Victor Olvera Thome (Vico)

Posted on • Originally published at vicotech.dev

Integrando IA en aplicaciones .NET: del modelo al despliegue

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
Enter fullscreen mode Exit fullscreen mode

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");
Enter fullscreen mode Exit fullscreen mode

🔹 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())
Enter fullscreen mode Exit fullscreen mode

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);
Enter fullscreen mode Exit fullscreen mode

Para ONNX:

using Microsoft.ML.OnnxRuntime;
using Microsoft.ML.OnnxRuntime.Tensors;
var session = new InferenceSession("modelo.onnx");
// Ejecutar inferencia con inputs serializados
Enter fullscreen mode Exit fullscreen mode

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);
});
Enter fullscreen mode Exit fullscreen mode

Y desplegarlo fácilmente en Docker:

FROM mcr.microsoft.com/dotnet/aspnet:8.0
COPY . /app
WORKDIR /app
ENTRYPOINT ["dotnet", "MiApp.dll"]
Enter fullscreen mode Exit fullscreen mode

🚀 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:

  1. Set up your environment (Visual Studio, ML.NET, Python, ONNX Runtime)
  2. Train your model (in C# or Python)
  3. Integrate it into a .NET app
  4. 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)