Monday, July 3, 2023

This is today's reality that enterprise data is not stored in one or two locations. In today's digital era, data is distributed across on-premises, multiple cloud environments or in one or more software as services. The big question is how to manage and classify this data across multiple locations. The answer is "Azure Purview". Azure Purview is Microsoft's unified data governance solution across storage locations with following features: 1. Data discovery - Birds view of your data 2. Data classification Ex: Financial, Personal, Government 3. End to end data lineage 4. Insight into location and sensitive data movement across locations 5. Comprehensive security and data compliance built-in 6. Search by business & technical terms 7. Technical & business metadata management 8. Powerful insight into data by leveraging AI, BI, Analytics, Machine Language etc. 9. Empower Data Scientists Enjoy Learning !

Tuesday, December 21, 2021

As part of my cloud journey, I got to know about this free online tool Azure DevOps Demo Generator from Microsoft.
  1. It is a great tool from Microsoft that simplify working Azure DevOps
  2. It helps you to create project in your DevOps organization based on the template you choose from the out of box templates comes along with the tool
  3. The DevOps project created using this tool comes with sample content that includes source code, pipeline definitions, agile work items etc.
Try it !

Wednesday, December 15, 2021

Infrastructure As Code (IaC)

Working on infrastructure automation based on the principle of Infrastructure As Code (IaC) using Terraform https://www.terraform.io/ and Compliance Automation Tool Chef InSpec https://docs.chef.io/inspec.

Integration of both using Azure DevOps pipeline makes Azure Development smooth. Loving it.

Sunday, December 4, 2016


Context:Given below a grid of rules applicable for different screen in a financial application.
Objective: To come up with a design that supports the implementation of the given requirement.

Design:

Thursday, December 1, 2016


Resource level locks in Sql Server
  1. Row
  2. Key
  3. Table
  4. Page
  5. Extent
  6. Partition
  7. Database
Models of locks
  1. Shared Lock(S) - Can be held by any processes
  2. Update Lock(U) - Mix of shared and exclusive lock
  3. Exclusive Lock(X) - Can be held by only one process
  4. Intent Lock(I)
    • Intent Shared(IS)
    • Shared with Intent Exclusive(SIX)
    • Intent Exclusive(IX)
  5. Bulk Update Lock(BU)
  6. Schema Lock
    • Schema Stability (Sch-S) - It is applied while generating the execution plan
    • Schema Modification (Sch-M) - It is applied while executing a DDL Statement
Transaction Isolation Levels
  1. Pessimistic
    • Read Uncommitted (NOLOCK) - No shared lock acquired
    • Read Committed (READCOMMITTED) (Default) - Shared lock acquired and released immediately
    • Repeatable Read (REPEATABLEREAD) - Lock till the end of transaction
    • Serialization (HOLDLOCK) - Lock till the end of transaction and a range of rows
  2. Optimistic
    • Snapshot
    • Snapshot Read Committed
  1. sys.dm_tran_locks view keeps track of a Lock and resource identification
  2. sys.dm_exec_sessions view provides transaction isolation level in use for the current process

Friday, December 6, 2013

How to use SQLCacheDependency in ASP.NET MVC

Database
Database : Employee
Table : EmpDetails
Developer Command Prompt
aspnet_regsql.exe -S DBServerName -E -d database name -ed 
aspnet_regsql.exe -S DBServerName -E -d database name -t table name -et
Web.Config
  
    
      
        
          
        
      
    
  
Cache Class
public class SQLDependencyCacheProvider
    {
        private static System.Web.Caching.Cache _cache;

        public System.Web.Caching.Cache Cache
        {
            get
            {
                if (_cache == null)
                {
                    _cache = HttpRuntime.Cache;
                }

                return _cache;
            }
        }

        public T GetCacheItem(string key)
        {
            var item = Cache.Get(key);
            return (item != null) ? (T)Convert.ChangeType(item, typeof(T)) : default(T);
        }

        public void InsertCacheItem(string key, T value)
        {
            Cache.Insert(key, value, new SqlCacheDependency("Employee", "EmpDetails"));
        }
    }


Thursday, December 5, 2013

How to Configure ASP.NET Tracing for ASP.NET MVC Applications

  1. ASP.NET Application Level Tracing
  2. Writting Custom ASP.NET Trace Messages using System.Diagnostics.TraceSource class and trace sources
  3. Writting Custom ASP.NET Trace Messages using System.Diagnostics.Trace class
PRE-Requisite(Trace Complier Constant) : Trace statements (Custom tracing) require the TRACE compiler constant, but it’s on by default and you can verify that in the Build tab of the project properties window
The problem is that this setting in the .csproj file only applies to .cs files. ASP.NET uses a different compile process for .cshtml files (or .aspx files in Web Forms), and the settings for that compile process are in the Web.config file. If you don’t explicitly specify the TRACE constant there, tracing method calls in .cshtml views are ignored. Below is an example of what you have to add to the application Web.config file for a Visual Studio project that targets .NET 4.5, in order to define a TRACE constant for the .cshtml compiler:
 
   
     
     
   
 

ASP.NET Application Level Tracing

Web.Config entries

  
    
  


    
       
      
      
      
    
    
        
         
          
          
          
                   
         
       
      
        
          
          
          
        
          
    
    
      
      
    
    
      
        
        
      
    
  
C# Code
 using System.Diagnostics;
 public class AccountController : Controller
    {
        public ActionResult Index()
        {            
            TraceSource source = new TraceSource("AccountController");
            source.TraceEvent(TraceEventType.Warning, 100, "This is message logged from Account Controller");
            return View();
        }

    }
Writting Custom ASP.NET Trace Messages using System.Diagnostics.Trace class
 using System.Diagnostics;
 public class AccountController : Controller
    {
        public ActionResult Index()
        {          
            Trace.WriteLine("This is message logged from Account Controller");
            return View();
        }

    }