Subscribe: Latest Microsoft Blogs
http://weblogs.asp.net/aspnet-team/rss.aspx
Added By: Feedage Forager Feedage Grade B rated
Language: English
Tags:
api  app  azure cdn  azure cosmos  azure event  azure  cdn  core  cosmos  event grid  event  net core  net  webassembly 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Latest Microsoft Blogs

Untitled





 



Optimize Your Content Delivery with Azure CDN

Fri, 18 Aug 2017 00:40:34 GMT

Manling Zhang joins Scott Hanselman to talk about how to optimize content delivery with Azure CDN for various customer scenarios, such as general web delivery, large file download, and media streaming. With one little hint from customer about the scenario, Azure CDN will apply the a set of default optimizations in the backend which provides optimal performance of content delivery.

For more information, see: 

(image) Manling Zhang joins Scott Hanselman to talk about how to optimize content delivery with Azure CDN for various customer scenarios, such as general web delivery, large file download, and media streaming. With one little hint from customer about the scenario, Azure CDN will apply the a set of default optimizations in the backend which provides optimal performance of content delivery. For more information, see: Azure Content Delivery Network (CDN)Azure CDN docsFollow @SHanselman Follow @AzureFriday


Media Files:
http://video.ch9.ms/ch9/4652/fb6f375c-adaa-444a-8440-b86bbf8f4652/optimizecontentdeliverywithazurecdnzhang.mp4




Integrating Azure CDN into Your Azure Workflows

Fri, 18 Aug 2017 00:36:39 GMT

Manling Zhang joins Scott Hanselman to demo the recent integration of CDN into Azure Web App, Storage and Media Services portal experience. Enabling and managing a CDN for these services is extremely simple with a few clicks and without leaving the portal.

For more information, see: 

(image) Manling Zhang joins Scott Hanselman to demo the recent integration of CDN into Azure Web App, Storage and Media Services portal experience. Enabling and managing a CDN for these services is extremely simple with a few clicks and without leaving the portal. For more information, see: Azure Content Delivery Network (CDN)Azure CDN docsFollow @SHanselman Follow @AzureFriday


Media Files:
http://video.ch9.ms/ch9/3cad/e45835cd-6b18-43c6-afe5-a63f432e3cad/integratingcdnintoazureworkflowszhang.mp4




Draft - .NET Glossary Diagram

Thu, 17 Aug 2017 20:52:48 GMT

I'm working on this slide as support for this excellent .NET Glossary. It's not done yet, but I'm curious for your thoughts. Every system has terms and concepts that are initially unfamiliar but make sense once you grok them.

(image)

Here are these concepts used in an example sentence, for context:

  • Application Framework - “Are you using the ASP.NET Core web framework for that microservice?”
  • Metapackage - “I want to install the ASP.NET Core framework; it’s a package of packages”
  • Package/NuGet - “I know there’s a NuGet package for decoding JSON.”
  • Library/Assembly - “Now, you’ll compile your source into an assembly”
  • .NET Standard – “Which version of the .NET Standard specification does your assembly target?"
    • "My Apple Watch supports .NET Standard 1.6 but my Windows 10 laptop supports 2.0 with more APIs.”
  • C#, F#, VB, etc – “Which language did you use?”
  • .NET SDK - “Did you get the developer tools?”
  • CLR/CoreCLR – “Which runtime is your app using?”
  • An implementation of .NET is a runtime along with libraries that implement a version of the .NET Standard
    • “Are you using .NET Core, .NET Framework, or Mono for this project?”
  • Platform - An operating system and some hardware (ARM, x64, etc.)
    • “Is that an ASP.NET Core app running in Docker on a Raspberry Pi?”

Constructive feedback, please. This is a draft.


Sponsor: Check out JetBrains Rider: a new cross-platform .NET IDE. Edit, refactor, test and debug ASP.NET, .NET Framework, .NET Core, Xamarin or Unity applications. Learn more and download a 30-day trial!



© 2017 Scott Hanselman. All rights reserved.



Send ETag headers in ASP.NET Core

Thu, 17 Aug 2017 08:19:46 PDT

ASP.NET Core doesn’t add an ETag header automatically to HTTP responses from MVC action methods or Razor Pages. We have to implement that ourselves to provide the users with true Conditional GET support that honors the If-None-Match request header.

Wouldn’t it be nice if all we had to do was to register it using app.UseETagger() like this?

// Add "app.UseETagger();" to "Configure" method in Startup.cspublic void Configure(IApplicationBuilder app, IHostingEnvironment env){    app.UseStaticFiles();        // Add this after static files but before MVC in order
// to provide ETags to MVC Views and Razor Pages. app.UseETagger(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); });}

We can if we use this little middleware class that handles the ETag and If-None-Match headers.




Azure Event Grid

Wed, 16 Aug 2017 14:50:00 GMT

Bahram Banisadr introduces Scott Hanselman to Azure Event Grid, which is a fully-managed event service for managing events across many different Azure services and applications. Made for performance and scale, it simplifies building event-driven applications and serverless architectures.

For more information, see:

(image) Bahram Banisadr introduces Scott Hanselman to Azure Event Grid, which is a fully-managed event service for managing events across many different Azure services and applications. Made for performance and scale, it simplifies building event-driven applications and serverless architectures. For more information, see: Azure Event Grid: An Event Grid for Modern Applications (blog)Azure Event Grid (product overview)Azure Event Grid (documentation)Follow @SHanselman Follow @AzureFriday Follow @BAHRAwesoMe


Media Files:
http://video.ch9.ms/ch9/3202/b43a9daa-b0e7-4591-b1b9-14a4ab503202/AzureFridayEventGridBanisadr20170814.mp4




Exploring refit, an automatic type-safe REST library for .NET Standard

Wed, 16 Aug 2017 05:49:52 GMT

I dig everything that Paul Betts does. He's a lovely person and a prolific coder. One of his recent joints is called Refit. It's a REST library for .NET that is inspired by Square's Retrofit library. It turns your REST API into a live interface:public interface IGitHubApi{ [Get("/users/{user}")] Task GetUser(string user);}That's an interface that describes a REST API that's elsewhere. Then later you just make a RestService.For and you go to town.var gitHubApi = RestService.For("https://api.github.com");var octocat = await gitHubApi.GetUser("octocat");That's lovely! It is a .NET Standard 1.4 library which means you can use it darn near everywhere. Remember that .NET Standard isn't a runtime, it's a version interface - a list of methods you can use under many different ".NETs." You can use Refit on UWP, Xamarin.*, .NET "full" Frameowrk, and .NET Core, which runs basically everywhere.Sure, you can make your own HttpClient calls, but that's a little low level and somewhat irritating. Sure, you can look for a .NET SDK for your favorite REST interface but what if it doesn't have one? It strikes a nice balance between the low-level and the high-level.I'll give an example and use it as a tiny exercise for Refit. I have a service that hosts a realtime feed of my blood sugar, as I'm a Type 1 Diabetic. Since I have a Continuous Glucose Meter that is attached to me and sending my sugar details to a web service called Nightscout running in Azure, I figured it'd be cool to use Refit to pull my sugar info back down with .NET.The REST API for Nightscout is simple, but doe have a lot of options, query strings, and multiple endpoints. I can start by making a simple interface for the little bits I want now, and perhaps expand the interface later to get more.For example, if I want my sugars, I would gohttps://MYWEBSITE/api/v1/entries.json?count=10And get back some JSON data like this:[{_id: "5993c4aa8d60c09b63ba1c",sgv: 162,date: 1502856279000,dateString: "2017-08-16T04:04:39.000Z",trend: 4,direction: "Flat",device: "share2",type: "sgv"},{_id: "5993c37d8d60c09b93ba0b",sgv: 162,date: 1502855979000,dateString: "2017-08-16T03:59:39.000Z",trend: 4,direction: "Flat",device: "share2",type: "sgv"}]Where "sgv" is serum glucose value, or blood sugar. Starting with .NET Core 2.0 and the SDK that I installed from http://dot.net, I'll first make a console app from the command line and add refit like this:C:\users\scott\desktop\refitsugars> dotnet new consoleC:\users\scott\desktop\refitsugars> dotnet add package refitHere's my little bit of code. I made an object shaped like each record. Added aliases for weirdly named stuff like "sgv" COOL SIDE NOTE: I added 7.1 to my project so I could have my public static Main entry point be async. That's new as many folks have wanted to have a "public static async void Main()" equivalent. After that it's REALLY lovely and super easy to make a quick strongly-typed REST Client in C# for pretty much anything. I could see myself easily extending this to include the whole NightScout diabetes management API without a lot of effort.using Newtonsoft.Json;using Refit;using System;using System.Collections.Generic;using System.Threading.Tasks;namespace refitsugars{ public interface INightScoutApi { [Get("/api/v1/entries.json?count={count}")] Task> GetSugars(int count); } public class Sugar { [JsonProperty(PropertyName = "_id")] public string id { get; set; } [JsonProperty(PropertyName = "sgv")] public int glucose { get; set; } [JsonProperty(PropertyName = "dateString")] public DateTime itemDate { get; set; } public int trend { get; set; } } class Program { public static async Task Main(string[] args) { var nsAPI = RestService.For("https[...]



