Sunteți pe pagina 1din 35

6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev

Angular2:AGuidefor
Beginners
(/users/999973/juristr.html)by

JuriStrumpflohner(/users/999973/juristr.html)
Jun.07,16WebDevZone(/webdevelopmentprogrammingtutorialstools
news)

Like(17) Comment(0) Save Tweet 9,142Views

Easilybuildpowerfulusermanagement,authentication,andauthorization
intoyourwebandmobileapplications.DownloadthisForresterreport
(/go?i=124040&u=http%3A%2F%2Fgo.stormpath.com%2Fforrester
customeridentityaccessmanagement
stormpath%3Futm_source%3Ddzone%26utm_medium%3Dpre
text%26utm_content%3Dforrester%26utm_campaign%3Dwebdev
2016)onthenewlandscapeofCustomerIdentityandAccessManagement,
broughttoyouinpartnershipwithStormpath(/go?
i=124040&u=http%3A%2F%2Fgo.stormpath.com%2Fforrestercustomer
identityaccessmanagement
stormpath%3Futm_source%3Ddzone%26utm_medium%3Dpre
text%26utm_content%3Dforrester%26utm_campaign%3Dwebdev2016).

Forabouthalfayear,I'vebeenorganizingalocalMeetupgrouparound
SoftwareCraftsmanship(http://www.meetup.com/Software
CraftsmanshipSouthTyrol/).Irecentlyalsopublishedavideocourseon
"LearningAngular2Directives"
(http://juristr.com/blog/2016/04/learningangular2directivescourse/)
andgiventhatAngular2finallyreleasedRC1,Idecidedtoorganizea
MeetupsessiontointroduceAngular2toourmembers.
(https://docs.google.com/presentation/d/1sgIjSzDVrc2VDpQr6OGZ7rP
GMnSV_TSvLFDVvGi3yB0/edit?usp=sharing)
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 1/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
GMnSV_TSvLFDVvGi3yB0/edit?usp=sharing)

Clicktogetaccesstotheslides
(https://docs.google.com/presentation/d/1sgIjSzDVrc2VDpQr6OGZ7rPGMnSV_TSv
LFDVvGi3yB0/edit?usp=sharing)

Intro
ThisarticleisforthoseofyouwhoarenewtoAngular2oreventoweb
developmentingeneral.Here,Imgoingtogiveyouagoodoverviewof
whatAngular2isallabout,highlightingsomeofthemainconcepts
behind.Theideaistogiveyouagoodstartingpoint.

IfyoudidalreadysomecodingexamplesinAngular2,thenImprobably
goingtoboreyou.

ButmaybeyouwanttodivedeeperwithmyLearningAngular2
Directivesvideocourse(http://juristr.com/blog/2016/06/ng2getting
startedforbeginners/)Irecentlypublished.

BigPicture
Heresasimpleclassificationoftodayswebapplicationarchitectures.
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 2/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev

Inserversiderenderedapplications,mostoftheapplicationslogic
residesandremainsontheserver.TheuserbasicallyenterstheURL,the
requestgetssenttotheserver,whichthenproducesthefinalHTML
containingtherequesteddataandsendsthatbacktothebrowserwhich
simplyrendersitout.Whentheuserinteractswiththepage,thatrequest
againgetssenttotheserver,whichinturngeneratesanewHTMLpage
andservesitbacktothebrowser.
(http://juristr.com/blog/assets/imgs/meetupintroangular2/server
siderendering.png)

(http://juristr.com/blog/assets/imgs/meetupintroangular2/server
siderendering.png)
Thisishowthewebhasbeendesigned,aperfectlyvalidmodelthatmany
pagesstillusetoday.

Butmodernwebpagesareoftenrequiredtoworkmorelikeapplications
doonthedesktop.Peopledemandamuchbetteruserexperience,more
interactivity,fasttransitionsbetweenpagesandevenoffline
capabilities.ThatswherethesocalledSPAs(SinglePageApplications)
comeintoplay.

WhentheuserenterstheURL,thewebserverrespondswithanHTML
page,butalsowithasetofresources(JavaScriptfilesandimages)that
makeupourclientsideapplication.Thebrowserreceivesthat,loadsthe
JavaScriptapplicationandbootsit.Nowitsthejobofthatapplication
todynamicallygeneratetheuserinterface(HTML)basedonthedata,
rightfromwithinthebrowser.Afterthathappens,everynewuseraction
doesntreloadtheentirewebsiteagain,butratherthedataforthat
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 3/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
doesntreloadtheentirewebsiteagain,butratherthedataforthat
specificuserinteractionissenttotheserver(usuallybyusingtheJSON
format)andtheserver,inturn,respondswithonlythedatarequestedby
theJavaScriptclient,againusingJSON(normally).TheJavaScript
applicationgetsthedata,parsesitanddynamicallygeneratesHTML
codewhichisshowntotheuser.

(http://juristr.com/blog/assets/imgs/meetupintroangular2/client
siderendering.png)
Asyoucansee,theamountofdatathatisbeingexchangedisoptimized.
However,abigdownsideofsuchtypeofapplicationsisthatthestartup
timeisusuallymuchlonger.Youmightalreadyhavefiguredwhy:The
browserdoesntgettheHTMLcodetoshow,butratherabunchof
JavaScriptfilesthatneedtobeinterpretedandexecuted,whichthen
generatesthefinalHTMLtobeshowntotheuser.

I'dliketoshowyousomeexamplesofthethirdtypeofwebapplication
Idliketoshowyou.Asyoumightguess,itaimsattakingthebestofthe
serversiderenderedwebappsandSPAs.

Inanutshell,whentheuserenterstheURL,theserverloadsthe
JavaScriptapplicationontheserverside,bootsitupandthendelivers
thealready(bytheJavaScriptapp)prerenderedHTMLplusthe
JavaScriptappitselfbacktotheclient.There,thebrowserinterpretsthe
JSappandrunsit,whichhastobeintelligentenoughtoresumewhere
theserverhasleftoff.

Theadvantageisobvious:Yougetfaststartuptimesandthebenefitofa
SPAasmentionedbefore.
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 4/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
SPAasmentionedbefore.

