SlideShare a Scribd company logo
1 of 42
Angular
Web Programlama
www.cihanozhan.com
Angular Nedir?
• Ücretsiz ve güçlü bir JavaScript kütüphanesidir.
• Genellikle Single Page Applications(SPA)’da kullanılır.
• HTML içinde istemci uygulamaları geliştirmeyi sağlar.
• Angular back-end’de API sömüren bir Front-End kütüphanedir.
• İstemci için JavaScript üreten TypeScript dilini kullanır.
– Alternatifler : JavaScript, Dart, TypeScript
• Angular Versiyonlarını Anlamak(Geçici Olarak Bir Sonraki Slayta Gidelim)
• Dinamik web uygulamaları geliştirmek için kullanılan bir yapıdır.
• Web şablonu olarak HTML kullanmaya ve onu genişletmeye izin verir.
• Veri Bağlama ve Dependency Injection kullanmaya izin verir.
• İyi tanımlanmış bir yapı ile tüm DOM ve AJAX kodlarını yönetir.
• History
– AJAX -> jQuery / Prototype -> MVC Frameworks(Knockout/Backbone)
– -> AngularJS1.X -> Angular2 -> Angular4
• Google’da Angular 2 geliştirmesi için çalışan özel bir ekip vardır.
Angular Versiyonlarını Anlamak
• AngularJS
• Angular 2
• Angular 4
• Angular 5
• Angular 6
• Angular 7
• Angular 8
Angular Özellikleri
• Angular MVC tasarım deseni üzerine geliştirilmiştir
• Attribute eklemeleri ile HTML DOM’u genişletip kod yazımını azaltır ve
süreçleri kolaylaştırır.
• CRUD uygulamaları için gerekli herşeyi içerir
– Data-Binding, Basic Templating, Directives, Form Validation, Routing, Deep-Linking,
Reusable Components, Dependency Injection vb..
• Angular declarative code çerçevesiyle geliştirildi. Bu UI geliştirmeleri ve
komponent tabanlı uygulama geliştirmelerinde iyiyken, imperative code iş
mantığı(logic) ifade etmelerde daha etkilidir.
• Angular saf HTML sayfaları üretirken, controller’lar iş süreçlerini işleyerek
JavaScript ile üretilir
• Angular popüler tüm tarayıcılar ve Android/iOS dahil tüm tablet ve
telefonları destekler ve bunlarda kullanılır
Mobil ve Desktop için Angular
• Angular mobil ve masaüstü uygulamaları geliştirmek için kullanılabilir.
– Mobil için : NativeScript https://www.nativescript.org/
– Desktop için : Electron https://electronjs.org/
Angular 1.X vs. Angular 2
• Kod yazmak ve okumak daha kolaydır.
• Yüksek performanslıdır.
• Modüler yapısı Angular 1.X’e göre daha gelişmiştir.
• DI daha gelişmiş düzeyde kullanılır.
• Native Mobile uygulamalar için daha gelişmiş destek sunar.
• Test geliştirme süreçleri daha gelişmiştir.
• Angular 2 göreceli olarak 1.X’e göre daha karmaşıktır ama implementation
kolaydır.
• Angular 2 TypeScript kullanılarak geliştirildi ve bu dil Angular 2 için en
ideal programlama çözümüdür.
• Angular 2 komponent tabanlı bir bakış açısı sağlar.
Angular 1.X vs. Angular 2
- Setting Up: Sadece angular.js’yi eklemek yeterli.
- Mobil destek amacıyla geliştirilmedi.
- Çekirdek konsept $scope idi. $scope olmadan
view ile controller haberleşemez.
- views/templates iletişimi için controller gerekli.
- Performans Angular 2’ye göre düşüktür
- Angular 1.X ES5, ES6 ve Dart’a sahiptir
- Nesnelerin iterasyonu için ng-repeat kullanılır
- Olaylar için en çok kullanılan built-in
directive’ler ng-src, ng-href, ng-click’tir.
- One-way binding için ng-bind kullanılır
- Uygulama başlatmak için iki yönteme sahip:
Auto. Bootstrapping(ng-app) ve Manuel B.
- Routing için $routeProvider.when() kullanır.
- Setting Up: Karmaşık. Zaman alır çünkü Gulp ya
da Grunt’a bağımlı.
- Mobil odaklı geliştirildi. Mobile-oriented.
- DOM değişikliklerini tespit etmek için Zone.js
kullanır.
- Komponentler ile geliştirildi. (Template
Directives + Controllers = Components)
- Tek yönlü ağaç tabanlı değişiklik tanımlama
modeli performansı artırır. ng-conf’a göre
Angular 2, 1.X’den 5 kez daha hızlıdır.
- Daha çok dil desteği var. ES5, ES6, TypeScript
ve Dart dillerini kullanabilir.
- Yapısal direktif söz dizimi tamamen değişti.
Örn: ng-repeat yerine *ngFor geliştirildi.
- Doğrudan HTML DOM eleman özelliklerini
kullanır.
- ng-bind değiştirildi ve yerine [property] geldi.
- Uygulama başlatmak için tek yönteme sahip:
Manuel Bootstrapping
- Routing için @RouteConfig{{…}} kullanır.
Angular 2 vs. Angular 4
- Angular 2 Angular 4’den dosya boyutu olarak
daha büyüktür.
- *ngIf if/else söz dizimine göre geliştirilmedi.
- Temel text işlemleri için logic geliştirilmeli.
- Template oluşturmak için template özellikleri
kullanılmalıdır.
- Animasyonlar için birçok paket import edilmeli
ve transaction’lar uygulanmalıdır.
- Angular 4 önceki versiyona göre daha hafif
dosyaya sahip ve hızlıdır.
- *ngIf if/else söz dizimine sahip. Örn: AJAX
çağrısı yaparken sayfada loading gösterilebilir.
- Angular 4 ile ‘titlecase’ tanıtıldı. Metnin ilk
harflerini büyütür. <h1>{{‘hello’ |
titlecase}}</h1>
- ng-template adında yeni bir direktif tanıtıldı.
- Animasyonlar için kullanılacak paketler tek bir
pakette birleştirildi. @angular/platform-
browser/animations
ES5 vs. ES6
ES5 vs. ES6
Neden Angular?
• Temiz ve Anlamlı HTML
• Güçlü Veri Bağlama
• Mimari Tasarımından Gelen Güçlü Modüler Tasarım
• Built-in Back-End Entegrasyon Kabiliyeti
• TypeScript, TypeScript, TypeScript …
• MVC Tasarım Desenine Göre Tasarlandı
• Animasyon…
MVC
Tasarım Deseni
Animasyon?
Backend
Service-Oriented, RESTful, Microservice vb.
TypeScript
TypeScript
• Çıktı olarak JavaScript üreten bir programlama dilidir.(JavaScript Transpiler)
• OOP : Nesne Yönelimli Programlama’ya yönelik geliştirilmiştir.
• Derleme zamanı hatalarını yönetir.
• Tüm JavaScript kütüphaneleri TypeScript içerisinde de kullanılabilir.
• Platform-bağımsız bir dildir ve farklı cihaz, tarayıcı ve işletim sistemlerinde
çalışır.
Neden TypeScript?
• JavaScript’de olmayan derleme-zamanlı hataları denetleme yeteneği
vardır. JS yorumlar, TS ise derler.
• JS dinamik veri tiplemesine sahiptir. Verilerin tipi dinamik olarak yürütme
aşamasında belirlenir. TS ise statik bir dildir.
• TypeScript OOP bir dildir. Sınıflar, arayüzler, modüller ve miras gibi
yetenekleri vardır. JS ise betik dilidir.
• Kolay okunabilir ve düzenlenebilir bir dildir.
Static Typing & Dynamic Typing
{
name: "Ferrari",
model: "Marenello",
// rAn: function()
run: function()
{
// Running...
}
}
class Car
{
public string name;
public string model;
public void run() {
// Running...
}
}
TypeScript Veri Tipleri
• Temel Veri Tipleri
• String & Templated String
• Arrays
• Tuples
• Enum
• Any & void
• Null & undefined
• Type Inference
• Type Casting
• Let & var
• Sabit Tanımlamak : const
TypeScript
TypeScript Nasıl Çalışır?
Angular Modülerdir
Lego gibi…
Angular
Ortam Gereksinimleri
• Editörler
– Visual Studio Code https://code.visualstudio.com/
• Plugin : Angular 8 Snippets
• Plugin : TypeScript Here
– Visual Studio .NET (Plugins) : http://www.typescriptlang.org/index.html#download-links
• Angular Gereksinimleri
– Node.js https://nodejs.org
– Angular CLI https://github.com/angular/angular-cli
• npm install –g @angular/cli
• npm install –g @angular/cli@7.3.9
• npm install –g @angular/cli@latest
– TypeScript https://www.typescriptlang.org/
• npm install –g typescript (ya da typescript@2.4.2)
• tsc –version
• To Uninstall : npm uninstall –g @angular/cli & npm uninstall –g angular-cli & npm cache clean
– Nodemon (Zaruri Değil) : JS dosyalarını izler ve kodlarda değişiklik varsa tekrar çalıştırır.
• npm install –g nodemon
• POSTMAN (API Test)
– https://www.getpostman.com/
Angular
Ortam Testleri ve Yardım Listesi
• Angular gereksinimlerinin başarıyla test edildiğini anlamak için:
• ps> node –version (ya da -v)
• ps> npm –version (ya da -v)
• ps> ng --version (ya da -v)
• ps> tsc --version (ya da -v)
• Angular hakkında yardım listesine ulaşmak için:
– ng help
Angular
Proje Oluşturma Rehberi
• C: dizini içerisinde uygulamalar için bir klasör oluştur.
– C:ngApps
• PowerShell ya da komut satırı aracını aç ve aşağıdaki komutları çalıştır.
– npm install –g @angular/cli (Angular CLI kurmak için)
• npm install –g @angular/cli@7.3.9 (Angular CLI’ın belirli bir versiyonunu kurmak için)
• npm install –g @angular/cli@latest (Angular CLI’ın son versiyonunu kurmak için)
– npm install –g typescript
• tsc --version
– ps> cd C:ngApps
– ng new first-angular-app
• Routing? N
• CSS
– cd first-angular-app
– code . (Projeyi VSCode’da açmak için)
• Angular projesini çalıştırmak ve yayına vermek
– IDE> Terminal> ng serve (Projeyi yayına sunmak için)
• ng serve –open (Projeyi direkt olarak tarayıcıda açar)
• ng serve –port 8081 (Projeyi belirtilen port üzerinden tarayıcıda açar)
Angular Web Programlama
Angular Web Programlama

More Related Content

What's hot

What's hot (20)

Deep Dive into Durable Functions
Deep Dive into Durable FunctionsDeep Dive into Durable Functions
Deep Dive into Durable Functions
 
DevOps Monitoring and Alerting
DevOps Monitoring and AlertingDevOps Monitoring and Alerting
DevOps Monitoring and Alerting
 
GitHub Actions with Node.js
GitHub Actions with Node.jsGitHub Actions with Node.js
GitHub Actions with Node.js
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
JIRA
JIRAJIRA
JIRA
 
infrastructure as code
infrastructure as codeinfrastructure as code
infrastructure as code
 
API-first Architecture Transformation at Etsy
API-first Architecture Transformation at EtsyAPI-first Architecture Transformation at Etsy
API-first Architecture Transformation at Etsy
 
FOSDEM 2017: GitLab CI
FOSDEM 2017:  GitLab CIFOSDEM 2017:  GitLab CI
FOSDEM 2017: GitLab CI
 
Spring Boot on Amazon Web Services with Spring Cloud AWS
Spring Boot on Amazon Web Services with Spring Cloud AWSSpring Boot on Amazon Web Services with Spring Cloud AWS
Spring Boot on Amazon Web Services with Spring Cloud AWS
 
Monitoring using Prometheus and Grafana
Monitoring using Prometheus and GrafanaMonitoring using Prometheus and Grafana
Monitoring using Prometheus and Grafana
 
