SlideShare a Scribd company logo
Michał Dudak
.NET 2015
– co nowego?
O mnie
Technical Advisor & Internal Trainer @ Future Processing
@michaldudak
github.com/michaldudak
blog.dudak.me
Agenda
 .NET Framework 4.6 vs .NET Core 5
 C# 6.0 i Roslyn
 Visual Studio 2015
 ASP.NET 5
 Entity Framework 7
.NET 2015
http://blogs.msdn.com/b/bethmassi/archive/2015/02/25/understanding-net-2015.aspx
.NET
Framework
vs .NET Core
.NET Framework 4.6
 Brak rewolucyjnych zmian w stosunku do .NET Framework
4.5
 Nowości:
 Obsługa ASP.NET 5
 Nowy kompilator just-in-time (RyuJIT)
 Kontrola nad garbage collectorem
 Więcej komponentów z asynchronicznym API
 .NET Native dla aplikacji Windows Store
 Reference source na licencji MIT
 http://sourceof.net
 https://github.com/Microsoft/referencesource
.NET Core 5
 Mały podzbiór (core) .NET Frameworka
 Biblioteki (BCL) + środowisko uruchomieniowe (CoreCLR)
 Modularyzacja
 BCL dostępny przez NuGet
 Open source na licencji MIT (docelowo)
 Łącznie z garbage collectorem i JITem
 Development prowadzony na GitHubie
CoreCLR
 Środowisko uruchomieniowe dla .NET Core
 Optymalizacja pod środowiska serwerowe
 Możliwość używania wielu wersji na tej samej maszynie
 Wieloplatformowość (docelowo)
C# 6.0 i Roslyn
C# 6.0: Elvis operator
?.
C# 6.0: Null-conditional
int? length = null;
if (customers != null)
{
length = customers.Length;
}
int? length = customers?.Length;
C# 6.0: Null-conditional
Customer first = null;
if (customers != null)
{
first = customers[0];
}
Customer first = customers?[0];
C# 6.0: Null-conditional
if (PropertyChanged != null)
{
PropertyChanged(this, args);
}
PropertyChanged?.Invoke(this, EventArgs.Empty);
C# 6.0: Inicjalizatory właściwości
public string EventName { get; set; } = "4Developers"
public string EventName { get; } = "4Developers"
C# 6.0: nameof
nameof(x); // "x"
nameof(Conference.Date); // "Date"
C# 6.0: Filtrowanie wyjątków
try { … }
catch (MyException e)
{
if (e.ErrorLevel <= 2)
throw;
…
}
try
{ … }
catch (MyException ex) if (ex.ErrorLevel > 2)
{ … }
C# 6.0: Primary constructors
public class Conference
{
public string Name { get; set; }
public string Date { get; private set; }
public Conference(string name, DateTime date)
{
Name = name;
Date = date;
}
}
public class Conference(string name, DateTime date)
{
public string Name { get; set; } = name;
public DateTime Date { get; } = date;
}
public int Add(int x1, int x2)
{
return x1 + x2;
}
public string FullName { get { return FirstName + " " + LastName; } }
public int Add(int x1, int x2) => x1 + x2;
public string FullName => FirstName + " " + LastName;
C# 6.0: Metody i właściwości definiowane
przez wyrażenia lambda
C# 6.0: Using klas statycznych
using System.Console;
using System.Math;
public class Program
{
public void Main()
{
WriteLine(Sqrt(3 * 3 + 4 * 4));
}
}
C# 6.0: Interpolacja stringów
String.Format("{0,20} is {1:D3} years old", p.Name, p.Age);
$"{p.Name,20} is {p.Age:D3} years old";
Roslyn
 .NET Compiler Platform
 C# i Visual Basic
 API do użycia w kodzie
 Narzędzia do refaktoryzacji i analizy kodu
 Aplikacje kompilujące się w locie
 Wykorzystywany przez Visual Studio 2015 i ASP.NET 5
Visual Studio
Visual Studio 2015
 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 Grunt, Gulp i Bower
 Edycje Express, Community, Professional i Enterprise
Visual Studio Community Edition
 Odpowiednik edycji Professional
 Jedno IDE dla wszystkich platform
 Rozszerzalność
 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