WhyAngular2?WhatsDifferent?
Ok,letsgettothemeat.WhyshouldyoubeinterestedinAngular2?
HereareacoupleofthingsIpickedupmainlyfromBradGreen
(https://twitter.com/bradlygreen)andothercorememberstalksfroma
coupleofthelatestconferences.

(http://juristr.com/blog/assets/imgs/meetupintroangular2/angular2
platform.jpeg)
AthiskeynoteatNgConf2016(https://www.youtube.com/watch?
v=gdlpE9vPQFs),BradGreennamedAngular2aplatformrather
thanalibraryorframework.Themainreasonisthatitissplitupinto
modularpiecesbuiltuponeachother,someofwhichcanevenbeused
outsidetheAngularecosystem.

Therearesomebuildingblocks,likethedependencyinjection,decorator
support,zone.js(https://github.com/angular/zone.js/)(whichcanbe
usedcompletelyindependentlyfromAngularandiscurrentlyunder
discussionatstage0atTC39
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 5/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
discussionatstage0atTC39
(https://github.com/tc39/proposals/blob/master/stage0proposals.md)
forbeingincludedintheECMAstandard),acompilationservice,change
detection,andarenderingengine(whichisplatformindependent).On
topofthat,thereareotherlibrariessuchasAngularMaterial
(https://github.com/angular/material2)(aUIlibrarywithmaterial
designsupport),mobile(https://mobile.angular.io/),andUniversal
(https://universal.angular.io/),etc.

Thereareevenmodulessuchasi18n,therouter,andanimationthatcan
beusedfromwithinAngular1.xaswell.

Extremelyfast!
Angular2isdesignedtobeextremelyfast.Well,everynewJSlibrary
wouldprobablyclaimthat,buttherearesomedifferencesinthe
approachAngular2istaking.

Firstofall,theyrecurrentlyworkingonasocalledtemplatecompiler
orofflinecompiler."ManyJavaScriptfrontendframeworksbasically
renderthetemplatesdynamicallyintothebrowsersDOMatruntime,
whichrequiresatemplatingengineofsomekind.Angular2templates
andcomponentsaremadeinawaythatAngular2isabletoreason
aboutyourappstemplatesandisabletogenerateanAST
(https://en.wikipedia.org/wiki/Abstract_syntax_tree)andconsequently
totranslatethemintopureJavaScriptatcompiletime.Thisishuge.

(http://juristr.com/blog/assets/imgs/meetupintro
angular2/templatecompiler.png)
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 6/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev

angular2/templatecompiler.png)

Asaresult,yourdeployedappdoesntrequireanytemplatingengineto
run,butitrathercontainshighlyoptimizedJavaScriptcodefordirectly
manipulatingtheDOM.Thatssuperfastand,moreover,theresulting
Angular2librarygetsalotsmaller,asyoudontneeditstemplating
engineanymorewhenyoudeployinproduction.

Andthatleadsustothenextpart.

Small!
Thelibrarygetsreally,reallysmall.

@John_Papa
(https://twitter.com/John_Papa)@arhoads76
(https://twitter.com/arhoads76)@DanWahlin
(https://twitter.com/DanWahlin)Ibelievecurrent
numbersaresomethinglike49KviaRollupand25K
viajscompiler.

BradGreen(@bradlygreen)May31,2016
(https://twitter.com/bradlygreen/status/737700486673
891328)

Bybeingabletostripoutuselessparts,alotcanbedroppedwhen
deployinginproduction.Furthermore,thegoalistouseabundlerthat
supportstreeshakingandthusreducesthesizeofthefinalcompiledJS
filesevenmorebyeliminatingeverythingthatisnotactivelybeingused
withinyourapplication.Frankly,ifyoudontusetheroutingmoduleof
Angular,itsimplywontgetincludedinyourfinalapp.

https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 7/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev

(http://juristr.com/blog/assets/imgs/meetupintro
angular2/angular2size.png)

Treeshakingisbasicallydeadcodeelimination.
ByanalyzingwhichJavaScriptmodulesareused
andwhicharent,compilersthatsupportsuch
approachcaneliminatetheunusedpartsandthus
produceamuchmoreoptimizedandsmallerbundle.
ObviouslyapropermodulesystemsuchasES2015
moduleshastobeusedforthistowork.

BuiltInLazyLoading
Finally!LazyloadinghasbeenahottopicforAngular1.xandmanyother
frameworks.Whenyoubuildaseriousapplication,itmightgetquitebig
prettyquick.Thatsaid,youcannotforceyouruserstodownload
megabytesovermegabytesjusttogetyourappbootedup,especiallyon
flakyInternetconnectionsormobiles.Thatswhylazyloadingneedstobe
implemented.Theideaistoloadonlythosepartstheusersmostheavily
useandloadotherpartsondemandwhenneeded.Thiswasparticularly
hardinAngular1.ocLazyLoad(https://oclazyload.readme.io/)beingone
possibilitytoachievethis.

NowwithAngular2thisisfinallybuiltinrightfromthebeginning,
throughtheframeworksrouterandsocalledlazyroutes.

https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 8/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev

(http://juristr.com/blog/assets/imgs/meetupintro
angular2/lazyloading.png)Unfortunately,therouterhasbeenrewritten
andthustherearenodocsatthemoment
(https://angular.io/docs/ts/latest/guide/router.html).Itshouldbe
availableshortly.Tillthen,youmaywanttogivethisvideoago,where
MiskoHeveryexplainsit.

9/35 Routing - Misko Hevery

AngularUniversal
ThisisAngular2sanswertoisomorphicJavaScriptorserversidepre
rendering.Again,itsallaboutperformance,togettheapptotheuseras
quicklyaspossible.(http://juristr.com/blog/assets/imgs/meetup
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 9/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
quicklyaspossible.(http://juristr.com/blog/assets/imgs/meetup
introangular2/angularuniversal.png)

(http://juristr.com/blog/assets/imgs/meetupintroangular2/angular
universal.png)
Angularuniversal(https://universal.angular.io/)isalibrarythatlives
undertheAngular2GitHubrepositorywiththegoalofmakingserver
siderenderingaseasyandstraightforwardaspossible.SinceAngular2is
madetobeplatformagnostic,itcanbeexecutedinnonbrowser
environmentswithoutmanyissues.

So,whenloadingauniversalAngular2app,fromahighlevel
perspective,here'swhathappens:

1.YouruseropensyouruniversalAngularapp,perhapsalsoinvokinga
clientsideroutelike http://myuniversalapp.io/people/detail/1
2.Someangularuniversalcompatibleservergetstherequest,knowsit
isaclientsiderouteandthusbootstheAngular2rootcomponent
(usually app.component.ts )ontheserversideandexecutesit.
3.Theserverthendeliversthealreadyrenderedapplicationstateof
thatinvokedclientrouteinside index.html backtothebrowser.
4.ThebrowserrenderstheHTML,sotheuserwillseethepersonwith
id1renderedimmediately(asitisalreadypresentintheHTML)
5.MeanwhiletheAngular2appbootsagain,butthistimeonthe
clientside(thebrowser)inthebackground(inahiddendiv,
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 10/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
clientside(thebrowser)inthebackground(inahiddendiv,
basically).Alibrary, preboot.js ,recordsalluserevents,likeclicksand
inputchanges,untilAngular2isfullyloaded.
6.WhentheAngular2appisready,itwillhavethesamerendered
stateastheserverhasdeliveredpreviously. preboot thenreplaysall
oftheusereventsagainstthatclientsiderenderedapp.
7.Finally,theclientsiderenderedappgetsactivatedandtheserver
renderedHTMLisdropped.

Thatwasfromabird'seyeperspective,butyougettheidea.Agoodplace
formoredetailsisthequickstartguide
(https://universal.angular.io/quickstart/).Also,theuniversalstarter
repository(https://github.com/angular/universalstarter)hassomegood
examplestoplayaroundwith.

Currently,theangularuniversalsupportedserverframeworksareNode
(/) andASP.net.ButsupportforJava,Go,andPHPistheworks.

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev
UnifiedDevelopment
1 SomethingImparticularlyexcitedaboutishavingaunifieddevelopment
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)

model.

(/articles/jquery30outnow)

VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend
toolingseriesintrod)

3 Top5ReasonsTo
ChoosePHPforWeb
DevelopmentProject
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1)

4 Angular2:AGuidefor
Beginners
(/articles/angular2agettingstarted
guideforbeginners)

5 Understandingthe
MiddlewarePatternin (http://juristr.com/blog/assets/imgs/meetupintroangular2/angular
Express.js
(/articles/understandingmiddleware lovesmobile.png)Youcanchooseamongfourdifferentpossibilities
patterninexpressjs) fordevelopingmobileapplicationswithAngular2.
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 11/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
patterninexpressjs) fordevelopingmobileapplicationswithAngular2.
6 What'sTJ'sStack AngularMobileToolkit(https://mobile.angular.io)focuses
TheseDays? mostlyonanewarchitecturalapproachforcreatingwebapplications:
(/articles/whatstjsstackthesedays)
ProgressiveWebApps(PWA).Thesearenormalwebapplicationsthat
7 TriggeringaClient facilitatemodernwebtechnologieslikeserviceworkersforoffline
CacheRefresh
cachingandaspecial(nonstandardrightnow)manifestfilethat
(/articles/triggeringaclientcache
refresh) instructsChrometoprovideinstallationlikecapabilitiesfortheapp.It
canbeaddedontoyourhomescreen.Evenbetter,GoogleI/O2016was
8 ReducingYourBreach
Risk allaboutPWAdevelopment.JustcheckoutsomeofthetalksonYoutube
(/articles/reducingyourbreachrisk) (https://www.youtube.com/results?
search_query=google+Io+2016+progressive+web+app).Also,
9 WhyPython?What'sit
GoodFor?Howisit JavaScriptAirslatesttalkonitmightberelevant
(https://javascriptair.com/episodes/20160525/).
(/)

Ionic2(http://ionic.io/2)isahybridmobileapplicationframework.
/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev
Thatjustmeansyoubuildawebapplicationandpackageitinanative
1 installablepackageforiOSandAndroid,whichcanbeinstalledthrough
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)
thecorrespondingappstores.TheappitselfisservedthroughaWebView

(/articles/jquery30outnow)
component,whichmeansyourerunningawebapplicationintheend.
VisualStudio2015
2REFCARDZ(/REFCARDZ) AccesstounderlyingAPIsisachievedthroughApacheCordova
GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction (https://cordova.apache.org/).Ionicspecializesinprovidingyouthe
CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend toolsforsetupandbuildingthenativeapppackages.Moreover,itgives
toolingseriesintrod)
youahighlytunedUIframeworkandmobileroutingsupport.They
3 Top5ReasonsTo recentlyalsoannouncedfuturesupportforPWAs,soitllbequite
ChoosePHPforWeb
DevelopmentProject interestingtoseeitevolve.
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1) NativeScript(https://www.nativescript.org/)isaframework
developedbyTelerik.DifferentfromIonic,itcompilestoanative
4 Angular2:AGuidefor
Beginners application.Actually,yourJavaScriptcodeisbeingexecutedthrougha
(/articles/angular2agettingstarted specialJavaScriptVM,likeChromesV8,whichbuildsthebridgetothe
guideforbeginners)
underlyingnativeplatform.Butanyway,takealookatthisvideowith
5 Understandingthe JohnPapa,BurkeHollandandTJVanTollshowingoffsomeNativeScript
MiddlewarePatternin
Express.js
capabilities(https://www.youtube.com/watch?v=efk_oeI58hc).
(/articles/understandingmiddleware
patterninexpressjs) ReactNative(https://facebook.github.io/reactnative/)It's
evenpossibletouseReactNativewithAngular2.Unfortunately,I
6 What'sTJ'sStack
TheseDays? haven'tdoneanythingwithityet,soyoumaywanttobrowsethewebfor
(/articles/whatstjsstackthesedays) itifyoureparticularlyinterestedinthisone.
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 12/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
(/articles/whatstjsstackthesedays) itifyoureparticularlyinterestedinthisone.

7 TriggeringaClient
CacheRefresh InstalledDesktop
(/articles/triggeringaclientcache
Whentalkingaboutinstalleddesktopwedontmeanlikerunningan
refresh)
Angular2apponadesktopbrowser,butrathertorunitinsidean
8 ReducingYourBreach installableapplication.ThisispoweredbyElectron
Risk
(/articles/reducingyourbreachrisk)
(http://electron.atom.io)andWindowsUniversal(UWP)
(https://developer.microsoft.com/enUS/windows/develop/buildapps
9 WhyPython?What'sit
sharedcode).WatchwhatBradGreenhadtosayaboutitatNGConf
GoodFor?Howisit
2016(https://youtu.be/gdlpE9vPQFs?t=21m).
(/)

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev

1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)


(/articles/jquery30outnow)

VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend
toolingseriesintrod)

3 Top5ReasonsTo
ChoosePHPforWeb (http://juristr.com/blog/assets/imgs/meetupintro
DevelopmentProject
(/articles/top5reasonstochoose
angular2/installeddesktop.png)
phpforwebdevelopmentpr1) Averyimportantpointherethatseasytomiss:ByrunningAngular2
Angular2:AGuidefor directlyfromwithinawebworker,notonlyyougetanenormous
4
Beginners performanceboost,asitrunsinaseparatethread,butyoualsogetaccess
(/articles/angular2agettingstarted totheunderlyingplatform,databasesetc..
guideforbeginners)

Understandingthe Notconvinced?Well,chancesareyourealreadyusinganElectronapp,
5
MiddlewarePatternin likeVSCode(https://code.visualstudio.com/),orSlack
Express.js
(/articles/understandingmiddleware (https://slack.com/)orsomeofthese:
patterninexpressjs) (http://juristr.com/blog/assets/imgs/meetupintro
What'sTJ'sStack
angular2/electronapps.gif)
6
TheseDays?
(/articles/whatstjsstackthesedays)

7 TriggeringaClient
CacheRefresh
(/articles/triggeringaclientcache
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 13/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
(/articles/triggeringaclientcache
refresh)

8 ReducingYourBreach
Risk
(/articles/reducingyourbreachrisk)

9 WhyPython?What'sit
GoodFor?Howisit

(/)

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev

1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)
(http://juristr.com/blog/assets/imgs/meetupintro

(/articles/jquery30outnow)
angular2/electronapps.gif)
VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
The7KeyConceptsbehindAngular2
ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
Series:Introduction
(/articles/visualstudio2015frontend AtNGConf2016,JohnPapahadaslideinhistalk
toolingseriesintrod)
(https://youtu.be/WAPQF_GA7Qg?t=1m25s)describingtheseven
3 Top5ReasonsTo mainkeyconceptsbehindAngular2.Thesereallynailit.
ChoosePHPforWeb (http://juristr.com/blog/assets/imgs/meetupintroangular2/seven
DevelopmentProject
(/articles/top5reasonstochoose conceptsng2.png)
phpforwebdevelopmentpr1)

4 Angular2:AGuidefor
Beginners
(/articles/angular2agettingstarted
guideforbeginners)

5 Understandingthe
MiddlewarePatternin
Express.js
(/articles/understandingmiddleware
patterninexpressjs)

6 What'sTJ'sStack
TheseDays?
(/articles/whatstjsstackthesedays)

7 TriggeringaClient
CacheRefresh (http://juristr.com/blog/assets/imgs/meetupintroangular2/seven
(/articles/triggeringaclientcache conceptsng2.png)
refresh)

8 ReducingYourBreach ModulesandtheES2015story
Risk
Ok,atthispointIshouldprobablystop,andweshouldtakeabroader
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 14/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
Risk
Ok,atthispointIshouldprobablystop,andweshouldtakeabroader
(/articles/reducingyourbreachrisk)
lookatwhatmodulesareallabout.
9 WhyPython?What'sit
GoodFor?Howisit Initiallyinwebdevelopment,youmostlikelydidsomethinglikethis:

(/) 1

<html>
/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev
2
1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)
<head>...</head>


(/articles/jquery30outnow)
3
VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
4
(/articles/visualstudio2015frontend
toolingseriesintrod) <body>

3 Top5ReasonsTo 5
ChoosePHPforWeb
DevelopmentProject
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1) 6

<scriptsrc="./vendor/jquery.min.js"></script>
4 Angular2:AGuidefor
Beginners 7
(/articles/angular2agettingstarted
guideforbeginners) <scriptsrc="./vendor/superawesomedatepicker.min.js"></script>

Understandingthe 8
5
MiddlewarePatternin <scriptsrc="./myapp.js"></script>
Express.js
(/articles/understandingmiddleware
9
patterninexpressjs)
</body>
6 What'sTJ'sStack
TheseDays? 10
(/articles/whatstjsstackthesedays) </html>

7 TriggeringaClient
CacheRefresh
(/articles/triggeringaclientcache
refresh)

8 ReducingYourBreach
Risk
(/articles/reducingyourbreachrisk)

9 WhyPython?What'sit
GoodFor?Howisit
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 15/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
GoodFor?Howisit

(/)
YousimplyincludetherequiredJavaScriptfilesinthecorrectorder.
/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev Withinyour myapp.js youmighthave:
1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! 1 (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)

functioninitDatePicker(someDateValue){

(/articles/jquery30outnow)

2
VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling $('#myBirthDateInput').superAwesomeDatePicker({
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend 3
toolingseriesintrod)
value:moment(someDateValue)

3 Top5ReasonsTo
ChoosePHPforWeb 4
DevelopmentProject
});
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1)
5

4 Angular2:AGuidefor }
Beginners
(/articles/angular2agettingstarted
guideforbeginners)

5 Understandingthe
MiddlewarePatternin
Express.js
(/articles/understandingmiddleware
patterninexpressjs)
Acoupleofthingstonotehere.Werelyonglobalstateandlibrariesto
6 What'sTJ'sStack beloaded,like $ forjQueryand moment and superAwesomeDatePicker .These
TheseDays? librariesneedtobepresentatthemomentthisfunctionisexecuted.
(/articles/whatstjsstackthesedays)
Meaningyouhavetoloadallofthescriptsintherightorderbasedon
7 TriggeringaClient theirrespectivedependencies.Thisissimplynotfeasibleforlargescale
CacheRefresh
applicationswithhundredsofdifferentJavaScriptfiles.Thatswhy
(/articles/triggeringaclientcache
refresh) modulesystemshavebeencreated,liketheAMDstandard
implementedbyforexampleRequireJS:
8 ReducingYourBreach
Risk 1
(/articles/reducingyourbreachrisk) define(['jquery','moment'],function($,moment){

9 WhyPython?What'sit
2
GoodFor?Howisit
functioninitDatePicker(someDateValue){
(/)
3

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev $('#myBirthDateInput').superAwesomeDatePicker({
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 16/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev $('#myBirthDateInput').superAwesomeDatePicker({

1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! 4
(/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)


(/articles/jquery30outnow)
value:moment(someDateValue);

VisualStudio2015 5
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling });
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend
6
toolingseriesintrod)
}
3 Top5ReasonsTo
ChoosePHPforWeb 7
DevelopmentProject
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1)
8

4 Angular2:AGuidefor returninitDatePicker;
Beginners
(/articles/angular2agettingstarted 9
guideforbeginners)
});

5 Understandingthe
MiddlewarePatternin
Express.js
(/articles/understandingmiddleware
patterninexpressjs)

6 What'sTJ'sStack
TheseDays?
(/articles/whatstjsstackthesedays)

7 TriggeringaClient
CacheRefresh
(/articles/triggeringaclientcache Note,wenowhaveimportswheredependenciescalled jquery and moment
refresh) getdefinedsomewhereandimportedas $ and moment insidethisspecific
ReducingYourBreach file.Inturn,functionalitywithinthisfilegetsexportedwith return
8
Risk initDatePicker .Itcanbeimportedbyotherfilesintheexactsameway.And
(/articles/reducingyourbreachrisk) soon.

9 WhyPython?What'sit
GoodFor?Howisit
Thisworked,butitwasntalwaysideal.Orbetter,therehavebeen
differentpatternsaroundandtheywerentalwaysthatnicelycompatible
(/)
andinterchangeable.WithES6orES2015,theTC39(thecommittee

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev decidingoverthenextECMAScriptfeaturestobeimplementedby
browsers)finallyspecifiedastandardsyntaxfordefiningJavaScript
1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow!
modules.
(/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)


(/articles/jquery30outnow)
1
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 17/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev

(/articles/jquery30outnow) 1

VisualStudio2015 import*as$from'jquery';
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
2
(/articles/visualstudio2015frontend
import*asmomentfrom'moment/moment';
toolingseriesintrod)

3
3 Top5ReasonsTo
ChoosePHPforWeb
DevelopmentProject
(/articles/top5reasonstochoose 4
phpforwebdevelopmentpr1)
functioninitDatePicker(someDateValue){
4 Angular2:AGuidefor
Beginners 5
(/articles/angular2agettingstarted $('#myBirthDateInput').superAwesomeDatePicker({
guideforbeginners)
6
5 Understandingthe
MiddlewarePatternin value:moment(someDateValue)
Express.js
(/articles/understandingmiddleware 7
patterninexpressjs)
});

6 What'sTJ'sStack
8
TheseDays?
(/articles/whatstjsstackthesedays) }

7 TriggeringaClient 9
CacheRefresh
(/articles/triggeringaclientcache
refresh) 10

ReducingYourBreach exportinitDatePicker;
8
Risk
(/articles/reducingyourbreachrisk)

9 WhyPython?What'sit
GoodFor?Howisit

(/)

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev

1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)


(/articles/jquery30outnow)
Amuchmoreclearandexpressivesyntax.
VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
Anothernotablefeaturethatmanydeveloperscomingfromlanguages
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
likeJavaorC#maylikeareclassesandinheritance:
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 18/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
Series:Introduction likeJavaorC#maylikeareclassesandinheritance:
(/articles/visualstudio2015frontend
toolingseriesintrod) 1

Top5ReasonsTo classMyApp{
3
ChoosePHPforWeb
DevelopmentProject 2
(/articles/top5reasonstochoose
_someDateValue;
phpforwebdevelopmentpr1)
3
4 Angular2:AGuidefor
Beginners
(/articles/angular2agettingstarted
guideforbeginners) 4

constructor(someDateValue){
5 Understandingthe
MiddlewarePatternin
5
Express.js
(/articles/understandingmiddleware this._someDateValue=someDateValue;
patterninexpressjs)
6
6 What'sTJ'sStack
TheseDays? }

(/articles/whatstjsstackthesedays)
7

7 TriggeringaClient
CacheRefresh
(/articles/triggeringaclientcache 8
refresh)
getsomeDateValue(){

8 ReducingYourBreach
9
Risk
(/articles/reducingyourbreachrisk) returnthis._someDateValue;

9 WhyPython?What'sit 10
GoodFor?Howisit
}

(/)
11

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev

1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! 12 (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)
setsomeDateValue(value){

(/articles/jquery30outnow)

13
VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling this._someDatevalue=value;
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend 14
toolingseriesintrod)
}

3 Top5ReasonsTo
15
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 19/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
3 Top5ReasonsTo
ChoosePHPforWeb 15
DevelopmentProject
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1) 16

Angular2:AGuidefor staticsomeStaticFunction(){...}
4
Beginners
(/articles/angular2agettingstarted 17
guideforbeginners) }

5 Understandingthe
MiddlewarePatternin
Express.js
(/articles/understandingmiddleware
patterninexpressjs)

6 What'sTJ'sStack
TheseDays?
(/articles/whatstjsstackthesedays)

7 TriggeringaClient
CacheRefresh
(/articles/triggeringaclientcache
refresh)

8 ReducingYourBreach
Risk
(/articles/reducingyourbreachrisk)

9 WhyPython?What'sit Finally,anotherconstructweneedtolearnabouttounderstandAngular
GoodFor?Howisit 2appsaredecorators.

(/) 1

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
@DebugLog({
DZoneWeekly:WebDev
2
1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)
...

(/articles/jquery30outnow)
3
VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) })| AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
4
(/articles/visualstudio2015frontend
toolingseriesintrod) exportclassMyApp{...}

3 Top5ReasonsTo
ChoosePHPforWeb
DevelopmentProject
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1)
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 20/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev

4 Angular2:AGuidefor
Beginners Thesesimplyprovidemetadatatotheunderlyingframework,inthiscase
(/articles/angular2agettingstarted Angular,abouttheclass.Thereiscurrentlyaproposalfordecorator
guideforbeginners)
supportinECMAScript.Also,despitewhatsomemaythink,decorators
5 Understandingthe arenotannotationsinJavaScript.
MiddlewarePatternin
Express.js
(/articles/understandingmiddleware Annotationsanddecoratorsaretwocompetingand
patterninexpressjs)
incompatiblewaystocompilethe@symbolsthat
6 What'sTJ'sStack weoftenseeattachedtoAngularcomponents.
TheseDays? Annotationscreatean"annotations"array.
(/articles/whatstjsstackthesedays) Decoratorsarefunctionsthatreceivethedecorated
objectandcanmakeanychangestoittheylike.
7 TriggeringaClient
CacheRefresh Traceurgivesusannotations.TypeScriptgivesus
(/articles/triggeringaclientcache decorators.Angular2supportsboth.
refresh) nicholasjohnsom.com
(http://nicholasjohnson.com/blog/annotationsvs
8 ReducingYourBreach
Risk
decorators/)
(/articles/reducingyourbreachrisk)

9 WhyPython?What'sit
GoodFor?Howisit Also,checkoutthearticleonThoughtramonthistopic
(http://blog.thoughtram.io/angular/2015/05/03/thedifference
(/)
betweenannotationsanddecorators.html).
/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev
So,canIuseallofthisinthebrowserrightnow?No,
1 unfortunatelynot.Whatyouneedisacompilerortranspiler.Currently,
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)

Babel(https://babeljs.io/)andTypeScript

(/articles/jquery30outnow)
(https://www.typescriptlang.org/)arethemostpopularones.
VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling TheAngularteamdecidedtogowithTypeScriptandhaswrittenits
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend entirecodebasewithit.TypeScriptwascreatedbyMicrosoftin2010,
toolingseriesintrod) goingpublicin2012.ButitreallykickedoffonlyrecentlywithAngular2.
Top5ReasonsTo Themaindifferencetoothertranspilersisthatitaddsoptionaltype
3
ChoosePHPforWeb supporttoJavaScript.Firstofall,thishelpsdiscoverandpreventnasty
DevelopmentProject
(/articles/top5reasonstochoose errorsatcompiletimeandopensupnumerouspossibilitiesforbetter
phpforwebdevelopmentpr1) toolingsupport.

4 Angular2:AGuidefor
Beginners
(/articles/angular2agettingstarted
guideforbeginners)
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 21/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
guideforbeginners)

5 Understandingthe
MiddlewarePatternin
Express.js
(/articles/understandingmiddleware
patterninexpressjs)

6 What'sTJ'sStack
TheseDays?
(/articles/whatstjsstackthesedays)

7 TriggeringaClient
CacheRefresh
(/articles/triggeringaclientcache
refresh)
(http://juristr.com/blog/assets/imgs/meetupintro
8 ReducingYourBreach
Risk angular2/typescriptdemo.gif)
(/articles/reducingyourbreachrisk) OK,wait,howisthisrelevantforAngular2?Angular2iswritten

9 WhyPython?What'sit entirelyinTypeScript,andwhileitsnotimpossibletowriteAngular2
GoodFor?Howisit applicationsinES5,itishighlyrecommendedtowritetheminES6or

(/) TypeScripttogetthebestoutofit.Thiswayyoucanstartusingallof
thementionedfeaturesonmodules,classes,decorators,andmuchmore
/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev wedidntevencover.
1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)
Longstoryshort,youshouldgetaccustomedtothenewfeaturesof

(/articles/jquery30outnow)
ES2015.Browsetheweborcheckoutmyarticle
(http://juristr.com/blog/2015/08/jumpstartes2015/),whichgivesyou
VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
aquickintroandlinkstomanyotherusefulresources.
FrontEndTooling
Series:Introduction
(/articles/visualstudio2015frontend
toolingseriesintrod) <(web)components>
Componentbasedarchitecturesarethenewparadigmforfrontend
3 Top5ReasonsTo
ChoosePHPforWeb development.ThisisnotsomethingparticulartoAngular,butit's
DevelopmentProject somethingthatssharedamongotherlibrarieslikeReact,Ember,or
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1) Polymer.Theideaistobuildautonomouspieceswithclearlydefined
responsibilitiesthatmightevenbereusableacrossmultipleapplications.
4 Angular2:AGuidefor
Beginners
Sowhatarewebcomponentsabout?Roughlyspeaking,itsabout
(/articles/angular2agettingstarted
guideforbeginners) definingcustomHTMLtagsandtheircorrespondingbehavior.
1
5 Understandingthe
MiddlewarePatternin <googlemappointer="46.471089,11.332816"></googlemap>
Express.js
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 22/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
Express.js
(/articles/understandingmiddleware
patterninexpressjs)

6 What'sTJ'sStack
TheseDays? Itsapowerfulwaytoexpresssemantics,isntit?Bysimplylookingat
(/articles/whatstjsstackthesedays) thisHTMLtag,weknowthatitllrenderaGooglemapandsetapointer
TriggeringaClient
atthegivencoordinates.Neat!Currently,thisisntsomethingthe
7
CacheRefresh browserunderstandsnatively,althoughtheresadraftspecdocumenton
(/articles/triggeringaclientcache thew3cwebsite
refresh)
(https://www.w3.org/standards/techs/components#w3c_all)ontheweb
8 ReducingYourBreach componentstandardandwhatconceptsitshouldembrace.
Risk
(/articles/reducingyourbreachrisk) YoumightalsowanttocheckoutPolymer(https://www.polymer
project.org/1.0/)andwebcomponents.org(http://webcomponents.org/).

9 WhyPython?What'sit
GoodFor?Howisit
Angular2fullyembracesthiscomponentbaseddevelopment
(/)
style.Infact,sincethebeginningofAngular1.x,allowingtheuserto
definecustomHTMLelementswithbehaviorwasoneofthecore
/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev
philosophiesoftheframework.AsimplecomponentinAngular2looks
1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! likethis: (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)


(/articles/jquery30outnow) 1

VisualStudio2015 @Component({
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction 2
CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend
selector:'helloworld',
toolingseriesintrod)
3
3 Top5ReasonsTo
ChoosePHPforWeb template:`<p>Hello,world!</p>`})
DevelopmentProject
(/articles/top5reasonstochoose 4
phpforwebdevelopmentpr1)
classHelloWorldComponent{

4 Angular2:AGuidefor
Beginners 5

(/articles/angular2agettingstarted
guideforbeginners)
6
5 Understandingthe
MiddlewarePatternin }
Express.js
(/articles/understandingmiddleware
patterninexpressjs)

6 What'sTJ'sStack
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 23/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
6 What'sTJ'sStack
TheseDays?
(/articles/whatstjsstackthesedays)

7 TriggeringaClient
CacheRefresh InthecorrespondingHTML,youwouldwritethistoinstantiateit.
(/articles/triggeringaclientcache
refresh) 1

<helloworld></helloworld>
8 ReducingYourBreach
Risk
(/articles/reducingyourbreachrisk)

9 WhyPython?What'sit
GoodFor?Howisit Asyoucansee,decoratorsarebeingusedtoaddmetainformationabout
thetagofthecomponent,aboutthetemplatethatshouldberendered
(/)
andmuchmore,whicharentbeingusedinthisbasicexamplehere.

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev
"ComponentsarefirstclasscitizensinAngular2"
1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)


(/articles/jquery30outnow)

NowwithcomponentsbeingafirstclasscitizeninAngular2,
VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES)
FrontEndTooling therestheconceptofthesocalledcomponenttree.EveryAngular
ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
2applicationconsistsofsuchacomponenttree,havingatoplevel
(/articles/visualstudio2015frontend
toolingseriesintrod) applicationcomponentorrootcomponentandfromthere,lotsofchild
andsiblingcomponents.
3 Top5ReasonsTo
ChoosePHPforWeb Forexample:(http://juristr.com/blog/assets/imgs/meetupintro
DevelopmentProject
(/articles/top5reasonstochoose angular2/componenttree.png)
phpforwebdevelopmentpr1)

4 Angular2:AGuidefor
Beginners
(/articles/angular2agettingstarted
guideforbeginners)

5 Understandingthe
MiddlewarePatternin
Express.js
(/articles/understandingmiddleware
patterninexpressjs)

6 What'sTJ'sStack
TheseDays?
(/articles/whatstjsstackthesedays)
(http://juristr.com/blog/assets/imgs/meetupintro
7 TriggeringaClient
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 24/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
7 TriggeringaClient
CacheRefresh angular2/componenttree.png)AndthiscouldthenbemappedtoHTML
(/articles/triggeringaclientcache codelikeasfollows.
refresh)

8 ReducingYourBreach
Risk
(/articles/reducingyourbreachrisk)

9 WhyPython?What'sit
GoodFor?Howisit

(/)

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev

1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)


(/articles/jquery30outnow)
(http://juristr.com/blog/assets/imgs/meetupintro
VisualStudio2015
2REFCARDZ(/REFCARDZ) angular2/componenttreemapping.png)
GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction ThecomponenttreeisofmajorimportanceinAngular2,andyouwill
CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend comeacrossitagain.Forexample,thisishowyoucomposeyour
toolingseriesintrod)
application,andthearcsfromonecomponenttotheotheraretheway
3 Top5ReasonsTo dataisassumedtoflowthroughyourapplicationaswellaswhatAngular
ChoosePHPforWeb
DevelopmentProject usesforchangedetection.
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1)
Changedetectionisthemechanismbywhich
4 Angular2:AGuidefor
Beginners Angulardetermineswhichcomponentsneedtobe
(/articles/angular2agettingstarted refreshedasaresultofchangesinthedataofthe
guideforbeginners) application.

5 Understandingthe
MiddlewarePatternin
Express.js
(/articles/understandingmiddleware TemplatesandDataBinding
patterninexpressjs)
Obviously,whenwewritesomethinglike <helloworld></helloworld> ,we
6 What'sTJ'sStack alsoneedtodefinesomewherewhatAngularshouldrenderinplace.
TheseDays?
Thatswheretemplatesanddatabindingcomeintoplay.Asweveseen
(/articles/whatstjsstackthesedays)
before,wedefinethetemplatedirectlyinthe @Component({}) annotationby
7 TriggeringaClient eitherusingthe template or templateUrl property,dependingonwhether
CacheRefresh
(/articles/triggeringaclientcache
wewanttodefineitinlineorloaditfromsomeurl.
refresh)
1
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 25/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
1

8 ReducingYourBreach @Component({
Risk
(/articles/reducingyourbreachrisk) 2

...

9 WhyPython?What'sit
GoodFor?Howisit
3

(/) template:`

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev 4

<p>Hello,world!</p>`
1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)
5

(/articles/jquery30outnow)
})
VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling 6
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
classHelloWorldComponent{}
(/articles/visualstudio2015frontend
toolingseriesintrod)

3 Top5ReasonsTo
ChoosePHPforWeb
DevelopmentProject
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1)

4 Angular2:AGuidefor
Beginners Wealsoneedsomedatabindingmechanismtogetdataintothis
(/articles/angular2agettingstarted templateandoutofitagain.Letslookatanexample:
guideforbeginners)
1
5 Understandingthe
MiddlewarePatternin @Component({
Express.js
(/articles/understandingmiddleware 2
patterninexpressjs)
selector:'helloworld',

6 What'sTJ'sStack
3
TheseDays?
(/articles/whatstjsstackthesedays) template:`

TriggeringaClient 4
7
CacheRefresh <p>Hello,</p>`
(/articles/triggeringaclientcache
refresh) 5

ReducingYourBreach })
8
Risk
6
(/articles/reducingyourbreachrisk)
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615
26/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
classHelloWorldComponent{
9 WhyPython?What'sit
GoodFor?Howisit 7

(/) who:string='Juri'

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev 8

}
1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)


(/articles/jquery30outnow)

VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend
toolingseriesintrod)

3 Top5ReasonsTo
ChoosePHPforWeb
Asyoucansee,thevariable who insidethecomponentsclassgetsbound
DevelopmentProject
(/articles/top5reasonstochoose tointothetemplate.Wheneveryouchangethevalueof who ,thetemplate
phpforwebdevelopmentpr1)
willautomaticallyreflectthatchange.
4 Angular2:AGuidefor
Beginners ServicesandDependencyInjection
(/articles/angular2agettingstarted
guideforbeginners) Besidescomponents,AngularalwayshadtheconceptofServicesand
DependencyInjection.SodoesAngular2.Whilethecomponentismeant
5 Understandingthe
MiddlewarePatternin todealwiththeUIandrelatedstuff,theserviceistheplacewhere
Express.js youputyourbusinesslogicsothatitcanbesharedandconsumed
(/articles/understandingmiddleware
patterninexpressjs) bymultiplecomponents.AserviceisnothingelsethanasimpleES6
class:
6 What'sTJ'sStack
TheseDays? 1
(/articles/whatstjsstackthesedays)
@Injectable()

7 TriggeringaClient
2
CacheRefresh
(/articles/triggeringaclientcache exportclassPersonService{
refresh)
3
8 ReducingYourBreach
fetchAllPeople(){...}
Risk
(/articles/reducingyourbreachrisk) 4

WhyPython?What'sit }
9
GoodFor?Howisit

(/)
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 27/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
(/)

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev

1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)
Fromwithinsomecomponent,wecanthenusethisservice

(/articles/jquery30outnow)
1
VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
2
(/articles/visualstudio2015frontend
toolingseriesintrod) import{PersonService}from'./services/person.service';

3 Top5ReasonsTo 3
ChoosePHPforWeb
DevelopmentProject
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1) 4

@Component({
4 Angular2:AGuidefor
Beginners
5
(/articles/angular2agettingstarted
guideforbeginners) ...

Understandingthe 6
5
MiddlewarePatternin
provider:[PersonService]
Express.js
(/articles/understandingmiddleware
7
patterninexpressjs)
})
6 What'sTJ'sStack
TheseDays? 8
(/articles/whatstjsstackthesedays)
classPersonComponent{

7 TriggeringaClient
9
CacheRefresh
(/articles/triggeringaclientcache people;
refresh)
10
8 ReducingYourBreach
constructor(privatepersonService:PersonService){
Risk
(/articles/reducingyourbreachrisk) 11

WhyPython?What'sit //DIinallit'sbeauty,justprovideTStypeannotationandAngularwillhandletherest
9
GoodFor?Howisit

(/) 12

//likeaddingthereferenceofpersonServicetotheclass
/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev
13
1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 28/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)
//noneedfor"this.personService=personService;"


(/articles/jquery30outnow)
14

VisualStudio2015
2REFCARDZ(/REFCARDZ) }
GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
15
(/articles/visualstudio2015frontend
toolingseriesintrod)

