Sunteți pe pagina 1din 59

What is the Microsoft.NET? .NET is a set of technologies designed to transform the internet into a full scale distributed platform.

It provides new ways of connecting systems, information and devices through a collection of web services. It also provides a language independent, consistent programming model across all tiers of an application. The goal of the .NET platform is to simplify web development by providing all of the tools and technologies that one needs to build distributed web applications. What is CLS? Common Language Specification (CLS) defines the rules and standards to which languages must adhere to in order to be compatible with other .NET languages. This enables C# developers to inherit from classes defined in VB.NET or other .NET compatible languages. What is managed code? 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. The code that runs within the common language runtime is called managed code. What is the .NET Framework? The .NET Framework is set of technologies that form an integral part of the .NET Platform. It is Microsoft's managed code programming model for building applications that have visually stunning user experiences, seamless and secure communication, and the ability to model a range of business processes. The .NET Framework has two main components: the common language runtime (CLR) and .NET Framework class library. The CLR is the foundation of the .NET framework and provides a common set of services for projects that act as building blocks to build up applications across all tiers. It simplifies development and provides a robust and simplified environment which provides common services to build application. The .NET framework class library is a collection of reusable types and exposes features of the runtime. It contains of a set of classes that is used to access common functionality. What is CLR? The .NET Framework provides a runtime environment called the Common Language Runtime or CLR. The CLR can be compared to the Java Virtual Machine or JVM in Java. CLR handles the execution of code and provides useful services for the implementation of the program. In addition to executing code, CLR provides services such as memory management, thread management, security management, code verification, compilation, and other system services. It enforces rules that in turn provide a robust and secure execution environment for .NET applications. What is CTS? Common Type System (CTS) describes the datatypes that can be used by managed code. CTS defines how these types are declared, used and managed in the runtime. It facilitates cross-language integration, type safety, and high performance code execution. The rules defined in CTS can be used to define your own classes and values. What is MSIL? When the code is compiled, the compiler translates your code into Microsoft intermediate language (MSIL). The common language runtime includes a JIT compiler for converting this MSIL then to native code. MSIL contains metadata that is the key to cross language interoperability. Since this metadata is standardized across all .NET languages, a program written in one language can understand the metadata and execute code, written in a different language. MSIL includes instructions for loading, storing, initializing, and calling methods on objects, as well as instructions for arithmetic and logical operations, control flow, direct memory access, exception handling, and other operations. What is JIT? JIT is a compiler that converts MSIL to native code. The native code consists of hardware specific instructions that can be executed by the CPU. Rather than converting the entire MSIL (in a portable executable[PE]file) to native code, the JIT converts the MSIL as it is needed during execution. This converted native code is stored so that it is accessible for subsequent calls. What is portable executable (PE)? PE is the file format defining the structure that all executable files (EXE) and Dynamic Link Libraries (DLL) must use to allow them to be loaded and executed by Windows. PE is derived from the Microsoft Common Object File Format (COFF). The EXE and DLL files created using the .NET Framework obey the PE/COFF formats and also add additional header and data sections to the files that are only used by the CLR.

How does an AppDomain get created? AppDomains are usually created by hosts. Examples of hosts are the Windows Shell, ASP.NET and IE. When you run a .NET application from the command-line, the host is the Shell. The Shell creates a new AppDomain for every application. AppDomains can also be explicitly created by .NET applications. What is an assembly? An assembly is a collection of one or more .exe or dlls. An assembly is the fundamental unit for application development and deployment in the .NET Framework. An assembly contains a collection of types and resources that are built to work together and form a logical unit of functionality. An assembly provides the CLR with the information it needs to be aware of type implementations.

What are the contents of assembly? A static assembly can consist of four elements: Assembly manifest - Contains the assembly metadata. An assembly manifest contains the information about the identity and version of the assembly. It also contains the information required to resolve references to types and resources. Type metadata - Binary information that describes a program. Microsoft intermediate language (MSIL) code. A set of resources. What are the different types of assembly? Assemblies can also be private or shared. A private assembly is installed in the installation directory of an application and is accessible to that application only. On the other hand, a shared assembly is shared by multiple applications. A shared assembly has a strong name and is installed in the GAC. We also have satellite assemblies that are often used to deploy language-specific resources for an application. What is an application domain? Application domain is the boundary within which an application runs. A process can contain multiple application domains. Application domains provide an isolated environment to applications that is similar to the isolation provided by processes. An application running inside one application domain cannot directly access the code running inside another application domain. To access the code running in another application domain, an application needs to use a proxy. What is a dynamic assembly? A dynamic assembly is created dynamically at run time when an application requires the types within these assemblies. What is a strong name? You need to assign a strong name to an assembly to place it in the GAC and make it globally accessible. A strong name consists of a name that consists of an assembly's identity (text name, version number, and culture information), a public key and a digital signature generated over the assembly. The .NET Framework provides a tool called the Strong Name Tool (Sn.exe), which allows verification and key pair and signature generation. What is GAC? What are the steps to create an assembly and add it to the GAC? The global assembly cache (GAC) is a machine-wide code cache that 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. Steps - Create a strong name using sn.exe tool eg: sn -k mykey.snk - in AssemblyInfo.cs, add the strong name eg: [assembly: AssemblyKeyFile("mykey.snk")] - recompile project, and then install it to GAC in two ways : drag & drop it to assembly folder (C:\WINDOWS\assembly OR C:\WINNT\assembly) (shfusion.dll tool) gacutil -i abc.dll What is the caspol.exe tool used for? The caspol tool grants and modifies permissions to code groups at the user policy, machine policy, and enterprise policy levels. What are generations and how are they used by the garbage collector? Generations are the division of objects on the managed heap used by the garbage collector. This mechanism allows the garbage collector to perform highly optimized garbage collection. The unreachable objects are placed in generation 0, the reachable objects are placed in generation 1, and the objects that survive the collection process are promoted to higher generations. What is Ilasm.exe used for?

Ilasm.exe is a tool that generates PE files from MSIL code. You can run the resulting executable to determine whether the MSIL code performs as expected. What is Ildasm.exe used for? Ildasm.exe is a tool that takes a PE file containing the MSIL code as a parameter and creates a text file that contains managed code. What is a garbage collector? A garbage collector performs periodic checks on the managed heap to identify objects that are no longer required by the program and removes them from memory. What is the ResGen.exe tool used for? ResGen.exe is a tool that is used to convert resource files in the form of .txt or .resx files to common language runtime binary .resources files that can be compiled into satellite assemblies. What is an application server? An application server is a software engine that delivers applications to client computers or devices. The application server runs your server code. Some well known application servers are IIS (Microsoft), WebLogic Server (BEA), JBoss (Red Hat), WebSphere (IBM).

What is a base class and derived class? A class is a template for creating an object. The class from which other classes derive fundamental functionality is called a base class. For e.g. If Class Y derives from Class X, then Class X is a base class.The class which derives functionality from a base class is called a derived class. If Class Y derives from Class X, then Class Y is a derived class. What is an extender class? An extender class allows you to extend the functionality of an existing control. It is used in Windows forms applications to add properties to controls. A demonstration of extender classes can be found over here. What is inheritance? Inheritance represents the relationship between two classes where one type derives functionality from a second type and then extends it by adding new methods, properties, events, fields and constants. C# support two types of inheritance: Implementation inheritance Interface inheritance What is implementation and interface inheritance? When a class (type) is derived from another class(type) such that it inherits all the members of the base type it is Implementation Inheritance. When a type (class or a struct) inherits only the signatures of the functions from another type it is Interface Inheritance. In general Classes can be derived from another class, hence support Implementation inheritance. At the same time Classes can also be derived from one or more interfaces. Hence they support Interface inheritance. What is inheritance hierarchy? The class which derives functionality from a base class is called a derived class. A derived class can also act as a base class for another class. Thus it is possible to create a tree-like structure that illustrates the relationship between all related classes. This structure is known as the inheritance hierarchy. How do you prevent a class from being inherited? In VB.NET you use the NotInheritable modifier to prevent programmers from using the class as a base class. In C#, use the sealed keyword. Define Overriding? Overriding is a concept where a method in a derived class uses the same name, return type, and arguments as a method in its base class. In other words, if the derived class contains its own implementation of the method rather than using the method in the base class, the process is called overriding. Can you use multiple inheritance in .NET? .NET supports only single inheritance. However the purpose is accomplished using multiple interfaces. Why dont we have multiple inheritance in .NET? There are several reasons for this. In simple words, the efforts are more, benefits are less. Different languages have different implementation requirements of multiple inheritance. So in order to implement multiple inheritance, we need to study the implementation aspects of all the languages that are CLR compliant and then implement a common methodology of implementing it. This is too much of efforts. Moreover

multiple interface inheritance very much covers the benefits that multiple inheritance has. What is an Interface? An interface is a standard or contract that contains only the signatures of methods or events. The implementation is done in the class that inherits from this interface. Interfaces are primarily used to set a common standard or contract. When should you use abstract class vs interface or What is the difference between an abstract class and interface? I would suggest you to read this. There is a good comparison given over here. What are events and delegates? An event is a message sent by a control to notify the occurrence of an action. However it is not known which object receives the event. For this reason, .NET provides a special type called Delegate which acts as an intermediary between the sender object and receiver object. What is business logic? It is the functionality which handles the exchange of information between database and a user interface. What is a component? Component is a group of logically related classes and methods. A component is a class that implements the IComponent interface or uses a class that implements IComponent interface. What is a control? A control is a component that provides user-interface (UI) capabilities. What are design patterns? Design patterns are common solutions to common design problems. What is a connection pool? A connection pool is a collection of connections which are shared between the clients requesting one. Once the connection is closed, it returns back to the pool. This allows the connections to be reused. What is a flat file? A flat file is the name given to text, which can be read or written only sequentially. Which namespace provides classes for Regular Expression? System.Text.RegularExpressions namespace provides classes for Regular Expression Which file sets the environment variables for Visual Studio? The vsvars32.bat sets the environment variables for Visual Studio. You can find it from %Microsoft Visual Studio 2008\Common7\Tools\vsvars32.bat. When you start the Visual Studio 2008 command prompt it automatically runs vsvars32.bat. Which assembly is used for Mobile web application? System.Web.Mobile what namespace is used for the controls in a mobile web application? System.Web.UI.MobileControls what is Reflection? Reflection is the feature in .Net, which enables us to get some information about object in runtime. That information contains data of the class. Also it can get the names of the methods that are inside the class and constructors of that object.program should use the reflection derived from namespace System.Reflection . using reflection can dynamically load assembly. What are the elements inside an assembly? A .NET assembly consists of the following elements, A Win32 File Header A CLR file header CIL code Type Metadata An assembly manifest Optional embedded resources What is the namespace to use LINQ to XML? System.Xml.XLinq

What is the role of compiler? Compiler translates a high level language into machine language. Which namespace is used to create a multi-threaded application? System.Threading Why HashTable is used It is a .NET class that allows an element to be accessed using a unique key. It is mainly used in database programming. What is the base class for all .NET classes? System.Object What is an Assembly in .NET? When you compile an application, the MSIL code created is stored in an assembly.Assemblies include both executable application files(.exe files)& libraries(.dll extension)for use by other application.In addition to containing MSIL,assemblies also include met information(i.e. information about the information contained in assembly,also called as meta-data)and optional resources(sound and picture file, etc).The meta information enables assemblies to be fully self-descriptive.You need no other information to use an assembly,meaning you avoid situations such as failing to odd required data to the system registry and so on,which was often a problem when developing with other platforms. Difference between String and Stringbuilder reference types? System.string provides a set of members for working with text.Like search,replace,concratinate etc.. and strings of type system.string are immutable(that means any change to string causes a runtime to create a new string and abandon old one). System.stringbuilder is used to dynamic strings which are mutable also.these string classes also overrides operators from System.object. What is the difference between debug build and release build? The biggest difference between these is that:In a debug build the complete symbolic debug information is emitted to help while debugging applications and also the code optimization is not taken into account.While in release build the symbolic debug info is not emitted and the code execution is optimized. Also, because the symbolic info is not emitted in a release build, the size of the final executable is lesser than a debug executable. One can expect to see funny errors in release builds due to compiler optimizations or differences in memory layout or initialization. These are ususally referred to as Release - Only bugs :) In terms of execution speed, a release executable will execute faster for sure, but not always will this different be significant. Can we force garbage collector to run? System.GC.Collect() forces garbage collector to run.This is not recommended but can be used if situation arises. What are the various ways of hosting a WCF service? There are three major ways to host a WCF service:1. Self hosting the service in his own application domain. This we have already covered in the first section. The service comes in to existence when you create the object of ServiceHost class and the service closes when you call the Close of the ServiceHost class. 2. Host in application domain or process provided by IIS Server. 3. Host in Application domain and process provided by WAS (Windows Activation Service) Server. What are Dead letter queues? The main use of queue is that you do not need the client and the server running at onetime. So its possible that a message will lie in queue for long time until the server or client picks it up. But there are scenarios where a message is of no use after a certain time. So these kinds of messages if not delivered within that time span it should not be sent to the user.Below is the config snippet which defines for how much time the message should be in queue. What is the difference between VB 6 and VB.NET? VB 1,Object-based Language 2,Doesn't support Threading 3,Not powerful Exception handling mechanism

4,Doesn't having support for the console based applications 5,Cannot use more than one version of com objects in vb application called DLL error 6,Doesn't support for the Disconnected data source. VB.Net 1,Object-oriented Language 2,supports Threading 3,powerful Exception handling mechanism 4,having support for the console based applications 5,More than one version of dll is supported 6,supports the Disconnected data source by using Dataset class What are the authentication methods in .NET? There are 4 types of authentications. 1.WINDOWS AUTHENTICATION 2.FORMS AUTHENTICATION 3.PASSPORT AUTHENTICATION 4.NONE/CUSTOM AUTHENTICATION The authentication option for the ASP.NET application is specified by using the tag in the Web.config file, as shown below: other authentication options 1. WINDOWS AUTHENTICATION Schemes I. Integrated Windows authentication II. Basic and basic with SSL authentication III. Digest authentication IV. Client Certificate authentication 2. FORMS AUTHENTICATION You, as a Web application developer, are supposed to develop the Web page and authenticate the user by checking the provided user ID and password against some user database 3.PASSPORT AUTHENTICATION A centralized service provided by Microsoft, offers a single logon point for clients. Unauthenticated users are redirected to the Passport site 4 NONE/CUSTOM AUTHENTICATION: If we dont want ASP.NET to perform any authentication, we can set the authentication mode to none. The reason behind this decision could be: We dont want to authenticate our users, and our Web site is open for all to use. We want to provide our own custom authentication What is Serialization in .NET? The serialization is the process of converting the objects into stream of bytes.they or used for transport the objects(via remoting) and persist objects(via files and databases) Whats the use of System.Diagnostics.Process class in .NET? By using System.Diagnostics.Process class, we can provide access to the files which are presented in the local and remote system. Example: System.Diagnostics.Process(c:aired.in.txt) local file System.Diagnostics.Process(http://www.aired.in) remote file Difference Abstract class and Interface in .NET? Abstract class: This class has abstract methods (no body). This class cannot be instantiated. One needs to provide the implementation of the methods by overriding them in the derived class. No Multiple Inheritance.Interfaces: Interface class contains all abstract methods which are public by default. All of these methods must be implemented in the derived class. One can inherit from from more than one interface thus provides for Multiple Inheritance. Explain re-clarification of object based in .NET? VB6 DOES support polymorphism and interface inheritance. It also supports the Implements keyword. What is not supported in vb6 is implementation inheritance. Also, from above, vb6 DOES provides access to third-party controls like COM, DCOM That is not anything new in .NET. How to achieve Polymorphism in VB.Net? We can achieve polymorphism in .Net i.e Compile time polymorphism and Runtime polymorphism. Compile time Polymorphism achieved by

method overloading. Runtime polymorphism achieved by Early Binding or Late Binding. Provide the function pointer to the object at compile time called as Early Binding. provide the function pointer to the object at runtime called as Late Binding class emp having the method display() class dept having the method display() create objects as in the main function // Early binding dim obj as new emp dim ob as new dept obj.display()-to call the display method of emp class ob.display-to call the display method of the dept class // Late binding create object in the main class as object obj obj=new emp obj.display()-to call the display of emp class obj=new dept obj.display()-to call the display of dept class Difference between Class And Interface in .NET? Class is logical representation of object. It is collection of data and related sub procedures with definition. Interface is also a class containing methods which is not having any definitions. Class does not support multiple inheritance. But interface can support What does mean by .NET framework? The .NET Framework is an environment for building, deploying, and running Web Services and other applications. It consists of three main parts: the Common Language Runtime, the Framework classes, and ASP.NET What is assembly in .NET? It is a single deploy able unit that contains all the information about the implementation of classes , structures and interfaces What is namespaces in .NET? It is a logical group of related classes and interfaces and that can be used by any language targeting the .net framework. Tell me about Secure Socket Layer? How to make use of the technology? Secure Sockets Layer (SSL) and Transport Layer Security (TLS), its successor, are cryptographic protocols which provide secure communications on the Internet. There are slight differences between SSL 3.0 and TLS 1.0, but the protocol remains substantially the same. The term SSL as used here applies to both protocols unless clarified by context. Can any object be stored in a Viewstate in .NET? An object that either is serializable or has a TypeConverter defined for it can be persisted in ViewState

Explain ADO.NET features? Benefits? Drawbacks? 1. Data will be retrieved through DataSets. 2. Scalability. How is meant by DLL in .NET? A DLL (Dynamic Link Library) in .NET is a file that can be loaded and executed by programs dynamically. Basically its an external code repository for programs. Since usually several different programs reuse the same DLL instead of having that code in their own file, this dramatically reduces required storage space. A synonym for a DLL would be library in .NET How does output caching work in ASP.NET? Output caching is a powerful technique that increases request/response throughput by caching the content generated from dynamic pages. Output caching is enabled by default, but output from any given response is not cached unless explicit action is taken to make the response cacheable. To make a response eligible for output caching, it must have a valid expiration/validation policy and public cache visibility. This

can be done using either the low-level OutputCache API or the high-level @ OutputCache directive. When output caching is enabled, an output cache entry is created on the first GET request to the page. Subsequent GET or HEAD requests are served from the output cache entry until the cached request expires. The output cache also supports variations of cached GET or POST name/value pairs.The output cache respects the expiration and validation policies for pages. If a page is in the output cache and has been marked with an expiration policy that indicates that the page expires 60 minutes from the time it is cached, the page is removed from the output cache after 60 minutes. If another request is received after that time, the page code is executed and the page can be cached again. This type of expiration policy is called absolute expiration - a page is valid until a certain time. Explain how Viewstate is being formed and how its stored on client in .NET? The type of ViewState is System.Web.UI.StateBag, which is a dictionary that stores name/value pairs. ViewState is persisted to a string variable by the ASP.NET page framework and sent to the client and back as a hidden variable. Upon postback, the page framework parses the input string from the hidden variable and populates the ViewState property of each control. If a control uses ViewState for property data instead of a private field, that property automatically will be persisted across round trips to the client. (If a property is not persisted in ViewState, it is good practice to return its default value on postback.) What is an application manifest? The application manifest which gives information to the operating system, such as in which way the assembly should be deployed and will check whether administrative elevation is required or not.This is processed before the .NET-managed hosting environment loads to the assembly. What is an assembly manifest? The assembly manifest is providing information to the .NET application at runtime. It provides the information like assembly's name, version, requested permissions, and other assemblies that the .NET application references. It describes the assembly to the managed hosting environment. It acts as a directory to the modules, types, and resources in the assembly. What is Application Domain? It is the execution boundary within which an application runs. Application Domain is created inside a process. One process can have multiple Application Domains. Difference between event and delegate? event: 1) It is a data member of a type(class/structure) 2)It is declared inside a type(class/structure) 3) It is used to generate notifications which are then passed to methods though delegates. delegate: 1)It is a datatype(reference type) that holds references of methods with some signatures.also called as function pointer. 2)It may or may not be declared inside a class. 3)It is used as the return type of an event and used in passing messages from event to methods. example 2: button1.Click+=new EventHandler(this.button1_Click); (Windows Applications) Click is the event that returns an instance of the EventHandler delegate. EventHandler delegate has the reference of button1_Click event and that helps in the communication betwen the Click event and button1_Click method Difference between a Class and Component? Class is a datatype that encloses data and function members.It can be used for implementing the various OOPS features. Component is a particular class that must implement the IComponent interface .It is the base class for all components in the common language runtime that marshal by reference. Component is remotable and derives from the MarshalByRefObject class. IComponent interface belongs to System.ComponentModel namespace. So, we can say Component is subclassification of a class What is the difference between casting and boxing? casting is the technique using which we convert data of one type to data of another type. It is like a main category of boxing. boxing is a sub category of casting which deals with converting a value type to a reference type. example:

1) double d=245.66; //casting: conversion between 2 value types int a=(int)d; 2) int f=200; object z=f; //casting as well as boxing: conversion of a value type to a reference type. What are the differences between an interface and an abstract class. Both interface and an abstract class cannot be instantiated and are implemented by inheriting them in other classes. The differences between them are: 1)Interfaces a)All members are public by default. b)They cannot contain fields. c)No coding of the methods or the properties is allowed. d)They do not provide implementation. e)Interfaces support multiple inheritance f)abstract keyword is not there before the interface or its members names. Abstract classes a)All members are private by default. We can put modifiers like public, protected before the abstract class members. b)They can contain fields. c) coding of the methods or the properties is allowed.(nonabstract) we can also declare abstract methods(methods with no coding) and only the declaration d)They can provide implementation. An abstract class can implement an interface e)Abstract classes support single inherritance g)abstract keyword is required before their names and also before the abstract methods or properties. Differences between Window and Web Forms Window Forms: 1)They do not need a web browser or web server to execute. 2)They execute through their respective exe files 3)They run on the same machine they are displayed on. 4)Their single instance exists until we close them or dispose them through coding 5)Used for developing games, inventory management, system utiltites etc. 6)They run under Code Access Security. Web Forms: 1)They need a web browser as well as a web server(on the server machine only). 2)They execute through the dll of the web application which is then processed by IIS and the .net framework. 3)They run on a remote server and are displayed remotely on the clients. 4)Every time they are submitted, their new instance is created. 5)Used in web site development. 6)They use role based security What is XSL? XSL stands for Extensible Style Language: It is basically a formatting language using which we can convert an XML document into an HTML document. XSL is similar to CSS but specific for XML documents. XSL has its own set of namespaces and elements using which we can apply the formatting. What is PInvoke? Pinvoke (PlatForm Invoke) features of the .NET enables .NET Code to call functions from unmanaged libraries like user32.dll, kernel32.dll. Thse libraries contain Window API functions like FlashWindow, GetComputerName respectively. FlashWindow can be used to blink the form's caption bar. GetComputerName can be used to retreive the computer's name. How you load dynamic assembly? How will create assemblies at run time? You can load the assembly dynamically by using classes from the System.Reflection namespace.

