Tech Insight !

Technical blog on ASP.Net, PHP, Web Development, Web hosting , Database Programming

Utilizing CSS3 features: Creating interactive and optimized HTML form using CSS3 selectors

March 9th, 2010 Posted in CSS 3, HTML, Web Developement Tags: , ,

CSS3 gives a great flexibility to designers to create optimized HTML by utilizing CSS3 features.

CSS3 selectors gives rich amount of DOM element filtering, which will let designers to minimize inline attributes and inline styles in HTML code.

Here I am giving an overview of how to utilize CSS3 to develop an HTML form as shown below.

We will try to optimize HTML as much as possible by giving all styles and attributes through CSS3 in css file itself.

Form Concept:

As shown in below screen, we will be dividing form into 4 pieces,

  1. Header part (<th> )
  2. Left side labels (<td>)
  3. Right side textbox area (<td> & <input type=”text” /> )
  4. Bottom Buttons ( <input type=”submit”/> )

Generating Simple HTML form:

As shown in below HTML, we will not give any attributes to TABLE or TD.

Just a simple Table with only one class which is assigned to TABLE, like class=”tblform”. Very neat HTML without any kind of attributes assigned.

HTML file code

<table class=”tblform”>

<tr>

<th colspan=”2″>Please enter your details below.</th>

</tr>

<tr>

<td>Name</td>

<td><input type=”text” />

</td>

</tr>

<tr>

<td>Email</td>

<td><input type=”text” />

</td>

</tr>

<tr>

<td>Mobile</td>

<td><input type=”text” />

</td>

</tr>

<tr>

<td>

</td>

<td><input type=”submit” value=”Submit” /><input type=”submit” value=”Cancel” />

</td>

</tr>

</table>

Developing CSS file:

Once we got the above HTML ready, our all focus will be now on CSS to make it look like as shown in above screen shot,

In HTML there is only 1 CSS class assigned to TABLE which is tblform.

Further will be doing all stuffs in the CSS as given below,

CSS file code

.tblform{

border-collapse: collapse;

width: 100%;

font-family: Calibri;

font-size: 11pt;

}

.tblform td{

padding: 5px;

border: solid 1px #E1E1E1;

}

.tblform th{

padding: 5px;

border: solid 1px #E1E1E1;

font-weight: normal;

text-align: left;

background-color: #E1E1E1;

font-weight: bold;

}

.tblform td input[type=text]

{

border: 1px solid #CCCCCC;

width: 180px;

height: 20px;

padding-left: 5px;

}

.tblform td:first-child

{

padding: 5px;

border: solid 1px #E1E1E1;

background-color: #F2F2F2;

}

.tblform td input[type=submit], .tblform td input[type=submit]:hover

{

background-image: url(button-bg.gif);

background-repeat: repeat-x;

line-height: 22px;

height: 25px;

font-family: Verdana, Arial,Helvetica, sans-serif;

font-weight: bold;

font-size: 11px;

color: #333333;

padding: 0px 10px 0px 10px;

border: 1px solid #999999;

cursor: pointer !important;

}

That’s it, it will result in a nice form with all CSS applied and HTML will remain neat as it is.

NOTE :

If you are in need of any Web Development feel free to Inquire us . Dhanashree Inc. Expertise in Asp.net Development, Php Development, Website designing, Open Source customisation. Dhanashree Inc can be our offshore development company / outsourcing web development company, hire dedicated web programmers.

Above information is for knowledge sharing if you have problem / issue / suggestion please intimate us with details for proper and prompt action.

How to make SQL Server 2005 database empty using cursor & sys.objects (Delete All Tables, stored procedures, views & UDF’s)

February 24th, 2010 Posted in SQL server 2005 Tags: , ,

Understanding sys.objects:

Sys.objects is a system VIEW in SQL Server 2005, for each SQL database there is a separate sys.object view which gets stored within databse itself.

Using Sys.objects returns list of all database objects and its types, type can be either of given below:

DB OBJECT TYPES

F     FOREIGN_KEY_CONSTRAINT

IT    INTERNAL_TABLE

PK    PRIMARY_KEY_CONSTRAINT

S     SYSTEM_TABLE

SQ    SERVICE_QUEUE

U     USER_TABLE

V     VIEW

How to DELETE all User Tables , stored procedures , UDF’s and Views using cursor

Use [database name]

declare @q as
nvarchar(max)

declare @name nvarchar(max);

declare @type nvarchar(max);

declare cur cursor
for select name ,type from sys.objects where type in(‘p’,‘fn’,‘v’,‘u’);

open cur;

fetch next from cur into @name,@type

while @@fetch_status = 0

begin

if(@type=‘p’)

begin

set @q=N‘drop procedure ‘ + @name;

end

if(@type=‘fn’)

begin

set @q=N‘drop function ‘ + @name;

end

if(@type=‘v’)

begin

set @q=N‘drop view ‘ + @name;

end

if(@type=‘u’)

begin

set @q=N‘drop table ‘ + @name;

end

exec sp_executesql @q;

fetch next from cur into @name,@type

end

close cur;

deallocate cur;

NOTE :

If you are in need of any Web Development feel free to Inquire us . Dhanashree Inc. Expertise in Asp.net Development, Php Development, Website designing, Open Source customisation. Dhanashree Inc can be our offshore development company / outsourcing web development company, hire dedicated web programmers.

Above information is for knowledge sharing if you have problem / issue / suggestion please intimate us with details for proper and prompt action.

How to take Outlook 2007 data file backup

February 20th, 2010 Posted in General, Outlook 2007, Tools & Technology Tags: ,