Top5ReasonsTo 16
3
ChoosePHPforWeb
ngOnInit(){
DevelopmentProject
(/articles/top5reasonstochoose
17
phpforwebdevelopmentpr1)
this.people=this.personService.fetchAllPeople();
4 Angular2:AGuidefor
Beginners 18
(/articles/angular2agettingstarted
}
guideforbeginners)
19
5 Understandingthe
MiddlewarePatternin }
Express.js
(/articles/understandingmiddleware
patterninexpressjs)

6 What'sTJ'sStack
TheseDays?
(/articles/whatstjsstackthesedays)

7 TriggeringaClient
CacheRefresh
(/articles/triggeringaclientcache
refresh)

8 ReducingYourBreach
Risk
(/articles/reducingyourbreachrisk)

9 WhyPython?What'sit
GoodFor?Howisit

(/)

Nice,wegetareferenceto PersonService fromwithinourcomponent.But


/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev
wait,whoinstantiatestheclass?Youguessedit,Angularsdependency
1 injection.Forthistoworkyouneedtotwothings:
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)


(/articles/jquery30outnow) addthe @Injectable annotation.
VisualStudio2015 register PersonService asaprovidereitherontheapp,thetoplevel
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 29/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
VisualStudio2015
2REFCARDZ(/REFCARDZ) register PersonService asaprovidereitherontheapp,thetoplevel
GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction componentorfromthepartofthecomponenttree(downwards)
CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend whereyouwanttohavetheserviceinjectable.
toolingseriesintrod)

