h1.post-title { color:orange; font-family:verdana,Arial; font-weight:bold; padding-bottom:5px; text-shadow:#64665b 0px 1px 1px; font-size:32px; } -->

Pages

LINQ Insight Express

Introduction
  LINQ Insight Express is a Visual Studio add-in that offers useful tools for LINQ and ORM development.
       It provides tools for design-time LINQ query execution and preview of generated SQL and for profiling data access events from such ORMs as
Entity Framework, NHibernate, LinqConnect, and LINQ to SQL.

Supporting Version : VS 2010,2012,2013

I) Design-time LINQ Execution
II) LINQ Profiler

Design-time LINQ Execution
Benefits
Visual Studio Integration
Convenient Query Analysis
Design-time Operation
Support for Different Kinds of Queries
How to Use
     To view SQL for a LINQ query, perform the following steps:
     Right-click the query and select Run LINQ Query from the shortcut menu or place cursor over the query and press  CTRL+SHIFT+R.
     If your query depends on some variables, specify their values in the opened dialog box.

LINQ Profiler
Benefits
Advanced Profiler for Data Access Operations
Queries View with Summarized Information
Powerful Filtering
No Need to Modify the Project
How to Use
To start profiling a project, perform the following steps:
Open the LINQ Profiler window (select Other Windows - > LINQ Profiler from the View menu).
Click the Start profiler session button on the LINQ Profiler window toolbar.
Run the project to profile.

Download from Tool

Fluent Ribbon Control Suite

Introduction:
         Fluent Ribbon Control Suite is a library that implements an Office-like (Microsoft® Office Fluent™ user interface) for the

Windows Presentation Foundation (WPF). 
       It provides well-customized controls such as Rubbon, Gallery, QuickAccessToolbar, ScreenTip, StatusBar and so on

Supporting Version: Visual Studio 2008/2010

LinqConnect Express

Introduction:
  •   LinqConnect Express is a free fast and easy to use ORM solution, developed closely to the Microsoft    LINQ to SQL technology, and supporting SQL Server, Oracle, MySQL, PostgreSQL, and SQLite.
  •       It provides a powerful model designer tool with complete integration to Visual Studio - Entity Developer.

Note that this free package does not allow customization of code templates and is limited to 10 entities in the project

Supports: Visual Studio 2010/2012/2013.

Key Features

  1. Wide database support 
  2. Compatibility 
  3. Fluent mapping support
  4. Professional development team 
  5. Complete toolkit provided
  6. Visual model designer
  7. Performance


Download from Tool

DotConnect for SQLite, Standard Edition

Introduction
 DotConnect for SQLite Standard Edition is a free of charge database connectivity solution built over ADO.NET architecture. It offers basic
functionality for developing database-related applications, web sites.

Supporting Version: Visual Studio 2008/2010/2012/2013.

Product Description:
        It is a free of charge data provider built over ADO.NET architecture and a development framework with number of innovative technologies.
       It offers basic functionality for developing database-related applications and web sites.
       It introduces new approaches for designing applications and boosts productivity of database application development.

Key Features

  1. Direct access to SQLite database
  2. 100% managed code
  3. High performance
  4. Easy to deploy
  5. Supports the latest versions of SQLite database
  6. All SQLite data types support
  7. Operates in both connected and disconnected models
  8. Extra data binding capabilities
  9. Cross-form components cooperation
  10. Free of charge

    DotConnect Express for SQLite supports SQLite engine version 3 and higher.
    The provider works with .NET Framework 2.0, 3.0, 3.5, and 4.0.

Download from Tool

StringCollection Class

Represents a collection of strings.
StringCollection accepts Nothing as a valid value and allows duplicate elements.
String comparisons are case-sensitive.
Elements in this collection can be accessed using an integer index. Indexes in this collection are zero-based.

Syntax:

  Dim sColl As New StringCollection()
  Dim colArr() As String = {"RED", "GREEN", "YELLOW", "BLUE"}
      sColl.AddRange(colArr)

ListDictionary Class

Implements IDictionary using a singly linked list.
Recommended for collections that typically contain 10 items or less.
It is smaller and faster than a Hashtable
This should not be used if performance is important for large numbers of elements.

Members, such as Item, Add, Remove, and Contains are O(n) operations, where n is Count.

Syntax:
For Each direntry As DictionaryEntry In myListDictionary
  ...
Next direntry

PowerModes in Microsoft.Win32


  • Resume The operating system is about to resume from a suspended state.
  • StatusChange A power mode status notification event has been raised by the operating system. This might indicate a weak or charging battery, a transition between AC power and battery, or another change in the status of the system power supply.
  • Suspend The operating system is about to be suspended.


Microsoft.Win32 Namespace

The Microsoft. Win32 namespace provides two types of classes: those that handle events raised by the operating system and those that manipulate the system registry.

SystemEvent Class

Provides access to system event notifications. This class cannot be inherited.


  • DisplaySettingsChanged Event
  • DisplaySettingsChanging Event
  • EventsThreadShutdown Event
  • InstalledFontsChanged Event
  • LowMemory Event
  • PaletteChanged Event
  • PowerModeChanged Event
  • SessionEnded Event
  • SessionEnding Event
  • SessionSwitch Event
  • TimeChanged Event
  • TimerElapsed Event
  • UserPreferenceChanged Event
  • UserPreferenceChanging Event

Expose Keys in Registry

CurrentUser
Stores information about user preferences.
LocalMachine
Stores configuration information for the local machine.
ClassesRoot
Stores information about types (and classes) and their properties.
Users
Stores information about the default user configuration.
PerformanceData
Stores performance information for software components.
CurrentConfig
Stores non-user-specific hardware information.
DynData
Stores dynamic data.

Compress and Decompress in VB.Net

