Объясните разницу между нитью (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?
Что такое <machinekey> element и для чего используются эти две технологии ASP.NET? (В оригинале: What is the <machinekey> 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 может быть представлена в виде графа объектов? А наоборот?
Здравствуйте, nzeemin, Вы писали:
N> Некий продукт называют «контейнером компонентов» ("Component Container"). Назовите по крайней мере 3 контейнера компонентов, поставляемых с семейством продуктов Windows Server Family.
А какой ответ?
N> Сколько процессов могут слушать один и тот же порт TCP/IP?
У порта может быть один слушатель и это независит от количества процессов.
N> Использование Assembly.Load — это статическая или динамическая ссылка?
И как это понимать?
N>Ведущий разработчик[list] N> Что не так вот в следующей строке? N>DateTime.Parse(myString);
Действительно, а что не так?
N> Напишите стандартный lock() плюс «двойную проверку» для создания критической секции вокруг доступа к переменной.
И что тут спрашивалось?
N> Какие порты брандмауэра должны быть открыты для DCOM? Каково назначение порта 135?
Вопрос подрузомевает ответ
Дальше такой же бред.
Re[2]: Что должен знать правильный .NET-разработчик
Re[3]: Что должен знать правильный .NET-разработчик
От:
Аноним
Дата:
30.03.05 11:03
Оценка:
Здравствуйте, csharper, Вы писали:
N>>>Ведущий разработчик[list] N>>> Что не так вот в следующей строке? N>>>DateTime.Parse(myString);
А>>Действительно, а что не так?
C>наверное от настроек культуры зависит, не всегда будет работать.
Работать будет всегда. Другое дело, что не ту дату отдавать. Но эдак можно вооще UTC использовать и ждать на другом конце, что его не как обычную локальную дату интерпретируют.
N>>> Напишите стандартный lock() плюс «двойную проверку» для создания критической секции вокруг доступа к переменной.
А>>И что тут спрашивалось?
C>Видимо у автор программирует по своим понятиям
я вот сначала подумал что то вроде этого
if (_myVal == null)
{
lock (_myValLock)
{
if (_myVal == null)
_myVal = new MyVal();
}
}
Складывается такое ощущение, что автор привел список того, что он сам знает, а не того, что должен знать разрабочик.
Re[4]: Что должен знать правильный .NET-разработчик
N> Использование Assembly.Load — это статическая или динамическая ссылка?
Я бы еще добавил к обязательным навыкам умение правильно и понятно выражать мысли на русском языке.
N> Может ли DateTime равняться null?
... и строго.
N> Сравните использование абстрактного базового класса и использование интерфейса? N> В чем различие между a.Equals(b) и a == b? N> В контексте сравнения, что такое идентичность объектов по сравнению с эквивалентностью объектов? N> Что такое «упаковка» (boxing)? N> string — это тип значений (value type) или ссылочный тип?
Почему это не в "обычном" разработчике а в ведущем?
N> Сопоставьте использование override и new. Что такое «shadowing»? N> Объясните использование virtual, sealed, override и abstract. N> Объясните использование и значение каждого компонента строки: N>Foo.Bar, Version=2.0.205.0, Culture=neutral, PublicKeyToken=593777ae2d274679d N> Объясните различия между public, protected, private и internal. N> Что такое «this»? Может ли this использоваться в статическом методе?
И это почему-то не в "общем" списке.
А вообще список интересный. Побольше бы только вопросов на практику, а не на "читал-не читал".
Здравствуйте, nzeemin, Вы писали:
N>Есть вот такой, далеко не лишенный интереса вопросник:
Список супер. Спасибо!
А каждый ведущий разработчик действительно просто обязан знать double-check locking pattern — это же азы синхронизации и классических операционных систем, можно сказать целой науки.
Сколько процессов могут слушать один и тот же порт TCP/IP?
И это должен знать "Каждый кто пишет код"?
В теории всё конечно просто: пишем мета-слушателя, который слушает заданный порт и при соединении с клиентом делегирует socket нужному процессу.
На приктике тут пол-месяца работы совсем недешевого кодера.
... << RSDN@Home 1.1.4 beta 4 rev. 333>>
Re[2]: Что должен знать правильный .NET-разработчик
Здравствуйте, Кирилл Осенков, Вы писали:
КО>Список супер. Спасибо! КО>А каждый ведущий разработчик действительно просто обязан знать double-check locking pattern — это же азы синхронизации и классических операционных систем, можно сказать целой науки.
Каждый должен знать. А ведущий должен знать про это
Re[2]: Что должен знать правильный .NET-разработчик
От:
Аноним
Дата:
01.04.05 07:40
Оценка:
Правельный .NET разработчик должен знать, что когда он сделает свою правильную прогу, ее взломает не провильный .NET разработчик и будет успешно юзать сие творение.
По-моему, это не то, что должен знать правильный .NET-разработчик,
а смесь вопросов по теории (основы ОС, ОО, параллельное программирование, ...)
и практикой — общие вопросы алгоритмизации, паттерны проектирования, абсолютно
специфичные для .NET нюансы.
Теоритические вопросы надо знать (а не должно знать).
Практические вопросы — это опыт работы на конкретном языке.
- Eugeny
Re[2]: Что должен знать правильный .NET-разработчик
Здравствуйте, Igor Trofimov, Вы писали:
iT>Почему это не в "обычном" разработчике а в ведущем?
Для ведущего я бы спрсил то же самое про enum.
iT>А вообще список интересный. Побольше бы только вопросов на практику, а не на "читал-не читал".
Да, некоторые вопросы неплохие. Но где то треть — чушь собачья. Особенно добивает одна вещь — когда в вопросах вводятся нестандартные термины и спрашивается что они означают.
Вобщем прежде чем использовать где то, надо тщательно профильтровать.
В принципе набор вопрос хорош действительно для подготовки к интервью.
Но как мне понравилось на интервью, человек должен обладать методологие проектирование — OOП — оно и на чукотке OOП.
А каким образом я нашу мютекс, через lock(), synchronize() или Mutex — это уже зависит от технологии, а вот человек не понимающий для чего это, никогда ее нигде не напишет.
Здравствуйте, nzeemin, Вы писали:
N>Что должен знать правильный .NET-разработчик
Да ну?
N>Каждый кто пишет код
это программисты и шифровальщики N> Объясните разницу между нитью (Thread) и процессом (Process)
Никакой. Процесс — основная нить программы. N> Что такое сервис (Windows Service) и как его жизненный цикл отличается от «стандартного» EXE?
сервис не загружается проводником N> Какой максимальный объем памяти может адресовать один процесс?
Литров так 3. N>Отличается ли он от максимального объема виртуальной памяти, доступной системе?
Ага, виртуальная память это то что я заказываю у начальства, а вот доступной системе — значительно меньше. N>Как это влияет на структуру системы?
А никак. Сколько памяти не бери, все сожруть проклятые. N> В чем различие между EXE и DLL?
PE заголовком N> Что такое строгая типизация (strong-typing) в сравнении со слабой типизацией (weak-typing)? Какая предпочтительнее? Почему?
Абсолютно согласен. VBScript — величайший из языков. N> Некий продукт называют «контейнером компонентов» ("Component Container"). Назовите по крайней мере 3 контейнера компонентов, поставляемых с семейством продуктов Windows Server Family.
Врет четыре. Minesweeper, Solitare, Pinball и Freecell/ N> Что такое PID? Чем он полезен при выявлении неисправностей системы?
Недописанное слово обозначающее мужчин другой ориентации N> Сколько процессов могут слушать один и тот же порт TCP/IP?
На скольких компах? N> Что такое GAC? Какую проблему он разрешает?
А это что за слово в три буквы?
Ну не нравятся мне такие анкеты. Пока с человеком не поговоришь, хрен поймешь что он представляет.
Note: The common language runtime resolves issues related to using Double-Check Locking that are common in other environments. For more information about these issues, see The Double-Checked Locking Is Broken Declaration, on the University of Maryland, Department of Computer Science Web site, at
-- Если тебе помогли, незабудь сказать спасибо --
-- Это всё мое личное мнение которое может не совпадать с Вашим или может быть ошибочным --
Здравствуйте, nzeemin, Вы писали:
N>Ведущий разработчик N> Что не так вот в следующей строке? N>DateTime.Parse(myString);
Можно узнать, а зачем нужно это знать?
Скажу чесно, что без помощи IDE ли хелпа я затрудняюсь ответить на этот вопрос.
Ну, разве что знчение вычисления теряется.
Если речь о форматах дат, то может мне как раз нужно конкретное поведение?
В общем, какой-то мелочный и совершенно не важный вопрос. Можно его не знать и решать сложнейшие задачи.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Что должен знать правильный .NET-разработчик
Здравствуйте, GlebZ, Вы писали:
N>> Объясните разницу между нитью (Thread) и процессом (Process) GZ>Никакой. Процесс — основная нить программы.
Садись — два.
Процесс в WinAPI — это адрессное простраство в котром может выполняться от нуля до нескольких потоков.
N>> Какой максимальный объем памяти может адресовать один процесс? GZ>Литров так 3.
64-бтыный?
Что до "адресовать", то теоритически 4 Гб. Но безопасный дотнетныей код вообще ничего адресовать не может .
Что до доступного для процесса адрессного пространства, то это очень тонкий вопрос. Он зависит от многих факторов.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.