3 Top5ReasonsTo ReactiveProgrammingWithRxJs5andHTTP
ChoosePHPforWeb
DevelopmentProject Angular2usesaparadigmcalledReactiveProgramming."Thisis
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1)
implementedthroughtheRxJS5(https://github.com/ReactiveX/rxjs)
library.TheAngular2HTTPservicewontreturnpromises,butinstead
4 Angular2:AGuidefor RxJSObservables.
Beginners
(/articles/angular2agettingstarted
Thispatternisnotnewatallandhasrecentlygainedalotofpopularityin
guideforbeginners)
modernfrontenddevelopment.Imnotgoingintothedetailsherenow,
5 Understandingthe asitwouldbeanentirearticleonitsown.JustknowthatAngular2will
MiddlewarePatternin
Express.js heavilyrelyonitandthatswhyyoushouldprobablygoandlearnmore
(/articles/understandingmiddleware aboutit.
patterninexpressjs)

6 What'sTJ'sStack
TheseDays?
LotsofStuff,LetsGetStartedWithSome
(/articles/whatstjsstackthesedays) Code
7 TriggeringaClient Inrecentyears,gettingstartedquicklywithfrontenddevelopmentgot
CacheRefresh notablymoredifficult.Justcreatingsome index.html withacoupleof
(/articles/triggeringaclientcache
<script> tagsisnotenough.Whatyouneedisatranspilerandabuildtool
refresh)
thattranspilesthecodeandservesitup,nottothenmention
8 ReducingYourBreach optimizationslikeminification,inclusionofHTMLtemplates,CSS
Risk
(/articles/reducingyourbreachrisk)
compilationetc.

9 WhyPython?What'sit
GoodFor?Howisit
JustsomeofthetoolsbeingusedinmodernJavaScriptdevelopment(notmentioning
(/) frontendframeworkshere,justtools).

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev

1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)


