Introduction to .NET Mobile Application

Today, It is many tools available on the market for creating application for mobile phones and portable devices.
The Microsoft introduced mobile technology for creating asp.net mobile application. Window mobile is a compact operating system for mobile devices and including Pocket PCs, Smart phones and Portal Media Centers. We can able to develop mobile based application on the Visual Studio 2003, 2005, 2008 to integrated .NET Compact Framework. It is possible to develop impressive mobile window form based and web based application. 
.Net Mobile is a set of server-side forms controls to build application for wireless mobile devices. These controls produce different output for different devices by generating WML, HTML or Compact HTML.


What is WML?
WML(Wireless Markup Language ) is a markup language based on XML and is intended use specific devices that implement the wireless application protocol.


WML Example
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
   "http://www.wapforum.org/DTD/wml_1.1.xml" >
<wml>
  <card id="main" title="First Card">
    <p mode="wrap">This is a sample WML page.</p>
  </card>
</wml>  

How to Create a Read-Only Property in C# & VB.NET



Read-only property in VB.NET:


Public ReadOnly Property PropertyName As ReturnType
Get ‘Your Property Implementation goes in here
End Get
End Property


Read-only property in C#:


public returntype PropertyName
{
get{
//property implementation goes here
}
// Do not write the set implementation
}



Microsoft .NET Certification Details - MCSD



MCSD - Microsoft Certified Solution Developer


This certification for two plus years of experience software developing and maintaining in application in the IT Industry


You have to got this certification of Microsoft. You must complete five module following list:
  • Web Application development module
  • Windows Application development module
  • Web services and server components module
  • Solution Architecture module
  • Elective module
Web Application development Module

Two Choice: (any one)

Exam 70-305 Design & Implement Web application using VB.NET
Exam 70-315 Design & Implement Web application using C#.NET

Window Application development Module


Two Choice: (any one)


Exam 70-306 Design & Implement Windows based application using VB.NET
Exam 70-316 Design & Implement Windows based application using C#.NET


Web Services and Server Components Module


Two Choice: (any one)



Exam 70-310 Web Services and Server Components using VB.NET
Exam 70-320 Web Services and Server Components  using C#.NET

Solution Architecture Module

Exam 70-300 Analyzing Requirements and Solution Architectures

Elective Module


Any One Choice:


Exam 70-229 Design & Implementing Database with SQL Server 2000


Exam 70-230 Design & Implementing Solutions with Biz-talk Server 2000


Exam 70-234 Design & Implementing Solutions with Commerce Server 2000


Exam 70-330 Implementing Security for application using VB.NET


Exam 70-340 Implementing Security for application using C#.NET



How to Install IIS on Windows XP

GoTo -> Click Start Button -> Settings ->Click Control Panel
Double Click Add or Remove Programs
This will be opened “Add or Remove Programs” window
Click Add / Remove Windows Components

This will be opened “Windows Componets Wizard”
Select Check Box for Internet Information Services (IIS)
Click Next Button.  Configuring components for IIS setup copying files from the CD.
After Completing the Windows Components Wizard. Click Finish Button 

ASP.NET Features Review

Introducing ASP.NET


Create dynamic web pages by using server side scripting like ASP (Active Server Page). It has introduced by Microsoft Corporation


ASP.NET is more than the next version of Active Server Page (ASP). ASP.NET is a standard html file that contains embedded server side scripts.


You able to access information from data sources, such as back-end database and text files that are stored on a web server or a computer that is accessible to web server.


You able to use a set of programming code called templates to create an html documents. It is an advantage of using template is that you can dynamically insert content retrieved from data sources, such as back-end database and text files, into an html document before the html documents is displayed to the users.


Features of ASP.NET 1.0 Version


It is an entirely new more modern web development model and each web application consists of web pages.


It is completely object-oriented programming model, which includes event-driven, control-based architectures that encourages code encapsulation and reuse.


It is support code behind .Net languages like Visual Basic, C#, J#, and many other languages that have third party compilers


It is also a platform for building web services, which are reusable business code that other applications can call across platform and computer boundaries.


You can use a web service to do everything from web-enabling desktop application to share data with a Java client running on UNIX System.


In ADO.NET, a fine tuned data access model and flexible data caching to further boost performance


The other features which include enhanced State Management, Practical Data binding, dynamic graphics, and a robust security model


New Features in ASP.NET 2.0 Version


ASP.NET 2.0 is not just about adding new features. It also streamlines performance and simplifies configuration with a new tool called WAT (Website Administration Tool).


ASP.NET is a programming framework built on the common language runtime that can be used on a server to build powerful web application. The first version of ASP.NET offered several important advantages over previous web development models.