Openshift Container Platform
Openshift Container PlatformOpenshift Container Platform
Openshift Container Platform
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Flutter talkshow
Flutter talkshowFlutter talkshow
Flutter talkshow
 
Jira
JiraJira
Jira
 
YAML Engineering: why we need a new paradigm
YAML Engineering: why we need a new paradigmYAML Engineering: why we need a new paradigm
YAML Engineering: why we need a new paradigm
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
 
Grafana
GrafanaGrafana
Grafana
 
CISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development SecurityCISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development Security
 
Prometheus (Prometheus London, 2016)
Prometheus (Prometheus London, 2016)Prometheus (Prometheus London, 2016)
Prometheus (Prometheus London, 2016)
 
Azure Application insights - An Introduction
Azure Application insights - An IntroductionAzure Application insights - An Introduction
Azure Application insights - An Introduction
 

Similar to Angular Web Programlama

Internet programcılığı-i
Internet programcılığı-iInternet programcılığı-i
Internet programcılığı-i
emre61
 
C sharp-proje
C sharp-projeC sharp-proje
C sharp-proje
sersld30
 
Sap2000 kursu-antalya
Sap2000 kursu-antalyaSap2000 kursu-antalya
Sap2000 kursu-antalya
sersld95
 
C sharp-egitimi-ankara
C sharp-egitimi-ankaraC sharp-egitimi-ankara
C sharp-egitimi-ankara
sersld30
 