Thanks to MSDN

Namespace

Imports System.IO.Compression

Declare Variable
'Use GZipStream Class for Compress and Decompress Folder
    Dim dirpath As String = "E:\TestCompress"

Private Sub Compress(ByVal fi As FileInfo)

        Using inFile As FileStream = fi.OpenRead()
            If (File.GetAttributes(fi.FullName) And FileAttributes.Hidden) _
                <> FileAttributes.Hidden And fi.Extension <> ".gz" Then
                Using outFile As FileStream = File.Create(fi.FullName + ".gz")
                    Using Compress As GZipStream = New GZipStream(outFile, CompressionMode.Compress)
                        ' Copy the source file into the compression stream.
                        Dim buffer As Byte() = New Byte(4096) {}
                        Dim numRead As Integer
                        numRead = inFile.Read(buffer, 0, buffer.Length)
                        Do While numRead <> 0
                            Compress.Write(buffer, 0, numRead)
                            numRead = inFile.Read(buffer, 0, buffer.Length)
                        Loop
                        Console.WriteLine("Compressed {0} from {1} to {2} bytes.", _
                                          fi.Name, fi.Length.ToString(), outFile.Length.ToString())
                    End Using
                End Using
            End If
        End Using
    End Sub
    Private Sub Decompress(ByVal fi As FileInfo)
        Using inFile As FileStream = fi.OpenRead()
            Dim curFile As String = fi.FullName
            Dim origName = curFile.Remove(curFile.Length - fi.Extension.Length)
            Using outFile As FileStream = File.Create(origName)
                Using Decompress As GZipStream = New GZipStream(inFile, CompressionMode.Decompress)
                    Dim buffer As Byte() = New Byte(4096) {}
                    Dim numRead As Integer
                    numRead = Decompress.Read(buffer, 0, buffer.Length)
                    Do While numRead <> 0
                        outFile.Write(buffer, 0, numRead)
                        numRead = Decompress.Read(buffer, 0, buffer.Length)
                    Loop
                    Console.WriteLine("Decompressed: {0}", fi.Name)
                End Using
            End Using
        End Using
    End Sub

    Private Sub CompressDeCompress(ByVal path As String, ByVal mode As CompressType)
        Dim di As DirectoryInfo = New DirectoryInfo(path)
        Select Case mode
            Case CompressType.Compress
                For Each fi As FileInfo In di.GetFiles()
                    Compress(fi)
                Next
            Case CompressType.Decompress
                For Each fi As FileInfo In di.GetFiles("*.gz")
                    Decompress(fi)
                Next
        End Select
    End Sub

    Enum CompressType
        Compress
        Decompress
    End Enum

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        CompressDeCompress(dirpath, CompressType.Compress)
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        CompressDeCompress(dirpath, CompressType.Decompress)
    End Sub

ZipFile.Open Method

This method is applicable in .NET FRAMEWORK 4.5
Open a Zip archive at the specified path and on the specified mode

 Dim zipPath As String = "c:\naraayanan\exampleuser\end.zip"
        Dim extractPath As String = "c:\naraayanan\exampleuser\extract"
        Dim newFile As String = "c:\naraayanan\exampleuser\NewFile.txt"

        Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
            archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest)
            archive.ExtractToDirectory(extractPath)
        End Using 

AppNotifyIcon

InitializeComponent
namespace TestEasyCon
{
    partial class AppNotifyIcon
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AppNotifyIcon));
            this.nfyIcon = new System.Windows.Forms.NotifyIcon(this.components);
            this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
            this.tsmRestore = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmExit = new System.Windows.Forms.ToolStripMenuItem();
            this.tmrForNfy = new System.Windows.Forms.Timer(this.components);
            this.contextMenuStrip.SuspendLayout();
            this.SuspendLayout();
            //
            // nfyIcon
            //
            this.nfyIcon.ContextMenuStrip = this.contextMenuStrip;
            this.nfyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("nfyIcon.Icon")));
            this.nfyIcon.Text = "EasyCon";
            this.nfyIcon.Visible = true;
            this.nfyIcon.BalloonTipShown += new System.EventHandler(this.notifyIcon1_BalloonTipShown);
            //
            // contextMenuStrip
            //
            this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.tsmRestore,
            this.tsmExit});
            this.contextMenuStrip.Name = "contextMenuStrip1";
            this.contextMenuStrip.Size = new System.Drawing.Size(124, 48);
            //
            // tsmRestore
            //
            this.tsmRestore.Name = "tsmRestore";
            this.tsmRestore.Size = new System.Drawing.Size(123, 22);
            this.tsmRestore.Text = "Restore";
            //
            // tsmExit
            //
            this.tsmExit.Name = "tsmExit";
            this.tsmExit.Size = new System.Drawing.Size(123, 22);
            this.tsmExit.Text = "Exit";
            //
            // tmrForNfy
            //
            this.tmrForNfy.Tick += new System.EventHandler(this.tmrForNfy_Tick);
            //
            // AppNotifyIcon
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Name = "AppNotifyIcon";
            this.Size = new System.Drawing.Size(10, 10);
            this.contextMenuStrip.ResumeLayout(false);
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.NotifyIcon nfyIcon;
        private System.Windows.Forms.ContextMenuStrip contextMenuStrip;
        private System.Windows.Forms.ToolStripMenuItem tsmRestore;
        private System.Windows.Forms.ToolStripMenuItem tsmExit;
        private System.Windows.Forms.Timer tmrForNfy;
    }
}

