itad polsl 2014 - nowości w .net 2015
DESCRIPTION
Slides for the New Features in .NET 2015 lecture from IT Academic Day 2014 on Silesian University of Technology (in Polish)TRANSCRIPT
Technical Advisor & Internal Trainer @ Future Processing
@doodackgithub.com/doodackblog.dudak.pl
► .NET 4.6 vs .NET Core 5► C# 6.0► Roslyn► Visual Studio 2015► ASP.NET 5► Entity Framework 7
► Brak rewolucyjnych zmian w stosunku do .NET Framework 4.5► Co się zmieniło
.NET Native dla aplikacji Windows Store Immutable Collections i SIMD API – open source Więcej komponentów posiada API asynchroniczne
► Reference source na licencji MIT http://sourceof.net https://github.com/Microsoft/referencesource
► Mały podzbiór .NET Frameworka► Optymalizacja pod środowiska serwerowe► Modularyzacja► Wieloplatformowość (docelowo)► Open source na licencji MIT (docelowo)
Łącznie z garbage collectorem i JITem Development prowadzony na GitHubie
► Stan na dziś: wersja preview► Data wydania nie ujawniona
?.
int? length = null;
if (customers != null)
{
length = customers.Length;
}
int? length = customers?.Length;
Customer first = null;
if (customers != null)
{
first = customers[0];
}
Customer first = customers?[0];
if (PropertyChanged != null)
{
PropertyChanged(this, args);
}
PropertyChanged?.Invoke(this, args);
public string EventName { get; set; } = „ITAD PolSl";
public string EventName { get; } = „ITAD PolSl”;
nameof(x); // "x"
nameof(Conference.Date); // "Date"
try { … }
catch (MyException e)
{
if (e.ErrorLevel <= 2)
throw;
…
}
try { … }
catch (MyException e) if (e.ErrorLevel > 2) { … }
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
using System.Console;
using System.Math;
class Program
{
static void Main()
{
WriteLine(Sqrt(3*3 + 4*4));
}
}
String.Format("{0,20} is {1:D3} years old", p.Name, p.Age);
$"{p.Name,20} is {p.Age:D3} years old";
► Stan na dziś: dostępny w Visual Studio 2015 Preview
► .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
► Stan na dziś: wersja beta► Do pobrania z NuGet: Microsoft.CodeAnalysis► Narzędzia dostępne w Visual Studio 2015 Preview
► 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
► Stan na dziś: wersja preview► Dostępny obraz ISO dysku instalacyjnego► Dostępny obraz maszyny wirtualnej w chmurze Azure
► Odpowiednik edycji Professional Jedno IDE dla wszystkich platform Rozszerzalność
► W cenie edycji Express Czyli za darmo
► 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
► Stan na dziś: dostępny
► 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
► 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
► Self-hosting► Custom host► Kestrel
IIS nadal pozostaje rekomendowanym serwerem
► Kestrel Serwer oparty o libuv
► Działa na Mono Linux, Mac Docelowo na .NET Core
► Visual Studio 2015► Pluginy do popularnych edytorów kodu
Sublime Text Brackets Vim Atom …
► Narzędzia konsolowe k kpm kvm
► Połączone MVC, WebAPI i 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” })
<input for=”Name” class=”form-control” />
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");await next();
});}
}
► Stan na dziś: wersja beta1► Dostępny razem z Visual Studio 2015
► Przepisany od zera► Lekki i rozszerzalny► Wieloplatformowość
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
► Co się nie zmienia DbContext, DbSet<T> LINQ Spora część publicznego API
► Co nowego Łączenie poleceń (batch) Implementacja Unique Provider InMemory
► Co się zmienia Część zapytania przetwarzana w aplikacji
► Czego nie będzie ObjectContext EDMX MEST Złożone mapowanie klas do tabel
► Nie wszystkie nowe funkcje będą dostępne od razu► Gałąź 6.x będzie rozwijana niezależnie (przez „pewien czas”)
► Stan na dziś: wersja beta1► Dostępny z Visual Studio 2015
Który z poniższych nie jest frameworkiem składającym się na ASP.NET MVC 6?
A. ASP.NET MVCB. OWINC. WebPagesD. WebAPI