In programming we know countless ways to solve the same problem. The same is true with professional growth. No two paths are alike and you control your own destiny. I'm thrilled to share my failed attempts and the lessons-learned. We'll clear your path - where every challenge is an opportunity. From blogging to speaking. From open-source contributions to stackoverflow Q/A. From attending conferences to organizing them. We will take on impostor syndrome and grow together! You'll see how becoming a social developer can launch your career to the next level.
The C# language team has been making some awesome improvements. In March 2017, we were given C# 7. This major release brought some powerful features such as: pattern-matching, tuple literals/deconstruction, and local functions to name a few. Since then the team introduced the notion of point releases. Expect to learn about all the features of C# 7, as well as the C# 7.1 and 7.2 point releases. Additionally, we'll take a look at the plan for C# 8.
This is a sample app, trying to demonstrate the smallest ASP.NET Core Minimal API, a "Hello World!" example. The Program.cs* is only three lines of code.
Program.cs:
var app = WebApplication.CreateBuilder(args).Build();
app.MapGet("/", () => "Hello World!");
app.Run();
// TODO
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// If this call fails, we'll try it again with the same payload two times | |
getFooBars(onNext: (fooBars: FooBar[]) => void) { | |
this.get("api/foobar") | |
.map(response => <FooBar[]>response.json()) | |
.retry(2) | |
.subscribe(onNext, | |
error => | |
console.log("An error occurred when requesting api/foobar.", error)); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Simple .ctor() | |
constructor(http: Http) { } | |
// Is equivalent to... | |
http: Http; // When the access modifier is omitted it's defaulted to public | |
constructor(http: Http) { | |
this.http = http; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Simple .ctor() | |
constructor(private http: Http) { } | |
// Is equivalent to... | |
private http: Http; | |
constructor(http: Http) { | |
this.http = http; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import {Observable} from "RxJS/Rx"; | |
import {Injectable} from "@angular/core"; | |
import {Http} from "@angular/http"; | |
@Injectable() export class ExampleService { | |
constructor(private http: Http) { } | |
getFooBars(onNext: (fooBars: FooBar[]) => void) { | |
this.get("api/foobar") | |
.map(response => <FooBar[]>reponse.json()) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module ExampleModule { | |
export class ExampleService implements IExampleService { | |
static $inject = ["$http", "$q"]; | |
private $http: ng.IHttpService; | |
private $q: ng.IQService; | |
constructor($http: ng.IHttpService, | |
$q: ng.IQService) { | |
this.$http = $http; |