Assembly x = Assembly.LoadFrom( Custom.dll ); You can create assembly by using classes from System.CodeDom.Compiler What is an abstract class? The abstract modifier can be used with classes, methods, properties, indexers, and events. Use the abstract modifier in a class declaration to indicate that a class is intended only to be a base class of other classes. Abstract classes have the following features: An abstract class cannot be instantiated. An abstract class may contain abstract methods and accessors. It is not possible to modify an abstract class with the sealed modifier, which means that the class cannot be inherited. A non-abstract class derived from an abstract class must include actual implementations of all inherited abstract methods and accessors. Use the abstract modifier in a method or property declaration to indicate that the method or property does not contain implementation. Abstract methods have the following features: An abstract method is implicitly a virtual method. Abstract method declarations are only permitted in abstract classes. Because an abstract method declaration provides no actual implementation, there is no method body; the method declaration simply ends with a semicolon and there are no braces ({ }) following the signature. For example: public abstract void MyMethod(); ______________________________________ abstract class is a prototype of a class. it is used to provide partial class implementation. abstract class contain abstract method which can be implemented by derived class. some rules for abstract class are following-: 1) an object of an abstract class can never be created. 2)you can not declare an abstract method outside the abstract class. 3)can not be declared sealed. WHAT IS THE ADVANTAGE OF SERIALIZATION? Serialization is the process of maintaining object in the form stream. it is useful in case of remoting. Serialization is the process of converting object into byte stream which is useful to transport object(i.e remoting),persisting object(i.e files,database) SERIALIZATION IS PROCESS OF LOADING THE OBJECT STATE IN THE FORM OF BYTE STREAMS IN DATABASE/FILE SYATEM. Can we inherit the java class in C# class,how? Java Programming language is not supported with .Net Framework hence you cannot inherit javaclass in C# class.Also Java has JavaByte code after compiling similar to MSIL which is similar but cannot inherit due to framework support. Are C# destructors the same as C++ destructors? No. They look the same but they are very different. The C# destructor syntax (with the familiar ~ character) is just syntactic sugar for an override of the System.Object Finalize method. This Finalize method is called by the garbage collector when it determines that an object is no longer referenced, before it frees the memory associated with the object. So far this sounds like a C++ destructor. The difference is that the garbage collector makes no guarantees about when this procedure happens. Indeed, the algorithm employed by the CLR garbage collector means that it may be a long time after the application has finished with the object. This lack of certainty is often termed nondeterministic finalization, and it means that C# destructors are not suitable for releasing scarce resources such as database connections, file handles etc. To achieve deterministic destruction, a class must offer a method to be used for the purpose. The standard approach is for the class to implement the IDisposable interface. The user of the object must call the Dispose() method when it has finished with the object. C# offers the using construct to make this easier. What is wrapper class? is it available in c#? Wrapper Classes are the classes that wrap up the primitive values in to a class that offer utility method to access it . For eg you can store list of int values in a vector class and access the class. Also the methods are static and hence you can use them without creating an instance . The values are immutable . wrapper class are those class in which we can not define and call all predefined function .it is possible in java not C#. Which tool is used to browse the classes, structs, interfaces etc. in the BCL? wincv as in Windows Class View

How is the using() pattern useful? What is IDisposable? How does it support deterministic finalization? The using() pattern is useful because it ensures that Dispose() will always be called when a disposable object (defined as one that implements IDisposable, and thus the Dispose() method) goes out of scope, even if it does so by an exception being thrown, and thus that resources are always released. What is object pooling Definition: A performance optimization based on using collections of pre-allocated resources, such as objects or database connections With the advent of the .NET platform, writing code that pools objects and threads has become a simple task. By using the Threading and Collections namespaces, you can create robust object pooling applications. This could also be done by implementing COM+ interop interfaces into your code. Which method is actually called ultimately when Console.WriteLine( ) is invoked? A) Append( ) B) AppendFormat( ) C) Tostring( ) Ans: B, AppendFormat() method is called. What is an Assembly? An assembly is a file that is automatically generated by the compiler upon successful compilation of every .NET application. It can be either a Dynamic Link Library or an executable file. It is generated only once for an application and upon each subsequent compilation the assembly gets updated. The entire process will run in the background of your application; there is no need for you to learn deeply about assemblies. However, a basic knowledge about this topic will help you to understand the architecture behind a .NET application. An assembly is used by the .NET CLR (Common Language Runtime) as the smallest unit for: deployment; version control; security; type grouping and code reuse. Assemblies consists of a manifest and one or more modules and/or files like HTML, XML, images, video clips,... An assembly can be thought of as a logical DLL and must contain a single manifest and may optionally contain type meta data, MSIL (Microsoft Intermediate Language) and resources. Assemblies come in 2 flavors: application private and shared. Application private assemblies are used by one application only. This is the default style of assembly. Such assemblies must reside in the application folder. Shared assemblies are meant to be used by more than one application. They must have a globally unique name and must be defined in the GAC (Global Assembly Cache). To learn more about viewing the GAC Basically there are two kind of assemblies when it comes to deployment. Private Assemblies Shared Assemblies Private assemblies are the ones which are in your application folder itself. They can be easily and uniquely identified by their name. These type of assemblies can be deployed simply by copying them to the bin folder of your application. Shared Assemblies are those which can be shared by multiple applications on the machine.For this we have to place the Shared assembly in the GAC. Now since we can install any application or assembly created by any company, that is we install assemblies from oracle, microsoft and similarly from many other companies. There is always a possiblity that they may use the same assembly name as your assembly name. If such type of assemblies are placed in the GAC then we cannot uniquely identify a particular assembly.But if we give a strong name to the assmebly then it is like a unique identifier for the assembly.It is Globally unique. Strong name consists of 1. Name of the assembly 2. Public key token 3. optionally any resources 4. Version Number So basically to uniquely identify a particular assembly from the GAC we have to give it a strong name. Its that simple. The Shared assembly can be deployed in to GAC by using the GACUTIL tool with the -i switch gacutil -i assemblyname or simply copying it to the assembly folder in the windows directory (XP) or WINNT directory(others) Also there are Satellite Assemblies which contian only resources like strings, images etc. Also there are dynamic assemblies which are generated on the fly dynamically. How is the DLL Hell problem solved in .NET? Assembly versioning allows the application to specify not only the library it needs to run (which was available under Win32), but also the version of the assembly. 2. What are the ways to deploy an assembly?

An MSI installer, a CAB archive, and XCOPY command. 3. What is a satellite assembly? When you write a multilingual or multi-cultural application in .NET, and want to distribute the core application separately from the localized modules, the localized assemblies that modify the core application are called satellite assemblies. 4. What namespaces are necessary to create a localized application? System.Globalization and System.Resources. 5. What is the smallest unit of execution in .NET? an Assembly. 6. When should you call the garbage collector in .NET? As a good rule, you should not call the garbage collector. However, you could call the garbage collector when you are done using a large object (or set of objects) to force the garbage collector to dispose of those very large objects from memory. However, this is usually not a good practice. 7. How do you convert a value-type to a reference-type? Use Boxing. 8. What happens in memory when you Box and Unbox a value-type? Boxing converts a value-type to a reference-type, thus storing the object on the heap. Unboxing converts a reference-type to a value-type, thus storing the value on the stack.How do I simulate optional parameters to COM calls? You must use the Missing class and pass Missing.Value (in System.Reflection) for any values that have optional parameters. What do you know about .NET assemblies? Assemblies are the smallest units of versioning and deployment in the .NET application. Assemblies are also the building blocks for programs such as Web services, Windows services, serviced components, and .NET remoting applications. Whats the difference between private and shared assembly? Private assembly is used inside an application only and does not have to be identified by a strong name. Shared assembly can be used by multiple applications and has to have a strong name. Whats a strong name? A strong name includes the name of the assembly, version number, culture identity, and a public key token. How can you tell the application to look for assemblies at the locations other than its own install? Use the directive in the XML .config file for a given application. < privatepath="c:\mylibs;"> should do the trick. Or you can add additional search paths in the Properties box of the deployed application. How can you debug failed assembly binds? Use the Assembly Binding Log Viewer (fuslogvw.exe) to find out the paths searched. Where are shared assemblies stored? Global assembly cache. How can you create a strong name for a .NET assembly? With the help of Strong Name tool (sn.exe). Wheres global assembly cache located on the system? Usually C:\winnt\assembly or C:\windows\assembly. Can you have two files with the same file name in GAC? Yes, remember that GAC is a very special folder, and while normally you would not be able to place two files with the same name into a Windows folder, GAC differentiates by version number as well, so its possible for MyApp.dll and MyApp.dll to co-exist in GAC if the first one is version 1.0.0.0 and the second one is 1.1.0.0. So lets say I have an application that uses MyApp.dll assembly, version 1.0.0.0. There is a security bug in that assembly, and I publish the patch, issuing it under name MyApp.dll 1.1.0.0. How do I tell the client applications that are already installed to start using this new MyApp.dll? Use publisher policy. To configure a publisher policy, use the publisher policy configuration file, which uses a format similar app .config file. But unlike the app .config file, a publisher policy file needs to be compiled into an assembly and placed in the GAC. What is delay signing? Delay signing allows you to place a shared assembly in the GAC by signing the assembly with just the public key. This allows the assembly

to be signed with the private key at a later stage, when the development process is complete and the component or assembly is ready to be deployed. This process enables developers to work with shared assemblies as if they were strongly named, and it secures the private key of the signature from being accessed at different stages of development. Is there an equivalent of exit() for quitting a C# .NET application? Yes, you can use System.Environment.Exit(int exitCode) to exit the application or Application.Exit() if it's a Windows Forms app. Can you prevent your class from being inherited and becoming a base class for some other classes? Yes, that is 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 is the same concept as final class in Java. Is XML case-sensitive? Yes, so and are different elements.

Whats the implicit name of the parameter that gets passed into the set method/property of a class? Value. The data type of the value parameter is defined by whatever data type the property is declared as. 2. What does the keyword virtual declare for a method or property? The method or property can be overridden. 3. How is method overriding different from method overloading? When overriding a method, you change the behavior of the method for the derived class. Overloading a method simply involves having another method with the same name within the class. 4. Can you declare an override method to be static if the original method is not static? No. The signature of the virtual method must remain the same. (Note: Only the keyword virtual is changed to keyword override) 5. What are the different ways a method can be overloaded? Different parameter data types, different number of parameters, different order of parameters. 6. If a base class has a number of overloaded constructors, and an inheriting class has a number of overloaded constructors; can you enforce a call from an inherited constructor to a specific base constructor? Yes, just place a colon, and then keyword base (parameter list to invoke the appropriate constructor) in the overloaded constructor definition inside the inherited class. 7. Whats a delegate? A delegate object encapsulates a reference to a method. 8. Whats a multicast delegate? A delegate that has multiple handlers assigned to it. Each assigned handler (method) is called. Debugging and Testing 1. What debugging tools come with the .NET SDK? 1. CorDBG command-line debugger. To use CorDbg, you must compile the original C# file using the /debug switch. 2. DbgCLR graphic debugger. Visual Studio .NET uses the DbgCLR. 2. What does assert() method do? In debug compilation, assert takes in a Boolean condition as a parameter, and shows the error dialog if the condition is false. The program proceeds without any interruption if the condition is true. 3. Whats the difference between the Debug class and Trace class? Documentation looks the same. Use Debug class for debug builds, use Trace class for both debug and release builds. 4. Why are there five tracing levels in System.Diagnostics.TraceSwitcher? The tracing dumps can be quite verbose. For applications that are constantly running you run the risk of overloading the machine and the hard drive. Five levels range from None to Verbose, allowing you to fine-tune the tracing activities. 5. Where is the output of TextWriterTraceListener redirected? To the Console or a text file depending on the parameter passed to the constructor. 6. How do you debug an ASP.NET Web application? Attach the aspnet_wp.exe process to the DbgClr debugger. 7. What are three test cases you should go through in unit testing? 1. Positive test cases (correct data, correct output). 2. Negative test cases (broken or missing data, proper handling). 3. Exception test cases (exceptions are thrown and caught properly).

8. Can you change the value of a variable while debugging a C# application? Yes. If you are debugging via Visual Studio.NET, just go to Immediate window. 1. What is the syntax to inherit from a class in C#? Place a colon and then the name of the base class. Example: class MyNewClass : MyBaseClass 2. Can you prevent your class from being inherited by another class? Yes. The keyword sealed will prevent the class from being inherited. 3. Can you allow a class to be inherited, but prevent the method from being over-ridden? Yes. Just leave the class public and make the method sealed. 4. Whats an abstract class? A class that cannot be instantiated. An abstract class is a class that must be inherited and have the methods overridden. An abstract class is essentially a blueprint for a class without any implementation. 5. When do you absolutely have to declare a class as abstract? 1. When the class itself is inherited from an abstract class, but not all base abstract methods have been overridden. 2. When at least one of the methods in the class is abstract. 6. What is an interface class? Interfaces, like classes, define a set of properties, methods, and events. But unlike classes, interfaces do not provide implementation. They are implemented by classes, and defined as separate entities from classes. 7. Why cant you specify the accessibility modifier for methods inside the interface? They all must be public, and are therefore public by default. 8. Can you inherit multiple interfaces? Yes. .NET does support multiple interfaces. 9. What happens if you inherit multiple interfaces and they have conflicting method names? Its up to you to implement the method inside your own class, so implementation is left entirely up to you. This might cause a problem on a higher-level scale if similarly named methods from different interfaces expect different data, but as far as compiler cares youre okay. To Do: Investigate 10. Whats the difference between an interface and abstract class? In an interface class, all methods are abstract - there is no implementation. In an abstract class some methods can be concrete. In an interface class, no accessibility modifiers are allowed. An abstract class may have accessibility modifiers. 11. What is the difference between a Struct and a Class? Structs are value-type variables and are thus saved on the stack, additional overhead but faster retrieval. Another difference is that structs cannot inherit. 1 Structs are largely redundant in C++. Why does C# have them? In C++, a struct and a class are pretty much the same thing. The only difference is the default visibility level (public for structs, private for classes). However, in C# structs and classes are very different. In C#, structs are value types (instances stored directly on the stack, or inline within heap-based objects), whereas classes are reference types (instances stored on the heap, accessed indirectly via a reference). Also structs cannot inherit from structs or classes, though they can implement interfaces. Structs cannot have destructors. A C# struct is much more like a C struct than a C++ struct. 2 Does C# support multiple inheritance (MI)? No, though it does support implementation of multiple interfaces on a single class or struct. 3 Is a C# interface the same as a C++ abstract class? No, not quite. An abstract class in C++ cannot be instantiated, but it can (and often does) contain implementation code and/or data members. A C# interface cannot contain any implementation code or data members - it is simply a group of method names & signatures. A C# interface is more like a COM interface than a C++ abstract class. 4 Are C# constructors the same as C++ constructors? Very similar, but there are some significant differences. First, C# supports constructor chaining. This means one constructor can call another: class Person { public Person( string name, int age ) { ... }

public Person( string name ) : this( name, 0 ) {} public Person() : this( "", 0 ) {} } Another difference is that virtual method calls within a constructor are routed to the most derived implementation - see Can I Call a virtual method from a constructor. Error handling is also somewhat different. If an exception occurs during construction of a C# object, the destuctor (finalizer) will still be called. This is unlike C++ where the destructor is not called if construction is not completed. (Thanks to Jon Jagger for pointing this out.) Finally, C# has static constructors. The static constructor for a class runs before the first instance of the class is created. Also note that (like C++) some C# developers prefer the factory method pattern over constructors. See Brad Wilson's article. 6 If C# destructors are so different to C++ destructors, why did MS use the same syntax? Presumably they wanted C++ programmers to feel at home. I think they made a mistake. 7 Are all methods virtual in C#? No. Like C++, methods are non-virtual by default, but can be marked as virtual. 8 How do I declare a pure virtual function in C#? Use the abstract modifier on the method. The class must also be marked as abstract (naturally). Note that abstract methods cannot have an implementation (unlike pure virtual C++ methods). 9 Can I call a virtual method from a constructor/destructor? Yes, but it's generally not a good idea. The mechanics of object construction in .NET are quite different from C++, and this affects virtual method calls in constructors. C++ constructs objects from base to derived, so when the base constructor is executing the object is effectively a base object, and virtual method calls are routed to the base class implementation. By contrast, in .NET the derived constructor is executed first, which means the object is always a derived object and virtual method calls are always routed to the derived implementation. (Note that the C# compiler inserts a call to the base class constructor at the start of the derived constructor, thus preserving standard OO semantics by creating the illusion that the base constructor is executed first.) The same issue arises when calling virtual methods from C# destructors. A virtual method call in a base destructor will be routed to the derived implementation. 10 Should I make my destructor virtual? A C# destructor is really just an override of the System.Object Finalize method, and so is virtual by definition. 5. How do you initialize a two-dimensional array that you dont know the dimensions of? l int [, ] myArray; //declaration l myArray= new int [5, 8]; //actualinitialization 6. Whats the access level of the visibility type internal? Current assembly. 7. Whats the difference between struct and class in C#? l Structscannot be inherited. l Structsare passed by value, not by reference. l Struct is stored on the stack, not the heap. 8. Explain encapsulation. The implementation is hidden, the interface is exposed. 9. What data type should you use if you want an 8-bit value thats signed? sbyte. 10. Speaking of Boolean data types, whats different between C# and C/C++? Theres no conversion between 0 and false, as well as any other number and true, like in C/C++. 11. Where are the value-type variables allocated in the computer RAM? Stack. 12. Where do the reference-type variables go in the RAM? The references go on the stack, while the objects themselves go on the heap. 13. What is the difference between the value-type variables and reference-type variables in terms of garbage collection? The valuetype variables are not garbage-collected, they just fall off the stack when they fall out of scope, the reference-type objects are picked up by GC when their references go null. 14. How do you convert a string into an integer in .NET? Int32.Parse(string) 15. How do you box a primitive data type variable? Assign it to the object, pass an object. 16. Why do you need to box a primitive variable? To pass it by reference.

