I have seen many questions on whether to design data first or code first when designing a new application. I wonder if some have the same conclusions/ideas as me. I come from painting/digital design/UI background and naturally I went into Front-End. Currently I can code and build UI's quickly in HTML5,JS,jQuery and AngularJS. I have also touched on PHP and the popular stacks for it (LAMP, WAMP,XAMP etc.) and WordPress. I have also worked with Oracle SQL and TSQL on MS Server on a few different jobs.
For the last year I have been working with C# and ASPX and then for the last 6 months MVC5,JSON APIs with SOAP.
Recently I have also picked up AngularFire for Firebase.
9-5 I work for big corporations so the stack is usually .NET however outside of this I build sites for clients in open source usually and Front-end languages.
From this we can see I have touched on many different languages (some not named) and web application/software design and building but I still struggle at times to know whether to design my data first or code first? In the MVC applications (2-5 applications) I have built and worked on, the database was already created so I am starting to get a little used to (and enjoy) following the data first approach and in VS generating my model automatically (+ the T4's) then designing the Controllers and finally either Views or back to Controllers or some API.
With AngularFire showing us you CAN only code first and the database can be 100% automatically built for you (creation of the DB object and columns).
From this I wonder if many more are in this almost 'limbo' mode because of many different design practices and if any can offer tips of how to not get too confused and possibly offer one way to follow for solid practices of software/application engineering/coding/design.
Pros and cons: I do note though what I have seen so far is that AngularJS and Firebase offer application building at rapid pace as it's quick to define Controllers in JS and check data changes at real-Time in Firebase, this also allowed me to focus more on the features I want rather than looking constantly looking for library's, add JSON and the application starts to become powerful and still executes fast.
With .NET (MVC5, C#,EF5, JSON) it's quicker than a LAMP stack for CRUD operations as there is lot's available right out of the box as well as complex data pull and pushes with JSON, so still favour this over ASPX thus producing powerful web apps quite quickly too, although when the project grows execution can be slow locally and once deployed.