DZone
Database Zone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone > Database Zone > A New Overview of My Continuous Delivery Application

A New Overview of My Continuous Delivery Application

Alexander Beletsky user avatar by
Alexander Beletsky
·
Sep. 12, 12 · Database Zone · Interview
Like (0)
Save
Tweet
4.08K Views

Join the DZone community and get the full member experience.

Join For Free

It's been a almost a month how I started to re-implement my continuous delivery application - Candidate. In my previous post I already mentioned some areas are going to be improved, what technologies considered to be used. I haven't managed to make huge progress on the project so far, but I have something to show.

Overall application architecture

I tried to build it with classical API oriented architecture in mind. That means that server side code exposes some simple HTTP API, the rest of stuff happening on browser. Fortunately, I got really simple UI, but still UI plays really important role. So far, I spent 80% in Sublime for front-end and 20% of time in Visual Studio for the back-end.

Server side technology stack is a NancyFX + RavenDB, client side build with Backbone.js + Require.js.

The primary application change is that it's no longer a IIS application, but just a standalone app.



So, you just launch an .exe file, and after application warms up, the candidate is available at http://localhost:12543.




To simplify life a bit (and to not harm the eyes of users) I'm using Twitter Bootstrap CSS framework and happy with it.

Server side

NancyFX is a very lightweight framework, but it requires some skills. So far, I met several interesting challenges, that has been successfully solved. But, Nancy does its job and does it pretty well.

RavenDB initial impressions are really positive. I'm currently doing very basic functionality (as inserting, querying and deletion of documents). But, indeed working with document oriented database feels much simpler and native for C# developer. Forget about any SQL, schemas, ORM's - store and restore POCO's, that;s all you need to know. RavenDB API is very clear and intuitive.

I used an embedded version of RavenDB, which suites me best - since I want to minimize any effort for application installation.

As I said above, server side exposes HTTP API which receives and responds with JSON based payload. There would be some interfaces for starting/stopping the deployment tasks... but the rest is happening in the client.

Client side

Since I met Backbone.js framework I thought to myself: "I will never ever writing 'scripts' in front-end, instead I'll be doing browser powered applications". Backbone.js introduces structure in front-end. Front-end development with Backbone.js is no longer $.ajax calls and updates of DOM inside the success: handlers. With Backbones's main entities you build front-end apps in similar way as it would be desktop applications.

Being inspired by Addy Osmani's Writing Modular Javascript blog post and speeches, I'm trying to apply some of these practices. In particular I'm using RequireJS for AMD and Backbone's views as kind of widgets (or modules).

The front end is being built in SPA (Single Page Application) style, which is kind of new to me. Backbone.Router is great component though and I don't need anything more, at least for now. I wish to keep UI as much responsive and fast.

As always, you are welcome to review server side or client side code, let me know your opinion or ask questions.
application CI/CD Delivery (commerce)

Published at DZone with permission of Alexander Beletsky, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Troubleshooting HTTP 502 Bad Gateway in AWS EBS
  • C++ Creator Bjarne Stroustrup Interview
  • Implementing Microservices Architectures
  • The Importance of Semantics for Data Lakehouses

Comments

Database Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo