Font switch in ConTeXt mkiv

Typescript-based version :

\usetypescriptfile[asana]

\definefontfeature[default][default][onum=yes]

\starttypescript[me]
    \definetypeface [me] [rm] [serif] [pagella] [default]
    \definetypeface [me] [ss] [sans]  [heros]   [default]
    \definetypeface [me] [tt] [mono]  [cursor]  [default]
    \definetypeface [me] [mm] [math]  [asana]   [default]
\stoptypescript

\definebodyfontenvironment [10pt] [a=16pt]

\setupbodyfont[me,10pt]

\starttext
italic but not math \it mathmode 123

$123 mathmode$

\tfa Big
\stoptext

Simplefonts based solution:

\definefontfeature[default][default][onum=yes]
\usemodule[simplefonts][size=10pt]

\setmathfont[Asana]
\setmainfont[Tex Gyre Pagella]
\setmonofont[Tex Gyre Cursor]
\setsansfont[Tex Gyre Heros]

\definebodyfontenvironment [10pt] [a=16pt]

\starttext
italic but not math {\it mathmode 123}

$123 mathmode$

\tfa Big

\stoptext

Aditya's solution is great but unfortunately outdated. ConTeXt is developed at a very fast pace and a lot happened since 2012. The documentation of the simplefonts module lists some changes and I have implemented them on the basis of Aditya's example.

Today you perhaps want to use the official companion math font for TeX Gyre Pagella instead of Asana Math.

\definefontfeature[default][default][onum=yes]
\definefontfamily[texgyre][serif][TeX Gyre Pagella]
\definefontfamily[texgyre][sans] [TeX Gyre Heros]
\definefontfamily[texgyre][mono] [TeX Gyre Cursor][features=none]
\definefontfamily[texgyre][math] [TeX Gyre Pagella Math]
\setupbodyfont[texgyre,10pt]

\starttext
italic but not math {\it mathmode 123}

$123 mathmode$

\tfa Big
\stoptext

enter image description here