Some Basics

Dear all,

lets start with some basics.

.Net Framework: Is an environment that facilitates Object Oriented Programming Model for multiple languages. It wraps OS and insulates Software Development from many OS specific tasks such as file handling, memory allocation & management.

  It has two main components CLR and .Net Class Libraries.

 

CLR: Common Language Runtime. It is heart of .Net Framework. Core of CLR is it’s execution engine which loads, executes and manages the managed code that has been compiled to Intermediate Language (MSIL).

 

CTS:  Common Type System. It defines the common set of types that can be used in different languages regardless of OS and hardware. Each language is free to provide/define it’s own syntaxes. 

 

  CTS defines that how types are declared, used and managed in runtime.  Most important addition is runtime support for cross language integration. It does:

  • Establishes a Framework
  • Provides Object Oriented Programming Model
  • Defines set of rules that language must follow to be CLR compliant.

 

CLS: Common Language Specification.  It is Subset of CTS which is all .Net languages are expected to implement.  Idea behind the CLS is Cross Language Integration.

 

Managed Code: The .Net framework provides several core run-time services to the programs that run within it. For example exception handling and security. For these services to work the code must provide a minimum level of information to runtime. Such code is called Managed Code.

 

Managed Data: This is data for which memory management is done by .Net runtime’s garbage collector this includes tasks for allocation de-allocation. We can call garbage collector to collect un-referenced data by executing System.GC.Collect()

 

What is an Assembly?:  are fundamental building blocks of .Net Framework. They contains the type and resources that are useful to make an application. Assemblies enables code reuse, version control, security and deployment. An assembly consist of: Manifest, Type Metadata, MSIL and resource file.

  Assemblies are Private and Shared. Private are used for a single application and installed in application’s install directory or its sub-directory. Shared assembly is one that can be referenced by multiple application and resides in GAC(local cache for assemblies managed by .Net Framework).

  gacutil /i myDll.dll can see and %windir%\assembly

 

Metadata and Menifest: Menifest describes the assembly itself. Assembly name, version, culture, strong name, list of files, type reference and reference assembly. While Metadata describes contents within the assembly like classes, namespaces, interfaces, scope, properties, methods and  their parameters etc.

 

Application Domain: is a virtual process that serves to isolate an application. All object created within the same application scope are created within same application domain.

 

Garbage Collection: is Automatic Memory Manager for .Net Framework. It manages the memory allocated to .Net Framework.

    When a variable is defined it gets a space in memory (stack) and when an object is created memory for the object is allocated in heap. When an object is assigned to a variable it increments the reference counts for the object and when program control comes out of the function the scope of variable gets ended Or NULL is assigned to variable it decrements the reference count of object by 1. When reference count of one object becomes zero GC acts call destructor of object and then releases the memory acquired by the object.

 

Can .Net Components can be used from a COM?  Yes, can be used. But There are few restrictions such as COM needs an object to be created. So static methods, parameterized constructor can not be used from COM. These are used by COM using a COM Callable Wrapper (CCW).

TlbImp.exe and TlbExp.exe

 

How does .NET Remoting work? It involves sending messages along channels. Two of the standard channels are HTTP and TCP. TCP is for LANs only and HTTP can be used on LANs or WANs (internet).  TCP uses binary serialization and HTTP uses SOAP (.Net Runtime Serialization SOAP Formatter).

 

There are 3 styles of remote access:

  SingleCall: Each incoming request is handled by new instance.

  Singleton: All requests are served by single server object.

  Client-Activated Object: This is old state-full DCOM model. Where client receives reference to the remote object and keep until it finished with it.

 

Versioning: MajorVersion.MinorVersion.BuildNumber.Revision

 

DLL-HELL: situations where we have to put same name Dlls in single directory where are Dlls are of different versions.

 

Boxing and Un-Boxing: Implicit(automatic) conversion of value type to reference type is known as Boxing And Explicit (manual) conversion of Reference type to value type is said to be Un-boxing. (conversion of Integer variable to object type)

 

ASP.Net

 

Different Types of Caching?

Output Caching: stores the responses from an asp.net page.

Fragment Caching:  Only caches/stores the portion of page (User Control)

Data Caching: is Programmatic way to Cache objects for performance.

 

Authentication and Authorization: Authentication is identifying/validating the user against the credentials (username and password) and Authorization performs after authentication. Authorization allowing access of specific resource to user.

 

Different Types of Directives:

Page, Register, Control, OutputCache, Import, Implements, Assembly, Reference

 

Difference between Server-Side and Client-Side:

Server-Side code is executed on web-server and does not transmitted to client, while client-side code executed on client(browser) and is rendered to client along with the content.

 

Difference Server.Transfer and Response.Redirect:

