SlideShare a Scribd company logo
Best of //Build 2021
C# 10, .NET 6 & Beyond
Moaid Hathot
Senior Software Engineer @ Microsoft | ex-Azure MVP
Moaid.Hathot@outlook.com
@MoaidHathot
https://moaid.codes
https://meetup.com/Code-Digest
 Some features are still under development
 Feature, design, and status
C# 10 features
 Records
 Record structs
 Sealed ToString
 Properties & Parameters improvements
 Required Properties
 ‘field’ keyword
 Parameter null-checking
 Pattern matching
 List Patterns
 Extended Property Patterns
 Cleaner code
 File-scoped namespaces
 File-scoped namespaces
 Global using directives
 Lambdas improvements
 ValueTuple deconstruction
 Deconstruction of ‘default’ literal
 Mix declaration and variables in deconstruction
 ADT – Abstract Data types
C# 10 and beyond
 How to run the samples
 .NET 6 SDK Preview 5
 Visual Studio 2022 Preview + Roslyn feature branches
 LinqPad 6 beta (not all features)
 SharpLab.io
C# 10 and beyond
About Moaid Hathot
 Senior software Engineer @ Microsoft
 Ex-Azure MVP
 Software Craftsmanship advocate
 Clean Coder
 Co-Founder of Code.Digest();
 https://meetup.com/Code-Digest
