Earlier quoted context omitted.
I agree that MS is not completely serious about C#. They spend too much time on adding new language features but not enough on the essentials: There are big holes and missing bits in the Windows API wrapper that have been there for two decades. Most new MS apps like Teams of VS Code are not written in C#. I suspect it will limp along with hot and cold support from MS.
What language do you program in? You can use CsWin32[0] and CsWinRT[1] both of which provide rich generated bindings for their respective APIs. A colleague of mine recently got rid of C++ component thanks to the former, simplifying the solution build. [0]: https://github.com/microsoft/CsWin32 [1]: https://github.com/microsoft/CsWinRT
LINQPad – The .NET Programmer's Playground
121–130 of 137 posts
Re: LINQPad – The .NET Programmer's Playground
#122Re: LINQPad – The .NET Programmer's Playground
#123Earlier quoted context omitted.
+1 Beyond Compare. It's been on my list of must installs for every new system I've set up for many years.
For Windows OSes, winmerge [1] has been a solid free alternative to beyond compare for me for years. [1]: https://winmerge.org
Re: LINQPad – The .NET Programmer's Playground
#124Essential LINQPad productivity features for me include:
1. Flexible visualization tools with sensible defaults and one-click export.
2. Ability to easily round-trip copy/paste code snippets between LINQPad and external IDE projects with minimal fuss (e.g., no boilerplate required for expressions, statements, or simple functions).
3. Automatic reloading of libraries I'm working on externally in an IDE with minimal IDE rebuild interference.
3. Completion on par with VS.
4. One-click document cloning.
5. NuGet integration, including the ability to search for and update referenced packages.
6. A simple, built-in debugger.
A typical LINQPad workflow for me (excluding tasks like writing documentation and unit tests for brevity):
1. Start with a task of accessing or exporting data from either a set of files in an unknown format or from an application — ideally, but not always, a Web application — without a documented API.
2. Create a library project in Rider or VS and a LINQPad document referencing the library.
3. Investigate the files or application interactively using LINQPad and other tools (hex editors for investigating binary formats, jq/IPython/PowerShell for JSON and XML, browser dev tools for Web apps, accessibility tools when automating Windows desktop apps, etc.).
4. Add data access mechanisms to the library.
5. Repeat steps 3 and 4 as necessary, with more and more work being done in LINQPad via the library on each iteration.
6. Build simple command-line or graphical tools on top of the library to allow non-programmers to access or export data from similar systems in the future without LINQPad. In cases where non-UI logic in these tools becomes non-trivial, I'll typically prototype this logic in LINQPad and extract it into a library, as well.
Finally, as new requirements arise, I can load up existing libraries and LINQPad to analyze and prototype solutions, often leading to initial results delivered to customers in minutes rather than hours.
Re: LINQPad – The .NET Programmer's Playground
#125I've always wondered why it doesn't provide PowerShell support since it too is built atop .NET
The hosting API is completely different. Roslyn handles VB.NET and C# with basically the same API. Adding PowerShell is akin to writing the core part of all that a second time. Not that it can't be done, but most of the time PowerShell itself is already a capable REPL, so I guess there's also less need for it in LINQPad.
Re: LINQPad – The .NET Programmer's Playground
#126{ "file_patterns": ["*.cs"], "cmd": ["dotnet-script", "$file"] }
Re: LINQPad – The .NET Programmer's Playground
#127It's a nice program, but you need to pay to update every version of .net, which is every year. I used to purchase premium version (single user) and the upgrade option is $97.50 instead of $125 for new license.
You pay for every LTS dotnet,so every 2 years. E.g Linqpad .Net8 license also supports .Net9
Re: LINQPad – The .NET Programmer's Playground
#128A long-time satisfied user of LINQPad. It is one of my must haves. I usually upgrade to the latest one when I hit some framework feature or a piece of snippet which requires it. It started as a very reasonably priced for the paid edition and there was only one paid edition for a long time. Nowadays, it is a bit pricier and has several editions (a suggestion would be to merge Pro and Developer editions). I use LINQPad…
Re: LINQPad – The .NET Programmer's Playground
#129A long-time satisfied user of LINQPad. It is one of my must haves. I usually upgrade to the latest one when I hit some framework feature or a piece of snippet which requires it. It started as a very reasonably priced for the paid edition and there was only one paid edition for a long time. Nowadays, it is a bit pricier and has several editions (a suggestion would be to merge Pro and Developer editions). I use LINQPad…
Regarding a cross-platform version of LINQPad, I'm actively working towards supporting MacOS. I can't give a timeframe right now, but it might be sooner than later if XPF turns out to be a viable option.
Re: LINQPad – The .NET Programmer's Playground
#130Earlier quoted context omitted.
Best at what exactly? I can’t think of a single thing you would pick C# for instead of Java/Go, C/C++/Rust/Zig, Python or JavaScript/Typescript. Not because C# is a bad language but because it’s not particularly good at anything. It’s a jack-of-all trades which isn’t even the best jack-of-all trades. So unless you have a lot of years put into it, either in your software stack or in your employees there is very little…
> Best at what exactly? I can’t think of a single thing you would pick C# for instead of Java/Go, C/C++/Rust/Zig, Python or JavaScript/Typescript. C# was the first to get async/await, generics, LINQ, PLINQ etc - the path-breaking features that shoot up not only productivity but the ability to do certain things in a much better way. Just because kids have caught up, it doesn't mean we are going to abandon the daddy.
but if you were going to pick a tech for a new project without a history of using C#, why would you pick it in 2024? If you’ve got a large .Net stack and a lot of experience with it, it’s still a great choice. I was a c# developer for a decade mind you, and I’m not sure I’ll ever use it again because it sort of lost its foothold despite being in a really great place.