4 ms·
Tips and Tricks for Asp.net Core Applications
- samuelrodriguez 8y agoSome good tips there. The `When` extension method is really nice: `app.When(env.IsDevelopment(), app.UseDeveloperExceptionPage)`.
- restlessmedia 8y agoThis is brilliant, really well written as well.
- Mirioron 8y agoIs tip #12 actually an improvement? I think I would prefer to read the original code than that so specific construct.
- SideburnsOfDoom 8y agoTip 12: "Working with Null Collections" has it slightly wrong: always return empty colletions, not null ones. There are already helpers for that: https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.empty https://docs.microsoft.com/en-us/dotnet/api/system.linq.enum... In this example, of "GetSomeCollectionFromSomewhere" returns null rather than an empty collection, it is in error and the situation should be corrected inside that method, not at all of the callers. Also, why would you do "if (someCollection.Count > 0) foreach(var item in someCollection) { ... }" ? This is exactly equivalent to "foreach(var item in someCollection) { ... }"
- manigandham 8y agoAgreed that upstream methods should always return a collection and not null. There is some value in skipping the foreach since that calls GetEnumerator() and may allocate, but that's very high-performance scenarios. Using LINQ to convert everything to a list and then using IList<T>.ForEach is definitely not recommended though. MS themselves have said that method was a mistake and that the foreach construct should always be used for iteration.
- mandeepj 8y agoI think you had misread it. Author was commenting on other developers who have written following code - "How often do .NET developers write something like this:". And, was not promoting this approach. var someCollection = GetSomeCollectionFromSomewhere(); if (someCollection != null && someCollection.Count > 0) { foreach(var item in someCollection) { // Do stuff } }
- manigandham 8y agoThat 'finally' clause might not run to flush Serilog at the end. The webhost will listen to several exit events but some like window close, cancel key, some exceptions, and others will close the program at soon as the event handler returns. This is why the webhost registers a ManualResetEvent to block the event handler until the Program.Main() is finished running. Also if you're using EF migrations, then stick with the normal CreateWebHostBuilder() method in Program.cs because it's used to bootstrap the program to run migrations at the command line.