Jump to content

g4rdi

Moderators
  • Content Count

    11
  • Joined

  • Last visited

  • Days Won

    1

g4rdi last won the day on June 23

g4rdi had the most liked content!

Community Reputation

2 Neutral

About g4rdi

  • Birthday 05/05/1985
  1. web.config de hostingModel="inprocess" ifadesini siler misin?
  2. sayfayı paylaşır mısın?
  3. stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" olarak değiştirip dener misin? olmazsa, modules="AspNetCoreModuleV2" modules="AspNetCoreModule" olarak değiştir.
  4. web.config dosyasını paylaşır mısın?
  5. İnsanoğlu, kendi tarihi boyunca içindeki hayal gücü ve merak dürtüsü ile yaşamlarını kolaylaştıracak bir çok icat gerçekleştirmiştir. Kendi gündelik yaşamlarını daha kolay hale getirebilmek amacıyla sayma ve hesap işlerini ilk alet olarak parmaklarını kullanmıştır. Günümüzde kullandığımız sayı sisteminin 10 tabanına göre düzenlenmiş olmasının nedeni 10 parmağımız olmasıdır. On parmağın yetmediği noktaya gelindiğindeyse, çakıl taşları ve çubuk parçaları devreye girmiştir. M.Ö. 2400 yılında Babilliler tarafından “Abaküs” icat edilmiştir. Daha sonra denizaşırı ticaret yapan ülkeler sayesinde diğer ülkelere yayılmıştır. İlk mekanik hesaplayıcı Blaise Pascal tarafından 1642'de 19 yaşında iken tasarlanmıştır. Bu hesaplayıcı vergi tahsildarı babasının işini kolaylaştırmak amacıyla, dişliler ve tekerleklerden oluşan mekanik bir “hesap makinesi” dir. Bu makinayla yalnızca toplama ve çıkarma yapılabiliyordu. 1671 yılında, Alman matematikçi Leibniz, Pascal'in makinasındaki eksikliği gidererek çarpma işini de yapabilir hale getirdi. Leibniz, yaptığı makinanın, pek kolay olmasa da, bölme işlemlerinde de kullanılabileceğini göstermiştir. 1801 yılında Joseph Marie Jacquard'ın dokumatezgâhındaki işlemi otomatikleştirmek adına ürettiği delikli kartlar ise bilgisayarların gelişme sürecindeki, kısıtlı da olsa, ilk yazılımlanabilme (kurulabilme) izlerinden sayılır. Kullanıcının sağladığı bu kartlar sayesinde, dokuma tezgâhı kart üzerindeki delikler ile tarif edilen çizime işleyişini uyarlayabiliyordu. 1830'lu yıllarda, İngiliz matematikçi Charles Babbage bilgisayar tanımına en yakın otomatik hesaplayıcının tasarımlarını ortaya koymuştur. Ancak parasal nedenler ve üzerindeki çalışmalarının sonlanamaması nedeniyle bu makineyi geliştirememiştir. Tamamen sayılar arasındaki farklardan yararlanarak geliştirilmiş matematiksel yöntemlerle otomatik olarak hesap yapabilecek bu makinaya bu nedenle "Farklar Motoru" (Difference Engine) adı verilmiştir. Daha sonra, Kraliyet ailesinin parasal desteğiyle çalışmalarını sürdüren Babbage, 1871'de ölümüne kadar ilk makinasının çok daha gelişmiş bir modeli olan ANALİTİK MOTOR (Analytic Engine) üzerinde çalıştı. İlk bilgisayar programcısı Charles Babbage'ın çalışmalarını büyük bir dikkatle izleyen amatör matematikçi, Ada Lovelace’dir. Analitik Motor'un bir ölçüde programlama sayılabilecek tasarım aşamalarında Babbage'a çok yardımcı oldu. 1842 yılında yazıdığı notlarında, Analitik Motor'un, sayıları çarpıp bölmenin dışında, programlanabilir olması sayesinde müzik bestelemekte bile kullanılabileceğinden sözetmiştir ve üzerinde çalıştıkları bu makinanın, insanlar tarafından nasıl çözüldüğü bilinen her türlü problem için programlanabileceğini öne sürmüştür. Notları sonradan incelenen Bayan Lovelace'a bu çalışmalarından ötürü dünyanın ilk programcısı ünvanını kazanmış ve adı, modern bilgisayar dilleri arasında önemli bir yer tutan ADA programlama diline verilmiştir. ADA birçok tarihçi tarafından ilk programlama dili olarak kabul edilmektedir. Bunu bir programlama dili olarak kabul etmeyenler olsa da gerçek anlamdaki programlama dillerine öncülük ettiği bir gerçektir. Delikli kartların ilk büyük ölçekli kullanımı ise Herman Hollerith tarafından, 1890 yılında muhasebe işlemlerinde kullanılmak üzere tasarlanan hesap makinesidir. Hollerith'in o dönemde bağlı olduğu işletme ise sonraki yıllarda küresel bilgisayar devine dönüşecek IBM'dir. 1930'lar ve 1940'lar boyunca bilgisayar uygulayımı gelişmeye devam etti, ve sayısal elektronik bilgisayarın ortaya çıkışı ancak elektronik devrelerinin buluşundan (1937) sonra gerçekleşebildi. Bilgisayar ve Programlama dünyasının gelişimine baktığınızda yaklaşık bir asırlık geçmişe sahiptir. Bu süre içerisinde yaşanan değişim bugün bakıldığında inanılmaz boyutlardadır. Programlamanın tarihine bakmak ve gelişimini anlamak için öncelikle bilgisayarın gelişim sürecini incelemek gerekir. Electronic Numeric Integrator and Computer – (Elektronik Sayısal Entegreli Hesaplayıcı) adıyla duyurulmuştur. ENIAC 1941 yılında Amerika’nın II. Dünya savaşına katılmasıyla geliştirilmeye başlanmıştır. ABD’li bilim insanları tarafından geliştirilen projede ENIAC 167m2 bir alan kaplamaktaydı ve 30 ton ağırlığındaydı. ENIAC projesi gizli olarak Pennysylvannia Üniversitesine ait Elektronik bölümüne verildi. Projenin asıl amacı daha isabetli uzun top ve füze atışı hesaplamalarını hızlı ve hatasız bir şekilde yapmaktı. Yaklaşık olarak $500.000 maliyet ile ENIAC’ın denemelerine 1945 yılında başlandı. ENIAC 1947 yılında ise gerçek anlamda çalışabildi. 2 Eylül 1945’de Japonya’nın teslim olmasıyla birlikte savaş sona ermiş ve ENIAC’a gerek kalmamıştır. Savaş sonrası ENIAC hava tahminleri, atom enerji hesapları, rüzgar tüneli hesaplamaları gibi işlerde kullanılmıştır. 1951 yılında Endüstriyel amaçla kullanılmaya başlanmıştır. ENIAC’ın parçaları Amerikan Ulusal Müzesinde sergilenmektedir. ENIAC çok fazla güç tüketmekte ve yüksek ısı yaymaktaydı. 1949 yılında Princeton Üniversitesinde EDVAC (Electronic Discrete Variable Automatic Computer – Elektronik Ayrık Değişkenli Otomatik Hesaplayıcı) yaratıldı. EDVAC’ı ENIAC’dan ayıran en büyük özellik ondalık taban yerine ikilik tabanı kullanıyor olmasıdır. Aşağıda sayı sistemlerini ve açıklamalarını görebilirsiniz. İkilik Sayı Sistemi: İkilik (Binary) sayı sisteminde taban 2’dir. İkilik sayı sisteminde yanlızca 0 ve 1 rakamları kullanılmaktadır. Günümüzdeki bilgisayarlar ve hatta tüm elektrik/elektronik devreler ikilik sayı sistemini kullanmaktadır. Sekizlik Sayı Sistemi: Sekizlik (Oktal) sayı sisteminde sadece 0-7 arası rakamlar kullanılmaktadır. Onluk Sayı Sistemi: Onluk (Decimal) sayı sisteminde 0-9 arası rakamlar kullanılmaktadır. 10 adet sayı bulunduğundan bu sistemin tabanı 10’dur. Gündelik hayatımızda kullandığımız sayı sistemidir. Onaltılı Sayı Sistemi: Onaltılık (Hexadecimal) sayı sisteminde 0-9 arası sayılar ve A-F arası harfler kullanılmaktadır. A=10, B=11, C=12, D=13, E=14, F=15 değerlerini temsil eder. Günümüzde Hexadecimal sayı sistemi makine kodlarını yazmak için kullanılır. EDVAC gerçek anlamda yaratılan ilk bilgisayar ünvanına sahiptir. Çünkü program ve verileri aynı anda bellekte saklayabilme özelliğine sahiptir. Bu özelliği sayesinde işlemleri istenilen sırayla kendisi yapabilmektedir. Bellekte bilgi tutan birim Binary Digit (bit)’dir. Bit ikilik sayı sistemiyle çalışmaktadır ve elektronik sinyal var/yok ifadeleriyle çalışırdı. Bit’ler bir araya gelip, Byte’ları oluşturmaktadır. Bellek dediğimiz birim byte’ların oluşturduğu manyetik durumlardır. Program dediğimiz yapı, bellekde bulunan byte’ların adreslerinin okunup veya yazılması demektir. Günümüzdeki bilgisayarlarda veri ve programlar belleğe bit olarak yazdırılmaktadır. Bu bit dizelerine makine kodu denir. Makine kodlarını kullanarak bilgisayara bir veri yazdırmak çok zor bir iştir. Bu işlem çok zor olduğundan gelen sinyali algılayıp makine koduna çeviren yapılar oluşturulmuştur. Günümüzdeki işletim sistemlerinin atası da bu yapılardır. Bilgisayarın gelişimini inceledikten sonra artık programlamanın tarihine ve gelişimini inceleyebiliriz. 1951 yılında Grace Hopper ilk derleyiciyi tasarlamıştır. Daha sonrasında 1954 yılında FORTRAN (FORmula TRANslator) IBM 705 için tasarlanmıştır. FORTRAN’ın ilk derleyicisi ise 1957 yılında tasarlanmıştır. Fortran’da ki bazı eksiklikleri gidermek için ALGOL (ALGOrithmic Language) tasarlanmıştır ve bu dilin iki farklı uyarlaması bulunmaktadır. Hemen ardından 1959 yılında COBOL dili geliştirilmiş ve 1961 yılında ise ilk derleyicisi oluşturulmuştur. 1960’lara gelindiğinde 1962-1967 yılları arasında Simula isimli bir dil geliştirilmiştir. Geliştirilen Simula ilk nesneye yönelik programlama dilidir. Yine bu zamanlarda John George Kemendy ve Thomas Eugene 1964 yılında Basic (Beginner’s All-purpose Symbolic Instruction Code) dilini geliştirmiştir. Niklaus Wirth tarafından 1968 yılında Pascal dili geliştirilmeye başlanmıştır ve 1970’de pascal ilk versiyonu ile yayınlanmıştır. 1970’li yıllara gelindiğinde günümüz programlama dillerinin tamamını etkileyen C dilinin temelleri atılmaya başlandı. 1972 yılında Dennis Ritchie tarafından Bell Laboratuarlarında C dili geliştirilmiştir. Dennies Ritchie, Ken Thompson ile birlikte Unix işletim sistemi ve B programlama dili üzerindede çalışmıştır. 1979 yılında Bjarne Stroustrup tarafından C++ dili geliştirilmiş ve 1983 yılında C++ dili yayınlanmıştır. C++ dili, C dilini temel alarak geliştirilmiştir ve Nesneye yönelik programlama kavramını kabul etmektedir. 1986 yılında Bertrand Meyer tarafından geliştirilen Eiffel programlama dili C++ gibi nesneye-yönelik bir dildir. Windows tabanlı uygulama geliştirmeyi sağlayan Visual Basic 1.0 Microsoft tarafından 1991 yılında piyasaya sürülmüştür. Sun Microsystem tarafından geliştirilmiş olan Java programlama dili 1995 yılında piyasaya 1.0 sürümüyle yayınlanmıştır. Dinamik web sayfaları oluşturulmasını sağlayan PHP Rasmus Lerdorf tarafından yine 1995 yılında tasarlanmıştır. Gelişmenin son aşamasında ise Web Tabanlı programlama yaygınlaşmıştır ve bu sebeple php, asp, jsp gibi diller sürekli yenilenmekteydi. 2001 yılında microsoft bu gelişmeye ayak uydurarak .Net Framework geliştirme çatısını piyasaya sürmüş ve C#, Vb.Net gibi yenilikler getirmiştir.
  6. Aslında her ne kadar Steve Jobs bir yazılımcı olmasa da gerçek hayatta işlerin nasıl yürüdüğünü bilen bir iş adamıydı. En yakın arkadaşı Steve Wozniak ile büyük bir başarıya imza attığı Apple II'den sonra sanırım yazılımın ne denli güçlü bir teknoloji olduğunu keşfetti... "Cogito ergo sum" latince "Düşünüyorum öyleyse varım" demek. Muhtemelen bu sözü bilmeyeniz yoktur. Genelde üstünkörü söylenen bir sözdür. Oysa o kadar bir derin sözdür ki bu; herşeyin düşünceden ibaret olduğunu söyler... Şimdi biz de biraz düşünelim o halde. 200 bin yıl önce akıllı insan adında bir tür olarak dünyayı değiştirmeye başladık. Son dönemlerde sıklıkla karşılaştığınız bir terim olan homo sapiens, türlerinin arasında en akıllı olanı. Etrafını sorgulayıp, hayatta kalabilmek için planlar yapabilen bir canlı. Aynı zamanda ekipce hareket eden bir canlı. Şimdi içinizden büyük olasılıkla "ee ne alakası var?" diyebilirsiniz ancak herşey burada başlıyor aslında. Hayatta kalabilmek bir dizi algoritmayı yerine getirmektir özünde. Bütün canlılar algoritma kurar. Örneğin bir kediyi izlediğinizde fareyi yakalayabilmek için içgüdüsel olarak yere yapışır ve farenin hareketlerini izler. Farenin en savunmasız anında ise üzerine atlar. İnsanoğlu da geçmişinden bu yana hayatta kalabilmek adına bir çok planlar yapar. Bazen bu planlar içgüdüsel olsa da çoğunlukla bilinçli yapılan planlardır. Bu planları uygulamayabilmek için de az önce bahsi geçen bir dizi algoritma kullanır. Üstelik farkında olmasanız bile her saniyemizde bir algoritma kurarız. Peki bir çoğumuzun adından bile ürktüğü, detayına girilince çok karmaşık sanılan bu algoritma nedir? Algoritma daha açık bir ifade ile aslında bir problemin çözümü için izlenecek bir dizi işlem veya işlemlerdir. Elbette bu bir dizi işlem tek bir işlem de olabilir birden fazla işlem de olabilir. Mesela şu an hayal edin. Tekerlek diye bir şey yok bu yüzden taşıyacağınız her şeyi elinizle veya hayvanlarla taşımanız gerekiyor. Ancak hayvanların da bakıma ihtiyacı olduğu için ve çok dik tepelere yük ile beraber çıkamadıkları için bazı yerlere bi takıp eşyaları taşıyamıyorsunuz. İşte burda bir problem devreye giriyor. O esnada yan yana yatırılmış ağaç gövdeleri üzerine konulan nesnelerin itilerek hareket ettirilmesini keşfediyorsunuz. Bunun üzerinde biraz düşündükten sonra tekerleği buluyorsunuz. Artık bir çok nesneyi bulduğunuz tekerlek üzerinde istediğiniz yere taşımaya başlıyorsunuz. Bu sayede problem ortadan kalkmış oluyor... Elbette sadece tekerliğin icadıyla başlamıyor algoritma ve tekerlekten sonra da bitmiyor. İnsanoğlu devamlı kafasındaki soru işaretlerini çözmek için her saniye algoritma kuruyor. En meşhur olanından bahsedeyim mesela; Hârizmî yani tam adıyla "Ebû Ca'fer Muhammed bin Mûsâ el-Hârizmî". En meşhur kitabı şu an Oxford'daki Bodliana kütüphanesinde olan El- Kitab'ul Muhtasar fi'l Hesab'il Cebri ve'l Mukabele ile tanınıyor kendisi. Matematikteki şöhretinden dolayı 16. yy'da latincede "Alkhorismi" ismi ile anılmaktadır. Bahsei geçen kitapta bulduğu metot ile adı literatüre Algoritma olarak geçmektedir. Artık günümüzde gelişen teknoloji ile birlikte her türlü problemi çözmeye dayalı bir çok algoritma, diğer insanlar tarafından paylaşılmaktadır. bazen insanoğlunun kafasında tutamayacağı durumlarda ise devreye bilgisayarlar girmektedir. Örneğin 3 yıl önce bir pazar sabahı yapmış olduğunuz kahvaltıyı hatırlamayabilirsiniz. Ya da ilkokulda öğrendiğiniz bir kimya formülünü de hatırlamayabilirsiniz. Ancak bilgisayarlar hatırlar. Tabiki onlara sadece bir kez anlattığımız takdirde... Aslında yazılım (programlama) bir dizi algoritmayı bilgisayara anlatmaktır. Aynen ilk kez menemen yapacak olan bir arkadaşınıza yapım aşamasını anlatmanız gibi anlatmanız gerekmektedir; iki tane domates al ama domateslerin kabuğunu soy, üç biber al ve biberleri yıkadıktan sonra ince ince doğra, tavada az yağ gezdir, sonra malzemeleri koy biraz kızarttıktan sonra üzerine iki tane yumurta kır. Belki ertesi gün arkadaşınız size şu sorayı soracaktır: "biberi mi önce kavuracaz yoksa dometesi mi?" ancak bu işlemi bilgisayara bir kez anlattığımızda bilgisayar bize tekrar sormaz. Bizim tarif etmiş olduğumuz algoritmayı eksiksiz ve hatasız, üstelik defalarca yerine getirir. Bizler bilgisayarlara bu işlemleri yani algoritmayı tanımlayabilmek için de yazılımları kullanılırız. Aslında onları programlarız. Fakat programlarken onların (bilgisayarların) anlayacağı dilde konuşmamız gerekmektedir. Bilgisayarlar özünde sadece 0 ve 1'i bilir. 0110100001100101011011000110110001101111 sizce burda ne yazıyor? Burda binary olarak "hello" yazmakta. Muhtemelen binary olarak bir algoritma yazmanın ne denli zor olduğunu anlamışsınızdır. Ancak arada bir çevirici olsa en azından biraz daha anlayaşabileceğimiz bir çevirici sayesinde algoritmalarımızı bilgisayara aktarsak hiç fena olmaz değil mi? İşte bu noktada yazılım dilleri devreye girmektedir. Bizim yazmış olduğumuz bir dizi işlemi yani algoritmayı binary kod'a dönüştürülmesini sağlayan binlerce yazılım dili bulunmaktadır. Aynen dünya üzerinde insanların birbirleriyle iletişimini sağlayan sözlü dillerde olduğu gibi. Peki bu kadar yazılım dili arasından ilk olarak hangisini öğrenerek programlamaya başlamalıyız? Burda şöyle bir örnek düşünebilirsiniz; Neden ingilizce öğreniyoruz? Yani neden Papua Yeni Ginece değil de İngilizce? Çünkü ingilizce global bir dil olduğu için. Eğer ingilizce öğrenirsek dünyanın bir çok alanında konuşabilir, iş yapabilir, makaleler araştırabilir ve kendimizi geliştirebiliriz. O yüzden yazılıma başlamadan önce kendinize sormanız gereken soru; Ne için yazılım öğrenmek istiyorum? İnternet üzerinde araştırma yaptığınızda bir çok programlama dili karşınıza çıkar. C#, Java, Php, C++, Python vs... aynen ingilizce, almanca, fransızca, ispanyolca gibi. Ancak şu an kullanmış olduğunuz bilgisayarın işletim sistemi Windows ise ve masaüstü, web ya da oyun programlamak istiyorsanız C# öğrenmeniz daha avantajlı olabilir, Linux ise Php... Ya da yapay zeka ile uğraşacaksanız Python. Endüstriyel otomasyonlar gerçekleştirecekseniz C++ işlerinizi daha da kolaylaştıracaktır. Bu yüzden yazılım öğrenmeden önce ne için yani hangi amaç için yazılım öğrenmek istediğinizi cevaplamalısınız. Eğer sıfırdan bi takım algoritmalarla beraber C# öğrenmek isterseniz o zaman Buradan başlayabilirsiniz. unutmayın ki fikirler dünyayı değiştirir. paylaşmaktan çekinmeyin.
  7. Selam arkadaşlar, Biliyorsunuz ki .NetFramework MVC ile session yapısını aşağıdaki gibi oluşturuyorduk; Session["sessionAdi"] = nesne; ancak .NetCore MVC ile bu şekilde maalesef session oluşturamıyoruz. Bunun en büyük sebebi ise .net core cross platform bir kütüphane olduğu için session içerisine göndereceğimiz nesne sadece string olmalı ya da object (nesne)'i Json'a çevirerek oluşturmamız gerekmektedir. Bu yüzden aşağıda .NetCore MVC ile session oluşturmayı detaylı olarak anlattım. projeyi oluşturduktan sonra Nuget Package Manager ile aşağıdaki paketi projeye dahil etmeliyiz. ardından Startup.cs içerisinde ConfigureServices isimli metot'a sessionı eklemeliyiz. public void ConfigureServices(IServiceCollection services) { services.AddSession(); } alternatif olarak isterseniz session'a bir ömür de tanımlayabilirsiniz. Bunun için ise; services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(5); }); yukarıdaki kodu dahil ettiğinizde oluşturulan session 5 dakika sonra kaldırılır. istersek oluşturmuş olduğumuz session'a aşağıdaki gibi bir isim ve ömür de tanımlayabiliriz. (Ben varsayılan olarak bunu kullancağım.) services.AddSession(options => { options.Cookie.Name = "Örnek.Session"; options.IdleTimeout = TimeSpan.FromMinutes(1); options.Cookie.IsEssential = true; }); bu işlemlerin ardından oluşturmuş olduğumuz session'ı middleware'a tanımlıyoruz. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseSession(); } Session tanımlama işlemlerinin ardından session içerisinde object gönderebilmek amacıyla "Helpers" isminde bir klasör ve içerisine "SessionHelper.cs" isminde bir class tanımlıyorum. Class içerisine ise aşağıdaki kodları yazıyorum. using Microsoft.AspNetCore.Http; public static class SessionHelper { public static void SetObjectAsJson(this ISession session, string key, object value) { session.SetString(key, JsonConvert.SerializeObject(value)); } public static T GetObjectFromJson<T>(this ISession session, string key) { var value = session.GetString(key); return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value); } } yukarıdaki görselde de gördüğünüz üzere Json kütüphanesine ihtiyacımız olduğu için yine package manager console ekranını açarak install-package Newtonsoft.Json komutu ile kütüphaneyi projeye dahil etmeliyiz. kütüphaneyi class içerisinde using anahtar kelimesi ile çağırıyoruz... class içerisinde iki adet static metot tanımlı olduğunu görüyorsunuz. SetObjectAsJson isimli metot, gönderilen nesneyi Json'a çevirmek için kullanılacak T GetObjectFromJson<T> isimli metot ise Json olarak tanımlı olan nesneyi çağırmak için kullanılacak. Metotları detaylı olarak incelediğinizde ilk metot parametre olarak session, anahtar değer ve değerin kendisini parametre olarak aldıktan sonra gönderilen anahtar değere ait bir session oluşturarak değerin kendisini json olarak döndürmekte. İkinci metot ise ilk metot ile oluşturulan Json 'ı generic olarak belirtilen tipe döndürmekte. Oluşturmuş olduğumuz bu metotları kullanmak için Model içerisinde Employee.cs isminde bir nesne(class) tanımlıyorum. oluşturmuş olduğumuz Employee.cs isimli class'a ait bir controller oluşturuyorum. Bu controller içerisinde AddSession ve EmployeeSession isimlerinde iki adet IActionResult tanımlıyorum. AddSession isimli action yeni bir employee oluşturarak oluşturulan employee'i session içerisine gönderecek ardından EmployeeSession isimli action'a bir istekte bulunduğumuzda oluşturmuş olduğumuz session içerisindeki employee bilgilerini unboxing (kutudan dışarı çıkarma) işlemini gerçekleştirerek view'a gönderecek. ve son olarak projeye start verdiğimizde session içerisindeki bilgiyi modelde görebiliriz. takıldığınız yerde bu başlık altında sorabilirsiniz. kolay gelsin...
×
×
  • Create New...