Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

.Net Conf Sevilla 2018

2,103 views

Published on

Novedades de Azure, .NET Core, Xamarin, ML.net, etc.

Published in: Software
  • Be the first to comment

  • Be the first to like this

.Net Conf Sevilla 2018

  1. 1. ESCRITORIO WEB CLOUD MOBILE GAMING IoT AI .NET Tu plataforma para crear cualquier cosa
  2. 2. Visual Studio +1 millón de nuevos desarrolladores .NET activos en el ultimo año .NET Core Más de medio millón de desarrolladores .NET Core 2.0
  3. 3. Ya disponible .NET Core 2.1! www.dot.net
  4. 4. 2.6MM 599K 97K 3.0MM 712K 240K - 500,000 1,000,000 1,500,000 2,000,000 2,500,000 3,000,000 Plaintext JSON Fortunes (data access) RENDIMIENTO RUNTIME .NET Core 2.0 .NET Core 2.1 Data sourced from tests on TechEmpower round 16
  5. 5. Anunciado .NET Core 2.2 Preview 2 https://aka.ms/DotNetCore22
  6. 6. Mejoras en Web API Microservicios y Azure Mejoras continuas en rendimiento
  7. 7. .NET Core 3
  8. 8. .NET Core DESKTOPWEB CLOUD IoT AI LIBRERÍAS INFRAESTRUCTURA .NET CORE.NET CORE 3 .NET Core 3 expande el Soporte para incluir Windows Desktop, IoT & AI .NET Core encaja con los requisites necesarios para soportar desarrollos cloud, cross-platform
  9. 9. Blazor
  10. 10. • Estable, maduro, productivo • Rápido, escalable • Lenguajes modernos • Herramientas
  11. 11. Blazor https://blazor.net
  12. 12. .cs .cshtml BROWSER WebAssembly (mono.wasm) .NET (mscorlib.dll, System.Core.dll,…) App.dll Compile to .NET assemblies
  13. 13. DevOps
  14. 14. Personas. Procesos. Productos. ¿Qué es DevOps? DevOps es la unión entre personas, procesos, y productos para permitir la entrega continua de valor a los usuarios finales. “ ” Build & Test Entrega Continua Despliegue Operar Monitor & Aprender Plan & Track Desarrollo
  15. 15. Las compañias que usan DevOps consiguen… DevOps Tiempos más reducidos hacia la publicación Aumenta beneficio 2,604x media de tiempo Más rápido para recuperar 2,555x media de tiempo para adaptar cambios 7x menor tasa de errores 46x frecuencia de despliegues $ Source: 2018 Accelerate: State of DevOps: Strategies for a New Economy." N. Forsgren, J. Humble, G. Kim. DevOps Research and Assessment (DORA)
  16. 16. Azure DevOps Plan, track, ay duscusión de trabajo con el equipo. CI /CD Repositorios ilimitados. Test y herramientas de testing. Crea y hospeda artefactos o paquetes. Azure Boards Azure ReposAzure Pipelines Azure Test Plans Azure Artifacts https://azure.com/devops 
  17. 17. Cloud-hosted pipelines para Linux, Windows y macOS, con minutos ilimitados para open source Azure Pipelines Cualquier lenguaje, cualquier plataforma Build, test, y despliegue para Node.js, Python, 