Moaid Hathot
C# feature
Record Improvements
Records
public record Person
{
public string FirstName { get; init; }
public string LastName { get; init; }
}
Records
public class Person : IEquatable<Person>
{
public string FirstName { get; init; }
public string LastName { get; init; }
public override bool Equals(object obj)
=> Equals(obj as Person);
public bool Equals(Person other)
=> other is { } && (FirstName, LastName) == (other.FirstName, other.LastName);
public override int GetHashCode()
=> (FirstName, LastName).GetHashCode();
public override string ToString()
=> $"FirstName: '{FirstName}', LastName: '{LastName}'";
public static bool operator ==(Person first, Person second)
=> object.ReferenceEquals(first, second) || (first is { } && first.Equals(second));
public static bool operator !=(Person first, Person second)
=> !(first == second);
public void Deconstruct(out string firstName, out string lastname)
=> (firstName, lastname) = (FirstName, LastName);
}
Records
public record Person
{
public string FirstName { get; init; }
public string LastName { get; init; }
}
Records
public record Person(string FirstName, string LastName);
Records
public record Person(string FirstName, string LastName);
var moaid = new Person("Moaid", "Hathot");
Records
public record Person(string FirstName, string LastName);
var moaid = new Person("Moaid", "Hathot");
var wifu = moaid with { FirstName = "Haneeni" };
var clone = moaid with { };
Records
public record Person(string FirstName, string LastName);
Records
public record Person(string FirstName, string LastName);
public record struct Person(string FirstName, string LastName);
Records
public record Person(string FirstName, string LastName);
public record struct Person(string FirstName, string LastName);
public record class Person(string FirstName, string LastName);
C# feature
Property Improvements
Required Properties
public class Person
{ … }
Required Properties
public class Person
{ … }
var moaid = new Person("Moaid", "Hathot");
Required Properties
public class Person
{ … }
var moaid = new Person("Moaid", "Hathot");
var moaid = new Person
{
FirstName = "Moaid",
LastName = "Hathot"
}
Required Properties
public class Person
{
public string FirstName { get; }
public string LastName { get; }
public Person(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
}
var moaid = new Person("Moaid", "Hathot");
Required Properties
public class Person
{
public string FirstName { get; }
public string LastName { get; }
public Person(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
}
var moaid = new Person("Moaid", "Hathot");
var moaid = new Person
{
FirstName = "Moaid",
LastName = "Hathot"
}
Required Properties
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Person(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
public Person()
{
}
}
Required Properties
public class Person
{
public string FirstName { get; init; }
public string LastName { get; init; }
public Person(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
public Person()
{
}
}
Required Properties
public class Person
{
public string FirstName { get; init; }
public string LastName { get; init; }
public Person(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
public Person()
{
}
}
var moaid = new Person();
Required Properties
public class Person
{
public required string FirstName { get; init; }
public required string LastName { get; init; }
public Person(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
public Person()
{
}
}
Required Properties
public class Person
{
public required string FirstName { get; init; }
public required string LastName { get; init; }
}
var moaid = new Person
{
FirstName = "Moaid",
LastName = "Hathot"
}
Property fields
public class Person
{
public string Name { get; set; }
}
Property fields
public class Person
{
private string _name;
public string Name
{
get => _name;
set => _name = value?.ToLower();
}
}
Property fields
public class Person
{
public string Name
{
get;
set => field = value?.ToLower();
}
}
C# feature
Parameter null-checking
Parameter null-checking
void SayHello(Person person)
{
if(person is null)
{
throw new NullReferenceException();
}
Console.WriteLine($"Hello {person.FirstName}");
}
Parameter null-checking
void SayHello(Person person)
{
_ => person ?? throw new NullReferenceException();
Console.WriteLine($"Hello {person.FirstName}");
}
Parameter null-checking
void SayHello(Person person!!)
{
Console.WriteLine($"Hello {person.FirstName}");
}
C# feature
Pattern Matching
Extended property patterns
string obj = null;
Extended property patterns
string obj = null;
if (obj is { })
{
Console.WriteLine(obj);
}
Extended property patterns
string obj = null;
if (obj is { Length: var length })
{
Console.WriteLine(length);
}
Extended property patterns
string obj = null;
if (obj is { Length: 10 })
{
Console.WriteLine(10);
}
Extended property patterns
string obj = null;
if (obj is { Length: > 3 })
{
Console.WriteLine("> 3");
}
Extended property patterns
var moaid = new Person("Moaid", "Hathot");
Extended property patterns
var moaid = new Person("Moaid", "Hathot");
if (moaid is { FirstName: { Length: > 3 } })
{
}
Extended property patterns
var moaid = new Person("Moaid", "Hathot");
if (moaid is { FirstName: { Length: > 3 } })
{
}
if (moaid is { FirstName.Length: > 3 })
{
}
List Patterns
var arr = new []{ 1, 2, 3 };
List Patterns
var arr = new []{ 1, 2, 3 };
switch(arr)
{
case [_, 1, ..]: { }
case [.., 1, _]: { }
}
List Patterns
var arr = new []{ 1, 2, 3 };
switch(arr)
{
case [_, 1, ..]: { } // expr.Length is >= 2 && expr[1] is 1
case [.., 1, _]: { } // expr.Length is >= 2 && expr[^2] is 1
}
List Patterns
var arr = new []{ 1, 2, 3 };
arr is [1, 2, 3]
List Patterns
var arr = new []{ 1, 2, 3 };
arr is [1, 2, 3]
expr.Length is 3
&& expr[0] is 1
&& expr[1] is 2
&& expr[2] is 3
List Patterns
var arr = new []{ 1, 2, 3 };
arr is [1, .. var s, 3]
List Patterns
var arr = new []{ 1, 2, 3 };
arr is [1, 2, 3]
expr.Length is >= 2
&& expr[0] is 1
&& expr[1..^1] is var s
&& expr[^1] is 3
List Patterns
var arr = new []{ 1, 2, 3 };
arr is [1, 2, 3]
expr.Length is >= 2
&& expr[0] is 1 //expr[new Index(1, true)]
&& expr[1..^1] is var s //expr[new Range(1, new Index(1, true))]
&& expr[^1] is 3 //expr[new Index(1, true)]
List Patterns
IEnumerable<int> collection = ...
List Patterns
IEnumerable<int> collection = ...
_ = collection switch
{
{ 1 } => { }
{ 2 } => { }
{ .., 3 } => { }
};
C# feature
Less Code
File-scoped namespace
using System;
namespace BestOfBuild
{
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World!");
}
}
}
File-scoped namespace
namespace BestOfBuild
using System;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World!");
}
}
File-scoped namespace
namespace BestOfBuild
public static void Main()
{
Console.WriteLine("Hello World!");
}
File-scoped namespace
public static void Main()
{
Console.WriteLine("Hello World!");
}
File-scoped namespace
Console.WriteLine("Hello World!");
Global using Directive
using System;
namespace BestOfBuild
{
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World!");
}
}
}
Global using Directive
using System;
using System.Linq;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
Global using Directive
using System;
using System.Linq;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Human = BestOfBuild.Person;
Global using Directive
global using System;
global using System.Linq;
global using System.Collections.Generic;
global using System.Threading;
global using System.Threading.Tasks;
global using Human = BestOfBuild.Person;
Lambda Improvements
var action = () => { };
var func = () => 5;
Lambda Improvements
var action = () => { };
var func = () => 5;
Action action = () => { };
Func<int> func = () => 5;
Lambda Improvements
var func = () => 5;
Func<int> func = () => 5;
Lambda Improvements
var func = (): int => 5;
Func<int> func = (): int => 5;
Lambda Improvements
var func = [FromBody](): int => 5;
Func<int> func = (): int => 5;
ASP.NET MapActions
[HttpGet("/")] Todo GetTodo() => new(Id: 0, Name: "Name");
app.MapAction((Func<Todo>)GetTodo);
[HttpPost("/")] Todo PostTodo([FromBody] Todo todo) => todo;
app.MapAction((Func<Todo, Todo>)PostTodo);
ASP.NET MapActions
[HttpGet("/")] Todo GetTodo() => new(Id: 0, Name: "Name");
app.MapAction(GetTodo);
[HttpPost("/")] Todo PostTodo([FromBody] Todo todo) => todo);
app.MapAction(PostTodo);
ASP.NET MapActions
app.MapAction([HttpGet("/")] () => new Todo(Id: 0, Name: "Name"));
app.MapAction([HttpPost("/")] ([FromBody] Todo todo) => todo);
ASP.NET Minimal APIs
using System;
using Microsoft.AspNetcore.Builder;
record Person(string FirstName, string LastName);
var app = WebApplication.Create(args);
app.MapGet("/", () => new ("Moaid", "Hathot"));
await app.RunAsync();
ASP.NET Minimal APIs
using System;
using Microsoft.AspNetcore.Builder;
record Person(string FirstName, string LastName);
var app = WebApplication.Create(args);
app.MapGet("/", () => new Person("Moaid", "Hathot"));
await app.RunAsync();
ASP.NET Minimal APIs
using System;
using Microsoft.AspNetcore.Builder;
record Person(string FirstName, string LastName);
var app = WebApplication.Create(args);
app.MapGet("/", () => new Person("Moaid", "Hathot"));
await app.RunAsync();
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send({ firstName: "Moaid", lastName: "Hathot"});
});
app.listen(3000, () => {
console.log(`App is listening`);
})
ASP.NET Minimal APIs
using Microsoft.AspNetcore.Builder;
record Person(string FirstName, string LastName);
var app = WebApplication.Create(args);
app.MapGet("/", () => new Person("Moaid", "Hathot"));
await app.RunAsync();
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send({ firstName: "Moaid", lastName: "Hathot"});
});
app.listen(3000, () => {
console.log(`App is listening`);
})
ASP.NET Minimal APIs
using Microsoft.AspNetcore.Builder;
var app = WebApplication.Create(args);
app.MapGet("/", () => new Person("Moaid", "Hathot"));
await app.RunAsync();
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send({ firstName: "Moaid", lastName: "Hathot"});
});
app.listen(3000, () => {
console.log(`App is listening`);
})
ASP.NET Minimal APIs
var app = WebApplication.Create(args);
app.MapGet("/", () => new Person("Moaid", "Hathot"));
await app.RunAsync();
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send({ firstName: "Moaid", lastName: "Hathot"});
});
app.listen(3000, () => {
console.log(`App is listening`);
})
C# feature
Deconstruction Improvements
ValueTuple Deconstruction
record Person(string FirstName, string LastName);
ValueTuple Deconstruction
record Person(string FirstName, string LastName);
Person moaid = new ("Moaid", "Hathot");
ValueTuple Deconstruction
record Person(string FirstName, string LastName);
Person moaid = new ("Moaid", "Hathot");
var (firstName, lastName) = moaid;
ValueTuple Deconstruction
public class Person(string FirstName, string LastName);
ValueTuple Deconstruction
public class Person(string FirstName, string LastName)
{
public void Deconstruct(out string firstName, out string lastName)
{
firstName = FirstName;
lastName = LastName;
}
}
ValueTuple Deconstruction
var (firstName, lastName) = default;
ValueTuple Deconstruction
int (foo, bar) = default;
ValueTuple Deconstruction
int (foo, bar) = default;
(int foo, string bar) = default;
ValueTuple Deconstruction
(string firstName, string lastName) = default;
ValueTuple Deconstruction
string (firstName, lastName) = default;
ValueTuple Deconstruction
string (firstName, lastName) = default;
string firstName2;
string lastName2;
(firstName2, lastName2) = default;
ValueTuple Deconstruction
string (firstName, lastName) = default;
string firstName2;
string lastName2;
(firstName2, lastName2) = default;
string lastName3;
(var firstName3, lastName3) = default;
C# feature
ADT – Abstract Data Types
Static abstract members in interfaces
interface IAddable<T> where T : IAddable<T>
{
static abstract T Zero { get; }
static abstract T operator +(T t1, T t2);
}
Static abstract members in interfaces
interface IAddable<T> where T : IAddable<T>
{
static abstract T Zero { get; }
static abstract T operator +(T t1, T t2);
}
struct Int32 : …, IAddable<Int32>
{
static Int32 I.operator +(Int32 x, Int32 y) => x + y;
public static int Zero => 0;
}
Static abstract members in interfaces
interface IAddable<T> where T : IAddable<T>
{
static abstract T Zero { get; }
static abstract T operator +(T t1, T t2);
}
struct Int32 : …, IAddable<Int32>
{
static Int32 I.operator +(Int32 x, Int32 y) => x + y;
public static int Zero => 0;
}
public static T AddAll<T>(T[] ts) where T : IAddable<T>
{
T result = T.Zero; // Call static operator
foreach (T t in ts)
{
result += t; // Use `+`
}
return result;
}
Best of //Build 2021
Questions?
Moaid Hathot
Senior Software Engineer @ Microsoft | ex-Azure MVP
Moaid.Hathot@outlook.com
@MoaidHathot
https://moaid.codes
https://meetup.com/Code-Digest