17. Whats the difference between Java and .NET garbage collectors? Sun left the implementation of a specific garbage collector up to the JRE developer, so their performance varies widely, depending on whose JRE youre using. Microsoft standardized on their garbage collection. 18. How do you enforce garbage collection in .NET? System.GC.Collect(); 19. Can you declare a C++ type destructor in C# like ~MyClass()? Yes, but whats the point, since it will call Finalize(), and Finalize() has no guarantees when the memory will be cleaned up, plus, it introduces additional load on the garbage collector. 20. Whats different about namespace declaration when comparing that to package declaration in Java? No semicolon. 21. Whats the difference between const and readonly? You can initialize readonly variables to some runtime values. Lets say your program uses current date and time as one of the values that wont change. This way you declare public readonly string DateT = new DateTime().ToString(). 22. What does \a character do? On most systems, produces a rather annoying beep. 23. Can you create enumerated data types in C#? Yes. 24. Whats different about switch statements in C#? No fall-throughs allowed. 25. What happens when you encounter a continue statement inside the for loop? The code for the rest of the loop is ignored, the control is transferred back to the beginning of the loop. 26. Is goto statement supported in C#? How about Java? Gotos are supported in C#to the fullest. In Java goto is a reserved keyword that provides absolutely no functionality 30. Can multiple catch blocks be executed? No, once the proper catch code fires off, the control is transferred to the finally block (if there are any), and then whatever follows the finally block. 31. Why is it a bad idea to throw your own exceptions? Well, if at that point you know that an error has occurred, then why not write the proper code to handle that error instead of passing a new Exception object to the catch block? Throwing your own exceptions signifies some design flaws in the project. 32. Whats a delegate? A delegate object encapsulates a reference to a method. In C++ they were referred to as function pointers. 33. Whats a multicast delegate? Its a delegate that points to and eventually fires off several methods. 34. Hows the DLL Hell problem solved in .NET? Assembly versioning allows the application to specify not only the library it needs to run (which was available under Win32), but also the version of the assembly. 35. What are the ways to deploy an assembly? An MSI installer, a CAB archive, and XCOPY command. 36. Whats a satellite assembly? When you write a multilingual or multi-cultural application in .NET, and want to distribute the core application separately from the localized modules, the localized assemblies that modify the core application are called satellite assemblies. 37. What namespaces are necessary to create a localized application?System.Globalization, System.Resources. 38. How do you generate documentation from the C# file commented properly with a command-line compiler? Compile it with a /doc switch. 39. Whats the difference between and XML documentation tag? Single line code example and multiple-line code example. 40. Is XML case-sensitive? Yes, so and are different elements. 41. What debugging tools come with the .NET SDK? CorDBG command-line debugger, and DbgCLR graphic debugger. Visual Studio .NET uses the DbgCLR. To use CorDbg, you must compile the original C# file using the /debug switch. 42. What does the This window show in the debugger? It points to the object thats pointed to by this reference. Objects instance data is shown. 43. What does assert() do? In debug compilation, assert takes in a Boolean condition as a parameter, and shows the error dialog if the condition is false. The program

proceeds without any interruption if the condition is true. 44. Whats the difference between the Debug class and Trace class? Documentation looks the same. Use Debug class for debug builds, use Trace class for both debug and release builds. 45. Why are there five tracing levels in System.Diagnostics.TraceSwitcher? The tracing dumps can be quite verbose and for some applications that are constantly running you run the risk of overloading the machine and the hard drive there. Five levels range from None to Verbose, allowing to fine-tune the tracing activities. 46. Where is the output of TextWriterTraceListener redirected? To the Console or a text file depending on the parameter passed to the constructor. 47. How do you debug an ASP.NET Web application? Attach the aspnet_wp.exe process to the DbgClr debugger. 48. What are three test cases you should go through in unit testing? Positive test cases (correct data, correct output), negative test cases (broken or missing data, proper handling), exception test cases (exceptions are thrown and caught properly). 49. Can you change the value of a variable while debugging a C# application?Yes, if you are debugging via Visual Studio.NET, just go to Immediate window. 50. Explain the three services model (three-tier application). Presentation (UI), business (logic and underlying code) and data (from storage or other sources). 51. What are advantages and disadvantages of Microsoft-provided data provider classes in ADO.NET? SQLServer.NET data provider is high-speed and robust, but requires SQL Server license purchased from Microsoft. OLE-DB.NET is universal for accessing other sources, like Oracle, DB2, Microsoft Access and Informix, but its a .NET layer on top of OLE layer, so not the fastest thing in the world. ODBC.NET is a deprecated layer provided for backward compatibility to ODBC engines. 52. Whats the role of the DataReader class in ADO.NET connections? It returns a read-only dataset from the data source when the command is executed. 53. What is the wildcard character in SQL? Lets say you want to query database with LIKE for all employees whose name starts with La. The wildcard character is %, the proper query with LIKE would involve La%. 54. Explain ACID rule of thumb for transactions. Transaction must be Atomic (it is one unit of work and does not dependent on previous and following transactions), Consistent (data is either committed or roll back, no in-between case where something has been updated and something hasnt), Isolated (no transaction sees the intermediate results of the current transaction), Durable (the values persist if the data had been committed even if the system crashes right after). 55. What connections does Microsoft SQL Server support? Windows Authentication (via Active Directory) and SQL Server authentication (via Microsoft SQL Server username and passwords). 56. Which one is trusted and which one is untrusted? Windows Authentication is trusted because the username and password are checked with the Active Directory, the SQL Server authentication is untrusted, since SQL Server is the only verifier participating in the transaction. 57. Why would you use untrusted verificaion? Web Services might use it, as well as non-Windows applications. 58. What does Dispose method do with the connection object? Deletes it from the memory. 59. What is a pre-requisite for connection pooling? Multiple processes must agree that they will share the same connection, where every parameter is the same, including the security settings. 1. Whats the implicit name of the parameter that gets passed into the class set method? Value, and its datatype depends on whatever variable were changing. 2. How do you inherit from a class in C#? Place a colon and then the name of the base class. Notice that its double colon in C++. 3. When you inherit a protected class-level variable, who is it available to? Classes in the same namespace. 4. 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. 5. Describe the accessibility modifier protected internal. Its available to derived classes and classes within the same Assembly (and naturally from the base class its declared in). 6. 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 theres no implementation in it. 7. Whats the top .NET class that everything is derived from? System.Object. 8. Hows 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. 9. What does the keyword virtual mean in the method definition? The method can be over-ridden. 10. Can you declare the override method static while the original method is non-static? No, you cant, the signature of the virtual method must remain the same, only the keyword virtual is changed to keyword override. 11. 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. 12. Can you prevent your class from being inherited and becoming a base class for some other classes? Yes, thats 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. Its the same concept as final class in Java. 13. 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. 14. Whats 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, its a blueprint for a class without any implementation. 15. When do you absolutely have to declare a class as abstract (as opposed to free-willed educated choice or decision based on UML diagram)? When at least one of the methods in the class is abstract. When the class itself is inherited from an abstract class, but not all base abstract methods have been over-ridden. 16. Whats an interface class? Its an abstract class with public abstract methods all of which must be implemented in the inherited classes. 17. Why cant you specify the accessibility modifier for methods inside the interface? They all must be public. Therefore, to prevent you from getting the false impression that you have any freedom of choice, you are not allowed to specify any accessibility, its public by default. 18. And if they have conflicting method names? Its up to you to implement the method inside your own class, so implementation is left entirely up to you. This might cause a problem on a higher-level scale if similarly named methods from different interfaces expect different data, but as far as compiler cares youre okay. 19. Whats the difference between an interface and abstract class? In the interface all methods must be abstract; in the abstract class some methods can be concrete. In the interface no accessibility modifiers are allowed, which is ok in abstract classes. 20. How can you overload a method? Different parameter data types, different number of parameters, different order of parameters. 21. If a base class has a bunch of overloaded constructors, and an inherited class has another bunch of overloaded constructors, can you enforce a call from an inherited constructor to an arbitrary base constructor? Yes, just place a colon, and then keyword base (parameter list to invoke the appropriate constructor) in the overloaded constructor definition inside the inherited class. 22. Whats 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. 23. Whats the advantage of using System.Text.StringBuilder over System.String? StringBuilder is more efficient in the cases, where a

lot of manipulation is done to the text. Strings are immutable, so each time its being operated on, a new instance is created. 24. Can you store multiple data types in System.Array? No. 25. Whats the difference between the System.Array.CopyTo() and System.Array.Clone()? The first one performs a deep copy of the array, the second one is shallow. 26. How can you sort the elements of the array in descending order? By calling Sort() and then Reverse() methods. 27. Whats the .NET datatype that allows the retrieval of data by a unique key?HashTable. 28. Whats class SortedList underneath? A sorted HashTable. 29. Will finally block get executed if the exception had not occurred? Yes. Whats the .NET collection class that allows an element to be accessed using a unique key? HashTable. What class is underneath the SortedList class? A sorted HashTable. Will the finally block get executed if an exception has not occurred? Yes. Whats the C# syntax to catch any possible exception? A catch block that catches the exception of type System.Exception. You can also omit the parameter data type in this case and just write catch {}. Explain the three services model commonly know as a three-tier application. Presentation (UI), Business (logic and underlying code) and Data (from storage or other sources). When do you absolutely have to declare a class as abstract? 1. When the class itself is inherited from an abstract class, but not all base abstract methods have been overridden. 2. When at least one of the methods in the class is abstract. What is an interface class? Interfaces, like classes, define a set of properties, methods, and events. But unlike classes, interfaces do not provide implementation. They are implemented by classes, and defined as separate entities from classes. Why cant you specify the accessibility modifier for methods inside the interface? They all must be public, and are therefore public by default. What happens if you inherit multiple interfaces and they have conflicting method names? Its up to you to implement the method inside your own class, so implementation is left entirely up to you. This might cause a problem on a higher-level scale if similarly named methods from different interfaces expect different data, but as far as compiler cares youre okay. To Do: Investigate Whats the difference between an interface and abstract class? In an interface class, all methods are abstract - there is no implementation. In an abstract class some methods can be concrete. In an interface class, no accessibility modifiers are allowed. An abstract class may have accessibility modifiers. What is the difference between a Struct and a Class? Struts are value-type variables and are thus saved on the stack, additional overhead but faster retrieval. Another difference is that struts cannot inherit. Whats the implicit name of the parameter that gets passed into the set method/property of a class? Value. The data type of the value parameter is defined by whatever data type the property is declared as. What does the keyword virtual declare for a method or property? The method or property can be overridden. How is method overriding different from method overloading? When overriding a method, you change the behavior of the method for the derived class. Overloading a method simply involves having another method with the same name within the class. Can you declare an override method to be static if the original method is not static? No. The signature of the virtual method must remain the same. (Note: Only the keyword virtual is changed to keyword override) What are the different ways a method can be overloaded?

Different parameter data types, different number of parameters, different order of parameters. If a base class has a number of overloaded constructors, and an inheriting class has a number of overloaded constructors; can you enforce a call from an inherited constructor to a specific base constructor? Yes, just place a colon, and then keyword base (parameter list to invoke the appropriate constructor) in the overloaded constructor definition inside the inherited class. Whats a delegate? A delegate object encapsulates a reference to a method. Whats a multicast delegate? A delegate that has multiple handlers assigned to it. Each assigned handler (method) is called. Why are there five tracing levels in System.Diagnostics.TraceSwitcher? The tracing dumps can be quite verbose. For applications that are constantly running you run the risk of overloading the machine and the hard drive. Five levels range from None to Verbose, allowing you to fine-tune the tracing activities. Where is the output of TextWriterTraceListener redirected? To the Console or a text file depending on the parameter passed to the constructor. How do you debug an ASP.NET Web application? Attach the aspnet_wp.exe process to the DbgClr debugger. What are three test cases you should go through in unit testing? 1. Positive test cases (correct data, correct output). 2. Negative test cases (broken or missing data, proper handling). 3. Exception test cases (exceptions are thrown and caught properly). Can you change the value of a variable while debugging a C# application? Yes. If you are debugging via Visual Studio.NET, just go to Immediate window. What is the role of the DataReader class in ADO.NET connections? It returns a read-only, forward-only rowset from the data source. A DataReader provides fast access when a forward-only sequential read is needed. What are advantages and disadvantages of Microsoft-provided data provider classes in ADO.NET? SQLServer.NET data provider is high-speed and robust, but requires SQL Server license purchased from Microsoft. OLE-DB.NET is universal for accessing other sources, like Oracle, DB2, Microsoft Access and Informix. OLE-DB.NET is a .NET layer on top of the OLE layer, so its not as fastest and efficient as SqlServer.NET. What is the wildcard character in SQL? Lets say you want to query database with LIKE for all employees whose name starts with La. The wildcard character is %, the proper query with LIKE would involve La%. Explain ACID rule of thumb for transactions. A transaction must be: 1. Atomic - it is one unit of work and does not dependent on previous and following transactions. 2. Consistent - data is either committed or roll back, no in-between case where something has been updated and something hasnt. 3. Isolated - no transaction sees the intermediate results of the current transaction). 4. Durable - the values persist if the data had been committed even if the system crashes right after. What connections does Microsoft SQL Server support? Windows Authentication (via Active Directory) and SQL Server authentication (via Microsoft SQL Server username and password). Between Windows Authentication and SQL Server Authentication, which one is trusted and which one is untrusted? Windows Authentication is trusted because the username and password are checked with the Active Directory, the SQL Server authentication is untrusted, since SQL Server is the only verifier participating in the transaction. What does the Initial Catalog parameter define in the connection string? The database name to connect to. What does the Dispose method do with the connection object? Deletes it from the memory. How is the DLL Hell problem solved in .NET? Assembly versioning allows the application to specify not only the library it needs to run (which was available under Win32), but also the

version of the assembly. What are the ways to deploy an assembly? An MSI installer, a CAB archive, and XCOPY command. What namespaces are necessary to create a localized application? System.Globalization and System.Resources. What is the smallest unit of execution in .NET? An Assembly. When should you call the garbage collector in .NET? As a good rule, you should not call the garbage collector. However, you could call the garbage collector when you are done using a large object (or set of objects) to force the garbage collector to dispose of those very large objects from memory. However, this is usually not a good practice. How do you convert a value-type to a reference-type? Use Boxing. 4. Is .NET a runtime service or a development platform? Ans: It's both and actually a lot more. Microsoft .NET includes a new way of delivering software and services to businesses and consumers. A part of Microsoft.NET is the .NET Frameworks. The .NET frameworks SDK consists of two parts: the .NET common language runtime and the .NET class library. In addition, the SDK also includes command-line compilers for C#, C++, JScript, and VB. You use these compilers to build applications and components. These components require the runtime to execute so this is a development platform. Execute Reader - basically, this method returns a Data Reader which is filled with the data that is retrieved using the command. This is known as a forward-only retrieval of records - it uses your sql statement to read through the table from the first to the last. There are many Data Reader examples on this site. Just go to http://aspnet101.com/aspnet101/aspnetcode.aspx and choose Data Reader from the Dropdown List Usage: cmd.ExecuteReader ExecuteNonQuery - this method returns no data at all. It is used mainly with Inserts and Updates of tables. Here, also, we have many code samples using ExecuteNonQuery. Inserting records Updating a Record Useage: cmd.ExecuteNonQuery ExecuteScalar - Returns only one value after executing the query - it returns the first field in the first row. This is very light-weight and is perfect when all your query asks for is one item. This would be excellent for receiving a count of records (Select Count(*)) in an sql statement, or for any query where only one specific field in one column is needed. 1 different types of session Tracking using Session Objects, URL-Rewriting and Hidden Fields i.e. either using A hidden field in the html or using Page.RegisterHiddenField (in 2003), but in 2005, it has been depreciated, and it is Client.RegisterHiddenField(Key, Value) 2 types of datasets To the best of my knowledge there is only 1 dataset. But there are various data sources. So I wonder whether you are asking me what the different Data Sources are. If so here they are ObjectDataSource SqlDataSource AccessDataSource XmlDataSource SiteMapDataSource 3 How can I use a dll in a machine, which is in a network, in my proj which is in some other machine? Make the other machine a COM+ server and deploy the dll under the COM+ interop services. So that you could use it as a DCOM component. 4 what i have to do if I need a component to b shared my multiple application, say one is a web and other a windows I think by making it a dll and then using its reference by copying the dll in to the projects bin directory. I think I would have to research a little

bit on this. I will do that I would let you know about it. Usually for web we use Web Control , and windows we use windows control, to create our own custom control. 5 how to create 2 virtual directories with same port no: say 80 Why not, you can create n numbers of virtual Directories under a Web Site, but the alias name should be different

6 Types of polymorphism Compile time (function Overloading) and Run time Polymorphism (function Overriding) 7 Purpose of shared assembly A shared assembly is one that can be referenced by more than one application. In order to share an assembly, the assembly must be explicitly built for this purpose by giving it a cryptographically strong name. Using the Sn.exe command from the command prompt. If we want to create an assembly which needs to be referenced by the same application and no other application, then it should be a private assembly. 8 How can you make your application to work in a newer version of .net frame work By removing all unused variables, since 2005 wont support the usage of unused variables. Then by removing all the depreciated functions like the one I have mentioned against your Qn1. These are the couple of ways by which you could make your appln work n newer version. There may be other stuffs also, but these generally what I have experienced in 2005 , when compared to 2003, if I come to know about other features I would let you know for sure. 9. What is MSIL, IL? When compiling to managed code, the compiler translates your source code into Microsoft intermediate language (MSIL), which is a CPUindependent set of instructions that can be efficiently converted to native code. MSIL includes instructions for loading, storing, initializing, and calling methods on objects, as well as instructions for arithmetic and logical operations, control flow, direct memory access, exception handling, and other operations. Microsoft intermediate language (MSIL) is a language used as the output of a number of compilers and as the input to a just-in-time (JIT) compiler. The common language runtime includes a JIT compiler for converting MSIL to native code. 10. Can I write IL programs directly? Yes. Peter Drayton posted this simple example to the DOTNET mailing list: .assembly MyAssembly {} .class MyApp { .method static void Main() { .entrypoint ldstr "Hello, IL!" call void System.Console::WriteLine(class System.Object) ret } } Just put this into a file called hello.il, and then run ilasm hello.il. An exe assembly will be generated. 11.Can I do things in IL that I can't do in C#? Yes. A couple of simple examples are that you can throw exceptions that are not derived from System.Exception, and you can have nonzero-based arrays. 12. What is JIT (just in time)? how it works? Before Microsoft intermediate language (MSIL) can be executed, it must be converted by a .NET Framework just-in-time (JIT) compiler to native code, which is CPU-specific code that runs on the same computer architecture as the JIT compiler. Rather than using time and memory to convert all the MSIL in a portable executable (PE) file to native code, it converts the MSIL as it is needed during execution and stores the resulting native code so that it is accessible for subsequent calls. The runtime supplies another mode of compilation called install-time code generation. The install-time code generation mode converts MSIL to native code just as the regular JIT compiler does, but it converts larger units of code at a time, storing the resulting native code for use when the assembly is subsequently loaded and executed. As part of compiling MSIL to native code, code must pass a verification process unless an administrator has established a security policy that allows code to bypass verification. Verification examines MSIL and metadata to find out whether the code can be determined to be type safe,