ASP.NET 5
ASP.NET 5: Brak System.Web
 Cały ASP.NET poza corem .NETa
 Brak handlerów, modułów, Global.asax, itp.
 Brak obsługi WebForms
ASP.NET 5: OWIN
ASP.NET 5: Nowa struktura projektów
 Project.json
 Konfiguracja zależności
 Ustawienia specyficzne dla frameworków
 Zależności do paczek nuget
 Wszystkie pliki z folderu domyślnie w projekcie
 Możliwość dołączenia CLR
 Brak (prawie) plików web.config
ASP.NET 5: Hostowanie poza IIS
 Self-hosting
 Custom host
 Kestrel
IIS nadal pozostaje rekomendowanym serwerem
ASP.NET 5: Wieloplatformowość
 Kestrel
 Serwer oparty o libuv
 Działa na Mono
 Linux, Mac
 Docelowo na .NET Core
ASP.NET 5: Narzędzia
 Visual Studio 2015
 Pluginy do popularnych edytorów kodu
 Sublime Text
 Brackets
 Vim
 Atom
 …
 Narzędzia konsolowe
 dnx
 dnu
 dnvm
 nuget
ASP.NET MVC 6
 Połączone MVC, WebAPI i WebPages
 Zunifikowane typy, routing, DI
 Szerzej wykorzystywane DI
 Brak staticów (RouteTable, GlobalConfiguration, itd.)
 Kontrolery niewymagające klasy bazowej
 Asynchroniczność
 Tag Helpers
@Html.TextBoxFor(m => m.Name, new { @class = ”form-control” })
<input asp-for=”Name” class=”form-control” />
ASP.NET 5: Przykład aplikacji
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();
app.Use(async (ctx, next) =>
{
await ctx.Response.WriteAsync("Hello, 4Developers!");
await next();
});
}
}
Entity
Framework 7
Entity Framework 7
 Przepisany od zera
 Lekki i rozszerzalny
 Wieloplatformowy
 Aplikacje desktopowe
 ASP.NET
 Windows Store
 Windows Phone
 Wsparcie dla baz relacyjnych i NoSQL
 Azure Table Storage
 Redis
 Tylko model Code First
 Brak modelu EDMX
Entity Framework 7
 Co się nie zmienia
 DbContext, DbSet<T>
 LINQ
 Spora część publicznego API
 Co nowego
 Łączenie poleceń (batch)
 Implementacja constrainta Unique
 Provider InMemory
Entity Framework 7
 Co się zmienia
 Część zapytania przetwarzana w aplikacji
 Czego nie będzie
 ObjectContext
 EDMX
 Złożone mapowanie klas do tabel
 MEST
Entity Framework 7
 Nie wszystkie nowe funkcje będą dostępne od razu
 Gałąź 6.x będzie rozwijana niezależnie (przez „pewien czas”)
Pytania
Dziękuję za uwagę
.NET 2015
– co nowego?

More Related Content

What's hot

“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
The Software House
 
Jak poprawić Core Web Vitals w aplikacji Next.js
Jak poprawić Core Web Vitals w aplikacji Next.jsJak poprawić Core Web Vitals w aplikacji Next.js
Jak poprawić Core Web Vitals w aplikacji Next.js
The Software House
 
Swoole w PHP. Czy to ma sens?
Swoole w PHP. Czy to ma sens?Swoole w PHP. Czy to ma sens?
Swoole w PHP. Czy to ma sens?
The Software House
 
CodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and Influx
CodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and InfluxCodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and Influx
CodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and Influx
CodiLime
 
Programowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 WersjonowanieProgramowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 WersjonowanieMikołaj Olszewski
 
Testowanie rozwiązań serverless z LocalStack
Testowanie rozwiązań serverless z LocalStackTestowanie rozwiązań serverless z LocalStack
Testowanie rozwiązań serverless z LocalStack
The Software House
 
Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6
The Software House
 

What's hot (7)

“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
 
Jak poprawić Core Web Vitals w aplikacji Next.js
Jak poprawić Core Web Vitals w aplikacji Next.jsJak poprawić Core Web Vitals w aplikacji Next.js
Jak poprawić Core Web Vitals w aplikacji Next.js
 