More Related Content

What's hot

C# 7.x What's new and what's coming with C# 8
C# 7.x What's new and what's coming with C# 8C# 7.x What's new and what's coming with C# 8
C# 7.x What's new and what's coming with C# 8
Christian Nagel
 
Realm or: How I learned to stop worrying and love my app database
Realm or: How I learned to stop worrying and love my app databaseRealm or: How I learned to stop worrying and love my app database
Realm or: How I learned to stop worrying and love my app database
Sergi Martínez
 
Top 20 java programming interview questions for sdet
Top 20 java programming interview questions for sdetTop 20 java programming interview questions for sdet
Top 20 java programming interview questions for sdet
DevLabs Alliance
 
The Ring programming language version 1.7 book - Part 14 of 196
The Ring programming language version 1.7 book - Part 14 of 196The Ring programming language version 1.7 book - Part 14 of 196
The Ring programming language version 1.7 book - Part 14 of 196
Mahmoud Samir Fayed
 
Nicety of Java 8 Multithreading
Nicety of Java 8 MultithreadingNicety of Java 8 Multithreading
Nicety of Java 8 Multithreading
GlobalLogic Ukraine
 
RealmDB for Android
RealmDB for AndroidRealmDB for Android
RealmDB for Android
GlobalLogic Ukraine
 
