While building on something like Microsoft Dynamics or Salesforce may give you a product with great capabilities in less development time, there is a downside. The main downside is that your destiny is not in your hands. The licensing cost alone can be prohibitive of your being able to hit any markets other than those medium to large enterprises.
You are also tied to their timeline. I have written products tied to Microsoft products and it seemed that every time they released a new version, it broke my app. And you may find out about this broken functionality at an inopportune moment after a client has upgraded the base product.
Another issue is that their limitations become your limitations. There are some things innate in their products that may not fit with the way you want your product to behave. It may be hard to code around some of these limitations.
Finally, these enterprise products can be very confusing to many users. If they are going into an enterprise where you have dedicated users with time to learn the products, they can be good. However, go out and Google about ex Salesforce users and you will find that most of them stopped using the product because it was cumbersome and complicated. How can you build a simple, easy to use product on top of a complicated app.
The bottom line is that you need to determine what exactly is your market and evaluate your market's needs and whether they want and have the money to spend on your product. There are many great products out there, so they certainly need to be evaluated, but they have disadvantages that need to be considered as well.