M# manages 90% of code and has been proven to be faster and more secure during the process of development

IS C# ENOUGH?

Traditional
Developer Model
M#
Developer Model

This results in 4X overall boost in productivity:
Development time = (1/6 X 90%) + 10% = 25%

THE M# PHILOSOPHY

In conventional programming you have to explicitly specify "all the details" that form your application. The IDE and compiler are unaware of your "requirements" or "semantics" of what you want to achieve. So they can't help you much beyond simple intellisense.

The philosophy of M# is to program around common sense and semantics. Unlike traditional languages, with M# you start by specifying your intention as opposed to jumping into the "details". It will then fill in the details using its native understanding of:
  • Your project's domain model
  • Best practices for object-oriented programming
  • Domain-driven-design principals
  • Modern web UI standards, Html(5), Css, jQuery, etc
  • Common sense and usability conventions
For 90% of the details, you completely rely on the assumptions of M#. For the remaining 10%, you will simply lead M# by providing just enough "details" to make the final code a 100% match for your exact requirements with no workarounds or rework.

THE M# REVOLUTION

speed clock
By marrying traditional 3GL programming with high-level abstractions, M# is here to redefine software development.

M# is a model-driven declarative programming language intended for developing data-focused .NET web applications at a quarter of the time. M# compiler will transform everything into complete standard ASP.NET and C# project source code.

Is C# not enough?
In business applications there are common code patterns that repeat over and over. They are vast, yet slow and error-prone to write. Although similar, but they are not identical which is why code-reuse methods don't work there.

HOW DOES M# WORK

pie
By introducing domain-driven and high-level language concepts, M# enables the developers to define common application structure and behaviour at a higher level of abstraction at a sixth of the time.

The IDE and compiler of M# can interpret and understand business domain entities including their structure, rules and relationships. They are also aware of the above-mentioned code patterns.That combination, plus the developer’s specific instructions (configurations) enable M# to infer the C# and ASP.NET code and automatically generate it.

The remaining 10% of the code, usually containing custom business logic or specific user-interface features, will be written in C# and ASP.NET directly by the developer. Therefore M# provides an exceptionally rapid and productive route to production of a standard and complete .NET solution.

RAD, yet solid architecture

Many RAD tools and frameworks have traditionally had a poor reputation when it comes to the cleanness, beauty and architecture of their generated code.

With M# on the other hand, you will get solid C# and ASP.NET code based on object-oriented business entities, ORM, unit-tests and integration-tests, table-less CSS layouts, proper multi-layer model, clean naming conventions, full code documentation, etc.

90% fewer bugs

Manually written code is prone to human errors whereas auto-generated code isn't. M# yields literally bug-free code and since 90% of the final .NET code will be written by M# you will only need to worry about fixing bugs in the 10% of the total code which is manually written.

Therefore M# applications demand dramatically less testing and quality assurance efforts to develop and maintain.

4X shorter agile cycles

Agile success is all about early feedback and user participation. With M# you can do user-stories workshop in the morning and have a release review in the afternoon! That's because the hours in between will be enough to actually build the requested functions - you won't need days.

This will significantly impact the project success and user satisfaction. Also the dynamic and fast turnaround will make more enthusiastic and interested users.

Maintainable & easier to change

In software life-cycle typically 80% of the total costs are related to ongoing changes, fixes and enhancements. M# will reduce your long-term costs by producing exceptionally consistent and predictable code that is readable, well documented and equipped with automated-tests.

Thanks to the its hybrid language nature, you make changes at a high level and M# will update the generated .NET code automatically in all affected areas.

INDEPENDENT EXPERT REVIEWS

"When I first heard about M# I was concerned that it might be just another code generation tool that failed to differentiate between data structures and use cases.

Once I saw it in action and learnt the concept in detail I could see the difference and the value it would add to the development process.

If you have a web based project which does not need minute tailoring throughout, works with data and needs tailored business-logic then M# could give you a much more efficient development experience than if you hand-crafted those products entirely."

Simon Hardy 
Solutions Architect at ASOS.com
"If you're looking for a RAD framework to help produce data-driven ASP.NET WebForms applications without spending a lot of time hand-crafting HTML or building data access and business logic code, M# offers an abstraction over the repetitive boilerplate of WebForms development along with tooling to quickly implement your applications.

The code generation is based around a plain-text DSL which plays nicely with source control, ensuring that you still have control of your code-base as and when you need to modify your code."

David Whitney 
Technical Architect at JustGiving
"M# has that WOW factor not just because it can make you a lot faster but because it doesn’t sacrifice quality and flexibility in doing so.

It fits in very well with the modern methodologies and processes like BDD, TDD, Agile etc. Architects can use M# to define the code architecture while developers then use it to quickly develop and add the functionality and test engineers can use M# to quickly write and run the automated tests.

No longer do you have to choose between “Rapid” and “Proper” development as with M# you get both."

Rafeeq Ganayi 
Technology Architect at Accenture
"Real-world software projects demand mastery of object-oriented design patterns, automated-testing and complexity control in source code. Those are typically beyond the university curriculum.

When using M#, students will effectively learn software development best practices.

Its immediate visualisation of the compiled C# code from the high-level M# abstractions brings about the much needed mapping between object-oriented semantic definitions and framework-specific implementations."

Prof Jamshid Dehmeshki 
Computing and Information Systems
Kingston University