10 C# Libraries To Save You Time And Energy

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ม.ค. 2025

ความคิดเห็น • 474

  • @d.g.s.7572
    @d.g.s.7572 3 ปีที่แล้ว +1

    Thanks!

  • @wavypoland
    @wavypoland 4 ปีที่แล้ว +28

    2:38 SharpZipLib
    4:02 FluentEmail
    5:22 MailKit
    6:14 Papercut SMTP
    8:56 EPPlus
    11:53 Hangfire
    16:19 MassTransit
    18:34 Polly
    22:20 Serilog
    26:05 Seq

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +9

      Excellent - Thank you. This will benefit many other viewers so I added it to the video. Just so you know, you need to start with "0:00 " to get TH-cam to pick it up and apply it to the video, so I added "0:00 Intro"

    • @RalfsBalodis
      @RalfsBalodis 4 ปีที่แล้ว

      Thanks.

  • @nickchapsas
    @nickchapsas 4 ปีที่แล้ว +36

    An interesting take on the subject. I like how these are more business level functionality focused rather than more developer-focused and granular like I have on my video on the subject. Nice stuff 🙏
    PS: I historically had scaling issues with Seq and I can't really recommend it to anyone, at least not if you want long term retention (7-15 days+) in a high throughput environment

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +9

      Interesting. I'll check it out. Thanks for sharing.

    • @TheCameltotem
      @TheCameltotem 3 ปีที่แล้ว +1

      Your channel is very different, its very granular and low level examples of how to optimize code where as Tim Corey has a broader perspective and more of a overview. Both are are obviously great depending what you are out after.

  • @_Hadda
    @_Hadda 4 ปีที่แล้ว +5

    This is by far the greatest c# channel on youtube, great work! Thank you!

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Glad you enjoy it!

  • @ikhlashussain2862
    @ikhlashussain2862 3 ปีที่แล้ว +2

    I am a beginner to C# and I have found your every video really good, informative and helpful, So I wanna thank to you for your great contribution in the learning community, Thanks a lot sir!!!!!!!!!

  • @NavanBethrax
    @NavanBethrax 4 ปีที่แล้ว +24

    The "don't use real email addresses" part remembers me of a one-day-trail at a local web solutions company.
    I had to send some template mails, and i was new to javascript at that time. I ended up flooding the inbox of the company ceo with thousands of sample mails. Maybe i would've got the job if i flooded a testserver instead :D

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +9

      Valuable lesson learned and Thank You for sharing. Hopefully others can learn from this. Don't use real "data", even if you think its secured and completely under your control. CEO's email address as test data did not work so well in this case. Avoid using real data (Actual account numbers, email addressed, credit card numbers, personal information, etc.) even when you are on a test server. I have seen too many "fails" where testing has impacted real world production environments.

    • @Dave-nv5rv
      @Dave-nv5rv 4 ปีที่แล้ว

      @@IAmTimCorey
      So what you're saying is use common sense😊

    • @marcusmaunula5018
      @marcusmaunula5018 4 ปีที่แล้ว +7

      The most classic example I can think of was from the 90s. One guy in a large Bank made a test email supposed to go to those with more than than a certain amount in the Account. He started them with Dear Rich Bastard. Unfortunately it went out to the actual customers :). He got fired for that. Not sure I would have been offended personally, kinda funny thing to get from your bank :).

    • @johnali4117
      @johnali4117 4 ปีที่แล้ว +1

      @@Dave-nv5rv But the sense is not common with everybody!

    • @Rhodair
      @Rhodair 3 ปีที่แล้ว +1

      @@Dave-nv5rv common sense is neither sensical nor common

  • @higorpereira1263
    @higorpereira1263 4 ปีที่แล้ว +3

    Hey Tim, just got my first job as a Trainee Web Developer. My main language is Javascript(I've been a React/Nodejs developer for more than a year) but they asked me to learn C# at work. Your videos are helping a lot.

  • @kellelein
    @kellelein 4 ปีที่แล้ว +47

    Would love to see a video about MassTransit

    • @marcusmaunula5018
      @marcusmaunula5018 4 ปีที่แล้ว +6

      Also Hangfire :)

    • @GeorgiMarokov
      @GeorgiMarokov 4 ปีที่แล้ว +4

      If you more interested in MassTransit you should check this playlist by the creator of the package himself:
      th-cam.com/play/PLx8uyNNs1ri2MBx6BjPum5j9_MMdIfM9C.html

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +7

      I appreciate the suggestion and added it to my list.

    • @bitShft
      @bitShft 3 ปีที่แล้ว +1

      @@GeorgiMarokov I used an earlier version of MassTransit for an event driven system we had at my previous place of employment. We had upwards of 100,000,000+ messages a day going through the system. I would definitely use MassTransit again for a future project. As a matter of fact . . . now that I'm at a place that is Linux based, I look forward to trying out the latest MassTransit using .NET Core.

  • @christianking8062
    @christianking8062 4 ปีที่แล้ว +2

    This video was perfectly timed because I was just starting to look for a logging solution. Thanks for the great info.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Glad it was helpful!

    • @marikselazemaj3428
      @marikselazemaj3428 4 ปีที่แล้ว

      Same 👋

    • @Lior_Banai
      @Lior_Banai 4 ปีที่แล้ว +1

      Also if you need log viewer you can use my open source project at github.com/Analogy-LogViewer/Analogy.LogViewer
      it supports many log frameworks and even has real time server

  • @Svvasss
    @Svvasss 4 ปีที่แล้ว +2

    i got into software development by learning java first. just recently switched to c# and i highly appreciate what you are doing here. keep it up!

    • @MagicNumberArg
      @MagicNumberArg 4 ปีที่แล้ว

      Yo. If I may ask a question about your choice, why did you choose C#, and have you considered Kotlin (since, AFAIU, it brings a lot of the good parts of C# to JVM world)?

    • @Svvasss
      @Svvasss 4 ปีที่แล้ว

      @@MagicNumberArg I did not really have a choice. On my new job there is some C# software that i will have to maintain. So i started using C# for my own projects. I want to keep personal complexity as low as possible since i am just kind of starting out. But thanks for pointing that out. I might have a look at Kotlin :)

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Welcome to our world of C#! I'm glad my resources are of help.

  • @giftmguni7368
    @giftmguni7368 4 ปีที่แล้ว +5

    I would say Quartz is much better than Hangfire but it really depends on what you want to do. Quartz has more features and it's even easier with Crystal Quartz (Remote UI) to schedule jobs,maintain and re trigger them. Great video Tim.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Fair enough! Thanks for sharing your perspective.

  • @kevincordell9539
    @kevincordell9539 4 ปีที่แล้ว +1

    How is EPPlus better then OpenXMLand ExcelDataReader for reading and creating Excel spreadsheets? I spent a lot of time figuring out how to use those and find examples to create spreasheets with validation and import/export those spreadsheets for my business. I used ExcelDataReader because it was simple to read a spreadsheet created by someone else and skip the headers and columns that didn't match my criteria. I have something that works and unless it is WAY simple, I don't want to change anything at the moment, although I would like to upgrade my desktop application to .NET 5.0 and take advantage of new features. However, I'm stuck with some windows functionality in my library (yes probably a bad practice) to popup errors when trying to import spreadsheets and allow a retry.

  • @jeremiedevos2180
    @jeremiedevos2180 4 ปีที่แล้ว +2

    I just wanted to take this moment to say Thank You!!
    Your content is amazing in fact i bought a few courses on your website.
    So far i have learned alot and i am not even halfway through.
    So thank you! Keep going your helping a lot of devs this way.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Awesome, thank you!

  • @jamesgill6028
    @jamesgill6028 4 ปีที่แล้ว +5

    Been following this guys videos for years now, absolute god send!

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +2

      I'm glad my content has been helpful.

  • @ChrisMarkwick
    @ChrisMarkwick 4 ปีที่แล้ว +1

    Hi Tim. Some of the alerting you mentioned for Seq can also be done with Grafana and App metrics.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Thanks for sharing.

  • @MusicForHourss
    @MusicForHourss 4 ปีที่แล้ว

    Beginner here.
    We would we need a email library. What' s the benefit compared to something easy and fast like gmail?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      An email library is what we use to send email from C# code. It still needs to connect to an email server (like Gmail) to send the actual email. Think of a C# email library as replacing the user typing out the message in an email client. C# does the typing and hits send. It relies on an email server to do the rest.

  • @AanDahliansyah
    @AanDahliansyah 4 ปีที่แล้ว +23

    "Never wanna send out an email to real people for test purpose". Yes, you got me. But that's fun.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +3

      Testing fails - now there is a fun (and scary) topic.

    • @hryhoriishkliaruk9499
      @hryhoriishkliaruk9499 4 ปีที่แล้ว

      Email no, SMS yes :)

    • @ahmedabd-a6
      @ahmedabd-a6 3 ปีที่แล้ว

      never send advertising emails to clients after midnight, its not fun at all, you can ask my boss 😅

    • @anarhistul7257
      @anarhistul7257 3 ปีที่แล้ว

      How else would you know they are real?

  • @darekf1776
    @darekf1776 4 ปีที่แล้ว +7

    Very informative video, appreciate it. It would be good idea to do such videos from time to time.

  • @laurenzvien
    @laurenzvien 4 ปีที่แล้ว +1

    Hope to see video about SignalR. I am trying to get grasp of it but most of the videos I saw doesn't really explain it that well..

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +2

      That's high on the priority list.

    • @laurenzvien
      @laurenzvien 4 ปีที่แล้ว

      @@IAmTimCorey cool!! Can't wait to watch and learn! 😊

  • @Gramr98
    @Gramr98 4 ปีที่แล้ว +6

    I have a video request: Could you create a video where you explain Semaphores in detail? And maybe explain the differences between them, Mutex and Lock and also some best practices.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +4

      I appreciate the suggestion and added it to my list.

  • @AlbertMata
    @AlbertMata 4 ปีที่แล้ว +4

    I'd love a video on creating PDF/printable reports on .NET 5 Razor/MVC state of the art. Everything I find seems to be old, ugly or generally both. I used Crystal Reports many years ago. That was quite powerful (although, again, ugly and not friendly to use). But I'm not sure what people are using nowadays to create some custom reports from a business web application.

    • @marredcheese
      @marredcheese 4 ปีที่แล้ว +3

      Agreed! Like you, I looked around and was disappointed with the choices. Crystal isn't even an option anymore (except for people sticking to .NET Framework). SAP's (who owns Crystal) forum threads about it show that they have no clue what .NET Core is and say they will never support it. Our company is giving SSRS a try, and it seems decent so far. It lets you use a GUI tool to lay out the reports (taking that load off of the C# programmer), and then your C# code can grab the report via URL (and pass parameters and get back a PDF or whatever).

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +3

      Topic suggestion noted and have added to my list, thanks.

  • @agentsmith8434
    @agentsmith8434 4 ปีที่แล้ว +2

    Happy new Year Tim, I want to thanks you for all your videos that really helped me a lot. Do you have a plan this year to start a Xamarin course?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Not this year because of the changing coming with .NET 6.

    • @agentsmith8434
      @agentsmith8434 4 ปีที่แล้ว

      @@IAmTimCorey Thanks Tim

  • @redyoung5185
    @redyoung5185 4 ปีที่แล้ว

    Happy new year Tim Corey! your video help me a lot

  • @nikbrons
    @nikbrons 4 ปีที่แล้ว +24

    *EPPlus is free for commercial applications below v 5.0

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Thanks for the tip.

    • @bangonkali
      @bangonkali 4 ปีที่แล้ว

      Syncfusion also has a generous free tier for small operations. It gets some tasks done rather quickly.

    • @marcusmaunula5018
      @marcusmaunula5018 4 ปีที่แล้ว +1

      @@bangonkali You have to keep track of the revenue of your customers though. Max 1m USD per year. Might just be easier to buy a package.

    • @bangonkali
      @bangonkali 4 ปีที่แล้ว +2

      @@marcusmaunula5018 I agree it's always best to just buy the license and at that point it will be great to consider devexpress or telerik and others too.

    • @marcusmaunula5018
      @marcusmaunula5018 4 ปีที่แล้ว

      @@bangonkali I am a little tempted by the SF Blazor Package. You have any experience with it?

  • @GufNZ
    @GufNZ 2 ปีที่แล้ว

    Another good one to look at: PowerAssert - when the unit test fails it shows you exactly why straight away.

  • @LockpickingDev
    @LockpickingDev 4 ปีที่แล้ว +1

    Really enjoying all of your videos! Great explanations and easy to follow along. This video is really helpful and I think important so we don't think to hard and overcomplicate things. Thank you for your work!

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Glad it was helpful!

  • @williambell4591
    @williambell4591 4 ปีที่แล้ว

    Happy New Year, Tim!

  • @Tamer_Ali
    @Tamer_Ali 4 ปีที่แล้ว +6

    Hi Mr.Tim,
    Do you recommend a library to preview or export RDL/RDLC reports because ReportViewer is not supported on .Net Core yet?

    • @bassi8760
      @bassi8760 4 ปีที่แล้ว

      Ff

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Not a free one, no.

    • @DMC3586
      @DMC3586 4 ปีที่แล้ว

      @@IAmTimCorey Please what do you recommend instead?

    • @jimlynch8313
      @jimlynch8313 4 ปีที่แล้ว

      I used to rely on RDL/RDLC reports back in the framework days as well. I moved to DocX and EPPlus to create my Word and Excel-based reports, respectively. There aren't the visual cues you get from designing your report, but I found it easier to create my reports exactly like I want with the data I want.

  • @mohammadzubair959
    @mohammadzubair959 3 ปีที่แล้ว

    How to pop up selectable data rows from textbox i.e. a textbox in a form when space key pressed a pop up will appear from db and we can select the name of the firm that we want for transaction, on selection the selected value will go inside the textbox child ti parent .

  • @andrewelmendorf2602
    @andrewelmendorf2602 4 ปีที่แล้ว +1

    Polly looks really interesting. I have been planning on using it in my next project

  • @rockymarquiss8327
    @rockymarquiss8327 2 ปีที่แล้ว

    In regards to your comments about logging, I have a routine that copies data from an Oracle server to an MS SQL Server. It massages some of the data. I like to log what I call exceptions. Data that doesn't fit the norm, but not NECESSARILY incorrect data. If a user calls and indicates that something looks amiss I can pull up that log to see if an exception existed and if so, what didn't it like about it? Do I read the logs? Not normally - only when warranted.

    • @IAmTimCorey
      @IAmTimCorey  2 ปีที่แล้ว

      Just be careful there, because that logged data could be sensitive in nature. It is also not connected with the actual data, so you could run into legal issues if a user asks to be forgotten and you leave their information in the log files.

    • @rockymarquiss8327
      @rockymarquiss8327 2 ปีที่แล้ว

      @@IAmTimCorey Thank you for the advice - and it's very solid advice. In this case the exceptions aren't tied to any personal data whatsoever and everything in this data that I'm retrieving is considered public information. I haven't implemented this logging as of yet, just something that I'm looking into. I need for staff to know what data that looked suspicious such as missing a property description. The program makes a safe assumption but it might not be the correct assumption. The owner of the data needs to be aware of the issue and decide whether it is a problem or not.

  • @brianwells990
    @brianwells990 4 ปีที่แล้ว +1

    This was very helpful and put several tools on my radar. THANK YOU!!

  • @dand4485
    @dand4485 4 ปีที่แล้ว

    Hope i'm not hijacking the thread, but would be curious if anyone knows of a good generalized text parser? And will add another note for useful library. This one handles command line parse, especially when it might get a little involved. Really handy, why so good? You define a class for various alternate command line settings. Worked on an app that might spin off one one of 12 other programs, and this helped. But still in a more traditional single/stand-alone app.
    Effectively you define a class, the library will inspect your define ProgramArgs class, and will handle the validation and error reporting of the message as defined. The library allows annotating your defined class with attributes to allow you to build up and customize it. And even better if parsed and no exception, immediately you have access to an instance the command argument class that match for the valid config. On larger applications have seen where the validation, error message and reporting starts getting rather disjoint at times.
    Not sure NuGet or GitHub is easier for all?
    Nugget: ->
    in VS CommandLineParser (in VS)
    Nuget/web -> www.nuget.org/packages/CommandLineParser/2.6.0
    GitHub: => github.com/commandlineparser/commandline

  • @andreaskroll
    @andreaskroll 2 ปีที่แล้ว

    AWESOME video. Thanks for the good pointers to interesting libraries.
    👍

  • @pabloMM01
    @pabloMM01 4 ปีที่แล้ว

    I was just starting to add e-mail and logging to my project when I saw this video. Thank you!

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Glad it was helpful!

  • @EdoSuhartanto
    @EdoSuhartanto 3 ปีที่แล้ว

    wow ... i would love to see a video about Hangfire ... it would be fun

  • @musabalriani550
    @musabalriani550 4 ปีที่แล้ว +1

    Thank you Tim, You are Time Saver.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Glad to help

    • @aeuludag
      @aeuludag 4 ปีที่แล้ว

      Tim-e saver

  • @ThunderChasers
    @ThunderChasers 2 ปีที่แล้ว

    i've been using EPPlus for years. It's amazing!

  • @fieryscorpion
    @fieryscorpion 4 ปีที่แล้ว +2

    Can you please make a video on Mass Transit and Azure Service Bus?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +2

      Added to my list, will see if/when I can get to it.

  • @bloodwoork5313
    @bloodwoork5313 4 ปีที่แล้ว +1

    Thank you so much, I didn't know about those libraries 😊 Love your channel, keep it up!

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +2

      Thank you! Will do!

  • @aqray30
    @aqray30 4 ปีที่แล้ว +1

    What are the use cases that required using messages brokers such as RabbitMQ, Azure Bus.. etc?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +2

      Any time you have an application that wants to talk to another application in a disconnected manner. Microservices use this technique heavily but it doesn't have to be only them. Having this disconnect means that you can separate out parts of your application and update them without taking down the whole system or even losing anything while they are down.

    • @aqray30
      @aqray30 4 ปีที่แล้ว

      @@IAmTimCorey Thanks for the very informative explanation, so compared to basic API communication in case using messages brokers we won't need to handle the acknowledgment part, am I right?
      Also, one more question related to Hangfire
      Can it be used to keep that data sync between applications? if not, what's the process to keep the data sync?

  • @themasterrogerdelgado
    @themasterrogerdelgado 4 ปีที่แล้ว

    Several of these will be very useful to me. Thanks Tim.

  • @kennyarnold6848
    @kennyarnold6848 4 ปีที่แล้ว

    Tim, I’d love to see more EPPlus and how it’s better than just adding a reference to Microsoft.Office.Interop.Excel and working with that library.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      Topic suggestion noted and have added to my list, thanks.

    • @kennyarnold6848
      @kennyarnold6848 4 ปีที่แล้ว

      @@andreasbramftl1106 thanks for the info. My company has an .NET Framework add in for MS Project that interacts with Excel. All of our clients have excel installed. Given that scenario, is there any benefit to using EPPlus over Interop?

  • @catalinpop342
    @catalinpop342 4 ปีที่แล้ว +2

    Any thoughts on Syncfusion products?

  • @00l4
    @00l4 3 ปีที่แล้ว

    Very nice video. Interestingly all these problems relate to me and yet I do not have a perfect way to deal with them. Well not anymore...

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว +1

      I am glad it was helpful.

  • @devmoth9274
    @devmoth9274 4 ปีที่แล้ว

    I'd love a video or video-series about software-architecture and clean code. I've seen your videos about SOLID and DRY and Refactoring and many more that kinda talk about that topic. But as my applications are growing I still think they become a bit messy. Like where do i put all the Interfaces for dependency Injection. Where do i put all the Repositories for a repository pattern and so on. But also something like, how to manage overloads, or to many parameters for a method. Or I also struggle sometimes to find out which responsibility is something. Let's say for example a chess programm, who stores the position of a chess piece? The piece itself, the board, a tile on the board, or an extra gamestate class,...? And then further who would move those pieces..? I know there a no clear answers to those questions. But any tip or trick on those questions can be really helpfull.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      I appreciate the suggestion and added it to my list.

  • @supunkandaudahewa
    @supunkandaudahewa 3 ปีที่แล้ว

    Excellent Tim. Thanks a lot.

  • @Imafriggingoddess
    @Imafriggingoddess 3 ปีที่แล้ว +1

    Great list. I tried a different library called ExcelMapper once epplus changes its licensing model. Really cool library to convert excel to pocos. Really made working with excelfiles a breeze.

  • @uttamchaturvedi
    @uttamchaturvedi 4 ปีที่แล้ว +2

    Hi Tim,
    Thanks for sharing such a wonderful post once again. I was wandering whether there are some inbuilt tools to validate Excel data while importing to database. I want to validate my excel file such as columns datatype,sequence,number of columns etc and then store into DB and azure BLOB storage.
    Thanks
    Uttam tam,

  • @krisrama1
    @krisrama1 4 ปีที่แล้ว +1

    Thanks for the Excellent video... Please let me know a library to extract text, images, table data, text from OCR scanned images from a PDF.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      I don't have one to share. Maybe someone else does.

  • @girornsveinsson7970
    @girornsveinsson7970 4 ปีที่แล้ว +2

    Thanks for a very interesting video. It would be great if you would teach more on Hangfire and share a little more details how you used it before. I would also really like a comparison between Hangfire and a Windows Service - when to use which and maybe to mix them. A .Net Core Windows Service is very easy to use as you already demonstrated in one of your videos if you need something to run every 5 minutes (or whatever interval) but what about once a day at a set hour or other variations? That cannot be done without some workarounds but maybe Hangfire is useful there???

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Thanks for the suggestion. I have added it to the list of possible future topics.

  • @davidfeldman1746
    @davidfeldman1746 2 ปีที่แล้ว

    i would be glad if can make a video from a library who is working with the task scheduler system what you can write in your csharp application like the nuget packge task scheduler

    • @IAmTimCorey
      @IAmTimCorey  2 ปีที่แล้ว

      Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/

  • @theumairtahir1
    @theumairtahir1 ปีที่แล้ว

    Hey Tim, I am in search of a library which can give difference (of values) between two objects. Can you please recommend some?

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว

      I'm sorry, I'm not sure what you mean.

  • @davidcuberos9294
    @davidcuberos9294 2 ปีที่แล้ว

    Hi Tim, I would like to know what is best for create and manage jobs?
    Azure web jobs vs Azure Functions vs HangFire?
    I appreciate it your comment,
    Thanks

    • @IAmTimCorey
      @IAmTimCorey  2 ปีที่แล้ว

      It depends on the circumstances. You can leave a suggestion for this to be a future video at suggestions.iamtimcorey.com

  • @Bholland31471
    @Bholland31471 2 ปีที่แล้ว

    Been using epplus for years. One thing u didn’t mention about it, is that it does not require excel or ms office to be installed on any server. Other libs require that 🙂

    • @IAmTimCorey
      @IAmTimCorey  2 ปีที่แล้ว

      Very true. That's a great feature.

  • @Avatar911
    @Avatar911 4 ปีที่แล้ว

    I used Hangfire for job scheduling and it is easy to implement it. But only problem is to process parallel jobs we have to purchase the license Hangfire Ace packages

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Yep, but that's how they pay for their development costs. The developers have to eat, and that's the way they do it.

  • @larryk5184
    @larryk5184 3 ปีที่แล้ว

    I'm new to C# and I'm enjoying your videos very much. I was reviewing this video on Libraries and I tried downloading one. The big question I have now is, where do you get documentation on what's in the library and how to use it. I did a lot of googling but didn't find any answer. Thanks for any help you can provide. My particular hurdle right now is CSV files.

  • @user-rp9iis1en6h
    @user-rp9iis1en6h 3 ปีที่แล้ว

    In asp.net core web api, is it possible to raise an event from an class, and listen to this event from another class and based on the event, do some task. How to achieve this? Also what is event-event handler-event bus? Very confusing. I was trying to decouple events in a standard .net library and was trying to move all events in one library. But got very confused.

  • @eriksp7173
    @eriksp7173 3 ปีที่แล้ว

    I love it!, Just added a pair library. Thanks for sharing it.

  • @marcusmaunula5018
    @marcusmaunula5018 4 ปีที่แล้ว

    You are right about EPP but what I don't like. Is when they start out as "free" libraries then change everything out of the blue. I'd much prefer if they were upfront with their long term plans from get go. Same problem with Identity Server 4 imho. But it is up to them of course. But then. MS makes Excel, they make VStudio. Would it be too much to ask for them to add something like this in the package? It's not like they have travel far to find the specs :).

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      I agree it would be good to know, but I don't think they always know at the start.

  • @jeremyvonhatten5811
    @jeremyvonhatten5811 4 ปีที่แล้ว +2

    Thanks for the great libs! I would like to see more videos like this in the future :)

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +2

      I noted your recommendation and have added to my list, thanks.

  • @samko6672
    @samko6672 4 ปีที่แล้ว

    Thank you Tim it's really helpful.
    Please can you create shay your ideas on how to add Layers into a project? What are the main common Layers ? What other Layers you may add it if needed?
    Thank you. And happy new year

  • @StudentCompanion
    @StudentCompanion 4 ปีที่แล้ว

    Great tutorial really appreciated, it's good to know what other developers are using so you don't get lost into the myriads of tools while there are better tools out there.
    How would you suggest the use of Hangfire for task automation over let say creating your own windows service with another tool like topshelf which make it easier to create windows services, you have also discussed it in one of your videos? Can a windows service do all what can Hangfire do or hangfire is super easy to implement than a windows services?
    Email is one of things that are almost needed in business application, if you could discuss in one of your videos how to use these email application tools like MailKit (pop3/imap,smtp) , papercut the better way.
    Thanks a lot

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Hangfire is about scheduling. Services are about running outside of a user's account. The two can be used together quite successfully. You can create a service that uses hangfire to schedule jobs to be run. By default, a service just runs all of the time. It is not set up to run things on a schedule (with retry, etc.) This is what hangfire adds.

    • @StudentCompanion
      @StudentCompanion 4 ปีที่แล้ว

      @@IAmTimCorey thanks

  • @Hello_there_777
    @Hello_there_777 4 ปีที่แล้ว

    I used Polly and hangfire. And this libraries is great. Thanks safe this video for feature

  • @iandalrymple7255
    @iandalrymple7255 3 ปีที่แล้ว

    I am a newby somewhat - I use windows task scheduler for my recurring jobs. Is hangfire basically the same or are there major differences I am not seeing

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว +1

      Hangfire will give you a much better picture of what has been done (great dashboard), it will have better reschedule/retry operations, and you can be more granular in how you schedule your tasks. Basically, you will have a lot more power. If you don't need the additional power, stick with what works.

  • @gironmolina
    @gironmolina 3 ปีที่แล้ว

    Do you think that is a good idea to use Hangfire instead to RabbitMQ in microservices, I know that they are different but at the same time very similar, because I think that Hangfire looks cool but at long term maybe is just a toy that is difficult to scale, what do you think?

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว +2

      These are two different technologies that do different things. Hangfire is about scheduling jobs to be run. RabbitMQ is about passing messages between applications. Both are great tools and both have their place. They just aren't interchangeable.

  • @gp6763
    @gp6763 4 ปีที่แล้ว

    Super useful video, thank you Tim

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      Glad it was helpful!

  • @yogevgershon3424
    @yogevgershon3424 4 ปีที่แล้ว

    Hi Tim, I didn't really understand the difference between HangFire to a serivce that is automaticly run on schedule...

    • @fabio.albuquerque
      @fabio.albuquerque 4 ปีที่แล้ว

      You might not have access to a service like that in whatever system you're on. And HangFire can do a bit more than run things on schedule. Can't speak for it in depth as I've only used it once a few years ago, but it's a great tool, for sure.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      A service typically runs in the background on your computer. It might fire every minute and you can "schedule" it to do things. However, hangfire can do things like weekly, daily, etc. schedules, plus they can do chained tasks and more. You could write enough code to do what hangfire does, but it would take a lot of work.

  • @robg112
    @robg112 3 ปีที่แล้ว

    EPPlus - Life saver working with Excelsheets

  • @nosaanthony7310
    @nosaanthony7310 3 ปีที่แล้ว

    Hi Time. I stopped using hangfire cos I realized when it is used to fire a long running task, it would time out and call the task again causing duplicate calls.. So I fell back to using windows services for running repeated/scheduled task

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว

      Interesting. You should be able to tweak your setup to fix that. Are you making the calls async?

  • @davidcuberos9294
    @davidcuberos9294 2 ปีที่แล้ว

    Hi Tim, which tool do you recommend for logs, Serilog with Seq or Azure application insights?
    I know those are different but for register and monitoring errors, which do you recommend?

    • @IAmTimCorey
      @IAmTimCorey  2 ปีที่แล้ว

      Both, usually. Applicaiton Insights is good at giving you a big picture on what is going on in your application landscape. Logging is good for digging into specific problems.

  • @deepakbhagat811
    @deepakbhagat811 3 ปีที่แล้ว

    can you tell me good library for making pdf in .net core

  • @camcommute
    @camcommute 3 ปีที่แล้ว

    Can I use Hangfire to schedule jobs per users? And is it possible to store the job in a dB jus in case server goes down?

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว

      Hangfire does store jobs in a database, along with the outcome of the executions of those jobs. As for per-user hangfire, I'm not sure what you mean. The hangfire service will run as one user. However, you could create jobs for each user.

    • @camcommute
      @camcommute 3 ปีที่แล้ว

      @@IAmTimCorey ohh okay, so I am building an app where I'll have recurring jobs per user. So for example, a user will input that every Sunday to execute a purchase of X dollar bitcoin using an API.
      Would I be able to store the user recurring jobs in the dB and would hangfire be able to handle these types of recurring buys?
      Thanks!

  • @koenjanssens4434
    @koenjanssens4434 4 ปีที่แล้ว

    I was hoping to find in this video a library to generate PDFs (let's say to create invoices for example), but alas... Tim, do you have any suggestion though?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      I don't have a great solution for you, no. Sorry. I'm working to get options to show off.

  • @ilioncnc
    @ilioncnc 4 ปีที่แล้ว +8

    How do you handle PDF Creation? In business software producing PDF Files is as crucial as Excel File manipulation.

    • @krzysztofzon8661
      @krzysztofzon8661 4 ปีที่แล้ว +4

      Check PDFSharp or iTextSharp

    • @andreaskarz
      @andreaskarz 4 ปีที่แล้ว

      That's pretty much the biggest problem. And especially with these two requirements, unfortunately, it's usually the case that the ones you can use are usually quite expensive.

    • @SachinDiwate
      @SachinDiwate 4 ปีที่แล้ว

      You can try using inkscape as well for pdf creation it's free

    • @andreaskarz
      @andreaskarz 4 ปีที่แล้ว

      @@SachinDiwate via C# really ????

    • @ilioncnc
      @ilioncnc 4 ปีที่แล้ว

      @@SachinDiwate That's not a solution.

  • @dantecavallin8229
    @dantecavallin8229 2 ปีที่แล้ว

    Why would you suggest EPPlus which is paid for when NPOI is free and has better reviews?

    • @IAmTimCorey
      @IAmTimCorey  2 ปีที่แล้ว +1

      I have not found NPOI to be a better product. Also, while I like supporting open-source projects, I do get concerned when there is not an income stream option for the author. That causes problems of long-term sustainability. EPPlus provides a free product, as well as a paid product, which means they have a more sustainable long-term solution.

  • @lenardbartha6722
    @lenardbartha6722 4 ปีที่แล้ว

    Hangfire would be awesome to see...

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      Thanks for the suggestion.

  • @michelchaghoury870
    @michelchaghoury870 4 ปีที่แล้ว

    nice libs. will you make videos later on how to use them and/or integrate them in new projects or existing ones

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      It depends which ones people want to see more info on.

    • @michelchaghoury870
      @michelchaghoury870 4 ปีที่แล้ว

      @@IAmTimCorey I would like a video about the mailing libraries and the difference between the two and how to know which one is better for a specific project and I would like also a video about serialog and the Seq,
      and some videos about the steps to deploy an ASP.NET Web App on a physical server (with Docker and Sql Server ) and the best approach to secure it
      i know i am demanding a lot from you but you are so good at what you do and you are a gr8 developer

  • @beardordie5308
    @beardordie5308 4 ปีที่แล้ว

    How could one go about integrating Serilog and Seq with Unity instead of Unity's text-only debug console log?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      Since its all C# based, see if this will help you - th-cam.com/video/_iryZxv8Rxw/w-d-xo.html

  • @hitman.4745
    @hitman.4745 3 ปีที่แล้ว

    thanks for the information , forgive me i have a very dummy question , which program you use to create the avatar icon face of you in your channel?

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว

      Not a program. I have a friend draw them for me: reverentgeek.com/

    • @hitman.4745
      @hitman.4745 3 ปีที่แล้ว

      ya , i see , thanks alot
      wishing to you all the best

  • @thomasivesdal-tronstad4648
    @thomasivesdal-tronstad4648 4 ปีที่แล้ว

    Any thoughts on just using OleDb to read excel files (with MS Access Database Engine)?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      That requires Excel to be installed on the server. That's not a great situation (plus OleDb is messy).

  • @Layarion
    @Layarion 4 ปีที่แล้ว

    With Unity moving to data driven design I wonder if it'll still be possible to plug OOP libraries in with it.

  • @k42p3r
    @k42p3r 4 ปีที่แล้ว

    What makes EPPlus 5 better than ClosedXML?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      More feature-complete, from what I have found. However, if ClosedXML works for you, go for it.

  • @BZHoQC
    @BZHoQC 3 ปีที่แล้ว

    hey Tim, thanks for all your works. New to your channel, i will defenetly stick around. Question about all commercial licences like the EPPlus 5 you presented us. If i'm a freelancer making programs for customers. If i (as an external developper) pay for the licence, are my customers in right to use the program even if they are not the licence owners?

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว

      Each company will specify what you can and cannot do with their software. In the case of EPPlus specifically, you can probably just purchase a license for yourself. Here is the FAQs that explain a bit better: www.epplussoftware.com/en/LicenseOverview/LicenseFAQ

  • @aleksandr-belousov_1
    @aleksandr-belousov_1 4 ปีที่แล้ว

    I use most of those libraries. They are very useful indeed!

  • @digitalman2112
    @digitalman2112 4 ปีที่แล้ว

    Great heads-up on the EPPlus licensing change. Gotta let my team know.

  • @NikolaTesla10093
    @NikolaTesla10093 3 ปีที่แล้ว

    Tim you are a legend ,

  • @HappyDeveloper
    @HappyDeveloper 4 ปีที่แล้ว

    Which kibbana or seq is better?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      I've not used Kibana but use what works best for you.

  • @zeppelin0110
    @zeppelin0110 2 ปีที่แล้ว

    Great video, well done

    • @IAmTimCorey
      @IAmTimCorey  2 ปีที่แล้ว

      Thank you very much!

  • @developerjourney4795
    @developerjourney4795 4 ปีที่แล้ว

    Really nice picks of libraries :) When theres so much choice its hard to pick the best ones. It would be cool to find some newly emerged Libraries that are really cool but not a low of people have downloaded them yet

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      If you find those "emerged Libraries that are really cool", please share them here!

  • @gompassos
    @gompassos 3 ปีที่แล้ว

    Let's suppose that you are developing an app that is consuming an API that you know to have a 10 calls per minute limit. What you would use to manage this? Would you use "Hangfire" to create a recurring job to call that API every 6 secs our you would use "Polly" and create a policy to workout the 429 response from that API? Hopefully I made myself clear. I'm not a very good english writer. Cheers from Brazil :)

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 ปีที่แล้ว

      Is your new app the ONLY consumer of that API? Is the 10 calls a minute an average or is something enforcing it? ... sorry, its the performance tester in me from a prior life.

    • @gompassos
      @gompassos 3 ปีที่แล้ว

      @@tomthelestaff-iamtimcorey7597 Thanks for the reply, I really appreciate. There is a policy in the API enforcing 10 calls per minute per user limit. We can consider that the new app is the only consumer.

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 ปีที่แล้ว +1

      @@gompassos No clue how Tim will address it, but now I better understand, thanks.

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว

      You would put logic in to keep it to six calls. If you want to max out what you can do, hangfire might be the right call. Either way, you need to handle the 429.

  • @akalanata13
    @akalanata13 4 ปีที่แล้ว +1

    I suggest using NPOI instead of EPPlus.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Thanks for sharing

  • @subircool1
    @subircool1 3 ปีที่แล้ว

    Is Seq similar to Splunk or Kibana ?

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว +1

      I don't think there is an exact correlation here. Seq is a dashboard for displaying and working with application logs. It isn't really an analytics platform, etc.

  • @JuanDevelop
    @JuanDevelop 4 ปีที่แล้ว

    hello tim, happy new year. Well, I wanted to ask you if you have the resources to guide me in the development for an application such as Uala or Nesqui (Mobile Banking App) using xamarin form

  • @CHITRANSHSHARMA
    @CHITRANSHSHARMA 4 ปีที่แล้ว

    hi Tim, can try Reogrid for Excel

  • @lakersgogo
    @lakersgogo 3 ปีที่แล้ว

    So surprised that the Dapper, the AutoMapper, and the Nowtonsoft.JSON are not on the list. Maybe they are not just suggested but are necessary ones that no need to mention again. :)

  • @naftoliost4534
    @naftoliost4534 4 ปีที่แล้ว

    Wow, the timing couldn't have been better!
    I was on the phone with another developer just last night, discussing a new project and was asking him if he knew of any libraries for reading / exporting excel files!
    Thanks for these resources

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Great! You are welcome.

  • @InsEngineered
    @InsEngineered 4 ปีที่แล้ว

    Nowadays I am bound to code more in Javascript. But I still like watching your contents. I am following this channel since Tim Co retail manager project. Btw do you have any plans for Typescript tutorial? As it is also a programming language developed by Microsoft. It's easy to lure Javascript developers into Typescript. :)

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      I appreciate the suggestion and added it to my list.

  • @TaSwavo
    @TaSwavo 3 ปีที่แล้ว

    Interesting - will look at EPPlus as it may put a lot of protections against the inconsistency of the Excel reference
    And I like the though of better logging
    And the email one Papercut makes sense for us.

  • @harrisonhatton9517
    @harrisonhatton9517 4 ปีที่แล้ว

    I don’t know how to best contact you so I’m posting this here: Why is there no answer key in the Foundation for C# course? As someone learning this alone, it would save me a lot of time to simply have this...For example I am stuck on the type conversion homework. I realize your intention was to have people think for themselves, but as a beginner this is a tall order. If I had an answer key would be able to progress quicker...many foreign language textbooks have answer keys because most of the people using them are beginners so they can immediately check for mistakes.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      The homework from the Foundation in C# course series does not have accompanying answers. The purpose of the homework is to practice what you will see in the real world. In each case, the homework covers something we have recently learned, and it may add in something from previous lessons. Just like in the real world, you will know you have succeeded when your application performs the actions requested. When your boss gives you an assignment, they won't also give you the solution to that assignment (even after the fact). It is important to practice this skill when the stakes are low and the training is available. If there is an easy way out, you won't gain the skills necessary to be a great developer. I may in the future provide an answer key, but even then I would HIGHLY encourage you not to use it until after you have successfully completed the assignment. Otherwise, you lose out on a lot of the benefits of the training.

    • @harrisonhatton9517
      @harrisonhatton9517 4 ปีที่แล้ว

      @@IAmTimCorey ok. thanks for your response.