Osman KURT

Yazılım Uzmanı | C# Yazılım Uzmanı | MVC Eğitmeni

React Native nedir?

React, Facebook yazılım ekibi tarafından geliştirilmiş bir JavaScript kütüphanesidir. Geliştiricilerin işlemleri daha kolay hızlı ve derli toplu yapmalarını amaç edinmiştir.

Bunun yanı sıra esas yazımızın konusu olan react native diye bir zımbırtı var. O da react yapısını kullanarak native mobile uygulamalar geliştirmenizi sağlayan bir kütüphanedir. Ya da bir diğer adı ile (Functional programming) fonksiyonel programlama dilidir.


Bu program ya da kütüphane size javascript kullanarak mobile uygulama geliştirmenize yardımcı oluyor. Bunu yaparken sizi HTML ve CSS ile uğraştırmıyor. Browser bağımsız bir yapıya sahip. Kendine has bir kod bloğu var ve sadece bunu web tabanlı render ediyor. Siz mobil bir uygulama geliştirdiğinizde ise kendi yapısını IOS ve android dillerine başarılı şekilde render edebiliyor.

Neden react native kullanmalıyız.

Birçok neden sayabilirsiniz aslında. Ben açıkça söylemekten çekinmeyeceğim uygulamaları kendi dillerinde yazmayı seven ve destekleyen bir geliştiriciyim. Çünkü elinde sonunda alınan çıktı hep kendi öz çıktısı. Bu biraz Tofaş bir arabaya BMW motoru takmak gibi oluyor benim gözümde.

Ama iyi yanlarından bakacak olursak 2 birim zaman da yapılan bir geliştirme bu kütüphane sonucunda 1 birim zamanda üretilebilecek. Yani hem android hem ios developer çalıştırma durumunda kalmayacak firmalar. Diğer bir faydası ise yapılacak bir geliştirme ya da bug fix aynı zaman da her iki proje içinde geçerli olacak ve zaman tasarrufu sağlanmış olacak.

Öğrenmekte fayda var çünkü arkasında Facebook gibi bir dev var ve gelişmeye devam edecek bir teknoloji.

Görüşmek üzere,

Osman KURT

Custom Validators Kullanımı

Merhabalar,

Bu örnek daha önceki yazılarımdan fluent validation kullanıma ek olarak yazıldı. Mesela elimizde bir Array olsun ve bu Array üzerinden item kontrolü yapalım. Bu örneği sadece item kontrolü olarak düşünmeyelim de özelleştirilmiş kontrolleri buradan yapabileceğimizi düşünelim.

Basit ama işinize yarayacak bir örnek.

public class PersonValidator:AbstractValidator<Person> { 
  public PersonValidator() {
   RuleFor(x => x.Pets).Must(list => list.Count <= 10).WithMessage("Hata Mesajı");
  }
}

Osman KURT

VueJS Nedir? Kullanımı ve Örnekleri

VueJS Nedir?

VueJS yazılımın front-end tarafını daha kolay ve kullanışlı bir hale getirmek için geliştirilmiş bir script kütüphanesidir. Öğrenmesi kolaydır ve yavaş yavaş ülkemizde içerik oluşmaya başlamıştır. Birçok büyük ölçekli projede firmalar tarafından kullanılmaya başlanmış ve artık iş ilanlarında VueJs bilen front-end developer aranıyor yazılarını görmeye başlamamız an meselesi.

Gelin birkaç küçük örnek görelim,

<script src="https://unpkg.com/vue/dist/vue.js"></script>
 
<div id="app">
  <p>{{ message }}</p>
</div>
 
<script>
var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue.js!'
  }
})
</script>

VueJS ile Listeleme (Repeater)

VueJS ile listeleme işlemi AngularJS sözdizimine oldukça benzer. v-for=“data in list” şeklinde bir kullanım ile tanımlandığı html tagını listedeki elemanlara göre tekrarlar. aşağıdaki örneği inceleyin

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<div id="app-4">
  <ol>
    <li v-for="todo in todos">
      {{ todo.text }}
    </li>
  </ol>
</div>
 
<script>
var app4 = new Vue({
  el: '#app-4',
  data: {
    todos: [
      { text: 'Bilgisayar Mühendisliği' },
      { text: 'Endüstri Mühendisliği' },
      { text: 'Elektronik Mühendisliği' }
    ]
  }
})
</script>

VueJS ile Method Kullanımı

