M Sharp (programming language)
M# (pronounced em sharp) is a suite of tools and a Domain-specific language that can be used to create Websites and Web Applications and its main goal is to reduce the time necessary for creating these from scratch. M# language acts as a Code generator and translates entities and page definitions to ASP.NET and C# code which in turn form the User interface and Business logic layer of the application.
Design goals
According to its official website these are the motivations behind creating M#:
- Reducing time of development
- High quality (beautiful, documented) code
- Reduced human error (hence the code generator nature of it)
Name
M# generates codes that is mainly in the C# programming language. Since "sharp" suffix has been used by a number of other .NET languages, M# followed the same convention.
Syntax
M# uses its own IDE which is a web-based application. Inside that a user can type, select from suggestions (Intelli-sense) or use the mouse to define the entities or user interface modules. 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:
Internally M# keeps this module definition as an XML file (metadata) and 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.