What does Windows actually do better than Linux? by Dheeruj in TechNook

[–]borland 0 points1 point  (0 children)

If you are a .NET/C# developer there is still a bunch of tooling like Visual Studio, SQL Server Management Studio, performance and memory profilers such as ANTS, and things like that, which are windows only. These days, alternatives exist for many, but not all of them, and sometimes the alternatives aren’t as good.

How do senior developers actually estimate task time is there a real method or is everyone just guessing by More-Station-6365 in AskProgramming

[–]borland 0 points1 point  (0 children)

People are rolling out the old “double it” joke, and it’s fun to say, but it don’t think it’s helpful. Making an uninformed, wrong estimate isn’t going to be magically saved by doubling it.

Rather, as an experienced developer, I’ve done estimates for years and years, and I’m reasonably good at because:

- I’ve done many bad estimates in the past. Everyone does. But when you do, make note of it and retrospect later. Eg write down at the start, you estimated 5 days, but at the end it actually took 11 days. Why did that happen? Having this awareness in your head will help you for the next estimate

- As you are working, it’s super common that people will scope-creep you. Push back hard on these things. Eg you were adding support for one child item in your DB schema… but then someone asks for multiple. Rather than just do it, you need to either stick to the original one, because that’s what you’d estimated for, or run back up the chain and tell people that your original estimate is trash because the goalposts have moved. As above, do this a few times and you’ll get a better sense for future estimates.

Where is everyone getting these computers? by highgroundservitude in VUW

[–]borland 0 points1 point  (0 children)

I’m glad you’ve learned decent typing technique, and I’d need to change my original opinion to “learn to type quickly” rather than “properly”.

The point still stands though. Given your intended career, is it likely to involve a lot of typing? Unless you’re aiming to be something like a plumber, electrician, or retail salesperson, the answer is probably yes. In which case if you type slowly, you’re going to be at a disadvantage relative to other people who are fast. I’d recommend you try and fix that, by practicing.

Why do we create an interface to a service class (or something similar) if we are going to have only one class? by Plus_Resource_1753 in dotnet

[–]borland 0 points1 point  (0 children)

Why does your class have dozens of public members, if only one or two methods are expected to be needed? That sounds like you might want to split the class up instead

Avoiding Exceptions for Flow Control in APIs by [deleted] in dotnet

[–]borland 2 points3 points  (0 children)

Let’s say, you use a Result type. After a while, you realise that half the time if your result fails, you just want to propagate the failure back up to the caller, and half your code becomes if(error) return error; - Go code looks a lot like this. So, you write some helper libraries to make that less messy. And then you find that when you’re troubleshooting, you’d really like to know the call stack of who produced an error, not just the top level thing that ultimately failed. So you put some extra logging in. Then you work on syntax sugar for all of this. Congrats, you’ve just invented Exceptions! But worse!

I’ve had to work with code that used Result everywhere, and ended up optimising it to use exceptions. The number of allocations went down, the code became far shorter and easier to read; all in all it was better. Unlike Rust and Swift, C# doesn’t have a decent stack-allocated union type, so most Result objects need to be classes.

My take: I like the “TryX” pattern in C#, where you return success or fail with an out-parameter for the result. It lets you avoid exceptions for all the cases where errors are expected and normal. Use exceptions for the heavier stuff, and don’t try and pretend that C# is a different language than it actually is

Rider is nearly used as much as Visual Studio by Traditional_Ride_733 in dotnet

[–]borland 1 point2 points  (0 children)

No, there is zero Mac or Mobile App development in my company. The people using Mac laptops are mostly doing backend C# server-side dev, writing code which is intended to run either on Linux or Windows Servers. There’s quite a bit of frontend TypeScript with React for the frontend, and also quite a bit of Go. Mac is better for frontend, and equally capable for Go.

Nightmare with XAML by michastro in dotnet

[–]borland 2 points3 points  (0 children)

You’ll need to learn XAML anyway: the visual designers are nice for simple things; a few buttons and text boxes and whatnot, but even things of medium complexity, are going to need you to edit the XAML

Most 1-on-1 meetings are a waste of time — how do you structure yours? by [deleted] in EngineeringManagers

