I work for mid-sized company that currently has an application that runs on an IBM iSeries. Our application is very large (12 million lines of code and over 4,000) programs). It has been in service for over 17 years and we have come to the conclusion that it is time to start over. We have explored migration and modernization and while both of those have some merit, we believe that starting with a clean slate and attracting a younger talent pool is in the best interest of the company.  We want to start exploring our options in terms of the development platform we should target.  Some of our questions are:

1) Should we develop for a local environment or go cloud?  Or perhaps a mix of the two?  All web apps or actual applications?

2) Will apps written within the Microsoft landscape scale well?  We have databases (DB2) that contain over 10 million records in them. Can apps developed using SQL Server handle that kind of volume?

3) We do a lot of communications with banks, federal, state and local agencies. Do the tool sets allow us to talk with all these partners?  Some of it is EDI, FTPS, program-to-program. It is an important part of what we do.

4) Unfortunately we also produce a lot of paper. We have in our library over 400 forms that produce. They must be reproduced accurately, with small tolerances for data positioning on the forms. We also need to retain electronic copies of these forms. Will the tools handle that?

I have a lot more requirements, but I am just wondering if someone could point me in the right direction. What tools should I consider?  As I look at Microsoft's portfolio of tools it is very challenging to try and figure out what all the pieces you need to pull off writing a large application.

Your thoughts and comments are appreciated.