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.

ITAD PolSl 2014 - Nowości w .NET 2015

504 views

Published on

Slides for the New Features in .NET 2015 lecture from IT Academic Day 2014 on Silesian University of Technology (in Polish)

Published in: Software
  • Be the first to comment

  • Be the first to like this

ITAD PolSl 2014 - Nowości w .NET 2015

  1. 1. Technical Advisor & Internal Trainer@ Future Processing @doodack github.com/doodack blog.dudak.pl
  2. 2. ►.NET 4.6 vs .NET Core5 ►C# 6.0 ►Roslyn ►Visual Studio 2015 ►ASP.NET 5 ►EntityFramework 7
  3. 3. ►Brak rewolucyjnych zmian w stosunku do .NET Framework 4.5 ►Co się zmieniło .NET Native dla aplikacji Windows Store ImmutableCollectionsi SIMD API –open source Więcej komponentów posiada API asynchroniczne ►Reference sourcena licencji MIT http://sourceof.net https://github.com/Microsoft/referencesource
  4. 4. ►Mały podzbiór .NET Frameworka ►Optymalizacja pod środowiska serwerowe ►Modularyzacja ►Wieloplatformowość(docelowo) ►Open sourcena licencji MIT (docelowo) Łącznie z garbagecollectoremi JITem Development prowadzony na GitHubie
  5. 5. ►Stan na dziś: wersja preview ►Data wydania nie ujawniona
  6. 6. ?.
  7. 7. int? length= null; if(customers!= null) { length= customers.Length; } int? length= customers?.Length;
  8. 8. Customerfirst= null; if(customers!= null) { first= customers[0]; } Customerfirst= customers?[0];
  9. 9. if(PropertyChanged!= null) { PropertyChanged(this, args); } PropertyChanged?.Invoke(this, args);
  10. 10. public string EventName{ get; set; } = „ITAD PolSl"; public string EventName{ get; } = „ITAD PolSl”;
  11. 11. nameof(x); // "x" nameof(Conference.Date); // "Date"
  12. 12. try{ … } catch(MyExceptione) { if(e.ErrorLevel<= 2) throw; … } try{ … } catch (MyExceptione) if (e.ErrorLevel> 2) { … }
  13. 13. public classConference { public string Name{ get; set; } public string Date{ get; privateset; } public Conference(string name, DateTimedate) { Name= name; Date= date; } } public classConference(string name, DateTimedate) { public string Name{ get; set; } = name; public DateTimeDate{ get; } = date; }
  14. 14. public intAdd(intx1, intx2) { return x1 + x2; } public string FullName{ get{ return FirstName+ " " + LastName; } } public intAdd(intx1, intx2) => x1 + x2; public string FullName=> FirstName+ " " + LastName
  15. 15. usingSystem.Console; usingSystem.Math; class Program { static void Main() { WriteLine(Sqrt(3*3 + 4*4)); } }
  16. 16. String.Format("{0,20} is{1:D3} yearsold", p.Name, p.Age); $"{p.Name,20} is{p.Age:D3} yearsold";
  17. 17. ►Stan na dziś: dostępny w Visual Studio 2015 Preview
  18. 18. ►.NET Compiler Platform ►C# i Visual Basic ►API do użycia w kodzie Narzędzia do refaktoryzacjii analizy kodu Aplikacje kompilujące się w locie ►Wykorzystywany przez Visual Studio 2015 i ASP.NET 5
  19. 19. ►Stan na dziś: wersja beta ►Do pobrania z NuGet: Microsoft.CodeAnalysis ►Narzędzia dostępne w Visual Studio 2015 Preview
  20. 20. ►Emulator urządzeń z Androidem ►Zintegrowane narzędzia Apache Cordova ►Rozszerzone wsparcie dla Xamarin ►Poprawki w edytorze WPF ►Nowa wersja edytora Blend Szersza integracja z Visual Studio ►Wsparcie dla narzędzi typu Grunt, Gulp, Bower
  21. 21. ►Stan na dziś: wersja preview ►Dostępny obraz ISO dysku instalacyjnego ►Dostępny obraz maszyny wirtualnej w chmurze Azure
  22. 22. ►Odpowiednik edycji Professional Jedno IDE dla wszystkich platform Rozszerzalność ►W cenie edycji Express Czyli za darmo
  23. 23. ►Można używać: Do nauki Do projektów open source Komercyjnie przez pojedynczych developerów i małe firmy Max. 5 instalacji ►Nie można używać: Komercyjnie przez korporacje
  24. 24. ►Stan na dziś: dostępny
  25. 25. ►Działa na .NET Framework i .NET Core ►Cały ASP.NET poza corem.NETa ►Brak handlerów, modułów, Global.asax, itp. ►Brak obsługi WebForms
  26. 26. ►Project.json Konfiguracja zależności Ustawienia specyficzne dla frameworków Zadania uruchamiane z linii komend ►Zależności do paczek nuget ►Wszystkie pliki są domyślnie w projekcie ►Folder wwwroot ►Bower ►Możliwość dołączenia CLR do projektu ►Brak (prawie) plików web.config
  27. 27. ►Self-hosting ►Customhost ►Kestrel IIS nadal pozostaje rekomendowanym serwerem
  28. 28. ►Kestrel Serwer oparty o libuv ►Działa na Mono Linux, Mac Docelowo na .NET Core
  29. 29. ►Visual Studio 2015 ►Pluginydo popularnych edytorów kodu SublimeText Brackets Vim Atom … ►Narzędzia konsolowe k kpm kvm
  30. 30. ►Połączone MVC, WebAPIi WebPages Zunifikowane typy, routing, DI ►Zgodność z OWIN ►Szerzej wykorzystywane DI Brak staticów(RouteTable, GlobalConfiguration, itd.) ►Większa modularność ►Kontrolery niewymagające klasy bazowej ►Wszystko działa asynchronicznie ►Tag Helpers @Html.TextBoxFor(m => m.Name, new{ @class= ”form-control” }) <inputfor=”Name” class=”form-control” />
  31. 31. public classStartup { public voidConfigureServices(IServiceCollectionservices) { services.AddMvc(); } public voidConfigure(IApplicationBuilderapp) { app.UseStaticFiles(); app.Use(async(ctx, next) => { awaitctx.Response.WriteAsync("Hello"); awaitnext(); }); } }
  32. 32. ►Stan na dziś: wersja beta1 ►Dostępny razem z Visual Studio 2015
  33. 33. ►Przepisany od zera ►Lekki i rozszerzalny ►Wieloplatformowość Aplikacje desktopowe ASP.NET Windows Store Windows Phone ►Wsparcie dla baz relacyjnych i NoSQL AzureTableStorage Redis ►Tylko model CodeFirst Brak modelu EDMX
  34. 34. ►Co się nie zmienia DbContext, DbSet<T> LINQ Spora część publicznego API ►Co nowego Łączenie poleceń (batch) Implementacja Unique Provider InMemory
  35. 35. ►Co się zmienia Część zapytania przetwarzana w aplikacji ►Czego nie będzie ObjectContext EDMX MEST Złożone mapowanie klas do tabel
  36. 36. ►Nie wszystkie nowe funkcje będą dostępne od razu ►Gałąź 6.x będzie rozwijana niezależnie (przez „pewien czas”)
  37. 37. ►Stan na dziś: wersja beta1 ►Dostępny z Visual Studio 2015
  38. 38. Który z poniższych nie jest frameworkiemskładającym się na ASP.NET MVC 6? A.ASP.NET MVC B.OWIN C.WebPages D.WebAPI

×