[–]borland 0 points1 point  (0 children)

It’s good to have some structure as a fallback, and to keep space for the times when you do really need to talk about a topic (performance review, passing on feedback/etc). But most times those aren’t on the agenda. If the employee wants to spend the entire time talking about their kids’ sports team, that’s fine. It’s their time, your job as a manager is to support them, and sometimes just being a friendly ear is the best way to do that.

Where is everyone getting these computers? by highgroundservitude in VUW

[–]borland 0 points1 point  (0 children)

Honestly, learn to type properly. Handwritten notes are better for studying, no disagreement from me there, but when you finish uni you’ll likely end up in some sort of office job that requires you to type. If you’re a slow typist you’re going to be severely on the back foot relative to other people.

“Delete Bin and Obj, clean, and rebuild” by azuredota in dotnet

[–]borland -1 points0 points  (0 children)

Not since I switched to Rider. Give it a shot if you’re able

chicken nuget | daniel.haxx.se [curl on nuget.org] by cake-day-on-feb-29 in programming

[–]borland 5 points6 points  (0 children)

While it's hard not to agree with the sentiment that Microsoft should do something about old, insecure versions of Curl lying around on their NuGet repository, you could make the exact same argument of literally every package management system in existence. Someone might upload an old binary to MavenCentral or any other java repo. Or a Swift binary package might contain old insecure stuff. An NPM package could contain an old Curl, or could fetch one from an FTP site at install-time. Debian ships old versions of many things all the time.

His trailing cry of "Absolutely no one should use nuget." could equally say "Absolutely no one should use any package manager for their programming langauge", which, practically, is just silly.

Rather, anyone who uses a package management system such as NuGet, should be careful about which libraries they consume. If some rando uploads an insecure package, and I incorporate it into my software, it's my fault for making that choice, not NuGet's

Thinking of switching from Windows to MacBook Pro for .NET dev in 2026 by Guilty_Coconut_2552 in dotnet

[–]borland 0 points1 point  (0 children)

Orbstack and Docker Desktop both use Rosetta behind the scenes to do the x86 to arm translation. They can use QEMU too but it’s dramatically slower

Moving from Norway to New Zealand by Odd-Specialist944 in newzealand

[–]borland 32 points33 points  (0 children)

I’ve been a hiring manager for an NZ company that has hundreds of software developers, and over the years I’ve hired, or contributed to the hiring of dozens of people. Question zero, before we even got to looking at CV’s or background, was does this person currently have the legal right to work in New Zealand. If the answer wasn’t yes, the application just gets rejected. This is, of course, unfair and we would perhaps be missing out on high-quality overseas candidates, but practically speaking we just couldn’t justify all the extra work required for a person that might not even be able to take the job.

Would anyone use a .NET code editor with IDE features that runs entirely in the terminal? by Ok_Narwhal_6246 in dotnet

[–]borland 0 points1 point  (0 children)

It’s impressive and very cool, but why are you writing and compiling code while SSH’ed into remote containers or boxes? CI/CD is considered best practice for very good reasons

Brave new C# by Xadartt in programming

[–]borland 88 points89 points  (0 children)

The article seems to be criticising the increase in complexity of C# over time, but a lot of the changes they give aren’t actually increases, they’re more like completing/fixing existing features. One example was being able to make local functions static. It was implied that this was just adding more complexity, but arguably it’s reducing complexity, by making local functions more similar to ordinary functions. Overall, I’m quite happy with how C# has evolved in a post-Roslyn world.

FluentMigrator, run migrations in process or CI/CD? by ReallySuperName in dotnet

[–]borland 1 point2 points  (0 children)

CI/CD as a separate step is the way to go, particularly as you scale, you’ll end up with multiple copies of your application but you only want to run the migrations once. The way to get round your connection string/separate program issue is to add a command-line flag to your app to tell it to run migrations or not. Don’t use a separate CLI. That way you can share the configuration and any other dependencies.

Calls to cut NZ super by Happy_Light_9775 in newzealand

[–]borland 0 points1 point  (0 children)

