As a personal project, I'm creating a single page, asp.net web application using Nancy to provide RESTful services to the single page. Due to the complexity of the single page, particularly the JavaScripts used, I've think creating a dedicated project for the client side of web development and another for service side will organize and simplify the development.

  +-- web / client side (single html page, js, css)
  |    - contains asp.net project, and nancy library 
  |      to host the modules in application project folder
  +-- application / service (nancy modules, bootstrap for other layer)
  . and other layers (three tier, domain driven, etc)

Is this a good way of organizing a complex single page application? Am I over-engineering the web app, incurring too much complexity?

  • 1
    Off-topic. You might want to try: codereview.stackexchange.com
    – Jim G.
    Dec 11, 2012 at 4:10
  • 2
    I've checked the FAQ of codereview and it considers "Higher-level architecture and design of software systems" as off topic, though honestly, I'm torn as to consider if my question is a higher-level architecture or not. Nonetheless, thanks for the post. Dec 11, 2012 at 8:09

1 Answer 1


There is really nothing wrong with splitting them apart or keeping them together. If you plan on reusing you nancy services for other front ends it would make since to keep them separate. It would be trivial to factor out a single page with no backend later on if needs change, so just do what makes the most since to you -its just personal preference.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.