Swoole w PHP. Czy to ma sens?
Swoole w PHP. Czy to ma sens?Swoole w PHP. Czy to ma sens?
Swoole w PHP. Czy to ma sens?
 
CodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and Influx
CodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and InfluxCodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and Influx
CodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and Influx
 
Programowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 WersjonowanieProgramowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 Wersjonowanie
 
Testowanie rozwiązań serverless z LocalStack
Testowanie rozwiązań serverless z LocalStackTestowanie rozwiązań serverless z LocalStack
Testowanie rozwiązań serverless z LocalStack
 
Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6
 

Viewers also liked

4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...
4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...
4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...
PROIDEA
 
4Developers 2015: Customer Journey Based UX Design - Łukasz Szadkowski
4Developers 2015: Customer Journey Based UX Design - Łukasz Szadkowski4Developers 2015: Customer Journey Based UX Design - Łukasz Szadkowski
4Developers 2015: Customer Journey Based UX Design - Łukasz Szadkowski
PROIDEA
 
JDD2015: Sustainability Supporting Data Variability: Keeping Core Components ...
JDD2015: Sustainability Supporting Data Variability: Keeping Core Components ...JDD2015: Sustainability Supporting Data Variability: Keeping Core Components ...
JDD2015: Sustainability Supporting Data Variability: Keeping Core Components ...
PROIDEA
 
JDD2015: Ratpack: core of your micro-services - Andrey Adamovich
JDD2015: Ratpack: core of your micro-services - Andrey AdamovichJDD2015: Ratpack: core of your micro-services - Andrey Adamovich
JDD2015: Ratpack: core of your micro-services - Andrey Adamovich
PROIDEA
 
4Developers 2015: Dobrze posól swoje hasło: skróty haseł w webie - Leszek Kru...
4Developers 2015: Dobrze posól swoje hasło: skróty haseł w webie - Leszek Kru...4Developers 2015: Dobrze posól swoje hasło: skróty haseł w webie - Leszek Kru...
4Developers 2015: Dobrze posól swoje hasło: skróty haseł w webie - Leszek Kru...
PROIDEA
 
JDD2015: What is code? - Jakub Marchwicki
JDD2015: What is code? - Jakub MarchwickiJDD2015: What is code? - Jakub Marchwicki
JDD2015: What is code? - Jakub Marchwicki
PROIDEA
 
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
PROIDEA
 
PLNOG14: Automation at Brainly - Paweł Rozlach
PLNOG14: Automation at Brainly - Paweł RozlachPLNOG14: Automation at Brainly - Paweł Rozlach
PLNOG14: Automation at Brainly - Paweł Rozlach
PROIDEA
 
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav TulachJDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
PROIDEA
 
4Developers 2015: Jak (w końcu) zacząć pracować z DDD wykorzystując BDD - Kac...
4Developers 2015: Jak (w końcu) zacząć pracować z DDD wykorzystując BDD - Kac...4Developers 2015: Jak (w końcu) zacząć pracować z DDD wykorzystując BDD - Kac...
4Developers 2015: Jak (w końcu) zacząć pracować z DDD wykorzystując BDD - Kac...
PROIDEA
 
Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...
Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...
Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...
PROIDEA
 
JDD2015: Make your world event driven - Krzysztof Dębski
JDD2015: Make your world event driven - Krzysztof DębskiJDD2015: Make your world event driven - Krzysztof Dębski
JDD2015: Make your world event driven - Krzysztof Dębski
PROIDEA
 
JDD2015: Twenty-one years of "Design Patterns" - Ralph Johnson
JDD2015: Twenty-one years of "Design Patterns" - Ralph JohnsonJDD2015: Twenty-one years of "Design Patterns" - Ralph Johnson
JDD2015: Twenty-one years of "Design Patterns" - Ralph Johnson
PROIDEA
 
JDD2015: Piękny Pan od HR radzi, czyli 1011 błędów, które popełniają programi...
JDD2015: Piękny Pan od HR radzi, czyli 1011 błędów, które popełniają programi...JDD2015: Piękny Pan od HR radzi, czyli 1011 błędów, które popełniają programi...
JDD2015: Piękny Pan od HR radzi, czyli 1011 błędów, które popełniają programi...
PROIDEA
 
DevOpsDays Warsaw 2015: From core Java to Devops team – Krzysztof Debski
DevOpsDays Warsaw 2015: From core Java to Devops team – Krzysztof DebskiDevOpsDays Warsaw 2015: From core Java to Devops team – Krzysztof Debski
DevOpsDays Warsaw 2015: From core Java to Devops team – Krzysztof Debski
PROIDEA
 
PLNOG15: BGP Route Reflector from practical point of view
PLNOG15: BGP Route Reflector from practical point of viewPLNOG15: BGP Route Reflector from practical point of view
PLNOG15: BGP Route Reflector from practical point of view
PROIDEA
 
DevOpsDays Warsaw 2015: JaaC - Jenkins as a Code – Łukasz Szczęsny
DevOpsDays Warsaw 2015: JaaC - Jenkins as a Code – Łukasz SzczęsnyDevOpsDays Warsaw 2015: JaaC - Jenkins as a Code – Łukasz Szczęsny
DevOpsDays Warsaw 2015: JaaC - Jenkins as a Code – Łukasz Szczęsny
PROIDEA
 
4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...
4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...
4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...
PROIDEA
 
4Developers 2015: .NET Poza VS - Jakub Gutkowski
4Developers 2015: .NET Poza VS - Jakub Gutkowski4Developers 2015: .NET Poza VS - Jakub Gutkowski
4Developers 2015: .NET Poza VS - Jakub Gutkowski
PROIDEA
 
Emergenza pianeta
Emergenza pianetaEmergenza pianeta
Emergenza pianetaNikuraTw
 

Viewers also liked (20)

4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...
4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...
4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...
 
4Developers 2015: Customer Journey Based UX Design - Łukasz Szadkowski
4Developers 2015: Customer Journey Based UX Design - Łukasz Szadkowski4Developers 2015: Customer Journey Based UX Design - Łukasz Szadkowski
4Developers 2015: Customer Journey Based UX Design - Łukasz Szadkowski
 
JDD2015: Sustainability Supporting Data Variability: Keeping Core Components ...
JDD2015: Sustainability Supporting Data Variability: Keeping Core Components ...JDD2015: Sustainability Supporting Data Variability: Keeping Core Components ...
JDD2015: Sustainability Supporting Data Variability: Keeping Core Components ...
 
JDD2015: Ratpack: core of your micro-services - Andrey Adamovich
JDD2015: Ratpack: core of your micro-services - Andrey AdamovichJDD2015: Ratpack: core of your micro-services - Andrey Adamovich
JDD2015: Ratpack: core of your micro-services - Andrey Adamovich
 
4Developers 2015: Dobrze posól swoje hasło: skróty haseł w webie - Leszek Kru...
4Developers 2015: Dobrze posól swoje hasło: skróty haseł w webie - Leszek Kru...4Developers 2015: Dobrze posól swoje hasło: skróty haseł w webie - Leszek Kru...
4Developers 2015: Dobrze posól swoje hasło: skróty haseł w webie - Leszek Kru...
 
JDD2015: What is code? - Jakub Marchwicki
JDD2015: What is code? - Jakub MarchwickiJDD2015: What is code? - Jakub Marchwicki
JDD2015: What is code? - Jakub Marchwicki
 
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
 
PLNOG14: Automation at Brainly - Paweł Rozlach
PLNOG14: Automation at Brainly - Paweł RozlachPLNOG14: Automation at Brainly - Paweł Rozlach
PLNOG14: Automation at Brainly - Paweł Rozlach
 
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav TulachJDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
 
4Developers 2015: Jak (w końcu) zacząć pracować z DDD wykorzystując BDD - Kac...
4Developers 2015: Jak (w końcu) zacząć pracować z DDD wykorzystując BDD - Kac...4Developers 2015: Jak (w końcu) zacząć pracować z DDD wykorzystując BDD - Kac...
4Developers 2015: Jak (w końcu) zacząć pracować z DDD wykorzystując BDD - Kac...
 
Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...
Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...
Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...
 
JDD2015: Make your world event driven - Krzysztof Dębski
JDD2015: Make your world event driven - Krzysztof DębskiJDD2015: Make your world event driven - Krzysztof Dębski
JDD2015: Make your world event driven - Krzysztof Dębski
 
