Kayıt Ol

Gönderilerinizi yayınlamak, insanların sorularını yanıtlamak ve diğer insanlarla bağlantı kurmak için Yazılım Köyü'ne kaydolun.

Hesabın var mı? Giriş Yap
  • Google ile devam et
  • Linkedin ile devam et
  • GitHub ile devam et
ya da

Hesabın var mı? Şimdi Giriş Yap

Giriş Yap

Gönderilerinizi paylaşmak ve insanların sorularını yanıtlamak ve diğer insanlarla bağlantı kurmak için Yazılım Köyü'ne giriş yapın.

Buradan kaydolun
  • Google ile devam et
  • Linkedin ile devam et
  • GitHub ile devam et
ya da

Parolamı unuttum?

Hesabınız yok mu? Buradan kaydolun

Parolamı unuttum

Şifreni mi unuttun? Lütfen e-mail adresinizi giriniz. Bir bağlantı alacaksınız ve e-posta yoluyla yeni bir şifre oluşturacaksınız.

Hesabın var mı? Şimdi Giriş Yap
Giriş YapKayıt Ol

Yazılım Köyü

Yazılım Köyü Logo Yazılım Köyü Logo

Yazılım Köyü Navigation

  • Anasayfa
  • Hakkımızda
  • Etkinlikler & Eğitimler
    • Ücretsiz Eğitimler
    • Ücretli Eğitimler
  • İş İlanları
  • Ekibimiz
  • Partnerler
  • Sponsorlar
  • İletişim
Ara
Paylaşım Yap

Mobile menu

Close
Paylaşım Yap
  • Anasayfa
  • Etkinlikler & Eğitimler
  • Partnerler
  • Sponsorlar
  • Ekibimiz
  • Gruplar
  • Grup Ekle
  • Kategoriler
  • Tüm Paylaşımlar
    • Güncel Paylaşımlar
    • Trend Paylaşımlar
    • En Çok Tıklanan Paylaşımlar
  • Oylamalar
  • Etiketler
  • Rozetler
  • Tüm Kullanıcılar
  • Destek
  • İletişim
Anasayfa/ Paylaşımlar/Q 40900
Sonraki
cihatsolak
cihatsolak

cihatsolak

  • İstanbul, Turkey
  • 1 Paylaşım
  • 0 Yorumlar
  • 0 En İyi Yanıtlar
  • 17 Puan
Profili gör
cihatsolakKöyde Yeni
Tarih: Ağustos 29, 20212021-08-29T21:25:04+03:00 2021-08-29T21:25:04+03:00Kategori: Kod Parçacığı

Net Core: Ortamına Göre Davran

Net Core: Ortamına Göre Davran

ASP.NET Core, ortam değişkenini kullanarak çalışma anında uygulamanın davranışlarını yapılandırır.

Projemizin bulunduğu ortama dayalı olarak davranışlarını kontrol etmek, kabaca ortamına göre hareket etmek isteriz. Buradan yola çıkarak uygulamalarımızın son kullanıcıya ulaşmadan önce test edildiği, görüntülendiği ya da incelendiği birden çok evre olacaktır. Eğer birden çok ortamın yoksa acilinden 🚨 ortamlarını oluşturmalısın. Konuyu dağıtmadan bu ortamlar, net core uygulamalarında varsayılan (default) olarak gelen “Development”, “Staging (Pre-production)” , “Production” ve kendimizin ekleyebileceği/özelleştirebileceği ortamlardır.

İçeriğimizin başrolü olan ve kendisinden fazla söz edeceğimiz “ASPNETCORE_ENVIRONMENT” isimlendirmesine sahip değişkenini kenara altı çizili şekilde yazmak istiyorum. Bu değişken ile projemiz çalışma anında (runtime) hangi ortam koşullarına göre davranacağını belirliyoruz. Bir üst paragrafta bahsettiğim varsayılan ortamlar haricinde kendimizin ekleyebileceği/özelleştirebileceği, örneğin “Alfa”, “Beta”, “Test”, “Oldu mu Acaba?”, “Son Test” gibi isimlendirmelerle ekstra ortamlar da oluşturabiliyoruz.

