Fırat Esmer

Microsoft Yazılım Teknolojileri

Microsoft Connect(); // 2016

Connect(); //2016

Microsoft'un 16-17 Kasım tarihlerinde düzenlediği Connect etkinliğinde hepimizi yakından ilgilendirecek gelişmeler açıklandı. Sadece Microsoft teknolojileri ile ilgili olmadığını vurgulamak istiyorum.

Etkinlikte çok sayıda gelişmeden bahsedildi fakat ben size bazı önemli olan açıklamaları yazacağım. Merak ediyorsanız tüm gelişmelere buradan ulaşabilirsiniz, 120'den fazla oturum var.

Mac için Visual Studio (Preview)

Microsoft'un açık kaynak koda yüzünü çevirmesi ile yaşanan gelişmelerin haddi hesabı yok. Linux tarafında yaşanan gelişmeler her ne kadar daha heyecanlandırıcı olsa da (benim için) Mac için de güzel gelişmeler var. Bunlardan birisi Visual Studio'nun Mac'te çalışacak olması. Her ne kadar tüm VS proje tiplerini desteklemese de native iOS, Android ve Mac geliştirme yapılabiliyor (teşekkürler Xamarin). İsmi Visual Studio olsa da aslında IDE Xamarin Studio tabanlı fakat UX Visual Studio'ya ait.

C# ve F# desteği mevcut. IntelliSense ve refactor ise Roslyn Compiler tabanlı. Ayrıca Xamarin ve .NET Core uygulamarı, Xamarin.iOS ve Xamarin.Android'de kullanılan debug motoru burada da var.

Daha fazla bilgi ve indirmek için buraya, etkinlik oturumunu izlemek için ise buraya tıklayabilirsiniz.

Visual Studio 2017 (RC)

Visual Studio 2017 yeniliklerinden bahsetmektense direkt olarak kaynak linki vereyim ve siz bakın. Çünkü Microsoft, Visual Studio 2017 için detaylı açıklamalarla ve resimlerle dolu bir sayfa hazırlamış. Buyrun, yeniliklere göz atmak veya indirmek isterseniz buraya, etkinlik oturumunu izlemek istiyorsanız buraya tıklayabilirsiniz. Ayrıca Visual Studio Team Foundation Server 2017 RTM de duyuruldu, yenilikler için buraya tıklayabilirsiniz.

Microsoft Linux Vakfı'na Platinum Üye olarak katıldı