Step 1:

Open outlook 2007, Go to menu and chose…

Tools > account settings > data files

You will find the screen like shown below:


Now select the 1from the listing which shows default (your active email account data file). As I have marked as round in above screen.

After selecting the file from list, now click on the “Open folder” as shown in above screen.

Step 2:

Clicking on Open folder will take you to the folder where your outlook data file is located,

And you will find that file selected in the folder,


Now all you have to do is just Copy the data file from this folder and save wherever you want to keep as backup.

NOTE :

If you are in need of any Web Development feel free to Inquire us . Dhanashree Inc. Expertise in Asp.net Development, Php Development, Website designing, Open Source customisation. Dhanashree Inc can be our offshore development company / outsourcing web development company, hire dedicated web programmers.

Above information is for knowledge sharing if you have problem / issue / suggestion please intimate us with details for proper and prompt action.

Quick DBMS reference: Single line definitions of important SQL Server terms

February 6th, 2010 Posted in Database, General, SQL server 2005 Tags: ,

Normalization: is a process of organizing data and minimizing redundancy

De-normalization: is a technique to move from higher to lower normal forms of database modeling in order to speed up database access.

Stored Procedure: is a named group of T-SQL statements which can be created and stored in Database as an object.

Primary Key: is a unique identifier of a row in a DB table, [it can’t be NULL]

Unique key: forces uniqueness to a respective table column, [it can be NULL]

Foreign Key: a foreign key in 1 table refers to the primary key in other table, Used to force referential integrity.

Inner join: exists in both tables

Left Outer join: all records from left side table + matched rows from right side table (totals number of rows will be same as left table)

Right Outer join: all records from right side table + matched rows from left side table (totals number of rows will be same as right table), it’s a mirror image of left outer join

Full Outer join: all records from left side table + all records from right side table, weather matched or not

Cross join: returns [left table rows * right table rows], a Cartesian product of both tables

Self join: when table joins to itself using diff aliases to avoid confusion

Union: selects only distinct records from both tables

Union all: selects all records from both tables

View: is a subset of a table, can be used to retrieve data, insert or Update data. Can contain multiple select statements inside

Trigger: A trigger is a SQL procedure that initiates an action when an event (INSERT, DELETE or UPDATE) occurs.

Cursor: is a database object used to loop trough records on row by row bases.

Index: pointers to data records, represents structure of how data get stored physically in a table

Clustered index Non clustered index
Reorders physical data stored in table It contains pointers to data rows
A table can have Only 1 clustered index A table can have one OR many  non-clustered index
Leaf nodes contains data Leaf nodes contains reference to data

Linked server: is a concept of adding other remote server to a group to query DB’s of both servers together

Collation: set of rules that determines how data stores & compares in database

Collation types: case sensitive, accent sensitive, kana sensitive, width sensitive

Data ware housing:

  1. Record should Never delete from DB
  2. All records must be linked
  3. Once committed records should be read-only
  4. All changes made must be tracked with time

User defined function (UDF): is a bunch of T-SQL statements which accepts 0 or more parameters and returns a scalar data value or table.

DDL: data definition language – e.g. TRUNCATE command is a DDL command

DML: data manipulation language – e.g. INSERT, UPDATE & DELETE are DML commands

NOTE :

If you are in need of any Web Development feel free to Inquire us . Dhanashree Inc. Expertise in Asp.net Development, Php Development, Website designing, Open Source customisation. Dhanashree Inc can be our offshore development company / outsourcing web development company, hire dedicated web programmers.

Above information is for knowledge sharing if you have problem / issue / suggestion please intimate us with details for proper and prompt action.

Understanding asp.net MVC (Model View Controller) architecture

This article is intended to provide basic concept and fundamentals of asp.net MVC (Model View Controller) architecture workflow for beginners.

Introduction:

“M” “V” “C” stands for “MODEL” “VIEW” “CONTROLLER” , asp.net MVC is an architecture to develop asp.net web applications in a different manner than the traditional asp.net web development , web applications developed with asp.net MVC is even more SEO (Search Engine Friendly ) friendly.

Developing asp.net MVC application requires Microsoft .net framework 3.5 or higher.

MVC interaction with browser:

Like a normal web server interaction, MVC application also accept request and respond web browser same way.

Inside MVC architecture:

Whole asp.net MVC architecture is based on Microsoft .net framework 3.5 and in addition uses LINQ to SQL Server.

What is a Model?

  1. MVC model is basically a C# or VB.net class
  2. A model is accessible by both controller and view
  3. A model can be used to pass data from Controller to view.
  4. A view can use model to display data in page.

What is a View?

  1. View is an ASPX page without having a code behind file
  2. All page specific HTML generation and formatting can be done inside view
  3. One can use Inline code (server tags ) to develop dynamic pages
  4. A request to view (ASPX page) can be made only from a controller’s action method

What is a Controller?

  1. Controller is basically a C# or VB.net class which inherits system.mvc.controller
  2. Controller is a heart of whole MVC architecture
  3. Inside Controller’s class action methods can be implemented which is responsible for responding to browser OR calling view’s.
  4. Controller can access and use model class to pass data to view’s
  5. Controller uses ViewData to pass any data to view

MVC file structure & file naming standards

MVC uses a standard directory structure and file naming standards which is very important part of MVC application development.

Inside the ROOT directory of the application there must be 3 directories each for model, view and Controller.

Apart from 3 directories there must have a Global.asax file in root folder. And a web.config like a traditional asp.net application.

  • Root [directory]
    • Controller [directory]
      • Controller CS files
    • Models [directory]
      • Model CS files
    • Views [directory]
      • View CS files
    • Global.asax
    • Web.config