VueJS ile method tanımlamak kolaydır anlaşıldığu üzere bu framework’un genel yapısı JSON yapısını kullanır aynı şekilde metotları da json değişkeni şeklinde tanımlayabilirsiniz. standart kullanıcı işlevlerini de v-on:click=“metotismi” şeklinde html etiketine tanımlayabilirsiniz.

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<div id="app-5">
  <p>{{ message }}</p>
  <button v-on:click="reverseMessage">Yazıyı Ters Çevir</button>
</div>
 
<script>
var app5 = new Vue({
  el: '#app-5',
  data: {
    message: 'Merhaba Dünya'
  },
  methods: {
    reverseMessage: function () {
      this.message = this.message.split('').reverse().join('')
    }
  }
})
</script>

VueJS ile Model Kullanımı

VueJS’de input elemanlarına v-model=“degiskenismi” şeklinde veri bağlayabilirsiniz. ve herhangi bir etki ile model güncellendiğinde siz bir tetikleme yapmadan input değerleri güncellenecektir.

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<div id="app-6">
  <p>{{ message }}</p>
  <input v-model="message">
</div>
 
<script>
var app6 = new Vue({
  el: '#app-6',
  data: {
    message: 'Hello Vue!'
  }
})
</script>

VueJS ile Component Kullanımı

VueJS ile kendi komponentlerinizi yazabilir html içerisinde bunları render edebilirsiniz. bu şekilde çalışmak işinizi hızlandıracaktır ayrıca komponent kullanımı ile bir kez yazdığınız arayüz parçalarını bir çok projede kullanabilirsiniz. Html içerisinde şeklinde özel etiketler oluşturmanıza izin verdiği için kullanım kolaylığı sağlamaktadır.

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<div id="app-7">
  <ol>
    <todo-item v-for="todo in todos" v-bind:todo="todo"></todo-item>
  </ol>
</div>
 
<script>
Vue.component('todo-item', {
  props: ['todo'],
  template: '<li>{{ todo.text }}</li>'
})
var app7 = new Vue({
  el: '#app-7',
  data: {
    todos: [
      { text: 'Learn JavaScript' },
      { text: 'Learn Vue' },
      { text: 'Build something awesome' }
    ]
  }
})
</script>

Güzel bir başlangıç olsun, kolay gelsin :)

Osman KURT
Yazılım Uzmanı

Elon Musk ve Jeff Bezos Toplantı Kültürü

Çoğu zaman yaptığımız iş toplantıları amaçlarına hizmet edemeyebilir. Hedeflerine istikrar ile yürüyen Elon Musk ise tüm toplantıları verimli hale getirebilecek bir yönteme sahip. Eski bir Space X çalışanı Skyler Shuford Quora’da Elon Musk’ın verimliliğiyle ünlü toplantıları nasıl yaptığını açıkladı. Shuford‘ın arkadaşı üzerinden anlatılan bu küçük anekdot şöyle:

“En yakın arkadaşlarımdan biri benden birkaç yıl önce orada çalışmaya başlamıştı. Analiz grubunda çalışıyordu (Hala da orada çalışıyor). Dolayısıyla gidip sadece bir soru sorarak işi çözebilecekken toplantı yapmak pek de mantıklı olmuyor.  Arkadaşım bir keresinde benimle bu konu hakkında bir anısını paylaşmıştı (burada durum farklı sözcüklerle açıklanmıştır):

Elon bir toplantı katılımıcısına şöyle der: “Hiçbir şey söylemedin. Neden buradasın?”

Shuford Elon’un bu tutumunu ise şu şekilde yorumluyor: “Bu sınırı aşan bir şekilde kaba bir davranış olabilir ancak mantıklı. Eğer bir amacınız yoksa o toplantıya katılmayın. Bu amaç bir karar vermek de olabilir insanlara hız katmak da… Bir çok durumda e-posta göndermek yeterli olacaktır.”

Shuford ayrıca saat başına 80 ile 100 dolar arası bir ücret alan mühendislerin toplantı yapmasının şirkete büyük bir maliyet getirdiğini vurguluyor. 10 Mühendisin katıldığı 1 saatlik toplantı şirkete 1000 dolara mal oluyor.

Toplantılar konusunda her CEO’nun farklı bir görüşü var. Amazon CEO’su Jeff Bezos da toplantılar için iki orta boy pizza kuralını kullanıyor. İki orta boy pizza kuralına göre, eğer bir toplantıda katılımcılara 2 orta boy pizza yetmiyorsa o toplantı çok kalabalıktır ve verimsiz geçecektir.


