Author: Anonymous Submitted: 01.15.09 Word Count: 1156
Study starts from here
Solutions … as always da 1st thing I look for is here for me
Common Language Runtime ( CLR )
* Intermedia Language and Metadata
* Virutal Function
* Value Types
* Reference Types
* System.Object and All the functions in it
* Class and Strucutres
* Is and as operators
* Aggregation and Containment
* Type Oject Pointer and Syn Block Index
* Stack and Heap Memory
* Compile time binding and run time binding
* Abstract classes
Private Assemblies and Strongly named assemblies
GAC ( Global Assembly Cache )
Public Key, Private Key, RSA Digital Signature
the abstract modifier in a class declaration to indicate that a class is intended only to be a base class of other classes. Members marked as abstract, or included in an abstract class, must be implemented by classes that derive from the abstract class.
Common Language Runtime ( CLR )
Code that you develop with a language compiler that targets the runtime is called managed code; it benefits from features such as cross-language integration, cross-language exception handling, enhanced security, versioning and deployment support, a simplified model for component interaction, and debugging and profiling services. o enable the runtime to provide services to managed code, language compilers must emit metadata that describes the types, members, and references in your code. Metadata is stored with the code; every loadable common language runtime portable executable (PE) file contains metadata. The runtime uses metadata to locate and load classes, lay out instances in memory, resolve method invocations, generate native code, enforce security, and set run-time context boundaries. The clr initializes the garbage collection wen it feels that there is nt enf memory space
• Complete object-oriented design.
• Very strong type safety.
• A good blend of Visual Basic simplicity and C++ power.
• Garbage collection.
• Syntax and keywords similar to C and C++.
• Use of delegates rather than function pointers for increased type safety and security. Function pointers are available through the use of the unsafe C# keyword and the /unsafe option of the C# compiler (Csc.exe) for unmanaged code and data.
When compiling to managed code, the compiler translates your source code into Microsoft intermediate language (MSIL), which is a CPU-independent 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. Before code can be run, MSIL must be converted to CPU-specific code, usually by a just-in-time (JIT) compiler. Because the common language runtime supplies one or more JIT compilers for each computer architecture it supports, the same set of MSIL can be JIT-compiled and run on any supported architecture. Pre jit- comples da complete code and uses it and dels it, ecno jit-converts da code in parts and dels them after their use, normal jit – converts only da required part of the prgm and stores it in a cache memory and reuses it wen required.
Metadata is a file dat vl b created by the clr to store the type members references of the code.
There r categorized into 3 tables .. namely definition table, reference table and manifest table
Defination table has modidef promdef,module def ,type def,fielddef propertydef,event def
All thses have one entry of their respective modules like property module, field module etc.. each entry includes the name type flags …
The moduledef includes da module name and its extension and the module version id GUID(global unique identifier)
It stores the info abt all the moules in the assembly unlike metadata which stores info abt one particular module. It consists of the name version culture public or private token and the assemblies it is depended on. it is present in a metadata of the assembley and consists of al the info related to that particular assembly
it is a partially compiled self describing code which is used for deployment versioning security purposes it is an application of the clr. an assembly is a PE (portable executable) file for Windows GUI. There are two types: process assemblies (EXE) and library assemblies (DLL). A .exe file is an executable file. It is independent file and runs on double clickin it
a dll file is a dependednt file and The use of DLLs helps promote modularization of code, code reuse, efficient memory usage, and reduced disk space. Therefore, the operating system and the programs load faster, run faster, and take less disk space on the compute
graphical user interface (GUI) for modifying some of the configuration file settings
class – maruti
instance – buyin zen frm maruthi, using it
overloading: the same method being used by diff parameter or diff reasons
add sring(joe, smith)
Class is an abstract representation-
Object is a useable representation of the class
anjani pratusha bommads –object
clas – fields(variables), properties –describe abt the contents of the object
methods –it is the sub fun of the object or adding a procedude to the class(driving the car, applying breaks)
events-it is a notification of the fun being recived or transmitted ben abjects or applications
Encapsulation: security – it is a secured sys wre da referend progmr can acces only limited amt of data , its called data hiding, the user cant c wats gng behind,
Inheritance : to use a new class frm an exsitin class bt wit sum additional properties
Car is a property automatic transmission is additional feature of a car
POLYMOPHISM: it is a multiple classes dat can b used interchangeably
Diff ways to start a petrol and a disel car
OVERRIDING: replacement of an inherited property or method, it shld accept same data type and same no of parameters
INTERFACE: it is a replacement of multiple inheritances .it avoids da prob of name ambiguity.
NOTE: System.Console.WriteLine(…). This follows the pattern “namespace.class.method” as a fully qualified statement.
Constructors (C# Programming Guide)
Whenever a class or struct is created, its constructor is called. A class or struct may have multiple constructors that take different arguments. Constructors enable the programmer to set default values, limit instantiation, and write code that is flexible and easy to read.
Here is the full list of C# keywords:
abstract enum long stackalloc
as event namespace static
base explicit new string
bool extern null struct
break false object switch
byte finally operator this
case fixed out throw
catch float override true
char for params try
checked foreach private typeof
class goto protected uint
const if public ulong
continue implicit readonly unchecked
decimal in ref unsafe
default int return ushort
delegate interface sbyte using
do internal sealed virtual
double is short void
else lock sizeof while
Table 2-3. C# Character Escape Sequences
Escape Sequence Meaning
‘ Single Quote
” Double Quote
Null, not the same as the C# null value
f form Feed
r Carriage Return
t Horizontal Tab
v Vertical Tab
Table 2-4. Operators with their precedence and Associativity
Category (by precedence) Operator(s) Associativity
Primary x.y f(x) a[x] x++ x– new typeof default checked unchecked delegate Left
Unary + – ! ~ ++x –x (T)x Left
Multiplicative * / % Left
Additive + – Left
Shift > Left
Relational < > = is as Left
Equality == != Right
Logical AND & Left
Logical XOR ^ Left
Logical OR | Left
Conditional AND && Left
Conditional OR || Left
Null Coalescing ?? Left
Ternary ?: Right
Assignment = *= /= %= += -= = &= ^= |= => Right
When evaluating expressions, post-increment (x++) and post-decrement (x–) operators return their current value and then apply the operators. However, when using pre-increment (++x) and pre-decrement (–x) operators, the operator is applied to the variable prior to returning the final value.
Generally, you should use fields only for variables that have private or protected accessibility. Data that your class exposes to client code should be provided through methods, properties and indexers. By using these constructs for indirect access to internal fields, you can guard against invalid input values. A private field that stores the data exposed by a public property is called a backing store or backing field.
Kit (SDK) – more commonly referred to as .NET Framework SDK
In order to run application developed using .NET Framework the machine must
have certain ‘runtime’ files installed. They are collectively called as .NET
redistributable. This is analogous to traditional Visual Basic applications that
required Visual Basic runtime installed on target computers. .NET redistributable
provides one redistributable installer that contains the common language runtime
(more on that later) and Microsoft .NET Framework components that are
necessary to run .NET Framework applications. The redistributable is available as
a stand-alone executable and can be installed manually or as a part of your
there is difference between .NET Framework SDK and .NET redistributable in terms of purpose and tools and documentation supplied. .NET Framework SDK is intended to ‘develop’
applications where as .NET redistributable is intended to ‘run’ .NET applications
Microsoft .NET Compact Framework
.NET compact framework is a sub set of entire .NET framework and is
targeted at mobile devices having some client side resources. It provides
support for managed code and XML Web services. Currently, .NET
Compact Framework is in Beta 1 and is available on devices running the
Windows CE or Windows CE .NET operating systems. However,
Microsoft has promised support for other platforms in the future. As of
now the framework supports Visual Basic.NET and C# as development
languages out of the box. Support for other languages is planned in near
o Microsoft Mobile Internet Toolkit
Microsoft Mobile Internet Toolkit (MMIT) is designed to develop server
side applications for mobile devices such as cell phones, PDAs, and
pagers. It is different than .NET compact Framework in that it is a server
side technology. It is ideal for devices that can not run stand alone
MMIT mainly uses ASP.NET as a technology for delivering markup to a
wide variety of mobile devices. As we know that each mobile device has
its own set of underlying standards and markup. MMIT shields these
details from the developer and allows ‘uniform code’ for any target
device. Based on the capabilities of target device the output is rendered.
Easy development of web applications
ASP.NET is a technology available on .NET platform for developing dynamic
and data driven web applications. ASP.NET provides an event driven
programming model (similar to Visual Basic 6 that simplify development of web
pages (now called as web forms) with complex user interface. ASP.NET server
controls provide advanced user interface elements (like calendar and grids) that
save lot of coding from programmer’s side.
Currently four languages are available right out of the box
namely – Visual Basic.NET, C# (pronounced as C-sharp), Jscript.NET and
Managed C++ (a dialect of Visual C++).
Memory leaks were major reason in failure of
applications. .NET takes this worry away from developer by handling memory on
its own. The garbage collector takes care of freeing unused objects at appropriate
No more DLL Hell
If you have worked with COM components, you probably are aware of “DLL
hell”. DLL conflicts are a common fact in COM world. The main reason behind
this was the philosophy of COM – “one version of component across machine”.
Also, COM components require registration in the system registry. .NET ends this
DLL hell by allowing applications to use their own copy of dependent DLLs.
Also, .NET components do not require any kind of registration in system registry.
The .NET Framework provides a run-time environment called the Common Language
Runtime, which manages the execution of code and provides services that make the
development process easier. Compilers and tools expose the runtime’s functionality
and enable you to write code that benefits from this managed execution
environment. Code developed with a language compiler that targets the runtime is
called managed code.
A class may also have a representation (metaobject) at runtime, which provides runtime support for manipulating the class-related metadata. In object-oriented design
Compatibility with COM and COM+
Before the introduction of .NET, COM was the de-facto standard for
componentized software development. Companies have invested lot of money and
efforts in developing COM components and controls. The good news is – you can
still use COM components and ActiveX controls under .NET. This allows you to
use your existing investment in .NET applications. .NET still relies on COM+ for
features like transaction management and object pooling. In fact it provides
enhanced declarative support for configuring COM+ application right from your
source code. Your COM+ knowledge still remains as a valuable asset.
XML Web services
Microsoft SQL Server
Desktop Engine (MSDE