Leap Ahead with Redis 6.2
Leap Ahead with Redis 6.2Leap Ahead with Redis 6.2
Leap Ahead with Redis 6.2
VMware Tanzu
 
Large scale nlp using python's nltk on azure
Large scale nlp using python's nltk on azureLarge scale nlp using python's nltk on azure
Large scale nlp using python's nltk on azure
cloudbeatsch
 
Natural Language Toolkit (NLTK), Basics
Natural Language Toolkit (NLTK), Basics Natural Language Toolkit (NLTK), Basics
Natural Language Toolkit (NLTK), Basics
Prakash Pimpale
 
Adventures in TclOO
Adventures in TclOOAdventures in TclOO
Adventures in TclOO
Donal Fellows
 
Objective c(lang)
Objective c(lang)Objective c(lang)
Objective c(lang)
Futada Takashi
 
JDK1.7 features
JDK1.7 featuresJDK1.7 features
JDK1.7 features
india_mani
 
Socket Programming
Socket ProgrammingSocket Programming
Socket Programming
Sivadon Chaisiri
 
Basic NLP with Python and NLTK
Basic NLP with Python and NLTKBasic NLP with Python and NLTK
Basic NLP with Python and NLTK
Francesco Bruni
 
The TclQuadcode Compiler
The TclQuadcode CompilerThe TclQuadcode Compiler
The TclQuadcode Compiler
Donal Fellows
 