Java, PHP, Ruby, C/C++, .NET, Android, y iOS. Corre builds en paralelo en Linux, macOS, y Windows. Despliega a Azure, AWS, GCP o on-premises Extensible Explorar e implementar una amplia gama de tareas de compilación, tests y builds por la comunidad, junto con cientos de extensiones. Soporte para YAML, informes y más Open source Permite la compilación continua/entrega continua (CI/CD) para cada proyecto de código abierto. Obtén minutos de compilación ilimitados para todos los proyectos de código abierto con hasta 10 jobs paralelos gratuitos en Linux, MacOS y Windows https://azure.com/pipelines Contenedores y Kubernetes Compilar y publicar facilmente a Docker Hub y Azure Container Registry.
  18. 18. Para proyectos públicos, tiempo ilimitado de builds Hasta 10 jobs en paralelo a través de Windows, Linux y macOS Microsoft Open Source https://azure.com/pipelines
  19. 19. Azure Pipelines está disponible para cualquier desarrollador en GitHub Marketplace
  20. 20. Azure
  21. 21. 5 servicios Azure que todo desarrollador .NET debe conocer
  22. 22. Machine Learning in .NET
  23. 23. "Tiene botones exquisitos... con mangas largas... es válido para algo casual y para negocios " {f(x) {f(x) Machine Learning “Programando lo inprogramable”
  24. 24. f(x) Modelo Machine Learning crea un Uso de estos datos Machine Learning “Programando lo inprogramable” Pero necesita un montón de datos de entrenamiento de ejemplo para predecir correctamente...;)
  25. 25. Linear Discriminant Analysis Regresión Redes neuronales (Autoencoders, Self-organizing maps, etc.) ML supervisado (Infers label) ML sin supervisión (Infers structure) Modelado de temas Dimensionality Reduction Redes neuronales (MultiLayer Perception, etc.) Modelado de temas Predicción estructurada Árboles de decisión Naïve Bayes Clasificación binaria Multi-class Classification Clustering Detección de anomalía Latent variable models Regresión lineal Regresión logística k-nearest neighbor Support Vector Machines ( K-means Mixture models Hierarchical clustering)
  26. 26. La meta
  27. 27. ¿Qué tecnologías de AI, Machine Learning y Deep Learning se pueden usar desde apps .NET ?
  28. 28. AI, ML and DeepLearning technologies ¿Consumir modelos pre-construidos/pre-entrenados o construir su propio modelo personalizado? Client apps Bots (Bot Framework) Web apps (ASP.NET) Mobile apps y IoT Edge devices (Xamarin) (IoT Edge SDKS) Consumir (Pre-built AI: Listo para usar) Azure Cognitive Services Modelos pre-entrenados (ONNX, CoreML, WindowsML) Visual Studio and .NET Más fácil/menos control Control más duro/completo Construir su propio (Custom AI) ML.NET TensorFlow, CNTK, Torch, ONNX, etc.. Azure Machine Learning Studio Integración
  29. 29. Vision De caras a sensaciones, permite que tus Apps entiendan imágenes y video Speech Escuche y hable con sus usuarios filtrando el ruido, identificando a quien habla y entendiendo el objetivo Knowledge Aproveche los conocimientos acumulados desde la web, o sus propios datos Language Procese el texto y aprenda a reconocer lo que los usuarios quieren Labs Una mirada temprana a las tecnologías emergentes de servicios cognitivos: descubrir, probar y dar retroalimentación sobre las nuevas tecnologías antes de la disponibilidad general Search Acceda a miles de millones de páginas web, imágenes, vídeos y noticias con el poder de Bing APIs
  30. 30. Microsoft Confidential Probada y extensible Open Source & Cross Platform https://github.com/dotnet/machinelearning Construya sus propios modelos (Soportado en Windows, Linux, y macOS) Enfocado a Devs Introducción a ML.NET Framework Machine Learning hecho para desarrolladores .NET Actualmente en v0.5 preview Sept- 2018
  31. 31. Prepara tus datos Compila & Entrena Ejecuta
  32. 32. Anunciado ML.NET 0.5! https://aka.ms/MLNet05
  33. 33. https://github.com/dotnet/machinelearning-samples Se han lanzado cuatro previews desde ML.NET 0.1 - 0.5
  34. 34. C#
  35. 35. https://insights.stackoverflow.com/survey/2018
  36. 36. https://insights.stackoverflow.com/survey/2018
  37. 37. continuar creciendo C# para cubrir las necesidades de desarroladores innovar agresivamente beneficien a la mayoría de desarrolladres potenciando el ecosistema una sólida Administración de decisiones de diseños https://blogs.msdn.microsoft.com/dotnet/2017/02/01/the-net-language-strategy
  38. 38. string? n; // Nullable reference type string s; // Non-nullable reference type n = null; // Sure; it's nullable s = null; // Warning! Shouldn’t be null! s = n; // Warning! Really! WriteLine(s.Length); // Sure; it’s not null WriteLine(n.Length); // Warning! Could be null! if (n != null) { WriteLine(n.Length); } // Sure; you checked WriteLine(n!.Length); // Ok, if you insist!
  39. 39. interface ILogger { void Log(LogLevel level, string message); } class ConsoleLogger : ILogger { // send message public void Log(LogLevel level, string message) { } }
  40. 40. interface ILogger { void Log(LogLevel level, string message); void Log(Exception ex) => Log(LogLevel.Error, ex.ToString()); } class ConsoleLogger : ILogger { // send message public void Log(LogLevel level, string message) { } }
  41. 41. IAsyncEnumerable<Person> people = database.GetPeopleAsync(); foreach await (var p in people) { … } using await (IAsyncDisposable resource = await store.GetRecordAsync(…)) { … }
  42. 42. github.com/dotnet/csharplang/wiki docs.microsoft.com/en-us/dotnet/csharp/whats-new/
  43. 43. Mobile Development
  44. 44. All Time Commits Past Year Commits All Time Contributors Past Year Contributors Pull Requests Xamarin.Forms 2,246 1,229 149 97 1,989 Mac/iOS/tv/Watch 4,508 1,328 73 45 4,166 Android 1,610 760 57 28 1,656 Mono 114,858 2,433 966 125 9,146
  45. 45. Reduciendo “dolor” en ciertos puntos
  46. 46. Android
  47. 47. C# Compile Android Resource Compilation Inspect for Bridgeable Elements Extract Java and Native Libraries Compile Java DLL .java .aar Resources .cs constants User C# Code Compile DEX .dex .so Process Result shipped in final APK Intermediate file XAML Compile .cs glue
  48. 48. C# Compile Android Resource Compilation Inspect for Bridgeable Elements Extract Java and Native Libraries Compile Java DLL .java .aar Resources .cs constants User C# Code Compile DEX .dex .so Process Result shipped in final APK Intermediate file XAML Compile .cs glue
  49. 49. Xamarin.Android.Lite
  50. 50. iOS 12 Xcode 10
  51. 51. https://github.com/migueldeicaza/netcatnetwork
  52. 52. NWConnection CreateOutboundConnection (string name, string port) { var endpoint = NWEndpoint.Create (name, port); parameters = NWParameters.CreateSecureTcp (configureTls: null, configureTcp: null); var connection = new NWConnection (endpoint, parameters); connection.SetQueue (DispatchQueue.MainQueue); connection.SetStateChangeHandler ((state, error) => { var remote = connection.Endpoint; var errno = (SslStatus)(error != null ? error.ErrorCode : 0); switch (state){ case NWConnectionState.Waiting: warn ($"Connect to {remote.Hostname} port {remote.Port} failed, is waiting"); break; case NWConnectionState.Failed: warn ($"Connect to {remote.Hostname} port {remote.Port} failed, error {errno}"); break; case NWConnectionState.Ready: warn ($"Connect to {remote.Hostname} port {remote.Port} succeeded"); break; case NWConnectionState.Cancelled: connection = null; break; } }); connection.Start ();
  53. 53. Forms - Shell
  54. 54. Stack Absolute Relative Grid ContentView ScrollView Frame Content MasterDetail Navigatio n Tabbed Carousel ActivityIndicator BoxView Button DatePicker Editor Entry Image Label ListView Map OpenGLView Picker ProgressBar SearchBar Slider Stepper TableView TimePicker WebView EntryCell ImageCell SwitchCell TextCell ViewCell
  55. 55. <?xml version="1.0" encoding="UTF-8" ?> <Shell xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:Xamarin.Store" x:Class="Xamarin.StoreDemoApp" Route="s"> <Shell.FlyoutHeader> <local:HeaderView /> </Shell.FlyoutHeader> <Shell.MenuItems> <MenuItem x:Name="preferencesMenuItem" Text="Preferences" Icon="prefs.png" /> <MenuItem x:Name="logOutMenuItem" Text="Logout" Icon="logout.png" /> </Shell.MenuItems> <ShellItem Route="home" Title="Home" Icon="home.png" GroupBehavior="ShowTabs"> <ShellTabItem Route="updates" Title="Home" Icon="home.png" ContentTemplate="{DataTemplate local:HomePage}" /> <ShellTabItem Route="games" Title="Games" Icon="games.png" ContentTemplate="{DataTemplate local:GamesPage}" /> <ShellTabItem Route="settings" Title="Settings" Icon="games.png" ContentTemplate="{DataTemplate local:SettingsPage}" /> </ShellItem> <ShellItem Route="apps" Title="Media" Icon="media.png"> <ShellTabItem Route="books" Title="Books" Icon="books.png" ContentTemplate="{DataTemplate local:BooksPage}" /> <ShellTabItem Route="music" Title="Music" Icon="music.png" ContentTemplate="{DataTemplate local:MusicPage}" /> <ShellTabItem Route="movies" Title="Movies" Icon="movies.png" ContentTemplate="{DataTemplate local:MoviesPage}" /> </ShellItem> </Shell>

×