Code Behind

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TestEasyCon
{
    public partial class AppNotifyIcon : UserControl
    {
        public AppNotifyIcon()
        {
            InitializeComponent();
            nfyIcon.DoubleClick += new EventHandler(OpenApp);
            tsmRestore.Click += new EventHandler(OpenApp);
        }


        #region Declaration
        bool FromTrayIconDoubleClick = false;
        public delegate void RestoreClickedEventHandler(object sender, EventArgs e);
        public event RestoreClickedEventHandler RestoreClicked;
        #endregion


        #region Functions
        private void OpenApp(object sender, EventArgs e)
        {
            if (RestoreClicked != null)
                RestoreClicked(this, e);
        }
        /// <summary>
        ///  To Restore Application
        /// </summary>
        /// <param name="frm">Pass Form Name</param>
        public  void RestoreApplicaiton(Form frm)
        {
            FromTrayIconDoubleClick = true;
            frm.Show();
            frm.WindowState = FormWindowState.Normal;
            frm.Focus();
        }

        #endregion

        private void notifyIcon1_BalloonTipShown(object sender, EventArgs e)
        {
            tmrForNfy.Enabled = true;
        }

        private void tmrForNfy_Tick(object sender, EventArgs e)
        {
            nfyIcon.Visible = false;
            nfyIcon.Visible = true;
            tmrForNfy.Enabled = false;
        }    
    }
}

ImageViewer in C#.Net