The Ring programming language version 1.6 book - Part 13 of 189
The Ring programming language version 1.6 book - Part 13 of 189The Ring programming language version 1.6 book - Part 13 of 189
The Ring programming language version 1.6 book - Part 13 of 189
Mahmoud Samir Fayed
 
Patterns for JVM languages JokerConf
Patterns for JVM languages JokerConfPatterns for JVM languages JokerConf
Patterns for JVM languages JokerConf
Jaroslaw Palka
 
TclOO: Past Present Future
TclOO: Past Present FutureTclOO: Past Present Future
TclOO: Past Present FutureDonal Fellows
 

What's hot (19)

C# 7.x What's new and what's coming with C# 8
C# 7.x What's new and what's coming with C# 8C# 7.x What's new and what's coming with C# 8
C# 7.x What's new and what's coming with C# 8
 
Realm or: How I learned to stop worrying and love my app database
Realm or: How I learned to stop worrying and love my app databaseRealm or: How I learned to stop worrying and love my app database
Realm or: How I learned to stop worrying and love my app database
 
Top 20 java programming interview questions for sdet
Top 20 java programming interview questions for sdetTop 20 java programming interview questions for sdet
Top 20 java programming interview questions for sdet
 
The Ring programming language version 1.7 book - Part 14 of 196
The Ring programming language version 1.7 book - Part 14 of 196The Ring programming language version 1.7 book - Part 14 of 196
The Ring programming language version 1.7 book - Part 14 of 196
 
Nicety of Java 8 Multithreading
Nicety of Java 8 MultithreadingNicety of Java 8 Multithreading
Nicety of Java 8 Multithreading
 
RealmDB for Android
RealmDB for AndroidRealmDB for Android
RealmDB for Android
 
Leap Ahead with Redis 6.2
Leap Ahead with Redis 6.2Leap Ahead with Redis 6.2
Leap Ahead with Redis 6.2
 
Large scale nlp using python's nltk on azure
Large scale nlp using python's nltk on azureLarge scale nlp using python's nltk on azure
Large scale nlp using python's nltk on azure
 
Natural Language Toolkit (NLTK), Basics
Natural Language Toolkit (NLTK), Basics Natural Language Toolkit (NLTK), Basics
Natural Language Toolkit (NLTK), Basics
 
Adventures in TclOO
Adventures in TclOOAdventures in TclOO
Adventures in TclOO
 
Objective c(lang)
Objective c(lang)Objective c(lang)
Objective c(lang)
 
JDK1.7 features
JDK1.7 featuresJDK1.7 features
JDK1.7 features
 
Socket Programming
Socket ProgrammingSocket Programming
Socket Programming
 
Basic NLP with Python and NLTK
Basic NLP with Python and NLTKBasic NLP with Python and NLTK
Basic NLP with Python and NLTK
 
The TclQuadcode Compiler
The TclQuadcode CompilerThe TclQuadcode Compiler
The TclQuadcode Compiler
 
The Ring programming language version 1.6 book - Part 13 of 189
The Ring programming language version 1.6 book - Part 13 of 189The Ring programming language version 1.6 book - Part 13 of 189
The Ring programming language version 1.6 book - Part 13 of 189
 
Patterns for JVM languages JokerConf
Patterns for JVM languages JokerConfPatterns for JVM languages JokerConf
Patterns for JVM languages JokerConf
 