Dediğim gibi, yeni bir Microsoft vizyonu hepimize iyi gelecek. Şimdiden hızlı gelişmelere şait oluyoruz. (Bu arada Platinum üyeler her sene 500.000$ bağış yapmalıymış. #HerGünGereksizBirBilgi)

Google ve Samsung .NET Vakfı'na katıldı

Samsung'u anlarım da Google'ın bunca zaman kötülüğünden sonra açıkçası biraz şaşırdım. Gözümde Evil Co. olarak mimlenmiş (bir diğeri de eski Microsoft), Windows Phone camiasına hiç uygulama yazmayan, yazanlara da karşı çıkan (Microsoft'un yaptığı uygulamalar kaldırılmıştı), API desteğini kısıtlayan bir şirketten bahsediyoruz. Neyse, sonuçta güzel bir hamle. Biz insanlar birlikten kuvvet doğduğunu biliyoruz ama firmalar kendi ürünlerine talebi artırmak adına bundan uzak duruyordu, yola geliyorlar. Gelecekler.

Samsung'un açık kaynak kod işletim sistemi Tizen'i duydunuz mu bilmiyorum fakat .NET desteğini duyurdu. 50 milyondan fazla cihazda (TV, IoT, mobil, giyilebilir teknoloji vs.) var olan Tizen için taze kan, .NET kullanmak için ise başka bir sebep.

Visual Studio için Tizen etkinliğini izlemek için buraya tıklayabilirsiniz.

SQL Server 2016 Service Pack 1 (SP1) duyuruldu

SQL Server 2016 SP1 ile gelen yenilik/değişiklik listesi için buraya tıklayabilirsiniz.

Linux için SQL Server duyuruldu

Bu duyuru var ya bu duyuru, muazzam yenilikçi bir duyuru. Artık Windows OS'yi kullanma zorunluluğunun olmadığı bir dünyada oyun baştan aşağı değişecektir. (Bir yerde okumuştum SQL Server'ın yeniden yazılması söz konusu değil, sadece çerçevesi değiştirilmiş.)

Etkinlik oturumunu izlemek için buraya tıklayabilirsiniz.

Bu duyuruların dışında

  • .NET Core, ASP.NET Core, Entity Framework Core 1.1,
  • Visual Studio Mobile Center Preview.

duyuruları da yapıldı. Etkinlik ile ilgili kısa kısa notlar, haberler ve açıklamalar içeren bu sheet'e göz atmanızı öneririm.

Ek olarak, Microsoft Türkiye Blog sayfasında duyuruları Türkçe bulabilirsiniz.

UWP Community Toolkit

UWP Community Toolkit

Hatırlarsınız eskiden Microsoft'un ASP.NET projelerinde kullanılması için hazırladığı fakat herkesin kullanırken 2 kere düşündüğü 2.sinde ise vazgeçtiği bir AJAX Toolkit'i vardı. Daha sonra AJAX Toolkit'in yerini DevExpress, Telerik vs. gibi hazır kontroller sunan 3.parti kütüphaneler almıştı. Sebebi basit; ihtiyaçtı. Şimdi size anlatacağım UWP Community Toolkit de bu duruma benzer konumda.

UWP, Windows SDK'nın güncellenmesi ile beraber yeni özellikler kazanan bir platform fakat insanların ihtiyaçlarını karşılama konusunda yetersiz olduğu anlar da olabiliyor. Microsoft bunu görüp açık kaynak kodlu bir toolkit hazırlamış: UWP Community Toolkit. Eğer UWP için kod yazdıysanız ne dediğimi anlıyorsunuzdur. En basit örneğiyle Facebook veya Twitter mobil uygulamalarında yukarıdan aşağıya çekildiğinde veri kaynağını güncelleyen bir kontrol (PullToRefreshList) olsa da (hazıra konmak evet) bunu uygulamamızda kullansak demişsinizdir. İşte UWP Community Toolkit ile mümkün.

UWP, HoloLens'ten IoT'ye, Xbox'dan mobile kadar her platforma hitap ettiği için bir çok alanda kullanılabiliyor. Gelelim içerisinde neler olduğuna...

Toolkit 4 bölümden oluşuyor :

  1. Kontroller (HamburgerMenu, AdaptiveGridView vs.),
  2. Servisler (Bing, Facebook, Twitter, LinkedIn vs.),
  3. Bildirimler (LiveTile, Toast vs.),
  4. Animasyonlar (Fade, Scale vs.).

Ek olarak yardımcı metotların (HttpHelper, ImageCache vs.) da bulunduğunu söyleyeyim.

Ben bu yazıyı yazarken versiyon 1.2 de yayınlanmış. Hazır yayınlanmışken incelemek isteyenler için kaynakların arasında onu da belirteyim.

UWP Community Toolkit v1.1 duyurusu için buraya,

UWP Community Toolkit v1.2 duyurusu için buraya,

Kaynak koduna (GitHub) ulaşmak için buraya, dokümantasyona ulaşmak için buraya, örnek uygulamalara indirip denemek isterseniz de buraya tıklayabilirsiniz. UWP Community Toolkit'i kullanacaksanız demoya kesinlikle bakın. İçerisinde direkt hazır XAML kodu bile var. İşinizi kolaylaştıracaktır.

Biraz fazla link verdim farkındayım fakat neler olup bittiğini öğrenmek istiyorsanız aradığınız her şey burada var. Son olarak, versiyon 1.3'te neler olacağını (Roadmap) görmek isterseniz de buraya tıklayabilirsiniz.

Son olarak nasıl indiririm diyenlere => Buyrun UWP Community Toolkit Nuget paketleri

NOT

  1. Visual Studio yüklediğinizde umarım Universal Windows App Development Tools seçeneğini seçmişsinizdir. Bu şartlardan ilki (Visual Studio kurulumu esnasında seçmediyseniz daha sonra installer üzerinden ekleme yapabiliyorsunuz),
  2. UWP uygulamarınızın çalıştırılacağı Windows 10 versiyonu minimum 10586 olmalı.

Bol linkli yazının bonusu

Template 10 - UWP Template Eklentisi

Son zamanlarda UWP (Universal Windows Platform) ile ilgileniyor olmam sayesinde yeni şeyler öğrendim, bu öğrendiklerimi parça parça -eğer siz de Windows 10 uygulama geliştirme işleriyle uğraşıyorsanız- anlatmak isterim. Bunların başında bir template geliyor ve bu template aslında yapmanız gereken işlerin %80'ini sizin için yapıyor. Tamam da neden buradan başlıyoruz? Hemen konuya girelim.

Geçmişte WPF uygulamalar yaptıysanız yani az da olsa XAML/C# biliyorsanız UWP sizin için zor olmayacaktır. Çünkü XAML ile ilgili çok fazla değişiklik yok. UWP'de olup WPF'de olmayan veya tam tersi gibi bir durum söz konusu fakat işler bizler için zorlaşmamış aksine kolaylaşmış. Compiled Binding (x:Bind) işlemlerinden event binding'e çok güzel özellikler eklenmiş ki konumuz bu değil buna ileride de değinmek istiyorum.

Gelelim template (şablon) mevzusuna. UWP application tasarımı için Microsoft'un geliştiricilere sunduğu bazı kurallar var ve sizlerden bunlara uymanız bekleniyor. Uymadığınız takdirde en fazla mağazaya uygulamanız kabul edilmez. Kısacası araştırmam ihtiyaçlarımdan doğdu ve tasarım yapmaktan hiç hoşlanmıyorum, külfet geliyor bana. O yüzden Jerry Nixon adında Microsoft çalışanı abimiz demiş ki "Bir template olsun içerisinde Hamburger Menu'den navigation service'e, Dependency Injection'dan Messenger'a, MVVM'den behavior'lara ve White/Dark tema desteğine kadar her şey olsun ve bu template bir de open source" olsun demiş. Çok da iyi demiş.

Tüm Windows cihaz ailesi ile uyumlu mu bilmiyorum fakat telefon/tablet ve bilgisayarlarda uygulama çok güzel görünüyor. VisualStateManager dahi eklenmiş, ekran küçüldüğü zaman siz bir şey yapmıyorsunuz, Hamburger Menu'nün görünümü kendisi değişiyor. Control görünümü ile ilgili değişiklikleri eklemeniz gerekiyor hepsi bu. Bir örnek göstereyim.

Kısacası sizin layout ile ilgili yapmanız gereken çoğu şey yapılmış. Sürekli sadece layout yükmüş gibi bahsediyorum ama MVVM implement edilmiş, ayarlar konmuş, splash screen'i hazır, NavigationService metotları "buyrun size nasıl yardımcı olabilir" der gibi gözlerinizin içine bakıyor.

Windows SDK Güncellendiğinde Ne Olacak?

Windows işletim sistemi ara ara büyük güncellemeler alıyor ve SDK'lar güncelleniyor. Windows 10 yayınladığı günden bu yana 10240, 10586 ve Anniversary Edition 14393 (Yıldönümü Güncellemesi) versiyonları çıktı ve T10 da bu hıza ayak uydurabiliyor. Hatta Windows Insider (beta katılım) sayesinde yayınlanmadan önce ne gibi değişiklikler geleceği, nelerin değişmesi gerektiği gibi kritik adımları önceden tespit edip T10'u güncelliyorlar. Buna da bir örnek vereyim. Windows 14393 ile gelen UI değişikliklerinden birisi de Hamburger Menu'de seçili olan item'ın solunda "seçili olduğuna dair bir ifade beliriyor" bu da T10'da var.

Soldaki image Windows'un ayarlar menüsü, sağdaki ise benim T10 Template kullanarak yarattığım bir application'ın menüsü.

Gördüğünüz gibi Windows üzerinde yaşanan değişiklikler de T10 Template'e ekleniyor. Ayrıca sizi temin ederim ki güncellemenin çıkmasıyla NuGet üzerinden uygulamamı güncelledim.

T10'u Kullanmalı mıyım? Neden?

UWP için uygulama hazırlayacaksanız kullanmanızı öneririm. Sebepleri ise:

  1. Microsoft'un, dediğim gibi uygulamanızı hazırlarken uymanızı istediği Windows uygulamarına ait belli bir tasarım kalıbı var. Nasıl Google'ın Material Design'ı varsa aynısı Microsoft için de geçerli. Sebebi ise göze ve kullanıma uygun olması,
  2. Sizi bir çok kod yazma işinden kurtarıyor. Dediğim gibi kendi içerisinde implement edilmiş (ve eklenmeye devam edecek) servisler, metotlar var,
  3. Uygulama open source (açık kaynak) ve GitHub üzerinde talepleriniz ciddiyetle dinlenip uygulanabiliyor.

Bu arada size 3 farklı şablon seçeneği sunuluyor. Bunlar :

  1. Blank,
  2. Hamburger,
  3. Minimal.

Evet geldik bu şablonu nerede bulabileceğiniz konusuna. T10 hakkında kod örnekleri, yol haritası, hatalar veya geliştirmeler, Wiki gibi bilgilere GitHub üzerinden erişebilirsiniz. Eklentiyi (template) direkt indirmek istiyorsanız Visual Studio'nun eklentiler kısmından (Tools -> Extensions & Updates) aratarak veya Visual Studio Gallery üzerinden indirebilirsiniz.

NOT : Visual Studio 2015 için geçerlidir.

Hoşgeldin .NET Standard

Microsoft'un cross platform vizyonu ile değişikliğe uğrayan .NET kütüphanesinin son adımı .NET Standard oldu. Kısaca .NET Standard nedir, neden böyle bir şey var bunlardan bahsedelim.

Microsoft, son zamanlarda "One [X] to rule them all" (hatırlayın UWP) mottosu .NET kütüphanesine dokundu ve artık .NET kütüphanesinin (aslında API'lerinin) her yerde kullanılabileceğinin işareti verilmiş oldu. Böylece diğer platformlarda da aynı kütüphanenin kullanılmasının önü açılmış oldu.

Öncesinde .NET Framework, .NET Core ve Xamarin'in kendine ait kütüphaneleri vardı, şimdi ise hepsinin temelinde .NET Standard bulunuyor. Böylece .NET'in sahip olduğu tüm API'ler tüm platformlarda kullanılabilecek. Evet, Portable Class Library (PCL) artık yok.

Birden fazla ortamda kod yazmanın farklı kütüphaneleri kullanma gerekliliğinin tek bir çatı altında toplanmasından ne eksik ne de fazla .NET Standard. Bu arada, .NET Standard 2.0'dan bahsediyoruz. 1.0 nerede? O zaten vardı, .NET Core 1.0 ile gelmişti. Hatta şu alanlarda kod yazanlar bilir => .NET Core 1.6, .NET Framework 4.5+, Universal Windows Platform 10.0.

.NET Standard'ın modelde nerede olacağını aşağıdaki resimlerden görebilirsiniz.

  

.NET Standard yokken

.NET Standard varken

Microsoft .NET Blog sayfasındaki haber ile ilgili makaleyi okumak için buraya tıklayabilirsiniz.

Visual Studio Eklentisi - UWP Tile Generator

Windows 10 piyasaya sürüldükten sonra Universal Windows Platform (UWP) ile ilgili biraz araştırma yapıp bir kaç ufak uygulama geliştirmiştim. Uygulama geliştirme esnasında kolaylık sağlayan bir kaç ipucundan bahsedeceğim. Bu başlık altında bunlardan bir tanesi olan UWP Tile Generator eklentisinden bahsedeceğim. Nedir bu eklenti, ne işe yarar? Başlayalım...

Windows 10 bize ne demişti? Tüm cihazlar tek bir işletim sistemi çalıştıracak, tek bir market altında tüm uygulamalara ulaşılabilecek. Bunun önünü açan tabi ki UWP'den başka bir şey değil. E tabi bunun yanında ufak bir kaç sorun geliyor mesela her cihazın ekran boyutu farklı olduğu için açılış ekranında gözüken resim (splash screen) veya işletim sisteminin başlat menüsünde bulunan kutucuğun boyutu (small, medium, wide, large) da değişken olabiliyor. Zaten Windows mağazasına koyacağınız UWP uygulamanızın farklı ekran boyutlarını destekliyor olması lazım. Sebebi de aşağıda belli.

Windows Phone Emulators

Hal böyle olunca uygulamanın package.appxmanifest kısmında istenilen oranlarda uygulamanızın kaynağını (Tile Image & Logo, Splash Screen, Badge Logo) yüklemeniz gerekiyor.

Visual Studio üzerinde UWP uygulaması açtığımızda default olarak Assets klasörü altında 7 adet dosya oluyor fakar bunlar boş içerikli.

UWP Assets

Şimdi tek bir tıkla tüm boyutlarda kaynak üretebildiğinizi düşünün. İşte burada UWP Tile Generator eklentisi devreye giriyor. Tüm hepsini silin ve bir tane bırakın. O da sizin default kaynak dosyanız olsun. Örnek olsun diye Microsoft logosunu koyacağım.

NOT :

  • Eklentiyi kullanabilmek için Visual Studio 2015 versiyonları dışında çalışmamaktadır. Zaten UWP development için Visual Studio 2015'e ihtiyacınız var,
  • .PNG uzantılı olmasına, 400x400 boyutundan daha büyük ve padding olmamasına dikkat edin aksi takdirde uyarı almanıza rağmen çalışacaktır fakat kötü bir görüntüye sahip olacaktır.

Assets altında bulunan tek dosyamıza sağ tıklayıp "Generate UWP Tiles (ve Splash)" dediğinizde ise size ihtiyacınız olan tüm boyutlarda dosyaları hazırlayıp Assets klasörü içerisine yerleştirecek. Durun, bitmedi! Package.appxmanifest dosyasında da (bu dosya uygulamanızı mağazaya koymadan önce gerekli ayarları barındırıyor) gerekli yerlere koyuyor bunları. Size ise sadece uygulamayı çalıştırmak kalıyor.

Çıktıyı ve programın açlış görüntüsünü gösterelim ve bu işi bitirelim.

Visual Studio Assets

UWP Splash Screen

(Uygulamanın arka plan rengini blog renginden ayırmak için kararttım)

Son olarak başlat menüsünde Tile Image'a bakalım. Wide'da böyle görünüyor.

Siz de benim gibi bu tür görsel işlerle uğraşmaktan nefret ediyorsanız buyrun eklentiyi kullanın.

Eklentiyi indirmek (ücretsiz) için buraya tıklayabilirsiniz, görüşmek üzere.

Desktop App Converter Hazır

Microsoft'un mağaza uygulama çeşitliliğini ve sayısını artırmak ve daha önceden yazılmış .NET kodunun tekrar tekrar yazılmasını engellemek adına Windows uygulamalarınızı (.NET Framework 4.6.1 veya Win32) Universal Windows Platform'a (UWP) çevirmenizi mümkün kılan aracı Desktop App Converter indirilmeye hazır.

Microsoft'un yeni vizyonunun bir parçası olan ve Windows 10'un piyasaya sunulması ile her ürün ailesinin aynı uygulamayı farklı cihazlarda çalıştırabilmesi için yazılımcılara kolaylık sağlayan bu araç aslında sadece komut isteminden ibaret. Uygulamanızın nerede olduğunu ve çevrilmiş halinin de nereye konulacağını (bunun yanı sıra yayıncı, versiyon vs.) parametreler şeklinde sizden istiyor ve son kalan işlem de bunu deploy etmek oluyor. Ortaya nasıl bir şey çıkıyor denemedim, ihtiyacım olana kadar da denemeyi düşünmüyorum. Fakat siz merak ediyorsanız;

Windows mağazasından indirmek için buraya, hakkında detaylı bilgi almak için de buraya tıklayabilirsiniz.

MSDN üzerinde bulunan teknik detayları da buradan görebilirsiniz.

LG - Şikayet

LG

Merhaba arkadaşlar. Gün geçmiyor ki kapitalist sistemin "rekabet kaliteyi artırır yalanıyla" yine çok uluslu bir firmanın mağduriyetini yaşamayalım. Bu sefer bize kazık atan firma : LG.

"Merhaba. Benim param var ve paramla hizmet satın alıp mağduriyet yaşamak istiyorum." mu diyorsunuz? O halde doğru yerdesiniz. LG, Life is Good. Life is Good çünkü sattıkları ürünlerin hizmetini sağlayamıyorlar. Yani hayat onlara güzel, bize değil.

Anneme ait LG G2 model telefonumu dün Android 4.4.2 (KitKat) versiyondan Android 5.0.2 (Lollipop) versiyonuna yükledim. Yüklemeden önce de tüm medya dosyalarını manuel yedekledim. Geri kalan tüm uygulamaları, rehberi, ayarları ve mesajları ise LG'nin resmi (official) Windows uygulaması LG PC Suite aracılığıyla yedekledim. Anlayacağınız kafam rahat, güncelleme de bitmiş şimdi yapılması gereken tek şey yedeği geri yüklemek... Ve Murphy Kanunları devreye girer. Yapılması gereken tek ve en önemli iş olan yedeği yüklemek terleten boyutlara ulaşmaya başlar. Söz konusu elektronik ortamda bir sorunu gidermekse genelde içimiz rahat olur çünkü her şeyin bir çözümü internetin en derin ve karanlık köşesinde de olsa bulunur ve çözüme kavuşulur. Benim sorunum için yapılacak hiçbir şey yoktu, çünkü LG'nin resmi uygulaması LG PC Suite yedeği yükleme işlemi çalışmıyormuş. Evet, çalışmıyormuş. %100'de takılıyor, devamı gelmiyor.

Tabi ben daha umudumu yitirmeden önce LG destek sayfasına girdim. Baktım ki destek birimiyle chat yapabiliyorsunuz fakat gece geç saatler olduğu için ben de ABD merkezli desteğe bağlandım. Konuştuk ve bana sunabildikleri tek çözüm yedeği yükleme işleminde %100 olsa bile 3-4 saat beklememmiş. Ben de bir bildikleri vardır diye bekledim fakat 20-30 dk. sonra uygulama kendisi "telefonunuzun bağlantısı koptu" diye uyarı veriyor ve işlem iptal oluyor. Yani bırakın 3-4 saati yarım saat bile bekleyemiyordum, yani tırt. Bir daha bağlandım. Nereden bağlanıyorsunuz dedi ben de dürüstçe (?) Türkiye dedim ve o an anladım. "O halde LG Türkiye ile irtibat kurmanız gerekiyor" dediler. "Ne alaka peki?" dedim. Dil ayarları farklı filan sıktılar 1-2 şey ve kapattık. Sabah oldu LG Türkiye müşteri destek ile chat yapmaya başladım. Dedim ki "yazılımcılarınıza söyleyin, yapamayacaklarsa programı bana haber verin ben yapayım bari?" Çünkü çalışmayan bir programa güncelleme yayınlamak, güncelleme kontrolü yaptırmak nedir yani... LG Türkiye ise daha büyük bir komediye imza attı. Telefonumun IMEI numarasını istediler, verdim. Bu telefon LG Türkiye adına kayıtlı değil, nereden aldıysanız orası ile irtibar kurun dediler ve kapattılar. Bu telefonu da abim senelerce önce internet üzerinden fakat Türkiye'den aldı. Düşünsenize ben bunu X.com adlı bir siteden alıyorum ve satın aldığım yer ile irtibat kurup "LG PC Suite programı yedeği yükleyemiyor ne yapmamız lazım?" diyorum. Böyle saçmalık mı olur be? Adam "Ne bileyim ben? Programı yazan ekipten biz mi sorumluyuz?" diyecek haklı olarak. Geriye de LG kalıyor fakat LG de yardımcı olmuyor.

Şimdi saçmalıkları bir sıralayalım:

  1. Böylesine ciddi bir durumda kronik soruna sebep olan yazılımın LG'ye ait olması yüz kızartıcı,
  2. Telefonumun sistemde bulunamaması bir facia,
  3. Programda bulunan bir soruna yaklaşım biçimleri önce müşteri olup olmadığınızla başlıyor. Programda hata varmış, şirkete zarar verebilirmiş, müşteri desteği kalitesi filan bunlar yalan dolan arkadaşlar. Bu sözler bu toprakları terk edeli çok oluyor,
  4. Bu program öyle geliştirilmesi yıllar önce bitmiş bir program değil, ara ara güncelleme almasına rağmen bu sorun devam ediyor.

Sorunun programda değil de telefonda olmadığını nasıl anladım? İnternette sorunla ilgili arama yaptığım an umudumun kalmadığını anladım. Herkes aynı sorundan muzdarip. Sadece G2 de değil. G3'te de aynı sorun var G4'te de, G5'te de. Kimse aldığı yedeği tekrardan telefonuna yükleyemiyor.

Yine olan bize oldu. Verilerimizi kaybettik az buz değil. Dijital ortamda başınıza gelebilecek en kötü senaryolardan birisi bana göre.

Üstad George Carlin bundan bahsetmişti : "Reklam Ninnisi"

İzlemeyeceğim özet geçer misiniz diyenlere buyrun :

Bir daha LG AS-LA.