InitializeComponent
namespace TestEasyCon
{
    partial class ImageViewer
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ImageViewer));
            this.panel1 = new System.Windows.Forms.Panel();
            this.imageBox1 = new Cyotek.Windows.Forms.ImageBox();
            this.menuStrip1 = new System.Windows.Forms.MenuStrip();
            this.tsmClose = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmTools = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmFit = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmTZoomIn = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmTZoomOut = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmTRotateClockWise = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmTRotateAntiClockWise = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmNormal = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmZoomIn = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmZoomOut = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmRotateclockWise = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmRotateAntiClockWise = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmPrint = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmZoom = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmZoomSize = new System.Windows.Forms.ToolStripComboBox();
            this.tsmExit = new System.Windows.Forms.ToolStripMenuItem();
            this.panel1.SuspendLayout();
            this.menuStrip1.SuspendLayout();
            this.SuspendLayout();
            //
            // panel1
            //
            this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                        | System.Windows.Forms.AnchorStyles.Left)
                        | System.Windows.Forms.AnchorStyles.Right)));
            this.panel1.Controls.Add(this.imageBox1);
            this.panel1.Controls.Add(this.menuStrip1);
            this.panel1.Location = new System.Drawing.Point(0, 0);
            this.panel1.Name = "panel1";
            this.panel1.Size = new System.Drawing.Size(632, 752);
            this.panel1.TabIndex = 0;
            //
            // imageBox1
            //
            this.imageBox1.AutoSize = false;
            this.imageBox1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.imageBox1.Location = new System.Drawing.Point(0, 25);
            this.imageBox1.Name = "imageBox1";
            this.imageBox1.Size = new System.Drawing.Size(632, 727);
            this.imageBox1.TabIndex = 1;
            //
            // menuStrip1
            //
            this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.tsmClose,
            this.tsmTools,
            this.tsmNormal,
            this.tsmZoomIn,
            this.tsmZoomOut,
            this.tsmRotateclockWise,
            this.tsmRotateAntiClockWise,
            this.tsmPrint,
            this.tsmZoom,
            this.tsmZoomSize,
            this.tsmExit});
            this.menuStrip1.Location = new System.Drawing.Point(0, 0);
            this.menuStrip1.Name = "menuStrip1";
            this.menuStrip1.Size = new System.Drawing.Size(632, 25);
            this.menuStrip1.TabIndex = 0;
            this.menuStrip1.Text = "menuStrip1";
            //
            // tsmClose
            //
            this.tsmClose.AutoToolTip = true;
            this.tsmClose.Image = ((System.Drawing.Image)(resources.GetObject("tsmClose.Image")));
            this.tsmClose.Name = "tsmClose";
            this.tsmClose.Size = new System.Drawing.Size(61, 21);
            this.tsmClose.Text = "Close";
            this.tsmClose.ToolTipText = "Close ";
            //
            // tsmTools
            //
            this.tsmTools.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.tsmFit,
            this.tsmTZoomIn,
            this.tsmTZoomOut,
            this.tsmTRotateClockWise,
            this.tsmTRotateAntiClockWise});
            this.tsmTools.Image = ((System.Drawing.Image)(resources.GetObject("tsmTools.Image")));
            this.tsmTools.Name = "tsmTools";
            this.tsmTools.Size = new System.Drawing.Size(60, 21);
            this.tsmTools.Text = "Tools";
            //
            // tsmFit
            //
            this.tsmFit.AutoToolTip = true;
            this.tsmFit.Image = ((System.Drawing.Image)(resources.GetObject("tsmFit.Image")));
            this.tsmFit.Name = "tsmFit";
            this.tsmFit.Size = new System.Drawing.Size(194, 22);
            this.tsmFit.Text = "Fit";
            this.tsmFit.ToolTipText = "Fit";
         
            //
            // tsmTZoomIn
            //
            this.tsmTZoomIn.Image = ((System.Drawing.Image)(resources.GetObject("tsmTZoomIn.Image")));
            this.tsmTZoomIn.Name = "tsmTZoomIn";
            this.tsmTZoomIn.Size = new System.Drawing.Size(194, 22);
            this.tsmTZoomIn.Text = "Zoom In";
         
            //
            // tsmTZoomOut
            //
            this.tsmTZoomOut.AutoToolTip = true;
            this.tsmTZoomOut.Image = ((System.Drawing.Image)(resources.GetObject("tsmTZoomOut.Image")));
            this.tsmTZoomOut.Name = "tsmTZoomOut";
            this.tsmTZoomOut.Size = new System.Drawing.Size(194, 22);
            this.tsmTZoomOut.Text = "Zoom Out";
         
            //
            // tsmTRotateClockWise
            //
            this.tsmTRotateClockWise.AutoToolTip = true;
            this.tsmTRotateClockWise.Image = ((System.Drawing.Image)(resources.GetObject("tsmTRotateClockWise.Image")));
            this.tsmTRotateClockWise.Name = "tsmTRotateClockWise";
            this.tsmTRotateClockWise.Size = new System.Drawing.Size(194, 22);
            this.tsmTRotateClockWise.Text = "Rotate Clock Wise";
         
            //
            // tsmTRotateAntiClockWise
            //
            this.tsmTRotateAntiClockWise.AutoToolTip = true;
            this.tsmTRotateAntiClockWise.Image = ((System.Drawing.Image)(resources.GetObject("tsmTRotateAntiClockWise.Image")));
            this.tsmTRotateAntiClockWise.Name = "tsmTRotateAntiClockWise";
            this.tsmTRotateAntiClockWise.Size = new System.Drawing.Size(194, 22);
            this.tsmTRotateAntiClockWise.Text = "Rotate Anti Clock Wise";
         
            //
            // tsmNormal
            //
            this.tsmNormal.AutoToolTip = true;
            this.tsmNormal.Image = ((System.Drawing.Image)(resources.GetObject("tsmNormal.Image")));
            this.tsmNormal.Name = "tsmNormal";
            this.tsmNormal.Size = new System.Drawing.Size(28, 21);
            this.tsmNormal.ToolTipText = "Fit";
            //
            // tsmZoomIn
            //
            this.tsmZoomIn.AutoToolTip = true;
            this.tsmZoomIn.Image = ((System.Drawing.Image)(resources.GetObject("tsmZoomIn.Image")));
            this.tsmZoomIn.Name = "tsmZoomIn";
            this.tsmZoomIn.Size = new System.Drawing.Size(28, 21);
            this.tsmZoomIn.ToolTipText = "Zoom In";
            //
            // tsmZoomOut
            //
            this.tsmZoomOut.AutoToolTip = true;
            this.tsmZoomOut.Image = ((System.Drawing.Image)(resources.GetObject("tsmZoomOut.Image")));
            this.tsmZoomOut.Name = "tsmZoomOut";
            this.tsmZoomOut.Size = new System.Drawing.Size(28, 21);
            this.tsmZoomOut.ToolTipText = "Zoom Out";
            //
            // tsmRotateclockWise
            //
            this.tsmRotateclockWise.AutoToolTip = true;
            this.tsmRotateclockWise.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
            this.tsmRotateclockWise.Image = ((System.Drawing.Image)(resources.GetObject("tsmRotateclockWise.Image")));
            this.tsmRotateclockWise.Name = "tsmRotateclockWise";
            this.tsmRotateclockWise.Size = new System.Drawing.Size(28, 21);
            this.tsmRotateclockWise.Text = "Rotate Clock Wise";
            //
            // tsmRotateAntiClockWise
            //
            this.tsmRotateAntiClockWise.AutoToolTip = true;
            this.tsmRotateAntiClockWise.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
            this.tsmRotateAntiClockWise.Image = ((System.Drawing.Image)(resources.GetObject("tsmRotateAntiClockWise.Image")));
            this.tsmRotateAntiClockWise.Name = "tsmRotateAntiClockWise";
            this.tsmRotateAntiClockWise.Size = new System.Drawing.Size(28, 21);
            this.tsmRotateAntiClockWise.Text = "Rotate AntiClock Wise";
            //
            // tsmPrint
            //
            this.tsmPrint.AutoToolTip = true;
            this.tsmPrint.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
            this.tsmPrint.Image = ((System.Drawing.Image)(resources.GetObject("tsmPrint.Image")));
            this.tsmPrint.Name = "tsmPrint";
            this.tsmPrint.Size = new System.Drawing.Size(28, 21);
            this.tsmPrint.Text = "Print";
            //
            // tsmZoom
            //
            this.tsmZoom.Name = "tsmZoom";
            this.tsmZoom.Size = new System.Drawing.Size(49, 21);
            this.tsmZoom.Text = "Zoom:";
            //
            // tsmZoomSize
            //
            this.tsmZoomSize.AutoToolTip = true;
            this.tsmZoomSize.BackColor = System.Drawing.SystemColors.InactiveCaptionText;
            this.tsmZoomSize.Items.AddRange(new object[] {
            "",
            "10%",
            "25%",
            "50%",
            "75%",
            "100%",
            "150%",
            "200%",
            "400%",
            "800%",
            "1500%",
            "Actual Size"});
            this.tsmZoomSize.Name = "tsmZoomSize";
            this.tsmZoomSize.Size = new System.Drawing.Size(121, 21);
            this.tsmZoomSize.ToolTipText = "Zoom (%)";
            //
            // tsmExit
            //
            this.tsmExit.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
            this.tsmExit.AutoToolTip = true;
            this.tsmExit.Image = ((System.Drawing.Image)(resources.GetObject("tsmExit.Image")));
            this.tsmExit.Name = "tsmExit";
            this.tsmExit.Size = new System.Drawing.Size(28, 21);
            this.tsmExit.ToolTipText = "Exit ";
            //
            // ImageViewer
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Controls.Add(this.panel1);
            this.Name = "ImageViewer";
            this.Size = new System.Drawing.Size(634, 747);
            this.panel1.ResumeLayout(false);
            this.panel1.PerformLayout();
            this.menuStrip1.ResumeLayout(false);
            this.menuStrip1.PerformLayout();
            this.ResumeLayout(false);

        }
        #endregion
        private System.Windows.Forms.Panel panel1;
        private System.Windows.Forms.MenuStrip menuStrip1;
        private System.Windows.Forms.ToolStripMenuItem tsmClose;
        private System.Windows.Forms.ToolStripMenuItem tsmTools;
        private System.Windows.Forms.ToolStripMenuItem tsmNormal;
        private System.Windows.Forms.ToolStripMenuItem tsmZoomIn;
        private System.Windows.Forms.ToolStripMenuItem tsmFit;
        private System.Windows.Forms.ToolStripMenuItem tsmTZoomIn;
        private System.Windows.Forms.ToolStripMenuItem tsmTZoomOut;
        private System.Windows.Forms.ToolStripMenuItem tsmTRotateClockWise;
        private System.Windows.Forms.ToolStripMenuItem tsmTRotateAntiClockWise;
        private System.Windows.Forms.ToolStripMenuItem tsmZoomOut;
        private System.Windows.Forms.ToolStripMenuItem tsmZoom;
        private System.Windows.Forms.ToolStripComboBox tsmZoomSize;
        private System.Windows.Forms.ToolStripMenuItem tsmExit;
        private System.Windows.Forms.ToolStripMenuItem tsmRotateclockWise;
        private System.Windows.Forms.ToolStripMenuItem tsmRotateAntiClockWise;
        private Cyotek.Windows.Forms.ImageBox imageBox1;
        private System.Windows.Forms.ToolStripMenuItem tsmPrint;
    }
}
Code Behind

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Printing;