TclOO: Past Present Future
TclOO: Past Present FutureTclOO: Past Present Future
TclOO: Past Present Future
 
Dotnet 18
Dotnet 18Dotnet 18
Dotnet 18
 

Similar to Best of build 2021 - C# 10 & .NET 6

2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator
Alberto Paro
 
2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator
Alberto Paro
 
CodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical GroovyCodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical GroovyCodecamp Romania
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
Hans Höchtl
 
Dev Day Andreas Roth.pdf
Dev Day Andreas Roth.pdfDev Day Andreas Roth.pdf
Dev Day Andreas Roth.pdf
CarolinaMatthies
 
[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)
croquiscom
 
Webinar: Simplifying Persistence for Java and MongoDB
Webinar: Simplifying Persistence for Java and MongoDBWebinar: Simplifying Persistence for Java and MongoDB
Webinar: Simplifying Persistence for Java and MongoDB
MongoDB
 
What's new in C# 6 - NetPonto Porto 20160116
What's new in C# 6  - NetPonto Porto 20160116What's new in C# 6  - NetPonto Porto 20160116
What's new in C# 6 - NetPonto Porto 20160116
Paulo Morgado
 
An introduction into Spring Data
An introduction into Spring DataAn introduction into Spring Data
An introduction into Spring Data
Oliver Gierke
 
AST Transformations at JFokus
AST Transformations at JFokusAST Transformations at JFokus
AST Transformations at JFokusHamletDRC
 
Simplifying Persistence for Java and MongoDB with Morphia
Simplifying Persistence for Java and MongoDB with MorphiaSimplifying Persistence for Java and MongoDB with Morphia
Simplifying Persistence for Java and MongoDB with Morphia
MongoDB
 
TDC2016SP - Trilha .NET
TDC2016SP - Trilha .NETTDC2016SP - Trilha .NET
TDC2016SP - Trilha .NET
tdc-globalcode
 
Better Software: introduction to good code
Better Software: introduction to good codeBetter Software: introduction to good code
Better Software: introduction to good codeGiordano Scalzo
 
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6Dmitry Soshnikov
 
Type script by Howard
Type script by HowardType script by Howard
Type script by Howard
LearningTech
 
TypeScript by Howard
TypeScript by HowardTypeScript by Howard
TypeScript by Howard
LearningTech
 
Howard type script
Howard   type scriptHoward   type script
Howard type script
LearningTech
 
Building a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to SpaceBuilding a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to Space
Maarten Balliauw
 
FNT 2015 PDIS CodeEU - Zanimljiva informatika - 02 Djordje Pavlovic - Live_ch...
FNT 2015 PDIS CodeEU - Zanimljiva informatika - 02 Djordje Pavlovic - Live_ch...FNT 2015 PDIS CodeEU - Zanimljiva informatika - 02 Djordje Pavlovic - Live_ch...
FNT 2015 PDIS CodeEU - Zanimljiva informatika - 02 Djordje Pavlovic - Live_ch...
Педагошко друштво информатичара Србије
 

Similar to Best of build 2021 - C# 10 & .NET 6 (20)

2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator
 
2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator
 
CodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical GroovyCodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical Groovy
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
 
Dev Day Andreas Roth.pdf
Dev Day Andreas Roth.pdfDev Day Andreas Roth.pdf
Dev Day Andreas Roth.pdf
 
[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)
 
TechTalk - Dotnet
TechTalk - DotnetTechTalk - Dotnet
TechTalk - Dotnet
 
Webinar: Simplifying Persistence for Java and MongoDB
Webinar: Simplifying Persistence for Java and MongoDBWebinar: Simplifying Persistence for Java and MongoDB
Webinar: Simplifying Persistence for Java and MongoDB
 
What's new in C# 6 - NetPonto Porto 20160116
What's new in C# 6  - NetPonto Porto 20160116What's new in C# 6  - NetPonto Porto 20160116
What's new in C# 6 - NetPonto Porto 20160116
 
An introduction into Spring Data
An introduction into Spring DataAn introduction into Spring Data
An introduction into Spring Data
 