Both ends the processing for the current request immediately. Server.Transfer start executing the another resource specified as parameter without acknowledgement to client(browser) while Response.Redirect intimate client that your requested resource is available at this location and then client request for that resource.

 

Different Types of Validators and Validation Controls:

RequiredFieldValidator, RangeValidator, RegularExpressionValidator, CompareValidator, CustomValidator, ValidationSummary

 

How to Manage State in ASP.Net?

Client based: ViewState, QueryString and Cookies

Server based: Session, Application.

 

Difference between User Control and Custom Control:

CUSTOM Controls are compiled code (Dlls), easier to use, difficult to create,  and can be placed in toolbox. Drag and Drop controls. Attributes can be set visually at design time. Can be used by Multiple Applications (If Shared Dlls), Even if Private can copy to bin directory of webApp add reference and use. Normally designed to provide common functionality independent of consuming Application.

 

3 Types of Session State Modes?

InProc(cookieless, timeout),

StateServer (Server, Port  stateConnectionString=”tcpip=server:port”),

SQLServer (sqlconnectionstring) and Off.

 

What is ViewState and How it is managed, Its Advantages/Benefits?

ViewState is a special object that ASP.NET uses to maintain the state of page and all webcontrols/ServerControls within it. It is in this object preserves the states of various FORM elements during post-backs. It is rendered to client(browser) as a Hidden variable __VIEWSTATE under <Form> tag. We can also add custom values to it.

 

What is web.config and machine.config:

machine.config is default configuration for all applications running under this version, located in %WinDir%\Microsfot.Net\Framework\Version. Settings can be overridden by Web.Config for an specific application Web.Config resides in application’s root/virtual root and exists in sub-sequent folders.

 

Role of Global.asax:

Optional file contains the code to handle Application level events raised by ASP.Net or By HttpModule. This file resides in application root directory. Application_Start, _End, _AuthenticateRequest, _Error, Session_Start, _End, BeginRequest, EndRequest. This file is parsed and compiled into dynamically generated class derived from HttpApplication.

 

Page Life Cycle: Init, LoadViewState, LoadPostBackData, Load, RaisePostBackDataChangedEvent, RaisePostBackEvents, Pre-Render, SaveViewState, Render, Unload,

(IpostBackDataChangedEventHandler and IpostBackEventHandler)

Error, CommitTransaction, AbortTransaction, Abort

inetinfo.exe, aspnet_isapi.dll aspnet_wp.exe, HttpModules (OutputCache, Session, Authentication, Authorization, Custom Modules Specified) and Then HttpHandlers PageHandlerFactory for *.aspx

 

Can the action attribute of a server-side <Form> tag be set to a value and if not how can you possibly pass data from a form to a subsequent Page?

  No assigning value will not work because will be overwritten at the time of rendering. We can assign value to it by register a startup script which will set the action value of form on client-side.

Rest are Server.Transfer and Response.Redirect.

 

ASP.Net List Controls and differentiate between them?

RadioButtonList, CheckBoxList, DropDownList, Repeater, DataGrid,

DataList

 

Type Of Code in Code-Behind class: Server-Side Code.

 

What might be best suited to place in the Application_Start and Session_Start:

  Application level variables and settings initialization in App_Start

  User specific variables and settings in Session_Start

 

Difference between inline and code-behind. Which is best?

Inline is mixed with html and code-behind is separated. Use code-behind, Because Inline pages are loaded, parsed, compiled and processed at each first request to page and remains in compiled code remains in cache until it expires, If expires it again load, parse and compile While code-behind allows to be pre-compiled and provide better performance.

 

Which Template must provide to display data in Repeater?

ItemTemplate.

 

How to Provide Alternating Color Scheme in Repeater?

AlternatingItemTemplate

 

What base class all Web Forms inherit from? System.Web.UI.Page

 

What method do you use to explicitly kill a user’s Session?

  HttpContext.Current.Session.Abandon()

 

How do you turn off cookies in one page of your asp.net application?

  We will not use it. But can not turn off cookies from server. To allow or not is a client side functionality.

 

Which two properties are on every validation control?

  ControlToValidate and Text, ErrorMessage

 

How do you create a permanent cookie?

  Set expires property to Date.MaxValue (HttpCookie.Expires = Date.MaxValue)

 

What is the standard you use to wrap up a call to a Web Service? SOAP

 

Which method do you use to redirect to user to another page without performing a round trip to Client? Server.Transfer(“AnotherPage.aspx”)

 

What is transport protocol you use to call a Web-Service SOAP? HTTP-POST 

 

A Web Service can only be written in .NET? FALSE

 

Where on internet would you look for Web services? http://www.uddi.org

 

How many classes can a single .NET DLL contain? Unlimited.

 

How many namespaces are in .NET? 124

 