Xsteel sitesi
Xsteel sitesiXsteel sitesi
Xsteel sitesi
sersld85
 
Php kursu-ankara
Php kursu-ankaraPhp kursu-ankara
Php kursu-ankara
sersld88
 
C sharp-video
C sharp-videoC sharp-video
C sharp-video
sersld30
 

Similar to Angular Web Programlama (20)

Angularjs ve Angularjs 2 nedir?
Angularjs ve Angularjs 2 nedir?Angularjs ve Angularjs 2 nedir?
Angularjs ve Angularjs 2 nedir?
 
Neden Backbone.js'ten AngularJS'e Geçtik?
Neden Backbone.js'ten AngularJS'e Geçtik?Neden Backbone.js'ten AngularJS'e Geçtik?
Neden Backbone.js'ten AngularJS'e Geçtik?
 
React.js Web Programlama
React.js Web ProgramlamaReact.js Web Programlama
React.js Web Programlama
 
Modern Frontend
Modern FrontendModern Frontend
Modern Frontend
 
AngularjsBilgeAdam
AngularjsBilgeAdamAngularjsBilgeAdam
AngularjsBilgeAdam
 
Node js giriş (intro)
Node js giriş (intro)Node js giriş (intro)
Node js giriş (intro)
 
Maltepe Üniversitesi - Spring AOP
Maltepe Üniversitesi - Spring AOPMaltepe Üniversitesi - Spring AOP
Maltepe Üniversitesi - Spring AOP
 
Internet programcılığı-i
Internet programcılığı-iInternet programcılığı-i
Internet programcılığı-i
 
AngularJS sunumu
AngularJS sunumuAngularJS sunumu
AngularJS sunumu
 
JVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDEJVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDE
 
JavaScript Sunumu
JavaScript SunumuJavaScript Sunumu
JavaScript Sunumu
 
ASP.NET Core 1.0
ASP.NET Core 1.0ASP.NET Core 1.0
ASP.NET Core 1.0
 
Spring application framework
Spring application frameworkSpring application framework
Spring application framework
 
C sharp-proje
C sharp-projeC sharp-proje
C sharp-proje
 
Sap2000 kursu-antalya
Sap2000 kursu-antalyaSap2000 kursu-antalya
Sap2000 kursu-antalya
 
MongoDB ve C# Driver'ı
MongoDB ve C# Driver'ıMongoDB ve C# Driver'ı
MongoDB ve C# Driver'ı
 
C sharp-egitimi-ankara
C sharp-egitimi-ankaraC sharp-egitimi-ankara
C sharp-egitimi-ankara
 
Xsteel sitesi
Xsteel sitesiXsteel sitesi
Xsteel sitesi
 
Php kursu-ankara
Php kursu-ankaraPhp kursu-ankara
Php kursu-ankara
 