Asp.net MVC Execution life cycle

Here is how MVC architecture executes the requests to browser and objects interactions with each other.

A step by step process is explained below: [Refer figure as given below]

Step 1:
Browser request

Browser request happens with a specific URL. Let’s assume that user entering URL like: [xyz.com]/home/index/

Step 2: Job of Global.asax – MVC routing

The specified URL will first get parsed via application_start() method inside Global.asax file. From the requested URL it will parse the Controller, Action and ID.

So for [xyz.com]/home/index/:

Controller = home

Action = index()

ID = empty — we have not specified ID in [xyz.com]/home/index/, so it will consider as empty string

Step 3: Controller and Action methods

MVC now find the home controller class in controller directory. A controller class contains different action methods,

There can be more than one action method, but MVC will only invokes the action method which is been parsed from the URL, its index() in our case.

So something like: homeController.index() will happen inside MVC controller class.

Invoking action method can return plain text string OR rendered HTML by using view.

Step 4: Call to View (ASPX page)

Invoking view will return view() . a call to view will access the particular ASPX page inside the view directory and generate the rendered HTML from the ASPX and will respond back to the browser.

In our case controller was home and action was index(). So calling view() will return a rendered HTML from the ASPX page located at /views/home/index.aspx.

This is it, the whole process ends here. So this is how MVC architecture works.

NOTE :

If you are in need of any Web Development feel free to Inquire us . Dhanashree Inc. Expertise in Asp.net Development, Php Development, Website designing, Open Source customisation. Dhanashree Inc can be our offshore development company / outsourcing web development company, hire dedicated web programmers.

Above information is for knowledge sharing if you have problem / issue / suggestion please intimate us with details for proper and prompt action.

Dot Net framework 3.5, C#, VB.Net Language Improvements: Automatic Properties, Object initializers, Collection Initializers, Lambda expression, Anonymous type

The new .net 3.5 has significant improved features. This feature makes the .net programming concept more sophisticated. You will now be able to write less code and build more dynamic application using those.

From all of them what the most I like is the LINQ, which allow you to query over variety of objects.

LINQ is all about queries, they returns a set of matching objects, a single object, or a subset of fields from an object or set of objects. In LINQ, this returned set of objects is called a sequence.

Basically LINQ comes in variety of flavors’ like following:

  • LINQ to Objects
  • LINQ to XML
  • LINQ to Dataset
  • LINQ to SQL
  • LINQ to Entities

Well there is a detailed discussion on LINQ further in this article. Let me first make you guys introduce to the language improvements in .net 3.5. In fact I believe that these new improvements are essential to learn before we actually get dig into the LINQ J.

To summarize quickly, here are the list of new language feature that are shipped with .Net 3.5.

  • Automatic properties
  • Object initializers, Collection initializers
  • Anonymous types
  • Extension methods
  • Query Expression

Well if you are the C# developer, I believe you will really love to have such significant improvement. Because these features puts extra wing on your programming skill.

The important is not that you learn the latest technology of .Net 3.5 like WCF, WPF, Silverlight etc. These are the core part of basic programming. Its like you should be knowing the if syntax of C programming language before you actually write your first “Hello word” program J

So let’s go through each of them step by step and try to understand what they are and how it can help the developer to create rich internet/desktop application.

  • Automatic Property

Before I explain you the concept of “automatic property in .net 3.5, can you guys first please try to go through the following code?

public class MShoppingCart

{

private int _cartId;

public int CartId

{

get { return _cartId; }

set { _cartId = value; }

}

private int _customerid;

public int Customerid

{

get { return _customerid; }

set { _customerid = value; }

}

private int _billingaddressid;

public int Billingaddressid

{

get { return _billingaddressid; }

set { _billingaddressid = value; }

}

private int _shippingaddressid;

public int Shippingaddressid

{

get { return _shippingaddressid; }

set { _shippingaddressid = value; }

}

private MShippingCartItem _cartitem;

public MShippingCartItem Cartitem

{

get { return _cartitem; }

set { _cartitem = value; }

}

}

Most of the time we are used to write such model classes. This are the most basic and popular mechanism in returning a wrapper classes. The basic purpose of writing such getter/setter property is to hide the actual private member of our classes. It has been the standard pattern to access the private method of any classes. Well you may arise with a question that why do we actually need to write such getter/setter properties. Can’t we simply expose the private member? Well the answer is YES, but I would request you to remember the fundamental of object oriented programming. J

Anyway there are basically two reason of not doing so. Following are this:

  1. You won’t be easily able to bind those private variable to controls
  2. You will not be able to modify them into property later on.

The first point is quite understandable, what do you mean by the second one? Well, say for e.g. if you need to add any business logic or validation logic when assigning value to any private variable then? You will not be able to do that.

So what if we need not to write even the private variables? Exited, yes the new version of .Net 3.5 allows you have such facility. The concept is called automatic property. All you have to do is to write the getter/setter property. You need not to worry about the private member of that property. The compiler will decide and prepare base private member for you on the fly.

See the example in the following.

public class MShoppingCart

{

public int CartId

{

get;

set;

}

public int Customerid

{

get;

set;

}

public int Billingaddressid

{

get;

set;

}

public int Shippingaddressid

{

get;

set;

}

private MShippingCartItem _cartitem;

public MShippingCartItem Cartitem

{

get;

set;

}

}

Now it this case when the compiler will encounter this properties while compiling your code, it will automatically expose the private variable for each of property with its associated type. For e.g. compiler automatically assume and expose the _cartid private variable of integer type. Using advantage of this is we need not to worry about the underlying private variable. In future we can add any sort of validation logic in this property.

  • Object initialization, collection initialization

