[HN Gopher] LINQPad - The .NET Programmer's Playground
___________________________________________________________________
LINQPad - The .NET Programmer's Playground
Author : wofo
Score : 273 points
Date : 2024-06-23 20:02 UTC (1 days ago)
(HTM) web link (www.linqpad.net)
(TXT) w3m dump (www.linqpad.net)
| smokeydoe wrote:
| Also check out free open source alternative RoslynPad.
| https://roslynpad.net/
| Nuzzerino wrote:
| The only reason I would use something like LINQPad is for the
| syntax tree and semantic analysis support, for compiler
| extensions. With a name like RoslynPad, seems funny that such a
| feature would be missing from that "alternative"
| neonsunset wrote:
| If you'd like to explore syntax tree and related IOperations,
| there is a VS Code extension https://marketplace.visualstudio
| .com/items?itemName=333fred.... which lets you do just that,
| it has been very handy for writing source generators.
|
| (though I end up disabling it to reduce extra pressure on
| language server when it's unneeded)
| Nuzzerino wrote:
| Again, only on Windows.
| neonsunset wrote:
| I suppose my ARM-based Mac comes with weird Windows that
| looks like macOS!
| Nuzzerino wrote:
| Sorry, you're right, I was using mobile at the time of
| the reply and thought that was the VS (non code)
| extension. I'll give it a try.
| runevault wrote:
| Interestingly I tried this on my Dell ubuntu laptop and
| it doesn't work. May have to try and figure out why at
| some point.
| neonsunset wrote:
| Try pre-release version, also needs newer Roslyn version
| so the SDK needs to be updated too. OS here doesn't
| matter.
| runevault wrote:
| Pretty sure I'm on latest 8 SDK, but did not try pre
| release of the the addin so that could be it.
| neonsunset wrote:
| It uses a new Roslyn API to dump SyntaxTree and
| IOperation's starting at a specific span of source code
| IIRC, and it shipped in one of the minor version after
| .NET 8.0.0 release, it took me a bit to get it working
| upon its release but by this time you should have the
| necessary SDK, though the relevant extension version may
| still be marked as pre-release hence my suggestion.
| runevault wrote:
| I messed with it a little more before going to bed. The
| prerelease version changed the error and at least felt
| like it was closer. But I also found there was a new SDK
| release in the last few days that I have not upgraded
| yet.
| rjbwork wrote:
| Great piece of software that I basically use for
| scripting/notebooking. Been writing C# so long it's my lingua
| franca and this tool lets me do pretty much everything (except
| actual shell scripting for use on e.g. build servers and
| deployment pipelines) in C#.
| gdev_gabe wrote:
| not sure if this is what you meant, but you can run linq files
| from the command line!
| NicoJuicy wrote:
| Through lprun ofc
| rjbwork wrote:
| Yeah for sure. I do set up crons on my local machine using
| linqpad scripts every now and then, because it's just my
| special little snowflake one off.
|
| But for Devops, build pipelines, etc. I prefer something a
| little more universally applicable and legible and that
| doesn't require a runtime. So bash is usually my approach
| there. Sometimes PowerShell if I know I'm going to be running
| it on a Windows box anyway.
|
| Much as I love C#, if I came into an environment and all the
| Devops/CI/CD was done using Linqpad and lprun I'd immediately
| wonder what in the actual fuck I had gotten myself into, lol.
| CodeCompost wrote:
| Honestly surprised that Microsoft have not bought this up and
| integrated it into Visual Studio. LINQPad is gold.
| atlantic wrote:
| There is already a C# REPL built into Visual Studio, called C#
| Interactive. It takes a bit of getting used to, but it's not
| bad at all.
| recursive wrote:
| Not even in the same zip code.
| mattmanser wrote:
| Echoing the other comment, personally I find the C#
| interactive really frustrating to use. So close and yet so
| far.
|
| I often find it quicker/less frustrating to just fire up a
| new console app project.
|
| Last time I tried to use it I think it was even running an
| old version of .Net and you have to remember to switch the
| version.
| Nuzzerino wrote:
| I'd say it is pretty bad[1], but the F# REPL is decent at
| least.
|
| 1. https://github.com/dotnet/roslyn/issues/26934
| misterflibble wrote:
| Yes I saw the REPL in VS 2022 and Jetbrains Rider, but I
| still prefer having this utility at hand with a collection of
| scripts ready whenever I need to script up something, or
| experiment with a service or database, or learn something new
| in .NET.
| fbdab103 wrote:
| That is true of so many products. Notepad++, Paint.Net,
| Everything search.
|
| Products which would cost Microsoft absolute peanuts to
| acquire. Or even just use that as a model and rip it off
| entirely with an in house version.
| gwervc wrote:
| It's because Microsoft isn't really serious with C#. For
| years it has advertised other languages (e.g. JS on WinRT) or
| runtime (wasm), support in VS Code is still rather
| interesting, UI frameworks were never made truly
| multiplatform and the one which supposedly is is still buggy
| as hell (maui). C# 12 is a pile of crap (C# 13 looks
| interesting tho).
|
| So in the end it's good all those tools stay independent and
| focused.
| oldmanhorton wrote:
| I don't think it's true that C# isn't taken seriously at
| Microsoft - some of the frameworks on top of C# come and
| go, but I worked on JS on WinRT briefly and can say it was
| never, ever "taken seriously" in the way the core C#
| language and runtime is. If you want to work with azure or
| windows, C# will be the obvious best choice for the
| foreseeable future, and if you want to work with C# outside
| of those verticals I don't think it's a bad or dead end
| choice either.
| mandeepj wrote:
| > It's because Microsoft isn't really serious with C#
|
| OP is speaking out of thin air. It's one of the best
| programming languages out there.
| devjab wrote:
| 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
| reason to use it in 2024.
|
| But maybe you know of reasons to use that I'm not aware
| of?
| phito wrote:
| > it's not particularly good at anything
|
| It's extremely good for web APIs, for one.
| high_na_euv wrote:
| Very good lang, coherent ecosystem, great tooling, well
| designed std lib
|
| By far the best developer experience I ever had was in
| C#.
|
| I wish other langs like cpp or c were at least half as
| good at those as C#
| neonsunset wrote:
| Java and Go are both almost unusable at, for example,
| writing games unlike C# which has rich ecosystem for
| this, and it has been gaining performance oriented
| features in every recent version that make it able to
| compete with C and C++, be it compiler improvements or
| SIMD API. Meanwhile Java: https://x.com/lemire/status/180
| 3101802700664955?s=46&t=QDsm5...
| mandeepj wrote:
| > 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.
| devjab wrote:
| I'm not sure I agree with C# being the only first class
| citizen in Azure. A lot of the Azure stuff like the whole
| automation is done with Powershell (or Python, but what
| Microsoft ops people does that?). On the development side
| of things Microsoft is pushing their container apps
| platform over their app/function platforms and it
| integrates with virtually everything.
|
| Even on something like their MSGraph SDKs we're often
| getting better performance out of the JavaScript SDKs.
|
| I think it's a little silly to say that Microsoft isn't
| taking C# serious. If you look at Azure DevOps, which has
| not been taken very serious by Microsoft since they
| acquired GitHub and then compare it to C# there is just a
| world of difference. I do think it risks going that way.
| I'm not sure I think Visual Studio is taken fully serious
| anymore, but it's still getting much more attention than
| Azure DevOps and C# is just... miles ahead of every
| product in terms of seriousness. I do think they are
| making it more and more like Typescript, I'm sure we'll
| eventually see classes replaced by Types and functions
| being capable of living on their own, but that's not
| really a bad thing.
| RachelF wrote:
| 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.
| neonsunset wrote:
| 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
| RachelF wrote:
| Thank you for that!
| cgrealy wrote:
| The Windows API is no longer the focus for .Net. They are
| very clearly pushing large scale web apps.
|
| I'd be curious to know what percentage of people are
| still writing windows clients. I suspect there's a lot of
| legacy code still out there, but it's clearly not the
| future
| pjmlp wrote:
| DevDiv, nowadays part of Azure, is serious about .NET.
|
| Unfortunelly WinDev and XBox[0] only cares about C++ and
| COM nowadays, after they won over the whole Longhorn drama.
|
| [0] - Managed DirectX and XNA were projects pushed by key
| engineers, folded after they weren't any longer around to
| argue for their projects.
| bobcostas55 wrote:
| Everything search is the most befuddling one. The delta
| between Everything and the built-in Windows search can only
| be described as monumental. A vast gulf. They do not even
| deserve to be mentioned in the same sentence. Just fucking
| buy the thing and integrate it, what could they possibly be
| thinking?
| rqtwteye wrote:
| I am glad that they haven't. Usually only a butchered version
| gets integrated or it gets abandoned after a while.
| misterflibble wrote:
| LINQPad is probably the most useful mini-IDE that I've ever
| used and I employ it every single day for .NET prototyping,
| scripting and experimenting. Joe Albahari's done a great thing
| with this utility!
| lf-non wrote:
| Also https://github.com/waf/CSharpRepl - if you want a
| conventional repl, also cross platform.
| Nuzzerino wrote:
| Unfortunately, they still haven't gotten around to making it
| usable outside of Windows
|
| https://forum.linqpad.net/discussion/1935/installation-on-ma...
| vsuperpower2020 wrote:
| I don't bother making anything run on linux unless it's meant
| to run as a service. It's just not worth the time and trouble
| to test it on multiple operating systems, probably with
| different libraries, just for what is a very vocal minority.
| giancarlostoro wrote:
| I have a really random winforms project I opened up the debug
| build of on Linux with Mono and had 0 issues. The bar can be
| very low.
| kid64 wrote:
| Wait, that project actually got off the ground? Is this
| something you're using in production? What's a good
| starting point?
| n4r9 wrote:
| Not the comment you're replying to, but I also have a
| couple of internal winforms projects at work. They make
| it much easier to diagnose and debug issues with a
| backend service that works with GIS data, using libraries
| like GMap.NET. Come to think of it, the company's
| environment management tool is a Winforms application
| that gets used in every production instance. For basic UI
| tooling in a dotnet shop it's second to none.
| jagger27 wrote:
| Or use a Flatpak.
| realusername wrote:
| Windows has a bit less than half the marketshare for
| developers according to the last Stackoverflow suvery. By not
| having a Linux and a MacOS version, you are losing close to
| half of developers.
|
| Even Microsoft themselves understood this.
| justin66 wrote:
| There are a couple of problems here.
|
| Half of Stack Overflow "developers" might not use Windows,
| but the relevant population to measure is C# developers.
|
| Assuming as many Linux C# developers will buy the thing as
| Windows or MacOS developers do is an obvious mistake.
|
| > Even Microsoft themselves understood this.
|
| Microsoft understands, among other things, that they can't
| charge money for Linux tools.
| realusername wrote:
| There isn't as many C# developers on Linux and MacOS
| because the experience has been terrible for a long time
| and still is lacking to a smaller degree, you have the
| cause reversed.
|
| > Microsoft understands, among other things, that they
| can't charge money for Linux tools.
|
| It's the opposite trend going on, they embrace as much as
| possible Linux and port as much as they can.
| justin66 wrote:
| > It's the opposite trend going on, they embrace as much
| as possible Linux and port as much as they can.
|
| How much of it is stuff that people actually pay for?
| realusername wrote:
| Since they just focus on Azure and just milk Windows with
| ads and let it rot nowadays, I'm guessing it must be very
| profitable, otherwise they would stop.
| justin66 wrote:
| I'm sure Azure is profitable for Microsoft. Microsoft are
| not even trying to sell development tools (the category
| of tools that would include LINQPad) to Linux devs.
| realusername wrote:
| They don't care about development tools period anymore,
| they just make most of their business on the cloud and
| most of it being very dependent on Linux.
| anotherlab wrote:
| There is a similar type of app called NetPad.
| https://github.com/tareqimbasher/NetPad
|
| It's not as good as LINQPad, but it runs on the Mac.
| Nuzzerino wrote:
| They don't have Syntax Tree analysis yet but I hear it will
| be released soon
|
| Notice a common theme here? Literally zero ways to browse C#
| syntax trees available on the Mac. Nothing in the cloud
| either from what I could find. Roslyn was open-sourced in
| April 2014, which was 122 months ago. _(edit: Another
| commenter pointed out that there is in fact a new VS Code
| extension that can do this, released Aug 2023)_
|
| By the way, you can't get autocomplete either while
| interactively debugging C# outside of Windows. The debugger
| is proprietary. Maybe there's a way, but I haven't found one.
| neonsunset wrote:
| Rider.
|
| Also, autocomplete works in VS Code debug tab just fine?
|
| Please stop trying to make the windows point.
| Nuzzerino wrote:
| What are you talking about? This is well documented.
|
| https://github.com/microsoft/vscode/issues/30065
|
| https://github.com/microsoft/vscode/issues/48810
|
| https://github.com/dotnet/vscode-csharp/issues/1609
|
| https://github.com/dotnet/vscode-csharp/issues/299
|
| https://github.com/microsoft/vscode-
| dotnettools/issues/573
|
| https://github.com/dotnet/vscode-
| csharp/issues/5276#issuecom...
|
| https://isdotnetopen.com/
|
| A Rider license costs $419 per year per seat and
| Jetbrains has a poor quality record by today's standards,
| and if you are a serious developer that has to use one of
| their products, you'll find yourself at the mercy of
| numerous YouTrack tickets that have been open for years.
| They have a habit of shipping integrations that are only
| partially working, and then calling it a day (or the
| better part of a decade).
|
| By the way, Rider may have been cheaper if not for the
| above moves by Microsoft:
| https://github.com/dotnet/core/issues/505
| neonsunset wrote:
| For organizations it is, for users it's $149 annually and
| then cheaper: https://www.jetbrains.com/rider/buy/?sectio
| n=personal&billin... It is also free for OSS development,
| I maintain a couple of .NET libraries and applied for
| JetBrains free OSS license and they approved it within a
| week or so. On debugger - Rider uses its own debugger,
| they do not license it.
|
| Also, please do not link posts from Miguel De Icaza when
| he isn't in a good mood. He, unfortunately, does not
| provide constructive and/or unbiased criticism on .NET
| after moving out to Swift.
|
| I'm not sure what point you are trying to make but
| current day support for C# on macOS and Linux is very
| good. It is even in a better shape than many other
| languages that have been platform-agnostic from the
| start, yet still don't have such good debugger, static
| analysis and profiler options.
| Nuzzerino wrote:
| Not bad faith, these are issues I've been affected by
| first-hand. And when I have a technical issue I fix it by
| getting to the root cause, not becoming a vassal to
| JetBrains.
| paulirwin wrote:
| And for organizations, it's only $419 for the first year.
| It's $251/yr from 3+ years on.
|
| It should be noted that $419/year is $35/mo, which is
| still $10/mo cheaper than the Visual Studio 2022
| Professional monthly subscription at $45/mo. $21/mo at 3+
| years is less than half.
| jayd16 wrote:
| Your jetbrains hatred is so foreign to me. I think Rider
| is great and well worth the license.
| kinjba11 wrote:
| I pay $173 per year for JetBrain's 'All Products Pack'.
| Considering the salary I make as a software engineer, and
| the quality of the tools JetBrains provides, this is a
| great investment. Rider works flawlessly for me, far
| better than VS.
|
| As a side, it always strikes me as ironic that software
| developers are paid extremely well and yet hesitate to
| pay even a modest fee for the tools that enable them to
| do their job. Most "free" tools are not free - someone
| was paid to create them. IMO whether engineers are on a
| stable payroll is a differentiating aspect to why some
| tools succeed and become widely used and some don't. In
| the case of dev tools, our tech corporatocracy MAMA
| (Microsoft, Apple, Meta, Alphabet) pay engineers to make
| products like VS Code, then release for free. This is for
| eyeballs of course, because charging for the tools would
| get them nothing in comparison to their main platform
| revenue streams, which benefit hugely from the network
| effect.
| tablloyd wrote:
| Autocomplete works fine interactively debugging on MacOS
| with JetBrains rider.
|
| Syntax trees can be browsed on https://sharplab.io/ or
| again via Rider and I'm sure there are some other tools
| that I'm not aware of.
|
| The Roslyn sdk is part of .NET (cross platform) these days
| so anyone can use it to build a visualiser should they wish
| to.
| szundi wrote:
| Where would .NET developers be without the Java based
| IDE, the irony
| SeriousM wrote:
| Visual Studio exists long before jetbrains and VSCode is
| on elecron. I would say java ide is also an essential
| thing but not the thing that made everything possible.
| high_na_euv wrote:
| Weird take
|
| Where CPP devs would be without C# based IDE?
|
| Where all devs would be without js/ts based vscode?
| Nuzzerino wrote:
| Jetbrains IDEs aren't free (and cost many times more than
| what is fair for the quality of the product they are
| known to ship), and SharpLab only has a partial
| implementation of it:
| https://github.com/ashmind/SharpLab/issues/616
|
| > The Roslyn sdk is part of .NET (cross platform) these
| days so anyone can use it to build a visualiser should
| they wish to.
|
| Of course, but for most people that need this, they may
| just be trying to figure out how to do something as
| simple as adding an analyzer rule to a project, and don't
| have the luxury to be able to delay that work to spend
| weeks cobbling together a visualizer using an SDK that
| they may only have barely any knowledge with.
|
| There are certain things that don't inspire the kind of
| passion it takes for volunteers to do this, and therefore
| it's up to those who have a financial motive to do so.
| Whether it be the rent-seekers at JetBrains, or someone
| other than Microsoft and doesn't have an incentive to
| make a competing OS more viable for developers. Without
| the .NET foundation's governance model and funding
| (regardless of who funded it), it would have never made
| it this far. See: https://github.com/dotnet/vscode-
| csharp/issues/5276
| paulirwin wrote:
| > Whether it be the rent-seekers at JetBrains
|
| This is a gratuitously negative comment that is unfair
| and uses an incorrect metaphor. Rent-seeking is trying to
| charge for something without providing any new value,
| usually from something already established as free. I
| don't believe Rider was ever available for free, but even
| if it was, they certainly have improved it with loads of
| new value since then. You're welcome to your opinion
| (that I don't share) that their IDEs are not worth the
| cost, but you're also free to not buy them. That's not
| rent-seeking, it's the free market.
|
| I personally am a big fan of Rider and the JetBrains
| Toolbox suite, and I get several times more value out of
| my subscription than it costs. YMMV.
| vunderba wrote:
| Oh for crying out loud, you could not have chosen a worst
| company to go after for the accusation of "rent seeker."
|
| Jetbrains has offered perpetual fallback licenses for all
| of their products _for years now_. This means that as
| long as you don 't need any of the new updates, you can
| purchase it for a one time fee (basically the equivalent
| of a single year's license) and then you own it.
|
| As far as their products not being worth what they
| charge, I pay about $180 per year (15$ / month) for the
| entire jetbrains library and consistently use CLion (for
| C and C++), Datagrip (postgres, mongo), Data rider (c#),
| Web storm (typescript), Phpstorm, and Pycharm.
| Considering these are the tools of my trade, that's more
| than a fair asking price.
|
| They've also been incredibly responsive, especially
| considering the massive upheavals within the company as a
| result of the invasion of Ukraine by Russia. Whenever
| I've filed an issue on youtrack, it usually gets a
| response, and often a bug ticket that's handled within a
| few version iterations later at most.
| Jenk wrote:
| My full toolbox sub costs less than either my spotify or
| netflix subs do. Move along.
| phito wrote:
| > Literally zero ways to browse C# syntax trees available
| on the Mac.
|
| Literally zero? I can count 2 from the top of my head.
| 3836293648 wrote:
| Or anything with treesitter support?
| Ntrails wrote:
| Yeah, I miss it dearly since I got migrated off windows :(
| misterflibble wrote:
| I wish we could volunteer to help Joe make LINQPad cross-
| platform, I'd definitely like to help with that.
| strayamaaate wrote:
| Likewise. Running LINQPad in Parallels just isn't the same.
| qiller wrote:
| Shout out to my go-to https://dotnetfiddle.net/
| MikeGale wrote:
| The program is gold. It enables you to speedily and almost
| effortlessly build up code, in a way that I haven't seen
| elsewhere.
| jodrellblank wrote:
| https://github.com/tareqimbasher/NetPad is a cross-platform C#
| playground, not as developed as LINQPad but gratis and libre (MIT
| License).
| novaleaf wrote:
| I came here to say that also. NetPad is great, FOSS. Has all
| the features I need.
| figers wrote:
| Thought with a name like that it was for the iPad, wish it was...
| judah wrote:
| I've been a happy paid user of LINQPad for over 8 years now. Love
| it, well worth the price.
| vunderba wrote:
| I haven't used Linqpad in a long time but one of the most useful
| features it had was the ability to add connections to your SQL
| Server databases and then write quick throwaway LINQ/Lambda style
| syntax queries against it, e.g.
| radios.GroupBy(x=>
| x.Channel).Select(x=>x.OrderBy(y=>y.Price)).Select(x=>x.First());
|
| If I remember correctly, it also let you compare the LINQ query
| against the transpiled SQL so you could try to hand-optimize it a
| bit as well.
| runevault wrote:
| I haven't used the .NET Core version but the old one 100% had a
| view to see the generated sql.
| steego wrote:
| This is still very much a feature.
|
| I often write/compile .NET Core code in watch mode and then
| use LinqPad to explore existing libraries.
| bilekas wrote:
| I used to use this a few years back when my company was paying
| for it, but nowadays I dont work too much with dotnet but for all
| playground little things I use ideone.com it does it all in the
| browser.
| kagevf wrote:
| This blog has some useful Linqpad tips:
| https://www.danclarke.com/linqpad-tips-and-tricks
|
| In particular, keyboard shortcuts to toggle visibility on the
| different sub-windows, and using the Util class to prompt for a
| password I find to be useful.
| voidmain0001 wrote:
| I like that multiple databases can be used in the same scripting
| context. http://www.linqpad.net/FAQ.aspx#cross-database
| mnau wrote:
| It'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.
| ryncewynd wrote:
| You pay for every LTS dotnet,so every 2 years. E.g Linqpad
| .Net8 license also supports .Net9
| mnau wrote:
| > All licenses are perpetual (non-expiring) for the current
| _major_ version, and include free minor updates.
|
| Major version are: LINQPad 2, 4, 5, 7 and 8. The official
| page seems to disagree. There is nothing about LTS.
|
| Sure, I can skip 7 and wait for 8, but that kind of defeats
| the purpose.
| RexM wrote:
| Is there anything like this for Java. I really miss LINQPad since
| I've moved to a company that uses Java instead of C#.
| BadJo0Jo0 wrote:
| These days across all languages, I just default to a Jupyter
| notebook.
| imachine1980_ wrote:
| you most likely use linq for query the database in your
| backend code not for data analytics related
| justgaurav wrote:
| A 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 to manage my collection of snippets to do some ad
| hoc tasks on my machine. I also use it for testing out new code
| and learning about new features. It would be great when it
| becomes cross-platform, but last I heard Jo Albahari mentioned
| that the investment required was quite big and not worth it (at
| that time).
|
| On the side note, I had a chance to see Jo Albahari's
| presentation few years ago in Sydney and I think he is unsung
| hero of .NET world (along with Ayende)!
| loxias wrote:
| Borderline dangerous software. If it was reliable and worthy of
| supporting a stack, it wouldn't be Windows only.
|
| By being Windows only, it conveys "toy" status. Professional
| database engineers don't use non-Linux, hence I can infer
| professionals don't use this.
| Kwpolska wrote:
| This tool is for software engineers, not database engineers.
| .NET is a Microsoft tool, and one that was tied to Windows for
| a long time, so most tooling is Windows-only too.
|
| What makes Linux uniquely appropriate for database engineering?
| Why not *BSD? What OS do you think engineers working with
| Microsoft SQL Server use?
| misterflibble wrote:
| LINQPad is probably the most useful mini-IDE that I've ever
| used for .NET development and I employ it every single day for
| prototyping, scripting and experimenting. Joe Albahari
| developed it and he's renowned for his C# .NET expertise, so
| you're in great hands with this utility.
| nlawalker wrote:
| I love LINQPad, it reminds me of first learning to program via
| DrJava in college. Just write and run code, completely free from
| all the configuration, structure and other concerns related to
| building and shipping a binary or other deliverable.
| NicoJuicy wrote:
| I've setup linqpad as a CMS for scripts and distributed it over
| nuget for support scripts.
|
| Including login and etc.
|
| Linqpad is great
| xnorswap wrote:
| A true essential tool. One of the few pieces of software for
| which I own a personal license.
|
| One of the useful features is that it keeps the executable
| running even after the script has finished, and will re-execute
| in the same process.
|
| This has some downsides and quirks (if you're not careful, you
| can double-initialize things like database connections), but has
| benefits for debugging.
|
| The newer versions have "built in" support for Benchmark.NET too
| which is a really nice feature for quickly proving code.
| ed_elliott_asc wrote:
| I've never got used to linqpad over just creating a console app
| and writing code, it may be because I've never been one for
| keeping a collection of snippets?
|
| I'm not against it, I just don't need it
| liversage wrote:
| One of many useful features of LINQPad is the output visualizer
| ("Dump"). Granted, there are now NuGet packages (very likely
| inspired by LINQPad) that can do something similar in a console
| app but LINQPad is interactive, allows drill-down and can
| export to formats like Excel. It's such a productivity boost.
|
| The database integration is also great and allows me to write
| ad-hoc SQL queries using LINQ.
| bertylicious wrote:
| That's exactly the kind of thing I always hated about .net --
| how the absence of a REPL forces me to create an executable for
| even the tiniest things. LINQPad solves this beautifully. Not
| sure if index ranges are inclusive or exclusive? Open LINQPad,
| double-click tab bar to open a new tab, type `"0123"[..^2]`,
| press ALT+X, done. I'd never go through the hassle to create an
| executable with VS for that, so instead I have to look up the
| documentation which is much more boring. And what's even
| better: countless times I was wondering what happens inside the
| framework and because LINQPad comes with ILSpy (I believe so,
| maybe you'll have to set it up) you can just F12 a framework
| method to see its source.
| gsck wrote:
| I stumbled across this the other day, I was given an old SQL
| Server Compact database and needed to dump out some information
| from it, and LINQPad was the first program that was recommended.
|
| Unfortunately the DB was SQLServer Compact 3.5 and for whatever
| reason LINQPad couldn't find the required assemblies to open it
| which was a shame
| thefz wrote:
| I bought every major version. Truly a staple of my day to day job
| when I was working as a programmer. Invaluable scratchpad.
| deanebarker wrote:
| I use this constantly. Every single day. I have hundreds of
| scripts that run in it. It's just wildly valuable and useful.
| enb wrote:
| Haven't used it in a while but it was essential in helping me
| understand how the bcl and c# features behaved and worked. I love
| it
| readergreader wrote:
| Ditched it after realizing I'd have to pay for every .NET version
| change, and never looked back.
| replwoacause wrote:
| I've always wondered why it doesn't provide PowerShell support
| since it too is built atop .NET
| ygra wrote:
| 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.
| replwoacause wrote:
| Thanks for that insight, makes a lot of sense.
| FrustratedMonky wrote:
| In the background is this doing anything similar to what a F#
| typeprovider is doing?
| steego wrote:
| Yes - When you connect to a database, it generates code for
| that database using something called a LinqPad Driver.
|
| You can make your own driver as well as use about a dozen of
| other drivers.
| rqtwteye wrote:
| Linqpad is one of the few tools that do what they need to do
| without much fuzz and in a straightforward manner. Beyond Compare
| is also in the same category.
|
| I am glad that the UX people haven't gotten around to mess it up
| yet.
| johnnyballgame wrote:
| +1 Beyond Compare. It's been on my list of must installs for
| every new system I've set up for many years.
| gofreddygo wrote:
| For Windows OSes, winmerge [1] has been a solid free
| alternative to beyond compare for me for years.
|
| [1]: https://winmerge.org
| xcjs wrote:
| Did they ever get around to three-way merges? That's a
| must-have if you use Git as a VCS.
| alhsn wrote:
| Awsome tool which I used for a while. Then I switched to
| RosylnPad because it was enough for my use cases, and it included
| intellecense.
|
| Nowadays, I am looking for a notebook style editor (like jupyter
| notebook) that supports dotnet well and works with VS Code. I
| tried Polygot notebook a while back, but it kept crashing, so I
| un-installed it.
| jasomill wrote:
| As someone with a strong bias towards interactive, investigative,
| "library-first" development, LINQPad is an essential part of my
| C# toolkit, as every other C# REPL and interactive environment
| I've tried has come up short in one significant way or another.
|
| Essential 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.
___________________________________________________________________
(page generated 2024-06-24 23:01 UTC)