namespace TestEasyCon
{
    public partial class ImageViewer : UserControl
    {
        public ImageViewer()
        {
            InitializeComponent();
            tsmClose.Click += new EventHandler(CloseButtonClicked);
            tsmExit.Click += new EventHandler(CloseButtonClicked);
        }
       
        #region Declaration
        public delegate void CloseButtonEventHandler(object sender, EventArgs e);
        public event CloseButtonEventHandler ClickCloseButton;
        Image imgFile =null;
        #endregion

        #region Functions
        private void CloseButtonClicked(object sender, EventArgs e)
        {
            if (ClickCloseButton != null)
                ClickCloseButton(this, e);
        }
        /// <summary>
        /// Image Processing
        /// </summary>
        /// <param name="mode">Pass Mode(Normal|ZoomIn|Zoom Out|rotate Clock Wise|Rotate AnitClockWise)</param>
        private void ImageProcessing(string mode)
        {
            switch (mode)
            {
                case "Normal":
                    imageBox1.SizeToFit = true;
                    imageBox1.SizeToFit = false;
                    tsmZoomIn.Enabled = true;
                    tsmTZoomIn.Enabled = true;
                    tsmZoomSize.Text = imageBox1.Zoom.ToString() + "%";          
                    break;
                case "ZoomIn":
                    imageBox1.Zoom += 50;
                    tsmZoomSize.Text = imageBox1.Zoom.ToString() + "%";
                    break;
                case "ZoomOut":
                    imageBox1.Zoom -= 50;
                    tsmZoomSize.Text = imageBox1.Zoom.ToString() + "%";
                    break;
                case "RotateClockWise":
                    Image img = imageBox1.Image;
                    img.RotateFlip(RotateFlipType.Rotate270FlipXY);
                    Image imgtemp = img;
                    imageBox1.Image = imgtemp;
                    imageBox1.Refresh();
                    break;
                case "RotateAntiClockWise":
                    Image img1 = imageBox1.Image;
                    img1.RotateFlip(RotateFlipType.Rotate90FlipXY);
                    Image imgtemp1 = img1;
                    imageBox1.Image = imgtemp1;
                    imageBox1.Refresh();
                    break;

            }
        }
        /// <summary>
        /// Print Image Document
        /// </summary>
        /// <param name="path">Pass Path</param>
        public void PrintDocument(string path)
        {
            try
            {
                imgFile = Image.FromFile(path);
                PrintDocument prntDoc = new PrintDocument();
                PrintDialog prdDia = new PrintDialog();
                prntDoc.PrintPage += new PrintPageEventHandler(printDoc_PrintPage);
                prdDia.AllowPrintToFile = true;
                prdDia.AllowSelection = true;
                prdDia.AllowSomePages = true;
                prdDia.PrintToFile = true;
                DialogResult dialogue = prdDia.ShowDialog();
                if (dialogue == DialogResult.OK)
                {
                    prntDoc.DocumentName = path;
                    prntDoc.Print();
                }
                prdDia.Dispose();
            }
            catch (Exception ex)
            {
                Program.WriteLog(ex.Message, ex.StackTrace);
            }
        }
        private void printDoc_PrintPage(object sender, PrintPageEventArgs e)
        {
            Point ulCorner = new Point(0, 0);
            e.Graphics.DrawImage(imgFile, ulCorner);
        }
        #endregion

   
    }
}

PDFViewer in C#.Net