(/articles/jquery30outnow)

VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend
toolingseriesintrod)
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 30/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
toolingseriesintrod)

3 Top5ReasonsTo
ChoosePHPforWeb
DevelopmentProject
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1)

4 Angular2:AGuidefor
Beginners (http://juristr.com/blog/assets/imgs/meetupintroangular2/tooling
(/articles/angular2agettingstarted landscape.png)
guideforbeginners) Somebuildtools/modulebundlersyoushoulddefinitelytakeacloserlookat
areSystemJSandWebpack.ThesearecurrentlyatthebaseofmostAngular2
5 Understandingthe
MiddlewarePatternin projects.Tomakethiseasier,theAngularCLIproject(https://cli.angular.io)hasbeen
Express.js created.MikeBrocchi,corecontributoroftheCLIprojectdemoeditatNGConf2016
(/articles/understandingmiddleware (https://www.youtube.com/watch?v=wHZe6gGI5RY).
patterninexpressjs)

6 What'sTJ'sStack
TheseDays?
(/articles/whatstjsstackthesedays)

7 TriggeringaClient
CacheRefresh
(/articles/triggeringaclientcache
refresh)

8 ReducingYourBreach
Risk
(https://cli.angular.io)TheCLIallowsyoutodothingslike:
(/articles/reducingyourbreachrisk) 1

WhyPython?What'sit $ngnewmysuperawesomeproject
9
GoodFor?Howisit
2
(/)
$nggcomponentmynewcomponent

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev 3

1 $nggroutehero
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)


(/articles/jquery30outnow)

VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend Moreover,itgeneratesthesecomponentsbyfollowingtheofficial
toolingseriesintrod)
styleguide(https://angular.io/docs/ts/latest/guide/styleguide.html)
3 Top5ReasonsTo andhasevenlintingbuiltin.
ChoosePHPforWeb
DevelopmentProject
AngularCLIisstillunderheavydevelopmentandstillhassomewaytogo
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 31/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
DevelopmentProject
(/articles/top5reasonstochoose
AngularCLIisstillunderheavydevelopmentandstillhassomewaytogo
phpforwebdevelopmentpr1) tillitsfullyusable.Butitsawesomeforquicklygettingstarted,andIm
quitesureitllgetbetterandbeahugehelp,especiallyfornewcomers,to
4 Angular2:AGuidefor
Beginners getstartedwithAngular2withouthavingtoknowallthetoolingindepth
(/articles/angular2agettingstarted (recentlyWebstormintegratedAngularCLIsupport
guideforbeginners)
(http://blog.jetbrains.com/webstorm/2016/06/webstorm20162eap
5 Understandingthe 162646/)).However,Ialsostronglyrecommendlearningthesetoolsas
MiddlewarePatternin
Express.js
yougoalong.TheCLIwillbringyouquicklytoagoodpoint,butits
(/articles/understandingmiddleware indispensabletoknowyourtoolingtogetfurtherahead.
patterninexpressjs)
Herearesomeotherpopularstartersyoudefinitelywanttotakealookat.
6 What'sTJ'sStack
TheseDays? Theyarecommunitybased,havelotsofbestpracticesbundledandhave
(/articles/whatstjsstackthesedays) beenaroundforquiteawhilenow.

7 TriggeringaClient Here's(https://github.com/AngularClass/angular2webpackstarter)an
CacheRefresh
Angular2starterkitfeaturingAngular2(router,HTTP,forms,services,
(/articles/triggeringaclientcache
refresh) tests,E2E,Dev/Prod,MaterialDesign,Karma,Protractor,Jasmine,
Istanbul,TypeScript,TsLint,Codelyzer,HotModuleReplacement,
8 ReducingYourBreach
Risk Typings,andWebpackby@AngularClass.
(/articles/reducingyourbreachrisk)
Okay,WereAllSetUp,IGuess.Timeto
9 WhyPython?What'sit


GoodFor?Howisit
Code!
(/) Irecordeda~20minscreencastwhereIwalkthroughsomeofthese
sevenkeyconceptsbehindAngular2.Hopeyouenjoyit!
/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev

1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! Started Guide for Beginnes Ben(/users/1196049/amankwata_b.html)
(/users/1196049/amankwata_b.html)
Angular 2 - Getting


(/articles/jquery30outnow)

VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend
toolingseriesintrod)

3 Top5ReasonsTo
ChoosePHPforWeb
DevelopmentProject
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1)

4 Angular2:AGuidefor
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 32/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
4 Angular2:AGuidefor
Beginners
(/articles/angular2agettingstarted
guideforbeginners)

5 Understandingthe
MiddlewarePatternin
Express.js
(/articles/understandingmiddleware
patterninexpressjs)

6 What'sTJ'sStack
TheseDays?
Conclusion
(/articles/whatstjsstackthesedays) Congrats,youvecometotheend.

7 TriggeringaClient Bynow,youprobablyrealizethereslotsofnewstuffforyoutolearn.But
CacheRefresh
thenicethingisthatmaybeitisntevenonlyAngular2related.Like
(/articles/triggeringaclientcache
refresh) switchingtoES2015(ES6)and/orTypeScript,oradoptingthereactive
programmingstylewithRxJS,orlearningnewtoolingslikeWebpackand
8 ReducingYourBreach
Risk SystemJS.Theseareallthingsyoucantotallyreuse,eventhoughyou
(/articles/reducingyourbreachrisk) don'tplantocontinuewithAngular2intheend.Fortunately,thethings
youhavetoexclusivelylearnforAngular2gotalotsmallercomparedto
9 WhyPython?What'sit
GoodFor?Howisit Angular1.x!

(/) Sothiswasbasicallyjustthebeginning.Fromhere,youcangomorein
depth.FollowthelinksIprovidedtogetstarted.Also,feelfreetodropme
/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev
alineonTwitter(https://twitter.com/juristr).Ingeneral,trytoconnect
1 withtheAngular2community(overTwitter,GitHub,andSlack).There
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)

arelotsandlotsofawesomepeoplewillingtohelpyouwiththeir

(/articles/jquery30outnow)
enormousexpertise.
VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend
toolingseriesintrod)
ThankstoMartinHochel(https://twitter.com/martin_hotell)for
3 Top5ReasonsTo reviewingthisarticle
ChoosePHPforWeb
DevelopmentProject
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1)

