Najlepsze pytania i odpowiedzi na rozmowę dla programisty .NET

Jeśli szukasz porządnego programisty, musisz oczywiście sprawdzić umiejętności kandydatów w zakresie wytwarzania oprogramowania. Twój przyszły programista .NET powinien znać nie tylko Microsoft .NET Framework, lecz także skuteczne techniki programowania i wytwarzania oprogramowania. Poza innymi trudnymi pytaniami rekrutacyjnymi dla programisty .NET rekruter powinien sprawdzić wiedzę techniczną kandydatów na temat .NET Framework. 

Ta lista przyda się także kandydatom przygotowującym się do rozmowy.

Dlatego ten artykuł z listą pytań i odpowiedzi rekrutacyjnych dla programistów .NET pomoże obu stronom rozmowy.

Pytania rekrutacyjne dla juniora .NET

01

Czym jest .NET Framework?

Platforma .NET wspiera podejście obiektowe wykorzystywane do budowania aplikacji na Windowsa. Obsługuje różne języki, takie jak C#, VB, Cobol, Perl, .NET itd. Ma szeroki zestaw narzędzi i funkcji — klasy, biblioteki i API — używanych do budowania, wdrażania i uruchamiania usług sieciowych oraz różnych aplikacji.

02

Jakie są komponenty platformy .NET?

Oto komponenty platformy .NET:

  • Common language runtime
  • Application domain
  • Generic type system
  • .NET class library
  • .NET Framework
  • Profiling

03

Co wiesz o CTS?

CTS to skrót od Common Type System. Stosuje określone reguły, według których typ danych musi być zadeklarowany i używany w kodzie programu. CTS opisuje też typy danych, które będą używane w aplikacji. Możemy nawet tworzyć własne klasy i funkcje zgodne z regułami CTS — pomaga to wywoływać typ danych zadeklarowany w jednym języku programowania z poziomu innych języków.

04

Czym jest CLR?

CLR to skrót od common language run-time; to kluczowy komponent platformy .NET. CLR możemy wykorzystać jako element budulcowy różnych aplikacji, zapewniający im bezpieczne środowisko uruchomieniowe.

Za każdym razem, gdy aplikacja napisana w C# jest kompilowana, kod jest zamieniany na język pośredni. Kod trafia następnie do CLR, który wykonuje szereg operacji, takich jak zarządzanie pamięcią, kontrole bezpieczeństwa, ładowanie zestawów i zarządzanie wątkami.

05

Wyjaśnij, czym jest CLS

Common Language Specification pomaga programistom korzystać z komponentów zgodnych w różnych językach dzięki określonym regułom, które niesie CLS. Pomaga to następnie ponownie wykorzystywać kod w innych językach zgodnych z .NET.

06

Co wiesz o JIT?

JIT to kompilator, którego nazwa oznacza Just In Time. Służy do zamiany kodu pośredniego na język natywny. Kod pośredni jest zamieniany na język natywny w czasie działania programu.

07

Czym jest MIME?

MIME to skrót od Multipurpose Email Extensions; to rozszerzenie protokołu poczty elektronicznej, które pozwala użytkownikom wymieniać pliki przez internet.

Serwery wstawiają nagłówek MIME na początku transferu WWW. Klienci używają następnie tego nagłówka, żeby wybrać odpowiedni „odtwarzacz” dla typu danych wskazanego przez nagłówek. Część z nich jest wbudowana w przeglądarkę.

08

Jaka jest różnica między Response.Redirect a Server.Transfer?

Response.Redirect po prostu przekierowuje przeglądarkę użytkownika na inną stronę lub witrynę. Historia przeglądarki użytkownika jest przy tym aktualizowana o nowy adres URL. Wykonywany jest też powrót do klienta, którego przeglądarka zostaje przekierowana na nową stronę.

Z kolei Server.Transfer przenosi z jednej strony na drugą bez powrotu do przeglądarki klienta. W przypadku Server.Transfer historia nie jest aktualizowana.

09

Co wiesz o BCL?

  • BCL to podstawowa biblioteka klas, interfejsów i typów wartościowych.
  • To fundament aplikacji, komponentów i kontrolek platformy .NET.
  • Hermetyzuje ogromną liczbę typowych funkcji i udostępnia je programistom w prosty sposób.
  • Zapewnia funkcje takie jak wielowątkowość, wejście/wyjście, bezpieczeństwo, diagnostyka, zasoby, globalizacja itd.
  • Służy też do interakcji między użytkownikiem a środowiskiem uruchomieniowym.
  • Udostępnia też bardzo często używane przestrzenie nazw, na przykład system, system.Activities itd.

10

Jaka jest różnica między przestrzenią nazw a zestawem?

Zestaw (assembly) to fizyczna grupa jednostek logicznych, a przestrzeń nazw to grupa klas. Dodatkowo przestrzeń nazw może obejmować wiele zestawów.

