YAGNI, Never Add Functionality Early

As a developer I always pretend that I know about principles, Rules, methods, KISS and YAGNI! But in some cases if you consider my codes you will find out that they are just some best bunch of code for giving an example as introduction dirty code for teaching YAGNI principle!

YAGNI is a principle of extreme programming that says "Never add functionality until deemed necessary". what I mostly make mistake is adding some extra functionality earlier and most of the time they never been used.


   &nbs... Continue

The meaning of Page Routing in nutshell

One of the most capabilities of modern web-based applications is the ability to swap content of the page without any page reload, Post-back and Request-Response. All of the operations are done by calling from UI and request from server and then changing the existing content of page with the newly retrieved contents.

That's what they call SPA (Single Page Applications),  working with these kinds of User interface is so easier as waiting for post back and refreshing  and replacing the pages sometimes are tedious. Rather than that in single page application most of the ... Continue

Application lifecycle management(ALM)

Application lifecycle management is a set of pre-defined process and tools that include definition, design, development, testing, deployment and management to integrate, coordinate and manage the different phases of the software delivery process. It's not just writing code or a methodology to write better code and similar. It's just a continuous process of managing the life of a software application from concept to delivery throughout the entire development process.

By applying to ALM it's easy to coordinate the people, process and information in an iterative cycl... Continue

Software development and butterfly effect

If you have developed a large scale system, you have seen that small mistaken changes at one place specially at the earlier steps has damaged the other parts in the future of the system. I'm not going to talk about a solution for it, Actually there is no any way to stop doing this changes and their affects. But you can reduce the amount of these unwilling issues by some technique.

These little changes at the first steps or maybe at a specific parts of software development ,is called butterfly effect which is discussed in chao... Continue

Convention over configuration

Developers only need to specify unconventional aspects of the application and worry only about the unconventional parts of the application and architecture. Convention over configuration is a software design principle, philosophy and technique implied from the structure of the code instead of requiring explicit code. letting the code "just figure it out" from using naming conventions instead of explicit code or finding ways to avoid duplicating information in the system. Developers don't need to use a particular methodology or approach while that approach of methodology i... Continue

Optimistic and pessimistic concurrency control

Optimistic and pessimistic concurrency control AKA optimistic and pessimistic locking is a mechanism to preserve database integrity in multi-user applications. Optimistic and pessimistic are two kinds of locking control. In general concurrency control ensures that correct results for operations are generated. Perhaps you are familiar with locking to serialize the data for accessing shared data; for example when several people in a system are working on a same data, what will happen if they save the changes at the same time?? Imagine this condition... Continue

What is Subversion?

It's about 12:46 am in 8/5/2013, I don’t know anything about Subversion, there are 6 open tab in my browser to discover what is Subversion for. I'll share it in an hour!

What's Subversion?

Subversion is all about managing  and tracking the changes and overall it is an advanced version control. It's tools are so useful for versioning, changes of files and web pages and any document of the software. The main idea be... Continue

A Short talk about Continues Integration

CI(Continues integration) is all about merging the developers working frequently, merging could be one or several times a day. Before integrating developers should build, test and run the code successfully. The main Idea behind CI is to prevent integration issues. Best CI implementation is when it contains test Driven development. In a team work every one should work with the latest version of the system, so in any case every member of the team must commit the latest changes daily. Committing regularly reduce the conflicting changes and everyone can see the result of t... Continue

Some useful and simple SEO techniques

there are some simple techniques that you can increase you webSite's ranking by using them:


Create Valuable Content: It is the most important technique in search engine optimization, if you create valuable content in your web site your page's visitors will grow and you website will be appeared more in search result!

Create Unique Content: Do not repeat the same content of another web site or in other word Don't copy and past other web site's content! be... Continue

What's portable class library for ?

If you create a regular Class Library it has only one target Framework. it means you can only build an application  with that to run in a one platform, And if you would like to use this class library in other platforms such as mobile, azure and etc, you have to recompile it. Portable Class Library or PCL is a new project in Visual Studio from Microsoft that enables you to create C# and Visual Basic libraries that run on a variety of .NET platforms to write once and use more.

Portable class library is just a class library that can run on various .NET Framework platfo... Continue