GithubHelp home page GithubHelp logo

asp.net_n-layered_web_applications's Introduction

ASP.NET N-Layered Web Applications

Written by Vitor Durante

Foreword

I spent two years working with pure PHP after funding my first company. During that time, I rewrote the whole web platform five times. But still, the whole code was unreadable and tangled. I noticed something was wrong. After spending weeks working on my own framework, I met the Ruby on Rails and Django world. I was still a novice, but the concept of a Model-View-Controller architecture was appealing.

It just occurred to me that I knew nothing after all. At this point, I took a break from web development. I spent a whole year studying abroad, working on new, diversified projects.

After that year, a new company had taken place and I had the opportunity to seek a new beginning. This time, I started working with ASP.NET MVC. As my applications grew in size, it became clear that the MVC architecture was not enough. It was great for a small company, but it started to fall short in some aspects as my company grew in size and complexity.

Seeking the state of the art - yet robust - web development practices, I met ASP.NET Boilerplate. After months struggling with its low learning curve (from my perspective), I decided to write this book.

The intention is to present and carefully explain the best practices of software architecture, design pattern, modern web development and more. The book displays theory and practices through the usage of the framework, all explained by examples. It also implements a few applications. Feel free to skip the theoretical part if you are already familiar.

After this book, I expect you to have a solid foundation to build your own industrial-tier modern web applications.

Why I Wrote This Book

When I start working with new programming languages, architectures, designs, frameworks and concepts in general, I usually feel lost and overwhelmed at first. It takes some time to master everything necessary to start feeling comfortable and secure that I am doing everything the right way. I felt the same when I started working with C#, ASP.NET MVC and ASP.NET Boilerplate.

After bad experiences with my first company, I felt the necessity to seek best practices on web development. From this experience on, I started investing several hours per week studying theories related to my fields of interest: Computer Engineering, Computer Science, and Web Development in C#.

However, I believe that knowledge must not be kept to ourselves. Knowledge must be shared. This time I decided to write a book on my free time to document everything I learned during these past years of studies and practices. I didn't intend to write everything from zero, since I don't feel capable of doing so. Instead, I decided to compile only the important segments in a simplistic book that would allow a complete beginner to develop web applications the right way.

I must make it clear that apart from the practical examples (Part II and onward), I didn't generate all the content of this book. I call it a book due to its size, but I see it as fragments of important and spread concepts that I stumbled upon during my research and studies. Everything is available for free on the internet. I just took the liberty to compile and document everything I felt important in a book for posterior usage. I also changed or included my own explanations when I felt the explanations provided by the authors of those resources seemed too extent or complex. You can read more about these resources at "Extra Resources" sections throughout Part I.

The examples, available on Parth II onward, were entirely written by me using ASP.NET Boilerplate, sometimes inspired by famous books and resources of MVC development working with frameworks other than ASP.NET Boilerplate. These resources are also available for free on the internet and will be presented throughout the book, for the sake of comparison.

This book should be reliable, but don't take everything I write as the absolute truth. Acquiring knowledge is a never-ending process. I intend to update this book as long as I am learning new things.

How to use this book

Part I may be overwhelming and boring. Don't attain yourself reading the book strictly from first to last page. The book should be used as a consulting resource. Whenever you see something you don't know anything about, or don't remember, take some time to read it and understand/remember it.

Part II onward are examples of implementations of web applications. Feel free to read all of them, or reading the introduction and verifying which of them fits best your learning intentions.

Extra resources are presented as bibliographic reference used to write this book. It is advised to read it, although not necessary. Don't forget this book was heavily inspired by these resources, but heavily summarized as well. Take a look at the resources and contact me whenever you don't understand something I wrote.

Feel free to contact me with questions, complaints or suggestions, either by leaving comments on paragraphs throughout the book, or e-mail, or any other way.

Part I. Building The Theoretical Foundation

Part one describes the theory behind robust programming, software architecture, software engineering, design patterns, general conventions, C# language, the ASP.NET MVC framework and the ASP.NET Boilerplate framework.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.