which means that it is known to access only the memory locations it is authorized to access. 13. What is strong name? A name that consists of an assembly's identityits simple text name, version number, and culture information (if provided)strengthened by a public key and a digital signature generated over the assembly. 14. What is portable executable (PE)? The file format defining the structure that all executable files (EXE) and Dynamic Link Libraries (DLL) must use to allow them to be loaded and executed by Windows. PE is derived from the Microsoft Common Object File Format (COFF). The EXE and DLL files created using the .NET Framework obey the PE/COFF formats and also add additional header and data sections to the files that are only used by the CLR. The specification for the PE/COFF file formats is available at http://www.microsoft.com/whdc/hwdev/hardware/pecoffdown.mspx 15. What is Event - Delegate? Clear syntax for writing a event delegate The event keyword lets you specify a delegate that will be called upon the occurrence of some "event" in your code. The delegate can have one or more associated methods that will be called when your code indicates that the event has occurred. An event in one program can be made available to other programs that target the .NET Framework Common Language Runtime. What is the difference between // comments, /* */ comments and /// comments? Single-line, multi-line and XML documentation comments. What is the difference between and XML documentation tag? Single line code example and multiple-line code example. Explain the three services model (three-tier application). Presentation (UI), business (logic and underlying code) and data (from storage or other sources). What are three test cases you should go through in unit testing? Positive test cases (correct data, correct output), negative test cases (broken or missing data, proper handling), exception test cases (exceptions are thrown and caught properly). How do you inherit from a class in C#? Place a colon and then the name of the base class. Notice that it is double colon in C++. How do I port "synchronized" functions from Visual J++ to C#? Original Visual J++ code: public synchronized void Run() { // function body } Ported C# code: class C { public void Run() { lock(this) { // function body }} public static void Main() {} } Can I define a type that is an alias of another type (like typedef in C++)? Not exactly. You can create an alias within a single file with the "using" directive: using System; using Integer = System.Int32; // alias But you can't create a true alias, one that extends beyond the file in which it is declared. Refer to the C# spec for more info on the 'using' statement's scope. Is it possible to have different access modifiers on the get/set methods of a property? No. The access modifier on a property applies to both its get and set accessors. What you need to do if you want them to be different is make the property read-only (by only providing a get accessor) and create a private/internal set method that is separate from the property. Is it possible to have a static indexer in C#? No. Static indexers are not allowed in C#.

Does C# support #define for defining global constants? No. If you want to get something that works like the following C code: #define A 1 use the following C# code: class MyConstants { public const int A = 1; } Then you use MyConstants.A where you would otherwise use the A macro. Using MyConstants.A has the same generated code as using the literal 1. Does C# support templates? No. However, there are plans for C# to support a type of template known as a generic. These generic types have similar syntax but are instantiated at run time as opposed to compile time. Does C# support parameterized properties? No. C# does, however, support the concept of an indexer from language spec. An indexer is a member that enables an object to be indexed in the same way as an array. Whereas properties enable field-like access, indexers enable array-like access. As an example, consider the Stack class presented earlier. The designer of this class may want to expose array-like access so that it is possible to inspect or alter the items on the stack without performing unnecessary Push and Pop operations. That is, Stack is implemented as a linked list, but it also provides the convenience of array access.Indexer declarations are similar to property declarations, with the main differences being that indexers are nameless (the name used in the declaration is this, since this is being indexed) and that indexers include indexing parameters. The indexing parameters are provided between square brackets. Does C# support C type macros? No. C# does not have macros. Keep in mind that what some of the predefined C macros (for example, __LINE__ and __FILE__) give you can also be found in .NET classes like System.Diagnostics (for example, StackTrace and StackFrame), but they'll only work on debug builds. Can you store multiple data types in System.Array? No. Is it possible to inline assembly or IL in C# code? No. Can you declare the override method static while the original method is non-static? No, you cannot, the signature of the virtual method must remain the same, only the keyword virtual is changed to keyword override Does C# support multiple inheritance? Can multiple catch blocks be executed? No, once the proper catch code fires off, the control is transferred to the finally block (if there are any), and then whatever follows the finally block. 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. What is a pre-requisite for connection pooling? Multiple processes must agree that they will share the same connection, where every parameter is the same, What is the data provider name to connect to Access database? Microsoft.Access. Why does my Windows application pop up a console window every time I run it? Make sure that the target type set in the project properties setting is set to Windows Application, and not Console Application. If you're using the command line, compile with /target:winexe & not target:exe. What is the wildcard character in SQL? Let us say you want to query database with LIKE for all employees whose name starts with La. The wildcard character is %, the proper query with LIKE would involve La%. What is the role of the DataReader class in ADO.NET connections? It returns a read-only dataset from the data source when the command is executed. What does the This window show in the debugger? It points to the object that is pointed to by this reference. Objects instance data is shown. What is an interface class? It is an abstract class with public abstract methods all of which must be implemented in the inherited classes. What is a multicast delegate? It is a delegate that points to and eventually fires off several methods. No, use interfaces instead.

What is the difference between a struct and a class in C#? From language spec: The list of similarities between classes and structs is as follows. Longstructs can implement interfaces and can have the same kinds of members as classes. Structs differ from classes in several important ways; however, structs are value types rather than reference types, and inheritance is not supported for structs. Struct values are stored on the stack or in-line. Careful programmers can sometimes enhance performance through judicious use of structs. For example, the use of a struct rather than a class for a Point can make a large difference in the number of memory allocations performed at runtime. The program below creates and initializes an array of 100 points. With Point implemented as a class, 101 separate objects are instantiated-one for the array and one each for the 100 elements. What is the difference between the Debug class and Trace class? Documentation looks the same. Use Debug class for debug builds, use Trace class for both debug and release builds. How can you overload a method? Different parameter data types, different number of parameters, different order of parameters. What debugging tools come with the .NET SDK? CorDBG - command-line debugger, and DbgCLR - graphic debugger. Visual Studio .NET uses the DbgCLR. To use CorDbg, you must compile the original C# file using the /debug switch. What does Dispose method do with the connection object? Deletes it from the memory. How do you generate documentation from the C# file commented properly with a command-line compiler? Compile it with a /doc switch. When you inherit a protected class-level variable, who is it available to? Classes in the same namespace. How can I get the ASCII code for a character in C#? Casting the char to an int will give you the ASCII value: char c = 'f'; System.Console.WriteLine((int)c); or for a character in a string: System.Console.WriteLine((int)s[3]); How do you debug an ASP.NET Web application? Attach the aspnet_wp.exe process to the DbgClr debugger. How is the DLL Hell problem solved in .NET? Assembly versioning allows the application to specify not only the library it needs to run (which was available under Win32), but also the version of the assembly What are the ways to deploy an assembly? An MSI installer, a CAB archive, and XCOPY command. Why does DllImport not work for me? All methods marked with the DllImport attribute must be marked as public static extern. What is a delegate? A delegate object encapsulates a reference to a method. In C++ they were referred to as function pointers. What is the difference between an interface and abstract class? In the interface all methods must be abstract; in the abstract class some methods can be concrete. In the interface no accessibility modifiers are allowed, which is ok in abstract classes. What is 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 is a blueprint for a class without any implementation. Does C# support multiple-inheritance? No. Who is a protected class-level variable available to? It is available to any sub-class (a class inheriting this class). Can you store multiple data types in System.Array? What does the term immutable mean? The data value may not be changed. Note: The variable value may be changed, but the original immutable data value was discarded and a new data value was created in memory. Whats the difference between System.String and System.Text.StringBuilder classes? System.String is immutable. System.StringBuilder was designed with the purpose of having a mutable string where a variety of operations No. _break

can be performed. Whats the advantage of using System.Text.StringBuilder over System.String? StringBuilder is more efficient in cases where there is a large amount of string manipulation. Strings are immutable, so each time a string is changed, a new instance in memory is created. Whats the difference between the System.Array.CopyTo() and System.Array.Clone()? The first one performs a deep copy of the array, the second one is shallow. A shallow copy of an Array copies only the elements of the Array, whether they are reference types or value types, but it does not copy the objects that the references refer to. The references in the new Array point to the same objects that the references in the original Array point to. In contrast, a deep copy of an Array copies the elements and everything directly or indirectly referenced by the elements. How can you sort the elements of the array in descending order? By calling Sort() and then Reverse() methods. Difference between imperative and interrogative code. There are imperative and interrogative functions. Imperative functions are the one which return a value while the interrogative functions do not return a value. Difference between value and reference type. what are value types and reference types? Value type - bool, byte, chat, decimal, double, enum , float, int, long, sbyte, short, strut, uint, ulong, ushort Value types are stored in the Stack Reference type - class, delegate, interface, object, string Reference types are stored in the Heap What are the two kinds of properties. Two types of properties in .Net: Get and Set Explain constructor. Constructor is a method in the class which has the same name as the class (in VB.Net its New()). It initializes the member attributes whenever an instance of the class is created. Describe ways of cleaning up objects. Answer1 [There is a perfect tool provide by .net frameworks calls Garbage collector, where by mean of GC we can clean up the object and reclaim the memory. The namespace used is System.GC ] Answer2 [the run time will maintain a service called as garbage collector. This service will take care of deallocating memory corresponding to objects. it works as a thread with least priority. when application demands for memory the runtime will take care of setting the high priority for the garbage collector, so that it will be called for execution and memory will be released. the programmer can make a call to garbage collector by using GC class in system name space. ] How can you clean up objects holding resources from within the code? Call the dispose method from code for clean up of objects 1. Whats the advantage of using System.Text.StringBuilder over System.String? StringBuilder is more efficient in the cases, where a lot of manipulation is done to the text. Strings are immutable, so each time its being operated on, a new instance is created. 2. Can you store multiple data types in System.Array? No. 3. Whats the difference between the System.Array.CopyTo() and System.Array.Clone()? The first one performs a deep copy of the array, the second one is shallow. 4. How can you sort the elements of the array in descending order? By calling Sort() and then Reverse() methods. 5. Whats the .NET datatype that allows the retrieval of data by a unique key?HashTable. 6. Whats class SortedList underneath? A sorted HashTable. 7. Will finally block get executed if the exception had not occurred? Yes. 8. Whats the C# equivalent of C++ catch (), which was a catch-all statement for any possible exception? A catch block that catches the exception of type System.Exception. You can also omit the parameter data type in this case and just write catch {}. 9. Can multiple catch blocks be executed? No, once the proper catch code fires off, the control is transferred to the finally block (if there are any), and then whatever follows the finally block. 10. Why is it a bad idea to throw your own exceptions? Well, if at that point you know that an error has occurred, then why not write the proper code to handle that error instead of passing a new Exception object to the catch block? Throwing your own exceptions signifies some design flaws in the project. 11. Whats a delegate? A delegate object encapsulates a reference to a method. In C++ they were referred to as function pointers.

12. Whats a multicast delegate? Its a delegate that points to and eventually fires off several methods. 13. Hows the DLL Hell problem solved in .NET? Assembly versioning allows the application to specify not only the library it needs to run (which was available under Win32), but also the version of the assembly. 14. What are the ways to deploy an assembly? An MSI installer, a CAB archive, and XCOPY command. 15. Whats a satellite assembly? When you write a multilingual or multi-cultural application in .NET, and want to distribute the core application separately from the localized modules, the localized assemblies that modify the core application are called satellite assemblies. 16. What namespaces are necessary to create a localized application?System.Globalization, System.Resources. 17. Whats the difference between // comments, /* */ comments and /// comments? Single-line, multi-line and XML documentation comments. 18. How do you generate documentation from the C# file commented properly with a command-line compiler? Compile it with a /doc switch. 19. Whats the difference between <c> and <code> XML documentation tag? Single line code example and multiple-line code example. 20. Is XML case-sensitive? Yes, so <Student> and <student> are different elements. 21. What debugging tools come with the .NET SDK? CorDBG command-line debugger, and DbgCLR graphic debugger. Visual Studio .NET uses the DbgCLR. To use CorDbg, you must compile the original C# file using the /debug switch. 22. What does the This window show in the debugger? It points to the object thats pointed to by this reference. Objects instance data is shown. 23. What does assert() do? In debug compilation, assert takes in a Boolean condition as a parameter, and shows the error dialog if the condition is false. The program proceeds without any interruption if the condition is true. 24. Whats the difference between the Debug class and Trace class? Documentation looks the same. Use Debug class for debug builds, use Trace class for both debug and release builds. 25. Why are there five tracing levels in System.Diagnostics.TraceSwitcher? The tracing dumps can be quite verbose and for some applications that are constantly running you run the risk of overloading the machine and the hard drive there. Five levels range from None to Verbose, allowing to fine-tune the tracing activities. 26. Where is the output of TextWriterTraceListener redirected? To the Console or a text file depending on the parameter passed to the constructor. 27. How do you debug an ASP.NET Web application? Attach the aspnet_wp.exe process to the DbgClr debugger. 28. What are three test cases you should go through in unit testing? Positive test cases (correct data, correct output), negative test cases (broken or missing data, proper handling), exception test cases (exceptions are thrown and caught properly). 29. Can you change the value of a variable while debugging a C# application? Yes, if you are debugging via Visual Studio.NET, just go to Immediate window. 30. Explain the three services model (three-tier application). Presentation (UI), business (logic and underlying code) and data (from storage or other sources). 31. What are advantages and disadvantages of Microsoft-provided data provider classes in ADO.NET? SQLServer.NET data provider is high-speed and robust, but requires SQL Server license purchased from Microsoft. OLE-DB.NET is universal for accessing other sources, like Oracle, DB2, Microsoft Access and Informix, but its a .NET layer on top of OLE layer, so not the fastest thing in the world. ODBC.NET is a deprecated layer provided for backward compatibility to ODBC engines. 32. Whats the role of the DataReader class in ADO.NET connections? It returns a read-only dataset from the data source when the command is executed. 33. What is the wildcard character in SQL? Lets say you want to query database with LIKE for all employees whose name starts with La. The wildcard character is %, the proper query with LIKE would involve La%. 34. Explain ACID rule of thumb for transactions. Transaction must be Atomic (it is one unit of work and does not dependent on previous and following transactions), Consistent (data is either committed or roll back, no in-between case where something has been updated and something hasnt), Isolated (no transaction sees the intermediate results of the current transaction), Durable (the values persist if the data had been committed even if the system crashes right after). 35. What connections does Microsoft SQL Server support? Windows Authentication (via Active Directory) and SQL Server authentication (via Microsoft SQL Server username and passwords).

36. Which one is trusted and which one is untrusted? Windows Authentication is trusted because the username and password are checked with the Active Directory, the SQL Server authentication is untrusted, since SQL Server is the only verifier participating in the transaction. 37. Why would you use untrusted verificaion? Web Services might use it, as well as non-Windows applications. 38. What does the parameter Initial Catalog define inside Connection String?The database name to connect to. 39. Whats the data provider name to connect to Access database? Microsoft.Access. 40. What does Dispose method do with the connection object? Deletes it from the memory. 41. What is a pre-requisite for connection pooling? Multiple processes must agree that they will share the same connection, where every parameter is the same, including the security settings. ----------------------------------------------------------------------------1.Explain the life cycle of an ASP .NET page.? Following are the events occur during ASP.NET Page Life Cycle: 1)Page_PreInit 2)Page_Init 3)Page_InitComplete 4)Page_PreLoad 5)Page_Load 6)Control Events 7)Page_LoadComplete 8)Page_PreRender 9)SaveViewState 10)Page_Render 11)Page_Unload Among above events Page_Render is the only event which is raised by page. So we can't write code for this event. 2.how does the cookies work in asp.net? we know Http is an state-less protocol which is required for interaction between clinet and server . so there is an need to remeber state of request raised by an web browser so that web server can recognize you have already previously visited or not. There are two types of state management techniques: a) Client side state management b) Server - side statemanagement Using cookies comes under clinet side statemanagement .In HttpResponse we write Cookie containing sessionId and other information within it. when a browser made a request to the web server the same cookie is sent to the server where server recognize the session id and get other information stored to it previously. 3.What is Ispostback method in ASP.Net? Why do we use that?? Basically Post back is an action performed by a interactive Webpage. When it goes to the server side for a non-client Operation Server again posts it back to the client and hence the name. Ex: if(!IsPostBack) will not allow the page to post back again n again bcoz it reduces the performance. 4.Can User Control be stored in library?. I will say "NO" there are 3 types of controls: 1) User Control 2) Custom Control 3) Web parts you can reuse User control in the current project in which you have built it, but you can't move it to other project as unless you just copy paste the same file there and make the changes for that project ( which violets the concept of library). but custom control can be shared between projects. and you can precompile them even as a dll, so this means you can use them in library of any type. 5.what is the difference between application state and caching? Application Object and Cached Object both falls under Server side State Management. Application object resides in InProc i.e. on the same server where we hosted our application.

Cache Object resides on server side/ DownStream/Client Side. Application Object will be disposed once application will stop. Cache Object can be disposed using Time based cache dependency. Only one user can access Application Object at a time hence we have to lock it every time we modify it. 6.what is boxing and unboxing? Boxing is what happens when a value-type object is assigned to a reference-type variable. Unboxing is what happens when a reference-type variable is assigned to a value-type variable. 7.What are the uses of Reflection?? Reflection is a concept using which we can 1) Load assemblies dynamically 2) Invoke methods at runtime 3) Retriving type information at runtime. 8.What is the use of AutoWireup in asp.net? AutoEventWireup attribute is used to set whether the events needs to be automatically generated or not. In the case where AutoEventWireup attribute is set to false (by default) event handlers are automatically required for Page_Load or Page_Init. However when we set the value of the AutoEventWireup attribute to true the ASP.NET runtime does not require events to specify event handlers like Page_Load or Page_Init.

9.what events will occur when a page is loaded? Below are the events occures during page load. 1) Page_PreInit 2) Page_Init 3) Page_InitComplete 4) Page_PreLoad 10.Where is the View state Data stored? ViewState data is stored in the hidden field. When the page is submitted to the server the data is sent to the server in the form of hidden fields for each control. If th viewstate of the control is enable true the value is retained on the post back to the client when the page is post backed. 11.What is the difference between custom web user control and a custom web server control? Web User Control: 1) Easy to Create. 2) It Can be used inside the same Application.(To use it in other application we need to add it to that project.) 3) It Can take advantage of Caching Technique. Web Server Control: 1) Bit tuff to create as compare to User Control. 2) Easy to use. 3) Can be added to ToolBox. 12.Where do the Cookie State and Session State information be stored? Cookie Information will be stored in a txt file on client system under a folder named Cookies. Search for it in your system you will find it. Coming to Session State As we know for every process some default space will be allocated by OS. In case of InProc Session Info will be stored inside the process where our application is running. In case of StateServer Session Info will be stored using ASP.NET State Service. In case of SQLServer Session info will be stored inside Database. Default DB which will be created after running InstallSQLState Script is ASPState. 13.What is the difference between adding reference in solution Explorer and adding references by USING ? Adding reference in solution explorer is used to add the DLL for that project for reference only. If you want to utilize that DLL methods/functions in our aspx.cs/.cs file etc you must write using that nameclass library name in file. 14.What are the different types of sessions in ASP.Net? Name them.? Session Management can be achieved in two ways 1)InProc 2)OutProc OutProc is again two types 1)State Server 2)SQL Server InProc Adv.: 1) Faster as session resides in the same process as the application

2) No need to serialize the data DisAdv.: 1) Will degrade the performance of the application if large chunk of data is stored 2) On restart of IIS all the Session info will be lost State Server Adv.: 1) Faster then SQL Server session management 2) Safer then InProc. As IIS restart won't effect the session data DisAdv.: 1) Data need to be serialized 2) On restart of ASP.NET State Service session info will be lost 3)Slower as compared to InProc SQL Server Adv.: 1) Reliable and Durable 2) IIS and ASP.NET State Service restart won't effect the session data 3) Good place for storing large chunk of data DisAdv.: 1) Data need to be serialized 2) Slower as compare to InProc and State Server 3)Need to purchase Licensed version of SQL Serve 15.How do you design a website with multilingual support in ASP.NET? Multilingual website can be created using Globalization and Localization. Using Globalization we change the Currency Date Numbers etc to Language Specific Format. To change the string which is there in the label button etc to language specific string we use Localization. In Localization we have to create different Resource files for different languages. During this process we use some classes present in System.Resources System.Globalization System.Threading namespaces. 16.What is caching? What are different ways of caching in ASP.NET? Caching is a technique of persisting the data in memory for immediate access to requesting program calls. This is considered as the best way to enhance the performance of the application. Caching is of 3 types: Output Caching - Caches the whole page. Fragment Caching - Caches a part of the page Data Caching - Caches the data 17.What is meant by 3-tier architecture. We generally split our application into 3-Layers 1)Presentation Layer ( Where we keep all web forms Master Pages and User Controls). 2)Business Layer (Where we keep business logic). e.g Code related to manipulating data Custom Exception classes Custom Control classes Login related code if any etc. etc. 3)Data Access Layer (Where we keep code used to interact with DB). e.g. We can have the methods which are using SQL Helper (Application Block). 18.Explain the basic functionality of garbage collector? Garbage Collector in .Net Framework is used for Automatic Memory Management i.e. it is collect all unused memory area and give to application. system.gc.collect() is a method for release the memory. But remember one think it is only an request i.e. we can't explicitly release the memory by using system.gc.collect(). 19.What is the difference between mechine.config and web.config? machine.config is a system level configuration i.e it is applied on all application in o/s that the configuration is set where as in web.config it is applicable to only one application i.e each asp.net webapplication will contain atleast on web.config file. 20.How can exception be handled with out the use of try catch? using Exception Management application block or Page_error Application_error objects 21.What is the difference between Response.Redirect and Server.Transfer. Server.Transfer transfers page processing from one page directly to the next page without making a round-trip back to the client's browser. This provides a faster response with a little less overhead on the server.Server.Transfer does not update the clients url history list or current url. Response.Redirect is used toredirect the user's browser to another page or site. This performs a trip back to the client where the client's browser is redirected to the new page. The user's browser history list is updated to reflect the new address. 22.Where the assembly is stored in asp.net?. private are stored in application / bin directory and public are stored in GAC. 23.How we implement Web farm and Web Garden concept in ASP.NET?. A web farm is a multi-server scenario. So we may have a server in each state of US. If the load on one server is in excess then the other servers step in to bear the brunt.

