net-is-mulakatı-sorulari

.Net üzerine girdiğim bir iş mülakatında bana yazılı olarak sorulan “.Net İş Mülakatı” sorularını ve cevaplarını paylaşacağım. Cevaplar bana aittir yanlışım varsa affola 🙂 

Sorular .Net’in kapsadığı teknolojiler ile alakalı giriş düzeyinde sorulardır. Kısaca konular;

  • C#
  • Asp.Net, MVC
  • MS SQL
  • Temel Kavramalar

.Net üzerine çalışmak isteyen arkadaşların bu sorulara hazırlıklı olmasını şiddetle tavsiye ederim.

openroad
.Net İş Mülakatı Soruları


1 – SOLID nedir?

SOLID başlıklarını kısaca açıklayınız.

SOLID, OOP (Object Oriented Programming) projelerinin standartları olarak bilinir.

S – Single Responsibility Principle (SRP): Nesnenin sadece bir sorumluluğu olmalıdır, yani olası bir değişiklikte tek bir nedene dayandırılmalıdır.

O – Open/Closed Principle (OCP): Nesne genişlemeye açık ancak değişikliklere kapalı olmalıdır.

L – Liskov ‘s Substitution Principle (LSP): Programdaki nesnelerin, programın çalışmasında sorun yaratmadan kendi alt örnekleri ile değiştirilebilir olmasıdır.

I – Interface Segregation Principle (ISP): Nesnelerin ihtiyaç duymadıkları metotların Interface’lerinden münkün olduğunca ayrıştırılmasıdır.

D – Dependency Inversion Principle (DIP): Yüksek seviyeli sınıflar, düşük seviyeli sınıflara bağlı olmamalı, her ikisi de soyut kavramlara bağlı olmalıdır.


2 – Library ve Framework

kavramlarını kısaca açıklayınız.

Library (Kütüphane), Önceden yazılmış hazır metotların olduğu alandır. İhtiyaca göre projemize dahil eder ve kullanırız.

Framework (Çatı), Önceden hazırlanmış belirli standartlar halinde kütüphanelerin bulunduğu bir iskelettir. İhtiyaca göre projemizi o iskelete dahil edip inşa ederiz.


3 – Virtual, abstract, interface ve static

keywordlerini kısaca açıklayınız.

Interface (Arayüz), İçinde sadece kendisinden türeyen sınıfların içini doldurmak zorunda olduğu içi boş metot tanımlarının yapıldığı bir yapıdır.

Abstract (Soyut), içerisinde normal yani içi dolu metotların, değişkenlerin ve interface’lerdeki gibi abstract (boş) metodların tanımlanabildiği yapılardır.

Static, Yalnızca kendi sınıfı içerisinde yine static olarak tanımlanan yapılarla eşleşebilen global yapılardır.

Virtual (Sanal), Sınıf içerisinde sanallaştırmak istediğimiz yani çakışma durumunda ezilmesini istediğimiz metot türleridir.


4 – Referance ve Value Type nedir?

Value Type, Bilgileri hafızanın stack bölgesinde direk olarak saklayan nesnelerdir. Null değer alamazlar. Char, Bool örnek verilebilir.

Referance Type, Bilgileri hafızanın stack bölgesinde tutar yalnız heap bölgesinde bir referans değeri tutar. Null değer alabilir. String, Class örnek verilebilir.


5 – Compiler Nedir?

Compiler (Derleyici), Herhangi bir programlama dilinde yazılmış kaynak kodlarını, makine koduna çeviren uygulamadır.


6 – SQL’de deadlock nedir?

Nasıl Çözülebilir?

Veritabanına gönderilen iki ayrı işlemin birbiri ile bağlantılı olup ikisininde görevinin yapma koşulunun diğer işlemin sonucuna bağlı olması, diğer işlemin bitmesini beklemesi gerektiği yani sonsuz bekleyişe girilen ölümcül kilitlenme durumudur. Bu işlemler önceden tespit edilip deadlock durumunda daha önemli görülen işleme öncelik atanarak çözümlenebilir.