JDD2015: Twenty-one years of "Design Patterns" - Ralph Johnson
JDD2015: Twenty-one years of "Design Patterns" - Ralph JohnsonJDD2015: Twenty-one years of "Design Patterns" - Ralph Johnson
JDD2015: Twenty-one years of "Design Patterns" - Ralph Johnson
 
JDD2015: Piękny Pan od HR radzi, czyli 1011 błędów, które popełniają programi...
JDD2015: Piękny Pan od HR radzi, czyli 1011 błędów, które popełniają programi...JDD2015: Piękny Pan od HR radzi, czyli 1011 błędów, które popełniają programi...
JDD2015: Piękny Pan od HR radzi, czyli 1011 błędów, które popełniają programi...
 
DevOpsDays Warsaw 2015: From core Java to Devops team – Krzysztof Debski
DevOpsDays Warsaw 2015: From core Java to Devops team – Krzysztof DebskiDevOpsDays Warsaw 2015: From core Java to Devops team – Krzysztof Debski
DevOpsDays Warsaw 2015: From core Java to Devops team – Krzysztof Debski
 
PLNOG15: BGP Route Reflector from practical point of view
PLNOG15: BGP Route Reflector from practical point of viewPLNOG15: BGP Route Reflector from practical point of view
PLNOG15: BGP Route Reflector from practical point of view
 
DevOpsDays Warsaw 2015: JaaC - Jenkins as a Code – Łukasz Szczęsny
DevOpsDays Warsaw 2015: JaaC - Jenkins as a Code – Łukasz SzczęsnyDevOpsDays Warsaw 2015: JaaC - Jenkins as a Code – Łukasz Szczęsny
DevOpsDays Warsaw 2015: JaaC - Jenkins as a Code – Łukasz Szczęsny
 
4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...
4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...
4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...
 
4Developers 2015: .NET Poza VS - Jakub Gutkowski
4Developers 2015: .NET Poza VS - Jakub Gutkowski4Developers 2015: .NET Poza VS - Jakub Gutkowski
4Developers 2015: .NET Poza VS - Jakub Gutkowski
 
Emergenza pianeta
Emergenza pianetaEmergenza pianeta
Emergenza pianeta
 

Similar to 4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing

Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?
Bartlomiej Zass
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
Mariusz Nowak
 
Wprowadzenie Do Asp
Wprowadzenie Do AspWprowadzenie Do Asp
Wprowadzenie Do Asp
Kelut
 
PHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubiPHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubi
PHPCon Poland
 
ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?
Michał Dudak
 
Seminarium .Net CF 2004
Seminarium .Net CF 2004Seminarium .Net CF 2004
Seminarium .Net CF 2004Tomasz Cieplak
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?
tkryskiewicz
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.js
Wojciech Kaniuka
 
Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?
javOnet
 
Websites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGWebsites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUG
Bart Zaremba
 
C# i .NET
C# i .NETC# i .NET
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław SobieckiPodstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Grzegorz Bartman
 
Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Clouds
kraqa
 
Modularny JavaScript - meet.js
Modularny JavaScript - meet.jsModularny JavaScript - meet.js
Modularny JavaScript - meet.js
Patryk Jar
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
Michal Furmankiewicz
 
Nie tylko C# - Ekosystem Microsoft dla programistów
Nie tylko C# - Ekosystem Microsoft dla programistówNie tylko C# - Ekosystem Microsoft dla programistów
Nie tylko C# - Ekosystem Microsoft dla programistów
intive
 
Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja BazyPrzemysław ...
 
Aplikacje internetowe (2010)
Aplikacje internetowe (2010)Aplikacje internetowe (2010)
Aplikacje internetowe (2010)
Adrian Kalbarczyk
 

Similar to 4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing (20)

Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 
Wprowadzenie Do Asp
Wprowadzenie Do AspWprowadzenie Do Asp
Wprowadzenie Do Asp
 
PHP i microsoft
PHP i microsoftPHP i microsoft
PHP i microsoft
 
PHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubiPHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubi
 