How they bear it is based on various models. 1. RoundRobin. (All servers share load equally) 2. NLB (economical) 3. HLB (expensive but can scale up to 8192 servers) 4. Hybrid (of 2 and 3). 5. CLB (Component load balancer). A web garden is a multi-processor setup. i.e. a single server (not like the multi server above). How to implement webfarms in .Net: Go to web.config and Here for mode you have 4 options. a) Say mode inproc (non web farm but fast when you have very few customers). b) Say mode StateServer (for webfarm) c) Say mode SqlServer (for webfarm) Whether to use option b or c depends on situation. StateServer is faster but SqlServer is more reliable and used for mission critical applications. How to use webgardens in .Net: Go to web.config and Change the false to true. You have one more attribute that is related to webgarden in the same tag called cpuMask. 24.Is there any limit for query string? means what is the maximum size?.. Servers should be cautious about depending on URI lengths above 255 bytes because some older client or proxy implementations may not properly support these lengths. Query string length depends on browser compatability IE supports upto 255 Firefox supports upto 4000 25.What is the exact purpose of http handlers? ASP.NET maps HTTP requests to HttpHandlers. Each HttpHandler enables processing of individual HTTP URLs or groups of URL extensions within an application. HttpHandlers have the same functionality as ISAPI extensions with a much simpler programming model Ex 1.Default HttpHandler for all ASP.NET pages ->ASP.NET Page Handler (*.aspx) 2.Default HttpHandler for all ASP.NET service pages->ASP.NET Service Handler (*.asmx) An HttpHandler can be either synchronous or asynchronous. A synchronous handler does not return until it finishes processing the HTTP request for which it is called. An asynchronous handler usually launches a process that can be lengthy and returns before that process finishes After writing and compiling the code to implement an HttpHandler you must register the handler using your application's Web.config file. 1. 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. 2. Why does DllImport not work for me? - All methods marked with the DllImport attribute must be marked as public static extern. 3. Why does my Windows application pop up a console window every time I run it? - Make sure that the target type set in the project properties setting is set to Windows Application, and not Console Application. If youre using the command line, compile with /target:winexe, not /target:exe. 4. Why do I get an error (CS1006) when trying to declare a method without specifying a return type? - If you leave off the return type on a method declaration, the compiler thinks you are trying to declare a constructor. So if you are trying to declare a method that returns nothing, use void. The following is an example: // This results in a CS1006 error public static staticMethod (mainStatic obj) // This will work as wanted public static void staticMethod (mainStatic obj) 5. Why do I get a syntax error when trying to declare a variable called checked?- The word checked is a keyword in C#. 6. Why do I get a security exception when I try to run my C# app? - Some security exceptions are thrown if you are working on a network share. There are some parts of the frameworks that will not run if being run off a share (roaming profile, mapped drives, etc.). To see if this is whats happening, just move the executable over to your local drive and see if it runs without the exceptions. One of the common exceptions thrown under these conditions is System.Security.SecurityException. To get around this, you can change your security policy for the intranet zone, code group 1.2, (the zone that running off shared folders falls into) by using the caspol.exe tool. 7. Why do I get a CS5001: does not have an entry point defined error when compiling? - The most common problem is that you used a lowercase m when defining the Main method. The correct way to implement the entry point is as follows: class test { static void Main(string[] args) {} } 8. What optimizations does the C# compiler perform when you use the /optimize+ compiler option? - The following is a response from a developer on the C# compiler team: We get rid of unused locals (i.e., locals that are never read, even if assigned). We get rid of unreachable code. We get rid of try-catch with an empty try. We get rid of try-finally with an empty try. We get rid of try-finally with an empty finally. We optimize branches over branches: gotoif A, lab1 goto lab2: lab1: turns into: gotoif !A, lab2 lab1: We optimize branches to ret, branches to next instruction, and branches to branches.

9. What is the syntax for calling an overloaded constructor within a constructor (this() and constructorname() does not compile)? - The syntax for calling another constructor is as follows: class B { B(int i) { } } class C : B { C() : base(5) // call base constructor B(5) { } C(int i) : this() // call C() { } public static void Main() {} }

10.What is the equivalent to regsvr32 and regsvr32 /u a file in .NET development? - Try using RegAsm.exe. Search MSDN
on Assembly Registration Tool. 11. What is the difference between a struct and a class in C#? - From language spec: The list of similarities between classes and structs is as follows. Longstructs can implement interfaces and can have the same kinds of members as classes. Structs differ from classes in several important ways; however, structs are value types rather than reference types, and inheritance is not supported for structs. Struct values are stored on the stack or in-line. Careful programmers can sometimes enhance performance through judicious use of structs. For example, the use of a struct rather than a class for a Point can make a large difference in the number of memory allocations performed at runtime. The program below creates and initializes an array of 100 points. With Point implemented as a class, 101 separate objects are instantiated-one for the array and one each for the 100 elements.

12.Is there regular expression (regex) support available to C# developers? - Yes. The .NET class libraries provide support for
regular expressions. Look at theSystem.Text.RegularExpressions namespace. 13. Is there any sample C# code for simple threading? - Yes: using System; using System.Threading; class ThreadTest { public void runme() { Console.WriteLine("Runme Called"); } public static void Main(String[] args) { ThreadTest b = new ThreadTest(); Thread t = new Thread(new ThreadStart(b.runme)); t.Start(); } } 14. Is there an equivalent of exit() for quitting a C# .NET application? - Yes, you can use System.Environment.Exit(int exitCode) to exit the application or Application.Exit() if its a Windows Forms app. 15. Is there a way to force garbage collection? - Yes. Set all references to null and then call System.GC.Collect(). If you need to have some objects destructed, and System.GC.Collect() doesnt seem to be doing it for you, you can force finalizers to be run by setting all the references to the object to null and then calling System.GC.RunFinalizers().

16. Is it possible to restrict the scope of a field/method of a class to the classes in the same namespace? - There is no way to restrict to a namespace. Namespaces are never units of protection. But if youre using assemblies, you can use the internal access modifier to restrict access to only within the assembly. What is .NET? .NET is essentially a framework for software development. It is similar in nature to any other software development framework (J2EE etc) in that it provides a set of runtime containers/capabilities, and a rich set of pre-built functionality in the form of class libraries and APIs The .NET Framework is an environment for building, deploying, and running Web Services and other applications. It consists of three main parts: the Common Language Runtime, the Framework classes, and ASP.NET. How many languages .NET is supporting now? When .NET was introduced it came with several languages. VB.NET, C#, COBOL and Perl, etc. The site DotNetLanguages.Net says 44 languages are supported. How is .NET able to support multiple languages? A language should comply with the Common Language Runtime standard to become a .NET language. In .NET, code is compiled to Microsoft Intermediate Language (MSIL for short). This is called as Managed Code. This Managed code is run in .NET environment. So after compilation to this IL the language is not a barrier. A code can call or use a function written in another language. How ASP .NET different from ASP? Scripting is separated from the HTML, Code is compiled as a DLL, these DLLs can be executed on the server. What is smart navigation? The cursor position is maintained when the page gets refreshed due to the server side validation and the page gets refreshed. What is view state? The web is stateless. But in ASP.NET, the state of a page is maintained in the in the page itself automatically. How? The values are encrypted and saved in hidden controls. this is done automatically by the ASP.NET. This can be switched off / on for a single control How do you validate the controls in an ASP .NET page? Using special validation controls that are meant for this. We have Range Validator, Email Validator. Can the validation be done in the server side? Or this can be done only in the Client side? Client side is done by default. Server side validation is also possible. We can switch off the client side and server side can be done. How to manage pagination in a page? Using pagination option in DataGrid control. We have to set the number of records for a page, then it takes care of pagination by itself. What is ADO .NET and what is difference between ADO and ADO.NET? ADO.NET is stateless mechanism. I can treat the ADO.Net as a separate in-memory database where in I can use relationships between the tables and select insert and updates to the database. I can update the actual database as a batch. Observations between VB.NET and VC#.NET? Choosing a programming language depends on your language experience and the scope of the application you are building. While small applications are often created using only one language, it is not uncommon to develop large applications using multiple languages. For example, if you are extending an application with existing XML Web services, you might use a scripting language with little or no programming effort. For client-server applications, you would probably choose the single language you are most comfortable with for the entire application. For new enterprise applications, where large teams of developers create components and services for deployment across multiple remote sites, the best choice might be to use several languages depending on developer skills and long-term maintenance expectations. The .NET Platform programming languages - including Visual Basic .NET, Visual C#, and Visual C++ with managed extensions, and many other programming languages from various vendors - use .NET Framework services and features through a common set of unified classes. The .NET unified classes provide a consistent method of accessing the platform's functionality. If you learn to use the class library, you will find that all tasks follow the same uniform architecture. You no longer need to learn and master different API architectures to write your applications. In most situations, you can effectively use all of the Microsoft programming languages. Nevertheless, each programming language has its relative strengths and you will want to understand the features unique to each language. The following sections will help you choose the right programming language for your application. Visual Basic .NET Visual Basic .NET is the next generation of the Visual Basic language from Microsoft. With Visual Basic you can build .NET applications, including Web services and ASP.NET Web applications, quickly and easily. Applications made with Visual Basic are built on the services of the common language runtime and take advantage of the .NET Framework. Visual Basic has many new and improved features such as inheritance, interfaces, and overloading that make it a powerful object-oriented programming language. Other new language features include free threading and structured exception handling. Visual Basic fully integrates the .NET Framework and the common language runtime, which together provide language interoperability, garbage collection, enhanced security, and improved versioning support. A Visual Basic support single inheritance and creates Microsoft intermediate language (MSIL) as input to native code compilers. Visual Basic is comparatively easy to learn and use, and Visual Basic has become the programming language of choice for hundreds of thousands of developers over the past decade. An understanding of Visual Basic can be leveraged in a variety of ways, such as writing

macros in Visual Studio and providing programmability in applications such as Microsoft Excel, Access, and Word. Visual Basic provides prototypes of some common project types, including: Windows Application. Class Library. Windows Control Library. ASP.NET Web Application. ASP.NET Web Service. Web Control Library. Console Application. Windows Service. Windows Service. Visual C# .NET Visual C# (pronounced C sharp) is designed to be a fast and easy way to create .NET applications, including Web services and ASP.NET Web applications. Applications written in Visual C# are built on the services of the common language runtime and take full advantage of the .NET Framework. C# is a simple, elegant, type-safe, object-oriented language recently developed by Microsoft for building a wide range of applications. Anyone familiar with C and similar languages will find few problems in adapting to C#. C# is designed to bring rapid development to the C++ programmer without sacrificing the power and control that are a hallmark of C and C++. Because of this heritage, C# has a high degree of fidelity with C and C++, and developers familiar with these languages can quickly become productive in C#. C# provides intrinsic code trust mechanisms for a high level of security, garbage collection, and type safety. C# supports single inheritance and creates Microsoft intermediate language (MSIL) as input to native code compilers. C# is fully integrated with the .NET Framework and the common language runtime, which together provide language interoperability, garbage collection, enhanced security, and improved versioning support. C# simplifies and modernizes some of the more complex aspects of C and C++, notably namespaces, classes, enumerations, overloading, and structured exception handling. C# also eliminates C and C++ features such as macros, multiple inheritance, and virtual base classes. For current C++ developers, C# provides a powerful, high-productivity language alternative. Visual C# provides prototypes of some common project types, including: Windows Application. Class Library. Windows Control Library. ASP.NET Web Application. ASP.NET Web Service. Web Control Library. Console Application. Windows Service.

What is Machine.config? Machine configuration file: The machine.config file contains settings that apply to the entire computer. This file is located in the %runtime install path%Config directory. There is only one machine.config file on a computer. The Machine.Config file found in the "CONFIG" subfolder of your .NET Framework install directory (c:WINNTMicrosoft.NETFramework{Version Number} CONFIG on Windows 2000 installations). The machine.config, which can be found in the directory $WINDIR$Microsoft.NETFrameworkv1.0.3705CONFIG, is an XML-formatted configuration file that specifies configuration options for the machine. This file contains, among many other XML elements, a browser Caps element. Inside this element are a number of other elements that specify parse rules for the various User-Agents, and what properties each of these parsing supports. For example, to determine what platform is used, a filter element is used that specifies how to set the platform property based on what platform name is found in the User-Agent string. Specifically, the machine.config file contains: platform=Win95 platform=Win98 platform=WinNT ... That is, if in the User-Agent string the string "Windows 95" or "Win95" is found, the platform property is set to Win95. There are a number of filter elements in the browserCaps element in the machine.config file that define the various properties for various User-Agent strings. Hence, when using the Request.Browser property to determine a user's browser features, the user's agent string is matched up to particular properties in the machine.config file. The ability for being able to detect a user's browser's capabilities, then, is based upon the honesty in the browser's sent User-Agent string. For example, Opera can be easily configured to send a User-Agent string that makes it appear as if it's IE 5.5. In this case from the Web server's perspective (and, hence, from your ASP.NET Web page's perspective), the user is visiting using IE 5.5, even though, in actuality, he is using Opera.