7 – SQL’de CLE (Common Table Expression) nedir?

CLE, Bir sorgunun yürütülmesi anında elde edilmiş geçici sonuçları bir veya daha fazla kere kullanılmasını sağlayan ortak tablo ifadelerdir. En önemli özelliği kendi kendini çağırabiliyor olması ve aynı sorgu içerisinden birden fazla çalıştırılabiliyor olmasıdır. Daha çok recursive(Öz-yinelemeli) işlemler için geliştirilmiştir.


 8 – SQL’de index nedir?

Neden kullanılır?

index, ilişkili tablonun indexleme alanı olarak kullanılan kolondaki verilere göre sıralanmış biçimde işleme konulmasını sağlar. SQL’de sorguların geç cevap vermesi durumunda kullanılır.


9 – Rapor response süresi

Bir rapor hazırladığınızı düşünün, 10 ilişkili tablo joinlenmiş durumda. Bu rapor saniyede 100.000 request alıyor. Response zamanı 45 sn. Bu raporun response zamanını kısaltmak için neler yapılabilir?

Index, Rebuild, Reorganize, BTree, Join ve Subquery’ler detaylı incelenmeli, kullanımları kontrol edilmelidir.


10 – Http nedir?

Neden kullanılır? Http ile neler yapılabilir?

Http, Hyper Text Transfer Protocol (Hiper Metin Transferi Protokolü)  kelimelerinin baş harflerinden oluşan bir kısaltmadır. İnternette sunucular ve son kullanıcılar arasında bilgilerin nasıl aktarılacağına dair kurallar ve yöntemleri düzenleyen bir sistemdir. Web sitelerine ait bilgileri tarayıcınıza indirme işlemi yapar.


11 – CSS media kuralları ne işe yarar?

Bilgisayar, tablet, telefon ve benzeri tüm ekranlarda yatay scrollbar’sız ve sorunsuz bir şekilde çalışan aktif tasarımlar ile responsive site yapımını sağlar.


12 – Web ortamında Client Side ve Server Side nedir?

Client Side ve Server Side çalışan dillere örnekler veriniz?

Server Side, web sitesine dosyaları barındıran ve bu dosyaları internette paylaşmanıza olanak tanıyan bilgisayardır. Örnek diller; ASP.Net, PHP, Python, Ruby, Java

Client Side, server’lara dosyaları açması ve belli işlemleri gerçekleştirmesi için HTTP ve HTTPS protokelleri üzerinden istek gönderen taraftır. Örnek dil; JavaScript


13 – State Management nedir?

Neden kullanılır? Yerine alternatif bir şey kullanılabilir mi?

Verilerin istemci ve sunucu arasında gereksiz gidip gelmesinin oluşturduğu dezavantajdan kurtulmak için ASP.NET’te geliştirilmiş bir durum yönetim kavramıdır. İstemci taraflı ve sunucu taraflı durum yönetimi teknikleri bulunmaktadır. Alternatif ~ Cache


14 – ASP.NET Web Forms ile ASP.NET MVC farklılıkları nelerdir?

Farklar oldukça fazla ve önemsenecek düzeydedir.

Maddeler halinde, anlaşılır bir şekilde özetlenmiş hali için bkz.


15 – Authentication ve Authorization nedir?

Authentication(Kimlik Doğrulama), Kullanıcının kimliğini kontrol etmek.

Authorization(Yetki, izin), Kullanıcını kaynaklara erişimini doğrulamak.

Bir kullanıcı sisteme giriş yapabilmek için authentication’a, o sistemde bir işlem yapabilmek için authorization‘a ihtiyaç duyar.


16 – MVC kavramları

Razor, HttpGet, HttpPost, ViewBag, ViewData, TempData, Controller, View, PartialView, Filter kavramlarını birer cümle ile açıklayınız.