Varsayılan olarak, projemizi localhost’umuzda çalıştırdığımızda “Development”, publish ettiğimizde ise “Production” ortamda çalışmaktadır. Bu işin doğasında var!

Ortam Değişkenlerine Neden/Nasıl İhtiyaç Duyarım?

Development ortamında hata sayfalarına ihtiyaç duyarız çünkü hata aldığımızda hata detayını görüntülemek bizi çözüme hızlı 🚀şekilde götürür. Staging (Pre-production)/Production ortamda ise kullanıcı hata aldığında hatayla ilgili ayrıntıyı göstermek yerine öncesinde hazırlamış olduğumuz hata sayfasına yönlendiririz. Basite indirgemem gerekirse development ortamında test veri tabanı bağlantı dizisini kullanırken, staging ve production ortamda canlı veri tabanı bağlantı dizisini kullanmak isteriz.

Aşağıda varsayılan (default) olarak gelen “/Properties/launchSettings.json” dosya içeriğini görüyoruz. JSON dosyasını incelediğimizde “ASPNETCORE_ENVIRONMENT” genel değişkeninin (global variable) “Development” olduğunu yani Kestrel/IIS üzerinde çalışacak projenin Development ortamda ayağa kalkacağını bildiriyoruz.

Default — launchSettings.json

Default — launchSettings.json

 

Projeyi Farklı Ortamlarda Nasıl Çalıştırabilirim?

Net Core projeleri cross platform (çapraz platform yazılımı) olduğundan dolayı ister IIS Express istersek de Kestrel sunucu üzerinde çalıştırabiliriz. Kestrel, herhangi bir platformda ASP.NET uygulamalarını barındırmak için kullanılan açık kaynaklı kodlu, olaya dayalı ve eşzamansız, I/O tabanlı bir sunucudur.

Özelleştirilmiş — launchSettings.json

Özelleştirilmiş — launchSettings.json


Her profilin içerisinde bulunan commandName anahtarı 🔑 ile projeyi IISExpress veya Kestrel web sunucusu üzerinde çalıştıracağımızı, ASPNETCORE_ENVIRONMENT değişkeniyle de profilin hangi ortamda olacağını belirliyoruz.

Windows ve macOS üzerinde ortam değişkenlerinin büyük/küçük harf duyarlılığı (case sensitive) yoktur fakat Linux üzerinde büyük/küçük harf duyarlılığı vardır.

Profiles

Profiles


Projeyi hangi ortamda başlatmak istiyorsak run kısmından ilgili seçeneği seçiyoruz fakat burada dikkat etmemiz gereken önemli bir husus var. 📌Her ortamın kendine ait ortam değişkeni (environment variables) bulunduğundan dolayı farklı ortamlarda farklı ortam değişkenleri kullanıyorsanız bunları mutlaka her ortam için ayrı ayrı tanımlamalısınız.

Yaşam Döngüsü (lifecycle) 🌏

Proje çalışma anında “ASPNETCORE_ENVIRONMENT” değerini okur ve IHostEnvironment.EnvironmentName string değişkenine aktarır. Peki bunun yanı sıra “SonTest” diye bir ortam oluşturmuş olsaydım bunu nasıl yönetebilirdim? Diyorsanız bir örnek vermek isterim.

  • ASPNETCORE_ENVIRONMENT genel değişkeninin değeri “Development” ise UseDeveloperExceptionPage() ara katmanı (middleware) istek akışında ilk sırada devreye girecek ve son olarak da bu ara katmandan çıkış yapacaktır.
  • Eğer “SonTest” ise UseStatusCodePages() ara katmanı devreye girecektir.
  • Eğer “Development” ya da “SonTest” değilse UseExceptionHandler() ara katmanı devreye girerek belirlemiş olduğumuz dosya yolu(/Home/Error) hata anında görüntülenecektir.

