Monday, October 19, 2015

Visual Smarter Build #0.9.9.5



Visual Smarter has been released a new build #0.9.9.5.
Some more nice and cool Solution Widgets have been added in this build:
·         Solution Widgets
o   Turn On Register for COM Interop
o   Turn Off Register for COM Interop
·         Project Widgets
o   Tabify the Active Project
o   Untabify the Active Project
·         Document Widgets
o   Remove All Regions
o   Remove All Debug Asserts
o   Remove All Debug Prints
o   Remove All Debug Writes
o   Remove All Debug Outputs
o   Remove All Usings/Imports
o   Tabify the Active Document
o   Untabify the Active Document
           

Wednesday, October 14, 2015

List of Default Access Modifiers of Types and Members for VB.NET and C#

It does not seem as easy as it looks like to sort this out. Though information about this is spread over the web everywhere, inconsistencies, incompleteness, and even errors are here and there. 

It took us quite a while to put together the following list:

                                              VB.NET         C#
Class types (not nested)            Friend/Public    Internal
Class members (including nested types)        Public        Private
Structure types (not nested)            Friend/Public    Internal
Structure members (including nested types)    Public         Private
Interface types (not nested)            Friend/Public    Internal
Interface members (including nested types)    Public        Public
Enum types (not nested)                Friend/Public    Internal
Enum members (including nested types)        Public        Public
Delegate types (not nested)            Friend/Public    Internal
Delegate types (nested)                Public        Private
Delegate members                 N/A        N/A


As can be noticed, the default access modifier has two values for VB.NET. It is because VB.NET has one extra level, Module. The first default is for the VB.NET Namespace level, which also exists in C#, and the second is for the Module level of VB.NET.

If still something missing or inconsistent or incomplete, please feel free to make comments.

 

Visual Smarter Build #0.9.9.4



Visual Smarter has been released a new build #0.9.9.4.
Some more nice and cool Solution Widgets have been added in this build:
·         Solution Widgets
o   Add Project as Reference into All Other Projects
o   Remove Project Reference From All Other Projects
o   Open Project Output Location
o   Locate Active Document/Window In Solution Explorer
           

Sunday, October 11, 2015

Why delegate is categorized as TYPE in C#?

We believe many people have this wonder, but none seems to raise it yet, based on our observations so far.

Its easy to understand that Class, Struct, Enum, and Interface are Types as they share pretty similar appearance and behavior, e.g. having a declaration header and a body, having some members, starting with a curly and ending with another, etc. However, Delegate is very different. It is generally declared with a single line ending with a colon. It does not have any members or fields. Instead, it has return type and one or more parameters, pretty much like methods.

It should not surprise people since they are nothing but method representers, method pointers, method delegates or whatsoever. The thing is it is of type CodeType in the EnvDTE! That caused many coding issues for programmers, we believe. Maybe delegate should belong to a new group that only has itself!

FREE Download and Try Visual Smarter 2015

Friday, October 9, 2015

Visual Smarter Build #0.9.9.3



Visual Smarter has been released a new build #0.9.9.3.
Some more nice and cool Solution Widgets have been added in this build:
·         Solution Widgets
o   Make Types Fields Default
o   Make Types Fields Private
o   Make Types Fields ReadOnly
o   Make Types Fields Writable
o   Add Me./this. To Types Member Calls
o   Set References EmbedInteropTypes As True
o   Set References EmbedInteropTypes As False
           

Thursday, October 8, 2015

Visual Smarter Build #0.9.9.2



Visual Smarter has been released a new build #0.9.9.2.
Some more nice and cool Project Widgets have been added in this build:
·         Project Widgets
o   Make Types Fields Default
o   Make Types Fields Private
o   Make Types Fields ReadOnly
o   Make Types Fields Writable
o   Add Me./this. To Types Member Calls
o   Find Methods Returning Type
o   Find Properties Returning Type
o   Find Delegates Returning Type
o   Find All Returning Type
o   Find Methods Taking Type
o   Find Delegates Taking Type
o   Find All Taking Type