Razor: Asp.Net Mvc 3 teknolojisiyle birlikte gelen görüntüleme biçimidir.

HttpGet:  Tarayıcı üzerinden direk olarak sonuç almak istenildiğinde kullanılır.

HttpPost: Kullanıcı girdileri ile sunucuda bir şeyler değiştirmek istendiğinde kullanılır.

ViewBag: Verilerimizi Controller dan View kısmına aktarmak için kullanırız. ASP.Net MVC 3 ile birlikte gelen yeni ve runtime içerisinde oluşan dinamik bir nesnedir.

ViewData: Verilerimizi Controller dan View kısmına aktarmak için kullanırız. ASP.Net MVC’nin tüm sürümlerinde çalışmaktadır.

TempData: Verilerimizi Controller dan View kısmına aktarmak için kullanırız. View içerisinde veriyi ekran çıktısı olarak görüntüler ve ya Viewsler arasında taşır.

Controller: Projedeki tüm işlemlerin (veritabanı işlemleri, hesaplamalar, veri aktarımı v.b) yapıldığı kontrol bölümüdür.

View: Proje tamamlandığında kullanıcının gördüğü arayüzdür.

PartialView: Sayfaların istediğimiz kısmına rahatça ekleyebileceğimiz, özel işlevleri yerine getirebilen, ancak kendi başına çalışmayan, bir sayfanın içerisinde entegre halde çalışan kısımlardır.

Filter: WEB uygulamanıza gelen her bir isteğin arasına girip belirli evrelerinde ihtiyaca göre işlemler yapabilen mekanizmalardır.


17 – .Net Core’daki Tag Helper nedir?

.Net Core ile birlikte gelen Tag Helpers (Etiket Yardımcıları), Razor HTML yardımcıları ile yazılan kodu daha markup diline yakın olarak yazılmasını ve View’lerin daha okunabilir olmasını sağlar. Dolayısıyla anlamasını ve geliştirmesini daha kolay hale getirir.


18 – Middleware yapısı nedir?

Middleware yapısı, ASP.NET’teki HttpModule nesnelerine benzetilebilir. Uygulama başlangıcında runtime’a eklenen middleware bileşenleri, eklendiği sıraya göre pipeline’ı oluşturmakta ve bir request geldiğinde bu sıraya göre tüm bileşenler çalışmaktadır. Eğer middleware bileşeni yaptığı kontrollerde bir sorunla karşılaşırsa request’i kesip sonlandırır ve ya her şey yolunda gidiyorsa sırasını salıp kendisinden sonraki middleware bileşenine yol verir.


19 – SOAP servis ile REST servis

Nedir? Benzerlik ve farklılıkları nelerdir?

SOAP (Simple Object Access Protocol) yani Basit Nesne Erişim Protokolü, internet üzerinden küçük miktarda bilgileri yada mesajları aktarma protokoludur. SOAP mesajları XML formatındadırlar ve  genellikle HTTP protokolu bazende TCP/IP kullanılarak gönderilirler. SOAP bizi XML tabanlı kullanıma mecbur bırakır. Bu konuda esnek değildir. SOAP üzerinde güvenlik sağlamak daha kolaydır. SOAP için geliştirici araçları daha iyidir. Kullanmak için yardımcı olacak daha çok kaynak bulunabilir.

REST (REpresentational State Transfer) yani Temsili Durum Transferi, istemci ve sunucu arasında veri alışverişinin basit bir yoludur. REST mimarisi standart bir tanımlamaya ihtiyaç duymaz. REST ile veri alışverişini JSON, XML hatta Text formatında bile yapabilirsiniz. Esnek bir yapıya sahiptir. REST mimarisinde de HTTP metodlarından yararlanılır. Uygulamanın daha hızlı çalışmasını sağlar.


20 – WCF nedir?

Neleri içerir?

