CH 1
CH 1
1
Contents to be discussed
1. Rapid Application Development
2. Introduction to C# Programming
3. .NET Framework
2
1. Rapid Application Development
• It is a methodology that enables organizations to develop strategically
important systems faster while reducing development costs and maintaining
quality.
• RAD is a process through which the development cycle of an application is
expedited.
• It enables quality products to be developed faster, saving valuable resources.
• The magnitude of such savings is truly RAD!
• It prioritizes rapid prototyping and quick feedback over long drawn out
development and testing cycles.
3
Why RAD?
Makes new ways of operation possible.
The most revolutionary and successful change in IT business
practices today is Rapid Application Development.
Development is a more capable process, as it is much faster and less
error prone than hand coding(Hard Coding)
4
The key benefits and advantages of RAD are:
Enhanced flexibility and adaptability as developers can make adjustments
quickly during the development process.
Quick iterations that reduce development time and speed up delivery.
Encouragement of code reuse, which means less manual coding, less room for
errors, and shorter testing times.
Increased customer satisfaction due to high-level collaboration and
coordination between stakeholders (developers, clients, and end users).
Fewer surprises as, unlike the Waterfall method, RAD includes integrations
early on in the software development process.
5
Advantages and disadvantages of RAD
Advantages of RAD Disadvantages of RAD
Requirements can be changed at any time Needs strong team collaboration
Encourages and priorities customer feedback Cannot work with large teams
Reviews are quick Needs highly skilled developers
Development time is drastically reduced Needs user requirement throughout the life
cycle of the product
More productivity with fewer people Only suitable for projects which have a small
development time
Time between prototypes and iterations is More complex to manage when compared to
short other models
Integration isn’t a problem, since it Only systems which can be modularised can
integrates from project inception be developed using Rapid application
development.
6
RAD Tools
Advantage of these:
1. Zoho Creator Easy drag and drop(very simple ,easy and clear to use) vs sit-
2. Kissflow and-code
3. OutSystems Can be customized as you want
4. Bizagi Inexperienced users can use prebuilt in apps
Can easily create your own processes models
5. Appian Cross platform tools
Easy integration with other third-party tools
Quick and easy development
7
2. Introduction to C# Programming
C# is a multi-paradigm programming language which is based on
object-oriented and component-oriented programming disciplines.
It provides a framework for free intermixing constructs from
different paradigms.
C# was developed by Microsoft with Anders Hejlsberg as the
principal designer and lead architect, within its .NET initiative and
it made its appearance in 2000.
Anders Hejlsberg and his team wanted to build a new programming
language that would help to write class libraries in a .NET
framework. He claimed that C# was much closer to C++ in its
design.
8
Continued …
It is a type of event driven programing language:-
Event driven is a programming paradigm in which the flow of the
program is determined by events such as user actions (mouse clicks,
key presses), sensor outputs, or message passing from other
programs or threads. ===>Visual Basic, Visual C++ and Java are
examples of such languages.
9
Cont.
Design Goals
C# was intended to be a simple, modern, object-oriented language.
The language and implementation had to provide support for software
engineering principles like:
strong type checking,
array bounds checking and
automatic garbage collection.
11
Cont.
C#, like C++, but unlike Java, supports operator overloading.
Managed memory is automatically garbage collected.
Garbage collection addresses the problem of memory leaks by freeing the programmer of
responsibility for releasing memory that is no longer needed.
12
Cont.
Multiple inheritance is not supported, although a class can implement any
number of interfaces. This was a design decision to avoid complication and
simplify architectural requirements throughout CLI.
Unlike Java, C# does not have checked exceptions. This has been a
conscious decision based on the issues of scalability and version ability.
C# supports a strict Boolean data type, bool. Statements that take conditions,
such as while and if, require an expression of a type that implements the true
operator, such as the Boolean type.
13
Recap:
C# under CLR .NET Framework provides the following:
It converts the program into native code.
Handles Exceptions
Provides type-safety
Memory management
Provides security
Improved performance
Language independent
Platform independent
Garbage collection
Provides language features such as inheritance, interfaces,
and overloading for object-oriented programming
14
3. .NET Framework
.NET Framework is a software platform for building systems on the Windows
family of operating systems, as well as on numerous non-Microsoft operating
systems such as Mac OS X and various Unix/Linux distributions
It is a complete environment that allows developers to develop, run, and
deploy the following applications:
Console applications
Windows Forms applications
Windows Presentation Foundation (WPF) applications
Web applications (ASP.NET applications)
Web services and Windows services
Service-oriented applications using Windows Communication Foundation (WCF)
Workflow-enabled applications using Windows Workflow Foundation (WF)
15
Cont.
.NET Framework enables a developer to create sharable components to be used
in distributed computing architecture
. NET Framework supports the object-oriented programming model for multiple
languages, such as Visual Basic, Visual C#, and Visual C++.
.NET Framework supports multiple programming languages in a manner that
allows language interoperability.
16
Core features of .NET
Interoperability with existing code: Existing COM can commingle (i.e., interop)
with newer .NET software and vice versa. As of .NET 4.0 onward, interoperability
has been further simplified with the addition of the dynamic keyword.
Support for numerous programming languages: .NET applications can be
created using any number of programming languages (C#, Visual Basic, F#, etc.
A common runtime engine shared by all .NET-aware languages: One aspect of this
engine is a well-defined set of types that each .NET-aware language understands.
N.B: COM (which stands for the Component Object Model) allowed individuals to build libraries of
code that could be shared across diverse programming languages binaries
17
Core features of .NET…
Language integration: .NET supports cross-language inheritance, cross-
language exception handling, and cross-language debugging of code. For
example, you can define a base class in C#, and extend this type in Visual Basic.
A comprehensive base class library: This library provides shelter from the
complexities of low-level API calls and offers a consistent object model used by
all .NET-aware languages.
A simplified deployment model: Unlike COM, .NET libraries are not
registered into the system registry. Furthermore, the .NET platform allows
multiple versions of the same *.dll to exist in harmony on a single machine.
18
Visual studio .NET framework provides the following sample packages
19
Main components of .NET Framework
.NET Framework provides enormous advantages to software developers in
comparison to the advantages provided by other platforms. [Slide no19]
Microsoft has united various modern as well as existing technologies of
software development in .NET Framework.
These technologies are used by developers to develop highly efficient
applications for modern as well as future business needs.
20
Main components of .NET Framework…
The following are the key components of .NET Framework:
NET Framework Class Library
.
22
Common Language Specification (CLS)
CLS is a set of basic language features that .Net needed to develop Applications
and Services , which are compatible with the .Net Framework.
When there is a situation to communicate Objects written in different .Net
Complaint languages , those objects must expose the features that are common
to all the languages .
It ensures complete interoperability among applications, regardless of the
language used to create the application.
It also defines a subset of Common Type System (CTS) .
23
Common Type System (CTS)
CTS describes a set of types that can be used in different .Net languages in
common .
That is , the CTS ensure that objects written in different .Net languages can
interact with each other.
For Communicating between programs written in any .NET complaint language,
the types have to be compatible on the basic level .
It provides base set of Data Types which is responsible for cross language
integration.
The Common Language Runtime (CLR) can load and execute the source code
written in any .Net language, only if the type is described in the CTS. 24
Roles of CLR in .NET Framework.
CLR (Common Language Runtime) provides an environment to execute .NET
applications on target machines.
CLR is also a common runtime environment for all .NET code irrespective of
their programming language, as the compilers of respective language in .NET
Framework convert every source code into a common language known as MSIL
or IL (Intermediate Language).
CLR also provides various services to execute processes, such as memory management service
and security services.
CLR performs various tasks to manage the execution process of .NET applications.
25
Roles of CLR in .NET Framework…
The responsibilities of CLR are listed as follows:
26
Microsoft Intermediate Language (MSIL)
The .NET Framework is shipped with compilers of all .NET programming
languages to develop programs.
There are separate compilers for the Visual Basic, C#, and Visual C++
programming languages in .NET Framework.
Each .NET compiler produces an intermediate code after compiling the source
code.
The intermediate code is common for all languages and is understandable only
to .NET environment.
This intermediate code is known as MSIL.
27
Intermediate Language (IL)
Intermediate Language is also known as MSIL (Microsoft Intermediate
Language) or CIL (Common Intermediate Language).
All .NET source code is compiled to IL.
IL is then converted to machine code at the point where the software is installed,
or at run-time by a Just-In-Time (JIT) compiler.
28
Role of the JIT compiler in .NET Framework
The JIT compiler is an important element of CLR, which loads MSIL on target
machines for execution.
The MSIL is stored in .NET assemblies after the developer has compiled the code
written in any .NET-compliant programming language, such as Visual Basic and
C#.
JIT compiler translates the MSIL code of an assembly and uses the CPU
architecture of the target machine to execute a .NET application.
29
Role of the JIT compiler in .NET Framework
It also stores the resulting native code so that it is accessible for subsequent calls.
If a code executing on a target machine calls a non-native method, the JIT
compiler converts the MSIL of that method into native code.
JIT compiler also enforces type-safety in runtime environment of .NET
Framework.
It checks for the values that are passed to parameters of any method.
For example, the JIT compiler detects any event, if a user tries to assign a 32-bit
value to a parameter that can only accept 8-bit value.
30
Managed and Unmanaged code
Managed code is the code that is executed directly by the CLR instead of the
operating system. [written in VB,C#,Java]
The code compiler first compiles the managed code to intermediate language (IL)
code, also called as MSIL code.
This code doesn't depend on machine configurations and can be executed on
different machines.
Unmanaged code is the code that is executed directly by the operating system
outside the CLR environment.[written C,C++]
It is directly compiled to native machine code which depends on the machine
configuration.
In the managed code, since the execution of the code is governed by CLR, the
runtime provides different services, such as garbage collection, type checking,
exception handling, and security support
31
Execution process for managed code
A piece of managed code is executed as follows:
Choosing a language compiler
Compiling the code to MSIL
Compiling MSIL to native code
Executing the code.
Reading Assignment
Read and understand the following concepts from the reference book.
Introduction to Microsoft Visual Studio 2010
SDI and MDI Forms==>===>you will learn in windows form applications
Controls 32