I would like to explain this concept by taking the example of automatic property so that I maintain the continuity for you to understand. Say for e.g. when we want to use the “shopping cart” class that we created earlier. What we do is write following code.

MShoppingCart cart = new MShoppingCart();

cart.CartId = 1;

cart.Customerid = 1001111;

cart.Shippingaddressid = 2333;

cart.Billingaddressid = 2232;

With the feature supported by the .net framework 3.5, you can take advantage of what is called “syntactic sugar”, and that is object initializers.

Using object initializers, you can write the same code given above, in following way.

MShoppingCart cart = new MShoppingCart {CartId =1, Customerid=1001111, Billingaddressid=2232, Shippingaddressid =23333  };

So it allows you to pass the value of all property at the time of initializing the object.

In fact it not only allow to initialize object’s property in this way, you can also have nested initialization of object within any object.

To demonstrate you, see the following example.

MShoppingCart cart = new MShoppingCart { CartId = 1, Customerid = 1001111, Billingaddressid = 2232, Shippingaddressid = 23333, Cartitem = new MShippingCartItem { } };

If you see in the highlighted (underlined) part of above code, you can clearly see that the child object can also be initialized in the same way.

As if the new object initialization enhancements were not enough, someone at Microsoft must have said, “What about collections?” Collection initialization allows you to specify the initialization values for a collection, just like you would do for an object, as long as the collection implements the

System.Collections.Generic.ICollection<T> interface.

List<string> presidents = new List<string> { “Name 1″, “Name 2″, “Name 3″ };

foreach (string president in presidents)

{

Console.WriteLine(president);

}

  • Anonymous types

What is anonymous type?

Well, we have been familiar till date with different types. They are either custom classes or any of .net’s build in type. So what is actually the anonymous type is. The answer is that the “Anonymous type” has no type defined to it. It has no type name. Though there should be at least one type name associated in .Net. In anonymous type, the type name is specified by the developer doing the programming. It is the compiler which will identify the type to associate with the declaration of any anonymous type.

There is also another significant different in anonymous type is that it is called immutable. The definition of immutable type is that the one that is declared and initialized once. It can’t be altered later on. So anonymous type has the same characteristic. Once you declared and initialized, you can’t alter the anonymous type afterward.

This is also why anonymous types have been introduced. They allow us to create a type on the fly and therefore return only certain values of a given named type. This is very handy when only a subset of properties is needed, properties are joined together or even objects are joined together.

class Program

{

static void Main(string[] args)

{

// create a list of carts with dummy data.

List<MShoppingCart> carts = new List<MShoppingCart>();

carts.Add(new MShoppingCart { CartId=101, Customerid=1001, Billingaddressid=20, Shippingaddressid =30});

carts.Add(new MShoppingCart { CartId = 102, Customerid = 1002, Billingaddressid = 22, Shippingaddressid = 33 });

carts.Add(new MShoppingCart { CartId=103, Customerid=1003, Billingaddressid=23, Shippingaddressid =34});

// query the cart collection to collect cart with id of 101

var result = from c in carts

where c.CartId >= 101

// put the result in a anonymous type

select new { c.Billingaddressid  };

// loop over the result.

foreach (var item in result)

{

// print out the name of the item.

Console.WriteLine(item.Billingaddressid );

}

}

}

Anonymous type are mostly used when working with the LINQ. It is utilized highly while querying to your data in LINQ. It is irrespective which flavor of LINQ you are using.

Although the anonymous type can be used in your own code also. It is especially useful when we want to combine different variables into one.

Se for e.g. following example:

// create an anonymous type instance with a name.

var anonymousType = new

{

Name = name,

Age = age,

Nationality = nationality

};

// print the name to the console.

Console.WriteLine(anonymousType.Name);

Though the real time use of anonymous type Is when you use it with the LINQ. I need to write a separate article to demonstrate you actual usage LINQ. J

  • Extension methods

An extension method is a static method of a static class that you can call as though it were an instance method of a different class.

To make you understand the extension method, let me first re cape the class level methods (static methods) and instance methods. The primary different between these two is that the instance method can also be access by initializing object of any class. It can’t be invoked by using class name only. The exact opposite of that is class method. You can only call static class method using the name of class only. You can’t access them using the instance of same class.

I am not gonna give you any example for the above explanation as I expect from you guys that you are familiar with the different I explained.

Extension method is a way of extending existing classes for whatever additional functionality. Let me demonstrate you that by example.

namespace ExtensionMethods

{

public static class StringExtensionMethods

{

public static bool IsNumeric(this string str)

{

try

{

int i = int.Parse(str);

return true;

}

catch

{

}

return false;

}

}

}

In the above given example, almost everything seems to be similar what we are used to in normal programming. But, the difference is clearly seen. You should be able to notice that in the “IsNumeric” static method parameter are passed using this keyword. This keyword tells the compiler what you are going to extend for particular given type. So in this example it tells you that it extends the existing string class.

See for e.g. how to use the extension method.

string s = “someValue”;

bool bs = s.IsNumeric();

// bs is false;

string i = “7″;

bool bi = i.IsNumeric();

// bi is true;

  • Query Expression

One of the conveniences that the C# language provides is the foreach statement. When you use foreach, the compiler translates it into a loop with calls to and MoveNext. The simplicity the foreach statement provides for enumerating through arrays and collections has made it very popular and often used.

One of the features of LINQ that seems to attract developers is the SQL-like syntax available for LINQ queries. The first few LINQ examples in the first chapter of this book use this syntax. This syntax is provided via the new C# 3.0 language enhancement known as query expressions. Query expressions allow LINQ queries to be expressed in nearly SQL form. To perform a LINQ query, it is not required to use query expressions. The alternative is to use standard C# dot notation, calling methods on objects and classes.

Although it is occupy a dedicated book for detail understanding of query expression with LINQ. Just to summarize you, here is the example that shows you what actually query expression does.

For e.g.

string[] names = {

“Adams”, “Arthur”, “Buchanan”, “Bush”, “Carter”, “Cleveland”,

“Clinton”, “Coolidge”, “Eisenhower”, “Fillmore”, “Ford”, “Garfield”,

“Grant”, “Harding”, “Harrison”, “Hayes”, “Hoover”, “Jackson”,

“Jefferson”, “Johnson”, “Kennedy”, “Lincoln”, “Madison”, “McKinley”,

“Monroe”, “Nixon”, “Pierce”, “Polk”, “Reagan”, “Roosevelt”, “Taft”,

“Taylor”, “Truman”, “Tyler”, “Van Buren”, “Washington”, “Wilson”};

IEnumerable<string> sequence = from n in names

where n.Length < 6

select n;

foreach (string name in sequence)

{

Console.WriteLine(“{0}”, name);

}

Though query expression can be used by two different way. 1) is using dot notation and 2) is using expression syntax.

Hope I could make you understand what are the new improvements in the newer version of .net 3.5.

Once you are aware and familiar with this feature, you are ready to get dig into dip into the word of .net 3.5 for all new existing experience in developing rich internet/enterprise application.

Best luck

NOTE :

If you are in need of any Web Development feel free to Inquire us . Dhanashree Inc. Expertise in Asp.net Development, Php Development, Website designing, Open Source customisation. Dhanashree Inc can be our offshore development company / outsourcing web development company, hire dedicated web programmers.

Above information is for knowledge sharing if you have problem / issue / suggestion please intimate us with details for proper and prompt action.

Why do we engineer web?

Introduction:

To understand the necessity for web engineering, we must pause briefly to look back at the recent history of computing. This history will help us to understand the problems that started to become obvious in the late sixties and early seventies, and the solutions that have led to the creation of the field of software & web engineering. These problems were referred to by some as “The software Crisis,” so named for the symptoms of the problem. The situation might also been called “The Complexity Barrier,” so named for the primary cause of the problems. Some refer to the software crisis in the past tense. The crisis is far from over, but thanks to the development of many new techniques that are now included under the title of software engineering, we have made and are continuing to make progress.

Although the topic I have written on is about very tiresome, even thought the importance of web/software engineering is very essential in all parts  development life cycle. It’s all about making your development process more sophisticated and well documented.

Let me first of all outline you the agenda which I am going to explain in this article.

  • Nature of web/software project
  • Engineering approach
  • Software/web process
  • A process steps
  • Characteristics of a good process
  • Role of waterfull model in the development
  • Project planning

First of all we will see the different kind of software or web. How they affect in the day to day life of human being. It may be different complexity, from the different domain.

Next we will examine the different engineering approach that we can apply on our development process. Generally we understand the engineering is of field civil, mechanical, architectural etc. But engineering approaches can also be used in the development process to make it more simpler.

Then after we will take a look at the different software engineering process models available. We will then define the a practical software process steps and then we will also examine the characteristics of a good software process.

Nature of web/software project

We encounter may software or web application in the our day to day life. It may be of different domain, it may be simple, it can a large enterprise portal or can be a scientific for purpose.

Typically the nature of a software system can be:

  1. Ubiquitous, used in variety of area
    Business, engineering etc.
  2. It can be simple to complex, internal or public, one location centric or distributed, real time, information purpose, help desk etc.

Now there are many major challenges in the life of development process. Our main intension of this article is to outline the different kind of hurdles that a software developer or manager encounter in the development. They are as per below:

  1. Effort intensive
  2. High cost
  3. Continuous and log development
  4. User requirements frequently changes
  5. Risk of failure that can be performance issue, unable to accept response of user, maintainability of project etc.

Some time web projects or say any software project involves the high cost. The software analyzers sometime fail to identify software cost properly. Sometime the development get so stretch that it start becoming very costly. The management is mostly always concern with the quick and cheap solution. Due to the more and more money invested in web development and the outcome is not produces or is not upto to satisfaction as it should be.

Personally I feel that in most of development of either a web based project or enterprise application, the user’s continues changing requirement never ends. In any project, the end user is the one who is going to give final review. Software engineers do make requirement engineering, but the due to many factor user’s requirement keep on changing. Those factory may be managerial, market competition, changing in the government laws, marketing strategy etc. Because of these the user’s requirement get changed.

Sometime everything goes well but when the final outcome of software/web project get released, it does not satisfy the user. The performance may not be upto the mark. The end user is not concern with the technical issue involved in development. They only concern for the quick and accurate output.

So these are the few hurdles that any software engineer or manager face in his past experience life.

So when can we say that software is successful:

  • Software project have not always been successful.
  • When do we consider a project is successful
    • Development completed
    • It is useful
    • It is usable
    • It is used
  • Software should be cost effective & maintainable

To be build up any successful software, it need to under go many engineering process. I don’t mean to say that  the engineering process of big science/construction engineering. Engineering Is a set up well defined process steps. By following those well defined projects you can build up successful software.

Now lets consider what are the reason of failure for making this project successful.

  • Schedule slippage
  • Cost goes over
  • Does not fulfill user’s requirement
  • Poor quality