Pytania rekrutacyjne dla mida .NET

01

Czym jest LINQ?

To skrót od Language Integrated Query, wprowadzony w Visual Studio 2008. LINQ to zestaw funkcji rozszerzających możliwości zapytań o składnię języków platformy .NET, co pozwala manipulować danymi niezależnie od ich źródła. LINQ wypełnia lukę między światem obiektów a światem danych.

02

Czym jest MSIL?

MSIL to język pośredni Microsoftu; dostarcza instrukcje wywoływania metod, przechowywania i inicjalizowania wartości, obsługi pamięci, obsługi wyjątków i tak dalej. Cały kod .NET jest najpierw kompilowany do języka pośredniego.

03

Omów poszczególne części zestawu.

Poniżej wymieniono poszczególne części zestawu:

  • Manifest: zawiera informacje o wersji zestawu.
  • Typ metadanych: zawiera binarne informacje o programie.
  • MSIL: kod Microsoft Intermediate Language
  • Zasoby: lista powiązanych plików

04

Jakie rodzaje konstruktorów są w C#?

Oto rodzaje konstruktorów w C#:

  • Konstruktor domyślny
  • Konstruktor parametryczny
  • Konstruktor kopiujący
  • Konstruktor statyczny
  • Konstruktor prywatny

05

Jakie są rodzaje zestawów?

Są dwa rodzaje zestawów:

  • Zestaw prywatny: dostępny tylko dla aplikacji, instalowany w katalogu instalacyjnym aplikacji.
  • Zestaw współdzielony: może być używany przez wiele aplikacji, instalowany w GAC.

06

Czym są MDI i SDI?

  • MDI (Multiple Document Interface): MDI pozwala otwierać wiele okien — jest jedno okno nadrzędne i dowolna liczba okien podrzędnych. Komponenty, takie jak pasek menu czy pasek narzędzi, są współdzielone z okna nadrzędnego.
  • SDI (Single Document Interface): otwiera każdy dokument w osobnym oknie. Każde okno ma własne komponenty, takie jak pasek menu czy pasek narzędzi. Nie jest więc ograniczone do okna nadrzędnego.

07

Czym jest garbage collector?

Odśmiecacz pamięci .NET zwalnia nieużywane obiekty kodu w pamięci. Sterta pamięci jest podzielona na 3 generacje:

  • Generacja 0: przechowuje obiekty krótko żyjące.
  • Generacja 1: dla obiektów o średniej długości życia.
  • Generacja 2: przechowuje obiekty długo żyjące.

Odśmiecanie pamięci polega na zbieraniu obiektów przechowywanych w kolejnych generacjach.

08

Czym jest buforowanie?

Buforowanie oznacza po prostu tymczasowe przechowywanie danych w pamięci, tak aby można było je pobierać z pamięci zamiast szukać ich w pierwotnej lokalizacji. Zwiększa to wydajność aplikacji, a także jej szybkość.

Oto rodzaje buforowania:

  • Buforowanie stron
  • Buforowanie danych
  • Buforowanie fragmentów

09

Wyjaśnij MVC.

MVC to skrót od Model View Controller — architektury służącej do budowania aplikacji .NET.

  • Model: To logiczna część aplikacji odpowiadająca za zapisywanie obiektów i pobieranie ich z baz danych.
  • View: Widok odpowiada za część interfejsu użytkownika aplikacji. Dane do wyświetlenia pobiera z modeli.

Controller: Obsługują interakcje użytkownika, definiują reakcje na jego działania, a także renderują widok potrzebny do interakcji z użytkownikiem.

10

Czym jest CAS?

CAS to skrót od Code Access Security. CAS jest częścią modelu bezpieczeństwa, który zapobiega nieautoryzowanemu dostępowi do zasobów. Pozwala też ustawiać uprawnienia kodu. CLR wykonuje następnie kod zgodnie z tymi uprawnieniami.

CAS można stosować wyłącznie do kodu zarządzanego. Jeśli zestaw korzysta z CAS, jest uznawany za częściowo zaufany — mimo że przy każdej próbie dostępu do zasobów przechodzi kontrole.

Pytania rekrutacyjne dla seniora .NET

01

Czym jest domena aplikacji?

ASP.NET wprowadza pojęcie domeny aplikacji (AppDomain), która działa jak lekki proces pełniący rolę kontenera i granicy. Środowisko uruchomieniowe .NET używa domeny aplikacji jako kontenera na dane i kod. CLR pozwala uruchamiać wiele aplikacji .NET w tej samej domenie aplikacji.

02

Czym jest delegat w .NET?

Delegat w .NET jest jak wskaźnik na funkcję w innych językach programowania, takich jak C czy C++. Delegat pozwala hermetyzować referencję do metody w obiekcie delegata. Taki obiekt można następnie przekazać do programu, który wywoła wskazaną metodę. Możemy nawet użyć metody delegata, żeby utworzyć własne zdarzenie w klasie.

