M# (pronounced em sharp) is a code generation tool and a domain-specific language that can be used to create websites and web applications.[1] It can translate entities and page definitions to ASP.NET Web Forms and MVC and C# code which in turn form the user interface and business logic layer of the application. Its main goals are to reduce time of development, increase code quality, and reduce human errors.[2]

Msharp logo.png
Paradigmmulti-paradigm: structured, object-oriented, event-driven, procedural, meta
Designed byGeeks ltd.
DeveloperGeeks ltd.
First appeared2012
Typing disciplinestatic, dynamic
Major implementations
Visual C#, .NET Framework, ASP.NET, Domain-specific language


M# generates codes that is mainly in the C# programming language. Because the "sharp" suffix has been used by a number of other .NET languages, M# followed the same convention.[3]


M# uses its own IDE, which is a web-based application for creating ASP.Net WebForms and Visual Studio for Creating ASP.Net MVC projects. Inside the IDE, a user can type, select from suggestions (Intelli-sense), or use the mouse to define the entities or user interface modules.[4] An example would be a form module that has two buttons (Cancel and Save) and displays a Key and a Text field. The Key field is read-only and the Save button adds a content block to the database:


And the same form in the Visual Studio would be like the following.

Internally, M# IDE keeps this module definition as a JSON file. At the time of a build, it will generate C#, ascx, and ascx.cs files. From that moment, XML or M# is not necessary to render the module or to be installed on the machines that will serve the page.

New versions of M# are integrated with Microsoft Visual Studio.


  1. ^ "The end of offshoring?". Business Reporter. Archived from the original on 2013-03-10.
  2. ^ "Why M#?". Retrieved 18 May 2013.
  3. ^ Modelling languages for the "Solution Domain"; Productivity rules!. Code Generation. 2011.
  4. ^ "Understanding M#". Retrieved 26 May 2013.

External linksEdit