So this are the basic criteria which lead a project toward unsuccessful.

Now let’s consider that what are the reasons that lead to such failure.

  • Unplanned development
  • The milestones and deliverables are not identified
  • User requirement changing/poor understanding user’s requirement.
  • No review control
  • Technically the team is not matured
  • Unsuccessful planning of cost by user & developer.

If you can’t plan, you can’t reach to success. I personally feel during my experience life time that the unplanned work is always been major factory in the failure of software. The unplanned development may include anything from un proper utilization of human resources, the developer are forced to keep on changing on different projects, client’s continues changing in requirement etc. These all and in fact many other unplanned factors lead to software failure.

Let’s think that you are a smart developer who plan for all his work before he actually going to implement. Then in that case if the deliverables or milestones are not defined, we would not be able to judges the progress of development. Milestones/deliverables are most important in the development cycle. They tells about the progress of development. It help you to identify set up next goal in development.

Requirement engineering is one of the most crucial part in development life cycle. It is always been hard to identify and model user’s requirement. If the user’s requirement is not identified properly then the development can’t proceed further.

Constant review or control is also important part of development. The inspection and review is heart in the quality assurance. The development need to be monitored by the supervisor so that we can actually come to know how the development is going.

The developer need to be constantly updated with the latest tools and technology. Sometime the company have the projects, but they do not have such experienced or skilled resource, due to which they postpone their effort in getting such projects. Nowadays the technology is keep on changing. So many tools and technology are emerging which can really solve your many development issues. The open source platform is one of the great example. There are thousand of scripts and tools are available over the internet that a web developer can learn and implement. The developer need to be in touch with different community sites and build up their knowledge bank.

So these is what I want to tell about why we engineer the web/software. If we want to overcome those issue we really need to implement those software engineering and development process in our development.

So you will say that this is the end of my talk. No, I further want to tell you something regarding the engineering terms. After reading that much, you are really free to go by leaving your seat.

“Engineering” a solution:

According to the definition given by the professor Sarda(IIT Bombay), an engineering is: To design, develop an artifact that meets specification efficiently, cost-effective and ensure quality.

Why the other engineering projects are successful than the software?

So to understand the reason of that, lets first go through what a large engineering project is made up of.

  • Involve different type of peoples
    Building project: civil engineers, electrical engineer, architects, workers etc.
  • Continuous supervision for the quality assurance.
    On site supervisor
  • Many deliverables: architecture plan, model, structure diagrams, electric cabling etc.
  • Standards need to be followed
  • Steps and milestone are defined, reviewed and we proceed further. So the visibility of development is important aspect.

But the software engineering approach is somewhat different than these. Software architecture and planning is not same as the other engineering projects.

I will make you introduce with rest of discussion in my next series of articles.

So have a good time and have a productive coding.

NOTE :

If you are in need of any Web Development feel free to Inquire us . Dhanashree Inc. Expertise in Asp.net Development, Php Development, Website designing, Open Source customisation. Dhanashree Inc can be our offshore development company / outsourcing web development company, hire dedicated web programmers.

Above information is for knowledge sharing if you have problem / issue / suggestion please intimate us with details for proper and prompt action.

India Celebrating 61st Republic Day – HAPPY REPUBLIC DAY

January 26th, 2010 Posted in General

Republic Day, celebrated on January 26th every year, is one of India’s most important national events. It was on January 26th, 1950 that the constitution of India came into force and India became a truly Sovereign, Democratic and Republic state. It is celebrated every year on January 26, in New Delhi with great pomp and pageant and in capitals of the States, as well as at other headquarters and important places with patriotic fervour.

It was the Lahore Session of the Indian National Congress at midnight of December 31, 1929 – January 1, 1930, that the Tri-Colour Flag was unfurled by the nationalists and a pledge taken that every year on January 26, the “Republic Day” would be celebrated and that the people would unceasingly strive for the establishment of a Sovereign Democratic Republic of India. The professed pledge was successfully redeemed on 26 January, 1950, when the Constitution of India framed by the Constituent Assembly of India came into force, although the Independence from the British rule was achieved on August 15, 1947.

The President of India at New Delhi, on this most colourful day, takes salute of the contingents of Armed Forces. In the States, the Governors take the salute, and in Vilages and administrative headquarters on same procedure is adopted. At Vijay Chowk, New Delhi, three days later (i.e. 29th January of every year) the massed bands of the Armed Forces “Beat the Retreat” in a majestic manner. All Government buildings are illuminated lending the city the atmosphere of a fairyland. This day is celebrated with much zeal and pride all across the nation.

The different regiments of the Army, the Navy and the Air Force march past in all their finery and official decorations. The President of India who is the Commander-in-Chief of the Indian Armed Forces, takes the salute. Floats exhibiting the cultures of the various states and regions of India are in the grand parade, which is broadcast nationwide on television and radio. Also part of the parade are children who win the National Bravery Award for the year. The parade also includes other vibrant displays and floats and traditionally ends with a flypast by Indian Air Force jets.
2010 Republic Celebration can be viewed live from http://republicday.nic.in/

Every year on the occasion of Republic Day celebrations, India hosts the head of the state to become the honourable chief guest. Here is the list of the Chief Guests on Republic Day in India since 2000.

Chief Guests on Republic Day India

2000: Olusegun Obasanjo, President, Nigeria

2001: Abdelaziz Bouteflika, President, Algeria

2002: Cassam Uteem, President, Mauritius

2003: Mohammed Khatami, President, Iran

2004: Luiz Inacio Lula da Silva, President, Brazil