Announcing ASP.NET Core 2.0

Mon, 14 Aug 2017 16:01:14 +0000

The ASP.NET team is proud to announce general availability of ASP.NET Core 2.0.  This release features compatibility with .NET Core 2.0, tooling support in Visual Studio 2017 version 15.3, and the new Razor Pages user-interface design paradigm.  For a full list of updates, you can read the release notes and you can check the list... Read more



Announcing ASP.NET Core 2.0

Mon, 14 Aug 2017 12:18:16 GMT

The ASP.NET team is proud to announce general availability of ASP.NET Core 2.0. This release features compatibility with .NET Core 2.0, tooling support in Visual Studio 2017 version 15.3, and the n...


Media Files:
https://media-www-asp.azureedge.net/media/3843482/jeff-fritz.jpg




.NET and WebAssembly - Is this the future of the front-end?

Sat, 12 Aug 2017 05:24:28 GMT

6 years ago Erik Meijer and I were talking about how JavaScript is/was an assembly language. It turned into an interesting discussion/argument (some people really didn't buy it) but it still kept happening. Currently WebAssembly world is marching forward and is supported in Chrome, Firefox, and in Development in Edge, Opera, and Safari. "The avalanche has begun, it's too late for the pebbles to vote." - Ambassador Kosh Today in 2017, WebAssembly is absolutely a thing and you can learn about it at http://webassembly.org. I even did a podcast on WebAssembly with Mozilla Fellow David Bryant (you really should check out my podcast, I'm very proud of it. It's good.) The image above is from Steve Sanderson's NDC presentation. He's writing the classic client-side JavaScript ToDo application...except he's writing the code in C#. What is WebAssembly? "WebAssembly or wasm is a low-level bytecode format for in-browser client-side scripting, evolved from JavaScript." You can easily compile to WebAssembly from C and C++ today...and more languages are jumping in to include WebAssembly as a target every day. Since I work in open source .NET and since .NET Core 2.0 is cross-platform with an imminent release, it's worth exploring where WebAssembly fits into a .NET world. Here's some projects I have identified that help bridge the .NET world and the WebAssembly world. I think that this is going to be THE hot space in the next 18 months. WebAssembly for .NET Despite its overarching name, this OSS project is meant to consume WASM binary files and execute them from within .NET assemblies. To be clear, this isn't compiling .NET languages' (C#, VB.NET, F#) into WebAssembly, this is for using WebAssembly as if it's any other piece of resuable compiled code. Got an existing WASM file you REALLY want to call from .NET? This is for that. Interestingly, this project doesn't spin up a V8 or Chakra JavaScript engine to run WASM, instead it reads in the bytecode and converts them to .NET via System.Reflection.Emit. Interesting stuff! Mono and WebAssembly One of the great things happening in the larger .NET Ecosystem is that there is more than one ".NET" today. In the past, .NET was a thing that you installed on Windows and generally feared. Today, there's .NET 4.x+ on basically every Windows machine out there, there's .NET Core that runs in Docker, on Mac, Windows, and a dozen Linuxes...even Raspberry Pi, and Mono is another instance of .NET that allows you to run code in dozens of other platforms. There's multiple "instances of .NET" out there in active development. The Mono Project has two prototypes using Mono and WebAssembly. The first one uses the traditional full static compilation mode of Mono, this compiled both the Mono C runtime and the Mono class libraries along with the user code into WebAssembly code. It produces one large statically compiled application. You can try this fully statically compiled Hello World here. The full static compilation currently lives here. So that's a totally statically compiled Hello World...it's all of Mono and your app into Web Assembly. They have another prototype with a difference perspective: The second prototype compiles the Mono C runtime into web assembly, and then uses Mono’s IL interpreter to run managed code. This one is a smaller download, but comes at the expense of performance. The mixed mode execution prototype currently lives here. Here they've got much of Mono running in Web Assembly, but your IL code is interpreted. One of the wonderful things about Computer Science - There is more than one way to do something, and they are often each awesome in their own way! "Blazor" - Experimental UI Framework running .NET in the browser With a similar idea as the Mono Project's second prototype, Steve Sanderson took yet another "instance of .NET," the six year old open source DotNetAn[...]



Config Explorer for ASP.NET Core

Fri, 11 Aug 2017 05:22:07 GMT

Chad Tolkien shares a tool which lists out all of the available keys and values in the entire configuration system.


Media Files:
https://media-www-asp.azureedge.net/media/4483526/chad-tolkien.jpg




SignalR .NET Core: Realtime cross-platform pen web communication

Thu, 10 Aug 2017 22:14:16 GMT

Damian Edwards and David Fowler share their slides from their Build presentation on SignalR.


Media Files:
https://media-www-asp.azureedge.net/media/1738826/damian-edwards.png




Table API for Azure Cosmos DB

Thu, 10 Aug 2017 21:31:00 GMT

Aravind Krishna shows Scott Hanselman how to get started with the Table API for Azure Cosmos DB, the globally distributed multi-model database. Using the API, applications running on Azure Table storage can take advantage of secondary indexes, turnkey global distribution, dedicated throughput, and single digit millisecond latency with 99.99% comprehensive SLAs. See Github(Table API) for the code demoed in the episode.

For more information, see: Introduction to Azure Cosmos DB: Table API

(image) Aravind Krishna shows Scott Hanselman how to get started with the Table API for Azure Cosmos DB, the globally distributed multi-model database. Using the API, applications running on Azure Table storage can take advantage of secondary indexes, turnkey global distribution, dedicated throughput, and single digit millisecond latency with 99.99% comprehensive SLAs. See Github(Table API) for the code demoed in the episode. For more information, see: Introduction to Azure Cosmos DB: Table API Follow @SHanselman Follow @AzureFriday Follow @arkramac


Media Files:
http://video.ch9.ms/ch9/2ae4/98f66f9e-3586-4b86-a248-c0f047512ae4/tableapiforazurecosmosdbkrishna.mp4




Graphs with Azure Cosmos DB Gremlin API

Thu, 10 Aug 2017 21:30:00 GMT

Kirill Gavrylyuk talks Azure Cosmos DB and Graphs with Scott, exploring why we need graphs, and what we can we do with graphs on Azure Cosmos DB. Azure Cosmos DB offers native graph gremlin API support in addition MongoDB, SQL, and others. Graphs in Azure Cosmos DB also enjoy the same global distribution, low latency, limitless throughput, and 99.99% SLAs as other APIs.  

For more information, see: Introduction to Azure Cosmos DB: Graph API

(image) Kirill Gavrylyuk talks Azure Cosmos DB and Graphs with Scott, exploring why we need graphs, and what we can we do with graphs on Azure Cosmos DB. Azure Cosmos DB offers native graph gremlin API support in addition MongoDB, SQL, and others. Graphs in Azure Cosmos DB also enjoy the same global distribution, low latency, limitless throughput, and 99.99% SLAs as other APIs. For more information, see: Introduction to Azure Cosmos DB: Graph API Follow @SHanselman Follow @AzureFriday Follow @kirillg_msft


Media Files:
http://video.ch9.ms/ch9/f286/49214a62-860b-4486-af7f-96c95d08f286/azurecosmosdbgremlinapigavrylyuk.mp4




Maven: Deploy Java Web Apps to Azure

Thu, 10 Aug 2017 14:00:02 Z

We released a new Maven Plugin for Azure App Service, you can deploy or redeploy Web apps to App Service Linux or Windows in one easy step.



dotnet new Feature Selection

Wed, 09 Aug 2017 05:56:06 GMT

Rehan Saeed shows how to add feature selection to a project template so developers can choose to add or remove bits of the template.


Media Files:
https://media-www-asp.azureedge.net/media/4547466/muhammad_rehan_saeed.jpg