React.js Nedir?

Reactjs son zamanlarda özellikle son bir yıldır yaygın olarak kullanılmaya başlanan bir javascript framework. İçeriğin zaman içinde değiştiği interaktif uygulamalar için oldukça etkili bir yönetilebilirlik sunan bu teknoloji, zamanla çok daha yaygın hale gelecektir.

Halihazırda dünya genelinde kullanım oranına bakılırsa java script framework listesinde Angular Js sonrasında ikinci sırada yer alıyor.

Kısaca bakmak gerekirse zamanında Facebook mühendisleri tarafından geliştirilmiş bir teknoloji. Yüzlerce geliştiricinin aynı zaman zarfında proje üzerinde çalışmasına kolay şekilde olanak veren, etkili bir DOM yönetimi sağlayan bir proje.



Facebook mühendisleri kardeşlerimiz sırf kendi işleri kolaylaşsın diye böyle bir geliştirmeye gitmişken, sonrasında yapılan instagram satın alımı ve instagram mühendislerinin biz de kullanmak istiyoruz demesi üzerine, mucitlerinin ve yöneticilerinin yahu biz neden bunu open source olarak insanların kullanıma açmıyoruz demesi üzerine biz developer kulların kullanımına açılmıştır.

Birkaç örnek inceledikten sonra eminim ki kullanım alanlarını farkedecek ve projelerinizde deli gibi kullanmak isteyeceğiniz bir framework. Ayrıca maliyet hesabı yapan bütün herkesi mutlu edecek bir yapıya sahip.

Kurulum ve dosyalar için;

https://facebook.github.io/react/

Osman KURT
Yazılım Uzmanı

AngularJs ile Listeleme Yapmak

Merhaba arkadaşlar,

İlk olarak bir adet MVC projesi oluşturuyoruz ve projemize nuget paket olarak AngularJs kuruyoruz.

install-package angularjs

install-package angularjs.Route

Gerekli kurulumları yaptıktan sonra alt kısımda bulunan kod parçalarını ilgili yerlere ekleyerek listemizi görebilirsiniz.

Index.cshtml

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div ng-app="myApp" ng-controller="myController">
        <div ng-repeat="kisi in kisiler">
            <span>{{kisi.AdSoyad}}</span> <span>{{kisi.Yas}}</span>
        </div>
    </div>

    <script src="~/Scripts/angular.min.js"></script>
    <script type="text/javascript">
        (function (angular) {
            function Controller($scope, $http) {
                $http.get("/Home/UserList").then(function (response) {
                    $scope.kisiler = response.data;
                });
            }
     angular.module("myApp", []).controller("myController", ["$scope", "$http", Controller]);
        })(angular);
    </script>       

</body>
</html>
 public class User
    {
        public string AdSoyad { get; set; }
        public int Yas { get; set; }
    }

HomeController.cs

public JsonResult UserList()
    {
        List list = new List();
        list.Add(new Models.User() { AdSoyad = "Osman KURT", Yas = 30 });
        return Json(list, JsonRequestBehavior.AllowGet);
    }

Görüşmek üzere
Osman KURT
Yazılım Uzmanı


İşin Olsun, Mavi Yaka İş İlanları

Kariyer.net ’den mavi yakalılara özel bir uygulama geldi.

İster işveren olun ister mavi yakalı bir aday, artık tek bir uygulama üzerinden istediğiniz eleman ve işe en kolay şekilde ulaşabileceksiniz. Karmaşık ilan detaylarında boğulmadan, uygulama içinde ki harita üzerinden firmanın lokasyon bilgisini görerek hatta evinize en yakın iş fırsatlarını listeleyerek hızlıca irtibata geçebilir ve yeni bir işe sahip olabilirsiniz.



Alija İzetbegovic | Uluslararası Bilim Olimpiyatı

Teknolojinin bireyler arasında hızla yayıldığı, yenilenme ve geliştirme süreçlerinin kısaldığı günümüzde, yenilikçi projelerin üretilmesi, genç neslin bilime olan ilgilerinin arttırılması, teknolojik yükselişin devamlılığı için uluslararası gereklilikler arasında gösterilmektedir.

Ülkemizde, aynı gerçekten hareketle gençlerimizin, serbest zamanlarının, eğitim, bilim, sanat, kültür faliyetleri içerisinde bulunmalarının sağlanması ve sosyokültürel gelişimlerinin temini için bilimsel gelişim ve üretim faaliyetlerinin desteklendiği hizmetler yürütülmektedir.