C sharp-video
C sharp-videoC sharp-video
C sharp-video
 

More from Cihan Özhan

More from Cihan Özhan (20)

MongoDB Overview
MongoDB OverviewMongoDB Overview
MongoDB Overview
 
MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL Overview
 
MongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel BakışMongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel Bakış
 
AI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation RealitiesAI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation Realities
 
Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)
 
Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)
 
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve YapılarGo Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
 
Golang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriGolang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili Temelleri
 
Golang Book - Genel Bakış
Golang Book - Genel BakışGolang Book - Genel Bakış
Golang Book - Genel Bakış
 
Golang Book - Giriş
Golang Book - GirişGolang Book - Giriş
Golang Book - Giriş
 
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesMLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
 
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
 
Endüstriyel Yapay Zeka ve Otonom Sistemler
Endüstriyel Yapay Zeka ve Otonom SistemlerEndüstriyel Yapay Zeka ve Otonom Sistemler
Endüstriyel Yapay Zeka ve Otonom Sistemler
 
AI Security : Machine Learning, Deep Learning and Computer Vision Security
AI Security : Machine Learning, Deep Learning and Computer Vision SecurityAI Security : Machine Learning, Deep Learning and Computer Vision Security
AI Security : Machine Learning, Deep Learning and Computer Vision Security
 
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
 
Python Programlama Dili
Python Programlama DiliPython Programlama Dili
Python Programlama Dili
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
 
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18
 

