What is the difference between a namespace and assembly
name?
Ans: A namespace is a logical naming scheme for types in which a
simple type name, such as MyType, is preceded with a dot-separated hierarchical
name. Such a naming scheme is completely under control of the developer. For
example, types MyCompany.FileAccess.A and MyCompany.FileAccess.B might be
logically expected to have functionally related to file access. The .NET
Framework uses a hierarchical naming scheme for grouping types into logical
categories of related functionality, such as the ASP.NET application framework,
or remoting functionality.
Design tools can make use of namespaces to make it
easier for developers to browse and reference types in their code. The concept
of a namespace is not related to that of an assembly. A single assembly may
contain types whose hierarchical names have different namespace roots, and a
logical namespace root may span multiple assemblies. In the .NET Framework, a
namespace is a logical design-time naming convenience, whereas an assembly
establishes the name scope for types at run time.
What’s a Windows process?
Ans: It’s an application that’s running and had been allocated
memory.
What’s typical about a Windows process in regards to memory
allocation?
Ans: Each process is allocated its own block of available RAM
space, no process can access another process’ code or data. If the process
crashes, it dies alone without taking the entire OS or a bunch of other
applications down.
Explain what relationship is between a Process, Application
Domain, and Application?
Ans: Each process is allocated its own block of available RAM
space, no process can access another process’ code or data. If the process
crashes, it dies alone without taking the entire OS or a bunch of other
applications down.
A process is an instance of a running application. An
application is an executable on the hard drive or network. There can be
numerous processes launched of the same application (5 copies of Word running),
but 1 process can run just 1 application.
What are possible implementations of distributed
applications in .NET?
Ans: .NET Remoting and ASP.NET Web Services. If we talk about the
Framework Class Library, noteworthy classes are in System.Runtime.Remoting and
System.Web.Services.
What are the consideration in deciding to use .NET Remoting
or ASP.NET Web Services?
Ans: Remoting is a more efficient communication exchange when you
can control both ends of the application involved in the communication process.
Web Services provide an open-protocol-based exchange of information. Web
Services are best when you need to communicate with an external organization or
another (non-.NET) technology.
What’s a proxy of the server object in .NET Remoting?
Ans: It’s a fake copy of the server object that resides on the
client side and behaves as if it was the server. It handles the communication
between real server object and the client object. This process is also known as
marshaling.
What are remotable objects in .NET Remoting?
Ans: Remotable objects are the objects that can be marshaled
across the application domains. You can marshal by value, where a deep copy of
the object is created and then passed to the receiver. You can also marshal by
reference, where just a reference to an existing object is passed.
What are channels in .NET Remoting?
Ans: Channels represent the objects that transfer the other
serialized objects from one application domain to another and from one computer
to another, as well as one process to another on the same box. A channel must
exist before an object can be transferred.
What security measures exist for .NET Remoting in
System.Runtime.Remoting?
Ans: None. Security should be taken care of at the application
level. Cryptography and other security techniques can be applied at application
or server level.
What is a formatter?
Ans: A formatter is an object that is responsible for encoding
and serializing data into messages on one end, and deserializing and decoding
messages into data on the other end.
Choosing between HTTP and TCP for protocols and Binary and
SOAP for formatters, what are the trade-offs?
Ans: Binary over TCP is the most effiecient, SOAP over HTTP is
the most interoperable.
What’s SingleCall activation mode used for?
Ans: If the server object is instantiated for responding to just
one single request, the request should be made in SingleCall mode.
What’s Singleton activation mode?
Ans: A single object is instantiated regardless of the number of
clients accessing it. Lifetime of this object is determined by lifetime lease.
How do you define the lease of the object?
Ans: By implementing ILease interface when writing the class
code.
Can you configure a .NET Remoting object via XML file?
Ans: Yes, via machine.config and application level .config file
(or web.config in ASP.NET). Application-level XML settings take precedence over
machine.config.
How can you automatically generate interface for the
remotable object in .NET with Microsoft tools?
Ans: Use the Soapsuds tool.
What is Delegation?
Ans: A delegate acts like a strongly type function pointer.
Delegates can invoke the methods that they reference without making explicit
calls to those methods.
Delegate is an entity that is entrusted with the task of
representation, assign or passing on information. In code sense, it means a
Delegate is entrusted with a Method to report information back to it when a
certain task (which the Method expects) is accomplished outside the Method's
class.