Windows Communication Foundation (WCF), .Net framework 3.0’ın çıkartılmasıyla birlikte hayatımıza giren ve .Net framework ile yazdığınız uygulamaların iletişim katmanı olmayı amaç edinen bir kütüphanedir.

.Net Remoting, XML Web Servisleri, MSMQ, Net pipe, tcp/ip gibi pek çok farklı yöntemi içerir.


21 – Web Api nedir?

HTTP, üzerinden REST servisler geliştirmek için kullanılan bir framework’tür.


22 – SQL Trigger nedir?

Trigger (Tetikleyici), veritabanında bir işlem yapıldığında başka bir işleminde otomatik yapılması isteniliyorsa kullanılır. Trigger’lar Delete, Insert ve Update işlemleri üzerinde çalışırlar.


23 – Partial class nedir?

Neden kullanılır?

Sınıfların karışık yapıda olmasını engellemek için büyük bir sınıfı belirli parçalara bölmek için kullanılan anahtar kelime Partial’dır. Kullanım amacı, Çok sayıda sınıf elemanı içeren bir sınıfın yönetilebilir ve anlaşılabilir olmasını sağlamak içindir. Örneğin partial kullanarak sınıfın özelliklerini bir yerde, metotlarını başka bir yerde tanımlayabiliriz. Her ne kadar sınıfımız parçaya ayrılmış gibi görünse de program çalıştırıldığında sınıfımız tek bir sınıf gibi hareket edecek ve parçaya ayrılmış olan kodlarımız derlenip program tarafından bir bütün olarak çalıştırılacaktır.


24 – TFS nedir?

Neden kullanılır? Alternatifleri nelerdir?

Team Foundation Server (TFS), bir yazılım projesinde ekip olarak birlikte çalışmayı amaçlayan ve Microsoft Visual Studio ile entegreli olarak çalışan bir Server sistemidir. Bu sistem sayesinde aynı anda projeyi yapan yazılımcılar ve proje yöneticileri projenin durumunu görebilir, geliştirebilir ve gelişmiş raporlama sistemleri oluşturabilirler.

Alternatifleri: Git, Mercurial SCM, Subversion, VirsualSVN vb.


25 – Verilen kavramları bir cümle ile açıklayın.

ASP.NET Core 1.0: MVC, Web API ve Web Pages birleştiren tüm platformlarda çalışabilen .Net‘in son sürümüdür.

DNU, DNX, DNVM: DNX (.NET Execution Environment), yeni nesil .NET uygulamalarının çalışmasını sağlayan runtime bileşenidir. DNVM (.NET Version Manager), belirli bir DNX versiyonunun bilgisayara kurulması, güncellenmesi ve düzenlenmesini sağlayan tool’dur. DNU (.NET Utilities), DNX dosyasında bulunan bir Package Manager kütüphanesidir.

Lazy Loading: Bir kod bloğunun, nesnenin ve ya program parçacığının sadece ihtiyaç duyulduğunda çalıştırılmasıdır.

Auto Detect Changes: Entity Framework içinde performansını artıran bir mekanizmadır.

DbSet: Code First’de veritabanında tablonun tanımlanmasını sağlayan property‘dir.

DbContext: Code First’de veritabanındaki map işlemleri yapılan sınıf’dır.

TFS Build and Release Management: TFS’in içinde bulunan projelerin test ve sürüm yönetimini yapmamızı sağlayan tool’larıdır.

Scrum: Çevik yazılım geliştirme prensiplerini hayata geçiren yazılımcılardan oluşan küçük guruplara verilen isimdir.

Agile: Dünya üzerinde kabul edilen yöntemler arasında en hızlı ve güvenli proje geliştirme yaklaşımıdır.

SQL Always On: Uygulamaların yüksek erişilebilir olması ve sistemde oluşacak bir hata sonucu sistemin çalışmasının minimum seviyede aksamasının sağlayan bir SQL teknolojisidir.

SQL Replication: Kaynak veri tabanının aynısı, sürekli yenilerek, başka bilgisayarlarda da tutulma teknolojisidir.

