Usually, we don’t wire electrical appliances together by attaching the cable directly to the wall. Instead, we use plugs and sockets. A socket defines a shape that the plug must match. In an analogy to software design, the socket is an interface.
If you ever stayed in cheap hotel, you will see hair drier directly attached into the wall outlet.
Now couple of problems here.
- What if your hair drier stopped working?
- What if hotel management decided to switch to new model which consumes less power?
AlwaysOn Availability Groups and AlwaysOn Failure cluster Instances are new features, introduced in SQL Server 2012, that promise the highest level of availability and disaster recovery. Read More →
The term Inversion of Control (IoC) is a computer programming technique wherein the flow of the control of an application is inverted. Rather than a caller deciding how to use an object, in this technique the object called decides when and how to answer the caller, so the caller is not in charge of controlling the main flow of the application. Read More →
Often, String objects are used to contain sensitive data such as a user’s password or creditcard information. Unfortunately, String objects contain an array of characters in memory, and if some unsafe or unmanaged code is allowed to execute, the unsafe/unmanaged code could snoop around the process’s address space, locate the string containing the sensitive information, and use this data in an unauthorized way. Even if the String object is used for just a short time and then garbage collected, the CLR might not immediately reuse the String object’s memory (especially if the String object was in an older generation), leaving the String’s characters in the process’s memory, where the information could be compromised. In addition, since strings are immutable, as you manipulate them, the old copies linger in memory and you end up with different versions of the string scattered all over memory.
Read More →
- Model: Objects in business domain
- View: User interface that is visible to user
- ViewModel: Code representation data/operation on UI