Дружище, если разговор идёт о программинге в НЕТ, то изобретать ничего не надо, ты будешь юзать(т.е. наследовать, перегружать) уже написанное, уже изобретенное мелкософтом.Останется только научиться правильно это юзать в своей проге.
Соответственно функциональность и прочие фичи будут зависеть от этого.
В любом случае - удачи.