¿Es ASP.Net Core lo suficientemente maduro como para desarrollar un proyecto web a largo plazo?

, con el lanzamiento de Core 2.0, esta decisión es mucho más fácil.

Todo el viaje del marco completo .Net solo para Windows, en comparación con el marco central multiplataforma puede parecer bastante confuso. Eso es simplemente porque está pasando por un período de transición. Y un período de transición es como cambiar cables en vivo. Cargado de riesgos.

Con el advenimiento de Core 2.0, hay un punto de control decente establecido para el conjunto de características básicas para usted. Aplicaciones NET. La mayoría de los proyectos web del mundo real deben resolverse utilizando el marco 2.0.

Una cosa que aún debe hacer es anotar todos los componentes de la solución que prevé. (a lo mejor de su visión), por ejemplo, Signalr, formularios ganadores, vistas que no sean Razor, F #, etc., y vea si hay un tope de espectáculo que le impida ir con el núcleo.

El otro punto de datos a tener en cuenta es que es muy probable que el conjunto de características del núcleo nunca sea el mismo que el framework .net de Windows completo. No necesita ser. Todo lo que necesitamos es que nuestros problemas del mundo real encajen en la solución central.

De aquí en adelante, el trabajo central mejorará cada vez más.

Por ejemplo, con los paquetes Net Standard 2.0 y NuGet creados como parte del proyecto C sharp en VS 2017, es sorprendente la cantidad de marcos objetivo que admite este estándar 2.0 neto, sin que tenga 6 csprojs diferentes y 6 dlls diferentes en sus paquetes NuGet. Puede sonar trivial, pero es un gran logro.

Este mismo valor ahora se extenderá a las aplicaciones principales que deben desarrollarse una vez y ejecutarse en cualquier lugar.

Sí para el tiempo de ejecución. Para herramientas, actualmente está en versión beta y le sugiero que espere hasta que Visual Studio 2017 se lance el 7 de marzo.

Uno de mis equipos ha usado ASP. NET Core desde beta 8 para uno de nuestros proyectos de producción. El tiempo de ejecución ha sido bastante sólido.

En general, es mucho más rápido y se puede personalizar fácilmente.

Le recomendaría que verifique si las bibliotecas externas que planea usar se han portado. NET Core. Descubrimos que el soporte de .NET Core para bibliotecas externas está un poco rezagado. Esto no fue un problema para nosotros, pero podría ser para aquellas aplicaciones que dependen en gran medida de bibliotecas externas.

Como está comenzando un nuevo proyecto a largo plazo, asp.net core debería ser su elección principal.

Si comenzó un proyecto a largo plazo en asp.net 4.6, difícilmente evitaría portarlo más tarde al núcleo. Y ese es un precio bastante alto. A largo plazo, hay muchas más posibilidades de que se pierda algo en la antigua red asp que en la nueva.

Mi experiencia es que el tiempo de ejecución y el marco son muy buenos. Las herramientas generalmente no son tan estables, pero dudo que sean mejores. Ese es el precio de código abierto, enfoque ágil y lanzamientos frecuentes. Por ejemplo, se lanzó VS2017, he convertido mi project.json a csproj más nuevo, pero Visual Studio Team Services Build (construcción alojada en la nube como servicio) todavía no lo admite (aunque es cuestión de semanas).

ASP.NET Core es alrededor de la versión “Core 2.0 Preview 2”

Dicho esto, es una muy buena opción para proyectos web a largo plazo. He comenzado un proyecto con él. Estoy aprendiendo cosas nuevas a diario y vale la pena el esfuerzo de “hacer RnD y construir”.

Sin embargo, si no se hace correctamente, uno puede estropear mal un proyecto.

No es ASP.NET Core el que estropeará un proyecto a largo plazo, será el desarrollador. Lo mismo se aplica para PHP, JSP, NodeJS, etc. Recuerde que toda la culpa recae sobre nosotros, ¡los desarrolladores!

He hecho una pequeña aplicación web para Azure Stack y los requisitos eran usar .net Core 2.00 y Entity Framework 2.00. Inicialmente, la web se inició en .net 4.6 y Entity Framework 6.2 2, pero cuando porté la aplicación a .net Core descubrí que Entity Framework 2.00 aún no había admitido las relaciones con otros objetos. Entonces, tuve que usar SQL para poder actuar como lo estaba en EF 6.2.2