03

Jakie walidatory są dostępne w ASP.NET?

Walidacja po stronie klienta - gdy walidacja odbywa się w przeglądarce po stronie klienta, nazywamy ją walidacją po stronie klienta. Zwykle używa się do niej JavaScriptu.

Walidacja po stronie serwera - gdy walidacja odbywa się na serwerze, nazywamy ją walidacją po stronie serwera. Walidacja po stronie serwera jest uznawana za bezpieczną formę walidacji, ponieważ nawet jeśli użytkownik ominie walidację po stronie klienta, wciąż możemy to wychwycić na serwerze.

04

Czym są EXE i DLL?

EXE i DLL to wykonywalne moduły zestawów.

EXE: To plik wykonywalny, który uruchamia aplikację, dla której powstał. Gdy tworzymy aplikację, powstaje plik exe. Zestawy są więc ładowane bezpośrednio przy uruchomieniu pliku exe. Pliku exe nie można jednak współdzielić z innymi aplikacjami.


DLL: To biblioteka dołączana dynamicznie, zawierająca kod, który ma pozostać ukryty. Kod jest w niej hermetyzowany; aplikacja może mieć wiele plików DLL, można je też współdzielić z innymi aplikacjami.

05

Wyjaśnij zabezpieczenia oparte na rolach.

Zabezpieczenia oparte na rolach służą do wdrażania kontroli dostępu w oparciu o rolę przypisaną użytkownikom w organizacji. Możemy wtedy autoryzować użytkowników na podstawie ich ról w organizacji. Na przykład Windows udziela dostępu w oparciu o role takie jak użytkownicy, administratorzy i goście.

06

Czym jest publikowanie między stronami?

Za każdym razem, gdy klikamy przycisk wysyłania na stronie, dane są zapisywane na tej samej stronie. Jeśli jednak dane trafiają na inną stronę, nazywamy to publikowaniem między stronami.

Publikowanie między stronami można zrealizować za pomocą właściwości POSTBACKURL, która wyzwala postback.

Metody FindControl można użyć, aby pobrać wartości opublikowane na stronie, do której zostały wysłane.

07

Wyjaśnij uwierzytelnianie Passport.

Podczas uwierzytelniania Passport najpierw sprawdzany jest plik cookie uwierzytelniania Passport; jeśli go nie ma, aplikacja przekierowuje na stronę logowania Passport. Usługa Passport uwierzytelnia następnie dane logowania użytkownika, a jeśli są poprawne, zapisuje je na komputerze klienta i przekierowuje użytkownika na żądaną stronę.

08

Czym są kontrolki zabezpieczeń w ASP.NET?

  • <asp: Login>: Zapewnia mechanizm logowania, który pozwala użytkownikom wprowadzić dane uwierzytelniające.
  • <asp: LoginName>: Pozwala wyświetlić nazwę zalogowanego użytkownika.
  • <asp: LoginStatus>: Wskazuje, czy użytkownik jest uwierzytelniony, czy nie.
  • <asp: LoginView>: Udostępnia różne warianty logowania w zależności od wybranego szablonu.
  • <asp: PasswordRecovery>: Wysyła użytkownikom zapomniane hasła e-mailem.

09

Czym jest HTTP handler?

Każde żądanie do aplikacji ASP.NET jest przetwarzane przez wyspecjalizowany komponent nazywany HTTP handlerem. To najważniejszy komponent obsługujący żądania w aplikacjach ASP.NET.

Używa różnych handlerów do obsługi różnych plików. Handler strony internetowej tworzy stronę i kontrolki, uruchamia Twój kod, a następnie renderuje ostateczny kod HTML.

Oto domyślne handlery HTTP w ASP.NET:

  • Page handler (.aspx): obsługuje strony internetowe.
  • Custom Control Handler (.ascx): obsługuje strony kontrolek użytkownika.
  • Web service handler (.asmx): przetwarza strony usług sieciowych.
  • Trace handler (trace.axd): obsługuje funkcje śledzenia

10

Czym jest sekcja appSettings w pliku web.config?

Jeśli chcemy ustawić wartości definiowane przez użytkownika dla wszystkich aplikacji, możemy użyć bloku appSettings w pliku web.config. Na przykład poniższy kod używa ConnectionString w całym projekcie do połączenia z bazą danych:

<em><configuration>

<appsettings>

<add key= "ConnectionString" value="server=local; pwd=password; database=default" />

</appSettings></em>

home-05
Rekrutujesz programistów .NET?
Mamy ludzi, których szukasz!
Skontaktuj się
Szukasz sprawdzonych programistów .NET do swojego zespołu?

W naszej sieci talentów są setki sprawdzonych w boju ekspertów od tworzenia oprogramowania.

Jesteś programistą .NET i szukasz świetnych projektów? Dołącz jako specjalista