AST Transformations at JFokus
AST Transformations at JFokusAST Transformations at JFokus
AST Transformations at JFokus
 
Simplifying Persistence for Java and MongoDB with Morphia
Simplifying Persistence for Java and MongoDB with MorphiaSimplifying Persistence for Java and MongoDB with Morphia
Simplifying Persistence for Java and MongoDB with Morphia
 
TDC2016SP - Trilha .NET
TDC2016SP - Trilha .NETTDC2016SP - Trilha .NET
TDC2016SP - Trilha .NET
 
Better Software: introduction to good code
Better Software: introduction to good codeBetter Software: introduction to good code
Better Software: introduction to good code
 
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
 
Type script by Howard
Type script by HowardType script by Howard
Type script by Howard
 
TypeScript by Howard
TypeScript by HowardTypeScript by Howard
TypeScript by Howard
 
Howard type script
Howard   type scriptHoward   type script
Howard type script
 
Building a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to SpaceBuilding a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to Space
 
FNT 2015 PDIS CodeEU - Zanimljiva informatika - 02 Djordje Pavlovic - Live_ch...
FNT 2015 PDIS CodeEU - Zanimljiva informatika - 02 Djordje Pavlovic - Live_ch...FNT 2015 PDIS CodeEU - Zanimljiva informatika - 02 Djordje Pavlovic - Live_ch...
FNT 2015 PDIS CodeEU - Zanimljiva informatika - 02 Djordje Pavlovic - Live_ch...
 

More from Moaid Hathot

Demystifying C#'s Interpolated string Handlers
Demystifying C#'s Interpolated string HandlersDemystifying C#'s Interpolated string Handlers
Demystifying C#'s Interpolated string Handlers
Moaid Hathot
 
Azure Bicep for Developers
Azure Bicep for DevelopersAzure Bicep for Developers
Azure Bicep for Developers
Moaid Hathot
 
Demystifying C#'s Interpolated string Handlers
Demystifying C#'s Interpolated string HandlersDemystifying C#'s Interpolated string Handlers
Demystifying C#'s Interpolated string Handlers
Moaid Hathot
 
ChatGPT and Beyond Using AI Tools to Enhance Academic Researc
ChatGPT and Beyond Using AI Tools to Enhance Academic ResearcChatGPT and Beyond Using AI Tools to Enhance Academic Researc
ChatGPT and Beyond Using AI Tools to Enhance Academic Researc
Moaid Hathot
 
Dapr- Distributed Application Runtime
Dapr- Distributed Application RuntimeDapr- Distributed Application Runtime
Dapr- Distributed Application Runtime
Moaid Hathot
 
What's coming in C# 11
What's coming in C# 11What's coming in C# 11
What's coming in C# 11
Moaid Hathot
 
Introduction to .NET MAUI
Introduction to .NET MAUIIntroduction to .NET MAUI
Introduction to .NET MAUI
Moaid Hathot
 
What's new in C# 11
What's new in C# 11What's new in C# 11
What's new in C# 11
Moaid Hathot
 
What's new in c# 10
What's new in c# 10What's new in c# 10
What's new in c# 10
Moaid Hathot
 
Developer cloud roadmap keynote
Developer cloud roadmap keynoteDeveloper cloud roadmap keynote
Developer cloud roadmap keynote
Moaid Hathot
 
Intro to Azure Static Web Apps
Intro to Azure Static Web AppsIntro to Azure Static Web Apps
Intro to Azure Static Web Apps
Moaid Hathot
 
About me - Atidna
About me - AtidnaAbout me - Atidna
About me - Atidna
Moaid Hathot
 
About me - Rothschild Partnerships
About me - Rothschild PartnershipsAbout me - Rothschild Partnerships
About me - Rothschild Partnerships
Moaid Hathot
 
What's coming in c# 9.0
What's coming in c# 9.0What's coming in c# 9.0
What's coming in c# 9.0
Moaid Hathot
 
What's Coming in C# 9.0
What's Coming in C# 9.0What's Coming in C# 9.0
What's Coming in C# 9.0
Moaid Hathot
 
Introduction to azure
Introduction to azureIntroduction to azure
Introduction to azure
Moaid Hathot
 