4 Angular2:AGuidefor IfyouenjoyedthispostyoumightwanttofollowmeonTwitter
Beginners (https://twitter.com/juristr)formorenewsaroundJavaScriptand
(/articles/angular2agettingstarted
guideforbeginners)
Angular2.

https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 33/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev

5 Understandingthe
MiddlewarePatternin
Express.js
(/articles/understandingmiddleware Note:ThisarticlehasbeenrepostedhereonDZonewithmypermission.
patterninexpressjs)
Pleaserefertotheoriginalarticle(http://juristr.com/blog/2016/06/ng2
6 What'sTJ'sStack gettingstartedforbeginners/)forfutureupdatesandmorelinks.
TheseDays?
(/articles/whatstjsstackthesedays)
TheWebDevZoneisbroughttoyoubyStormpath(/go?
7 TriggeringaClient i=123021&u=http%3A%2F%2Fgo.stormpath.com%2Fbuildvsbuy
CacheRefresh customeridentityuser
(/articles/triggeringaclientcache
management%3Futm_source%3Ddzone%26utm_medium%3Dpost
refresh)
text%26utm_content%3Dbuildvsbuymay16%26utm_campaign%3Dweb
8 ReducingYourBreach dev2016)offeringacomplete,prebuiltUserManagementAPIfor
Risk
buildingwebandmobileapplications,andAPIs.Downloadournew
(/articles/reducingyourbreachrisk)
whitepaper:"BuildVersusBuy:CustomerIdentityManagementforWeb
9 WhyPython?What'sit andMobileApplications".(/go?
GoodFor?Howisit
i=123021&u=http%3A%2F%2Fgo.stormpath.com%2Fbuildvsbuy
(/) customeridentityuser
management%3Futm_source%3Ddzone%26utm_medium%3Dpost
/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev
text%26utm_content%3Dbuildvsbuymay16%26utm_campaign%3Dweb
1 dev2016)
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)


(/articles/jquery30outnow)
Topics: ANGULAR2.0, IONIC, NATIVESCRIPT

PublishedatDZonewithpermissionofJuriStrumpflohner,DZoneMVB.
VisualStudio2015
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES)
ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
(http://juristr.com/blog/2016/06/ng2gettingstartedforbeginners/)
FrontEndTooling
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction OpinionsexpressedbyDZonecontributorsaretheirown.
CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(/articles/visualstudio2015frontend
toolingseriesintrod)

3 Top5ReasonsTo PartnerResources
ChoosePHPforWeb BuildVersusBuy:CustomerIdentityandUserManagementforWebandMobileApplications
DevelopmentProject (http://go.stormpath.com/buildvsbuycustomeridentityusermanagement?
(/articles/top5reasonstochoose
utm_source=dzone&utm_medium=textlinks&utm_content=buildvsbuy&utm_campaign=java
phpforwebdevelopmentpr1)
2016&ref=dzone)
Stormpath
4 Angular2:AGuidefor
Beginners (http://go.stormpath.com/buildvsbuycustomeridentityusermanagement?
utm_source=dzone&utm_medium=textlinks&utm_content=buildvsbuy&utm_campaign=java
(/articles/angular2agettingstarted
guideforbeginners) 2016&ref=dzone)
BuildAReact.jsAppWithUserManagement(https://stormpath.com/blog/buildareactappwithuser
Understandingthe authentication?utm_source=dzone&utm_medium=textlinks&utm_content=buildareact
5
MiddlewarePatternin may&utm_campaign=webdev2016&ref=dzone)
Express.js Stormpath
(/articles/understandingmiddleware (https://stormpath.com/blog/buildareactappwithuserauthentication?
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 34/35
6/15/2016 Angular2:AGuideforBeginnersDZoneWebDev
(/articles/understandingmiddleware (https://stormpath.com/blog/buildareactappwithuserauthentication?
patterninexpressjs) utm_source=dzone&utm_medium=textlinks&utm_content=buildareactmay&utm_campaign=web
dev2016&ref=dzone)
6 What'sTJ'sStack
TheseDays? BalancingUX&Security?DownloadForrester'sCIAMMarketOverview
(/articles/whatstjsstackthesedays) (http://go.stormpath.com/forrestercustomeridentityaccessmanagementstormpath?
utm_source=dzone&utm_medium=textlinks&utm_content=forresterbalancingux&utm_campaign=web
7 TriggeringaClient dev2016?ref=dzone&ref=dzone)
CacheRefresh
Stormpath
(/articles/triggeringaclientcache (http://go.stormpath.com/forrestercustomeridentityaccessmanagementstormpath?
refresh) utm_source=dzone&utm_medium=textlinks&utm_content=forresterbalancingux&utm_campaign=web
dev2016?ref=dzone&ref=dzone)
8 ReducingYourBreach
TheMostIntelligentPHPIDE(https://www.jetbrains.com/phpstorm/documentation/phpstormvideo
Risk
tutorials.jsp?utm_source=dzoneweb&utm_medium=asset&utm_content=themostintelligentphp
(/articles/reducingyourbreachrisk)
ide&utm_campaign=phpstorm&ref=dzone)
JetBrains

9 WhyPython?What'sit
(https://www.jetbrains.com/phpstorm/documentation/phpstormvideotutorials.jsp?
GoodFor?Howisit
utm_source=dzoneweb&utm_medium=asset&utm_content=themostintelligentphp
(/) ide&utm_campaign=phpstorm&ref=dzone)
QualityAudioatYourFingertips(https://developer.dolby.com/emailregister.aspx?

/WebDevZone(/webdevelopmentprogrammingtutorialstoolsnews)
DZoneWeekly:WebDev promo=dzone&utm_source=DZ&utm_medium=link&utm_campaign=registration2&ref=dzone)
DolbyAudio
(https://developer.dolby.com/emailregister.aspx?
1
ThanksforvisitingDZonetoday,(/users/1196049/amankwata_b.html)
jQuery3.0OutNow! (/users/1196049/amankwata_b.html)Ben(/users/1196049/amankwata_b.html)
promo=dzone&utm_source=DZ&utm_medium=link&utm_campaign=registration2&ref=dzone)
Top5RulesforGivingEnterpriseAppsaConsumerGradeUX(http://blog.grommet.io/2016/04/08/top

(/articles/jquery30outnow)
5rulesforgivingenterpriseappsaconsumergradeux/?
VisualStudio2015 utm_source=DZONE_Links&utm_medium=SPNSRDLINKS&utm_campaign=DZLKS&ref=dzone)
2REFCARDZ(/REFCARDZ) GUIDES(/GUIDES) ZONES(/PORTALS) | AGILE(/AGILEMETHODOLOGYTRAININGTOOLSNEWS)
FrontEndTooling Grommet
BIGDATA(/BIGDATAANALYTICSTUTORIALSTOOLSNEWS)
Series:Introduction CLOUD(/CLOUDCOMPUTINGTUTORIALSTOOLSNEWS)
(http://blog.grommet.io/2016/04/08/top5rulesforgivingenterpriseappsaconsumergradeux/?
(/articles/visualstudio2015frontend utm_source=DZONE_Links&utm_medium=SPNSRDLINKS&utm_campaign=DZLKS&ref=dzone)
toolingseriesintrod)

3 Top5ReasonsTo
ChoosePHPforWeb
DevelopmentProject
(/articles/top5reasonstochoose
phpforwebdevelopmentpr1)

4 Angular2:AGuidefor
Beginners
(/articles/angular2agettingstarted
guideforbeginners)

5 Understandingthe
MiddlewarePatternin
Express.js
(/articles/understandingmiddleware
patterninexpressjs)

6 What'sTJ'sStack
TheseDays?
https://dzone.com/articles/angular2agettingstartedguideforbeginners?edition=154268&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=wd%2020160615 35/35

S-ar putea să vă placă și