Öncelikle şunu söyleyeyim. Bu bölümdeki makaleleri anlayabilmek için sağlam bir JavaScript bilgisine ihtiyacın var. Eğer JavaScript'i bilmiyorsan, (her ne kadar tüm kategorilerde paralel makale yazsam da) öncelikle Temel JavaScript kategorisindeki makaleleri bitirmeni veya başka bir kaynaktan JavaScript öğrenmeni tavsiye ederim. Eğer makaleleri okumaya devam ediyorsan, JavaScript'i iyi bildiğini varsayıyorum.

Aslında Angular için bir sınıf açıp açmamak üzerine çok düşündüm. Angular ile aynı işi yapan Can.JS isminde başka bir sınıfımız var. Üstelik Can.JS performans yönünden, Angular ve diğer MVC kütüphanelerine göre daha yüksek bir performans sunuyor. Ancak;


  • Angular üzerine de makale yazmam için gelen talepler
  • Google'ın Angular.JS'in arkasında durması ve kısa vadede de çekilecek gibi gözükmemesi
  • Angular'ın diğer kütüphanelere göre çok daha kolay ve hızlı şekilde geliştirme imkanı sunması
  • Popülerlik sebebiyle karşılaşılan sorunlara çok daha kolay cevap bulunabilmesi


sebeplerinden ötürü bu sınıfı açmaya karar verdim.


Not : Makalenin bundan sonraki kısmı, Can.JS'nin "Bismillah" isimli makalesi ile aynıdır. Eğer ki o makaleyi okuduysan, bu makale ile daha fazla zaman kaybetmeden bir sonraki makaleye geçebilirsin.


Diyelim ki, JavaScript'in kralı olduk. Uçuyoruz, kaçıyoruz, her türlü taklayı atıyoruz. Sayfadaki HTML elemanlarını dinamik olarak değiştirebiliyoruz. Ayrıca Ajax (ne Ajax'ı yav, hangi devirde yaşıyoruz, Socket IO ve Web Socket) biliyoruz. Sonrasında bir gün boş boş ufuklara bakarken aklımıza parlak bir fikir geliyor. Biz sunucu tarafına istekte bulunup, ekranı refresh etmeye gerek kalmasızın bunu sayfanın bir kısmında gösterebiliyoruz. Bu durumda, masaüstü uygulamalarını Web üzerinde çalışacak hale getirmemizde teknik olarak bir engel yok gözüküyor. Mesela JavaScript ile (sanki hali hazırda zilyon tane yazılmışı yokmuş gibi) bir muhasebe programı yazabiliriz. Ekranda kasa, stok, cari vs. butonları olur. Bunlardan herhangi birine basıldığında, uygun teknoloji ile sunucu tarafından kayıtları isteriz ve ekranda form görünümünde bir Div açıp Grid içerisinde bunları gösteririz. Bu formda ekle, değiştir, sil gibi butonlar olur. Her biri için de birer form daha açarız. Bu şekilde bütün bir muhasebe uygulamasını, tek bir sayfa üzerinde JavaScript ile ekle-kaldır yöntemi ile hazırlayabiliriz (Tabii ki burada kimsenin vergi kaçırmadığı ve muhasebe kayıtlarını internet üzerinde tutmaya sıcak bakacak bir ülkenin vatandaşlarından bahsediyoruz).


Ahanda, yeni bir şey keşfettik. Bu şekilde tüm masaüstü uygulamalarını, web üzerinde çalışır hale getiririz ve bunu satmaz, aylık veya yıllık cüzi bir kira karşılığında kullandırırız. Peki bunun kullanıcılara ne gibi bir faydası olur? Düşünelim...
  1. Kullanıcıların bilgisayarlarına bir şey kurmalarına gerek kalmaz, tarayıcısı olan her yerden programa erişip kullanabilirler.
  2. Kullandıkları bilgisayar yansa, bitse, kül olsa, ne programa, ne de programdaki verilere bir zarar gelmez çünkü o anda veriler, çoook uzakta, bizim ultra güvenli sunucularımız içerisinde duruyor olur.
  3. Kullanıcılar, dükkandaki bilgisayar tamir edilene kadar giderler bir internet kafeye, oradan da işlerini halledebilirler.
  4. Birden fazla lokasyonda iş yeri bulunan işletmeler, bu iş yerlerini birbirine bağlayarak ortak çalışmaları için servet ödemek zorunda kalmazlar. Tek yapmaları gereken, onlara vereceğimiz adrese girip, kullanıcı adı ve şifreleri ile oturum açmak olur.

