Umbraco, Angular
and Typescript
Making typescript a part of the way you work
HELLO
PER
Agenda
Umbraco + angular
Tooling
Benefits
Perspective
MEMEME
MEMEME
MEMEME
Umbraco
package.manifest
{
/views/license.html
/scripts/controller.js
/styles/style.css
}
Server
Browser
{
/views/license.
/scripts/contro
/styles/style.

}
Hello world demo
tooling
automation
testing
optimization
JS Tooling Ecosystem
• Code Editor (Atom,Sublime,Brackets Visual Studio)
• Build system (MsBuild, Grunt, Gulp, Jake, Broccoli)
• Dependencies (Nuget, Bower, npm, tsd)
• Compiler (tsc)
• Scaffolding (yeoman)
• Unit testing (karma, TsUnit, jasmine)
> npm install typescript -g
> tsc file.ts
Future of scripting
My Yeoman workflow
GruntAtom Karma
Grunt-ts
Grunt-tsd
Atom-Typescript
My Yeoman with Typescript workflow
JSvsTS
syntax
angular.module(‘umbraco')
.controller('DriversLicenseEditorController',
['$scope',
function($scope) {
//your code
}
]);
module License.Controllers {
export class LcsController {
static $inject = [‘$scope'];
constructor(private $scope) {
//your code
}
angular.module(‘umbraco')
.controller(‘LicenseController',LcsController);
}
angular.module(‘umbraco')
.directive('someDirective',
[‘$timeout',
function($timeout) {
return {
link: link,
templateUrl: ‘view.html',
restrict: 'EA'
};
function link(scope, element, attrs) {
/* your code */
}
}]);
class MyDirective
{
public link: (scope: ng.IScope,
element: ng.IAugmentedJQuery,
attrs: ng.IAttributes) => void;
public templateUrl = ‘view.html';
constructor(/*list of dependencies*/)
{
this.link = (scope: ng.IScope,
element: ng.IAugmentedJQuery,
attrs: ng.IAttributes) =>
{
/*handle all your linking requirements here*/
};
}
public static Factory()
{
var directive = (/*list of dependencies*/) =>
{
return new MyDirective(/*list of dependencies*/);
};
directive['$inject'] = ['/*list of dependencies*/'];
return directive;
}
}
angular.module(“umbraco”, MyDirective.Factory() );
module Project.Directives
{
export interface IMyScope: ng.IScope
{
name: string;
}
export function MyDirective(): ng.IDirective
{
return {
template: '<div>{{name}}</div>',
scope : {},
link : (scope: IMyScope) =>
{
scope.name = 'Aaron';
}
};
}
angular.module(“umbraco”, MyDirective );
}
Future of scripting
structure
Future of scripting
scope, model interfaces
any => concrete
Future of scripting
definitions
Future of scripting
> npm install tsd -g
> tsd install jquery
> tsd install angularjs
Angular.d.ts
discovery
service discovery
tooling
You all get your
own workflow!
• Code Editor (Atom,Sublime,Brackets Visual Studio)
• Build system (MsBuild, Grunt, Gulp, Jake, Broccoli)
• Dependencies (Nuget, Bower, npm, tsd)
• Compiler (tsc)
• Scaffolding (yeoman)
• Unit testing (karma, TsUnit, jasmine)
perspective
Future of JS now
Angular 2
In developement
Not M$ only
Thanks!
Per Ploug

@pploug - per@umbraco.dk

github.com/perploug
Future of scripting

More Related Content

PDF
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
PDF
Front-end Project Development -- from install, development to production
PPTX
AngularJS with TypeScript and Windows Azure Mobile Services
PPTX
Ionic 2 - Introduction
PDF
Multi modularized project setup with gulp, typescript and angular.js
PPTX
Cross Platform Angular 2 and TypeScript Development
PPTX
The advantage of developing with TypeScript
PPTX
AngularConf2015
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
Front-end Project Development -- from install, development to production
AngularJS with TypeScript and Windows Azure Mobile Services
Ionic 2 - Introduction
Multi modularized project setup with gulp, typescript and angular.js
Cross Platform Angular 2 and TypeScript Development
The advantage of developing with TypeScript
AngularConf2015

Recently uploaded (20)

PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
STKI Israel Market Study 2025 version august
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
Getting Started with Data Integration: FME Form 101
PDF
Architecture types and enterprise applications.pdf
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Hybrid model detection and classification of lung cancer
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PPTX
The various Industrial Revolutions .pptx
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PPT
Module 1.ppt Iot fundamentals and Architecture
PPTX
Modernising the Digital Integration Hub
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
1 - Historical Antecedents, Social Consideration.pdf
A review of recent deep learning applications in wood surface defect identifi...
STKI Israel Market Study 2025 version august
Getting started with AI Agents and Multi-Agent Systems
Getting Started with Data Integration: FME Form 101
Architecture types and enterprise applications.pdf
WOOl fibre morphology and structure.pdf for textiles
Hybrid model detection and classification of lung cancer
NewMind AI Weekly Chronicles – August ’25 Week III
sustainability-14-14877-v2.pddhzftheheeeee
Final SEM Unit 1 for mit wpu at pune .pptx
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
The various Industrial Revolutions .pptx
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Module 1.ppt Iot fundamentals and Architecture
Modernising the Digital Integration Hub
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Hindi spoken digit analysis for native and non-native speakers
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Ad
Ad

Future of scripting