Çekmeköy Belediyesi, ülke vizyonuna uygun ve ilçemizin etkinliğinin arttırılması amaçları ile uluslararası lise düzeyi etkileşimin arttırılacağı ve süreklilik halinde yinelenen bir Bilim Olimpiyatı organize etmektedir.

PROJE AMAÇLARI

Gençlerin bilim ve barış vizyonu ile Uluslararası diyalog oluşturması,

Yurt Dışı Türkler ve Akraba Topluluklar ile etkileşimlerin desteklenmesi

Gençlerimizin Bilim, Kültür ve Sanat ilgilerinin arttırılması

Yenilikçilik Kültürünün genç nüfus arasında yaygınlaştırılması projemizin başlıca amaçları arasında gösterilebilir.

PROJE GEREKÇELERİ

Çekmeköy Belediyesi, etnik ve ideolojik ayrımlar ile sınırların belirlendiği günümüz dünyasının, barış içerisinde yaşanabilir bir dünyaya dönüşümünü gerçekleştirebilmek için evrensel bir sorumluluk üstlenmiştir. Uluslararası diyalog ortamlarının gelişeceği, yenilikçi teknolojilerin uluslararası arenada etkin olacağı bir neslin yetişmesi ve mavi kürenin barış içerinde bir araya geleceği bir organizasyon hedeflenmektedir. Bu sebepler ile Yenilikçi ve Üretken Gençlik, Üretken Yeni Nesiller vizyonu ile belirlenen hedeflerin gerçekleştirilebilmesi için bir Uluslararası Bilim Olimpiyatı projesini hayata geçirilmiştir.

Yarışmaya tüm ülkelerden lise ve düzeyi öğrenciler ile üniversite öğrencileri katılabilir. Öğrencilerin ülkelerinde geçerli referanslar elde edebilmeleri amacı ile Avrupa’da, Asya’da, Afrika’da, Avustralya’da ve Amerika’da, Üniversiteler ile iş birliği yapılmıştır. Verilecek yetki yarışmada final sergisine katılmaya hak kazananlara tanınacak ünvan (Ülke birincisi, Kıta derecesi vb.) ve derecelerin akredite edilmesi içindir.

Yapılacak etkinlik dahilinde hedeflerimizin gerçekleştirilebilmesi amacı ile 3 farklı kategoride Bilimsel Yenilikçilik Yarışması düzenlenecektir. Uluslararası diyalog ortamının kurulması ve geliştirilmesi sağlanacaktır. Genç nüfusun ilgisinin ve ileride oluşacak iş gücü potansiyelinin söz konusu toplantılar ile etkileneceği düşünülmektedir. Bu çerçevede planlanan organizasyon, belirlenen hedefler doğrultusunda gerekçelendirilmiştir.

KATEGORİLER

ARAŞTIRMA PROJELERİ

TEKNOLOJİ PROJELERİ

ENERJİ VERİMLİLİĞİ PROJELERİ

Ulaşmak için tıklayınız.

C# ile HTML Kodlarını Temizleme

Merhabalar,

Bugün sizlere bazı text içeriklerde gelen html kodlarının Regular Expression ile nasıl temizlenmesi gerektiğini anlatacağım.

public static string RemoveHtml(string text)
{
     return Regex.Replace(text, @"<(.|\n)*?>", string.Empty);
}

Osman KURT
Yazılım Uzmanı

MSSQL Üzerinde Sayfalama İşlemi

Merhabalar,

MSSQL 2008 ve MSSQL 2012 de sayfalama işleri nasıl yapılır.

MSSQL 2008

Declare @pageNumber INT=2;
Declare @totalPage INT=3;

WITH PageList AS
(
SELECT ROW_NUMBER() OVER(ORDER BY ID) AS LineNo, m. * FROM Pages as m
)

SELECT *
FROM PageList
WHERE LineNo BETWEEN (@pageNo - 1) * @totalPage + 1
AND @pageNo * @totalPage

MSSQL 2012

Yukarıdaki ROW_NUMBER() performansımdan ve daha kolay kullanım sağlamak için yeni geliştirmeler bulunmaktadır.

SELECT * FROM Pages
ORDER BY ID ASC
OFFSET 200 ROWS
FETCH NEXT 220 ROWS ONLY

Osman KURT
Yazılım Uzmanı