Kassak, bir bu kadar daha avantaj bulabiliriz. Anam, bu sefer şeytanın bacağını kırdık galiba. Yakında tüm dünya bizi konuşuyor hale gelecek. Şimdiden manşetleri görebiliyorum. "Genç yazılımcı bulduğu yeni teknoloji ile dünya devlerini dize getirdi!" Yav, 50 milyar doların yıllık zekatı ne kadar ediyor ki acaba?

Sonra ufak bir araştırma yapıyoruz ve SaaS (Software as a Service) adında bir sistemin olduğunu ve bizim yukarıda bahsettiğimiz işleyişi içerdiğini öğreniyoruz. Tüh be, az kaldı Türkiye'de fakir kalmayacaktı.

Ama olsun, biz yine de başka bir yapıdan bahsediyoruz. Tüm masaüstü uygulamalarını JavaScript ile tek bir sayfa üzerinde çalışır hale getireceğiz. Böylece insanlar Windows, Linux, Mac OS, Android, IOS... hangi işletim sistemini kullanırlarsa kullansınlar, internet tarayıcıları üzerinden bizim adresimizi ziyaret ederek programları kullanabilecekler. Sonuçta bunu standart bir web sitesi şeklinde yapmak da mümkündü ama linke basınca sayfanın gidip gelmesini beklemek, kullanıcılara gerçek bir masaüstü programı deneyimi yaşatmayacaktı. Fikir yine güzel. Hadi 50 değil de, 5 milyar dolar olsun. Kırkta biri yıllık 125 milyon dolar yapar.

Ufak bir araştırma daha yapıyoruz ve bahsettiğimiz yapının SPA (Single Page Application) adıyla var olduğunu öğreniyoruz. Hadii bee. Şerrefsizim benim aklıma gelmişti.

Not : Yukarıdaki metin, benim hayatımda sürekli tekerrür eden bir sürecin özetini içeriyor. Bu konuda yalnız olmadığıma de eminim :)

Neyse, hemen pes etmek yok. Sonuçta ilk cep telefonunu da Apple çıkartmadı ama adamlar iPhone yüzünden parayla cima ettiler. Biz de çok rakibi olmayan bir sektördeki yazılımları SPA tarzına çeviririz.

Peki bunu nasıl yapacağımızı kafamızda bir canlandıralım. İlk açılışta ekranda iki metin kutusu ve bir buton olacak. Kullanıcı adı ve şifre girilecek. Tamam butonuna basılınca uygun teknoloji ile sunucu  tarafına bağlanıp kullanıcı validasyonu yapılacak. Ayrıca kullanıcının bizden kiraladığı servislerin listesi çekilecek. Bu listeye göre kullanıcının ekranındaki metin kutuları ve buton kaldırılacak, bunun yerine yeni butonlar ve menüler eklenecek. Eklenen bu buton ve menülerin Event Handler'larının da ekleneceğini unutmayalım. Sonrasında diyelim ki kullanıcı "Kasa" butonuna basacak. Hemen ekrana (sanki matah bir şeymiş gibi) Windows form görünümünde bir Div açılacak. İçerisinde Grid ve çeşitli kontroller ile butonlar yer alacak. Her butonun da birer Event Handler'ı ve bunlara bağlı fonksiyonlar olacak. Diyelim ki kullanıcı buradan "Yeni Kasa İşlemi" butonuna tıklayacak. Bu durumda modal şekilde yeni bir form açacağız ve içerisinde gerekli kontroller ile bunlarla ilişkili Event Handler'lar olacak. Kullanıcı buradaki "Kaydet" butonuna bastığında sunucu tarafına gidip kaydedeceğiz, ayrıca dönüp Grid'deki verileri güncelleyeceğiz, son açılan formu ve ona bağlı Event Handler'ları sayfadan kaldıracağız.

Sence bu şekilde nereye kadar gidebilirsin? Ben söyleyeyim, 10. formu görmezsin. Biliyorum, çünkü ben denedim. Form sayısı arttıkça kontrol altında tutman gereken Event Handler ve fonksiyon sayısı parabolik olarak artıyor ve bir süre sonra motor segman atmaya başlıyor. Sen istediğin kadar Object Oriented JavaScript veya client side template bil. Olmuyor kardeşim.

Peki nasıl olacak bu iş? Hemen söyleyeyim. JavaScript ile bu tarz komples SPA geliştirmek için hazırlanmış kütüphaneler var. Bunların çoğu MVC, bir kısmı da MVVM mantığında çalışıyor. İçinde bulunduğumuz sınıfımız, bunlardan Angular.JS'e ait.