What is Web.config? In classic ASP all Web site related information was stored in the metadata of IIS. This had the disadvantage that remote Web developers couldn't easily make Web-site configuration changes. For example, if you want to add a custom 404 error page, a setting needs to be made through the IIS admin tool, and you're Web host will likely charge you a flat fee to do this for you. With ASP.NET, however, these settings are moved into an XML-formatted text file (Web.config) that resides in the Web site's root directory. Through Web.config you can specify settings like custom 404 error pages, authentication and authorization settings for the Web sitempilation options for the ASP.NET Web pages, if tracing should be enabled, etc. The Web.config file is an XML-formatted file. At the root level is the tag. Inside this tag you can add a number of other tags, the most common and useful one being the system.web tag, where you will specify most of the Web site configuration parameters. However, to specify application-wide settings you use the tag. For example, if we wanted to add a database connection string parameter we could have a Web.config file like so. What is the difference between ADO and ADO.NET? ADO uses Recordsets and cursors to access and modify data. Because of its inherent design, Recordset can impact performance on the server side by tying up valuable resources. In addition, COM marshalling - an expensive data conversion process - is needed to transmit a Recordset. ADO.NET addresses three important needs that ADO doesn't address: 1. Providing a comprehensive disconnected data-access model, which is crucial to the Web environment 2. Providing tight integration with XML, and 3. Providing seamless integration with the .NET Framework (e.g., compatibility with the base class library's type system). From an ADO.NET implementation perspective, the Recordset object in ADO is eliminated in the .NET architecture. In its place, ADO.NET has several dedicated objects led by the DataSet object and including the DataAdapter, and DataReader objects to perform specific tasks. In addition, ADO.NET DataSets operate in disconnected state whereas the ADO RecordSet objects operated in a fully connected state. In ADO, the in-memory representation of data is the RecordSet. In ADO.NET, it is the dataset. A RecordSet looks like a single table. If a RecordSet is to contain data from multiple database tables, it must use a JOIN query, which assembles the data from the various database tables into a single result table. In contrast, a dataset is a collection of one or more tables. The tables within a dataset are called data tables; specifically, they are DataTable objects. If a dataset contains data from multiple database tables, it will typically contain multiple DataTable objects. That is, each DataTable object typically corresponds to a single database table or view. In this way, a dataset can mimic the structure of the underlying database. In ADO you scan sequentially through the rows of the RecordSet using the ADO MoveNext method. In ADO.NET, rows are represented as collections, so you can loop through a table as you would through any collection, or access particular rows via ordinal or primary key index. A cursor is a database element that controls record navigation, the ability to update data, and the visibility of changes made to the database by other users. ADO.NET does not have an inherent cursor object, but instead includes data classes that provide the functionality of a traditional cursor. For example, the functionality of a forward-only, read-only cursor is available in the ADO.NET DataReader object. There is one significant difference between disconnected processing in ADO and ADO.NET. In ADO you communicate with the database by making calls to an OLE DB provider. In ADO.NET you communicate with the database through a data adapter (an OleDbDataAdapter, SqlDataAdapter, OdbcDataAdapter, or OracleDataAdapter object), which makes calls to an OLE DB provider or the APIs provided by the underlying data source. What is the difference between VB and VB.NET? Now VB.NET is object-oriented language. The following are some of the differences: Data Type Changes The .NET platform provides Common Type System to all the supported languages. This means that all the languages must support the same data types as enforced by common language runtime. This eliminates data type incompatibilities between various languages. For example on the 32-bit Windows platform, the integer data type takes 4 bytes in languages like C++ whereas in VB it takes 2 bytes. Following are the main changes related to data types in VB.NET: . Under .NET the integer data type in VB.NET is also 4 bytes in size. . VB.NET has no currency data type. Instead it provides decimal as a replacement. . VB.NET introduces a new data type called Char. The char data type takes 2 bytes and can store Unicode characters. . VB.NET do not have Variant data type. To achieve a result similar to variant type you can use Object data type. (Since every thing in .NET including primitive data types is an object, a variable of object type can point to any data type). . In VB.NET there is no concept of fixed length strings. . In VB6 we used the Type keyword to declare our user-defined structures. VB.NET introduces the structure keyword for the same purpose. Declaring Variables Consider this simple example in VB6: Dim x,y as integer In this example VB6 will consider x as variant and y as integer, which is somewhat odd behavior. VB.NET corrects this problem, creating both x and y as integers. Furthermore, VB.NET allows you to assign initial values to the variables in the declaration statement itself: br> Dim str1 as string = Hello VB.NET also introduces Read-Only variables. Unlike constants Read-Only variables can be declared without initialization but once you assign a value to it, it cannot be changes.

Initialization here Dim readonly x as integer In later code X=100 Now x cant be changed X=200 *********** Error ********** Property Syntax In VB.NET, we anymore don't have separate declarations for Get and Set/Let. Now, everything is done in a single property declaration. This can be better explained by the following example. Public [ReadOnly | WriteOnly] Property PropertyName as Datatype Get Return m_var End Get Set What is a Strong Name? A strong name consists of the assembly's identity its simple text name, version number, and culture information (if provided) plus a public key and a digital signature. It is generated from an assembly file (the file that contains the assembly manifest, which in turn contains the names and hashes of all the files that make up the assembly), using the corresponding private key. Assemblies with the same strong name are expected to be identical. Strong names guarantee name uniqueness by relying on unique key pairs. No one can generate the same assembly name that you can, because an assembly generated with one private key has a different name than an assembly generated with another private key. When you reference a strong-named assembly, you expect to get certain benefits, such as versioning and naming protection. If the strongnamed assembly then references an assembly with a simple name, which does not have these benefits, you lose the benefits you would derive from using a strong-named assembly and revert to DLL conflicts. Therefore, strong-named assemblies can only reference other strong-named assemblies. There are two ways to sign an assembly with a strong name: 1. Using the Assembly Linker (Al.exe) provided by the .NET Framework SDK. 2. Using assembly attributes to insert the strong name information in your code. You can use either the AssemblyKeyFileAttribute or the AssemblyKeyNameAttribute, depending on where the key file to be used is located. To create and sign an assembly with a strong name using the Assembly Linker, at the command prompt, type the following command: al /out: /keyfile: In this command, assembly name is the name of the assembly to sign with a strong name, module name is the name of the code module used to create the assembly, and file name is the name of the container or file that contains the key pair. The following example signs the assembly MyAssembly.dll with a strong name using the key file sgKey.snk. al /out:MyAssembly.dll MyModule.netmodule /keyfile:sgKey.snk To sign an assembly with a strong name using attributes In a code module, add the AssemblyKeyFileAttribute or the AssemblyKeyNameAttribute, specifying the name of the file or container that contains the key pair to use when signing the assembly with a strong name. The following code example uses the AssemblyKeyFileAttribute with a key file called sgKey.snk. What is a Manifest? An assembly manifest contains all the metadata needed to specify the assembly's version requirements and security identity, and all metadata needed to define the scope of the assembly and resolve references to resources and classes. The assembly manifest can be stored in either a PE (Portable Executable) file (an .exe or .dll) with Microsoft intermediate language (MSIL) code or in a standalone PE (Portable Executable) file that contains only assembly manifest information. The following table shows the information contained in the assembly manifest. The first four items the assembly name, version number, culture, and strong name information make up the assembly's identity. Assembly name: A text string specifying the assembly's name. Version number: A major and minor version number, and a revision and build number. The common language runtime uses these numbers to enforce version policy. Culture: Information on the culture or language the assembly supports. This information should be used only to designate an assembly as a satellite assembly containing culture- or language-specific information. (An assembly with culture information is automatically assumed to be a satellite assembly.) Strong name information: The public key from the publisher if the assembly has been given a strong name. List of all files in the assembly: A hash of each file contained in the assembly and a file name. Note that all files that make up the assembly must be in the same directory as the file containing the assembly manifest. Type reference information: Information used by the runtime to map a type reference to the file that contains its declaration and implementation. This is used for types that are exported from the assembly. Information on referenced assemblies: A list of other assemblies that are statically referenced by the assembly. Each reference includes the

dependent assembly's name, assembly metadata (version, culture, operating system, and so on), and public key, if the assembly is strong named. Creating a Key Pair? You can create a key pair using the Strong Name tool (Sn.exe). Key pair files usually have an .snk extension. To create a key pair At the command prompt, type the following command: sn k In this command, file name is the name of the output file containing the key pair. The following example creates a key pair called sgKey.snk. sn -k sgKey.snk What is the difference between "using System.Data;" and directly adding the reference from "Add References Dialog Box"? When u compile a program using command line, u add the references using /r switch. When you compile a program using Visual Studio, it adds those references to our assembly, which are added using "Add Reference" dialog box. While "using" statement facilitates us to use classes without using their fully qualified names. For example: if u have added a reference to "System.Data.SqlClient" using "Add Reference" dialog box then u can use SqlConnection class like this: System.Data.SqlClient.SqlConnection But if u add a "using System.Data.SqlClient" statement at the start of ur code then u can directly use SqlConnection class. On the other hand if u add a reference using "using System.Data.SqlClient" statement, but don't add it using "Add Reference" dialog box, Visual Studio will give error message while we compile the program. What is GAC? 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. Assemblies deployed in the global assembly cache must have a strong name. When an assembly is added to the global assembly cache, integrity checks are performed on all files that make up the assembly. The cache performs these integrity checks to ensure that an assembly has not been tampered with, for example, when a file has changed but the manifest does not reflect the change. Use a developer tool called the Global Assembly Cache tool (Gacutil.exe), provided by the .NET Framework SDK or Use Windows Explorer to drag assemblies into the cache. To install a strong-named assembly into the global assembly cache At the command prompt, type the following command: gacutil I In this command, assembly name is the name of the assembly to install in the global assembly cache. What is a Metadata? Metadata is information about a PE. In COM, metadata is communicated through non-standardized type libraries. In .NET, this data is contained in the header portion of a COFF-compliant PE and follows certain guidelines; it contains information such as the assemblys name, version, language (spoken, not computera.k.a., culture), what external types are referenced, what internal types are exposed, methods, properties, classes, and much more. The CLR uses metadata for a number of specific purposes. Security is managed through a public key in the PEs header. Information about classes, modules, and so forth allows the CLR to know in advance what structures are necessary. The class loader component of the CLR uses metadata to locate specific classes within assemblies, either locally or across networks. Just-in-time (JIT) compilers use the metadata to turn IL into executable code. Other programs take advantage of metadata as well. A common example is placing a Microsoft Word document on a Windows 2000 desktop. If the document file has completed comments, author, title, or other Properties metadata, the text is displayed as a tool tip when a user hovers the mouse over the document on the desktop. You can use the Ildasm.exe utility to view the metadata in a PE. Literally, this tool is an IL disassembler. What is managed code and managed data? Managed code is code that is written to target the services of the Common Language Runtime. In order to target these services, the code must provide a minimum level of information (metadata) to the runtime. All C#, Visual Basic .NET, and JScript .NET code is managed by default. Visual Studio .NET C++ code is not managed by default, but the compiler can produce managed code by specifying a command-line switch (/CLR). Closely related to managed code is managed data--data that is allocated and de- allocated by the Common Language Runtime's garbage collector. C#, Visual Basic, and JScript .NET data is managed by default. C# data can, however, be marked as unmanaged through the use of special keywords. Visual Studio .NET C++ data is unmanaged by default (even when using the /CLR switch), but when using Managed Extensions for C++, a class can be marked as managed using the __gc keyword. As the name suggests, this means that the memory for instances of the class is managed by the garbage collector. In addition, the class becomes a full participating member of the .NET Framework community, with the benefits and restrictions that it brings. An example of a benefit is proper interoperability with classes written in other languages (for example, a managed C++ class can inherit from a Visual Basic class). An example of a restriction is that a managed class can only inherit from one base class. What is .NET / .NET Framework? It is a Framework in which Windows applications may be developed and run. The Microsoft .NET Framework is a platform for building, deploying, and running Web Services and applications. It provides a highly productive, standards-based, multi-language environment for

integrating existing investments with next-generation applications and services as well as the agility to solve the challenges of deployment and operation of Internet-scale applications. The .NET Framework consists of three main parts: the common language runtime, a hierarchical set of unified class libraries, and a componentized version of Active Server Pages called ASP.NET. The .NET Framework provides a new programming model and rich set of classes designed to simplify application development for Windows, the Web, and mobile devices. It provides full support for XML Web services, contains robust security features, and delivers new levels of programming power. The .NET Framework is used by all Microsoft languages including Visual C#, Visual J#, and Visual C++. What is Reflection? It extends the benefits of metadata by allowing developers to inspect and use it at runtime. For example, dynamically determine all the classes contained in a given assembly and invoke their methods. Reflection provides objects that encapsulate assemblies, modules, and types. You can use reflection to dynamically create an instance of a type, bind the type to an existing object, or get the type from an existing object. You can then invoke the type's methods or access its fields and properties. Namespace: System.Reflection What is "Common Type System" (CTS)? CTS defines all of the basic types that can be used in the .NET Framework and the operations performed on those type. All this time we have been talking about language interoperability, and .NET Class Framework. None of this is possible without all the language sharing the same data types. What this means is that an int should mean the same in VB, VC++, C# and all other .NET compliant languages. This is achieved through introduction of Common Type System (CTS). What is "Common Language Specification" (CLS)? CLS is the collection of the rules and constraints that every language (that seeks to achieve .NET compatibility) must follow. It is a subsection of CTS and it specifies how it shares and extends one another libraries. What is "Common Language Runtime" (CLR)? CLR is .NET equivalent of Java Virtual Machine (JVM). It is the runtime that converts a MSIL code into the host machine language code, which is then executed appropriately. The CLR is the execution engine for .NET Framework applications. It provides a number of services, including: - Code management (loading and execution) - Application memory isolation - Verification of type safety - Conversion of IL to native code. - Access to metadata (enhanced type information) - Managing memory for managed objects - Enforcement of code access security - Exception handling, including cross-language exceptions - Interoperation between managed code, COM objects, and pre-existing DLL's (unmanaged code and data) - Automation of object layout - Support for developer services (profiling, debugging, and so on). What are Attributes? Attributes are declarative tags in code that insert additional metadata into an assembly. There exist two types of attributes in the .NET Framework: Predefined attributes such as AssemblyVersion, which already exist and are accessed through the Runtime Classes; and custom attributes, which you write yourself by extending the System.Attribute class. What are the Types of Assemblies? Assemblies are of two types: 1. Private Assemblies 2. Shared Assemblies Private Assemblies: The assembly is intended only for one application. The files of that assembly must be placed in the same folder as the application or in a sub folder. No other application will be able to make a call to this assembly. The advantage of having a private assembly is that, it makes naming the assembly very easy, since the developer need not worry about name clashes with other assemblies. As long as the assembly has a unique name within the concerned application, there won't be any problems. Shared Assemblies: If the assembly is to be made into a Shared Assembly, then the naming conventions are very strict since it has to be unique across the entire system. The naming conventions should also take care of newer versions of the component being shipped. These are accomplished by giving the assembly a Shared Name. Then the assembly is placed in the global assembly cache, which is a folder in the file system reserved for shared assemblies. What is an Intermediate language? Assemblies are made up of IL code modules and the metadata that describes them. Although programs may be compiled via an IDE or the command line, in fact, they are simply translated into IL, not machine code. The actual machine code is not generated until the function that requires it is called. This is the just-in-time, or JIT, compilation feature of .NET. JIT compilation happens at runtime for a variety of reasons, one of the most ambitious being Microsoft's desire for cross-platform .NET adoption. If a CLR is built for another operating system (UNIX or Mac), the same assemblies will run in addition to the Microsoft platforms. The hope is that .NET assemblies are write-once-run-anywhere applications. This is a .NET feature that works behind-the-scenes, ensuring that developers are not limited to writing applications for one single line of products. No one has demonstrated whether or not this promise will ever truly materialize. CTS/CLS The MSIL Instruction Set Specification is included with the .NET SDK, along with the IL Assembly Language Programmers Reference. If a developer wants to write custom .NET programming languages, these are the necessary specifications and syntax. The CTS and CLS define the types and syntaxes that every .NET language needs to embrace. An application may not expose these features, but it must consider them when communicating through IL.

ASP.NET Authentication Providers and IIS Security ASP.NET implements authentication using authentication providers, which are code modules that verify credentials and implement other security functionality such as cookie generation. ASP.NET supports the following three authentication providers: Forms Authentication: Using this provider causes unauthenticated requests to be redirected to a specified HTML form using client side redirection. The user can then supply logon credentials, and post the form back to the server. If the application authenticates the request (using application-specific logic), ASP.NET issues a cookie that contains the credentials or a key for reacquiring the client identity. Subsequent requests are issued with the cookie in the request headers, which means that subsequent authentications are unnecessary. Passport Authentication: This is a centralized authentication service provided by Microsoft that offers a single logon facility and membership services for participating sites. ASP.NET, in conjunction with the Microsoft Passport software development kit (SDK), provides similar functionality as Forms Authentication to Passport users. Windows Authentication: This provider utilizes the authentication capabilities of IIS. After IIS completes its authentication, ASP.NET uses the authenticated identity's token to authorize access. To enable a specified authentication provider for an ASP.NET application, you must create an entry in the application's configuration file as follows: // web.config file What is the difference between ASP and ASP.NET? ASP is interpreted. ASP.NET Compiled event base programming. Control events for text button can be handled at client javascript only. Since we have server controls events can handle at server side. More error handling. ASP .NET has better language support, a large set of new controls and XML based components, and better user authentication. ASP .NET provides increased performance by running compiled code. ASP .NET code is not fully backward compatible with ASP. ASP .NET also contains a new set of object oriented input controls, like programmable list boxes, validation controls. A new data grid control supports sorting, data paging, and everything you expect from a dataset control. The first request for an ASP.NET page on the server will compile the ASP .NET code and keep a cached copy in memory. The result of this is greatly increased performance. ASP .NET is not fully compatible with earlier versions of ASP, so most of the old ASP code will need some changes to run under ASP .NET. To overcome this problem, ASP .NET uses a new file extension ".aspx". This will make ASP .NET applications able to run side by side with standard ASP applications on the same server. Using COM Component in .Net ? As most of you know that .Net does not encourage the development of COM components and provides a different solution to making reusable components through Assemblies. But, there are a lot of COM components present which our .Net application might need to use. Fortunately, .Net provides an extremely simple approach to achieve this. This is achieved by using Wrapper Classes and Proxy Components. .Net wraps the COM component into .Net assembly technically called Runtime Callable Wrapper or RCW. Then u can call and use your COM component just as a .Net (or C#, if u are using C#) Assembly. What is an assembly? An assembly is the primary building block of a .NET Framework application. It is a collection of functionality that is built, versioned, and deployed as a single implementation unit (as one or more files). All managed types and resources are marked either as accessible only within their implementation unit, or as accessible by code outside that unit. .NET Assembly contains all the metadata about the modules, types, and other elements it contains in the form of a manifest. The CLR loves assemblies because differing programming languages are just perfect for creating certain kinds of applications. For example, COBOL stands for Common Business-Oriented Language because its tailormade for creating business apps. However, its not much good for creating drafting programs. Regardless of what language you used to create your modules, they can all work together within one Portable Executable Assembly. Theres a hierarchy to the structure of .NET code. That hierarchy is Assembly - > Module -> Type -> Method." Assemblies can be static or dynamic. Static assemblies can include .NET Framework types (interfaces and classes), as well as resources for the assembly (bitmaps, JPEG files, resource files, and so on). Static assemblies are stored on disk in portable executable (PE) files. You can also use the .NET Framework to create dynamic assemblies, which are run directly from memory and are not saved to disk before execution. You can save dynamic assemblies to disk after they have executed. What is a Web Service? A web service is a software component that exposes itself through the open communication channels of the Internet. Applications running on remote machines, on potentially different platforms, can access these components in a language and platform-independent manner. A Web Service is a group of functions, packaged together for use in a common framework throughout a network. webFarm Vs webGardens A web farm is a multi-server scenario. So we may have a server in each state of US. If the load on one server is in excess then the other servers step in to bear the brunt. How they bear it is based on various models. 1. RoundRobin. (All servers share load equally) 2. NLB (economical) 3. HLB (expensive but can scale up to 8192 servers) 4. Hybrid (of 2 and 3). 5. CLB (Component load balancer).

A web garden is a multi-processor setup. i.e., a single server (not like the multi server above). How to implement webfarms in .Net: Go to web.config and Here for mode = you have 4 options. a) Say mode=inproc (non web farm but fast when you have very few customers). b) Say mode=StateServer (for webfarm) c) Say mode=SqlServer (for webfarm) Whether to use option b or c depends on situation. StateServer is faster but SqlServer is more reliable and used for mission critical applications. How to use webgardens in .Net: Go to web.config and Change the false to true. You have one more attribute that is related to webgarden in the same tag called cpuMask. What is the difference between a namespace and assembly name? 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 designtime naming convenience, whereas an assembly establishes the name scope for types at run time. Whats a Windows process? Its an application thats running and had been allocated memory. Whats typical about a Windows process in regards to memory allocation? 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? 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? .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? 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. Whats a proxy of the server object in .NET Remoting? Its 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? 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? 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? 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? 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? Binary over TCP is the most effiecient, SOAP over HTTP is the most interoperable. Whats SingleCall activation mode used for? If the server object is instantiated for responding to just one single request, the request should be made in SingleCall mode. Whats Singleton activation mode? 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? By implementing ILease interface when writing the class code. Can you configure a .NET Remoting object via XML file? 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? Use the Soapsuds tool. What is Delegation? 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. What is "Microsoft Intermediate Language" (MSIL)? A .NET programming language (C#, VB.NET, J# etc.) does not compile into executable code; instead it compiles into an intermediate code called Microsoft Intermediate Language (MSIL). As a programmer one need not worry about the syntax of MSIL - since our source code in automatically converted to MSIL. The MSIL code is then send to the CLR (Common Language Runtime) that converts the code to machine language, which is, then run on the host machine. MSIL is similar to Java Byte code. MSIL is the CPU-independent instruction set into which .NET Framework programs are compiled. It contains instructions for loading, storing, initializing, and calling methods on objects. Combined with metadata and the common type system, MSIL allows for true cross- language integration Prior to execution, MSIL is converted to machine code. It is not interpreted. Differences between Datagrid, Datalist and Repeater? 1. Datagrid has paging while Datalist doesnt. 2. Datalist has a property called repeat. Direction = vertical/horizontal. (This is of great help in designing layouts). This is not there in Datagrid. 3. A repeater is used when more intimate control over html generation is required. 4. When only checkboxes/radiobuttons are repeatedly served then a checkboxlist or radiobuttonlist are used as they involve fewer overheads than a Datagrid. The Repeater repeats a chunk of HTML you write, it has the least functionality of the three. DataList is the next step up from a Repeater; accept you have very little control over the HTML that the control renders. DataList is the first of the three controls that allow you RepeatColumns horizontally or vertically. Finally, the DataGrid is the motherload. However, instead of working on a row-by-row basis, youre working on a column-by-column basis. DataGrid caters to sorting and has basic paging for your disposal. Again you have little contro, over the HTML. NOTE: DataList and DataGrid both render as HTML tables by default. Out of the 3 controls, I use the Repeater the most due to its flexibility w/ HTML. Creating a Pagination scheme isn't that hard, so I rarely if ever use a DataGrid. Occasionally I like using a DataList because it allows me to easily list out my records in rows of three for instance. I am constantly writing the drawing procedures with System.Drawing.Graphics, but having to use the try and dispose blocks is too time-consuming with Graphics objects. Can I automate this? Yes, the code System.Drawing.Graphics canvas = new System.Drawing.Graphics(); try { //some code } finally canvas.Dispose(); is functionally equivalent to using (System.Drawing.Graphics canvas = new System.Drawing.Graphics()) { //some code } //canvas.Dispose() gets called automatically How do you trigger the Paint event in System.Drawing? Invalidate the current form, the OS will take care of repainting. The Update method forces the repaint. With these events, why wouldnt Microsoft combine Invalidate and Paint, so that you wouldnt have to tell it to repaint, and then to force it to repaint? Painting is the slowest thing the OS does, so usually telling it to repaint, but not forcing it allows for the process to take place in the background. How can you assign an RGB color to a System.Drawing.Color object? Call the static method FromArgb of this class and pass it the RGB values. What class does Icon derive from? Isnt it just a Bitmap with a wrapper name around it? No, Icon lives in System.Drawing namespace. Its not a Bitmap by default, and is treated separately by .NET. However, you can use ToBitmap method to get a valid Bitmap object from a valid Icon object. Before in my VB app I would just load the icons from DLL. How can I load the icons provided by .NET dynamically? By using System.Drawing.SystemIcons class, for example System.Drawing.SystemIcons.Warning produces an Icon with a warning sign in it. When displaying fonts, whats the difference between pixels, points and ems? A pixel is the lowest-resolution dot the computer monitor supports. Its size depends on users settings and monitor size. A point is always 1/72 of an inch. An em is the number of pixels that it takes to display the letter M.

What is Serialization in .NET? Anwer1 The serialization is the process of converting the objects into stream of bytes. they or used for transport the objects(via remoting) and persist objects(via files and databases) Answer2 When developing smaller applications that do not have a database (or other formal storage mechanism) or data that doesnt need to be stored in a database (such as the state of a web application), you often still would like to save the data for later retrieval. There are many ways to do this, but many of them are subject to a lot of extra code (work) and extra time spent debugging. With .NET, there is now an easy way to add this functionality to your code with only a few lines of easily tested code. This easy way is called serialization. Serialization is the process of storing an object, including all of its public and private fields, to a stream. Deserialization is the opposite restoring an objects field values from a stream. The stream is generally in the form of a FileStream, but does not have to be. It could be a memory stream or any other object that is of type IO.Stream. The format can be anything from XML to binary to SOAP.

What is the difference between VB 6 and VB.NET? Answer1 VB 1,Object-based Language 2,Doesnot support Threading 3,Not powerful Exception handling mechanism 4,Doesnot having support for the console based applications 5,Cannot use more than one version of com objects in vb application called DLL error 6,Doesnot support for the Disconnected data source. VB.Net 1,Object-oriented Language 2,supports Threading 3,powerful Exception handling mechanism 4,having support for the console based applications 5,More than one version of dll is supported 6,supports the Disconnected data source by using Dataset class Answer2 VB: 1. Object-based language 2. Does not support inheritance 3. ADO.Net does not give support for disconnected data architecture 4. No interoperability function 5. No support for threading VB.Net 1. Object-Oriented Programming lanugage 2. ADO.Net gives support for disconnected data architecture 3. It provides interoperability 4. It uses managed code 5. supports threading 6. provides access to third-party controls like COM, DCOM Answer2 1.The concept of the complete flow of execution of a program from start to finish: Visual Basic hides this aspect of programs from you, so that the only elements of a Visual Basic program you code are the event handlers and any methods in class modules. C# makes the complete program available to you as source code. The reason for this has to do with the fact that C# can be seen, philosophically, as nextgeneration C++. The roots of C++ go back to the 1960s and predate windowed user interfaces and sophisticated operating systems. C++ evolved as a low-level, closeto- the-machine, all-purpose language. To write GUI applications with C++ meant that you had to invoke the system calls to create and interact with the windowed forms. C# has been designed to build on this tradition while simplifying and modernizing C++, to combine the low-level performance benefits of C++ with the ease of coding in Visual Basic. Visual Basic, on the other hand, is designed specifically for rapid application development of Windows GUI applications. For this reason, in Visual Basic all the GUI boilerplate code is hidden, and all the Visual Basic programmer implements are the event handlers. In C# on the other hand, this boilerplate code is exposed as part of your source code. 2. Classes and inheritance: C# is a genuine object-oriented language, unlike Visual Basic, requiring all code to be a part of a class. It also includes extensive support for implementation inheritance. Indeed, most well-designed C# programs will be very much designed around this form of inheritance, which is completely absent in Visual Basic. What are the authentication methods in .NET? There are 4 types of authentications. 1.WINDOWS AUTHENTICATION 2.FORMS AUTHENTICATION 3.PASSPORT AUTHENTICATION

4.NONE/CUSTOM AUTHENTICATION The authentication option for the ASP.NET application is specified by using the tag in the Web.config file, as shown below: other authentication options 1. WINDOWS AUTHENTICATION Schemes I. Integrated Windows authentication II. Basic and basic with SSL authentication III. Digest authentication IV. Client Certificate authentication 2. FORMS AUTHENTICATION You, as a Web application developer, are supposed to develop the Web page and authenticate the user by checking the provided user ID and password against some user database 3.PASSPORT AUTHENTICATION A centralized service provided by Microsoft, offers a single logon point for clients. Unauthenticated users are redirected to the Passport site 4 NONE/CUSTOM AUTHENTICATION: If we dont want ASP.NET to perform any authentication, we can set the authentication mode to none. The reason behind this decision could be: We dont want to authenticate our users, and our Web site is open for all to use. We want to provide our own custom authentication Whats the use of System.Diagnostics.Process class? By using System.Diagnostics.Process class, we can provide access to the files which are presented in the local and remote system. Example: System.Diagnostics.Process(c:\mlaks\example.txt) local file System.Diagnostics.Process(http://www.mlaks.com\example.txt) remote file What are the authentication methods in .NET? Abstract class: This class has abstract methods (no body). This class cannot be instantiated. One needs to provide the implementation of the methods by overriding them in the derived class. No Multiple Inheritance. Interfaces: Interface class contains all abstract methods which are public by default. All of these methods must be implemented in the derived class. One can inherit from from more than one interface thus provides for Multiple Inheritance. re-clarification of object based: VB6 DOES support polymorphism and interface inheritance. It also supports the Implements keyword. What is not supported in vb6 is implementation inheritance. Also, from above, vb6 DOES provides access to third-party controls like COM, DCOM That is not anything new in .NET. Difference between Class And Interface Class is logical representation of object. It is collection of data and related sub procedures with defination. Interface is also a class containg methods which is not having any definations. Class does not support multiple inheritance. But interface can support. What doesu mean by .NET framework? The .NET Framework is an environment for building, deploying, and running Web Services and other applications. It consists of three main parts: the Common Language Runtime, the Framework classes, and ASP.NET What is assembly? It is a single deployable unit that contains all the information abt the implimentation of classes , stuctures and interfaces How to achieve Polymorphism in VB.Net? We can achieve polymarphism in .Net i.e Compile time polymarphism and Runtime polymarphism. Compiletime Polymarphism achieved by method overloading. Runtime polymarphism achieved by Early Binding or Late Binding. Provide the function pointer to the object at compile time called as Early Binding. provide the function pointer to the object at runtime called as Late Binding class emp having the method display() class dept having the method display() create objects as in the main function // Early binding dim obj as new emp dim ob as new dept obj.display()-to call the display method of emp class ob.display-to call the display method of the dept class // Late binding create object in the main class as object obj obj=new emp obj.display()-to call the display of emp class obj=new dept obj.display()-to call the display of dept class What is namespaces? It is a logical group of related classes and interfaces and that can be used byany language targeting the .net framework.

.NET framework programming interview questions .NET framework overview 1. Has own class libraries. System is the main namespace and all other namespaces are subsets of this. 2. It has CLR(Common language runtime, Common type system, common language specification) 3. All the types are part of CTS and Object is the base class for all the types. 4. If a language said to be .net complaint, it should be compatible with CTS and CLS. 5. All the code compiled into an intermediate language by the .Net language compiler, which is nothing but an assembly. 6. During runtime, JIT of CLR picks the IL code and converts into PE machine code and from there it processes the request. 7. CTS, CLS, CLR 8. Garbage Collection 9. Dispose, finalize, suppress finalize, Idispose interface 10. Assemblies, Namespace: Assembly is a collection of class/namespaces. An assembly contains Manifest, Metadata, Resource files, IL code 11. Com interoperability, adding references, web references 12. Database connectivity and providers Application Domain 1. Class modifiers: public, private, friend, protected, protected friend, mustinherit, NotInheritable 2. Method modifiers: public, private 3. Overridable 4. Shadows 5. Overloadable 6. Overrides 7. Overloads 8. Set/Get Property 9. IIF 10. Inheritance 11. Polymorphism 12. Delegates 13. Events 14. Reflection 15. Boxing 16. UnBoxing ASP.Net 1. Web Controls: Data grid (templates, sorting, paging, bound columns, unbound columns, data binding), Data list, repeater controls 2. HTML Controls 3. Code behind pages, system.web.ui.page base class 4. Web.config: App settings, identity (impersonate), authentication (windows, forms, anonymous, passport), authorization 5. Databind.eval 6. Trace, Debug 7. Output cache 8. Session management 9. Application, Session 10. Global.asax httpapplication 11. User controls, custom controls, custom rendered controls (postback event, postdatachanged event) usercontrol is the base class 12. Directives ADO.Net 1. Command object (ExecuteNonquery, ExecuteReader, ExecuteXMLReader, ExecuteScalar) 2. DataAdapter object (Fill) 3. Dataset (collection of tables) 4. CommandBuiler object 5. Transaction Object 6. Isolation levels 1. Does C# support multiple-inheritance? No. 2. Who is a protected class-level variable available to? It is available to any sub-class (a class inheriting this class). 3. Are private class-level variables inherited? Yes, but they are not accessible. Although they are not visible or accessible via the class interface, they are inherited. 4. Describe the accessibility modifier protected internal. It is available to classes that are within the same assembly and derived from the specified base class. 5. Whats the top .NET class that everything is derived from? System.Object.

6. What does the term immutable mean? The data value may not be changed. Note: The variable value may be changed, but the original immutable data value was discarded and a new data value was created in memory. 7. Whats the difference between System.String and System.Text.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. 8. Whats the advantage of using System.Text.StringBuilder over System.String? StringBuilder is more efficient in cases where there is a large amount of string manipulation. Strings are immutable, so each time a string is changed, a new instance in memory is created. 9. Can you store multiple data types in System.Array? No. 10. Whats the difference between the System.Array.CopyTo() and System.Array.Clone()? The Clone() method returns a new array (a shallow copy) object containing all the elements in the original array. The CopyTo() method copies the elements into another existing array. Both perform a shallow copy. A shallow copy means the contents (each array element) contains references to the same object as the elements in the original array. A deep copy (which neither of these methods performs) would create a new instance of each elements object, resulting in a different, yet identacle object. 11. How can you sort the elements of the array in descending order? By calling Sort() and then Reverse() methods. 12. Whats the .NET collection class that allows an element to be accessed using a unique key? HashTable. 13. What class is underneath the SortedList class? A sorted HashTable. 14. Will the finally block get executed if an exception has not occurred? Yes. 15. Whats the C# syntax to catch any possible exception? A catch block that catches the exception of type System.Exception. You can also omit the parameter data type in this case and just write catch {}. 16. Can multiple catch blocks be executed for a single try statement? No. Once the proper catch block processed, control is transferred to the finally block (if there are any). 17. Explain the three services model commonly know as a three-tier application. Presentation (UI), Business (logic and underlying code) and Data (from storage or other sources). Class Questions 1. What is the syntax to inherit from a class in C#? Place a colon and then the name of the base class. Example: class MyNewClass : MyBaseClass 2. Can you prevent your class from being inherited by another class? Yes. The keyword sealed will prevent the class from being inherited. 3. Can you allow a class to be inherited, but prevent the method from being over-ridden? Yes. Just leave the class public and make the method sealed. 4. Whats an abstract class? A class that cannot be instantiated. An abstract class is a class that must be inherited and have the methods overridden. An abstract class is essentially a blueprint for a class without any implementation. 5. When do you absolutely have to declare a class as abstract? 1. When the class itself is inherited from an abstract class, but not all base abstract methods have been overridden. 2. When at least one of the methods in the class is abstract. 6. What is an interface class? Interfaces, like classes, define a set of properties, methods, and events. But unlike classes, interfaces do not provide implementation. They are implemented by classes, and defined as separate entities from classes. 7. Why cant you specify the accessibility modifier for methods inside the interface? They all must be public, and are therefore public by default. 8. Can you inherit multiple interfaces? Yes. .NET does support multiple interfaces. 9. What happens if you inherit multiple interfaces and they have conflicting method names? Its up to you to implement the method inside your own class, so implementation is left entirely up to you. This might cause a problem on a higher-level scale if similarly named methods from different interfaces expect different data, but as far as compiler cares youre okay. To Do: Investigate

10. Whats the difference between an interface and abstract class? In an interface class, all methods are abstract there is no implementation. In an abstract class some methods can be concrete. In an interface class, no accessibility modifiers are allowed. An abstract class may have accessibility modifiers. 11. What is the difference between a Struct and a Class? Structs are value-type variables and are thus saved on the stack, additional overhead but faster retrieval. Another difference is that structs cannot inherit. Method and Property Questions 1. Whats the implicit name of the parameter that gets passed into the set method/property of a class? Value. The data type of the value parameter is defined by whatever data type the property is declared as. 2. What does the keyword virtual declare for a method or property? The method or property can be overridden. 3. How is method overriding different from method overloading? When overriding a method, you change the behavior of the method for the derived class. Overloading a method simply involves having another method with the same name within the class. 4. Can you declare an override method to be static if the original method is not static? No. The signature of the virtual method must remain the same. (Note: Only the keyword virtual is changed to keyword override) 5. What are the different ways a method can be overloaded? Different parameter data types, different number of parameters, different order of parameters. 6. If a base class has a number of overloaded constructors, and an inheriting class has a number of overloaded constructors; can you enforce a call from an inherited constructor to a specific base constructor? Yes, just place a colon, and then keyword base (parameter list to invoke the appropriate constructor) in the overloaded constructor definition inside the inherited class. Events and Delegates 1. Whats a delegate? A delegate object encapsulates a reference to a method. 2. Whats a multicast delegate? A delegate that has multiple handlers assigned to it. Each assigned handler (method) is called. XML Documentation Questions 1. Is XML case-sensitive? Yes. 2. Whats the difference between // comments, /* */ comments and /// comments? Single-line comments, multi-line comments, and XML documentation comments. 3. How do you generate documentation from the C# file commented properly with a command-line compiler? Compile it with the /doc switch. Debugging and Testing Questions 1. What debugging tools come with the .NET SDK? 1. CorDBG command-line debugger. To use CorDbg, you must compile the original C# file using the /debug switch. 2. DbgCLR graphic debugger. Visual Studio .NET uses the DbgCLR. 2. What does assert() method do? In debug compilation, assert takes in a Boolean condition as a parameter, and shows the error dialog if the condition is false. The program proceeds without any interruption if the condition is true. 3. Whats the difference between the Debug class and Trace class? Documentation looks the same. Use Debug class for debug builds, use Trace class for both debug and release builds. 4. Why are there five tracing levels in System.Diagnostics.TraceSwitcher? The tracing dumps can be quite verbose. For applications that are constantly running you run the risk of overloading the machine and the hard drive. Five levels range from None to Verbose, allowing you to fine-tune the tracing activities. 5. Where is the output of TextWriterTraceListener redirected? To the Console or a text file depending on the parameter passed to the constructor. 6. How do you debug an ASP.NET Web application? Attach the aspnet_wp.exe process to the DbgClr debugger. 7. What are three test cases you should go through in unit testing? 1. Positive test cases (correct data, correct output). 2. Negative test cases (broken or missing data, proper handling). 3. Exception test cases (exceptions are thrown and caught properly). 8. Can you change the value of a variable while debugging a C# application? Yes. If you are debugging via Visual Studio.NET, just go to Immediate window.

ADO.NET and Database Questions 1. What is the role of the DataReader class in ADO.NET connections? It returns a read-only, forward-only rowset from the data source. A DataReader provides fast access when a forward-only sequential read is needed. 2. What are advantages and disadvantages of Microsoft-provided data provider classes in ADO.NET? SQLServer.NET data provider is high-speed and robust, but requires SQL Server license purchased from Microsoft. OLE-DB.NET is universal for accessing other sources, like Oracle, DB2, Microsoft Access and Informix. OLE-DB.NET is a .NET layer on top of the OLE layer, so its not as fastest and efficient as SqlServer.NET. 3. What is the wildcard character in SQL? Lets say you want to query database with LIKE for all employees whose name starts with La. The wildcard character is %, the proper query with LIKE would involve La%. 4. Explain ACID rule of thumb for transactions. A transaction must be: 1. Atomic it is one unit of work and does not dependent on previous and following transactions. 2. Consistent data is either committed or roll back, no in-between case where something has been updated and something hasnt. 3. Isolated no transaction sees the intermediate results of the current transaction). 4. Durable the values persist if the data had been committed even if the system crashes right after. 5. What connections does Microsoft SQL Server support? Windows Authentication (via Active Directory) and SQL Server authentication (via Microsoft SQL Server username and password). 6. Between Windows Authentication and SQL Server Authentication, which one is trusted and which one is untrusted? Windows Authentication is trusted because the username and password are checked with the Active Directory, the SQL Server authentication is untrusted, since SQL Server is the only verifier participating in the transaction. 7. What does the Initial Catalog parameter define in the connection string? The database name to connect to. 8. What does the Dispose method do with the connection object? Deletes it from the memory. To Do: answer better. The current answer is not entirely correct. 9. What is a pre-requisite for connection pooling? Multiple processes must agree that they will share the same connection, where every parameter is the same, including the security settings. The connection string must be identical. Assembly Questions 1. How is the DLL Hell problem solved in .NET? Assembly versioning allows the application to specify not only the library it needs to run (which was available under Win32), but also the version of the assembly. 2. What are the ways to deploy an assembly? An MSI installer, a CAB archive, and XCOPY command. 3. What is a satellite assembly? When you write a multilingual or multi-cultural application in .NET, and want to distribute the core application separately from the localized modules, the localized assemblies that modify the core application are called satellite assemblies. 4. What namespaces are necessary to create a localized application? System.Globalization and System.Resources. 5. What is the smallest unit of execution in .NET? an Assembly. 6. When should you call the garbage collector in .NET? As a good rule, you should not call the garbage collector. However, you could call the garbage collector when you are done using a large object (or set of objects) to force the garbage collector to dispose of those very large objects from memory. However, this is usually not a good practice. 7. How do you convert a value-type to a reference-type? Use Boxing. 8. What happens in memory when you Box and Unbox a value-type? Boxing converts a value-type to a reference-type, thus storing the object on the heap. Unboxing converts a reference-type to a value-type, thus storing the value on the stack. 1. How many types of JIT compilers are available? There are Two types of JIT compilers. standard JIT compiler. EconoJIT compiler. 2.What are the different types of assemblies name them? Private

Public/Shared Satellite assembly 3.What is GAC? What are the steps to be taken to pick up the latest version from GAC? This Global Assembly Cache(GAC) stores .NET assemblies to be shared by several applications on that computer.publisher policy file is the configuration file to redirect to different version 1. Create the publisher Policy assembly using the assembly linker 2. Add the publisher policy assembly to the GAC using GACutil tool Gacutil /i 3. During runtime CLR is looking into the publisher policy file and redirect the application to bind with new version assembly as specified inside the publisher policy. 4.How do we use different versions of private assemblies in same application without re-build? In Asseblyinfo file need specify assembly version. assembly: AssemblyVersion 5.Different methods of using a legacy COM component in .NET framework? 1. TLBIMP to create an Assembly from a COM component 2. Reference a COM component directly from .NET Editor 6.How do you implement SSL? 1. create certificate request [ =>Right click on the website (VD) =>Click Directory Security Tab and click Server Certificate => Type name of certificate , Organization name , server name location info, => Type the path need to save certificate information Submit certificate request. ] 7.What is ref parameter? What is out parameter? Ref Parameter: Used to pass a parameter as a reference so that the function called will set the value. This could be used to return more than 1 value by a function. e.g. public int AddMuliply( int a , int b, ref int c) { c = a*b; return ( a+b); } The above function, returns the addition of two numbers as well as computes the multiplication result and passes to the calling function. Out Parameter: Used to pass values from the aspx Code-behind to the aspx page. The difference is that for a ref parameter, you have to assign a value before you call the function, while for OUT parameter, you dont have to assign a value, the calling function assumes that the called function would assign some value. A ref parameter must first be initialized before being passed from the calling function to the called function. but a out parameter need not be initialized, we can pass it directly when we pass a parameter as ref to a method, the method refers to the same variable and changes made will affect the actual variable. even the variable passed as out parameter is same as ref parameter, but implementation in c# is different, Arguement passed as ref parameter must be initialized before it is passed to the method. But in case of out parameter it is not necessary. But after a call to a method as out parameter it is necessary to initialize. When to use out and ref parameter, out parameter is used when we want to return more than one value from a method. Ref parameter can be used as both input and o/p parameter out parameter can be used as only output parameter 8.What is boxing? What is the benefits and disadvantages? Boxing is converting a value-type to reference type. An example is converting an integer value to an object value. Ex: int intValue = 10; object obj = (object)intValue; This is used if you want to pass variables of object types to certain functions or methods you have created. Commonly used in events for example (Object sender...). 9.Why multiple Inheritance is not possible in C#? Multple inheritance is coneceptually wrong. It shouldn't be allowed in any language. Inheritance is the strongest relationship that can be expressed in OO languages. It's used to express IS-A relationship. Aggregation is used to express IS CONSTRUCTED IN TERMS OF. If you're using multiple inheritance in C++ then you're design is wrong and you probably want to use aggregation. On the other hand it's plausible to want to use multiple interfaces. For instance you might have a class wheel and a class engine. You could say that your class car inherits from wheel and from engine but that's wrong. In fact car aggregates wheel and engine because it is built in terms of those classes. If wheel is an interface and engine is an interface then car must inherit both of these interfaces since it must implement the

functionaity of wheel and engine .On this basis we can see that multiple inheritance for classes should not be allowed because it promotes mis-use of the strong IS-A relationship. C# enforces the correct concepts whilst C++ allows mis-use. multiple interface inheritance is permissible and C# allows this. It's all to do with properly understanding OO concepts. Absolute Multiple Inheritance is not possible in c# but partially it supports multiple inheritance by the use of Interfaces. As interfaces force a class to implement same type of behaviour (as defined in interface) which classes implements that interface Which namespace provides classes for Regular Expression? System.Text.RegularExpressions namespace provides classes for Regular Expression Which file sets the environment variables for Visual Studio? The vsvars32.bat sets the environment variables for Visual Studio. You can find it from %Microsoft Visual Studio 2008\Common7\Tools\vsvars32.bat. When you start the Visual Studio 2008 command prompt it automatically runs vsvars32.bat. Which assembly is used for Mobile web application? System.Web.Mobile what namespace is used for the controls in a mobile web application? System.Web.UI.MobileControls what is Reflection? Reflection is the feature in .Net, which enables us to get some information about object in runtime. That information contains data of the class. Also it can get the names of the methods that are inside the class and constructors of that object. program should use the reflection derived from namespace System.Reflection . using reflection can dynamically load assembly. What are the elements inside an assembly? A .NET assembly consists of the following elements, A Win32 File Header A CLR file header CIL code Type Metadata An assembly manifest Optional embedded resources What is the namespace to use LINQ to XML? System.Xml.XLinq What is the role of compiler? Compiler translates a high level language into machine language. Which namespace is used to create a multi-threaded application? System.Threading Why HashTable is used It is a .NET class that allows an element to be accessed using a unique key. It is mainly used in database programming. What is the base class for all .NET classes? System.Object 2.how does the cookies work in asp.net? we know Http is an state-less protocol which is required for interaction between clinet and server . so there is an need to remeber state of request raised by an web browser so that web server can recognize you have already previously visited or not. There are two types of state management techniques: a) Client side state management b) Server - side statemanagement Using cookies comes under clinet side statemanagement .In HttpResponse we write Cookie containing sessionId and other information within it. when a browser made a request to the web server the same cookie is sent to the server where server recognize the session id and get other information stored to it previously. 3.What is Ispostback method in ASP.Net? Why do we use that?? Basically Post back is an action performed by a interactive Webpage. When it goes to the server side for a non-client Operation Server again posts it back to the client and hence the name. Ex: if(!IsPostBack) will not allow the page to post back again n again bcoz it reduces the performance.

4.Can User Control be stored in library?. I will say "NO" there are 3 types of controls: 1) User Control 2) Custom Control 3) Web parts you can reuse User control in the current project in which you have built it, but you can't move it to other project as unless you just copy paste the same file there and make the changes for that project ( which violets the concept of library). but custom control can be shared between projects. and you can precompile them even as a dll, so this means you can use them in library of any type. 5.what is the difference between application state and caching? Application Object and Cached Object both falls under Server side State Management. Application object resides in InProc i.e. on the same server where we hosted our application. Cache Object resides on server side/ DownStream/Client Side. Application Object will be disposed once application will stop. Cache Object can be disposed using Time based cache dependency. Only one user can access Application Object at a time hence we have to lock it every time we modify it. 7.What are the uses of Reflection?? Reflection is a concept using which we can 1) Load assemblies dynamically 2) Invoke methods at runtime 3) Retriving type information at runtime. 8.What is the use of AutoWireup in asp.net? AutoEventWireup attribute is used to set whether the events needs to be automatically generated or not. In the case where AutoEventWireup attribute is set to false (by default) event handlers are automatically required for Page_Load or Page_Init. However when we set the value of the AutoEventWireup attribute to true the ASP.NET runtime does not require events to specify event handlers like Page_Load or Page_Init. 9.what events will occur when a page is loaded? Below are the events occures during page load. 1) Page_PreInit 2) Page_Init 3) Page_InitComplete 4) Page_PreLoad 10.Where is the View state Data stored? ViewState data is stored in the hidden field. When the page is submitted to the server the data is sent to the server in the form of hidden fields for each control. If th viewstate of the control is enable true the value is retained on the post back to the client when the page is post backed. 11.What is the difference between custom web user control and a custom web server control? Web User Control: 1) Easy to Create. 2) It Can be used inside the same Application.(To use it in other application we need to add it to that project.) 3) It Can take advantage of Caching Technique. Web Server Control: 1) Bit tuff to create as compare to User Control. 2) Easy to use. 3) Can be added to ToolBox. 12.Where do the Cookie State and Session State information be stored? Cookie Information will be stored in a txt file on client system under a folder named Cookies. Search for it in your system you will find it. Coming to Session State As we know for every process some default space will be allocated by OS. In case of InProc Session Info will be stored inside the process where our application is running. In case of StateServer Session Info will be stored using ASP.NET State Service. In case of SQLServer Session info will be stored inside Database. Default DB which will be created after running InstallSQLState Script is ASPState.