ASP.NET 2.0 improves upon the foundation by adding support for several new and exciting features in the areas of development productivity, administration and management, extensibility, and performance.


How to easily build development productivity of new feature controls


New Server Controls
Data Controls
Navigation Controls
Login Controls
Web Part Controls
Master Pages
Themes and Skins
Personalization
Localization


How to monitor Administration and Management


Configuration API
ASP.NET MMC Admin Tool
Pre-compilation Tool
Health Monitoring and Tracing


How to build customize control and flexible extensibility


Provider-driven Application Services
Server Control Extensibility
Data Source Controls
Compilation Build Providers
Expression Builders


How to build performance and scalability


64-Bit Support
Caching Improvements

Essential documentation in projects

Essential documentation in projects

In the previous article we discussed the various SDLC life cycle models. For every stage in the model we have documents created according to phases such as

Requirement stage:

-          Use case document

Design stage:

-          Technical document

Build stage:

-          Source code

Test stage:

-          Test result document

Deliver stage:

-          Sign off document
There are different documentation for every project and these documents change from company to company and project to project.
For example,
              Some company will have 3 documents and some will have 12 documents in a project depending upon project manager or the policy of the company to execute a project

          Requirement document
          Estimation document
          Use case document
          Technical document
          Test plan document
          Source code

Requirement document:

          A requirement document can be a single english document, probably a recorded audio or video conversation or can be a complicated use case.

Estimation document:

          After getting requirement from the user we can judge cost for the project.

Use case document:

          This is a section of UML which basically desribes in detail the requirement document which serves as an input to the Design stage

Technical document:

          This document contains detail of how the project being executed such as pseudo code, class diagram, objects diagram, etc.

Test result document:

          This document is written by the testers which describe the test plan which needs to be executed and thus giving project a green flag to production.

Source code:

          This is not basically a document but one of the important deliverable which maps to the execution phase of SDLC cycle.

The Growth of software professional

 The Growth of software professional

If you are self taught programmer or working in a company which is not process oriented the title of this section can sound a bit bureaucratic to you. A good software product other than source code has proper documentation and process at place.

Every young developer in his initial part of the software career is hot blooded and full of enthusiasm.
The only goal he has in his mind is to complete the project. For these kind of young developers source code is the most important section in the complete project.

As time passes by and the young developer starts gaining experience depending on the type of the company and his number of year of exp his view point changes.

As to developer becomes senior source code becomes an insignificant entity and documentation form the most important part of the project from his perspective.

Maturity level of Software Professional

Level: (0-2 yrs)

                Developers having experience in this range give importance to source code.
They take pride and enjoyment to write cryptic and heroic logic. Developers falling in the category think documentation as bureaucratic. If not controlled properly they rarely will think to even comment codes. But yes software professionals in this level range have great technical enthusiasm. They love to get involved technically.

Level: (3-5 yrs)

                Software professional in this category have lot of maturity in technical section. They take pride in architecture work of the project. In fact many of the developers would like to see themselves as architecture in the coming times. That’s a different thing as they get to more senior position they want to see themselves as project managers rather than in to technical. Software professional in the level think source code with proper comments and technical documentation as the most important deliverable. They have less focus on project planning, estimation and testing.

Level: (6-8 yrs)

                Software professional in this level give importance to technical documentation, estimation and source code. But they are bit soft when it comes to project planning and testing.

Level: (9 above yrs)

                This is the time he becomes a complete senior. 
o   Source code deliverable
o   Planning
o   Monitoring
o   People issues
o   Escalation and Estimation

He starts following processes like CMMI and SIX SIGMA religiously 

http://santha-learntechnicalknowledge.blogspot.com/















http://santha-learntechnicalknowledge.blogspot.com/


Above figure shows how senior and junior view project deliverables

UML ( Unified Modeling Language)

The Unified Modeling Language is only a language. It is not a way of designing a system, but it is a way to model a system.
The main object of UML is to make the project understanding more crisp and clear. It is a global computer industry modeling language to communicate between software professional in a project.
UML help us to create documents, artifacts and also give visualization so that we can understand the complex software engineering process of a project.

Model Software


The most important reason we model software is to achieve a high level of quality from our finished product.

Three steps to creating a quality system
  •  Analysis
  •  Design
  •  Implementation
I like to think that a successul project is the result of a lot of analysis, less design, and even less implementation, becasues it is true that if you have the exact opposite order, you will have a complete nightmare on your hands. A lot of implementation with little design and even less analysis usually results in a product that is first riddled with bugs, and then doesn’t have the functionality that users require.

You can create six possible scenarios when developing a system