InitializeComponent
namespace TestEasyCon
{
    partial class PDFViewer
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PDFViewer));
            this.panel1 = new System.Windows.Forms.Panel();
            this.menuStrip1 = new System.Windows.Forms.MenuStrip();
            this.axAcroPDF1 = new AxAcroPDFLib.AxAcroPDF();
            this.tsmClose = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmExit = new System.Windows.Forms.ToolStripMenuItem();
            this.panel1.SuspendLayout();
            this.menuStrip1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.axAcroPDF1)).BeginInit();
            this.SuspendLayout();
            //
            // panel1
            //
            this.panel1.Controls.Add(this.axAcroPDF1);
            this.panel1.Controls.Add(this.menuStrip1);
            this.panel1.Location = new System.Drawing.Point(0, 0);
            this.panel1.Name = "panel1";
            this.panel1.Size = new System.Drawing.Size(600, 680);
            this.panel1.TabIndex = 0;
            //
            // menuStrip1
            //
            this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.tsmClose,
            this.tsmExit});
            this.menuStrip1.Location = new System.Drawing.Point(0, 0);
            this.menuStrip1.Name = "menuStrip1";
            this.menuStrip1.Size = new System.Drawing.Size(600, 24);
            this.menuStrip1.TabIndex = 0;
            this.menuStrip1.Text = "menuStrip1";
            //
            // axAcroPDF1
            //
            this.axAcroPDF1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.axAcroPDF1.Enabled = true;
            this.axAcroPDF1.Location = new System.Drawing.Point(0, 24);
            this.axAcroPDF1.Name = "axAcroPDF1";
            this.axAcroPDF1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAcroPDF1.OcxState")));
            this.axAcroPDF1.Size = new System.Drawing.Size(600, 656);
            this.axAcroPDF1.TabIndex = 1;
            //
            // tsmClose
            //
            this.tsmClose.AutoToolTip = true;
            this.tsmClose.Image = ((System.Drawing.Image)(resources.GetObject("tsmClose.Image")));
            this.tsmClose.Name = "tsmClose";
            this.tsmClose.Size = new System.Drawing.Size(61, 20);
            this.tsmClose.Text = "Close";
            this.tsmClose.ToolTipText = "Close PDF File";
            //
            // tsmExit
            //
            this.tsmExit.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
            this.tsmExit.AutoToolTip = true;
            this.tsmExit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
            this.tsmExit.Image = ((System.Drawing.Image)(resources.GetObject("tsmExit.Image")));
            this.tsmExit.Name = "tsmExit";
            this.tsmExit.Size = new System.Drawing.Size(28, 20);
            this.tsmExit.ToolTipText = "Close PDF File";
            //
            // PDFViewer
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Controls.Add(this.panel1);
            this.Name = "PDFViewer";
            this.Size = new System.Drawing.Size(603, 684);
            this.panel1.ResumeLayout(false);
            this.panel1.PerformLayout();
            this.menuStrip1.ResumeLayout(false);
            this.menuStrip1.PerformLayout();
            ((System.ComponentModel.ISupportInitialize)(this.axAcroPDF1)).EndInit();
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.Panel panel1;
        private AxAcroPDFLib.AxAcroPDF axAcroPDF1;
        private System.Windows.Forms.MenuStrip menuStrip1;
        private System.Windows.Forms.ToolStripMenuItem tsmClose;
        private System.Windows.Forms.ToolStripMenuItem tsmExit;
    }
}
Code Behind
using System;
using System.Windows.Forms;

namespace TestEasyCon
{
    public partial class PDFViewer : UserControl
    {
        public PDFViewer()
        {
            InitializeComponent();
            tsmClose.Click += new EventHandler(CloseButtonClicked);
            tsmExit.Click += new EventHandler(CloseButtonClicked);
        }

        #region Declaration
        public delegate void CloseButtonEventHandler(object sender, EventArgs e);
        public event CloseButtonEventHandler ClickCloseButton;
        #endregion

        #region Functions
        private void CloseButtonClicked(object sender, EventArgs e)
        {
            if (ClickCloseButton != null)
                ClickCloseButton(this, e);
        }
        /// <summary>
        /// Display PDf File
        /// </summary>
        /// <param name="filePath">Pass File Path</param>
        public void DisplayPDFFile(string filePath)
        {
            axAcroPDF1.src = filePath;
            axAcroPDF1.setShowToolbar(true);
            axAcroPDF1.Show();
        }
        #endregion

    }
}

Get ODD Number using LINQ in C#.Net

static bool GetOdd(int number)
        {
            if (number % 2 != 0)
                return true;
            else
                return false;
        }

var result = from r in
                         Enumerable.Range(1, 50).Where(GetOdd)
                         select r;
            foreach (var r in result)
                Console.WriteLine(r);
            Console.ReadKey(true);

Validate File Name in VB.Net