Performance Tuning: SQL performans yönetimi teknolojisidir.

PolyBase: Yapılandırılmış ve yapılandırılmamış verilerinizi T-SQL’in basitliğiyle sorgulamanıza olanak tanıyan teknolojidir.

QueryStore: SQL Serverde plan değişikliklerinden dolayı yaşanılan performans problemleri için geliştirilmiş bir teknolojidir.

Power BI: Microsoft’un ürettiği bir iş zekası çözümüdür. Görselliği güçlü, interaktif raporlar-dashboardlar tasarlamamız için üretilmiştir.

MicroStrategy: Bir iş zekası şirketidir.

DataZen: Raporlama servisidir.

ETL: Extract-Transform-Load, kullanılacak verinin dış kaynaklardan çıkarılması, verinin iş süreçlerine göre temizlenmesi, birleştirilmesi, dönüştürülmesi ve yüklenmesi sürecidir.

SSRS: SQL Server Reporting Service, adından da anlaşılacağı gibi raporlama servisidir.

SSIS: Microsoft, SQL Server Reporting Services uygulamasını oluşturarak bir çok raporlamı işlemini kolayca yapabilmeye olanak tanır durumdadır.

CMS: Content Management System, içerik yönetimi sistemlerine verilen nelen isimdir.

CRM: Customer Relationship Management yani Müşteri İlişkileri Yönetimini; müşteriyi tanımak, müşteri ihtiyacını anlamak, ona uygun hizmetler ve ürünler geliştirmek ve bu bilginin organizasyon içinde paylaşılması olarak tanımlanır.

ERP: Enterprise Resource Planning yani Kurumsal Kaynak Planlama; yazılımları, bir işletmenin, satıştan muhasebeye, üretimden insan kaynaklarına, envanterden CRM’e, aklımıza gelen tüm fonksiyonlarını kapsayan entegre bilgi sistemleridir.

Sharepoint: Büyük ölçekli şirketlerde şirket içerisindeki farklı farklı depertmanlardaki elemanların birbirleri ile çok rahat bir şekilde iletişime geçebilmeşerini sağlayan bir yapıdır.

Sharepoint Farm: SharePoint sitelerini yayımlayan WSS (Windows SharePoint Services) sunucular topluluğudur.

Sharepoint WebPart: WebPart Portal uygulamalarının yapı taşları ve içeriğin saklandığı bölümdür.

XSLT: Extensible Stylesheet Language Transformations yani Genişletilebilir Biçimlendirme Dili Dönüşümleri XML tabanlı, XML dokümanlarını dönüştürmek için kullanılan bir dildir. Orijinal dokümanı değiştirmeden, yeni bir doküman oluşturmaya olanak sağlar.

PowerShell: Microsoft tarafından Windows komut satırı cmd.exe ve Windows Script Host’a alternatif olarak geliştirilen yeni nesil bir komut satırı uygulamasıdır.

Active Directory: Microsoft ağlarında kullanılan dizin hizmetidir. Veritabanı, kullanıcılar, bilgisayarlar, mekanlar, yazıcılar gibi organizasyonun tüm bilgilerini saklar.

Exchange:  Microsoft tarafından üretilen bir haberleşme yazılımıdır.

IIS: Internet Information Services, Web sayfalarının yayınlanmasını ve web uygulamalarının çalışmasını sağlayan, istemcilerden HTTP ve FTP üzerinden gelen talepleri Microsoft Windows sunucu tabanlı işletim sistemlerinde karşılayan birimdir.

Application Pool: Aynı sunucuda bulunan farklı web uygulamalarının birbirinden farklı havuzlarda tutulmasını yani birbirlerinden izole edilmesini sağlayan kavramdır.

SSL: Secure Sockets Layer, server ile alıcı iletişimi esnasında verilerin şifrelenerek gönderilmesini sağlayan katmandır.

