Database First vs. Code-First Approach in Software Design Workflows
Database First vs. Code-First Approach in Software Design Workflows
2. Greater control - you only have what you created. Visualization and teaming up with different software
You can control both your code models and your development skillsets helps build more useful products and
database design. Your responsibility is much higher, helps solve problems easier.
but its the price of more control. The benefit of the design-first approach is that it can
3. Database version control - by version controlling lead to new visualization innovations that are not
your source code you're helping to version your constrained by data. Provocative visualization concepts that
database. (Mombrea, 2014) are not yet possible may drive future technology
requirements. This approach is opportunity for innovation in
that new data and analytic technology requirements that
IV. OTHER APPROACHES solve user needs may be derived directly from the design. We
believe there are classes of problems for which the design-
Of other approaches used in software development first approach will yield better results than traditional
authors often refer to a design first approach as a new approaches. The design-first approach is especially
perspective in creating APIs. promising for new problems that do not yet have strong
First thing that we think about when we mention design- visualization solutions and it is also a great way to re-
first approach is that we are working something backward. examine visualization problems that have been investigated
Design-first approach starts with a design thinking approach for years without a suitable solution or significant
to creating an application, then proceed to a prototype, improvement. (Theresa-Marie Rhyne, 2015)
multiple iterations based on real feedback, and finally a top-
down approach to solving the coding problems.
For example, in most government organizations non-IT more abstraction. Also, if you want minimal code impact
people use client-server information systems which are very with regards to database storage changes its natural to
hard and complicated for them to use. Design-first approach choose database first approach.
maybe can help to re-examine visualization problems and
offer suitable solution and significant improvement. Using code first approach is more preferable if you want
more control over your code and your databases as well as
If we make comparison to other approaches we can more control over database versioning and more coding over
conclude that database-first approach is fastest way to build design, in the end.
application and code-first approach is for larger long term
projects because provides a better control for making Using design first approach helps to motivate children to
efficient program. Design-first approach may be slow learn more about programming as well as to help people
solution because we may not be able to implement every without necessary coding skillset to team up with ones that
feature that we like in that design, and we can get stuck in do to solve problems together and build meaningful apps
code doing that. (Mombrea, 2014) and software products.
When time is not important with design-first approach
we can implement some new ideas, and explore new
technologies easier. As we have said it is good approach for
re-designing some useful applications with poor design, and
good approach to use in educational purposes because it can REFERENCES
easily stimulate students to get involved, build teams and [1] Griffin, C (May 17th, 2013) A Comparative Look at Entity Framework
learn new things. Code First, La Salle University Digital Commons, La Sale University,
p.8. Retrieved on Sep 10th, 2016. from
When talking about collaborative design first approach http://digitalcommons.lasalle.edu/cgi/viewcontent.cgi?
using simple markup authors often suggest a platform called article=1010&context=mathcompcapstones
Swagger. According to a wide usage over last years and their [2] Oliveira J. (Sep 2nd, 2016) Database or Code First Approach -
Developer's Vision, retrieved on Sep 10th, 2016 from
official page Swagger is an open source framework backed by https://www.linkedin.com/pulse/database-code-first-approach-developers-
tools that help to design, build, document and consume APIs. vision-jader-oliveira?trk=eml-b2_content_ecosystem_digest-
1
A tool called Swagger Editor, for example is one of the core recommended_articles-111-
tools behind that offers instant visualization of the code null&midToken=AQGJ6egiz_k4GA&fromEmail=fromEmail&ut=0iYu
behind as showed in the following photo: mb-pqSHDo1
[3] Mombrea M. (Feb 14, 2014) 3 reasons to use code first design with
Entity Framework, Retrieved on Sep 28th, 2016 from
http://www.itworld.com/article/2700195/development/3-reasons-to-use-
code-first-design-with-entity-framework.html
[4] Theresa-Marie Rhyne (Feb, 2015) A "Design First" Approach to
Visualization Innovation, Retrieved on Sep 28th, 2016 from
https://www.researchgate.net/publication/270758644_A_Design_First_A
pproach_to_Visualization_Innovation
[5] Douglas Kiang (Nov 6, 2015), Coding by Design: A Design-First
Approach Retrieved on Sep 28th, 2016 from
http://www.edutopia.org/blog/coding-by-design-first-approach-douglas-
kiang
V. CONCLUSION
In order to help developers first steps in creating a
successful software product while maintaining control over
database(s) and/or code this paper gave an insight to various
approaches that are available to the developers. Even
though, this paper mostly focused on traditional
approaches database first and code first approaches, new
approach is also introduced here called design first
approach.
Using database first approach is tightly coupled with
Entity Framework, and is often chosen when you have
existing databases created by DBAs with stable schemas and
1 http://www.swagger.io/