¿Cuál es la diferencia entre los proyectos de bibliotecas de clases .NET Core y .NET Standard en Visual Studio?
¡Hola! Soy nuevo en C# y .NET, y recientemente comencé a aprender sobre la creación de bibliotecas de clases. En Visual Studio, al agregar un nuevo proyecto, veo dos plantillas similares: "Biblioteca de clases (.NET Core)" y "Biblioteca de clases (.NET Standard)". Estoy confundido: ¿cuál debo elegir?
Por ejemplo, estoy escribiendo un pequeño proyecto para mí en .NET Core 3.1, y quiero mover utilidades comunes (validación de email, trabajo con fechas) a una biblioteca separada. Si creo una biblioteca en .NET Standard, ¿podré usarla en mi proyecto .NET Core? ¿O al revés, si hago una biblioteca en .NET Core, solo funcionará con .NET Core?
También he oído hablar de .NET Framework: ¿mi biblioteca debería admitir proyectos antiguos en .NET Framework 4.6.1? ¿O es mejor migrar todo a .NET Core? Agradecería una explicación con ejemplos de código.
```csharp
// Ejemplo: mi utilidad para validación de email
public static class EmailValidator
{
public static bool IsValidEmail(string email)
{
try
{
var addr = new System.Net.Mail.MailAddress(email);
return addr.Address == email;
}
catch
{
return false;
}
}
}
```