Şimdiye kadar yazdıklarımla Angular'a neden ihtiyaç duyacağını anlatabilmişimdir inşallah. Angular.JS'e giriş mahiyetindeki bu makaleyi daha fazla uzatmadan burada noktalıyorum. İnşallah bu sınıftaki makaleler ile Angular'ı adım adım öğreneceğiz ve uygulayacağız.



Geri
Bu ilk makaledir
İleri
Construct Temelleri

Yorum Gönder

  1. Dinini, inancını bulaştırmadan makale yazmayı öğren. senin inancından, dininden bize ne!

    YanıtlaSil
    Yanıtlar
    1. üstteki yoruma ithafen;
      besmeleden bu kadar korkuyorsan okumasaydın makaleyi. senin bu bu saçma konu dışı yorumundan bize ne!

      Sil
    2. Dinsiz herif

      Sil
    3. a.q. yobaz laikliği kanına işlemiş devlet işi mi lan bu ? Dinini karıştırmaymış sana ne ulan

      Sil
    4. yobaz ve gerici bir yorum "senin dininden bize ne" diyorsun senin din alerjinden bize ne

      Sil
    5. memnun değilsen okuma kardeşim makaleyi, git başka yerden oku. böyle saygısızlık olur mu..

      Sil
    6. konu nası buraya geldi mk :D

      Sil
    7. Din bulaştırılmamış makale okumak istiyorsan git kendin yaz pis maymun. Gel buraya tüm makaleleri oku, bilgilieri al ardından höyt dini karştırmadan yazmayı öğren diye artislik yap. Hadi ordan hadsiz seviyesiz herif. Sonra neden bu ülke gelişmiyor diyorlar, işte bir örnek: yobazın biri gelip teşekkür ederim bilgini tecrübeni paylaşmışsın diyeceğine neden dini bulaştırıyorsun diyor. Bitmediniz gitti.

      Sil
  2. Bütün siteyi okudum. Kendi yolunu kendi bulmak zorunda kalan bir junior developer sitedeki anlatımlar bana çok şey kattı. Fakat bir süredir siteye yazı eklemeyi bıraktınız gibi oysa projeleri heyecanla bekliyordum. Lütfen devam edin. Buna benim gibi, bir çok kişinin ihtiyacı var.

    YanıtlaSil
  3. Aslında bıraktım demek doğru olmaz, mecburi bir ara vermek zorunda kaldım :( İşimi değiştirdim ve her yeni başlangıçta olduğu gibi yüksek bir tempo ile çalışmak zorunda kaldım. İşleri biraz yoluna koyduktan sonra inşallah kaldığım yerden devam edeceğim.

    Geri bildirim için teşekkür ederim bu arada.

    YanıtlaSil
  4. Allah razı olsun kardeş. Arada ince durumları kat da müslümanlar eksiklerini görsün.

    YanıtlaSil
    Yanıtlar
    1. Allah razı olsun. çok faydalı oldu.
      Devamını bekleriz.

      Sil
    2. Din bulaştırılmamış makale okumak istiyorsan git kendin yaz pis maymun. Gel buraya tüm makaleleri oku, bilgilieri al ardından höyt dini karştırmadan yazmayı öğren diye artislik yap. Hadi ordan hadsiz seviyesiz herif. Sonra neden bu ülke gelişmiyor diyorlar, işte bir örnek: yobazın biri gelip teşekkür ederim bilgini tecrübeni paylaşmışsın diyeceğine neden dini bulaştırıyorsun diyor. Bitmediniz gitti.

      Sil
  5. (h) (h) Yine harika bir makale stajdayım ve senior bana bu siteyi takip etmemi soyledı sanırım defteri bu makalelerle dolduracağım , elinize sağlık

    YanıtlaSil
  6. Hocam Angular 1 değil de Angular 2 derslerini siteye eklerseniz çok büyük bir fayda sağlamış olursunuz. Ellerinize sağlık anlatımlarınız muazzam

    YanıtlaSil
  7. https://forum.angular.web.tr Türkçe Türkiye özel paylaşım platformu açılmıştır.

    YanıtlaSil
  8. verimli, devamını bekliyoruz, herşeye rağmen:)

    YanıtlaSil

  9. My partner and I stumbled over here coming from a different page and thought I might check things out. I like what I see so now i am following you. Look forward to looking over your web page again. hotmail sign in

    YanıtlaSil

 
Top