* Объясните разницу между нитью (Thread) и процессом (Process) * Что такое сервис (Windows Service) и как его жизненный цикл отличается от «стандартного» EXE? * Какой максимальный объем памяти может адресовать один процесс? Отличается ли он от максимального объема виртуальной памяти, доступной системе? Как это влияет на структуру системы? * В чем различие между EXE и DLL? * Что такое строгая типизация (strong-typing) в сравнении со слабой типизацией (weak-typing)? Какая предпочтительнее? Почему? * Некий продукт называют «контейнером компонентов» ("Component Container"). Назовите по крайней мере 3 контейнера компонентов, поставляемых с семейством продуктов Windows Server Family. * Что такое PID? Чем он полезен при выявлении неисправностей системы? * Сколько процессов могут слушать один и тот же порт TCP/IP? * Что такое GAC? Какую проблему он разрешает?
.NET-разработчик среднего уровня
* Объясните разницу между интерфейсно ориентированным (Interface-oriented), объектно ориентированным и аспектно ориентированным (Aspect-oriented) программированием * Объясните что такое «интерфейс» и чем он отличается от класса * Что такое Reflection? * В чем различие между XML Web Services с использованием ASMX и .NET Remoting с использованием SOAP? * Являются ли системы типов, представленные в XmlSchema и в CLS — изоморфными? * Концептуально, в чем различие между ранним и поздним связыванием (early-binding и late-binding)? * Использование Assembly.Load — это статическая или динамическая ссылка? * Когда уместно использование Assembly.LoadFrom, а когда Assembly.LoadFile? * Что такое «Asssembly Qualified Name»? Это имя файла? В чем различие между ними? * Правильно ли так писать? Assembly.Load("foo.dll"); * Чем отличается «strongly-named» сборка от «НЕ strongly-named» сборки? * Может ли DateTime равняться null? * Что такое JIT? Что такое NGEN? Каковы преимущества и ограничения каждого из них? * Как основанный на поколениях сборщик мусора в .NET CLR управляет жизненным циклом объекта? Что такое «non-deterministic finalization»? * В чем различие между Finalize() и Dispose()? * Чем полезен using()? Что такое IDisposable? Как он поддерживает deterministic finalization? * Что делает эта полезная команда? tasklist /m "mscor*" * В чем разница между «in-proc» и «out-of-proc»? * Какая технология позволяет выполнять out-of-proc взаимодействие в .NET? * Когда вы запускаете компонент из под ASP.NET, в каком процессе он работает под Windows XP? Windows 2000? Windows 2003?
Ведущий разработчик
* Что не так вот в следующей строке? DateTime.Parse(myString); * Что такое PDB? Где они должны находится, чтобы можно было выполнять отладку? * Что такое «цикломатическая сложность» (cyclomatic complexity) и почему она важна? * Напишите стандартный lock() плюс «двойную проверку» для создания критической секции вокруг доступа к переменной. * Что такое «FullTrust»? Имеют ли FullTrust сборки, помещенные в GAC? * Какие преимущества получает ваш код, если вы декорируете его атрибутами, относящимися к особым Security permissions? * Что делает эта команда? gacutil /l | find /i "Corillian" * Что делает эта команда? sn -t foo.dll * Какие порты брандмауэра должны быть открыты для DCOM? Каково назначение порта 135? * Сопоставьте OOP и SOA. Каковы принципы каждого из них? * Как работает XmlSerializer? Каких ACL permissions требует использующий его процесс? * Почему catch(Exception) почти всегда — плохая мысль? * В чем разница между Debug.Write и Trace.Write? Когда должен быть использован каждый из них? * В чем различие между компиляцией в Debug и в Release? Есть ли значительная разница в скорости? Почему или почему нет? * Как работает JIT — по сборке целиком или по методу? Как это влияет на working set? * Сравните использование абстрактного базового класса и использование интерфейса? * В чем различие между a.Equals(b) и a == b? * В контексте сравнения, что такое идентичность объектов по сравнению с эквивалентностью объектов? * Как можно выполнить глубокое копирование (deep copy) в .NET? * Изложите ваше понимание IClonable. * Что такое «упаковка» (boxing)? * string — это тип значений (value type) или ссылочный тип? * В чем значимость паттерна "PropertySpecified", используемого в XmlSerializer? Какую проблему он пытается разрешить? * Почему в .NET выходные параметры (out parameters) не стоит применять? Действительно ли это так? * Может ли атрибут быть установлен на один из параметров метода? Чем это полезно?
Разработчик компонентов на C#
* Сопоставьте использование override и new. Что такое «shadowing»? * Объясните использование virtual, sealed, override и abstract. * Объясните использование и значение каждого компонента строки: Foo.Bar, Version=2.0.205.0, Culture=neutral, PublicKeyToken=593777ae2d274679d * Объясните различия между public, protected, private и internal. * Какое преимущество вы получаете от использования первичной сборки взаимодействия (Primary Interop Assembly, PIA)? * Благодаря какому механизму NUnit узнает, какой метод протестировать? * В чем различие между: catch(Exception e){throw e;} и catch(Exception e){throw;} * В чем разница между typeof(foo) и myFoo.GetType()? * Объясните что происходит в первом конструкторе: public class c{ public c(string a) : this() {;}; public c() {;} } Чем полезна такая конструкция? * Что такое «this»? Может ли this использоваться в статическом методе?
Разработчик на ASP.NET (UI)
* Объясните, как POST-запрос формы из браузера становится на серверной стороне событием — таким как Button1_OnClick. * Что такое «PostBack»? * Что такое «ViewState»? Как он кодируется? Является ли он шифрованным? Кто использует ViewState? * Что такое element и для чего используются эти две технологии ASP.NET? (В оригинале: What is the element and what two ASP.NET technologies is it used for?) * Какие три Session State providers доступны в ASP.NET 1.1? Какие преимущества и недостатки у каждого из них? * Что такое «Web Gardening»? Как его использование влияет на проект? * В заданном ASP.NET-приложении, сколько объектов-приложений имеется, если это одно-процессорная машина? двухпроцессорная? двухпроцессорная с включенным Web Gardening? Как это отражается на проекте? * Используются ли нити (threads) ASP.NET приложения повторно для различных запросов (requests)? Получает ли каждый HttpRequest свою собственную нить? Должны ли вы в ASP.NET использовать Thread Local storage? * Полезен ли атрибут [ThreadStatic] в ASP.NET? Есть ли побочный эффект? Это хорошо или плохо? * Дайте пример того, как использование HttpHandler может упростить существующий проект, который обслуживает Check Images на .aspx-странице. * На события какого вида может подписываться HttpModule? Какое влияние они могут оказать на реализацию? Что может быть сделано без перекомпиляции ASP.NET-приложения? * Опишите способы представления «arbitrary endpoint (URL)» и направьте запросы к этой endpoint в ASP.NET. * Объясните как работают cookies. Дайте пример злоупотребления Cookie. * Объясните важность HttpRequest.ValidateInput()? * Какого рода данные передаются в заголовках HTTP (HTTP Headers)? * Сравните HTTP-запросы вида GET и POST. Что такое «HEAD»? * Назовите и опишите по крайней мере 6 статус-кодов HTTP (HTTP Status Codes) и объясните о чем они говорят клиенту, давшему запрос. * Как работает «if-not-modified-since»? Как это может быть программно реализовано на ASP.NET? * Объясните <@OutputCache%> и использование «VaryByParam», «VaryByHeader». * Как работает «VaryByCustom»? * Как можно реализовать кэширование готового HTML в ASP.NET, кэшируя отправляемые версии страниц, полученные по всем значениям q= кроме q=5 (например, http://localhost/page.aspx?q=5)?
Разработчик, использующий XML
* В чем назначение XML Namespaces? * Когда уместно использование DOM? Когда неуместно? Есть ли ограничения по размеру? * Что такое «WS-I Basic Profile» и почему он важен? * Напишите простой XML-документ, использующий пространство имен (namespace) по умолчанию, а также qualified (prefixed) namespace. Добавьте элементы из обоих пространств имен. * В чем основное фундаментальное различие между элементами (Elements) и атрибутами (Attributes)? * В чем различие между «Well-Formed XML» и «Valid XML»? * Как бы вы валидировали XML используя .NET? * Почему такое использование — почти всегда неудачно. В каких случаях такое уместно? myXmlDocument.SelectNodes("//mynode"); * Объясните различие между «pull-style parsers» (XmlReader) и «eventing-readers» (Sax) * В чем различие между XPathDocument и XmlDocument? Опишите ситуацию когда один из них может быть использован над другим. * В чем различие между XML "Fragment" и XML "Document" * Что означает — «каноническая» форма XML? * Почему спецификация XML InfoSet отличается от Xml DOM? Что пытается решить InfoSet? * Сравните DTD и XSD. В чем они схожи, в чем различны? Что предпочтительнее и почему? * Поддерживаются ли DTD в System.Xml? Как именно? * Всякая ли XML Schema может быть представлена в виде графа объектов? А наоборот?
"Что должен знать правильный .NET-разработчик"
No comments yet. -