Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

General question #12

Open
DrAvriLev opened this issue Jan 18, 2024 · 4 comments
Open

General question #12

DrAvriLev opened this issue Jan 18, 2024 · 4 comments

Comments

@DrAvriLev
Copy link

Hello Mark,
I hope I fine you well.

I'm following and learning for you a lot. And I'm very thankful for that.
However, I'm trying to fit it all together with not much success.
Maybe I'm skipping something(s) along the way?
Maybe I should get your other books as well? Is there a textbook where I could find a comprehensive guide to actually build an app? From scratch, that is?

Please help me on my journey.

My best regards,
Avri

@markjprice
Copy link
Owner

markjprice commented Jan 18, 2024

One of the problems with trying to fit it all together is that C# and .NET are so flexible that you can use them to create any kind of app. And in modern life everything is software. It's like trying to learn enough about biology/chemistry/science to understand how it all fits together so that you can build any type of animal/vegetable/mineral. A data scientist might use them in a Polyglot Notebook to analyse data. An enterprise developer might use them to create a console app that performs some daily processing task needed by the organization. Or an intranet website. Or a public internet website. Or a cross-platform mobile app. Or a game. Each of these apps and services will have some common features but each will also have very specific features. Every app or service that you could build will only ever implement a tiny subset of the total possible features provided by C# and .NET. Some authors have tried to write books that build a single app from scratch end-to-end but then readers complain that it isn't the app they want to build and teaches them stuff they will never use. And so much of that complete book would be repetitive because real apps are like that. The app might have 30 dialog boxes/windows/web pages in it. But you only need to be taught how to build one or two that use most of the controls. In my book, Apps and Services for .NET 8, I have chapters about all the modern technologies that are used to build apps and services, but the book does not build a single complete app for that reason. The only way to learn enough to feel you know how it all fits together is to build lots of different apps. And to maintain motivation during that (if you're not being paid to do them professionally) is to pick apps that you are personally interested in building for your own use (so you can design them). So, what kind of apps do you want to build?

@markjprice
Copy link
Owner

Instead of a book, if you're interested in building a website, you could look at the eShopOnWeb reference project:
https:/dotnet-architecture/eShopOnWeb

Or for cross-platform GUI apps:
https:/dotnet/maui-samples

@DrAvriLev
Copy link
Author

DrAvriLev commented Jan 18, 2024

Thank you for your prompt answer.
It's all clear and logical what you explained so far.
The point is, that when going to build an app (any kind for that matter) you need to know how you should approach it in the first place. I read many publications describing how to set down a pseudo code to build a representation of an application. It's all good. BUT, in order to know what code to insert and where - that's the big issue, is it not? You have to be proficient in C# in all of its aspects to pick the right code that will do what you need for a particular task...

I, myself, want to build a dental office application that track patients, appointments, treatments and so on...
I realize it's quite a hassle, however I fill I'm not so confident of what to use in terms of coding...

See my point?

e.g.,
How to build a schedular appointment like the one you get in Microsoft Outlook? How to begin, where to begin?

@Emopusta
Copy link

@DrAvriLev You need to split your target into small pieces. You said you want to build a schedular appointment. First, you need to create a proper database design. For example, you need an appointment table that has Date, PatientId, DoctorId, Description, etc., and your Doctor, Patient tables. After the basic sketch of your database, you need to choose an architecture to begin for your back-end (if you are developing a full-stack application) I would prefer Onion Architecture. (you can choose whatever you like) Then, implement that architecture through tutorials or documentation you can find plenty of documents on the internet. Furthermore, you are going to implement your basic needs like Transactions, Loggings, Auths, ExceptionHandlings, and stuff. Then your business logic will be implemented and you will call with your API's. Concurrently, you can implement your front-end or mobile application with proper needs and after tests, you need to learn about deployment of your application and stuff. This is a brief explanation of a Full-stack application.

To Conclude, for bigger projects to implement a programming language is not enough to create a wide application. You need to learn Architectures, Design Patterns, Deployments, Tests, and much more. You can find your needs if you google it. For example, do you want a .net Back-end? Just Google .net backend developer roadmap or something else you want. Or if you are not sure what to use ask ChatGPT then ask Google. And so many developing application tutorials exist on youtube that you can follow them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants