por Nate Barbettini
Copyright © 2018. Todos los derechos reservados.
ISBN: 978-1-387-75615-5
Lanzado bajo la licencia Creative Commons Attribution 4.0. Usted es libre de compartir, copiar y redistribuir este libro en cualquier formato, o remix y transformarlo para cualquier propósito (incluso comercialmente). Debe otorgar el crédito apropiado y proporcionar un enlace a la licencia.
Para obtener más información, visite https://createivecommons.org/licenses/by/4.0/
¡Gracias por recoger el Little ASP.NET Core Book! Escribí este breve libro para ayudar a los desarrolladores y personas interesadas en la programación web a aprender sobre ASP.NET Core 2.0, un marco para crear aplicaciones web y API.
El Little ASP.NET Core Book está estructurado como un tutorial. Construirá una aplicación de principio a fin y aprenderá:
No se preocupe, no necesita saber nada sobre ASP.NET Core (o cualquiera de los anteriores) para comenzar.
El código para la versión terminada de la aplicación que construirá está disponible en GitHub:
https://www.github.com/nbarbettini/little-aspnetcore-todo
No dude en descargarlo si desea ver el producto terminado, o comparar a medida que escribe su propio código.
El libro en sí se actualiza con frecuencia con correcciones de errores y nuevo contenido. Si está leyendo un PDF, libro electrónico o versión impresa, consulte el sitio web oficial (littleasp.net/book) para ver si hay una versión actualizada disponible. La última página del libro contiene información de versión y un ChangeLog.
Gracias a algunos contribuyentes multilingües fantásticos, el Little ASP.NET Core Book ha sido traducido a otros idiomas:
ASP.NET Core El Kitabı (turco)
简明 ASP.NET Core 手册(chino)
Si es nuevo en la programación, este libro le presentará los patrones y conceptos utilizados para crear aplicaciones web modernas. ¡Aprenderá a crear una aplicación web (y cómo las grandes piezas encajan) construyendo algo desde cero! Si bien este pequeño libro no podrá cubrir absolutamente todo lo que necesita saber sobre la programación, le dará un punto de partida para que pueda aprender temas más avanzados.
Si ya codifica en un lenguaje de backend como Node, Python, Ruby, Go o Java, notará muchas ideas familiares como MVC, plantillas de vista e inyección de dependencia. El código estará en C#, pero no se verá muy diferente de lo que ya sabe.
Si eres un desarrollador ASP.NET MVC, ¡te sentirás como en casa! ASP.NET Core agrega algunas herramientas y reutilizaciones nuevas (y simplifica) las cosas que ya sabe. Señalaré algunas de las diferencias a continuación.
No importa cuál sea su experiencia previa con la programación web, este libro le enseñará todo lo que necesita para crear una aplicación web simple y útil en ASP.NET Core. Aprenderá a crear funcionalidad utilizando el código de fondo y frontend, cómo interactuar con una base de datos y cómo implementar la aplicación en el mundo.
ASP.NET Core es un marco web creado por Microsoft para crear aplicaciones web, API y microservicios. Utiliza patrones comunes como MVC (controlador de visión modelo), inyección de dependencia y una tubería de solicitud compuesta por middleware. Es de código abierto bajo la licencia Apache 2.0, lo que significa que el código fuente está disponible gratuitamente, y se alienta a la comunidad a contribuir con correcciones de errores y nuevas características.
ASP.NET Core se ejecuta en la parte superior del tiempo de ejecución .NET de Microsoft, similar a la máquina virtual Java (JVM) o el intérprete Ruby. Puede escribir aplicaciones Core ASP.NET en varios idiomas (C#, Visual Basic, F#). C# es la opción más popular, y es lo que usaré en este libro. Puede construir y ejecutar aplicaciones Core ASP.NET en Windows, Mac y Linux.
Hay muchos marcos web excelentes para elegir: Node/Express, Spring, Ruby on Rails, Django, Laravel y muchos más. ¿Qué ventajas tiene ASP.NET Core?
Velocidad. ASP.NET Core es rápido. Debido a que el código .NET se compila, se ejecuta mucho más rápido que el código en lenguajes interpretados como JavaScript o Ruby. ASP.NET Core también está optimizado para tareas múltiples y asincrónicas. Es común ver una mejora de velocidad de 5-10x sobre el código escrito en Node.js.
Ecosistema. ASP.NET Core puede ser nuevo, pero .NET ha existido durante mucho tiempo. Hay miles de paquetes disponibles en Nuget (el Administrador de paquetes .NET; piense en NPM, Ruby Gems o Maven). Ya hay paquetes disponibles para la deserialización JSON, conectores de bases de datos, generación de PDF o casi cualquier otra cosa que se le ocurra.
Seguridad. El equipo de Microsoft toma en serio la seguridad, y ASP.NET Core está construido para estar seguro desde cero. Maneja cosas como desinfectar datos de entrada y evitar ataques de falsificación de solicitudes de sitios cruzados (CSRF), por lo que no tiene que hacerlo. También obtienes el beneficio de la escritura estática con el compilador .NET, que es como tener un enlace muy paranoico encendido en todo momento. Esto hace que sea más difícil hacer algo que no tenía la intención de tener una variable o una parte de los datos.
A lo largo de este libro, aprenderá sobre ASP.NET Core (el marco web). De vez en cuando mencionaré el tiempo de ejecución .NET, la biblioteca de soporte que ejecuta el código .NET. Si esto ya te suena como griego, ¡omita el próximo capítulo!
También puede escuchar sobre .NET Core y .NET Standard. El nombre se vuelve confuso, así que aquí hay una explicación simple:
.NET Standard es una interfaz de plataforma agnóstica que define características y API. Es importante tener en cuenta que .NET Standard no representa ningún código o funcionalidad real, solo la definición de API. Existen diferentes "versiones" o niveles de estándar .NET que reflejan cuántas API están disponibles (o cuán amplia es la superficie de la API). Por ejemplo, .NET Standard 2.0 tiene más API disponibles que .NET Standard 1.5, que tiene más API que .NET Standard 1.0.
.NET Core es el tiempo de ejecución .NET que se puede instalar en Windows, Mac o Linux. Implementa las API definidas en la interfaz estándar .NET con el código específico de plataforma apropiado en cada sistema operativo. Esto es lo que instalará en su propia máquina para construir y ejecutar aplicaciones Core ASP.NET.
Y solo, por buena medida, .NET Framework es una implementación diferente de .NET Standard que es solo de Windows. Este fue el único tiempo de ejecución de .NET hasta que llegó .NET Core y trajo .NET a Mac y Linux. ASP.NET Core también puede ejecutarse en .NET Framework solo con Windows, pero no tocaré demasiado en esto.
Si estás confundido por todos estos nombres, ¡no te preocupes! Llegaremos a un código real en un momento.
Si no ha usado una versión anterior de ASP.NET, salte al siguiente capítulo.
ASP.NET Core es una reescritura completa de ASP.NET, con un enfoque en modernizar el marco y finalmente desacoplarlo de System.Web, IIS y Windows. Si recuerda todas las cosas de Owin/Katana de ASP.NET 4, ya está a medio camino: el proyecto Katana se convirtió en ASP.NET 5, que finalmente pasó a llamarse ASP.NET Core.
Debido al legado de Katana, la clase Startup es delantera y central, y no hay más Application_Start o Global.asax . La tubería completa es impulsada por el middleware, y ya no hay una división entre MVC y API web: los controladores simplemente pueden devolver vistas, códigos de estado o datos. La inyección de dependencia viene horneada, por lo que no necesita instalar y configurar un contenedor como StructureMap o Ninject si no lo desea. Y todo el marco se ha optimizado para la velocidad y la eficiencia del tiempo de ejecución.
Muy bien, suficiente introducción. ¡Vamos a sumergirnos en ASP.NET Core!