Veya bir farklı örnek daha vermem gerekirse .cshtml tarafında bu environment değerlerine göre koşul koşabileceğimiz yardımcı tag helper’larımız bulunmaktadır.

ASPNETCORE_ENVIRONMENT — Environment Tag Helper

ASPNETCORE_ENVIRONMENT — Environment Tag Helper


Örneğin bundle edilmiş JS/CSS dosyalarınını “Staging, Production” ortamında yayınlayabilir, bundle edilmemiş dosyalarınızı ise Development ortamında yayınlayabilirsiniz.

IWebHostEnvironment

Uygulamanın herhangi bir noktasında ortam değişkenine ulaşmak istiyorsak IWebHostEnvironment ara yüzü (interface) ile çalışma anında (runtime) EnvironmentName’e ulaşabiliriz. IWebHostEnvironment interface net core çekirdeğinde dahili gelen arayüzdür ve IOC mekanizmasında direkt inject 💉 edilip kullanılabilir durumdadır.

Web Project -> Properties -> Debug

Web Project -> Properties -> Debug


Uygulamanın environmentlarını launchSettings.json dosyasından yönetebildiğimiz gibi Debug penceresinden de yönetebiliriz. Burada tanımladığımız her değer launchSettings.json dosyasına yansımaktadır. Tabii yönetim esnasında Profile kısmından hangi profil için işlem yapmak istediğimizi de seçmeyi unutmamalı, launch kısmından ise uygulamanın nereden ayağa kalkacağını (IIS&Kestrel) belirlemeliyiz.

Environment Ne Zaman Devreye Giriyor?

Genelde proje içerisinde ki sabit yani değişmeyecek değerleri birer key-value şeklinde best pratices açısından appsettings. json içerisinde tanımlar (Örn: Veri tabanı yolu, API Kullanıcı adı veya şifresi, veya herhangi bir sabit değer.) IConfiguration interface ile okuruz. Dikkat edilmesi gereken en önemli husus environment değişkenlerin secret.json ve appSettings.{environmentName}. json dosyalarını ezmesidir.💡 Yani bir değişken hem appsettings. json hem secret. json hem de environment variables olarak tanımlandıysa buradaki yaşam döngüsü şu şekilde ilerler: Önce ilgili isimlendirmeye ait environment değişken var mı? Ona bakar. Eğer yoksa secret. json içerisine bakar burada da bulamazsa appsettings. json üzerinde arar. Anlaşılacağı üzere öncelik sırası vardır ve öncelik her zaman environment variables’dadır.

Yaşam Döngüsü: Environment variables > secret.json > appsettings.json

Development ortamda geliştirme yaparken genelde local veri tabanı kullanır, ConnectionStrings değerine de localde çalıştığımız veri tabanı yolunu veririz.

“ASPNETCORE_ENVIRONMENT” : “Development”

“ASPNETCORE_ENVIRONMENT” : “Development”


Oluşturacağım ortama göre appsettings.json dosyası oluşturabiliriz.

  • appsettings.Development.json
  • appsettings.Production.json

Uygulamamızı production ortama aktardığımızda appsettings.Production.json içerisine canlı veri tabanı yolunu yazar, belirlediğimiz ortama göre de değerleri alırız.

Üzgünüm!!! Güvenliği Atladık!

Production ortamda veri tabanı yolu gibi kritik bilgileri appsettings.json dosyasında tutmak güvenlik zafiyeti 👮 oluşturacaktır. Kritik veriler her daim environment’da tutulmalıdır. Çünkü environmentlar çıktı olarak production ortama gönderilmez yani publish aldığın zaman çıktı dosyalarında bulunmaz fakat JSON dosyaları bulunur.

