Monday, April 23, 2018

Difference between HTTP.SYS and WAS in IIS

HTTP.SYS (Hypertext Transfer Protocol Stack) is the kernel level components of IIS. All client request comes from client hit the HTTP.Sys of Kernel level. HTTP.SYS then makes a queue for each and every request for each and individual application pool based on the request.

Whenever we create any application pool IIS automatically registers the pool with HTTP.SYS to identify the particular during request processing.


WAS(Windows Activation Service) is a new feature of IIS, that allows all the features of the Windows Communication Framework stack, like non-HTTP channels and other stuff.

IIS is the web server that hosts the services that are activated via WAS.

WAS - is the new process activation mechanism that ships with IIS 7.0. WAS builds on the existing IIS 6.0 but is more powerful because it provides support for other protocols besides HTTP, such as TCP and Named Pipes.

For more details, go through IIS architecture

Friday, April 20, 2018

Duplicate Menu Items in Visual Studio

Recently I had a situation with Visual Studio 2010 where menu items where duplicated like 3-4 times. Looks like some configuration file was corrupted. I have tried to restore current settings and setup new settings but none worked out.

To resolve this I ran the following from command line

devenv.exe /safemode /setup

Once this ran, I restarted Visual Studio I could able to see Visual studio with default factory settings.

PS: If you have any personal settings done before you have to redo those settings again.

Thursday, April 19, 2018

Visual Studio 2017 version 15.7 Preview 3

The third preview of the next update Visual Studio 2017 version 15.7 is released and below are top highlights of this Preview.

  • Updates to Universal Windows Platform development
  • C++ development improvements
  • Significant updates in Xamarin and .NET Mobile Development
  • Ability to configure installation locations
  • Debugger support for authenticated Source Link
  • Live Unit Testing improvements
  • New tooling for migrating to NuGet PackageReference
  • Connected Service improvements to deployment and Key Vault functionality

To acquire the Preview, you can either install it fresh from here, you can update the bits directly from the IDE, or if you have an Azure subscription, you can provision a virtual machine with this latest preview.

for more details

Wednesday, April 18, 2018

Visual Studio for Mac version 7.4

Visual Studio for Mac version 7.4 is also available. It includes improvements in performance and stability, as well as fixes for many of the top reported issues. This release includes support for macOS High Sierra and C# 7.1, and core architectural changes for C# editing (powered by Roslyn), resulting in improved IntelliSense performance and typing responsiveness.

You can read the complete release notes and access Visual Studio for Mac downloads on VisualStudio.com.

Thursday, March 22, 2018

How to get size of all tables in database

Here is how you can get table sizes via SQL query, this works from SQL 2005 and above

SELECT 
    t.NAME AS TableName,
    s.Name AS SchemaName,
    p.rows AS RowCounts,
    SUM(a.total_pages) * 8 AS TotalSpaceKB, 
    CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB,
    SUM(a.used_pages) * 8 AS UsedSpaceKB, 
    CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB, 
    (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB,
    CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOIN 
    sys.schemas s ON t.schema_id = s.schema_id
WHERE 
    t.NAME NOT LIKE 'dt%' 
    AND t.is_ms_shipped = 0
    AND i.OBJECT_ID > 255 
GROUP BY 
    t.Name, s.Name, p.Rows
ORDER BY 
    t.Name
Alternatively if you want to get size of one table you can do it by using sp_spaceused, this can get you information on the disk space used by a table, indexed view, or the whole database.
USE psdb  
GO

EXEC sp_spaceused contact
GO
You can use the sp_spaceused command to get all tables in database by using the below command.
USE psdb  
GO

sp_msforeachtable 'EXEC sp_spaceused [?]' 
GO

Hope this useful