Angular Web Programlama

  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. Angular Nedir? • Ücretsiz ve güçlü bir JavaScript kütüphanesidir. • Genellikle Single Page Applications(SPA)’da kullanılır. • HTML içinde istemci uygulamaları geliştirmeyi sağlar. • Angular back-end’de API sömüren bir Front-End kütüphanedir. • İstemci için JavaScript üreten TypeScript dilini kullanır. – Alternatifler : JavaScript, Dart, TypeScript • Angular Versiyonlarını Anlamak(Geçici Olarak Bir Sonraki Slayta Gidelim) • Dinamik web uygulamaları geliştirmek için kullanılan bir yapıdır. • Web şablonu olarak HTML kullanmaya ve onu genişletmeye izin verir. • Veri Bağlama ve Dependency Injection kullanmaya izin verir. • İyi tanımlanmış bir yapı ile tüm DOM ve AJAX kodlarını yönetir. • History – AJAX -> jQuery / Prototype -> MVC Frameworks(Knockout/Backbone) – -> AngularJS1.X -> Angular2 -> Angular4 • Google’da Angular 2 geliştirmesi için çalışan özel bir ekip vardır.
  • 9. Angular Versiyonlarını Anlamak • AngularJS • Angular 2 • Angular 4 • Angular 5 • Angular 6 • Angular 7 • Angular 8
  • 10.
  • 11. Angular Özellikleri • Angular MVC tasarım deseni üzerine geliştirilmiştir • Attribute eklemeleri ile HTML DOM’u genişletip kod yazımını azaltır ve süreçleri kolaylaştırır. • CRUD uygulamaları için gerekli herşeyi içerir – Data-Binding, Basic Templating, Directives, Form Validation, Routing, Deep-Linking, Reusable Components, Dependency Injection vb.. • Angular declarative code çerçevesiyle geliştirildi. Bu UI geliştirmeleri ve komponent tabanlı uygulama geliştirmelerinde iyiyken, imperative code iş mantığı(logic) ifade etmelerde daha etkilidir. • Angular saf HTML sayfaları üretirken, controller’lar iş süreçlerini işleyerek JavaScript ile üretilir • Angular popüler tüm tarayıcılar ve Android/iOS dahil tüm tablet ve telefonları destekler ve bunlarda kullanılır
  • 12. Mobil ve Desktop için Angular • Angular mobil ve masaüstü uygulamaları geliştirmek için kullanılabilir. – Mobil için : NativeScript https://www.nativescript.org/ – Desktop için : Electron https://electronjs.org/
  • 13. Angular 1.X vs. Angular 2 • Kod yazmak ve okumak daha kolaydır. • Yüksek performanslıdır. • Modüler yapısı Angular 1.X’e göre daha gelişmiştir. • DI daha gelişmiş düzeyde kullanılır. • Native Mobile uygulamalar için daha gelişmiş destek sunar. • Test geliştirme süreçleri daha gelişmiştir. • Angular 2 göreceli olarak 1.X’e göre daha karmaşıktır ama implementation kolaydır. • Angular 2 TypeScript kullanılarak geliştirildi ve bu dil Angular 2 için en ideal programlama çözümüdür. • Angular 2 komponent tabanlı bir bakış açısı sağlar.
  • 14. Angular 1.X vs. Angular 2 - Setting Up: Sadece angular.js’yi eklemek yeterli. - Mobil destek amacıyla geliştirilmedi. - Çekirdek konsept $scope idi. $scope olmadan view ile controller haberleşemez. - views/templates iletişimi için controller gerekli. - Performans Angular 2’ye göre düşüktür - Angular 1.X ES5, ES6 ve Dart’a sahiptir - Nesnelerin iterasyonu için ng-repeat kullanılır - Olaylar için en çok kullanılan built-in directive’ler ng-src, ng-href, ng-click’tir. - One-way binding için ng-bind kullanılır - Uygulama başlatmak için iki yönteme sahip: Auto. Bootstrapping(ng-app) ve Manuel B. - Routing için $routeProvider.when() kullanır. - Setting Up: Karmaşık. Zaman alır çünkü Gulp ya da Grunt’a bağımlı. - Mobil odaklı geliştirildi. Mobile-oriented. - DOM değişikliklerini tespit etmek için Zone.js kullanır. - Komponentler ile geliştirildi. (Template Directives + Controllers = Components) - Tek yönlü ağaç tabanlı değişiklik tanımlama modeli performansı artırır. ng-conf’a göre Angular 2, 1.X’den 5 kez daha hızlıdır. - Daha çok dil desteği var. ES5, ES6, TypeScript ve Dart dillerini kullanabilir. - Yapısal direktif söz dizimi tamamen değişti. Örn: ng-repeat yerine *ngFor geliştirildi. - Doğrudan HTML DOM eleman özelliklerini kullanır. - ng-bind değiştirildi ve yerine [property] geldi. - Uygulama başlatmak için tek yönteme sahip: Manuel Bootstrapping - Routing için @RouteConfig{{…}} kullanır.
  • 15. Angular 2 vs. Angular 4 - Angular 2 Angular 4’den dosya boyutu olarak daha büyüktür. - *ngIf if/else söz dizimine göre geliştirilmedi. - Temel text işlemleri için logic geliştirilmeli. - Template oluşturmak için template özellikleri kullanılmalıdır. - Animasyonlar için birçok paket import edilmeli ve transaction’lar uygulanmalıdır. - Angular 4 önceki versiyona göre daha hafif dosyaya sahip ve hızlıdır. - *ngIf if/else söz dizimine sahip. Örn: AJAX çağrısı yaparken sayfada loading gösterilebilir. - Angular 4 ile ‘titlecase’ tanıtıldı. Metnin ilk harflerini büyütür. <h1>{{‘hello’ | titlecase}}</h1> - ng-template adında yeni bir direktif tanıtıldı. - Animasyonlar için kullanılacak paketler tek bir pakette birleştirildi. @angular/platform- browser/animations
  • 18. Neden Angular? • Temiz ve Anlamlı HTML • Güçlü Veri Bağlama • Mimari Tasarımından Gelen Güçlü Modüler Tasarım • Built-in Back-End Entegrasyon Kabiliyeti • TypeScript, TypeScript, TypeScript … • MVC Tasarım Desenine Göre Tasarlandı • Animasyon…
  • 21.
  • 23.
  • 25. TypeScript • Çıktı olarak JavaScript üreten bir programlama dilidir.(JavaScript Transpiler) • OOP : Nesne Yönelimli Programlama’ya yönelik geliştirilmiştir. • Derleme zamanı hatalarını yönetir. • Tüm JavaScript kütüphaneleri TypeScript içerisinde de kullanılabilir. • Platform-bağımsız bir dildir ve farklı cihaz, tarayıcı ve işletim sistemlerinde çalışır.
  • 26. Neden TypeScript? • JavaScript’de olmayan derleme-zamanlı hataları denetleme yeteneği vardır. JS yorumlar, TS ise derler. • JS dinamik veri tiplemesine sahiptir. Verilerin tipi dinamik olarak yürütme aşamasında belirlenir. TS ise statik bir dildir. • TypeScript OOP bir dildir. Sınıflar, arayüzler, modüller ve miras gibi yetenekleri vardır. JS ise betik dilidir. • Kolay okunabilir ve düzenlenebilir bir dildir.
  • 27. Static Typing & Dynamic Typing { name: "Ferrari", model: "Marenello", // rAn: function() run: function() { // Running... } } class Car { public string name; public string model; public void run() { // Running... } }
  • 28. TypeScript Veri Tipleri • Temel Veri Tipleri • String & Templated String • Arrays • Tuples • Enum • Any & void • Null & undefined • Type Inference • Type Casting • Let & var • Sabit Tanımlamak : const
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38. Angular Ortam Gereksinimleri • Editörler – Visual Studio Code https://code.visualstudio.com/ • Plugin : Angular 8 Snippets • Plugin : TypeScript Here – Visual Studio .NET (Plugins) : http://www.typescriptlang.org/index.html#download-links • Angular Gereksinimleri – Node.js https://nodejs.org – Angular CLI https://github.com/angular/angular-cli • npm install –g @angular/cli • npm install –g @angular/cli@7.3.9 • npm install –g @angular/cli@latest – TypeScript https://www.typescriptlang.org/ • npm install –g typescript (ya da typescript@2.4.2) • tsc –version • To Uninstall : npm uninstall –g @angular/cli & npm uninstall –g angular-cli & npm cache clean – Nodemon (Zaruri Değil) : JS dosyalarını izler ve kodlarda değişiklik varsa tekrar çalıştırır. • npm install –g nodemon • POSTMAN (API Test) – https://www.getpostman.com/
  • 39. Angular Ortam Testleri ve Yardım Listesi • Angular gereksinimlerinin başarıyla test edildiğini anlamak için: • ps> node –version (ya da -v) • ps> npm –version (ya da -v) • ps> ng --version (ya da -v) • ps> tsc --version (ya da -v) • Angular hakkında yardım listesine ulaşmak için: – ng help
  • 40. Angular Proje Oluşturma Rehberi • C: dizini içerisinde uygulamalar için bir klasör oluştur. – C:ngApps • PowerShell ya da komut satırı aracını aç ve aşağıdaki komutları çalıştır. – npm install –g @angular/cli (Angular CLI kurmak için) • npm install –g @angular/cli@7.3.9 (Angular CLI’ın belirli bir versiyonunu kurmak için) • npm install –g @angular/cli@latest (Angular CLI’ın son versiyonunu kurmak için) – npm install –g typescript • tsc --version – ps> cd C:ngApps – ng new first-angular-app • Routing? N • CSS – cd first-angular-app – code . (Projeyi VSCode’da açmak için) • Angular projesini çalıştırmak ve yayına vermek – IDE> Terminal> ng serve (Projeyi yayına sunmak için) • ng serve –open (Projeyi direkt olarak tarayıcıda açar) • ng serve –port 8081 (Projeyi belirtilen port üzerinden tarayıcıda açar)

Editor's Notes

  1. Declarative vs Imperative Programming : https://codeburst.io/declarative-vs-imperative-programming-a8a7c93d9ad2
  2. Model: The model is responsible for managing application data. It responds to the request from view and to the instructions from controller to update itself. View: A presentation of data in a particular format, triggered by the controller's decision to present the data. Controller: The controller responds to user input and performs interactions on the data model objects. The controller receives input, validates it, and then performs business operations that modify the state of the data model.
  3. https://www.typescriptlang.org/play/ https://howtodoinjava.com/typescript/transpiler-vs-compiler/ https://david-barreto.com/introduction-to-the-typescript-transpiler/
  4. Install Lite Server (Auto Refresh) cmd> npm install -g lite-server live-server (alternative)