|
1. What is CLR?
The .NET Framework provides a runtime environment called the Common
Language Runtime or CLR (similar to the Java Virtual Machine or JVM in Java), which
handles the execution of code and provides useful services for the implementation
of the program. CLR takes care of code management at program execution and provides
various beneficial services such as memory management, thread management, security
management, code verification, compilation, and other system services. The managed
code that targets CLR benefits from useful features such as cross-language integration,
cross-language exception handling, versioning, enhanced security, deployment support,
and debugging.
2. What is CTS?
Common Type System (CTS) describes how types are declared, used
and managed in the runtime and facilitates cross-language integration, type safety,
and high performance code execution.
3. What is CLS?
The CLS is simply a specification that defines the rules to support
language integration in such a way that programs written in any language, yet can
interoperate with one another, taking full advantage of inheritance, polymorphism,
exceptions, and other features. These rules and the specification are documented
in the ECMA proposed standard document, "Partition I Architecture"
4. What is CLI?
The CLI is a set of specifications for a runtime environment, including
a common type system, base class library, and a machine-independent intermediate
code known as the Common Intermediate Language (CIL). (Source: Wikipedia.)
5. Explain Namespace.
Namespaces are logical groupings of names used within a program.
There may be multiple namespaces in a single application code, grouped based on
the identifiers� use. The name of any given identifier must appear only once in
its namespace.
6. Explain Assembly and Manifest.
An assembly is a collection of one or more files and one of them
(DLL or EXE) contains a special metadata called Assembly Manifest. The manifest
is stored as binary data and contains details like versioning requirements for the
assembly, the author, security permissions, and list of files forming the assembly.
An assembly is created whenever a DLL is built. The manifest can be viewed programmatically
by making use of classes from the System.Reflection namespace. The tool Intermediate
Language Disassembler (ILDASM) can be used for this purpose. It can be launched
from the command prompt or via Start> Run.
7. What is Shadow Copy?
In order to replace a COM component on a live web server, it was
necessary to stop the entire website, copy the new files and then restart the website.
This is not feasible for the web servers that need to be always running. .NET components
are different. They can be overwritten at any time using a mechanism called Shadow
Copy. It prevents the Portable Executable (PE) files like DLLs and EXEs from being
locked. Whenever new versions of the PEs are released, they are automatically detected
by the CLR and the changed components will be automatically loaded. They will be
used to process all new requests not currently executing, while the older version
still runs the currently executing requests. By bleeding out the older version,
the update is completed.
8. What is DLL Hell?
DLL hell is the problem that occurs when an installation of a newer
application might break or hinder other applications as newer DLLs are copied into
the system and the older applications do not support or are not compatible with
them. .NET overcomes this problem by supporting multiple versions of an assembly
at any given time. This is also called side-by-side component versioning.
9. Explain Web Services.
Web services are programmable business logic components that provide
access to functionality through the Internet. Standard protocols like HTTP can be
used to access them. Web services are based on the Simple Object Access Protocol
(SOAP), which is an application of XML. Web services are given the .asmx extension.
10. Explain Windows Forms.
Windows Forms is employed for developing Windows GUI applications.
It is a class library that gives developers access to Windows Common Controls with
rich functionality. It is a common GUI library for all the languages supported by
the .NET Framework.
11. Define Boxing and UnBoxing
C# provides us with Value types and Reference Types. Value Types
are stored on the stack and Reference types are stored on the heap. The conversion
of value type to reference type is known as boxing and converting reference type
back to the value type is known as unboxing.
12. Define Value Types and Reference Types
Value Types Value types are primitive types that are mapped directly
to the FCL. Like Int32 maps to System.Int32, double maps to System.double. All value
types are stored on stack and all the value types are derived from System.ValueType.
All structures and enumerated types that are derived from System.ValueType are created
on stack, hence known as ValueType. Reference TypesReference Types are different
from value types in such a way that memory is allocated to them from the heap. All
the classes are of reference type. C# new operator returns the memory address of
the object.
13. What are Service Oriented Architectures (SOA)?
SOA describes an information technology architecture that enables
distributed computing environments with many different types of computing platforms
and applications. Web services are one of the technologies that help make SOAs possible.
As a concept, SOA has been around since the 1980s, but many early IT technologies
failed to achieve the goal of linking different types of applications and systems.
By making early investments with .NET, Microsoft has helped provide the building
blocks that today are putting many enterprise customers on the path to successfully
implementing SOAs. With SOAs, companies can benefit from the unimpeded flow of information
that is the hallmark of connected systems.
14. What are Web Services Enhancements for Microsoft .NET (WSE)?
WSE is an add-on to Microsoft Visual Studio .NET and the Microsoft
.NET Framework that helps developers build greater security features into Web services
using the latest Web services protocol specifications and standards. With WSE 2.0
developers can create security-enhanced connected systems that help improve business
processes within�and beyond�corporate trust boundaries and create new revenue-generating
opportunities.
15. What is a Smart Client?
Smart clients are client applications that consume Web services
and reside on user hardware such as desktop PCs, laptops, Pocket PCs, and Smartphones.
They are easily deployed and managed and provide an adaptive, responsive, and rich
interactive experience by taking advantage of the computing resources on the device
and intelligently connecting to distributed data sources.
16. What is .NET Passport?
.NET Passport is a Web-based service that is designed to make signing
in to Web sites fast and easy. Passport enables participating sites to authenticate
a user with a single set of sign-in credentials, alleviating the need for users
to remember numerous passwords and user names.
17. Does C# support multiple inheritance?
No, use interfaces instead
18. What�s the implicit name of the parameter that gets passed into the class� set
method?
Value, and its datatype depends on whatever variable we�re changing
19. What�s the top .NET class that everything is derived from?
System.Object.
20. How�s method overriding different from overloading?
When overriding, you change the method behavior for a derived class.
Overloading simply involves having a method with the same name within the class.
21. What is strong name?
A name that consists of an assembly's identity�its simple text
name, version number, and culture information (if provided)�strengthened by a public
key and a digital signature generated over the assembly.
22. What is Application Domain?
The primary purpose of the AppDomain is to isolate an application
from other applications. Win32 processes provide isolation by having distinct memory
address spaces. This is effective, but it is expensive and doesn't scale well. The
.NET runtime enforces AppDomain isolation by keeping control over the use of memory
- all memory in the AppDomain is managed by the .NET runtime, so the runtime can
ensure that AppDomains do not access each other's memory. Objects in different application
domains communicate either by transporting copies of objects across application
domain boundaries, or by using a proxy to exchange messages.
23. What is serialization in .NET? What are the ways to control serialization?
Serialization is the process of converting an object into a stream
of bytes. Deserialization is the opposite process of creating an object from a stream
of bytes. Serialization/Deserialization is mostly used to transport objects (e.g.
during remoting), or to persist objects (e.g. to a file or database).Serialization
can be defined as the process of storing the state of an object to a storage medium.
During this process, the public and private fields of the object and the name of
the class, including the assembly containing the class, are converted to a stream
of bytes, which is then written to a data stream. When the object is subsequently
deserialized, an exact clone of the original object is created. Binary serialization
preserves type fidelity, which is useful for preserving the state of an object between
different invocations of an application. For example, you can share an object between
different applications by serializing it to the clipboard. You can serialize an
object to a stream, disk, memory, over the network, and so forth. Remoting uses
serialization to pass objects "by value" from one computer or application domain
to another. XML serialization serializes only public properties and fields and does
not preserve type fidelity. This is useful when you want to provide or consume data
without restricting the application that uses the data. Because XML is an open standard,
it is an attractive choice for sharing data across the Web. SOAP is an open standard,
which makes it an attractive choice. There are two separate mechanisms provided
by the .NET class library - XmlSerializer and SoapFormatter/BinaryFormatter. Microsoft
uses XmlSerializer for Web Services, and uses SoapFormatter/BinaryFormatter for
remoting. Both are available for use in your own code.
24. What�s an interface class?
It�s an abstract class with public abstract methods all of which
must be implemented in the inherited classes
25. What is the transport protocol you use to call a Web service
SOAP is the preferred protocol
26. What are Satellite Assemblies?
Satellite assemblies are often used to deploy language-specific
resources for an application. These language-specific assemblies work in side-by-side
execution because the application has a separate product ID for each language and
installs satellite assemblies in a language-specific subdirectory for each language.
When uninstalling, the application removes only the satellite assemblies associated
with a given language and .NET Framework version. No core .NET Framework files are
removed unless the last language for that .NET Framework version is being removed.
27. What is Global Assembly Cache (GAC) and what is the purpose of it?
Each computer where the common language runtime is installed has
a machine-wide code cache called the global assembly cache. The global assembly
cache stores assemblies specifically designated to be shared by several applications
on the computer. You should share assemblies by installing them into the global
assembly cache only when you need to.
28. What is Reflection in .NET?
All .NET compilers produce metadata about the types defined in
the modules they produce. This metadata is packaged along with the module (modules
in turn are packaged together in assemblies), and can be accessed by a mechanism
called reflection. The System.Reflection namespace contains classes that can be
used to interrogate the types for a module/assembly.
29. What is the managed and unmanaged code in .net?
The .NET Framework provides a run-time environment called the Common
Language Runtime, which manages the execution of code and provides services that
make the development process easier. Compilers and tools expose the runtime's functionality
and enable you to write code that benefits from this managed execution environment.
Code that you develop with a language compiler that targets the runtime is called
managed code; it benefits from features such as cross-language integration, cross-language
exception handling, enhanced security, versioning and deployment support, a simplified
model for component interaction, and debugging and profiling services
30. What are the access-specifiers available in c#?
Private, Protected, Public, Internal, Protected Internal.
31. Difference between OLEDB Provider and SqlClient ?
SQLClient .NET classes are highly optimized for the .net / sqlserver
combination and achieve optimal results. The SqlClient data provider is fast. It's
faster than the Oracle provider, and faster than accessing database via the OleDb
layer. It's faster because it accesses the native library (which automatically gives
you better performance), and it was written with lots of help from the SQL Server
team.
32. Differences between dataset.clone and dataset.copy?
Clone - Copies the structure of the DataSet, including all DataTable
schemas, relations, and constraints.Does not copy any data . Copy - Copies both
the structure and data for this DataSet.
33. In a Webservice, need to display 10 rows from a table. So DataReader or DataSet
is best choice?
WebService will support only DataSet.
34. What is Remoting?
The process of communication between different operating system
processes, regardless of whether they are on the same computer. The .NET remoting
system is an architecture designed to simplify communication between objects living
in different application domains, whether on the same computer or not, and between
different contexts, whether in the same application domain or not.
35. What�s the difference between System.String and System.StringBuilder classes?
System.String is immutable; System.StringBuilder was designed with
the purpose of having a mutable string where a variety of operations can be performed.
36. What�s a delegate?
A delegate object encapsulates a reference to a method. In C++
they were referred to as function pointers.
37. What�s the implicit name of the parameter that gets passed into the class� set
method?
Value, and its datatype depends on whatever variable we�re changing.
38. How do you inherit from a class in C#?
Place a colon and then the name of the base class. Notice that
it�s double colon in C++.
39. Does C# support multiple inheritance?
No, use interfaces instead.
40. When you inherit a protected class-level variable, who is it available to?
Classes in the same namespace.
41. Are private class-level variables inherited?
Yes, but they are not accessible, so looking at it you can honestly
say that they are not inherited. But they are.
42. Describe the accessibility modifier protected internal.
It�s available to derived classes and classes within the same Assembly
(and naturally from the base class it�s declared in).
43. C# provides a default constructor for me. I write a constructor that takes a
string as a parameter, but want to keep the no parameter one. How many constructors
should I write?
Two. Once you write at least one constructor, C# cancels the freebie
constructor, and now you have to write one yourself, even if there�s no implementation
in it.
44. How�s method overriding different from overloading?
When overriding, you change the method behavior for a derived class.
Overloading simply involves having a method with the same name within the class.
45. What does the keyword virtual mean in the method definition?
The method can be over-ridden.
46. Can you declare the override method static while the original method is non-static?
No, you can�t, the signature of the virtual method must remain
the same, only the keyword virtual is changed to keyword override.
47. Can you override private virtual methods?
No, moreover, you cannot access private methods in inherited classes,
have to be protected in the base class to allow any sort of access.
48. Can you prevent your class from being inherited and becoming a base class for
some other classes?
Yes, that�s what keyword sealed in the class definition is for.
The developer trying to derive from your class will get a message: cannot inherit
from Sealed class WhateverBaseClassName. It�s the same concept as final class in
Java.
49. Can you allow class to be inherited, but prevent the method from being over-ridden?
Yes, just leave the class public and make the method sealed.
50. What�s an abstract class?
A class that cannot be instantiated. A concept in C++ known as
pure virtual method. A class that must be inherited and have the methods over-ridden.
Essentially, it�s a blueprint for a class without any implementation.
|