Aslında uygulamayı hangi ortamda publish ediyorsanız edin, appsettings.{environmentName}.json dosya/dosyalarında güvenlik zafiyeti oluşturabilecek key-value değerleri bulunmamalıdır. Çünkü File Transfer Protocol (FTP)’yi 📂 yani uygulamanın dosya dizinini ele geçiren/geçirebilecek kişi appsettings dosyamızdaki bilgileri ele geçirebilir. (Örneğin: veri tabanı bilgilerini)

Konuyu daha da basitleştirecek olursak, github🐒 üzerinde proje geliştiriyorsanız appsettings.json içerisinde güvelik zafiyeti oluşturacak bilgiler tutmamalıyız! Bunun yerine projenin Manage User Secrets özelliğinden faydalanmalıyız. Uzak sunucuda ise Environment değişkenler kullanarak hosting’de ya da cloud’da ☁️ bu değerleri tanımlamalıyız.

Manage User Secrets hakkında bilgiyi daha önceki yazım olan The Protector: NetCore #S1B1 edinebilirsiniz.

Şöyle toparlayacak olursak, .net core uygulaması ayağa kalktığında yani çalışır vaziyette iken IConfiguration üzerinden appsettings içerisindeki herhangi değere ulaşmaya çalıştığımda öncelikle ulaşmaya çalıştığım KEY ile ilgili environment değişken var mı? Buna bakar. Eğer varsa environment’dan değeri okumaya çalışır, yoksa secret.json’a bakar daha sonra appsettings içerisinde eşleşen key varsa value okumaya çalışır. Anlaşılan üzere enviroment değerleri appsettings içerisindeki değerleri ezer.

Windows’ta Global Olarak Environment Değişken Nasıl Tanımlarım?

Denetim Masası -> Sistem -> Gelişmiş Sistem Ayarları -> Environment Variables yolunu takip ediniz.

Denetim Masası -> Sistem -> Gelişmiş Sistem Ayarları -> Environment Variables yolunu takip ediniz.

Windows Genel Değişken Tanımlama

Windows Genel Değişken Tanımlama

İlginizi Çekebilecek Diğer Kaynaklar

  • Safe storage of app secrets in development in ASP.NET Core
  • Use multiple environments in ASP.NET Core
  • Environment Tag Helper in ASP.NET Core

Ci vediamo 😎

appsettingsenvironment variableskestrelnet5user secrets
  • 0 0 Yanıt
  • 95 Görüntüleme
  • 15 Beğeni