FTP: File Transfer Protocol, bir bilgisayardan bir başka bilgisayar yada server arasında bağlantı kurma ve dosya paylaşım protokolüdür.

Real Time Communication: Real Time Communication eş zamanlı iletişim kurmak için bir standarttır.

Heroku: Bir bulut bilişim (cloud computing) uygulama altyapısı servis sağlayıcısıdır.

AJAX: Asynchronous JavaScript and XML, tüm sayfayı kullanıcıya tekrar yükletmeden ekrana getiren veya servera gönderen bir çok programlama dili ile uyumlu çalışan bir tekniktir.

jQuery: HTML dokümanların yönetiminde, animasyonların oluşturulmasında, etkileşimli Web sayfaların hazırlanmasında kullanılan Javascript kütüphanesidir.

Angular JS: Front-end gelirştirmede kullanılan bir Javascript kütüphanesidir.

Backbone: Front-end gelirştirmede kullanılan bir Javascript kütüphanesidir.

Node JS:  Javascript motoru üzerinde çalışan, Event-driven, nonblocking I/O modeli kullanan, ölçeklenebilir uygulamalar geliştirmek için dizayn edilmiş bir platformdur.

Knockout: Front-end gelirştirmede kullanılan bir Javascript kütüphanesidir.

Ember JS: Front-end gelirştirmede kullanılan bir Javascript kütüphanesidir.

Ionic: Hybrid mobil uygulamalar geliştirmek için Web geliştiricilere sunulmuş bir front-end framework’üdür.

Cordova:  Web tabanlı mobil uygulamalar yazmanızı sağlayan bir uygulama geliştirme framework’üdür.

Bootstarp: Açık kaynak kodlu, ücretsiz bir CSS framework’üdür.

SubQuery: SQL’de sorgu içerisine sorgu yazmaktır.

 


26 – Database senaryosu

Anlatılan senaryonun database üzerindeki modellemesini yapınız. Tabloları ve ilişkileri göstermeniz yeterlidir.

Bir sinema sistemi kurgulamanız ve modellemeniz gerekmektedir. Bunun için öncelikle senaryonuzu belirtiniz, sonrasında tablo yapılarını modelleyiniz.

Bu soruda sizin şahsi senaryonuz ve o senaryoya uygun modelleme yapmanız gerekiyor.


*Süre 1 saat. “.Net İş Mülakatı”na hoşgeldiniz 🙂

15 YORUMLAR

  1. mülakatı yapan kişi ben olaydım, sadece interface / abstract üzerinden devam ederdim. Tek düze geçilmiş. sadece orası bence yeterli. Yeni işe başlayacak bir developer’ın hem c#, hem front end hem node.js.. saçmalık silsilesi..

    Mülakatı yapanı merak ettim doğrusu 🙂

    • İşe alım yapılan pozisyona göre bunlardan ilgili olanlar hakkında detaylı sorular sorulacak. Ama işe alınacak .net developer’da buradaki tüm yazanlar hakkında bir söz sahibi olması beklenir.

  2. Kimine heyecan verici kimine de ürkütücü bir yazı bu yeni başlayanlar için ama kimsenin gözünün korkmasına gerek yok hepsi ihtiyaca göre şekillenip öğreniliyor zaten

  3. .NET VE .NET CORE arasındaki farkları yazınız ?
    Başlıktan farklı biliyorum ama Entity Framework soruları da çok fazla geliyor ?
    Aşağıdakilerin hangisi C# ta yoktur ?
    Şıklar : ref,out,args,params
    Şu sayıya kadar Fibonacci değerini hesaplayan program ..
    Html Helper açıklayınız
    Razor açıklayınız

  4. Bence bu sorular, sadece ezberi iyi olan herhangi birini seçmeye yarar.
    Kod yazan birini seçmek istiyorsanız, yazdığı kodlara bakacaksınız.
    Bende ezber hiç yok, ama iyi kodlarım.

CEVAP VER

Yorum yazın
Lütfen adınızı buraya giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.