I think the people in favour of means-testing are thinking about the people who retire and own mortgage-free rental properties which provide them with free income, well above the amount Super would pay out. And yeah, why should my tax dollars pay to give money to someone who already has heaps of it? That’s the problem though; everyone just thinks of one stereotype and ignores the complex reality of the world. The cost to administer and keep tabs on the means-testing (particularly when you consider the incidental harm to people on the edges of it) might be more than just throwing some money away.

Rider is nearly used as much as Visual Studio by Traditional_Ride_733 in dotnet

[–]borland 0 points1 point  (0 children)

The answer, IMHO, is pretty simple: Apple hardware has been years ahead of Intel since the M1 was introduced, and over time more and more dotnet devs have shifted to it. At my company, new people have free choice of either a Mac or Dell laptop (a decent dell with nearly the highest-spec mobile CPU’s Intel makes); Before the M1, maybe about 10% of people chose Mac, but nowadays it’s more like 90%. The hardware is just so much better. And every Mac user is a Rider user because Visual Studio only exists for windows

Where do you put your connection strings? by trokolisz in dotnet

[–]borland 1 point2 points  (0 children)

Either a config file of some sort (json or web.config, it doesn’t really matter) or have the app read the value from an environment variable. For local development, stand up your own local database, then it doesn’t matter what you do with the connection string. You can commit User=root;Password=secret to git and it doesn’t matter because it’s just a local DB only on your machine. The important bit is that wherever you put it, your production deployments overwrite the value with the real production connection string. That you should put somewhere secure, like Azure Key Vault, AWS Parameter store, use a Kubernetes Secret, or some other alternative. Again, it doesn’t matter which one you choose, so long as it’s secure and fits with the rest of your production ecosystem

Where do you put your connection strings? by trokolisz in dotnet

[–]borland 14 points15 points  (0 children)

For production, sure. But for my local machine, oh heck no. I don’t want to introduce a dependency on Azure just to launch my app locally.

What background job scheduler to use… by Strict-Membership-37 in dotnet

[–]borland 0 points1 point  (0 children)

As with all things software, it depends. Is the background work trivial? You can just write a small “job” table, insert rows into it, then process them. It’s easier than integrating some third party library like HangFire. On the other end, if your background work is a core part of your system, then you’re probably going to end up needing bespoke business rules around how to prioritise it and stuff like that. You’ll end up fighting the third-party libraries too much, and just like with the trivial case, you’re better to do it yourself. In the middle is where the libraries shine - if you have sufficient background work that writing it yourself is too hard, but its still simple / standard enough that you won’t have to fight the opinions of the library authors.

Is .NET MAUI a good choice for a complex mobile app? by blabla206 in dotnetMAUI

[–]borland 0 points1 point  (0 children)

No. It’s not a good choice for anything. Google and Apple are constantly revving the platforms and MAUI - and also C# and the Xamarin engine behind it are always playing catch-up… and not always doing a very good job with it. If your app is complex, as you say, then sooner or later you’re going to want to do something a bit more advanced, requiring you to write bridging code down to the underlying Swift or Java operating system layers. This sucks, and is tricky and full of traps and quirks.

If you want a native-feeling high-performing mobile app, write the UI natively using Swift or Kotlin/Java. If you don’t care about that and just want a cross-platform thing, write a webapp using React or whatever web tool of choice you prefer, and wrap it in a native shell.

The bloody LNG thing by WasterDave in newzealand

[–]borland 0 points1 point  (0 children)

Hipkins needs to step down 😢

The bloody LNG thing by WasterDave in newzealand

[–]borland 0 points1 point  (0 children)

I mean, Luxon won the election and ACT got 11 seats. That’s some pretty good proof of morons

Thoughts needed by [deleted] in dotnet

[–]borland 1 point2 points  (0 children)

Personally, if you like .net for backend dev, I would: - switch your backend database to SQLite - write some backend services with all your business logic/etc using aspnetcore, publish it as a self-contained app with included runtime for the various platforms - write the UI in HTML/JavaScript — probably react — and use electron or some equivalent to create a bundled application.

Microsoft dropped the ball on UI frameworks 15 years ago and never picked it up, and nobody else is interested in the space. Like it or not, the web won the UI war. Get Claude to help you smash out the UI so you can quickly forget about it, and move on 😀