1.   Your product does what the client expets, it has good design, with a small number of bugs
2.   You do not know what the client expects, the design emphasizes the wrong expectations, and the product is riddled with bugs
3.   You know most of what the client wants, but the desig does not support the need of the analysis and the product is riddled with bugs
4.   You know what the client needs, but your design does not implement it and your implementation is overcompensating to try to fix it
5.   You have no idea what the client wants, the design is overly complicated for the functionality you will provide, and your implementation is trying to overcompensate for the problems
6.   You have a good idea of what the client wants, the design is overly complicated for the needs analyzed, and the implementation is not solid enough

Three views of the project from UML perspective

There are 12 diagrams in UML they are divided into 3 main views as below
  • Structure diagram
  • Behavior diagram
  • Model management diagram
Structure diagram

UML provide four types of structure diagram
1.   Class diagrams
2.   Object diagrams
3.   Component diagrams
4.   Deployment diagrams

Behavior diagram

UML  provide five types of Behavior diagram
1.   Use Case diagrams
2.   Sequence diagrams
3.   Activity diagrams
4.   Collaboration diagrams
5.   State chart diagrams

Model Management diagram

UML provide three types of Model management diagram
1.   Packages
2.   Subsystems
3.   Models

Introduction to Windows Communication Foundation:

Windows Communication Foundation is one of main new technologies that are included in .NET 3.0. Windows Communication Foundation (WCF), formerly code-named Indigo - a service-oriented messaging system which allows programs to interoperate locally or remotely similar to web services.

It is one of the four major application programming interfaces introduced as part of .NET Framework 3.0, which is included with Windows Vista and Windows Server 2008.

The service-oriented programming model of Windows Communication Foundation is built on the Microsoft .NET Framework and simplifies development of connected systems. Windows Communication Foundation unifies a broad array of distributed systems capabilities in a compassable and extensible architecture, spanning transports, security systems, messaging patterns, encodings, network topologies, and hosting models. It is intended to provide the rapid application development methodology to the development of web services, with a single API for inter process communication in a local machine, LAN or over the Internet

Fundamental Concepts:

In Windows Communication Foundation your services can have communication with clients by sending and receiving messages.



Windows Communication Foundation consists of three main concepts:

Services:

Programs that respond to clients. They can send or receive messages.

Clients:

 Programs that ask for a service. They can send or receive messages.

Intermediaries:

Programs that sit between services and clients .They can work as a firewall or can rout messages. In all cases neither services nor clients need to be aware of intermediaries.




WCF Service:

A WCF Service is composed of three parts — a Service class that implements the service to be provided, a host environment to host the service, and one or more  endpoints to which clients will connect. All communications with the WCF service will happen via the endpoints. The endpoints specify a Contract that defines which methods of the Service class will be accessible via the endpoint; each endpoint may expose a different set of methods. The endpoints also define a binding that specifies how a client will communicate with the service and the address where the endpoint is hosted.

WCF provides Windows Activation Services which can be used to host the WCF service. Otherwise the WCF service can also be hosted in IIS or in any process by using the Service Host class, which is provided by WCF. Services can also be self hosted.

Architecture:

Architecture of Windows Communication Foundation consists of five layers. These layers from top to down are:

Application:

In this level application is located.

Contracts:

 In the second layer service, data and message contracts as well as bindings and policies are present. In this level services describe themselves to clients.

Runtime:

 Behaviors are located in this layer. Runtime layer loads all services.

Messaging:

Different types of channels as well as encoders are here. This layer enables communications for services.

Hosting:

This layer is where host services in different manners, but there are two common ways to host a service. One can host a service in Internet Information
Services (IIS) which is easier than the second approach and starts and stops the services automatically. The second approach is to create executable files (.EXE) for services and start and stop them manually by writing more codes.

This layering allows developers to work on Windows Communication Foundation with different skills because each layer needs different skills.



Programming Model:

Windows Communication Foundation has simple and easy to write/understand codes. It has many APIs, but beside this only a small amount of these API's is common.

There are three programming approaches in Windows Communication Foundation:

Imperative:

You use programming codes in different languages to accomplish a task.

Configuration Based:

You use configuration files to do things.

Declarative:

You use attributes to declare something.

In general, you will declare contracts and behaviors using attributes configure endpoints, security and some other settings in configuration files and will implement service methods logic in codes. On the other hand, you can use typed services and un- typed services. In typed services you pass normal objects and data types and/or get normal objects and data types, but in un-typed services you pass and get messages to work directly with messages at a lower level.

Advantages:

Windows Communication Foundation has some important enhancements in comparison with preceding technologies. It merges all older separate technologies in one place and allows us to do things easier.

It has rich communication capabilities.

It comes with many powerful and ready to use enterprise features.

It can be integrated with other technologies and has great interoperability.



More about details to reference: