Creating Understanding and Educating Programmers, Developers and Technical Communities, one post at a time.

Monday, June 29, 2009

[Quotes] Debugging

“If debugging is the process of removing bugs, then programming must be the process of putting them in.”

- Edsger W. Dijkstra

Monday, June 22, 2009

ACID Properties

To ensure integrity of the data, we require that the database system maintain the following properties of the transactions(these properties are also called ACID properties of a transaction.)

Atomicity: Either all operations of the transaction are reflected properly in the database, or none are.

Consistency Execution of a transaction in isolation (that is, with no other transaction executing concurrently) preserves the consistency of the database.

Isolation Even though multiple transactions may execute concurrently. Each transaction is unaware of other transactions executing concurrently in the system.

Durability After a transactions completes successfully, the changes it has made to the database persist, even if there are system failures.

Saturday, June 20, 2009

ASP.NET developer categories

I was reading the ASP.NET developer categories. Writer describes the following three categories.
  • The web developer
  • The developer who build websites
  • The ASP.NET super hero

Thursday, June 18, 2009

Guest Writer on wijix.com

You have read my blog post here on programming360, but now I am also invited as guest writer on http://www.wijix.com/. So, you can also read my future posts on wijix blog.

Wijix.com is actually a group of independent technical writer. They are experienced architect and developer, who committed to bring and share innovative ideas and tips to the technical communities.

Some thoughts on Stored Procedure

I read Paul Nielsen post on stored procedure. According to him stored procedures are good for the applications. He is not only talking about logical or business process stored procedure, but he also encouraged developer for CRUD stored procedures. I think, it is good idea. There is no harm to use them. If database server have that capability, then why not CRUD stored procedures. Here I am quoting his valuable opinion.

The only real solution is an abstraction layer that fully encapsulates the database. Every database fetch, insert, and update must go through this access layer. Just as SOA provides this encapsulation for processes, the database needs the same black-box API. If the database team wants to refactor the database to improve some feature, it’s free to do so. If a new feature is added, the database team can add that feature and modify the API. It’s very clean, easy to refactor, and the database is now an on-ramp to the corporate roadmap.


If we look at the history of database development language, you will find either PL/SQL or T-SQL, these languages are not changed. As Paul made a cogent argument about T-SQL that it is still same for the stored procedure, which written decade ago.

I will appreciate you comments. Feel free to share your advice.

Tuesday, June 9, 2009

Data Access Layer Design Considerations

To help ensure that data access in your application is optimized for performance, there are several issues that you must consider and a number of decisions that you must make at design time:

  • Design your data access layer based on how the data is used.

  • Cache data to avoid unnecessary work.

  • Connect by using service accounts.

  • Acquire late, release early.

  • Close disposable resources.

  • Reduce round trips.

  • Return only the data you need.

  • Use Windows authentication.

  • Choose the appropriate transaction type.

  • Use stored procedures.

  • Prioritize performance, maintainability, and productivity when you choose how to pass data across layers.

  • Consider how to handle exceptions.

  • Use appropriate normalization.



Reference: http://msdn.microsoft.com/en-us/library/ms998569.aspx

Tuesday, June 2, 2009

Extension Methods

Extension Methods enable you to "add" methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type. Extension methods are a special kind of static method, but they are called as if they were instance methods on the extended type. For client code written in C# and Visual Basic, there is no apparent difference between calling an extension method and the methods that are actually defined in a type.

I found a very good tutorial on Extension Method.