Hanselman’s Questions: List of Answers

Эта страница посвящена переводу, рассматриваемых мною в рамках данного журнала, вопросов по .NET уважаемого Scott Hanselman (Hanselman’s Questions: List of Answers, HQLA). Всего намечается 25 выпусков, каждый выпуск будет содержать, по возможности, полные ответы на очередные 3 вопроса. В ходе публикаций будут рассмотрены следующие подразделы вопросника: Everyone who writes code(Каждый кто пишет код), Mid-Level .NET Developer(Средний .NET разработчик), Senior Developers/Architects (Ведущий разработчик/Программный Архитектор), Developers using XML (Разработчик, использующий XML).

Что должен знать разработчик .NET

Каждый кто пишет код

Средний .NET разработчик

  • Опишите разницу между интерфейсно-ориентированным, объектно-ориентированным и аспектно-ориентированным стилем программирования.
  • Дайте описание Интерфейса и опишите основные его отличия от Класса.
  • Что такое Reflection?
  • В чем разница между XML Web Services использующем ASMX и .NET Remoting использующем SOAP?
  • Изоморфны ли системы типов в XmlSchema и CLS?
  • В чем концептуальная разница между “ранним” и “поздним” связыванием?
  • Использование Assembly.Load статическая или динамическая ссылка на сборку?
  • Когда предпочтительнее использовать Assembly.LoadFrom, а когда Assembly.LoadFile?
  • Что такое Asssembly Qualified Name? Совпадает ли оно с именем фала и если нет, то в чем отличие?
  • Верно ли написанное? Assembly.Load(“foo.dll”);
  • В чем разница меджу сборками со строгим и нестрогим именованием?
  • Может ли DateTimes иметь значение null?
  • Что такое JIT? Что такое NGEN? В чем достоинства и недостатки каждого?
  • Как сборщик мусора, основанный на поколениях, определяет время жизни объекта в .NET CLR? Что такое недетерминированная финализация?
  • В чем разница между Finalize() и Dispose()?
  • Чем полезен шаблон using() ? Что такое IDisposable? Как он поддерживает детерминированную финализацию?
  • Что делает данная команда? tasklist /m “mscor*”
  • В чем разница между “in-proc” и “out-of-proc”?
  • Какая технология обеспечивает “out-of-proc” связь в .NET?
  • Когда вы запускаете компонент с использованием ASP.NETкакой процесс он запускает на машине с ОС Windows XP? Windows 2000? Windows 2003?

Ведущий разработчик/Программный Архитектор

  • Что не так со строкой? DateTime.Parse(myString);
  • Что такое PDBs? Где они должны быть расположены, чтобы работал дебаггер?
  • Что такое цикломатическая сложность и почему она важна?
  • Напишите стандартный lock() и “двойную проверку” для создания критической секции, в которой происходит доступ к переменной.
  • Что такое FullTrust? Имеют ли сбрки расположенные в GAC’е FullTrust?
  • Какие положительные черты появятся у Вашего года, если Вы оформите его с использованием 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) and a == b?
  • В контексте сравнения, сопоставьте идентификацию и эквивалентность объектов?
  • Как сделать deep copy в .NET?
  • Что такое IClonable?
  • Что такое упаковка?
  • Является ли string value типом или reference типом?
  • Для чего используется “PropertySpecified” в XmlSerializer? Какую проблему он пытается решать?
  • Почему использование out-параметров не самая лучшая идея в .NET? Так ли это?
  • Может ли параметр метода иметь атрибут? Когда это полезно?

Разработчик, использующий XML

  • Каково назначение XML Namespaces?
  • Когда использование DOM предпочтительнее? Когда нет? Существуют ли ограничения связанные с размером?
  • Что такое WS-I Basic Profile и почему он важен?
  • Напишите небольшой XML документ использующий дефолтное пространство имен а так же qualified пространство имен. Используйте в документе элементы из обоих пространств имен.
  • Какое самое главное фундаментальное отличие между Elements и Attributes?
  • В чем разница между Well-Formed XML и Valid XML?
  • Как бы Вы валидировали XML используя .NET?
  • Почему такое использование выделения почти всегда неудачная идея? Когда это работает? myXmlDocument.SelectNodes(“//mynode”);
  • Опишите разницу между парсерами pull-style (XmlReader) и eventing-readers (Sax)
  • В чем разница между XPathDocument и XmlDocument? Опишите ситуацию, когда использование одного предпочтительнее использованию второго.
  • В чем разница между XML “Fragment” и XML “Document.”
  • Что означает фраза “каноническая форма” XML?
  • Почему XML InfoSet спецификация отличается от Xml DOM? Что помогает решить InfoSet?
  • Сравните DTDs и XSDs. В чем сходства и в чем различия? Который предпочтительнее и почему?
  • Поддерживает ли System.Xml DTDs? Как?
  • Можно ли представить XML Schema как объектный граф и наоборот?

Комментариев: 3 to “HQLA”

  1. HQLA. Выпуск #1. | Technogeek | July 14th, 2008 at 2:50 pm

    [...] Первый выпуск ответов на вопросы HQLA. [...]

  2. Про материнские платы ASUS, SATA шлейфы и мангал | Technogeek | September 11th, 2008 at 10:20 pm

    [...] С началом нового отчетного периода возобновляются HQLA, заметки посвященные разработке ПО и все такое прочее. [...]

  3. Пояснения к вопросу #6 HQLA | Technogeek | December 17th, 2008 at 6:53 pm

    [...] шестой вопрос ответов на вопросы Хансельмана, по поводу Component Cоntainer, пришло некоторое количество [...]

Оставить комментарий

Please input following word "2HG7H" from RIGHT to LEFT:

- this is neccessary(spam filter).