2005: Jigme Singye Wangchuk, King, Bhutan

2006: Abdullah bin Abdulaziz al-Saud, King, Saudi Arabia

2007: Vladimir Putin, President, Russia

2008: Nicolas Sarkozy, President, France

2009: Nursultan Nazarbayev, Kazakhstan President

2010: Lee Myung-bak,South Korean President

The essence behind the celebration of Republic day is not only to celebrate India’s secularism and democracy but its also makes us feel proud of our culture, languages, social norms, traditions, customs, religions, communitarian and the individual distinctiveness that makes up India a wonderful multi-cultural country. It is this spirit, which makes us feel proud of our country’s achievements that make the celebration all the more interesting. This is the day when we come together and proudly identify ourselves as true Indians, and not with some particular religion or caste. This feeling for the country is what makes this day a special one from the rest of the day. It is the day, which guarantees the Fundamental rights to the citizens, equality of religion and so on. The rich cultural heritage and tradition of India is reflected on this day.

Dhanashree Inc wishes all India and peace lovers of world  :

HAPPY REPUBLIC DAY.   HAPPY REPUBLIC DAY.   HAPPY REPUBLIC DAY.   HAPPY REPUBLIC DAY.

Lets commit ourselves to build brighter India and be spirited and committed towards our great nation.

NOTE :

If you are in need of any Web Development feel free to Inquire us . Dhanashree Inc. Expertise in Asp.net Development, Php Development, Website designing, Open Source customisation. Dhanashree Inc can be our offshore development company / outsourcing web development company, hire dedicated web programmers.

Above information is for knowledge sharing if you have problem / issue / suggestion please intimate us with details for proper and prompt action.

Hardware Requirements For i-Phone Application Development

January 12th, 2010 Posted in i-phone Development Tags:

IPhone application development has minimum hardware requirements without which iPhone programming cannot begin. This small guide lists the essential hardware needed for iPhone development and also mentions the alternatives wherever possible.

Mac Machine

One of the first hardware any budding iPhone developer should procure is an Intel-based Mac machine or Mac Book because iPhone applications can only be developed using Apple X OS. Does this mean non-Intel based Mac machines cannot be used for iPhone application development? Yes, spot on.

Will a Power PC Mac work for iPhone development?

A Power PC Mac will work but the output will be sluggish, to say the least and result in extremely low productivity. An iBook will be worse, so better stick to a powerful Intel-based Mac PC for your iPhone application development. In spite of this, if you still want to use PowerPC make sure it is running Leopard 10.5.4 or higher.

Old or new Mac?

While both will work, a new dual-core Mac machine should gallop and when the race for iPhone development is tight you want to sprint and not trot, right? However, you can take your pick between a Mac Book (or Mac Mini) and a Mac PC as XCode and Interface Builder run smoothly on both machines. Whichever Mac you choose, ensure it has at least 2GB RAM for smooth performance.

An i-Phone

iPhone applications can also be developed using the iPhone Simulator that comes bundled with the iPhone SDK (Software Development Kit) but the problem arises when you want to test the application’s GPS functionality or access the internet from within the application. In such cases the iPhone simulator is not enough and you have no option left but to purchase an iPhone. But if you can somehow make do without GPS and internet, the iPhone Simulator for iPhone application development will do just fine.

Once you have this minimum hardware ready you are all set to create great iPhone applications and games.



NOTE :

If you are in need of any Web Development feel free to Inquire us . Dhanashree Inc. Expertise in Asp.net Development, Php Development, Website designing, Open Source customisation. Dhanashree Inc can be our offshore development company / outsourcing web development company, hire dedicated web programmers.

Above information is for knowledge sharing if you have problem / issue / suggestion please intimate us with details for proper and prompt action.

Recommendation for developers

Generally, and most often many developer ask following normal questions:

  1. “What do I do so I can become a full time web developer?”
  2. Experienced developers often ask what I would recommend to help advance their careers or become an independent