What is a bubbled event? When you have a complex control like DataGrid. Writing an event processing routine for each object (cell, button, row etc.). DataGrid handles the events of its constituents and will raise its own defined custom events.

 

Difference between ASP Session State and ASP.Net Session State?

ASP: relies on cookies, Serialize all requests from a client, Does not survive process shutdown, Can not maintained across machines in a Web farm/garden.

 

Layout: GridLayout and FlowLayout

 

Web User Control: Combines existing Server and HTML controls by using VS.Net. to create functional units that encapsulate some aspects of UI. Resides in Content Files, which must be included in project in which the controls are used.

 

Composite Custom Control: combination of existing HTML and Server Controls.

 

Rendered custom control: create entirely new control by rendering HTML directly rather than using composition.

 

Where do you store the information about user’s Locale? Page.Culture

 

Should Validation occur on Client/Server Side for Date Input?

Both. Client-side reduces extra round-trip. Server-Side ensures prevention against hacking and failure against automated requests.

 

ADO.Net

 

ADO.Net Components:

Connection, Command, DataReader, DataAdapter

 

Differentiate between DataSet and RecordSet:

1)     DataSet is entire relation DB in memory. Table/Relation/Views While RecordSet is representation of Table. It do not contain information on relationships, Constraints, Keys.

2)     DataSet is designed to work in disconnected mode.

3)     There’s no concept of cursor-types in a DataSet

4)     DataSet has no record pointer.

5)     You can store many edits in a DS and write them in Original DataSource in a single call.

6)     DataSet internally represents data with XML and can be serialized. Thus you can easily retrieve data from a DB and then write directly to XML file or reverse.

 

DataSet is always disconnected? True

 

What is advantage of DataReader over DataSet?

DataReader is readonly stream of data returned from the DB as the query executes. It contains one row of data at a time and is restricted to forward-only. Supports to a access multiple result sets but only one at a time and in order retrieved. DataReader needs connection to DB throughout its usage. DataReader is faster than DataSet.

 

Typed DataSet?

Data access is normally done using indexes on collection in object model. In ADO.Net it is possible to create a variation on a Dataset that supports syntax like DataSet.TableName.Rows(0).ColumnName . Errors in syntax are detected during compile time rather than runtime.

  Advantages: Data Designer generates typed ds. When we type ds. We get all table names and column names on row. We do not need to remember.

 

How to reflect updation of data in dataset to database?

 Dim ds As New (Typed)DataSet

 Dim da As New SqlDataAdapter(“Select Command”)

 Dim cd As New SqlCommandBuilder(da)

 da.Update(DataTable/DataSet, srcTable)

 If SELECT command is SP and to update/insert/delete we have created SPs

 We can create SqlCommand Objects in Code and assign it to InsertCommand,

 UpdateCommand and DeleteCommand Property of adapter.

 

What are Different types of command can be executed?

ExecutedNonQuery, ExecuteScaler, ExecuteReader (In Execute NonQuery we can use transaction. In other Scaler and Reader we can not use transaction. We do not need to assign transaction to every command if connection string has ENLIST=true; it automatically assigns current transaction in the Context to the command being executed.

 

How to Set DataRelation between in two columns:

ds.Relations.Add(DataRelation Object)

New DataRelation(ParentColumns(),childColumns())

New DataRelation(“RelationName”, ParentColumn, childColumn)

New DataRelation(“RelationName”, ParentColumn, childColumn, CreateConstraint = True)

New DataRelation(“RelationName”,ParentColumns(),childColumns(),CreateConstraint=True)

 

How do we sort the data from a DataTable:

DataTable.Select(strFilter, strSort) As DataRow()

New DataView(DataTable) and DataView.Sort = “Column1,Column2,…)

 

How do we get only edited/deleted/inserted records from a DataTable:

DataTable.GetChanges(DataRowState.Added Or

                     DataRowState.Deleted Or

                     DataRowState.Modified Or

                     DataRowState.Detached Or

                     DataRowState.Unchanged)

 

 

How does DataAdapter.Fill Work?

Executes the Execute Reader method and gets the reader.

Reads Each ResultSet using NextResultSet of DataReader From the and Fills the DataTable form the reader. Also creates DataTable if MisingSchemaAction is Add/AddWithKey.

 

Difference between HTML and XML?

 

XML : User defined tags. Content driven, End tags required , case sensitive. Quotes required around attributes. Slash required in Empty Tags.

 

What is XSLT and its usage? XSL Transformations. Used to transform XML document to any other text format such as HTML, text, XML etc.

 

.Net OOPs

 

Class: Class is concrete representation of an entity. It represents a group of objects, which posses similar attributes and behavior.

Provides Abstraction and Encapsulations.  A category name that can be given to group of objects of similar kind.

 

Object: Object represents/resembles a Physical/real entity. An object is simply something you can give a name.

 

Object Oriented Programming: is a Style of programming that represents a program as a system of objects and enables code-reuse.

 

Encapsulation: Binding of attributes and behaviors. Hiding the implementation and exposing the functionality.

 

Abstraction: Hiding the complexity. Defining communication interface for the functionality and hiding rest of the things.

  In .Net destructor can not be abstract. Can define Either Finalize / Destructor. For Destructor access specifiers can not be assigned. It is Private.

 

Overloading: Adding a new method with the same name in same/derived class but with different number/types of parameters. Implements Polymorphism.

 

Overriding: When we need to provide different implementation than the provide by base class, We define the same method with same signatures in the derived class. Method must be Protected/Protected-Friend/Public for this purpose. (Base class routine can be called by Mybase.Method, base.Method)

 

Shadowing: When the method is defined as Final/sealed in base class and not overridable and we need to provide different implementation for the same. We define method with Shadows/new.

 

Inheritance: Gives you ability to provide is-a relationship. Acquires attributes and behaviors from another. When a class acquires attributes and behaviors from another class. (must not be Final or sealed class in .Net)

 

Abstract Class: Instance can not be created. Optionally can have one or more abstract methods but not necessary. Can provide body to Classes.

 

Interface: What a Class must do, But not how-to.

  Bridge for the communication when the caller does not know to whom he is calling.

  Describes externally visible behavior of element.

  Only Public members which defines the means of the communication with the outer world.  Can-be-Used-As Relationship.

  Can not contain data but can declare property. There can be no implementation. Interface can be derived from another interface.

 

Polymorphism: Mean by more than one form. Ability to provide different implementation based on different no./type of parameters.

A method behaves differently based on the different input parameters. Does not depend on the Return-Type.

 

Pure-Polymorphism: Make an method abstract/virtual in base class. Override it in Derived Class. Declare a variable of type base class and assign an object of derived class to it. Now call the virtual/abstract method. The actual method to be called is decided at runtime.

 

Early-Binding: Calling an non-virtual method decides the method to call at compile time is known as Early-Binding.

 

Late-Binding: Same as pure-polymorphism.

 

Identifiers/Access Specifies and scope:

Private, Protected, Friend, Protected Friend, Public

private, protected, internal, protected internal, public

 

What is a Delegate?

A strongly typed function pointer. A delegate object encapsulates a reference to a method. When actual function needs to be called will be decided at run-time.

 

Static Variable and Its Life-Time:

Public Shared VAR As Type Or public static Type VAR;

Life time is till the class is in memory.

 

Constructor: Special Method Always called whenever an instance of the class is created.

 

Destructor/Finalize:

  Called by GC just before object is being reclaimed by GC.

 

UML- Unified Modeling Language

 

A Language provides vocabulary and the rules for combining the words to form sentences for the purpose of communication.

 

A Modeling Language – whose vocabulary is symbols and its rules focuses on the conceptual and physical representation of a system.

 

UML is a Language for Visualizing, Specifying, Constructing and Documenting a system.

 

A Model is simplification of reality.

 

Benefits of model:

  • To communicate the structure and behavior of system.
  • Visualize and control the system’s architecture.
  • Better understand the system we are building, So that we might find possibility for simplification and reusability.
  • Minimize the risk and Manages the risk.
  • Because we cannot understand complex system in its entirety.

 

The vocabulary of UML encompasses of three kinds of building blocks i.e. Things, Relationships and Diagrams.  Things are citizens in a Model, Relationship ties them together and Diagram groups interesting collections of things.

 

Things in UML: Structural, Behavioral, Grouping and Annotational.

 

Structural things are:

Class: Rectangle incl. Name, attributes and methods.

Interface: Circle

Collaboration: Ellipse with dashed line.

 

Use-Cases: Description of Set of sequences of actions performed by a system that yields an observable result of value to a particular actor. Ellipse with Solid Line.

 

Active Class: whose objects owns one or more processes/threads. Can initiate control activity.

 

Component: Physical and replaceable part of a system that conforms to provide the realization of set of interfaces.

 

Node: Physical element that exists at run time and represents computational resource, generally having some memory and processing capability. Cube.

 

Behavioral things are: Interaction (behavior that comprises set of objects within a particular context for a specific purpose. A direct line arrow) and State-Machine (behavior that defines sequences of states. rounded rectangle).

 

Grouping things are:

Primary is Package (Organizational part of UML, These are boxes in which model can be decomposed. tabbed folder) others are Framework, Models and Sub-System.

 

Annotational things are : 

Note: (Explanatory part of UML Models, these are comments, dog eared corner rectangle)

 

Advertisements

One thought on “Some Basics

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s