代码改变世界

What Great .NET Developers Ought To Know (More .NET Interview Questions)

2007-11-01 14:21  Jacky_Xu  阅读(233)  评论(0编辑  收藏  举报

A while back, I posted a list of ASP.NET Interview Questions. Conventional wisdom was split, with about half the folks saying I was nuts and that it was a list of trivia. The others said basically "Ya, those are good. I'd probably have to look a few up." To me, that's the right response.
Certainly I wasn't trying to boil all of .NET Software Development down to a few simple "trivia" questions. However, I WAS trying to get folks thinking. I believe that really good ASP.NET (and for that matter, WinForms) is a little [read: lot] more than just draging a control onto a designer and hoping for the best. A good race driver knows his car - what it can do and what it can't.
So, here's another list...a greatly expanded list, for your consumption (with attribution). I wrote this on a plane last week on the way from Boise to Portland. I tried to take into consideration the concerns that my lists contain unreasonable trivia. I tried to make a list that was organized by section. If you've never down ASP.NET, you obviously won't know all the ASP.NET section. If you're an indenpendant consultant, you may never come upon some of these concepts. However, ever question here has come up more than once in the last 4 years of my time at Corillian. So, knowing groking these questions may not make you a good or bad developer, but it WILL save you time when problems arise.
What Great .NET Developers Ought To Know
Everyone who writes code
  Describe the difference between a Thread and a Process
  What is a Windows Service and how does its lifecycle differ from a "standard" EXE
  What is the maximum amount of memory any single process on Windows can addressIs this different than the maximum virtual memory for the systemHow would this affect a system design
  What is the difference between an EXE and a DLL
  What is strong-typing versus weak-typingWhich is preferredWhy
  Corillian's product is a "Component Container." Name at least 3 component containers that ship now with the Windows Server Family.
  What is a PIDHow is it useful when troubleshooting a system
  How many processes can listen on a single TCP/IP port
  What is the GACWhat problem does it solve
Mid-Level .NET Developer
  Describe the difference between Interface-oriented, Object-oriented and Aspect-oriented programming.
  Describe what an Interface is and how it’s different from a Class.
  What is Reflection
  What is the difference between XML Web Services using ASMX and .NET Remoting using SOAP
  Are the type system represented by XmlSchema and the CLS isomorphic
  Conceptually, what is the difference between early-binding and late-binding
  Is using Assembly.Load a static reference or dynamic reference
  When would using Assembly.LoadFrom or Assembly.LoadFile be appropriate
  What is an Asssembly Qualified NameIs it a filenameHow is it different
  Is this validAssembly.Load("foo.dll");
  How is a strongly-named assembly different from one that isn’t strongly-named
  Can DateTimes be null
  What is the JITWhat is NGENWhat are limitations and benefits of each
  How does the generational garbage collector in the .NET CLR manage object lifetimeWhat is non-deterministic finalization
  What is the difference between Finalize() and Dispose()
  How is the using() pattern usefulWhat is IDisposableHow does it support deterministic finalization
  What does this useful command line dotasklist /m "mscor*"
  What is the difference between in-proc and out-of-proc
  What technology enables out-of-proc communication in .NET
  When you’re running a component within ASP.NET, what process is it running within on Windows XPWindows 2000Windows 2003
Senior Developers/Architects
  What’s wrong with a line like thisDateTime.Parse(myString);
  What are PDBsWhere must they be located for debugging to work
  What is cyclomatic complexity and why is it important
  Write a standard lock() plus “double check” to create a critical section around a variable access.
  What is FullTrustDo GAC’ed assemblies have FullTrust
  What benefit does your code receive if you decorate it with attributes demanding specific Security permissions
  What does this dogacutil /l | find /i "Corillian"
  What does this dosn -t foo.dll
  What ports must be open for DCOM over a firewallWhat is the purpose of Port 135
  Contrast OOP and SOA. What are tenets of each
  How does the XmlSerializer workWhat ACL permissions does a process using it require
  Why is catch(Exception) almost always a bad idea
  What is the difference between Debug.Write and Trace.WriteWhen should each be used
  What is the difference between a Debug and Release buildIs there a significant speed differenceWhy or why not
  Does JITting occur per-assembly or per-methodHow does this affect the working set
  Contrast the use of an abstract base class against an interface
  What is the difference between a.Equals(b) and a == b
  In the context of a comparison, what is object identity versus object equivalence
  How would one do a deep copy in .NET
  Explain current thinking around IClonable.
  What is boxing
  Is string a value type or a reference type
  What is the significance of the "PropertySpecified" pattern used by the XmlSerializerWhat problem does it attempt to solve
  Why are out parameters a bad idea in .NETAre they
  Can attributes be placed on specific parameters to a methodWhy is this useful
C# Component Developers
  Juxtapose the use of override with new. What is shadowing
  Explain the use of virtual, sealed, override, and abstract.
  Explain the importance and use of each component of this string: Foo.Bar, Version=2.0.205.0, Culture=neutral, PublicKeyToken=593777ae2d274679d
  Explain the differences between public, protected, private and internal.
  What benefit do you get from using a Primary Interop Assembly (PIA)
  By what mechanism does NUnit know what methods to test
  What is the difference between: catch(Exception e){throw e;} and catch(Exception e){throw;}
  What is the difference between typeof(foo) and myFoo.GetType()
  Explain what’s happening in the first constructor: public class c{ public c(string a) : this() {;}; public c() {;} } How is this construct useful
  What is thisCan this be used within a static method
ASP.NET (UI) Developers
  Describe how a browser-based Form POST becomes a Server-Side event like Button1_OnClick.
  What is a PostBack
  What is ViewStateHow is it encodedIs it encryptedWho uses ViewState
  What is the <machinekey> element and what two ASP.NET technologies is it used for
  What three Session State providers are available in ASP.NET 1.1What are the pros and cons of each
  What is Web GardeningHow would using it affect a design
  Given one ASP.NET application, how many application objects does it have on a single proc boxA dualA dual with Web Gardening enabledHow would this affect a design
  Are threads reused in ASP.NET between reqeustsDoes every HttpRequest get its own threadShould you use Thread Local storage with ASP.NET
  Is the [ThreadStatic] attribute useful in ASP.NETAre there side effectsGood or bad
  Give an example of how using an HttpHandler could simplify an existing design that serves Check Images from an .aspx page.
  What kinds of events can an HttpModule subscribe toWhat influence can they have on an implementationWhat can be done without recompiling the ASP.NET Application
  Describe ways to present an arbitrary endpoint (URL) and route requests to that endpoint to ASP.NET.
  Explain how cookies work. Give an example of Cookie abuse.
  Explain the importance of HttpRequest.ValidateInput()
  What kind of data is passed via HTTP Headers
  Juxtapose the HTTP verbs GET and POST. What is HEAD
  Name and describe at least a half dozen HTTP Status Codes and what they express to the requesting client.
  How does if-not-modified-since workHow can it be programmatically implemented with ASP.NET
Explain <@OutputCache%> and the usage of VaryByParam, VaryByHeader.
  How does VaryByCustom work
  How would one implement ASP.NET HTML output caching, caching outgoing versions of pages generated via all values of q= except where q=5 (as in http://localhost/page.aspx q=5)
Developers using XML
  What is the purpose of XML Namespaces
  When is the DOM appropriate for useWhen is it notAre there size limitations
  What is the WS-I Basic Profile and why is it important
  Write a small XML document that uses a default namespace and a qualified (prefixed) namespace. Include elements from both namespace.
  What is the one fundamental difference between Elements and Attributes
  What is the difference between Well-Formed XML and Valid XML
  How would you validate XML using .NET
  Why is this almost always a bad ideaWhen is it a good ideamyXmlDocument.SelectNodes("//mynode");
  Describe the difference between pull-style parsers (XmlReader) and eventing-readers (Sax)
  What is the difference between XPathDocument and XmlDocumentDescribe situations where one should be used over the other.
  What is the difference between an XML "Fragment" and an XML "Document."
  What does it meant to say “the canonical” form of XML
  Why is the XML InfoSet specification different from the Xml DOMWhat does the InfoSet attempt to solve
  Contrast DTDs versus XSDs. What are their similarities and differencesWhich is preferred and why
  Does System.Xml support DTDsHow
  Can any XML Schema be represented as an object graphVice versa