The official source of product insight from the Visual Studio Engineering Team
Source: Visual Studio 2017 Release Candidate | The Visual Studio Blog
My bookmarks and blogposts regarding Software Development in .NET, C#, Angular, JavaScript, CSS, Html
The official source of product insight from the Visual Studio Engineering Team
Source: Visual Studio 2017 Release Candidate | The Visual Studio Blog
Prefix will help troubleshoot what your code is doing by inspecting key methods, database queries, web service calls, and logging statements.
Prefix is designed for developers to use everyday as they write & test their own code. Prefix answers the question of “What just happened” in my code.
Free to use with a few limitation (shows 1000 latest requests etc.)
Source: What is Stackify Prefix?
Getting started videos:
http://www.dotnetswede.com/prefix-is-out-heres-a-list-of-resources-for-getting-started/
Built-in auto-suggestion editorThe following example shows how to create a rich-text editor that provides editor selection suggestions from a drop-down, as shown in the image.
Source: Built-in auto-suggestion editor
Source: How to define default values for pages and blocks in EPiServer CMS 7
Also see this: using [DefaultValue] attribute:
Default property values on content in EPiServer are set by overriding SetDefaultValues. In an attempt to make my model classes a bit tidier, by not having to do the override in lots of places, I wrote a little piece of code which enables the use of the DefaultValue attribute (found in System.Component)
from: http://world.episerver.com/blogs/Per-Magne-Skuseth/Dates/2014/3/Attribute-based-default-values/
My SourceTree GIT manager was freezing for 5-10 seconds when switching between repositories.
These commands fixed the issue:
$ git config --global core.preloadindex true
$ git config --global core.fscache true
$ git config --global gc.auto 256
Also in combination with adding GIT program folder and SourceTree program folder to excluded paths for Windows Defender (antivirus scanner). The switch between tabs is now instant.
When you are a C# developer and want javascript to be more like C#:
if (!String.prototype.endsWith) { String.prototype.endsWith = function(searchString, position) { var subjectString = this.toString(); if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) { position = subjectString.length; } position -= searchString.length; var lastIndex = subjectString.lastIndexOf(searchString, position); return lastIndex !== -1 && lastIndex === position; }; }
From: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
Other good ones:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
This is a common pattern with jQuery extensions to ensure that they are always added to the jQuery object, but can be written using $ to keep the code tidy:
(function($){
$(function(){
// your code here
});
})(jQuery);
The $ would actually reference the jQuery library inside while still referring to Prototype on the outside! This can help tidy up your code
Source: javascript – Using Self Calling Anonymous Functions and $(document).ready – Stack Overflow
This is where one-time bindings come in. So what are one-time bindings? Let’s just read what the official docs say:One-time expressions will stop recalculating once they are stable, which happens after the first digest…And this is exactly what the Angular world needs to tackle the problems mentioned above. So what does it look like when we want to use one-time binding? Angular 1.3 comes with a new syntax for interpolation directives and expressions in order to tell Angular that this particular interpolated value should be bound one-time.Using this new syntax is as easy as starting an expression with ::. So if we apply the one-time expression to our example above, we change this:Hello {{name}}!To this:Hello {{::name}}!This works for all kind of typical Angular expressions you’re used to use throughout your app. Which means you can use them in ng-repeat expressions or even for directives that expose attributes that set up a two-way binding from the inside out. From the outside you’re able to just feed them with a one-time expression:
Source: One-time bindings in Angular 1.3