My goal is to make your life easier, specifically when it comes to learning software development. I remember what it was like to not know even what questions to ask. In every video I do, I try to answer those questions. You will notice that I don't usually do quick videos. That's because I would rather help you understand rather than just padding my watch percentages. If you want more in-depth training, feel free to head over to my website (www.iamtimcorey.com) where I have courses dedicated to C#, SQL, and more.
The better you know C# the easier you'll pickup JS. I started with C#, but struggled. I also knew from dabbling with ASP core MVC, that I'd needed to understand some JS if doing web based stuff. I still struggle with C#, because I haven't done much in the last 8 months. I've been doing HTML/CSS/Vanilla JS instead. I am better at those than C# now, comfortably. What I knew about C#, helped me heaps. Sure there's lots of differences, but there's lots of similarities too, as there is with other langs too. There's also lots more free JS resources for learning than C#. I'm just starting to get back into C# now.
After spending a couple hours reading multiple other tutorials and just trying to figure out where/how to put async/await into my code to get any kind of functionality... You, my good sir, come to the rescue! Hooray! Many thank yous - also the step by step showing and explaining how the await affects the execution is also helpful. The basics are relatively simple and I understood roughly what these functions did but all the other tutorials and their examples left me unable to apply it into my code and feeling stupid for it
Hi Tim Corey! I am one of your viewers in C#. NET i just want ask about dbo keyword , It is require to attach dbo after the Database Name everytime when i calling may Database or Store Procedure?? hope you seen my comment Thank You😊
It is all about specificity. If you just provide the stored procedure or table name, SQL has to figure out which resource you are talking about. Unlike the database name, which can be assumed based upon your default database name that you chose in your connection string, there isn't a default owner. That means SQL has to figure out which owner (typically "dbo") owns that particular resource. This can be doubly a problem if two different owners own the same item name. The way to squeak out a bit more performance from SQL is to specify the owner name.
This really was a good video, especially with the diagrams (which i was missing in other videos). I think it is all clear, except for one question: Where in the example project is CQRS implemented? I see the API, which is basically CRUD (except for Update/Put). If you would add a handler-class for update, you would have 4 different handler-classes for CRUD. I can not see the separation of R | CUD....Can someone clearify that please? Thank you!
Great video Tim , but when you deploy a web api with a background service, this service it will not start until some endpoint on the api is hit, is this normal behavior for hostedServices?
An API (or any website, really) should be accessed right after deployment to initialize everything. Otherwise, it will conserve resources and wait for the first caller to set things up. It can take a while for that first call to finish processing everything. Instead, run it right after deployment to get everything warmed up. This will also kick off your background job.
Should we enable swagger for production? Currently by default it is only accessible for development. Is there an issue exposing the schema in production?
It depends on your API and your security levels. I prefer to, but an API that is unknown is harder to attack (not by a lot, but it will reduce attacks).
I had just started to consider learning JavaScript. Been learning .Net about a year now and recently started to work on a new project with web API and started to feel like consuming the API, I'd need JavaScript. I wasn't sure if i was gonna start learning it until I got the notification of this video yesterday. At that moment, I knew it was the Universe speaking to me through Tim. The problem with selflearning is not trying to learn to code itself, it's knowing what to learn and when to learn it. And thats where videos like this come in. Thanks Tim Corey.
Mr. Corey, can you answer a question about your courses? If I’ll purchase your course then will you allow to download videos by link or it will be just a link to see your closed videos on RU-vid?
When you purchase my courses (not just rent through the DevPass), you get lifetime access. Part of that includes the ability to download the course content for offline viewing. My courses are not hosted on RU-vid.
In the TimCo Retail Manager (a playlist on my channel), we use WPF for the front-end and an API to protect calls to the database. The WPF app never has to know secret information in order to access the database.
Hello Tim, do you cover how to create a JavaScript chart on any of your projects? One of the biggest mistakes I found with other videos others are covering is that they show you how to create a JavaScript Chart but it calls the database directly. Thats sounds like a terrible idea. Wouldn’t you want to use an api for the JavaScript Charts instead?
I definitely don't recommend JavaScript calling any databases directly unless they are local caching databases. Otherwise, you are exposing your database to the world. Yes, I would recommend an API for any client-side code (JavaScript or Blazor WebAssembly). I don't have a video on using JavaScript charts, but you could leave a suggestion on the suggestion site: suggestions.iamtimcorey.com
I avoided javascript for the longest time as a .NET developer. I ended up taking over a project that had a lot of frontend javascript and didnt know how to update it. Took the weekend to learn javascript and from then on it was like a whole new world opened up. I could do so many awesome things that you cant do out of the box with .NET. Jquery datatables for starters is the best thing in the world. AJAX calls are a life saver. No more having to do postbacks and page refreshes evertime you want to get back data. That is annoying.
Yep, it wasn't until Blazor that we even had a C# option for these client-side interactions. Now we do, but it is still really helpful to know JavaScript.
@@IAmTimCorey Blazor does seem ok for async server requests, but as far as DOM manipulation, it doesnt have that capability for the most part. Thats my only reason for sticking with Javascript instead of going to Blazor. Blazor substitutes a few things in C# that javascript already does. I would rather just stick with Javascript since it already does everything right out of the box. I just dont see enough benefit to change to Blazor.
Hi Tim, Hope you are well! When I do dotnet run on a rest api project I get a "ctrl-x" to end even if I just run the app from the prompt. I'm on macos btw. Where do I go to find info on how to get around that in a cicd jenkins pipeline. I have some postman newman test I want to run. Thanks, Darren
In 2001, while I was completing my university project with C++ programming, Spielberg's movie Artificial Intelligence was screened. I was thinking when the "Dr. Know" character will come true to help me get the project done!🙂 Thanks for your excellent explanation to differentiate between AI and the programming logic.
I am not going to name drop, but I recently worked at a fortune <200 company that switched from .net to node.js. The "Principal" couldn't figure out how to code split and pass around sequelize. So he pilled up 4k LINES OF CODE in one file... Just one giant controller file. It was insane. Crashed all the time and rang up postgres connections to the tune of 22k connections. Good stuff lmao.
There's so much value to learning javascript it's unreal. Even if you don't do any frontend at all the untyped nature of javascript allows you jam out demos/prototypes, algorithms, simple functions way quicker as a proof of concept. I was sold after making the game snake in like 5 minutes using canvas and javascript.
That’s a really bad generalization. There are a lot of new/inexperienced devs using JavaScript because they think it is an easy way to get a good job (it’s not), but that doesn’t mean all JavaScript devs are inexperienced/bad.
I am a C# developer, but I kind got this idea that JS devs get a Job faster. This is not true because of The concurrence (devs per position aplication) ? Or something ele?
It is a number of factors. First, it is going to be about the ratio. If there are 1000 applicants per job opening in JavaScript and 100 applicants per job opening in C#, it doesn't matter as much if there are three times the number of JavaScript jobs. Your odds of getting a job are greater where there is a more favorable ratio. Second, JavaScript is a deceptive language to learn. It feels very simple because it is simple to get started. However, that's like saying that building houses is easy to get started because you just need to know how to hammer a nail into a board. That's only true in the most general of senses. It takes a lot more than that to build a house well. The same is true for JavaScript. You can copy a few lines from ChatGPT and get something running in JavaScript. The problem is that you create a house of cards that will come crashing down if you do it to any scale (like a production app). This leads to a LOT of people claiming to be JavaScript developers, and some even have years of experience, who are not well-qualified candidates for real-world positions. Third, because of the number of people who get into JavaScript, the average pay for front-end JavaScript positions has fallen significantly. If you look at the Stack Overflow developer survey, you will see that front-end developer jobs lag behind other developer jobs in terms of pay. It is all about supply and demand.
I know that you are a c# tutor, but…if you still need to learn JavaScript for frontend, why not learn/use it on backend? Or why would you advocate c# on backend rather than the backend flavor of JavaScript/Typescript
I guess, a language choice depends not only on primary work. Eg, I'm doing web development, but also developing games and some desktop stuff so C# suits more for me, also it provides WASM framework for web frontend. Of course if you focus only on web Dev, you can pick up JS
Because at the end of the day it is a scripting language and the basic working principles is different than what C#, C++ or Java can do, these languages are faster than scripting languages because scripting language code normally interpreted and code executes line by line while your C# C++ and java application are normally compiled and the emphasize is on high performance, well structured approach to software design and they typically provide more features for large applications development while oir scripting languages are typically used for automating repititive tasks and rapid development and deployment
Good question. First, let’s start with a simple analogy. Imagine you build houses. You primarily use a nail gun to assemble the framing. Would you learn to use a hammer too? Yep, even though both do a similar job (drive nails). Different tools for different jobs or situations. The same is true for JS as a C# dev. There are times when it is useful. You can use JS to enhance your applications. Using JS everywhere isn’t something I recommend. It isn’t as performant as I would like on the server. It is also messier as a language. Typescript can help, but it also interiors own issues. As a developer, you are going to end up learning multiple languages. The keys are first to learn one really well and the second is to learn when to use the other languages to supplement your primary language.
EF is a great tool. If you use it right, it can be powerful and performant. The new changes in .NET 8 only improve that performance capability. However, the true performance of EF was never really the issue that I've had with EF. The issue is with how it is actually used. In order to get EF right and to not cause massive performance issues, you need to tune every model and query that you write. Then you need to track how the database handles those queries to see if you need to make adjustments. At the end of the day, you are doing a LOT of work in SQL and a LOT of managing EF and you have built a complex data access system. That isn't really going to change over time because of the nature of generated data access. That's why I prefer to use Dapper. Yes, it forces you to work in SQL, but the way I see it, it is forcing me to do what I should be doing with EF.
Excellent video! Trying to repeat these steppes and learning even more stuff like RabbitMQ and MassTransit, Redis and I am still learning and have fear to apply for the job. 2 years and six months passed. Maybe I am dumb 😂I don’t know.
Practice builds confidence. When you've done something 100 times, you are more confident doing it than when you have done it 2 times. Beyond that, though, you will just need to take the leap without being fully confident. Almost no one is fully confident. We do it anyway. You can do it.
I don't think AI will make the job as a software developer easier, as BASIC did not make the job easier. Getting more done, does not mean, the field in general becomes simpler.
I think you are trying to split hairs here. If I can get 10 tasks done before I start using a tool and I can get 15 tasks done after using the tool, doesn't that mean the tool made the job easier? AI helps you get more done. That doesn't diminish the job or its complexity. It just means that you can do more because of this additional tool.
It’s all about perspective, right? A boot camp will cost you over $10,000 and you won’t get better training than this course. If you can find the quality and cohesive training over multiple courses on Udemy, though, go for it.
More like they love using the tools available to them on the web to provide even more power to the developers. This isn't a reinvention of AJAX. This is a way to use JavaScript in new and interesting ways.
Ohhh how naive, I too thought this was the answer when I learnt it in css years ago. How wrong I was. One thing CSS is absolutely consistent in is, no matter how many ways we find to finally solve centering a div it *will* find a way of use case it doesn't work. Of I get time later I might dig up one of my multiple applications where it refused to center using your above solution because something stupid that required daft workarounds.
It isn’t the solution to every situation, as I stated in the video. It is the easiest solution that works most of the time. There is also CSS Grid and others.
I keep getting an error "403 Forbidden" when using the pipeline to deploy the API, but not when I publish using Visual Studios. Has anyone found a solution?