With the release of Visual Studio 2017 and updates, code refactoring helpers of C# projects are strongly improved and the refactoring activities has become easier. The intellisense has default rules that, normally, are the most used and recommended for the developers, but fortunately we have the ability to change these settings as we prefer. We... Continue Reading →
Manage tables data with AngularJS Part 3: configuring the fields typologies
The last part of this argument is configuring the field typologies of the tables to manage. What you need to do is specify for one or more fields of the table a couple of informations, like the typology of the field (text, number, radio, dropdown) and perhaps a list of values. Also we might want... Continue Reading →
Manage tables data with AngularJS Part 2: nested directives
With the Angular directives you can build reusable components, witch can accept parameters and scope variables, and witch can have customized behaviours. It can be nested and communicate between them with functions and parameters. We can using the directives for implement a dynamic HTML table grid, with dynamics rows and columns. Grid model In order... Continue Reading →
Manage tables data with AngularJS Part 1: tables metadata
During the deployment of an AngularJS app, we often develop controllers and views to manage data of basic tables, such as zip, city, country and so on. We need to offer to the users the CRUD operations of these tables; the functionalities and the structure of these controllers/view are very similar and you need to... Continue Reading →
Compile Typescript with Gulp
Gulp is a build tools that can be used, among other things, as a Typescript compiler and sourcemaps generator. As you know, Typescript is a superset of Javascript which offer you static typing, classes, interfaces; Sourcemaps are additional files that allow you to debug, from the browser debugger, source files (typescript files) instead of Javascript... Continue Reading →
Using Gulp in an ASP.NET 4.5 application
The use of a task runner in an ASP.NET application provide a series of advantages about concatenating and minifying CSS and Javascript application files and offers a real and valid alternative to the ASP.NET optimization framework. One of the most recent task runner is Gulp, that using code over configuration for more readable syntax and node... Continue Reading →
Scaling out a SignalR application
There are several ways to scale a SignalR web application, such as Redis, SQL Server and Azure Service Bus. To configure an Azure Service Bus on an existing application, two configurations are required in the Azure Management Portal, an Azure Cloud Service (if not exist) and an Azure Service Bus. Cloud Service The Cloud Service configuration require a... Continue Reading →
ASP.NET SignalR and TypeScript in an AngularJS SPA
SignalR is a javascript library for helping developers to add real-time functionalities to web applications. This example is a Angular SPA developed using Typescript, to take advantage of Object Oriented features in the client-side code development. This application has a simple orders list, that every user can manage; every time a user make a change... Continue Reading →
Using ASP.NET Session State Provider with Azure Redis Cache
One of the possible configurations of the ASP.NET Session State Provider is using Azure Redis Cache. The steps to follow are editing the web.config file, creating the session helper class and customization of the ASP.NET Identity SignInManager. The web.config configuration is very simple: Then, the next step is implement the session helper class that contains... Continue Reading →
Improve performance of a recursive method with Redis
Recursive method are very useful to process for example, parent/child relations and build organization trees. But for complex trees is very frequently to encounter performance problems, specially if the tree is build for every request. In my case, the hierarchical tree is composed on two sql table (node and relations); the problem was that with a large... Continue Reading →