These answers are not easy…it depends on your experience, your available time, and most importantly, your drive. The first 5 are for those of you just getting started and the last 5 are for the life of your career.

  • Find Good Resources – Whether it’s a friend, colleague, website forum or some online community, try to find at least one good resource. When I graduated college, most of my skills were web development related technologies. Specially .net 2.0 technology, ASP, VB, Sql Server and all that. My initial interest was on the networking side. Later on I switched to programming and keep continue in that field. The most important advice would tell is to be in contact with your seniors. Your senior have vast amount of experienced behind them, which can really drive you a good path. I was always used to be in contact with my one of senior. And in fact I got inspiration from him only to go for the .net development. I developed a couple ecommerce sites and keep on learning on different web development technologies. Specially I also love the dealing with SQL. So did few of certification also in that.
  • Learn the Basics – All most in your every line of code you write, your most common tasks will include declaring variables, assigning values, performing calculations, looping through data, if…then…else, functions, etc. Every language supports these features and they must be mastered. Any “Introduction” book will cover these features in very good detail. If a book has at least a dozen reviews, see what the consensus says. Better yet, a good resource should be able to recommend a good starter book. I also highly recommend buying an introduction book for the language you plan on developing in. You might not know what that is, but you should have a good idea. You want to always be reading in the language you are learning…this may seem obvious, If you want to learn C#, make the investment of buying a good C# book. And don’t worry too much about choosing a language to start with…as I said above, the basics translate to any language…it’s just differences in the syntax.
  • Follow the KISS Rule (Keep It Simple Stupid) – May time I come across such issue where developer are involved in doing the changes in others work. When it come to modify some else programming, it become very tedious task to do. First any one need time to understand the logic implemented by others. If you put 1,000 programmers in a room and gave them even a simple coding task, not one person would code it the same. The question is, would everyone be able to read your code…and if you looked at it a few months later, would you be able to quickly read and understand it? There are a million ways to solve any problem; the best approach is to keep it simple. It makes it much easier to maintain and also decreases the chance of someone else breaking it.
  • Test Your Learning By Implementing it – Reading and comprehending a subject isn’t that difficult….but can you really apply what you just learned? I have seen many peoples who can read for the hours and hours. But when you ask them what did he learned, he would be unanswered. I have a wonderful thought, that says: “What you see has no meaning when you don’t read it. It has no meaning of what you read until you understand it, and there is no important what you understand until you implement it”
  • Plan your Code – Oh.. that’s real main important that I should more focus on, during my job I see many developers, in fact almost everyone are used to start coding straightway when they are given with specific module. Developer do not plan their coding before they begin it. They are generally very excited about development when they get something new to do. But that’s the not proper approach. It always lead to big mistakes. It either make you to long development time or I may lead to wrong development at the end. The very fundamental development life cycle approach MUST be followed. And that is called System Development Life Cycle (SDLC).
    • Project planning and feasibility study: Establish a high-level view of the project and determines its goals.
    • Systems analysis and requirements definition: Refine goals into defined functions. Analyze end-user needs.
    • Systems design: Describe desired features in detail, including screen layouts, business rules, process diagrams and other documentation.
    • Implementation: Write the code. Personally, I design the database first,
    • Testing: Check for errors, bugs.
    • Deployment: The final stage of the initial development where the software is put into production and runs the actual business.
    • Maintenance: The rest of the software’s life: changes, correction, additions, moves to a different platforms, etc. This, the least glamorous and perhaps most important step of all, goes on seemingly forever.
  • Laziness Will Kill You! – Often, you might seem under a lot of pressure to get something done very quickly…it is very important to never compromise the quality of the software to get something done fast. At least a half dozen cases where a fellow developer did not code for some scenario because “there’s no way anyone would ever do that”. And more times than not, some user somewhere did it…and I’ve seen entire websites crash because of it (and people do get fired). The developer always blames the user for being stupid and doing what should not have been done, when in fact the developer is the real idiot. Don’t be lazy…don’t be a hack…do it right.
  • Put First Things First – Stephen Covey’s “7 Habit’s of Highly Effective People”. He says in Habit 3: Put First Things First, “The key is not to prioritize your schedule, but to schedule your priorities. Do the most important things first – because where you are headed is more important than how fast you are going”. He also says of all of the 7 habits, this is the hardest one to master. I completely agree…it is so easy to work on the fun tasks or prioritize what may seem urgent over working on the not-so-fun things than require time and serious thought. But what’s important should always take precedence over what’s considered urgent. In Covey’s book, he also referenced a lifelong study on what the common trait among successful people is. The answer: successful people know to “Put First Things First”. This may be the most important recommendation you’re your continued career.
  • Prepare Component for Reusability – You should never need to rewrite the same logic of code ever. Does your application send emails out? If so, you better have one “SendEmail” method that everyone uses. Do you query the database for the current specials to be displayed on every page? You better have that method encapsulated in a database tier and every page better be getting the data through that method (Better yet, you better be caching that data to eliminate the extra database queries!). Whenever I m supposed to start development in any of new project, I first try to find out the common functionality or functions that need to be developed across different web pages. Generally I devide them into different set of segments. Say for e.g. for the task related to validation at the client side, I always has a dedicated .js file which contain all most common validation functions. Same concept I applied to the database programming. We had developed a specialized library that do the all the basic CRUD operation. We have followed the MS Petshop application pattern. In this, we generally have to prepare the object of models and pass it to the data layer. The data layer will do the rest of database related operation.
  • Certifications –Does certification puts wings on your resume..?? No, that is not always true. Most people says getting certified is a good idea. But few completely disagree. The main disagreement is that anyone can get certified. They’re just tests and there are “brain dump” websites out there where people post questions and answers right after taking the tests. But generally companies may or may not consider your certifications that you highlighted on your resume. Yes that is true, that it sometime attract to the recruiter or the HR. They may prioritize your changes first in getting hire a developer. But even after they are going to follow the same selection process that they are used to do. They are gonna take your personal technical interview, may take technical exams. So by that way, if you are not upto the mark in your certification, then you are gone. They do not give discount in selection process to certificate holders. But at the end it is certification is eye attraction :-)
  • Continued Education – Each developer know enough to get the job done, work their 8 hours every day and go home to do nothing. Those with drive and ambition to be great continue their education everyday…even at home. Whether it’s reading technical magazines, online articles, blogs, or picking up a good book, anything you do to stay on top of the latest technology will give you a huge advantage. Not only will you continue to work with the latest software, but you will also be much more sought after, have much better job security and be able to bill a much higher rate. My favorite site is The Code Project, C# corner and may different blogs. When searching for a way to do something specific, I often go here first and almost always find it. Whatever approach you take, make a conscious effort to keep learning. By being smarter and better than the rest, And yes keep on developing your knowledge bank database by bookmarking important resources that you come across while surfing over the net. This will really help you out to get the quick solution in what you do.



NOTE :

If you are in need of any Web Development feel free to Inquire us . Dhanashree Inc. Expertise in Asp.net Development, Php Development, Website designing, Open Source customisation. Dhanashree Inc can be our offshore development company / outsourcing web development company, hire dedicated web programmers.

Above information is for knowledge sharing if you have problem / issue / suggestion please intimate us with details for proper and prompt action.