Php i Microsoft
Php i MicrosoftPhp i Microsoft
Php i Microsoft
 
ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?
 
Seminarium .Net CF 2004
Seminarium .Net CF 2004Seminarium .Net CF 2004
Seminarium .Net CF 2004
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.js
 
Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?
 
Websites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGWebsites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUG
 
C# i .NET
C# i .NETC# i .NET
C# i .NET
 
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław SobieckiPodstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
 
Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Clouds
 
Modularny JavaScript - meet.js
Modularny JavaScript - meet.jsModularny JavaScript - meet.js
Modularny JavaScript - meet.js
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
 
Nie tylko C# - Ekosystem Microsoft dla programistów
Nie tylko C# - Ekosystem Microsoft dla programistówNie tylko C# - Ekosystem Microsoft dla programistów
Nie tylko C# - Ekosystem Microsoft dla programistów
 
Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja Bazy
 
Aplikacje internetowe (2010)
Aplikacje internetowe (2010)Aplikacje internetowe (2010)
Aplikacje internetowe (2010)
 

4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing

  • 2. O mnie Technical Advisor & Internal Trainer @ Future Processing @michaldudak github.com/michaldudak blog.dudak.me
  • 3. Agenda  .NET Framework 4.6 vs .NET Core 5  C# 6.0 i Roslyn  Visual Studio 2015  ASP.NET 5  Entity Framework 7
  • 6. .NET Framework 4.6  Brak rewolucyjnych zmian w stosunku do .NET Framework 4.5  Nowości:  Obsługa ASP.NET 5  Nowy kompilator just-in-time (RyuJIT)  Kontrola nad garbage collectorem  Więcej komponentów z asynchronicznym API  .NET Native dla aplikacji Windows Store  Reference source na licencji MIT  http://sourceof.net  https://github.com/Microsoft/referencesource
  • 7. .NET Core 5  Mały podzbiór (core) .NET Frameworka  Biblioteki (BCL) + środowisko uruchomieniowe (CoreCLR)  Modularyzacja  BCL dostępny przez NuGet  Open source na licencji MIT (docelowo)  Łącznie z garbage collectorem i JITem  Development prowadzony na GitHubie
  • 8. CoreCLR  Środowisko uruchomieniowe dla .NET Core  Optymalizacja pod środowiska serwerowe  Możliwość używania wielu wersji na tej samej maszynie  Wieloplatformowość (docelowo)
  • 9. C# 6.0 i Roslyn
  • 10. C# 6.0: Elvis operator ?.
  • 11. C# 6.0: Null-conditional int? length = null; if (customers != null) { length = customers.Length; } int? length = customers?.Length;
  • 12. C# 6.0: Null-conditional Customer first = null; if (customers != null) { first = customers[0]; } Customer first = customers?[0];
  • 13. C# 6.0: Null-conditional if (PropertyChanged != null) { PropertyChanged(this, args); } PropertyChanged?.Invoke(this, EventArgs.Empty);
  • 14. C# 6.0: Inicjalizatory właściwości public string EventName { get; set; } = "4Developers" public string EventName { get; } = "4Developers"
  • 15. C# 6.0: nameof nameof(x); // "x" nameof(Conference.Date); // "Date"
  • 16. C# 6.0: Filtrowanie wyjątków try { … } catch (MyException e) { if (e.ErrorLevel <= 2) throw; … } try { … } catch (MyException ex) if (ex.ErrorLevel > 2) { … }
  • 17. C# 6.0: Primary constructors public class Conference { public string Name { get; set; } public string Date { get; private set; } public Conference(string name, DateTime date) { Name = name; Date = date; } } public class Conference(string name, DateTime date) { public string Name { get; set; } = name; public DateTime Date { get; } = date; }
  • 18. public int Add(int x1, int x2) { return x1 + x2; } public string FullName { get { return FirstName + " " + LastName; } } public int Add(int x1, int x2) => x1 + x2; public string FullName => FirstName + " " + LastName; C# 6.0: Metody i właściwości definiowane przez wyrażenia lambda
  • 19. C# 6.0: Using klas statycznych using System.Console; using System.Math; public class Program { public void Main() { WriteLine(Sqrt(3 * 3 + 4 * 4)); } }
  • 20. C# 6.0: Interpolacja stringów String.Format("{0,20} is {1:D3} years old", p.Name, p.Age); $"{p.Name,20} is {p.Age:D3} years old";
  • 21. Roslyn  .NET Compiler Platform  C# i Visual Basic  API do użycia w kodzie  Narzędzia do refaktoryzacji i analizy kodu  Aplikacje kompilujące się w locie  Wykorzystywany przez Visual Studio 2015 i ASP.NET 5
  • 23. Visual Studio 2015  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 Grunt, Gulp i Bower  Edycje Express, Community, Professional i Enterprise
  • 24. Visual Studio Community Edition  Odpowiednik edycji Professional  Jedno IDE dla wszystkich platform  Rozszerzalność  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
  • 26. ASP.NET 5: Brak System.Web  Cały ASP.NET poza corem .NETa  Brak handlerów, modułów, Global.asax, itp.  Brak obsługi WebForms
  • 28. ASP.NET 5: Nowa struktura projektów  Project.json  Konfiguracja zależności  Ustawienia specyficzne dla frameworków  Zależności do paczek nuget  Wszystkie pliki z folderu domyślnie w projekcie  Możliwość dołączenia CLR  Brak (prawie) plików web.config
  • 29. ASP.NET 5: Hostowanie poza IIS  Self-hosting  Custom host  Kestrel IIS nadal pozostaje rekomendowanym serwerem
  • 30. ASP.NET 5: Wieloplatformowość  Kestrel  Serwer oparty o libuv  Działa na Mono  Linux, Mac  Docelowo na .NET Core
  • 31. ASP.NET 5: Narzędzia  Visual Studio 2015  Pluginy do popularnych edytorów kodu  Sublime Text  Brackets  Vim  Atom  …  Narzędzia konsolowe  dnx  dnu  dnvm  nuget
  • 32. ASP.NET MVC 6  Połączone MVC, WebAPI i WebPages  Zunifikowane typy, routing, DI  Szerzej wykorzystywane DI  Brak staticów (RouteTable, GlobalConfiguration, itd.)  Kontrolery niewymagające klasy bazowej  Asynchroniczność  Tag Helpers @Html.TextBoxFor(m => m.Name, new { @class = ”form-control” }) <input asp-for=”Name” class=”form-control” />
  • 33. ASP.NET 5: Przykład aplikacji public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app) { app.UseStaticFiles(); app.Use(async (ctx, next) => { await ctx.Response.WriteAsync("Hello, 4Developers!"); await next(); }); } }
  • 35. Entity Framework 7  Przepisany od zera  Lekki i rozszerzalny  Wieloplatformowy  Aplikacje desktopowe  ASP.NET  Windows Store  Windows Phone  Wsparcie dla baz relacyjnych i NoSQL  Azure Table Storage  Redis  Tylko model Code First  Brak modelu EDMX
  • 36. Entity Framework 7  Co się nie zmienia  DbContext, DbSet<T>  LINQ  Spora część publicznego API  Co nowego  Łączenie poleceń (batch)  Implementacja constrainta Unique  Provider InMemory
  • 37. Entity Framework 7  Co się zmienia  Część zapytania przetwarzana w aplikacji  Czego nie będzie  ObjectContext  EDMX  Złożone mapowanie klas do tabel  MEST
  • 38. Entity Framework 7  Nie wszystkie nowe funkcje będą dostępne od razu  Gałąź 6.x będzie rozwijana niezależnie (przez „pewien czas”)
  • 40. Dziękuję za uwagę .NET 2015 – co nowego?

Editor's Notes

  1. Ponad 6 lat w .NET Technologie webowe - .NET, node, frontend Feedback na gorąco na twittera
  2. Cel prezentacji - inspiracja
  3. .NET 2015 to nie jedna konkretna technologia
  4. Reference source to podzbiór .NET Frameworka .NET native: kompilacja do binarek .NET native vs ngen – aplikacje .nn nie potrzebują .net frameworka
  5. System.Web – w zasadzie cały poprzedni silnik ASP.NET Silnie związany z IIS
  6. MEST – Multiple Entity Sets Per Type (i.e. you have a Products and RetiredProducts table that are both mapped to the Product class)