Angular 2 gets rid of controllers

In my previous post I talked about the problems of controllers (both at the back-end and the front-end). The issue is that controllers are too general and tend to become full with mixed logic, especially if the page they control has many UI pieces. So instead of having one controller per page, we can have one controller per component and hence decrease the coupling in one’s code.

Some JavaScript libraries, f.x. React, are designed with the component in the center. In Angular 1.x we have the concepts of a controller and a directive. One can attach a controller to any part of the page or when using a router, a controller is automatically assigned to the view. You can easily remove all usages of controllers on your page simply by moving the code into an appropriate directive. Do not forget that you can also rely on the different types of services in Angular for custom logic.

In Angular 2 the notion of controller is completely removed. You should work with directives only and you can actually choose what kind of a directive you want to use for the specific case:

  • Component directives provide a “static” template with some logic behind. It is the same as a directive with a template and an isolated scope in Angular 1.x
  • Template directives work with a user-defined template. It is similar to a directive with transclude in Angular 1.x
  • Decorator directives add extra functionality to an existing DOM element (see Decorator pattern). It is the same as a directive with no translude, no own scope and no template in Angular 1.x

If you think you will miss the mapping to a controller from the router in Angular 2, you can actually do a mapping to a ComponentDirective instead, but I would still opt for slicing your views into smaller components.

Silverlight Client for Facebook

The Microsoft Silverlight 4 Beta Client for Facebook has been released as a developer preview sample. In order to use it you must have Silverlight 4 developer builds installed. There is a sample application which does the same things you can do when using Facebook web version. There are a lot of cool ways to explore your Facebook information. It supports some kind of Outlook integration – if you right-click on events that you may have to send an email and such.

You can download the application and try it yourself. It can also be intalled on Mac but only if Intel is inside. Enjoy! 🙂

New Json.NET is here – smaller and faster

The latest release of Json.NET has a lot of improvements which make it preferable to other techniques. The team has done really a great job to increase the speed of both serialization and deserialization.

Json.NET is faster than both the JavaScriptSerializer and the WCF DataContractJsonSerializer over all scenarios. It reached the level of the XML based DataContractSerializer which is pretty remarkable. Json.NET over binary (BSON) is considerably faster than the .NET BinaryFormatter, too. Another one of the benefits of JSON is its smaller size when compared to equivalent XML. The output of Json.NET is less than half the size of the XML that DataContractSerializer produces. Read more about these tests on James Newton’s post.

Download the latest release of Json.NET and try it yourself!

Silverlight Write & Win Contest

Silverlight 2 ContestSilverlight Write & Win Contest was carried out for the second time. It is a interesting contest. You only have to write an article about Silverlight (application, control, game, web services, Blend, design, example, problem solution, etc). The first contest was organized by Michael Sync. Now, SilverlightShow take this initiative. They really did a great job in the organization.

I took part in the first edition, so I decided to write an article for this one, too. And I got it! I won the third prize, which looks like this:

  • Telerik – RadControls for ASP.NET AJAX Developer Subscription and Source Code License ($999 value). This license includes all 23 Telerik ASP.NET AJAX controls, a Gold Support Package and free product updates for a period of one year. The winners will also receive complimentary licenses for Telerik RadControls for Silverlight
  • SilverlightShow – $100 in Amazon Gift certificate or cache

Cool, right? The one who get the first prize is Alexey Zakharov with his article – Virtual earth deep zooming.

SilverlightShow announced that they intend to organize another contest, so I am waiting for it.