13.What is the difference between adding reference in solution Explorer and adding references by USING ? Adding reference in solution explorer is used to add the DLL for that project for reference only. If you want to utilize that DLL methods/functions in our aspx.cs/.cs file etc you must write using that nameclass library name in file. 14.What are the different types of sessions in ASP.Net? Name them.? Session Management can be achieved in two ways 1)InProc 2)OutProc OutProc is again two types 1)State Server 2)SQL Server InProc Adv.: 1) Faster as session resides in the same process as the application 2) No need to serialize the data DisAdv.: 1) Will degrade the performance of the application if large chunk of data is stored 2) On restart of IIS all the Session info will be lost State Server Adv.: 1) Faster then SQL Server session management 2) Safer then InProc. As IIS restart won't effect the session data DisAdv.: 1) Data need to be serialized 2) On restart of ASP.NET State Service session info will be lost 3)Slower as compared to InProc SQL Server Adv.: 1) Reliable and Durable 2) IIS and ASP.NET State Service restart won't effect the session data 3) Good place for storing large chunk of data DisAdv.: 1) Data need to be serialized 2) Slower as compare to InProc and State Server 3)Need to purchase Licensed version of SQL Serve 15.How do you design a website with multilingual support in ASP.NET? Multilingual website can be created using Globalization and Localization. Using Globalization we change the Currency Date Numbers etc to Language Specific Format. To change the string which is there in the label button etc to language specific string we use Localization. In Localization we have to create different Resource files for different languages. During this process we use some classes present in System.Resources System.Globalization System.Threading namespaces. 16.What is caching? What are different ways of caching in ASP.NET? Caching is a technique of persisting the data in memory for immediate access to requesting program calls. This is considered as the best way to enhance the performance of the application. Caching is of 3 types: Output Caching - Caches the whole page. Fragment Caching - Caches a part of the page Data Caching - Caches the data 17.What is meant by 3-tier architecture. We generally split our application into 3-Layers 1)Presentation Layer ( Where we keep all web forms Master Pages and User Controls). 2)Business Layer (Where we keep business logic). e.g Code related to manipulating data Custom Exception classes Custom Control classes Login related code if any etc. etc. 3)Data Access Layer (Where we keep code used to interact with DB). e.g. We can have the methods which are using SQL Helper (Application Block). 18.Explain the basic functionality of garbage collector?