Yorum Yap
Paylaş
  • Facebook

    Benzer Paylaşımlar

    • New In Laravel 8.80.0 - Support For Route Group Controller
    • LOCAL STORAGE JS - TRTR
    • Android Leanback Kütüphanesi — Manifest Ayarları

    Cevap eklemek için giriş yapmalısınız.

    • Google ile devam et
    • Linkedin ile devam et
    • GitHub ile devam et
    ya da

    Parolamı unuttum?

    Hesaba mı ihtiyacınız var? Buradan kaydolun

    Sidebar

    Paylaşım yap
    • Popüler
    • Yanıtlar
    • Etiketler
    • Buse TURAN

      FULL STACK SUPERMAN / SUPERWOMAN OLMAK İÇİN YAPMANIZ GEREKEN ÜCRETSİZ ...

    • Selin Dayıoğlu

      4 Ücretsiz Sertifika Sitesi

    • Yazılım Köyü

      Zemin İstanbul'la SQL Server Eğitimi | Teknik Test Aşaması

    • ibrahim Demirli

      Angular 12 ile gelen önemli yenilikler

    • Sait ORHAN

      Stajyerlerimi Nasıl Eğitiyorum?

    • Buse TURAN

      Her Geliştiricinin Favorilerine Eklemesi Gereken 12 Ücretsiz Tasarım Kaynağı

    • Buse Öztan

      HTML-CSS gibi kodlamalarda kullandığınız en favori editörünüz hangisi?

    • Buse TURAN

      BİR SONRAKİ PROJENİZ İÇİN 12 EĞLENCELİ API

    • Buse TURAN

      C++ ÖĞRENENLER İÇİN EN İYİ 8 WEB SİTESİ

    • Edanur Öztürk

      Geleceğe Giriş-Doğuş Teknoloji

    • alicekavak
      alicekavak Yanıtlandı Çok güzel bir paylaşım olmuş Ocak 31, 2023 at 3:19 pm
    • Esin Şeker
      Esin Şeker Yanıtlandı Merhaba, bu site ile yeni tanışma fırsatım oldu. Python eğitimi… Ocak 18, 2023 at 11:42 pm
    • Yazılım Köyü
      Yazılım Köyü Yanıtlandı Bugüne kadar yüzlerce gence; ücretsiz ve kaliteli bir yazılım eğitimi… Ocak 17, 2023 at 11:18 am
    • Kadir Çokçevik
      Kadir Çokçevik Yanıtlandı elinize emeğinize sağlık Ocak 11, 2023 at 8:33 am
    • Kadir Çokçevik
      Kadir Çokçevik Yanıtlandı Burdaki Kadir ben olabilir miyim acaba :) Ocak 11, 2023 at 8:32 am
    #abap#sap #aspnetcore #dependencyinjection #aop #autofac #işarayışı #destek #javascript #angular12 #software #education #oyun #yazılım .net .net6 .netcore .net core 3des 100 daily ui free :staj :java abap abd acid adesense adobe adviceslip aes ai airbnb akademi aksigorta algoritma amazon android android-libraries android-smart-tv android achitecture andromo angular anijs animate.css anime.js animista ansible ant design api api gateway apple appsetting appsettings apps geyser app yet appy pie arduino argondesignsystem artifical intelligence artificial intelligence artificialintelligence arçelik asimetrik şifreleme asp:net atom awesome screenshot & screen recorder aylıkgelir backgroundjob bakış açısı basis başarı belge bilgisayar bilgisayar mühendisliği bilgisayarmühendisliği bilişim birey blockchain blogger blueprint blush bootcamp borunv brave browser budibase buffer business analytics büyük veri c# altın kurlarını gösterme c# json İle veri Çekme c++ calculated columns canva cdn chakra ui class cloud cobalt 2 codepen challenges coderbyte codewell coding coding ninjans colorpick eyedropper component containers convertio cookie coursera'dan veri bilimine giriş kursu cqrs css cssbattle css peeper cte cursor cyber cybersecurity dapper data database datamining data science with r by pluralsight dba db shading deeplearning delivery hero deney derin Öğrenme derin Öğrenme ve makine Öğrenimi des design destek mühendisi developer değerlendirme değişim dijital göçebelik dijital ihracat dikey büyüme dikkat edilecekler dil eğitimi discord django dns docker double dracula official dyno bot döviz çevirici e-ticaret e-ticaret mağazası ecommerce edabit edit editör educative elektrik elektronik elon musk empati engineer eninovatif50şirket entityframework entity framework core 5 environment variables erasmus etkinlik exception eğitim facebook face recognition fastai figma firebase firefox teması firewall flask float fluentvalidation flutter flutterdeveloper fonksiyon fonts fonts ninja fortinet framework free freecodecamp freeillustrations freelance front-end front-end developer roadmap front-end geliştirici yol haritası frontend frontenddeveloper frontend mentor fullstack funny fuul stack react game game developer gary hamel gateway geeksforgeeks geliştirici geliştirme gerçek zamanlı sohbet uygulaması getir geçikme girişim girişimcilik git github gitlab gittigidiyor gittigidiyor teknoloji akademisi go golang goodbarber google gsap gui gzip güvenlikduvarı hackerearth hackerrank hamburgers hangfire harvard data science course hash hata hava durumu raporu uygulaması hayat hobi home office hover.css html html5-semantic html mail gönderme http http bağlantısı kurma http durum kodları httpie http mesajları http yöntemleri hulu humaaans icongenarator icons 8 ieee spectrum ikaros partners image downloader infrastructure inovasyon insider insomnia internet intership invision app ios ira design it iş iş analitiği işbulma iş fırsatı iş imkanı işimkanı işletme java java eğitim bootcamp javascript javascript30 jetpack js jservice js kütüphanleri kariyer fırsatı kategori yönetimi kaynak keras kestrel kevin murray kitaplık kişisel gelişim kişisel portfolyo kod kodlama komunite kotlin kriptoloji kullanımamaçları kute.js kültür kütüphane laravel laserwave latency leanback learn learncpp library liderlik lightbootstrapdashboard lime linkedin localstorage maaş macbook machine learning machinelearning machine learning a-z: hands-on python and r --- in data science magic effects mail send makine Öğrenimi makine Öğrenimi nasıl Çalışır? makine Öğrenimi nedir? makine Öğreniminin kullanımları makine Öğrenmesi makineöğrenimi manta manypixels mark text marvelcomicsapi maslow material ui merge sort metodoloji microsoft microsoft sql server eğitimi cv İnceleme sonuçları middleware mikro orm mikroservis mikroservisler mikroservis mimarisi mikroservis yönetimi ml mng kargo mo.js modelleme mongodb montaj motion ui mssql mvc mvm münazara. müzik oynatıcısı n11 nasaapi net5 netflix network networking networking fundamentals new features night owl nintendo nlp no-code nocode node.js node.js indir node.js kurulumu node.js nedir nodejs nodejs javascript frontend noktalı sayı not notusreact nrkdrk ntp nuxtjs nvidia oci oh my zsh olacaklar ve öğrenilecekler omnichannel one dark pro online eğitim siteleri oop ortalama maaş outrun paaatterns pagedlist palenight pandas par-tİme parçalama pasif gelir paypal pazarama pgpool php phpmyadmin phpstorm phyton platformlar arası uygulama playstation podman popmotion posgresql parçalama postgresql postgresql cte posthog prerender prisma problem tanımı productivity profesyonel programlama programming proje pycharm python python ile veri bilimi pytorch querying razer rdp react react datepicker reactjslanding react native react navigation typescript reactopen reactreduction react select reactstrap reba recommender systems renova requests responsive rest api ripng rosetta stone rsa s3 salesforce sap sap abap scikit-learn scrapy screencat scrollreveal js search ui security selamlaşma sentry seo sertifika serversiderender shades of purple shap shardsdashboardlites sibergüvenlik simetrik şifreleme simterik şifreleme single page application slack slackhq smooth ui snyk software software engineer sohbet geçmişi solid solid prensipleri sortable- hoc sorting source spa spacex spagetti kod spotifyapi sql sqlite sqlserver sql server ssr staj staj iş arayışı stajyer startup stevejobs storybook stratejik yatırım struct sublime text supabase svg export swagger swift sınıflar ve yapılar arasındaki farklar sıralama sıralama algoritma sıralama algoritmaları t-sql tallyforms tanışma tasarım tdd tech tech-academy teknoloji telegram grupları temiz kod tensorflow the future of management three.js tools toptalent topwebsites tpt tph treehouse trendyol tsql turkcell typescript udacity'den veri bilimine giriş ui ui space undraw uniqid unity uplabs user secrets uuid ux uygulama uzaktan validation velocity.js vercel veri veri analizi veri bilimcisi olmak İster misiniz? veribilimi veri bilimi az: gerçek hayat veri bilimi alıştırmaları dahil veri bilimi sertifikasyon eğitimi --- r programlama veri bilimi ve makine Öğrenimi için python eğitim kampı veritabanı veri tabanı veritabanıyöneticisi video vierbinding visual studio visual studio code vivus.js vizyon vmd vs code vscode vue vue fundemental vue fundemental eğitimi vue router web webdev webinar website web tarayıcı web tasarım weekly whatsapp whirl winter is coming wordpress wpf wrapkitreactliteuikit xai yabancı dil yapay genel zeka yapayzeka yapay zeka yapay zekanın tanımı yapay zekanın tarihi ve dönüm noktası yardım yatırım yaz stajı yazılım yazılımcı yazılım ekibi yazılım fikri yazılım geliştirici yazılım mühendisliği yemeksepeti yenimezun yeni özellikler yetiştirilmek üzere eleman youtube youtube-dl yönetim yük testi zorunlustaj zuckerberg Çalışma ortamı Çerezler Özellikler ÖĞrencİ Ücretsiz Ücretsiz eğitim Ücretsiz Eğitimler çalışma çağlayan çekiliş çevik ölçeklendirme önyüz tasarımı özgeçmiş ücret üniversite İkaros&partners İletişim İş İlanı Şirket şifreleme şifre sıfırlama

    Ekibe Katıl!

    Sosyal Medya

    Trend Etiketler

    android bootcamp c++ eğitim insider java javascript kod kodlama python sql staj uygulama veri vue fundemental eğitimi web webdev yazılım Ücretsiz eğitim Ücretsiz Eğitimler İş İlanı

    Benzer Paylaşımlar

    • Berk CAN

      New In Laravel 8.80.0 - Support For Route Group Controller

      • 0 yanıt
    • Berk CAN

      LOCAL STORAGE JS - TRTR

      • 0 yanıt
    • Berk CAN

      Android Leanback Kütüphanesi — Manifest Ayarları

      • 0 yanıt

    Başvuru Yap

    Popüler Kullanıcılar

    Yazılım Köyü

    Yazılım Köyü

    • 91 Paylaşımlar
    • 7k Puan
    İşinin Ehli
    Buse TURAN

    Buse TURAN

    • 36 Paylaşımlar
    • 2k Puan
    İşinin Ehli
    Serkan Koç

    Serkan Koç

    • 8 Paylaşımlar
    • 2k Puan
    İşinin Ehli
    Mustafa(Hüseyin) Sungur

    Mustafa(Hüseyin) Sungur

    • 44 Paylaşımlar
    • 1k Puan
    İşinin Ehli
    Sait ORHAN

    Sait ORHAN

    • 15 Paylaşımlar
    • 1k Puan
    İşinin Ehli

    Explore

    • Anasayfa
    • Etkinlikler & Eğitimler
    • Partnerler
    • Sponsorlar
    • Ekibimiz
    • Gruplar
    • Grup Ekle
    • Kategoriler
    • Tüm Paylaşımlar
      • Güncel Paylaşımlar
      • Trend Paylaşımlar
      • En Çok Tıklanan Paylaşımlar
    • Oylamalar
    • Etiketler
    • Rozetler
    • Tüm Kullanıcılar
    • Destek
    • İletişim

    Footer

    Yazılım Köyü; Türkiye’nin yazılım üretmek, ihraç etmek ve her yaştan kendini geliştirip meslek sahibi olmak isteyen insanları için kurulmuş bir sosyal sorumluluk projesidir.

    Paylaşımlar

    • Güncel Paylaşımlar
    • Trend Paylaşımlar
    • En Çok Tıklanan Paylaşımlar
    • Yanıtlanmayan Paylaşımlar

    Kurumsal

    • Blog
    • Partnerler
    • Sponsorlar
    • Ekibe Katıl
    • Hakkımızda
    • İletişim

    Yardım

    • Destek
    • Rozetler
    • Logolarımız
    • Kullanım Koşulları
    • Kişisel Verilerin Korunması
    • Aydınlatma Metni

    Sosyal Medya

    © 2021-2022 yazilimkoyu.org. Sosyal sorumluluk projesi. Bütün hakları saklıdır.