bool IsValidFilename(string testName)
{
    Regex containsABadCharacter = new Regex("[" + Regex.Escape(System.IO.Path.InvalidPathChars) + "]");
    if (containsABadCharacter.IsMatch(testName) { return false; };

    // other checks for UNC, drive-path format, etc

    return true;
}

Change .Net Framework in VB.Net


  • Go To Project Property
  • Click "Compile"
  • Click "Advanced Compile Options"
  • Select Framework from the "Target Framework"

File Path Validation using Regular Expression

^(?:[\w]\:|\\)(\\[a-z_\-\s0-9\.]+)+\.(txt|gif|pdf|doc|docx|xls|xlsx)$

Add Reference in VB.Net

Go To Project Property
Click "Reference"
Click  "Add"
Select from "Add Reference"
Select "Import Namespace" for your project

Write only Read Property in VB.Net

Write only Read Property in VB.Net
Private _EmpId As String
        Public ReadOnly Property EmpId() As String
            Get
                Return _EmpId
            End Get
        End Property

Get Random Number in VB.net

using Rnd

Run a DOS Command in VB.Net

Run a DOS Command in VB.Net

use Shell Keyword

Shell("cmd.exe"<Command>)

Formater in VB.Net

Formater in VB.Net

            it is an object that is responsible for encoding and serializing data into message on one end and
decoding and Deserializing data into message on another end

New Features in VB 10

New Features in VB 10


  • Multiple Line Statement Lambdas
  • sub Lambdas
  • Auto Implementation Property
  • Collection Initialize
  • Arrya Literals

Keyword used for Abstract class and Abstract method in VB.Net

Keyword used for Abstract class in VB.Net

MustInherit keyword

Keyword used for Abstract Method in VB.Net

MustOverride Keyword

Keyword used for hiding method from Base Class in VB.net

Keyword used for hiding method from  Base Class in VB.net

Shadow Keyword is used to hide a method from a Base Class.

Delete files in VB.Net

Delete files in VB.Net

Kill(<File Path>)

Kill(D:\Lakshmi.txt)

Create XPS File in VB.Net

Select .Net 3.5 Framework

    Using prn As New PrintDocument
            With prn
                .PrinterSettings.PrinterName = "Microsoft XPS Document Writer"
                .DefaultPageSettings.PaperSize = New PaperSize("Legal", 850, 1400)

                If My.Computer.FileSystem.FileExists(xpsfile) Then My.Computer.FileSystem.DeleteFile(xpsfile)
                .DefaultPageSettings.PrinterSettings.PrintToFile = True
                .DefaultPageSettings.PrinterSettings.PrintFileName = xpsfile
                .Print()
            End With
        End Using

Add Reference
ReachFramework
WindowBase

Anonymous Methods in C#

Anonymous Methods in C#
               C# supports delegates for invoking one or multiple methods. 
               Delegates provide operators and methods for 

  •                              adding and removing target methods, and are used extensively throughout the .NET Framework for events, 
  •                              callbacks, 
  •                             asynchronous calls, 
  •                              multithreading. 

             Anonymous methods is a new feature in C# 2.0 that lets you define an anonymous (that is, nameless) method called by a delegate.

VS 2010 Theme Support

VS 2010 Theme Support


  • By Default you will get the following themes
  • Windows XP Silver
  • Windows Classic
  • Windows XP Emerald
  • Windows XP Autumn
  • Windows XP Olive
  • Windows XP Blue
  • Windows Aero
  • Windows XP Blue
  • Default Visual Studio 2010 Theme

XPS To PDF File in VB.Net

Select .Net 3.5 Framework

Private Sub XPSToPDF(ByVal xpsFile As String, ByVal PDFFile As String)
        PdfSharp.Xps.XpsConverter.Convert(xpsFile, PDFFile, 0)
End Sub

Add Reference
PDFSharp.Xps  (search on Google)

Performance improvement in SQL Server

Performance improvement 

  • Use shortest data type possible
  • Make sure the data types of the columns participating in a JOIN are of same type
  • Use Calculated columns instead of on the fly complex calculations 
  • Consider using RCSI (read committed snapshot isolation) to preclude readers from blocking writers (writers will still block other writes but this is much graceful than using NOLOCK hints)
  • Partition Alignment (64K or 1024k) and block size (or cluster size) of 64KB
  • Keep the transactions as short as possible to preclude blocking/deadlocking/TLog  bloating issues
  • If they need to trace, use server side trace
  • If it is Ad hoc workload, consider turning on the "Optimize the Adhoc Workload" option
  • Teach them how to figure out missing indexes from DMVs but add them only necessary - tweak the existing indexes first (make them composite and include columns)
  • Minimize queries that use text searches, rather use full-text indexes on those columns
  • Familiarize themselves with In-Memory OLTP feature
  • Avoid float data types if you need accuracy
  • Avoid nested views
  • Familiarize with different granular levels of compilation
  • Pitfalls of using HEAPS
  • Revisiting the index configuration every few months
  • Familiarize themselves with Blocked Process Report
  • Using SET NOCOUNT ON, avoiding sp prefix, etc
  • Parameter Sniffing 
  • Using triggers sparingly
  • Use of sp_executesql instead of EXEC
  • Pros and cons of using natural keys vs surrogate keys
  • Data growth and its adverse effects on query time and ways to mitigate them
  • Avoiding all hints unless absolutely necessary
  • No user prompts within explicit transactions
  • Peer review and unit test the code before submission
  • Caching rarely changing lookup table data on the client side to mitigate network chatter

Refer from

Asynchronous Programming with Async and Await

Asynchronous Programming with Async and Await


  • Asynchronous Programming is introduced in VS 2012.
  • It's support .NET FRAMEWORK 4.5 and Windows Runtime.
  • application retains a logical structure that resembles synchronous code.
  • Asynchronous is essential for activities that are potentially blocking, such as when your application accesses the web.
  • In an asynchronous process, the application can continue with other work that doesn't depend on the web resource until the potentially blocking task finishes.
  • The Async and Await keywords in Visual Basic 
  • By using those two keywords, you can use resources in the .NET Framework or the Windows Runtime to create an asynchronous method almost as easily as you create a synchronous method.
  • Asynchronous methods that you define by using async and await are referred to as async methods.
  • Async methods are intended to be non-blocking operations.
  • An await expression in an async method doesn't block the current thread while the awaited task is running.
  • Instead, the expression signs up the rest of the method as a continuation and returns control to the caller of the async method.


Custom Event in VB.Net

Custom Event in VB.Net

Here are the Example for Custom Event in VB.net


Dim _handlers As New List(Of EventHandler)
 Public Custom Event AnyName As EventHandler
        AddHandler(ByVal value As EventHandler)
            AddHandler <Control Name>.<Event>, value
        End AddHandler

        RemoveHandler(ByVal value As EventHandler)
            RemoveHandler <Control Name>.<Event>, value
        End RemoveHandler

        RaiseEvent(ByVal sender As Object, ByVal e As System.EventArgs)
            For Each handler As EventHandler In _handlers
                Try
                    handler.Invoke(sender, e)
                Catch ex As Exception
                    Debug.WriteLine("Exception while invoking event handler: " & ex.ToString())
                End Try
            Next
        End RaiseEvent
    End Event

C# Coding Conventions

C# Coding Conventions


  • Naming Conventions

    Capitalization Conventions
Describes the different casing systems and when each should be used.
    General Naming Conventions
Describes general rules for selecting clear, readable names.
     Names of Assemblies and DLLs
Describes conventions for naming managed assemblies.
     Names of Namespaces
Describes conventions used for namespace names and how to minimize conflicts between namespaces.
     Names of Classes, Structs, and Interfaces
Describes conventions that should be followed, as well as those that should be avoided, when naming types.
     Names of Type Members
Describes the best practices for selecting names for methods, properties, fields, and events.
     Names of Parameters
Describes the best practices for choosing meaningful parameter names.
     Names of Resources
Describes the best practices for selecting names for localizable resources.


  • Layout Conventions
  • Comments Conventions
  • Language Guidelines


Call Class Function in Module

Call Class Function in Module

In Module(S)
Public Function ResultValue(ByVal x As Integer, ByVal y As Integer) As String
        Dim CHelper As CHelper = New CHelper()
        Return "The Result is :" & CHelper.Add(x, y)
    End Function

In Class file
Public Shared Function ResultValue(ByVal x As Integer, ByVal y As Integer) As String
        Return "The Module Result" & Module1.Add(x, y)
    End Function

Call Shared Function in VB.net

Call Shared Function in VB.net
To Create Helper Class file in your project.
 Private Shared str As String
 Public Shared Function Subtract(ByVal x As Integer, ByVal y As Integer) As String
        str = "The Result:" & x - y
        Return str
 End Function
Call Shared Function 
 MessageBox.Show(CHelper.Subtract(15, 10))
Note: you can't Shared Function in the Module

Call Class file Function in VB.net

Call Class file Function in VB.net

To Create Helper Class file in your project.
Public Class CHelper
    Public Function Add(ByVal x As Integer, ByVal y As Integer) As Integer
        Return x + y
    End Function
End Class

Call Class in the VB.net form

Dim cls As CHelper = New CHelper()
MessageBox.Show("The Result:", CStr(cls.Add(10, 10)))

Useful Project Management Tools

Useful Project Management Tools


  • Chili Project
  • Omnigroup
  • Paymo
  • Springloops
  • Comindwork
  • Webprojector
  • Solo
  • Open Atrium
  • Casebox
  • Redbooth
  • Agilezen
  • Producteev
  • Redmine
  • Central Desktop
  • Teamwork
  • Issue Burner
  • Pivotal Tracker


Best Bug Tracking Tools For Developers

Best Bug Tracking Tools For Developers


  • Raygun
  • Exceptional
  • Sentry
  • Sifter
  • Takipi
  • BugHerd
  • Airbrake
  • BugDigger
  • StackHunter
  • BugLogHQ

WPF Version 4.5

WPF Version 4.5

  • Ribbon control
  • Improved performance when displaying large sets of grouped data
  • New features for the VirtualizingPanel
  • Binding to static properties
  • Accessing collections on non-UI Threads
  • Synchronously and Asynchronously validating data
  • Automatically updating the source of a data binding
  • Binding to types that Implement ICustomTypeProvider
  • Retrieving data binding information from a binding expression
  • Checking for a valid DataContext object
  • Repositioning data as the data's values change (Live shaping)
  • Improved Support for Establishing a Weak Reference to an Event
  • New methods for the Dispatcher class
  • Markup Extensions for Events

Convert String to Camel Case in C#.net

Convert String to Camel Case in C#.net

Declare namespace
using System.Globalization;
Method for Convert String into CamelCase in C#.net
  private string  ConvertStringToCamelCase(string str)
        {
            TextInfo obj = new CultureInfo("en-US", false).TextInfo;
            return obj.ToTitleCase(str);
        }
Call ConvertStringToCamelCase() like this
MessageBox.Show(ConvertStringToTitle("Lakshmi nAARAYANAN")); MessageBox.Show(ConvertStringToTitle("lakshmi nAARAYANAN"));
Output:
Lakshmi Narayanan

Hashing Algorithms

Hashing Algorithms
        Hashing is the process of mapping binary data of variable length to a fixed size binary data.
        Applying the same hash function to two identical data structures yields the same result. 
There are two kind of hashing algorithms : with or without a key.
The algorithms without keys are used only to calculate secure hashes for data to ensure integrity, whereas the keyed algorithm are issued together with a key as a MAC for bath integrity.
  • ALGORITHM NAME:SHA1   DESCRIPTION :USES SHA ALGO WITH A RESULTING HASH OF 160 BITS
  • ALGORITHM NAME: SHA256   DESCRIPTION :USES SHA ALGO WITH A RESULTING HASH OF 256 BITS
  • ALGORITHM NAME:SHA 512   DESCRIPTION :USES SHA ALGO WITH A RESULTING HASH OF 512 BITS
  • ALGORITHM NAME:SHA 384   DESCRIPTION :USES SHA ALGO WITH A RESULTING HASH OF 384 BITS
  • ALGORITHM NAME:MD5   DESCRIPTION :USES MD5 HASH ALGORITHM
  • ALGORITHM NAME:RIPEMD160 DESCRIPTION :USES RIPEMD HASH ALGORITHM
Thanks to

Retrieve hardware information from a remote machine via WMI

Retrieve hardware information from a remote machine via WMI

//Create WMI Class
ManagementClass mc = new ManagementClass("Win32_Processor");
//Populate class with Processor objects
ManagementObjectCollection moc = mc.GetInstances();
//Iterate through logical processors
foreach (ManagementObject mo in moc)

.Net Core

.Net Core
                .NET Core is a modular implementation that can be used in a wide variety of verticals, scaling from the data center to touch based devices, is available as open source, and is supported by Microsoft on Windows, Linux and Mac OSX.

.Net Core in .Net 2015

  • ASP.NET 5
  • .NET Natvive
  • ASP.NET 5 for Mac and Linux.

The .NET Core platform is a new .NET stack that is optimized for open source development and agile delivery on NuGet.

More details: .Net Core