Skip to main content

AngularJS

AngularJS is an open-source JavaScript framework, maintained by Google. Its goal is to augment browser-based applications with model–view–controller (MVC) capability, in an effort to make both development and testing easier.

Why AngularJS:

HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets to extend HTML vocabulary for the application. The resulting environment is extraordinarily expressive, readable, and quick to develop. AngularJS is a toolset for building the framework most suited to application development. It is fully extensible and works well with other libraries.

Benefits:
  • Uses primitive JavaScript types instead of function wrappers
  • Don't need to write all the event listening and event triggering, loaded with functionality
  • Decouple the client side of an application from the server side. This allows development work to progress in parallel, and allows for reuse of both sides.
  • Decouple DOM manipulation from application logic. This improves the testability of the code.
  • Fast development and makes testing easy and offers many testing tools
  • Out of the box features: Data binding, Data filtering/sorting, Data templates, Ajax support, Form validation, Routing, History support, Deep linking, Modular and reusable components, Loosely coupled architecture (dependency injection), MVC-style applications, Architected with unit testing in mind
  • AngularJS liberates from having to do the following:
    • Register callbacks, Manipulate the DOM programmatically
    • Move data in and out of the UI manually with code
    • Writing a bunch of initialization code just to get started
Liabilities:
  • Need to invest time to understand the DOM and angular syntax properly.
  • Writing directives is not easy. It’s the most complex part of writing Angular code.
  • Form validation framework of angular is not perfect yet. It still needs some tweaks.
  • Clutters the global namespace with every single controller that we add and JavaScript errors happen if we don’t clutter the window object.
Comparison with Backbone.js: Backbone.js is a very lightweight, which means we have to type more, but might be a good fit for a broader spectrum of apps. Backbone allows to structure the JavaScript code in an MVC fashion. AngularJS is way bigger, provides a much higher level of abstraction and is very opinionated on how we should develop an app. It's a complete solution, with testing environment and philosophy behind it that means, building an app is super-fast, but it doesn't have to fit everyone nor every app.
More on http://angularjs.org/

Popular posts from this blog

Error : Task Scheduler - This task requires that the user account specified has Log on as batch job rights

In one of the production environment, we were running with low disk space problem because of the logs. To cleanup the old logs created a  task within the scheduler and have specified "Run whether use is logged on or not". The user account we used was the system logged on user. The task was running fine, after few months as a security policy the password expired. Since the old password expired we had to apply the new password for the task also, but this time we decided to create a new account specifically for the task scheduler with password never expire option. While setting up the new user account and password, run into the below issue: "The task required that the user account specified has log on as batch job rights" To fix the issue follow below steps: From Run type "secpol.msc /s" and enter, the local security policy snap in will open. Select "Local Policies" in MSC snap in Select "User Rights Assignment" Righ...

ISAPI & CGI Restriction configuration missing in IIS

In windows 7 by default ISAPI & CGI Restrictions are not configured. To enable ISAPI & CGI restrictions, GoTo -> Control Panel -> Programs -> Click on "Windows features on or off -> Expand Internet Information Services - >Expand World Wide Web Services ->Select CGI and ISAPI extensions and Click OK. After enabling, Check in IIS, Open your IIS and the feature will be available. What is ISAPI and CGI restrictions : ISAPI and CGI restrictions are request handlers that allow dynamic content to execute on a server. These restrictions are either CGI files (.exe) or ISAPI extensions (.dll). You can add custom ISAPI or CGI restrictions if the IIS configuration system allows this.

Implementing Parallelism With A SearchResultCollection

Implementing Parallel.ForEach with a SearchResultCollection: The below piece of code helps to check the given user is a part of the given active directory group. To implement Parallel.ForEach with a SearchResultCollection, do the casting with the SearchResult object and covert it into a list. //// Directory Searcher var directorySearcher = new DirectorySearcher(string.Format("(CN={0})", groupName)); //// Find group var searchResultCollection = directorySearcher.FindAll().Cast ().ToList(); Parallel.ForEach(searchResultCollection, searchResult => {  // enumerate members  var resultPropColl = searchResult.Properties;  Parallel.ForEach(resultPropColl["member"].Cast ().ToList(), member =>  {    var memberEntry = new DirectoryEntry("LDAP://" + member);    var userProperties = memberEntry.Properties;    if (GetUserNameFromProperties(userProperties, "sAMAccountName") == userName)    {      return true; ...