[HN Gopher] Show HN: I've built a C# IDE, Runtime, and AppStore ...
       ___________________________________________________________________
        
       Show HN: I've built a C# IDE, Runtime, and AppStore inside Excel
        
       The project is called QueryStorm. It uses Roslyn to offer C# (and
       VB.NET) support in Excel, as an alternative to VBA. I've posted
       about it before, but a lot has changed since then so figured I'd
       share an update.  The current version includes a host of new
       features, namely a C# debugger, support for NuGet packages, and the
       ability to publish Excel extensions to an "AppStore" (which is
       essentially a NuGet repository). The AppStore can be used by anyone
       with the (free) runtime component.  Another great addition is the
       community license, which is a free license for individuals and
       small companies to use. It unlocks most features, but it isn't
       intended for companies with more than 5 employees or over $1M in
       annual revenue.  I would love to hear your feedback and am happy to
       answer any technical questions about how QueryStorm is implemented.
        
       Author : anakic
       Score  : 574 points
       Date   : 2023-01-25 09:39 UTC (13 hours ago)
        
 (HTM) web link (querystorm.com)
 (TXT) w3m dump (querystorm.com)
        
       | nielsbosma wrote:
       | Love it! Big fan of developer productivity tool like Linqpad.
        
       | major505 wrote:
       | Now I can use excel. I always sucked doing stuff in excell
       | formulas. With this now I can just linq and spit the info I need.
        
         | viggity wrote:
         | devs "hate" excel because you have to reference by col/row (C10
         | = tax rate, etc). But few devs know that you can name cells
         | (and ranges and tables). Just to the left of the formula bar
         | you'll see a textbox with the default name of the cell (C10).
         | Just delete C10 and call it "tax_rate" and now you can
         | reference "tax_rate" in all your formulas.
        
         | TrackerFF wrote:
         | Now sure how known this is, but Excel 365 for Business /
         | Enterprise supports Office Scripts (under a "Automate" tab),
         | where you can create scripts in TypeScript.
         | 
         | https://learn.microsoft.com/en-us/office/dev/scripts/overvie...
         | 
         | https://learn.microsoft.com/en-us/office/dev/scripts/develop...
        
       | barrenko wrote:
       | This is pretty mad.
        
       | rukuu001 wrote:
       | I remember you back when it was just an SQL plug-in for Excel :)
       | 
       | Congrats on building this and sticking with it so long. It's
       | awesome!
        
       | gwbas1c wrote:
       | I tried clicking on the animation to make it bigger, but the
       | larger image doesn't load.
       | 
       | I'm using the Brave browser.
        
         | layer8 wrote:
         | Same on FireFox.
        
           | anakic wrote:
           | Yeah, I just checked and it fails on some gifs for me as well
           | (but works on others for some reason). I'll leave it as is
           | for now, best not fiddle with it while this post is trending.
        
       | chinupbuttercup wrote:
       | Would this work with Excel for the Mac as well or is primarily a
       | Windows thing? Somehow, while good, I feel like Excel for Mac
       | just isn't as good as Excel for Windows.
        
         | anakic wrote:
         | Unfortunately, no. Excel for Mac doesn't support either of the
         | two technologies QueryStorm uses to talk to Excel (namely VSTO
         | and ExcelDNA).
         | 
         | Might be possible to build something that would work across all
         | plaforms using Blazor and the Monaco editor, but that would be
         | another huge project.
        
       | major505 wrote:
       | this is.... awesome.
        
       | RektBoy wrote:
       | If the user can code in C#, why they need Excel? Exporting to
       | Excel for other non-coder employees, sure why not.
       | 
       | I don't understand the use-case, Excel is horrible tool for
       | anything else than stupid, a few hundred rows data science.
        
         | eatsyourtacos wrote:
         | You must not work with any kind of real world data if you think
         | Excel is a horrible tool.
         | 
         | Pulling in 1000000000 rows of data you know absolutely nothing
         | about to throw into your ML model and have it spit out some
         | questionable result doesn't mean you actually work with real
         | world data.
         | 
         | >a few hundred rows data science.
         | 
         | People that work with a few hundred rows are called "almost
         | every office employee ever" and not data scientists. And you
         | are naive as hell if don't realize how powerful excel is for
         | every random ass thing that happens in the real world.
        
       | jbb_hn wrote:
       | Wow. As someone that has written a fair amount of VBA in the
       | past, this is a game changer.
       | 
       | Impressive feat of integration and I hope you're rewarded for all
       | your efforts.
       | 
       | Clearly a passion project!
        
       | kinggencha wrote:
       | Animations embedded within text are distracting and make the
       | reading experience worse
        
         | anakic wrote:
         | I like that a gifs shows so much in very little space, but I
         | take your point about it being distracting. Regular mp4 videos
         | you can play/pause explicitly might be a better option for the
         | future.
        
       | keithalewis wrote:
       | Does this use https://excel-dna.net/ behind the scenes?
        
         | anakic wrote:
         | Yeah, the runtime component is an ExcelDNA addin. The IDE
         | component is a VSTO addin. Since VSTO doesn't allow defining
         | custom functions I switched to using ExcelDNA for the runtime.
        
           | andysinclair wrote:
           | What did you use to write the installer, and how do you
           | determine if the targeted version of Excel is 32 or 64 bit?
           | 
           | I've built an Excel-DNA based Add-in
           | (https://www.excelpricefeed.com/) and distribute it via an
           | installer built using Advanced Installer. It works well, the
           | only real pain point is the the user has to find out which
           | version of Excel they have installed in order to choose the
           | correct download (32 or 64 bit).
        
             | keithalewis wrote:
             | See https://github.com/xlladdins/xlladdin/blob/master/ThisA
             | ddIn....
        
             | anakic wrote:
             | I use Wix for the installer. Can't remember how I dealt
             | with that particular issue, but ping me at antonio [at]
             | querystorm.com in a day or two, if you're interested, and
             | I'll have a look at how exactly I dealt with it.
        
           | keithalewis wrote:
           | Please consider acknowledging that on your website.
        
             | anakic wrote:
             | I would love to but I'm a bit scared to fiddle with the
             | post now while it's trending. I think it's mentioned in a
             | few places on the website, but not in this blog post. I do
             | also use a bunch of other libraries, but yeah, ExcelDNA is
             | one of the critical ones so mentioning it would be in
             | order.
        
       | HeckFeck wrote:
       | Very cool. Should be a part of Excel tbh. LINQ is much better
       | suited for data munging than JavaScript.
        
         | qwerty456127 wrote:
         | F# is even better.
        
           | eitland wrote:
           | Maybe, but I think C# has the advantage that "everyone" knows
           | it or Java so it is trivial to get started.
           | 
           | Last I checked, admittedly a couple of years ago, starting
           | with F# wasn't absolutely trivial.
        
             | eckza wrote:
             | It is, if you know where to look.
             | 
             | Therein lies the problem. The language doesn't have much
             | marketshare, and few champions.
             | 
             | I just finished reading Scott Wlaschin's Domain Driven
             | Design for Functional Programmers and it's an incredible,
             | batteries-included guide that goes from "hello world" to
             | "and here's how you use it in an organization" in a few
             | hundred pages.
             | 
             | I wish I had been exposed to it about a decade ago.
             | Incredibly easy to follow and well-explained.
        
               | fsloth wrote:
               | This! Other good books are "Expert F#" by Granicz, Syme &
               | Cisternino, "Real world functional programming" by
               | Petricek and "F# for scientists" by Harrop. The last is
               | old but still really great in succintly explaining what
               | 'new&unfamiliar' structures in F# are great for pragmatic
               | software engineering.
               | 
               | Why is there so little noise in F# land? I have no data,
               | but I can guess that the language is so unproblematic
               | that everybody is just happily coding instead of
               | explaining how to fix something. It's also not very good
               | at guis so there is usually nothing visual to
               | demonstrate.
        
               | grugagag wrote:
               | What's the markershare though? F# is great but Microsoft
               | made it sortof a second class citizen
        
               | fsloth wrote:
               | F# is installed by default with Visual Studio, and the
               | tooling is pretty good. I think it hardly is second class
               | citizen? Not promoted nearly as much as C# for sure.
               | 
               | AFAIK F# is on quite solid foundation, as there is the F#
               | foundation that would keep ball rolling, so to speak,
               | were Microsoft to renounce the language.
               | 
               | I have no idea what the marketshare is though. On Tiobe
               | (https://www.tiobe.com/tiobe-index) it seems to be nearly
               | on par wit Scala and much more popular than Haskell or
               | Ocaml.
        
               | pjmlp wrote:
               | Pretty good if only what one cares about is CLI and class
               | libraries.
               | 
               | According to JetBrains developer survey, an amazing 3%.
               | 
               | https://www.jetbrains.com/lp/devecosystem-2022/csharp/
        
               | eckza wrote:
               | I think that the problem is that:
               | 
               | - fsharp's big selling point is that it runs on dotnet -
               | most FP ideologues run screaming from M$, and there are
               | other, better (subjectively), more-active FP langs that
               | do many of the same things, such as OCaml and Haskell -
               | most dotnet shops are "csharp or die" and getting fsharp
               | adoption is more or less an impossible task for cultural
               | reasons
               | 
               | I support fsharp and generally like it, but I'm not
               | reaching for it for net-new stuff that doesn't already
               | have a dependency on dotnet. $0.02.
        
           | pjmlp wrote:
           | For that you already have PowerQuery on Excel.
           | 
           | As for being better, F# is better on the language level, but
           | sadly sucks on the tooling effort for .NET frameworks, that
           | Microsoft is willing to spend on it.
        
       | brushfoot wrote:
       | This is excellent. I can see buying it for my business. We
       | already use Excel extensively for the open file format; that it's
       | local first; that it's just a file; the low ceremony of getting
       | started; the multipurpose grid for code, data, and presentation;
       | the ubiquity.
       | 
       | The more low-code/no-code SaaS products I've tried, the more I
       | value it. LC/NC SaaS generally is expensive and inflexible.
       | Everybody knows Excel, it's dirt cheap, and it just works. It's
       | part of a certain IT subculture to bash it, but I stopped
       | laughing along.
       | 
       | Excel is great at what it does. Love seeing clean solutions like
       | this that give it even more muscle.
        
         | beached_whale wrote:
         | I love how approachable it is. Domain experts in other fields
         | are able to program in excel and codify their knowledge. While,
         | not always great in terms of code quality, often it is bad, it
         | still provides a great starting point in moving to something
         | more resilient and safer in terms of data validation.
         | 
         | There is a reason it is the worlds most poplar programming
         | language
        
           | redavni wrote:
           | "most poplar programming language"
           | 
           | In your opineion.
        
         | anakic wrote:
         | Hope you give it a go. I'd love to know how you get on with it
         | if you do!
        
       | actionfromafar wrote:
       | Find a way to connect this to Zapier and the Universe might open
       | up a wormhole.
        
       | mcdonje wrote:
       | Really cool. I could see MS jumping on this because of their
       | strong association with C#.
       | 
       | That said, I think the ideal replacement for VB & VBA in most
       | contexts is python. The reason is they're both high level
       | languages with ease of learning as a selling point. Python has a
       | massive userbase, and there is significant overlap of python and
       | MS Office tools. Data analysts who have to deal with Excel & SQL
       | Server are much more likely to know python than any other
       | language outside of SQL.
       | 
       | It seems like python has pretty much locked up the spaces that VB
       | was designed for.
        
         | kab0b wrote:
         | I thought I remember hearing like 4 or 5 years ago that MS was
         | planning on replacing VBA with Python Support in Office apps.
         | But I can't find anything to back that up, so maybe I just had
         | a really wishful dream.
        
           | mcdonje wrote:
           | They might have some involvement in python libraries or
           | tooling to interact with excel files from python apps, but
           | the default programming support within excel is still VBA.
           | They did add a javascript API, but getting that up and
           | running is a job geared more for a dev than a data analyst.
           | 
           | What I think they should do is not just make a python API,
           | but replace VBA with it, and expose it to end users where VBA
           | is currently exposed. Python should be the language of macros
           | and user defined functions.
        
             | kevin_thibedeau wrote:
             | They should dust off Windows Scripting Host and use that as
             | the nexus for Office app scripting.
        
       | cobrabyte wrote:
       | This is excellent. Great work!
        
       | anton_ai wrote:
       | Installed :)
        
       | T3RMINATED wrote:
       | [dead]
        
       | ycuser2 wrote:
       | I would have used the hell out of it 8 years ago! VBA IDE was a
       | pain.
       | 
       | Great work!
        
       | waldrews wrote:
       | Spectacular. Stats PhD here, I've needed this for years for
       | practical projects in different data science roles. I'd love to
       | talk to you about adding statistics/forecasting capabilities,
       | maybe by exposing some existing libraries with syntactic sugar.
        
       | gadders wrote:
       | Good work, but this is depressing:
       | 
       | "VBA is a bit (a lot) behind the times and Microsoft isn't
       | planning on upgrading it. Instead, they're offering a sandboxed
       | JavaScript environment called Office Scripts."
       | 
       | Microsoft - Just swap VBA for Python ffs.
        
         | qiqitori wrote:
         | There's a lot of people who only know VBA (in terms of
         | programming languages), and there's a huge amount of VBA code
         | in production out there. Microsoft won't make itself popular by
         | replacing VBA for some silly technical reason, especially not
         | because the syntax is perceived to look better. It's a bit like
         | renaming the SUM function to ADD and expecting everyone to
         | rewrite their formulas.
        
       | orbit7 wrote:
       | Impressive, Excel would benefit having this built in
        
       | [deleted]
        
       | denismurphy wrote:
       | Hats off @anakic this is class! It would be a game-changer if
       | Microsoft licensed QueryStorm built in to Excel. Let's hope the
       | right people at Microsoft are paying attention to you.
        
         | anakic wrote:
         | Thanks! Wouldn't mind that outcome one bit. It's hard to get
         | exposure and adoption for a platform like this without some
         | serious muscle backing it. I suspect Microsoft has its sights
         | set on the cloud, though, but still, it would be amazing if
         | they adopted QueryStorm.
        
       | samstave wrote:
       | Beautiful.
       | 
       | So can people upload their code snips to the appstore such that,
       | say, a marketing data analytics person with no coding experience
       | can pay to get 'buttons' to run queries that are relevant to
       | their needs?
       | 
       | like the salaries example, for example, I used to spend a shit-
       | ton of time educating a CFO on AWS spends in excel.
       | 
       | If I could have a code snip 'button' to use some AWS-CLI creds to
       | pull results directly from AWS asa "CFO BUTTON" and set them up
       | with an easy export to an XLS - and then let them build their own
       | dash to their choice that would be cool.
       | 
       | I havent looked at Cloudability in quite a while, (know the
       | founder) -- but giving a CFO-type an excel button... Every CFO
       | can navigate excel. so they get an invisible tool that empowers
       | them, and relieves stress on the Ops team...
        
         | anakic wrote:
         | Yep, that's the idea.
         | 
         | You create a project that defines some custom functions, ribbon
         | commands, context menus, shortcuts etc... and then publish it
         | to a store. Then anyone who has the QueryStorm Runtime (and the
         | url of the store you published to) can install it through the
         | "Extensions" dialog.
         | 
         | I haven't yet set up the ability to charge for packages but I
         | plan on offering this. I first need a community of users, so
         | didn't focus on charging yet.
         | 
         | If you'd like some help setting up something like that AWS
         | scenario, reach me via email: antonio [at] querystorm.com, I've
         | done several such integrations already (Google analytics,
         | Monday.com, TSheets, Google drive).
        
       | ragebol wrote:
       | No questions, just complimenting on what looks like a great, very
       | very useful product.
        
         | anakic wrote:
         | Many thanks!
        
       | cm2187 wrote:
       | Microsoft actually built that already, then they decided to kill
       | it. It was called VSTA (not to be confused with VSTO). It shipped
       | with one of the apps of Office 2007.
        
         | anakic wrote:
         | At first I thought you were referring to VSTO, then I saw the
         | "not to be confused with VSTO" part. I had no idea this ever
         | existed. Thanks for mentioning it. I wonder why they decided to
         | pull the plug back then.
        
           | kleiba wrote:
           | Funnily, QueryStorm uses VSTO behind the scenes: the IDE
           | component is a VSTO addin.
        
           | cm2187 wrote:
           | I suspect it must have been part of "let's try to secure /
           | lockdown office", "users writing codes is bad, they should
           | only push buttons", and at the same time they tried to make
           | it as hard as possible to use VBA (all sorts of warnings and
           | things disabled by default, etc)
           | 
           | I am also aware of a commercial product that offers a .net
           | IDE to be embeded into your software, though I never tried
           | it: https://www.alternetsoft.com/products/scripter
        
       | ChicagoDave wrote:
       | Linq in Excel is very interesting.
        
       | 813919 wrote:
       | This is incredible. I work in industrial automation and I often
       | have to manage / make edits to "point assignment charts" which
       | are essentially Excel Workbooks with 100+ Worksheets, each
       | containing ~10-100 rows of formatted data which define various
       | parameters each real world "point" should have in order to
       | communicate with RTUs / various SCADA nodes.
       | 
       | Sometimes the feedback involves making a minor tweak on every
       | Worksheet. Sure you can muck around with VBA (which is a horrible
       | language and experience), but I often just do it manually to get
       | it over with instead (click click click... very tedious).
       | 
       | C# is my go-to "business logic" language as a developer, and this
       | looks so well integrated, really excited to use it.
        
         | anakic wrote:
         | Would love to know how you get on with it. If you'd care to
         | share, please to let me know.
        
           | 813919 wrote:
           | Sure! I'll make a reminder to follow up a week from now on my
           | UX. Thanks :)
        
         | jodrellblank wrote:
         | > " _Sometimes the feedback involves making a minor tweak on
         | every Worksheet._ "
         | 
         | Could be a good task for PowerShell and the ImportExcel
         | module[1].
         | 
         | (PowerShell also being a .NET language and written in C#; it
         | has convenient access to COM control of Excel if you can't
         | import the spreadsheet and export an updated version; through
         | $xl = New-Object -ComObject Excel.Application )
         | 
         | [1] https://github.com/dfinke/ImportExcel
        
         | kevin_thibedeau wrote:
         | You have inherited a crappy database. Export it via ODBC and
         | use more powerful tools.
        
           | 813919 wrote:
           | No not really, it's many projects with many documents, shared
           | among many contractors. You use Excel Workbooks when you work
           | in fields like this. We have it formatted to be pretty too,
           | so we can just publish to PDF via Adobe Acrobat when it's
           | time to send in submittals.
        
       | drorco wrote:
       | This looks great! In my previous company, we somehow ended up
       | building a whole ERP around Google Sheets. Google Sheets is a
       | very powerful tool, but the JavaScript definitely felt clunky and
       | outdated.
       | 
       | A solid C# foundation for building on top of excel could probably
       | be very useful for some companies.
       | 
       | I do wonder though how you can nail down a target audience for
       | this kind of tool, seems like you'd need a special kind of
       | tinkerer and I'm not sure how many like that are out there. In my
       | other company, which was a small company, the ones who headed it
       | were essentially engineers that transitioned to executive
       | positions. I doubt there are many like that out there.
        
       | nycdotnet wrote:
       | Looks awesome. One fundamental issue I always faced with Excel
       | calculations of any kind (formulas or vba) is the lack of ability
       | to source control cleanly (binary format plus data and code are
       | intermingled). This weakness is the other side of the
       | spreadsheet's greatest strength which is low friction
       | experimentation with data. Does this product attempt to do
       | anything here?
        
         | anakic wrote:
         | Thanks!
         | 
         | You can version control the code you write with QueryStorm, to
         | an extent. There are basically two kinds of apps you can build
         | with this: extension apps (where you build general excel
         | functionality) and workbook apps (where you automate a
         | particular workbook).
         | 
         | The code for extension apps is stored in a folder on your
         | machine, and you can version control that easily.
         | 
         | The code for workbook apps is stored inside workbooks. While
         | there's no version control functionality in QueryStorm, it does
         | let you export code from a workbook into a folder, as well as
         | import code from a folder into a workbook project. There are
         | context menu commands for this in the code explorer pane. This
         | lets you decouple the code from the workbook.
         | 
         | Basically, for version controlling code in a workbook, you'd
         | have to export the code into a folder and version control it
         | there. Exporting into a folder will clear everything from the
         | folder except hidden stuff like the ".git" folder so your git
         | repository will be safe. Not a perfect solution, but it can be
         | done.
        
           | cxr wrote:
           | Since XLSX etc. use Microsoft's Open Packaging Convention (a
           | ZIP container consisting of mostly plain text), consider
           | adding native support for unpacking and normalizing the
           | payloads so they can be trivially diffed by existing source
           | control systems.
        
             | anakic wrote:
             | It's something to consider, for sure. Perhaps there's an
             | easy win to be had there.
        
           | whitemary wrote:
           | Can you also import it from the folder?
        
             | anakic wrote:
             | Yeah, you can import the folder back into the project and
             | it will replace all of the existing files with the ones
             | from the folder.
        
           | unnah wrote:
           | Have you considered implementing a project folder structure,
           | so that the workbook and the source code could be version
           | controlled together in git, but the IDE would import and
           | export the source automatically from/to the workbook?
        
             | anakic wrote:
             | You mean add the workbook itself into the folder as binary
             | file to include in source control? I haven't, but it might
             | make sense, to keep the workbook in sync with the source
             | code.
        
       | samsquire wrote:
       | This is absolutely awesome.
       | 
       | The combination of a spreadsheet, database and data scripting
       | runtime would be extremely powerful.
       | 
       | This is where Airtable, nocodb and baserow are candidates.
       | 
       | I worked at a company that used gridgain with Excel as a cluster
       | to process models on lots of servers.
       | 
       | I suspect there's a lot of low level Windows integration details
       | about how to integrate with Excel. COM objects and DLLs.
       | 
       | Why is integrating with software so difficult? Very few people
       | know how to do it.
       | 
       | How you design software that is extensible?
       | 
       | Atom was extensible and VS Code is less so.
       | 
       | Why has nobody integrated the web browser with QT? So we can
       | browse into a Qt application. So you can create desktop widgets
       | and canvases with Qt from Javascript? That way you could ship
       | desktop software and arbitrary integrations to software.
        
         | TeMPOraL wrote:
         | > _Why is integrating with software so difficult? Very few
         | people know how to do it._
         | 
         | I feel it's because of inherent conflict of interests and
         | priorities. A software product can provide services to the
         | user, or provide services to other programs. It's rare to see
         | one that does both, because the two goals seem often at odds.
         | 
         | Say you're writing a software component for other programs to
         | use. You probably have some specific programs in mind, some of
         | which are end-user-facing. In this case, you may not want to
         | spend resources on developing user-facing UI and features that
         | make your product usable stand-alone - you'd likely end up
         | competing with your own customers.
         | 
         | Say you're writing user-facing software instead. You want to
         | own the entire user experience. Mixing UI, user interaction and
         | the "business problem"-solving code together lets you work
         | faster. Also, you don't _want_ to make it easy for anyone to
         | integrate with the core of your software, because that would be
         | inviting competitors to own the user experience while using
         | your own backend, ruining all kinds of marketing shenanigans
         | you 'd rather play on your users.
         | 
         | I don't like this, but I see there's a mix of both reasonable
         | and greedy reasons why software isn't developed with
         | integration in mind.
         | 
         | The major exception here is when the platform on which the
         | software runs encourages, insists on, or demands the software
         | to allow for integration. Windows does that to an extent with
         | COM / DCOM. Emacs does that by its nature. But it's only moving
         | the problem one level up - e.g. Microsoft environment can't
         | integrate well with Apple environment.
        
         | brendank310 wrote:
         | OT: You can do that with Qt. We played with implementing it
         | ourselves for a project about 10 years ago. Since then I think
         | there is an official QPA that will render Qt apps within the
         | browser, and there is the Wt project. Might be worth looking at
         | for some needs but I don't see it becoming popular.
        
       | inglor wrote:
       | I work on Excel at Microsoft and this is really cool. I'll check
       | it out and share it with the rest of the R&D.
        
         | anakic wrote:
         | Thanks, that's great!! <3
        
         | keithalewis wrote:
         | Please tell Satya to show the ancient C SDK a little love. I'd
         | hate to see this disappear:
         | https://github.com/xlladdins/xll#fp-data-type
        
         | andysinclair wrote:
         | Do you know if this item from the Microsoft 365 roadmap would
         | stop Add-ins (xll files) like this from working?
         | 
         | https://www.microsoft.com/en-us/microsoft-365/roadmap?filter...
         | 
         | I also have a vested interest as one of my software products is
         | an xll Add-in. Any further details from Microsoft would be most
         | welcome, thanks.
        
           | inglor wrote:
           | Open us a feedback through the app. We actually read every
           | tiny bit.
        
             | Tempest1981 wrote:
             | Cool. How can I turn off the animated cursor movement in
             | Excel? And Outlook? Drives me crazy. I keep submitting
             | feedback. Even a registry hack is fine.
        
           | anakic wrote:
           | No idea, haven't seen this until now. Hopefully they provide
           | a mechanism for allowing legitimate addins to get around it.
           | Perhaps using a code signing cert (which I do) or an EV
           | certificate would be appropriate. Security has been a bit of
           | nightmare with Excel addins. I've had to deal with false
           | positives on and off again a bunch of times already. First it
           | was windows smart screen, then antivirus vendors every so
           | often. It's a slog...
        
             | tech234a wrote:
             | Typically you can go into the file properties and check the
             | "Unblock" checkbox to remove what Microsoft calls the "Mark
             | of the Web".
        
         | gadders wrote:
         | Jan 2024 - Microsoft releases Excel with it's own built-in C#
         | IDE, doesn't credit original developer.
        
           | IshKebab wrote:
           | Honestly it's annoying that they haven't already done that. I
           | was surprised a few years ago when I checked and it didn't
           | exist.
        
           | giancarlostoro wrote:
           | They might be likely to offer him a job there honestly. The
           | architect of C# was poached from Borland after all.
        
             | pjmlp wrote:
             | No he wasn't, he left Borland after being disappointed how
             | things were going.
             | 
             | He declined several approaches from ex-Borland people
             | working at Microsoft, before reaching that point.
             | 
             | https://behindthetech.libsynpro.com/001-anders-hejlsberg-
             | a-c...
        
               | giancarlostoro wrote:
               | Interesting, the story I've heard from various Senior
               | Engineers is that Microsoft poached him by offering him a
               | ton of money. Crazy to think they all repeated a tech
               | urban legend I guess
        
             | addandsubtract wrote:
             | How'd that go for the AppGet dev?
        
               | VWWHFSfQ wrote:
               | I always felt that there was more to that story than what
               | was reported. My understanding is they reached out to him
               | to interview for a PM role to develop an official
               | "AppGet" at Microsoft but, for whatever reason, he didn't
               | get the job. Maybe the interviews didn't go well? Maybe
               | there were some red flags somewhere? Who knows. But it
               | didn't really sound to me like they acted in bad faith.
        
               | giancarlostoro wrote:
               | Not familiar with this story.
        
               | xbar wrote:
               | Nor was I. It's worth a search and read.
        
             | gadders wrote:
             | I hope it does work out for the original author and he
             | deserves it but there have been cases before where concepts
             | have been taken from their originator and implemented by
             | the large corporate with no cash or even credit given.
        
               | xbar wrote:
               | Maybe this was a better initial comment.
        
             | IncRnd wrote:
             | Even today, it isn't Embrace, Extend, Employ.
        
           | inglor wrote:
           | Oh boy you don't know what our culture looks like. It's more
           | "it's cool that people are building on top of it and we want
           | to figure out how we can make it easier"
        
             | iforgotpassword wrote:
             | People didn't forget this story:
             | https://www.theverge.com/2020/5/28/21272964/microsoft-
             | winget...
        
               | inglor wrote:
               | Oh Microsoft the company is not to be trusted and is not
               | your friend. It's a huge company with many employees and
               | products. Moreover I can't attest to any other group's
               | culture - I can only say what we do in Excel.
               | 
               | In Excel working hard to make addons possible and trying
               | to foster an ecosystem of users sharing expertise is a
               | focus as well as community building and smbs.
               | 
               | Taking a cool community project and doing it ourselves
               | would shooting our selves in the foot.
               | 
               | More than once I didn't do things or work in features for
               | that reason.
               | 
               | Again not because Microsoft is your friend but because
               | it's in our business interest.
               | 
               | I don't speak for Microsoft or Excel and am just a
               | developer/hacker ;)
        
               | pyth0 wrote:
               | I got this impression as well. I worked on a team two
               | years back building out a very complex Excel plugin using
               | Excel.js. The SDK has quite a few quirks and we ran into
               | some problems along the way, but the team at Microsoft
               | responsible for it was happy to help and interested in
               | hearing feedback and features we wanted. A positive
               | experience :)
        
               | mst wrote:
               | I always got the feeling that because it's such a key
               | product the Excel team was basically its own organisation
               | within the wider corporation and as a result had a lot
               | more freedom to make its own choices.
               | 
               | (not that I'm arguing for trust that would, as you say,
               | be misplaced, but if my feeling is correct then the Excel
               | org's englightened self interest can diverge from the
               | mothership's self interest more than other divisions can,
               | which makes the calculations as to what your management
               | is likely to decide notably different)
        
               | pjmlp wrote:
               | Traditionally Microsoft has had three big feuds.
               | 
               | Apps (where Office belongs), DevDiv (VS, .NET and such),
               | WinDev (Windows, C, C++).
               | 
               | All of them used to compete quite a lot among themselves.
               | 
               | No idea how it looks like nowadays with all the business
               | units, but I get a feeling that WinDev vs DevDiv is still
               | a thing.
        
       | kungfufrog wrote:
       | Will this only work on Excel running on Windows 10/11 X64?
        
         | anakic wrote:
         | It works on Excel 2013 onwards but only on Windows. Both x86
         | and x64 are supported. Mac isn't supported I'm afraid.
        
           | kungfufrog wrote:
           | Show stopper for me, but can I just say what a fantastic
           | product and the article introducing it kept me hooked to the
           | end!
        
             | anakic wrote:
             | I have to do my own marketing, so I'm trying to blog more
             | often these days. Really glad to hear you enjoyed the
             | writing!
        
           | throwaway90650 wrote:
           | Is there a technical blocker on macOS Excel side that
           | prevents you from implementing it, or is it just a matter of
           | priorities?
        
             | anakic wrote:
             | A bit of both. On the Windows side I can use VSTO or
             | ExcelDNA to integrate with Excel, but neither is available
             | on the Mac. One alternative I'd like to try is a web-based
             | version which would use Blazor and the Monaco editor but
             | I'm really not sure if that would be at all doable. I don't
             | have the time to go there at the moment, but I'd love to
             | try at some point.
        
       | replwoacause wrote:
       | This is such an impressive feat of engineering. Excellent job. I
       | have no doubt this will be a hit. It wouldn't surprise me if MSFT
       | just decided to make you an offer for it.
        
       | andysinclair wrote:
       | Looks great, will give it a try (as a fellow Excel developer).
       | 
       | One small point: on your webpage the "Try QueryStorm out" button
       | on the "Start a free trial" panel just points to:
       | https://querystorm.com/csharp-in-excel/ rather than the generate
       | key page.
        
         | anakic wrote:
         | Thanks, good catch!
        
       | charles_f wrote:
       | Looks awesome, and my favorite thing is this:
       | 
       | > $379 License + 1yr support
       | 
       | Cheers to you for not collecting a recurring fee for a desktop
       | app!
        
         | capableweb wrote:
         | The license is for 1 year of latest versions of the
         | application, after that you'll stop receiving updates. This is
         | pretty common for desktop applications, compared to SaaS.
        
           | charles_f wrote:
           | It's becoming less and less common, even for desktop
           | applications - which is why I thought this warranted some
           | congratulations
        
       | anigbrowl wrote:
       | A fine example of what caffeine has done to our great nation's
       | youth. What could have been an obscure command-line interface
       | enjoying a modest but dignified place in the field of traditional
       | operating systems is instead condemned to the gridded prison of
       | automated balance sheets under the beady eyes of our financial
       | overlords.
       | 
       | Jokes aside, this is an amazing achievement, the more so for
       | being realized by a single person working away patiently for
       | years - truly inspiring. And it brought out a wave of nostalgia
       | for a former life where I made a living building bespoke tools in
       | the (pre-VBA) Excel macro language. All that and solid business
       | sense too! I hope companies shower Antonio with money, and that
       | Microsoft either leaves him alone or rewards him with gold and
       | the autonomy to lead technical product development for the long
       | term. It's rare to see such a singular combination of vision and
       | execution, doubly so in a very mature product space belonging to
       | a global megacorporation.
        
       | charlieflowers wrote:
       | Looks great, but I ran into an issue I'm hoping you can help
       | with. I copy/pasted the very first example from the blog and it
       | doesn't compile. I also have been unable to find the
       | documentation necessary to get past the problem.
       | 
       | It's the example that reads the files in a dir and makes an Excel
       | table, and it fails on line 16, which reads `(excel.Selection as
       | Range).WriteTable(files, "myNewTable");`.
       | 
       | The error is `Argument 2: cannot convert from
       | 'System.Collections.Generic.IEnumerable<<anonymous type: string
       | File, long Size>>' to 'QueryStorm.Data.ITabular' | `
       | 
       | I can't find docs for WriteTable() [even after finding those
       | gitlab repos that contain QueryStorm docs].
       | 
       | I think anyone trying to run with this, will need access to docs
       | on the API.
        
         | anakic wrote:
         | Thanks for trying it and replying back here.
         | 
         | It looks like I was using a pre-release version of QueryStorm
         | while I was writing the blog post. I just released that version
         | so if you restart Excel you should get an "Update available"
         | button in the QueryStorm ribbon in Excel.
         | 
         | Could you update and post back if that fixed the problem?
         | 
         | Another way of "fixing" it would be to replace the following
         | line:                  (excel.Selection as
         | Range).WriteTable(files, "myNewTable");
         | 
         | with this line:                  Write(files, "myNewTable");
         | 
         | The Write method is available globally (it's not a method that
         | belongs to a class). This is a trick specific to C# scripts
         | (would be illegal in regular C#).
         | 
         | The documentation does lack detail in some areas, which I
         | basically cover by answering questions via email. I do need to
         | invest time every so often to update and extend it.
        
           | charlieflowers wrote:
           | The update fixed it. Thanks! Look forward to giving it a
           | spin.
        
       | petepete wrote:
       | Hey Anakic, I remember posting a link to ThingieQuery here many
       | years ago (2016 maybe?). Glad to see it's gone from strength to
       | strength!
        
         | anakic wrote:
         | Yeah, ThingieQuerie it was called back then:) Thanks, I
         | appreciate the kind words!
        
       | ozim wrote:
       | Don't show it to my boss, please.
       | 
       | It is super cool and would love to play around with it - just not
       | at work :)
        
       | ckluis wrote:
       | I clicked on resellers & affiliates because I was curious about
       | your terms. They are both empty.
        
         | anakic wrote:
         | Yeah, didn't get around to populating those yet. One-man show,
         | so things slip by...
         | 
         | ComponentSource is currently the only reseller:
         | https://www.componentsource.com/product/querystorm-plugin
         | 
         | Thanks for the heads up!
        
           | ckluis wrote:
           | Let me know if you want to chat about sales/marketing
           | linkedin.com/in/ckluis
        
       | paxcoder wrote:
       | [dead]
        
       | OJFord wrote:
       | _Oh_ a plug-in, ha, for some reason I read the title and thought
       | this was a  'just to show I can' type implementation of all those
       | things actually _in_ Excel,  'Doom in Excel' sort of thing.
       | 
       | This seems far more useful!
        
         | whoisthemachine wrote:
         | I also thought this was going to be an article about
         | implementing a C# compiler in excel! This on the other hand
         | seems like a very neat product.
        
           | anakic wrote:
           | Thanks! Yeah, I probably should have made the title "...in
           | Excel" instead of "...inside Excel". I wonder if more or
           | fewer people would have clicked on it that way.
        
             | maxfurman wrote:
             | If we're being pedantic maybe "for Excel" would be clearer?
             | But what do I know.
        
               | hoseja wrote:
               | That would be my choice too. Both "inside" and "in" imply
               | "in the spreadsheet". "For", on the other hand I would
               | understand as "for the Excel program".
        
               | anakic wrote:
               | I was considering "for" but I wanted to imply that the
               | IDE is actually located inside Excel, rather than being a
               | separate program.
        
               | Jorengarenar wrote:
               | "working inside"?
        
             | yAak wrote:
             | Yeah, I thought you crafted some Excel monstrosity based on
             | the title. Maybe a mod can change the title for you to say
             | "for Excel."
             | 
             | Also, I would be super proud if I'd created this. Excellent
             | work!!!
        
           | the_only_law wrote:
           | I would have been both immensely impressed and immensely
           | horrified if that were the case.
        
         | lofatdairy wrote:
         | I had the same thought lol. Honestly, the fact that such a
         | thing seems possible at all should be props to the people who
         | built Excel
        
       ___________________________________________________________________
       (page generated 2023-01-25 23:00 UTC)