Garbage Collector in .Net Framework is used for Automatic Memory Management i.e. it is collect all unused memory area and give to application. system.gc.collect() is a method for release the memory. But remember one think it is only an request i.e. we can't explicitly release the memory by using system.gc.collect(). 19.What is the difference between mechine.config and web.config? machine.config is a system level configuration i.e it is applied on all application in o/s that the configuration is set where as in web.config it is applicable to only one application i.e each asp.net webapplication will contain atleast on web.config file. 20.How can exception be handled with out the use of try catch? using Exception Management application block or Page_error Application_error objects 21.What is the difference between Response.Redirect and Server.Transfer. Server.Transfer transfers page processing from one page directly to the next page without making a round-trip back to the client's browser. This provides a faster response with a little less overhead on the server.Server.Transfer does not update the clients url history list or current url. Response.Redirect is used toredirect the user's browser to another page or site. This performs a trip back to the client where the client's browser is redirected to the new page. The user's browser history list is updated to reflect the new address. 22.Where the assembly is stored in asp.net?. private are stored in application / bin directory and public are stored in GAC. 23.How we implement Web farm and Web Garden concept in ASP.NET?. A web farm is a multi-server scenario. So we may have a server in each state of US. If the load on one server is in excess then the other servers step in to bear the brunt. How they bear it is based on various models. 1. RoundRobin. (All servers share load equally) 2. NLB (economical) 3. HLB (expensive but can scale up to 8192 servers) 4. Hybrid (of 2 and 3). 5. CLB (Component load balancer). A web garden is a multi-processor setup. i.e. a single server (not like the multi server above). How to implement webfarms in .Net: Go to web.config and Here for mode you have 4 options. a) Say mode inproc (non web farm but fast when you have very few customers). b) Say mode StateServer (for webfarm) c) Say mode SqlServer (for webfarm) Whether to use option b or c depends on situation. StateServer is faster but SqlServer is more reliable and used for mission critical applications. How to use webgardens in .Net: Go to web.config and Change the false to true. You have one more attribute that is related to webgarden in the same tag called cpuMask. 24.Is there any limit for query string? means what is the maximum size?.. Servers should be cautious about depending on URI lengths above 255 bytes because some older client or proxy implementations may not properly support these lengths. Query string length depends on browser compatability IE supports upto 255 Firefox supports upto 4000 25.What is the exact purpose of http handlers? ASP.NET maps HTTP requests to HttpHandlers. Each HttpHandler enables processing of individual HTTP URLs or groups of URL extensions within an application. HttpHandlers have the same functionality as ISAPI extensions with a much simpler programming model Ex 1.Default HttpHandler for all ASP.NET pages ->ASP.NET Page Handler (*.aspx) 2.Default HttpHandler for all ASP.NET service pages->ASP.NET Service Handler (*.asmx) An HttpHandler can be either synchronous or asynchronous. A synchronous handler does not return until it finishes processing the HTTP request for which it is called. An asynchronous handler usually launches a process that can be lengthy and returns before that process finishes After writing and compiling the code to implement an HttpHandler you must register the handler using your application's Web.config file.

Basic Features In ASP.NET:

Easy-to-use, graphical data mapping interface Instant data transformation XSLT 1.0/2.0 and XQuery code generation Java, C#, and C++ code generation Advanced data processing functions Support for all major relational databases including SQL Server, IBM DB2, Oracle, and more Integration with Altova StyleVision for report rendering Visual Studio & Eclipse integration Available in 32-bit and 64-bit versions

Advanced Features in ASP.NET:


Some of the new features in ASP.NET 2.0 are: * * * * * * * * * Master Pages, Themes, and Web Parts Standard controls for navigation Standard controls for security Roles, personalization, and internationalization services Improved and simplified data access controls Full support for XML standards like, XHTML, XML, and WSDL Improved compilation and deployment (installation) Improved site management New and improved development tools

Some of the new features in ASP.NET 3.5 are: ASP.NET AJAX. New ListView and DataPager Controls. WCF Support for RSS, JSON, POX and Partial Trust. LINQ (Language Integrated And Query). New Web Design Interface. Multi-targeting Support.

The new assemblies that would be of use to ASP.NET 3.5 developers are as follows:
System.Core.dll - Includes the implementation for LINQ to Objects System.Data.Linq.dll - Includes the implementation for LINQ to SQL System.Xml.Linq.dll - Includes the implementation for LINQ to XML System.Data.DataSetExtensions.dll - Includes the implementation for LINQ to DataSet System.Web.Extensions.dll: Includes the implementation for ASP.NET AJAX (new enhancements added) and new web controls as explained earlier.

Advantage Of ASP.NET:
1. ASP.NET drastically reduces the amount of code required to build large applications. 2. With built-in Windows authentication and per-application configuration, your applications are safe and secured.

3. It provides better performance by taking advantage of early binding, just-in-time compilation, native optimization, and caching services right out of the box. 4. The ASP.NET framework is complemented by a rich toolbox and designer in the Visual Studio integrated development environment. WYSIWYG editing, drag-and-drop server controls, and automatic deployment are just a few of the features this powerful tool provides. 5. Provides simplicity as ASP.NET makes it easy to perform common tasks, from simple form submission and client authentication to deployment and site configuration.
SQL:SERVER

Which TCP/IP port does SQL Server run on? How can it be changed? SQL Server runs on port 1433. It can be changed from the Network Utility TCP/IP properties -> Port number, both on client and the server. What are the difference between clustered and a non-clustered index? (Read More Here) A clustered index is a special type of index that reorders the way records in the table are physically stored. Therefore table can have only one clustered index. The leaf nodes of a clustered index contain the data pages. A non clustered index is a special type of index in which the logical order of the index does not match the physical stored order of the rows on disk. The leaf node of a non clustered index does not consist of the data pages. Instead, the leaf nodes contain index rows. What are the different index configurations a table can have? A table can have one of the following index configurations: No indexes A clustered index A clustered index and many nonclustered indexes A nonclustered index Many nonclustered indexes What are different types of Collation Sensitivity? Case sensitivity A and a, B and b, etc. Accent sensitivity a and , o and , etc. Kana Sensitivity When Japanese kana characters Hiragana and Katakana are treated differently, it is called Kana sensitive. Width sensitivity A single-byte character (half-width) and the same character represented as a double-byte character (full-width) are treated differently than it is width sensitive. (Read More Here) What is OLTP (Online Transaction Processing)?

In OLTP online transaction processing systems relational database design use the discipline of data modeling and generally follow the Codd rules of data normalization in order to ensure absolute data integrity. Using these rules complex information is broken down into its most simple structures (a table) where all of the individual atomic level elements relate to each other and satisfy the normalization rules. Whats the difference between a primary key and a unique key? Both primary key and unique key enforces uniqueness of the column on which they are defined. But by default primary key creates a clustered index on the column, where are unique creates a nonclustered index by default. Another major difference is that, primary key doesnt allow NULLs, but unique key allows one NULL only. (Read More Here) What is difference between DELETE & TRUNCATE commands? Delete command removes the rows from a table based on the condition that we provide with a WHERE clause. Truncate will actually remove all the rows from a table and there will be no data in the table after we run the truncate command. TRUNCATE TRUNCATE is faster and uses fewer system and transaction log resources than DELETE. TRUNCATE removes the data by deallocating the data pages used to store the tables data, and only the page deallocations are recorded in the transaction log. TRUNCATE removes all rows from a table, but the table structure, its columns, constraints, indexes and so on, remains. The counter used by an identity for new rows is reset to the seed for the column. You cannot use TRUNCATE TABLE on a table referenced by a FOREIGN KEY constraint. Because TRUNCATE TABLE is not logged, it cannot activate a trigger. TRUNCATE cannot be rolled back. TRUNCATE is DDL Command. TRUNCATE Resets identity of the table DELETE DELETE removes rows one at a time and records an entry in the transaction log for each deleted row. If you want to retain the identity counter, use DELETE instead. If you want to remove table definition and its data, use the DROP TABLE statement. DELETE Can be used with or without a WHERE clause DELETE Activates Triggers. DELETE can be rolled back.

DELETE is DML Command. DELETE does not reset identity of the table. (Read More Here) When is the use of UPDATE_STATISTICS command? This command is basically used when a large processing of data has occurred. If a large amount of deletions any modification or Bulk Copy into the tables has occurred, it has to update the indexes to take these changes into account. UPDATE_STATISTICS updates the indexes on these tables accordingly. What is the difference between a HAVING CLAUSE and a WHERE CLAUSE? They specify a search condition for a group or an aggregate. But the difference is that HAVING can be used only with the SELECT statement. HAVING is typically used in a GROUP BY clause. When GROUP BY is not used, HAVING behaves like a WHERE clause. Having Clause is basically used only with the GROUP BY function in a query whereas WHERE Clause is applied to each row before they are part of the GROUP BY function in a query. (Read More Here) What are the properties and different Types of Sub-Queries? Properties of Sub-Query A sub-query must be enclosed in the parenthesis. A sub-query must be put in the right hand of the comparison operator, and A sub-query cannot contain an ORDER-BY clause. A query can contain more than one sub-query. Types of Sub-query Single-row sub-query, where the sub-query returns only one row. Multiple-row sub-query, where the sub-query returns multiple rows,. and Multiple column sub-query, where the sub-query returns multiple columns What is SQL Profiler? SQL Profiler is a graphical tool that allows system administrators to monitor events in an instance of Microsoft SQL Server. You can capture and save data about each event to a file or SQL Server table to analyze later. For example, you can monitor a production environment to see which stored procedures are hampering performances by executing too slowly. Use SQL Profiler to monitor only the events in which you are interested. If traces are becoming too large, you can filter them based on the information you want, so that only a subset of the event data is collected. Monitoring too many events adds overhead to the server and the monitoring process

and can cause the trace file or trace table to grow very large, especially when the monitoring process takes place over a long period of time. What are the authentication modes in SQL Server? How can it be changed? Windows mode and Mixed Mode SQL & Windows. To change authentication mode in SQL Server click Start, Programs, Microsoft SQL Server and click SQL Enterprise Manager to run SQL Enterprise Manager from the Microsoft SQL Server program group. Select the server then from the Tools menu select SQL Server Configuration Properties, and choose the Security page.
What is RDBMS? Relational Data Base Management Systems (RDBMS) are database management systems that maintain data records and indices in tables. Relationships may be created and maintained across and among the data and tables. In a relational database, relationships between data items are expressed by means of tables. Interdependencies among these tables are expressed by data values rather than by pointers. This allows a high degree of data independence. An RDBMS has the capability to recombine the data items from different files, providing powerful tools for data usage. (Read More Here) What are the properties of the Relational tables? Relational tables have six properties: Values are atomic. Column values are of the same kind. Each row is unique. The sequence of columns is insignificant. The sequence of rows is insignificant. Each column must have a unique name.

What is Normalization? Database normalization is a data design and organization process applied to data structures based on rules that help building relational databases. In relational database design, the process of organizing data to minimize redundancy is called normalization. Normalization usually involves dividing a database into two or more tables and defining relationships between the tables. The objective is to isolate data so that additions, deletions, and modifications of a field can be made in just one table and then propagated through the rest of the database via the defined relationships. What are different normalization forms? 1NF: Eliminate Repeating Groups Make a separate table for each set of related attributes, and give each table a primary key. Each field contains at most one value from its attribute domain. 2NF: Eliminate Redundant Data If an attribute depends on only part of a multi-valued key, remove it to a separate table. 3NF: Eliminate Columns Not Dependent On Key If attributes do not contribute to a description of the key, remove them to a separate table. All attributes must be directly dependent on the primary key. (Read More Here) BCNF: Boyce-Codd Normal Form If there are non-trivial dependencies between candidate key attributes, separate them out into distinct tables.

4NF: Isolate Independent Multiple Relationships No table may contain two or more 1:n or n:m relationships that are not directly related. 5NF: Isolate Semantically Related Multiple Relationships There may be practical constrains on information that justify separating logically related many-to-many relationships. ONF: Optimal Normal Form A model limited to only simple (elemental) facts, as expressed in Object Role Model notation. DKNF: Domain-Key Normal Form A model free from all modification anomalies is said to be in DKNF. Remember, these normalization guidelines are cumulative. For a database to be in 3NF, it must first fulfill all the criteria of a 2NF and 1NF database. What is De-normalization? De-normalization is the process of attempting to optimize the performance of a database by adding redundant data. It is sometimes necessary because current DBMSs implement the relational model poorly. A true relational DBMS would allow for a fully normalized database at the logical level, while providing physical storage of data that is tuned for high performance. De-normalization is a technique to move from higher to lower normal forms of database modeling in order to speed up database access. What is Stored Procedure? A stored procedure is a named group of SQL statements that have been previously created and stored in the server database. Stored procedures accept input parameters so that a single procedure can be used over the network by several clients using different input data. And when the procedure is modified, all clients automatically get the new version. Stored procedures reduce network traffic and improve performance. Stored procedures can be used to help ensure the integrity of the database. e.g. sp_helpdb, sp_renamedb, sp_depends etc. What is Trigger? A trigger is a SQL procedure that initiates an action when an event (INSERT, DELETE or UPDATE) occurs. Triggers are stored in and managed by the DBMS. Triggers are used to maintain the referential integrity of data by changing the data in a systematic fashion. A trigger cannot be called or executed; DBMS automatically fires the trigger as a result of a data modification to the associated table. Triggers can be viewed as similar to stored procedures in that both consist of procedural logic that is stored at the database level. Stored procedures, however, are not event-drive and are not attached to a specific table as triggers are. Stored procedures are explicitly executed by invoking a CALL to the procedure while triggers are implicitly executed. In addition, triggers can also execute stored procedures. Nested Trigger: A trigger can also contain INSERT, UPDATE and DELETE logic within itself, so when the trigger is fired because of data modification it can also cause another data modification, thereby firing another trigger. A trigger that contains data modification logic within itself is called a nested trigger. (Read More Here) What is View? A simple view can be thought of as a subset of a table. It can be used for retrieving data, as well as updating or deleting rows. Rows updated or deleted in the view are updated or deleted in the table the view was created with. It should also be noted that as data in the original table changes, so does data in the view, as views are the way to look at part of the original table. The results of using a view are not permanently stored in the database. The data accessed through a view is actually constructed using standard T-SQL select command and can come from one to many different base tables or even other views.

What is Index? An index is a physical structure containing pointers to the data. Indices are created in an existing table to locate rows more quickly and efficiently. It is possible to create an index on one or more columns of a table, and each index is given a name. The users cannot see the indexes; they are just used to speed up queries. Effective indexes are one of the best ways to improve performance in a database application. A table scan happens when there is no index available to help a query. In a table scan SQL Server examines every row in the table to satisfy the query results. Table scans are sometimes unavoidable, but on large tables, scans have a terrific impact on performance. What is a Linked Server? Linked Servers is a concept in SQL Server by which we can add other SQL Server to a Group and query both the SQL Server dbs using T-SQL Statements. With a linked server, you can create very clean, easy to follow, SQL statements that allow remote data to be retrieved, joined and combined with local data. Stored Procedure sp_addlinkedserver, sp_addlinkedsrvlogin will be used add new Linked Server. (Read More Here)

S-ar putea să vă placă și