I'm an independent developer. I am working on application for a client. The application will be a SAAS product. The hope is that after my current client starts using it and its working well that I can onboard other clients on to my SAAS application. The
application is going to transform thier current paper based "business operations" into an application.
As I am working on the development for this app on my own I keep looking for "templates" that will help reduce my development time so that I can focus on building the core business requirements as requested by my client.
The questions I have for the community and where I would like some feedback center on
what is the best design pattern for me to follow for my app?
I have spent a lot of time coding/testing with the
ASPNETBOILERPLATE and
ASPNETZERO templates. I have tried both the MVC and .NET Core versions.
I have also looked into
URF template. I have also read the e-book from MS, about "clean/onion" architecture that is included on
this site.
I have also completed several of the Asp.Net core tutorials on Asp.Net Core. Including the "Working with data" tutorial.
After doing all of this reading/learning. I am wondering do I need to go to such lengths and follow these patterns so strictly? What if I just go with the basic Asp.Net core web application (Razor pages or MVC) template that comes in Visual studio and just
build everything into one project. Do I need to goto such levels of depth in my architecture for this first version of my app?
One of my concerns has been and still is, that I want to build with the latest tech stack so that my app remains "useful" for a while. I also dont want to be "bleeding edge" and end up with scars everywhere or worse yet, dead!
If one doesn't know how to design solutions from the frontend to the backend, knowing what technology needs to be in place and how to use the technology, then it's not going to work out well. One can use a tech stack from Mars, but if the solution is not
designed well with the ability to scale when needed, then it will face trouble.
I work as a software consultant, architecting solutions in the cloud as well as as mobile and web.
You've just validated what I thought might be an issue for smaller development teams/developers who want to get straight to the coding functional requirements but also are concerned about non functional requirements (NFRs) such as writing maintainable, testable,
clean, scalable code. This would normally be done by an architect in a bigger organisation, with the architecture documented and guidelines on how to utilise the patterns and how to avoid any gotchas.
However as a solo developer you will have to tackle all of these issues yourself. You can by all means choose to not adhere to any patterns and simply code, but the question of will what you code stand the test of time and will another developer be able
to continue the project are your concerns.
My question to you is would you be interested in an Architecture as a Service, whereby these design decisions are made and documented with template code put in place accompanied by instructions and support?
That way you could start coding your functional requirements with the knowledge that the architecture will meet the non functional requirements. Eventually the Architecture as a Service product would expand to include the Software as a Service Template,
to allow developers to not have to worry about spinning up new client instances in the cloud or on premise and deploying and managing the various client instances or worrying about a multi-tenant setup and one mistake potentially allowing clients to view each
other's data.
But instead allow them to focus on building a great product for their clients.
I would be happy to this in more detail and get your thoughts and feed back.
Thanks very much for your response. You completely understood the point of my question and my pain points! I would be interested in hearing more about your idea.
Implementing a good architecture may require a lot of boilerplate coding for all the different layers, which makes it hard to focus on the actual business requirements, and slows down the development.
What you may want to consider is a platform that allows you to create a logical model for your application, and then generates most of the code for you, while letting you customize it and extend it as needed.
Check out these videos on the Xomega platform, for example, which show you how to model and build a WebForms application, and then reuse the same model and most of
the code to upgrade it to a SPA, generating most of the code for you.
This way you can future-proof your system, and easily upgrade it later, as a new architecture or framework comes along.
Judgment on the best design pattern of your app is a little ways down the road.
There are many obstacles along the way, one of which is time. Another one is money.
How much time do you have to explore different design patterns? Will the success of your venture be determined by selecting the 'right' design pattern? Not right now, I think.
I picked the framework I myself was going to be able to use quickly, without a lot of extra time and money need for 3rd party assistance. The idea being to get to proof of concept as quickly as possible, think it is called Minimally Viable Application.
Been at it for several years, and my only regret being that I did not implement Bootstrap early enough. Ended up spending much time doing it after my application had become significant in complexity.
Along the way I was pushed towards implementing EntityFramework mainly because there was one piece of functionality that was tricky due to many db interactions.
Later I converted my Web app to a progressive web app, and my apps are now on the Windows and Android Stores. I could add to Apple Store, if I wanted.
Apply for BizSpark from Microsoft and you will get help with Azure credits and software.
Click on "Mark as Answer" if my answers help you along.
What should be kept in mind IMHO is that the purpose of using patterns is to bring benefits. So I would suggest to focus first and foremost about the benefits they bring and see if you need them. Also to me it makes sense to do something simple and enhance
as needed.
What I dislike most is to see a pattern or some complex architecture being in place "just in case" and never ever really getting any benefit out of it.
Member
5 Points
155 Posts
Modern business application architecture - feedback request
Feb 01, 2018 10:46 PM|BlueTSX|LINK
I'm an independent developer. I am working on application for a client. The application will be a SAAS product. The hope is that after my current client starts using it and its working well that I can onboard other clients on to my SAAS application. The application is going to transform thier current paper based "business operations" into an application.
As I am working on the development for this app on my own I keep looking for "templates" that will help reduce my development time so that I can focus on building the core business requirements as requested by my client.
The questions I have for the community and where I would like some feedback center on what is the best design pattern for me to follow for my app?
I have spent a lot of time coding/testing with the ASPNETBOILERPLATE and ASPNETZERO templates. I have tried both the MVC and .NET Core versions.
I have also looked into URF template. I have also read the e-book from MS, about "clean/onion" architecture that is included on this site.
I have also completed several of the Asp.Net core tutorials on Asp.Net Core. Including the "Working with data" tutorial.
After doing all of this reading/learning. I am wondering do I need to go to such lengths and follow these patterns so strictly? What if I just go with the basic Asp.Net core web application (Razor pages or MVC) template that comes in Visual studio and just build everything into one project. Do I need to goto such levels of depth in my architecture for this first version of my app?
One of my concerns has been and still is, that I want to build with the latest tech stack so that my app remains "useful" for a while. I also dont want to be "bleeding edge" and end up with scars everywhere or worse yet, dead!
Thanks in advance to all those that reply!
Contributor
4933 Points
4205 Posts
Re: Modern business application architecture - feedback request
Feb 02, 2018 12:17 AM|DA924|LINK
If one doesn't know how to design solutions from the frontend to the backend, knowing what technology needs to be in place and how to use the technology, then it's not going to work out well. One can use a tech stack from Mars, but if the solution is not designed well with the ability to scale when needed, then it will face trouble.
https://en.wikipedia.org/wiki/Separation_of_concerns
https://msdn.microsoft.com/en-us/library/ee658117.aspx
https://msdn.microsoft.com/en-us/library/ee658090.aspx
None
0 Points
3 Posts
Re: Modern business application architecture - feedback request
Feb 04, 2018 10:17 PM|PinkhamSoftware|LINK
Hi bluetsx,
Thank you for your post.
I work as a software consultant, architecting solutions in the cloud as well as as mobile and web.
You've just validated what I thought might be an issue for smaller development teams/developers who want to get straight to the coding functional requirements but also are concerned about non functional requirements (NFRs) such as writing maintainable, testable, clean, scalable code. This would normally be done by an architect in a bigger organisation, with the architecture documented and guidelines on how to utilise the patterns and how to avoid any gotchas.
However as a solo developer you will have to tackle all of these issues yourself. You can by all means choose to not adhere to any patterns and simply code, but the question of will what you code stand the test of time and will another developer be able to continue the project are your concerns.
My question to you is would you be interested in an Architecture as a Service, whereby these design decisions are made and documented with template code put in place accompanied by instructions and support?
That way you could start coding your functional requirements with the knowledge that the architecture will meet the non functional requirements. Eventually the Architecture as a Service product would expand to include the Software as a Service Template, to allow developers to not have to worry about spinning up new client instances in the cloud or on premise and deploying and managing the various client instances or worrying about a multi-tenant setup and one mistake potentially allowing clients to view each other's data.
But instead allow them to focus on building a great product for their clients.
I would be happy to this in more detail and get your thoughts and feed back.
Kind regards
Jeff
Member
5 Points
155 Posts
Re: Modern business application architecture - feedback request
Feb 08, 2018 05:18 PM|BlueTSX|LINK
Jeff:
Thanks very much for your response. You completely understood the point of my question and my pain points! I would be interested in hearing more about your idea.
Thanks!
Member
1 Points
7 Posts
Re: Modern business application architecture - feedback request
Aug 20, 2018 03:17 AM|xomega|LINK
Implementing a good architecture may require a lot of boilerplate coding for all the different layers, which makes it hard to focus on the actual business requirements, and slows down the development.
What you may want to consider is a platform that allows you to create a logical model for your application, and then generates most of the code for you, while letting you customize it and extend it as needed.
Check out these videos on the Xomega platform, for example, which show you how to model and build a WebForms application, and then reuse the same model and most of the code to upgrade it to a SPA, generating most of the code for you.
This way you can future-proof your system, and easily upgrade it later, as a new architecture or framework comes along.
Contributor
2611 Points
2713 Posts
Re: Modern business application architecture - feedback request
Sep 09, 2018 05:04 PM|wavemaster|LINK
Judgment on the best design pattern of your app is a little ways down the road.
There are many obstacles along the way, one of which is time. Another one is money.
How much time do you have to explore different design patterns? Will the success of your venture be determined by selecting the 'right' design pattern? Not right now, I think.
I picked the framework I myself was going to be able to use quickly, without a lot of extra time and money need for 3rd party assistance. The idea being to get to proof of concept as quickly as possible, think it is called Minimally Viable Application.
Been at it for several years, and my only regret being that I did not implement Bootstrap early enough. Ended up spending much time doing it after my application had become significant in complexity.
Along the way I was pushed towards implementing EntityFramework mainly because there was one piece of functionality that was tricky due to many db interactions.
Later I converted my Web app to a progressive web app, and my apps are now on the Windows and Android Stores. I could add to Apple Store, if I wanted.
Apply for BizSpark from Microsoft and you will get help with Azure credits and software.
All-Star
48510 Points
18072 Posts
Re: Modern business application architecture - feedback request
Sep 09, 2018 06:12 PM|PatriceSc|LINK
Hi,
What should be kept in mind IMHO is that the purpose of using patterns is to bring benefits. So I would suggest to focus first and foremost about the benefits they bring and see if you need them. Also to me it makes sense to do something simple and enhance as needed.
What I dislike most is to see a pattern or some complex architecture being in place "just in case" and never ever really getting any benefit out of it.