Distributed Application Runtime (Dapr) - Azure Israel 2020
Distributed Application Runtime (Dapr) - Azure Israel 2020Distributed Application Runtime (Dapr) - Azure Israel 2020
Distributed Application Runtime (Dapr) - Azure Israel 2020
Moaid Hathot
 
Dapr: distributed application runtime
Dapr: distributed application runtimeDapr: distributed application runtime
Dapr: distributed application runtime
Moaid Hathot
 
Dapr: the glue to your microservices
Dapr: the glue to your microservicesDapr: the glue to your microservices
Dapr: the glue to your microservices
Moaid Hathot
 
A serverless IoT Story From Design to Production and Monitoring
A serverless IoT Story From Design to Production and MonitoringA serverless IoT Story From Design to Production and Monitoring
A serverless IoT Story From Design to Production and Monitoring
Moaid Hathot
 

More from Moaid Hathot (20)

Demystifying C#'s Interpolated string Handlers
Demystifying C#'s Interpolated string HandlersDemystifying C#'s Interpolated string Handlers
Demystifying C#'s Interpolated string Handlers
 
Azure Bicep for Developers
Azure Bicep for DevelopersAzure Bicep for Developers
Azure Bicep for Developers
 
Demystifying C#'s Interpolated string Handlers
Demystifying C#'s Interpolated string HandlersDemystifying C#'s Interpolated string Handlers
Demystifying C#'s Interpolated string Handlers
 
ChatGPT and Beyond Using AI Tools to Enhance Academic Researc
ChatGPT and Beyond Using AI Tools to Enhance Academic ResearcChatGPT and Beyond Using AI Tools to Enhance Academic Researc
ChatGPT and Beyond Using AI Tools to Enhance Academic Researc
 
Dapr- Distributed Application Runtime
Dapr- Distributed Application RuntimeDapr- Distributed Application Runtime
Dapr- Distributed Application Runtime
 
What's coming in C# 11
What's coming in C# 11What's coming in C# 11
What's coming in C# 11
 
Introduction to .NET MAUI
Introduction to .NET MAUIIntroduction to .NET MAUI
Introduction to .NET MAUI
 
What's new in C# 11
What's new in C# 11What's new in C# 11
What's new in C# 11
 
What's new in c# 10
What's new in c# 10What's new in c# 10
What's new in c# 10
 
Developer cloud roadmap keynote
Developer cloud roadmap keynoteDeveloper cloud roadmap keynote
Developer cloud roadmap keynote
 
Intro to Azure Static Web Apps
Intro to Azure Static Web AppsIntro to Azure Static Web Apps
Intro to Azure Static Web Apps
 
About me - Atidna
About me - AtidnaAbout me - Atidna
About me - Atidna
 
About me - Rothschild Partnerships
About me - Rothschild PartnershipsAbout me - Rothschild Partnerships
About me - Rothschild Partnerships
 
What's coming in c# 9.0
What's coming in c# 9.0What's coming in c# 9.0
What's coming in c# 9.0
 
What's Coming in C# 9.0
What's Coming in C# 9.0What's Coming in C# 9.0
What's Coming in C# 9.0
 
Introduction to azure
Introduction to azureIntroduction to azure
Introduction to azure
 
Distributed Application Runtime (Dapr) - Azure Israel 2020
Distributed Application Runtime (Dapr) - Azure Israel 2020Distributed Application Runtime (Dapr) - Azure Israel 2020
Distributed Application Runtime (Dapr) - Azure Israel 2020
 
Dapr: distributed application runtime
Dapr: distributed application runtimeDapr: distributed application runtime
Dapr: distributed application runtime
 
Dapr: the glue to your microservices
Dapr: the glue to your microservicesDapr: the glue to your microservices
Dapr: the glue to your microservices
 
A serverless IoT Story From Design to Production and Monitoring
A serverless IoT Story From Design to Production and MonitoringA serverless IoT Story From Design to Production and Monitoring
A serverless IoT Story From Design to Production and Monitoring
 

Recently uploaded

Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 

Recently uploaded (20)

Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 

Best of build 2021 - C# 10 & .NET 6