S

Steve Sanderson

blog.stevensanderson.com · Personal blog · on HN since 2010

Steve Sanderson, creator of Blazor, writes about .NET, JavaScript frameworks, Knockout.js, and web application architecture.

What HN saysHN links it for Blazor desktop alternatives to Electron, Knockout.js and JS framework comparisons, and his view on selective unit testing.
62HN people shared it
27linked it in comments
43stories submitted
617story points
2 years agolast shared
2010people per year2026

Most-shared posts

  1. 1
    Throne of JS: Eight JavaScript MV* Libraries Compared
    10 people · 188 points · first shared 2012 · 70 comments on HN
  2. 2
  3. 3
    Blazor: a technical introduction
    6 people · 9 points · first shared 2018 · discussion on HN
  4. 4
  5. 5
    Running Blazor on Mono in the browser
    4 people · 5 points · first shared 2017 · discussion on HN
  6. 6
  7. 7
  8. 8
    WebWindow, a cross-platform webview library for .NET Core
    2 people · 235 points · first shared 2019 · 52 comments on HN
  9. 9
    Selective Unit Testing – Costs and Benefits (2009)
    2 people · 48 points · first shared 2011 · 10 comments on HN
  10. 10
    Knockout v2.3.0 released; v3.0.0 beta available
    2 people · 3 points · first shared 2013 · discussion on HN
  11. 11
    Time to switch from Backbone to Knockout
    2 people · 2 points · first shared 2011 · 1 comments on HN
  12. 12
    KnockoutJS 3.0 RC Available
    2 people · 2 points · first shared 2013 · discussion on HN
  13. 13
  14. 14
    Angular 2, React, and Knockout Apps on ASP.NET Core
    2 people · 2 points · first shared 2016 · 1 comments on HN
  15. 15
    Homepage
    2 people · first shared 2012

What HN people wrote when they linked it

dreamcompiler · 2020-08-21
I actually think it would be a great idea iff they would use a webview, which every OS provides nowadays. Apparently I'm not the first person who's thought of this. https://blog.stevensanderson.com/2019/11/01/exploring-lighter-alternat…
Hawxy · 2019-11-27
Steve Sanderson (creator of Blazor) is working on something similar that doesn't use Electron: https://blog.stevensanderson.com/2019/11/01/exploring-lighter-alternat… From Blazor roadmaps a few months ago, I think the idea is that Blazor will become the recommended .NET Core cross-platform UI choice sometime after .NET 5.
henrik_w · 2015-03-30
In my opinion [1], TDD is best suited for algorithmic logic, but doesn't really give any benefits for coordinating code. This is explained well in "Selective Unit Testing – Costs and Benefits" http://blog.stevensanderson.com/2009/11/04/selective-unit-testing-cost… [1] http://henrikwarne.com/2014/02/19/5-unit-testing-mistakes/
noir_lord · 2015-03-16
Depending on your requirements don't rule out other frameworks. I use Knockout (which is supported, just had a release, picked up some new core devs and added component support) extensively and I like it a great deal. It's not as large as either Angular or Ember but it's worth a look. Steve Sanderson has an awesome video on it [1] which is worth a watch even if you aren't interested in Knockout, fella clearly loves and is passionate about what he does. [1] http://blog.stevensanderson.com/2014/06/11/architecting-large-single-p…
SkyMarshal · 2013-02-11
Haven't started with Knockout myself yet, but hear it has both excellent docs/tutorials/community and is fast for DOM-based templating (the only other DOM-based being Angular). There have been a couple of roundup comparisons in the last year, here are two: http://blog.stevensanderson.com/2012/08/01/rich-javascript-application… http://codebrief.com/2012/01/the-top-10-javascript-mvc-frameworks-revi…
Chris_Newton · 2014-08-26
The situation with packages and dependency hell today is horrendous, particularly if you work in a highly dynamic environment like web development. I want to illustrate this with a detailed example of something I did just the other day, when I set up the structure for a new single page web application. Bear with me, this is leading up to the point at the end of this post. To build the front-end, I wanted to use these four tools: - jQuery (a JavaScript library) - Knockout (another JavaScript library) - SASS (a preprocessor to generate CSS) - Jasmine (a JavaScript library/test framework) Notice that each of these directly affects how I write my code. You can install any of them quite happily on its own, with no dependencies on any other tool or library. They are all actively maintained, but if what you’ve got works and does what you need then generally there is no need to update them to newer versions all the time either. In short, they are excellent tools: they do a useful job so I don’t have to reinvent the wheel, and they are stable and dependable. In contrast, I’m pretty cynical about a lot of the bloated tools and frameworks and dependencies in today’s web development industry, but after watching a video[1] by Steven Sanderson (the creator of Knockout) where he set up all kinds of goodies for a large single page application in just a few minutes, I wondered if I was getting left behind and thought I’d force myself to do things the trendy way. About five hours…
eggsby · 2012-08-24
I recommend checking out http://blog.stevensanderson.com/2012/08/01/rich-javascript-application… for a more in depth exploration of the trade-offs between the popular client-side architecture tools. I can only speak of my personal experience with these tools, and I've only tinkered with knockout (though we do use it for one of our tools internally, and the developer of that project gave it glowing reviews). I would recommend using the tool that is the closest to your development style. If you like opinionated frameworks that make it as easy as possible to do the most common tasks (like rails), maybe you'd enjoy something like ember.js (or knockout). For me the style closest to home is the ability to plug in My Favorite Solution to each particular problem as it arises. A primary offering from backbone then is a simple structure for plugging all these previously disparate tools together, the serverside corollary to this is something like python's Flask or ruby's Sinatra where it comes with only a simple routing base and ways to plug your own components in. Want to use your own templating library? Easy. Want to use your custom persistence style? No problem. Backbone isn't going to make these choices for you, you will need to make them yourself. This may or may not be the right choice for you, just investigate and make the choice that makes the most sense for you !
shaydoc · 2012-02-04
As far as IDE's I have found JSLint in jsfiddle.net (http://jsfiddle.net/shaydoc/geQvz/) handy, else I've just got reacquainted with the javascript way and been developing in notepad. Google Chrome has fantastic developer tools as already mentioned! debugging is a sinch and console.log is brilliant! Framework wise, I am loving http://Knockoutjs.com, its an MVVM design style, similar to the pattern frequently used for Silverlight development, and its got great tutorial and support on the site. I particularly like the Knockout mapping plugin as it will automatically map JSON into a ViewModel, sweet! Checkout the author Steve Sanderson's blog also, well worth reading : http://blog.stevensanderson.com/ I have been getting familiar with http://amplifyjs.com which simplifies ajax request management and client side storage, as well as a publish/subscribe messaging. Also recently stumbled upon http://xuijs.com/ which I intend to get more familiar with! Good luck with your ventures in javascript!
andrewl-hn · 2011-12-13
Especially considerring Knockout Model plugin that basically adds Backbone-style capabilities to KO models. Other notable plugins give easy bindings for jQuery UI widgets, Underscore support for collections and external templates: https://github.com/SteveSanderson/knockout/wiki/Plugins I'd also like to point out that in the upcomming release Knockout ads several nifty improvements: http://blog.stevensanderson.com/2011/08/31/knockout-1-3-0-beta-availab… My favorite are control flow bindings that let you write templating code right inside your HTML and not withing script tags. When you have to write markup inside a script tag you editor might get the whole autocompletion, formatting and syntax coloring wrong. And in past it was relly annoying for me. So having templates in HTML, not in script is really great. One thing that helps a lot is that all bindings are defined inside data-attributes which keeps markup valid. Most editors support them well, too. Ember's double-braced template attributes are really weak choice in this regard. And if you're worried about javascript bits inside data-bind attributes you now have an option to separate them via binding providers (see blog post above). The syntax is somewhat clunky but still workable and I suppose it can be improved. Provided that Knockout has a vibrant community and growing support inside .NET world I think Ember has nothing to offer to make me switch. And that's unfortunate. Today I see like most frameworks…
dsego · 2025-01-10
Old and abandoned (?), I don't think the poster realized this is not a new new framework. I mean, it was new years ago, before JS async was a thing even. Here is a post from 2013 explaining how Koa eliminates callbacks with yields. https://blog.stevensanderson.com/2013/12/21/experiments-with-koa-and-j…
dqv · 2022-01-01
>I wonder if there would be an audience for an HTTP Basic Auth 2.0 spec. Yes! I remember in the early aughts, IE6 would present this cool login screen [0] for (what I think, but may be remembering incorrectly) HTTP Basic Auth. I always wanted to do that, but didn't really understand anything other than making basic HTML pages. It could help improve security. It's a ubiquitous login screen that makes it really obvious which domain is requesting credentials - no need to check if the page looks off to detect possible phishing. Oh and you wouldn't run in to the issue of accidentally logging in on the sign up page! [0]: https://blog.stevensanderson.com/2008/08/25/using-the-browsers-native-…
headacheache · 2020-05-06
I have a project due in about 2 weeks and genuinely have no viable options to build anything on core 3.1. Just found these links, 2nd one especially looks interesting. https://blog.stevensanderson.com/2019/11/01/exploring-lighter-alternat… https://blog.stevensanderson.com/2019/11/18/2019-11-18-webwindow-a-cro…
jimmcslim · 2020-04-10
The Electron team is tracking an issue for introducing an Electron runtime that is shared between multiple apps... https://github.com/electron/electron/issues/673 I suppose one issue is that you have to either be very good with backwards compatibility or at least support having a single instance of multiple different versions of the runtime installed side-by-side (e.g. similar to .NET Core). There is also this.. 'Exploring lighter alternatives to Electron for hosting a Blazor desktop app' [1], which builds upon 'webview' [2]. [1] https://blog.stevensanderson.com/2019/11/01/exploring-lighter-alternat… [2] https://github.com/zserge/webview
anaheim_ducks · 2018-05-16
Blazor and similar technologies built on WASM are the future of web dev. http://blog.stevensanderson.com/2018/02/06/blazor-intro/ I no longer read articles on JavaScript or related libraries, it's all obsolete. I know enough JS and TypeScript to get by until WASM-based tech takes over, hopefully within 2 years.
zastrowm · 2018-01-16
The CSharpLang github[1] repository would be where to look for this. I didn't find anything that mentioned adding language support for it, and IIRC, in the past they rejected the idea of inline XML or JSON support. Going the other way of C# inside HTML, you have Razor[2] and Blazor[3], the latter of which is a prototype of Razor running in the browser via web assembly. [1]: https://github.com/dotnet/csharplang [2]: https://docs.microsoft.com/en-us/aspnet/core/mvc/views/razor [3]: http://blog.stevensanderson.com/2017/11/05/blazor-on-mono/
gdrulia · 2014-03-05
Yeah, at least this way you have control over which properties are methods. Also, if you really prefer angular.js style of tracking dependencies, this plugin makes the trick http://blog.stevensanderson.com/2013/05/20/knockout-es5-a-plugin-to-si…
ben336 · 2014-01-08
Node.js 0.11 supports generators, which appear to be very similar to what you're describing: http://blog.stevensanderson.com/2013/12/21/experiments-with-koa-and-ja…
ttrashh · 2013-10-25
If you don't care about IE8 you can get rid of the observables on your models with the ES5 plugin. http://blog.stevensanderson.com/2013/05/20/knockout-es5-a-plugin-to-si…
stevensanderson · 2013-10-25
No, that page is just info on behavior changes for people upgrading from KO 2.x. We haven't published the official 3.0 announcement yet, but you can find an overview of what's new on my Release Candidate/Beta blog posts: * http://blog.stevensanderson.com/2013/10/08/knockout-3-0-release-candid… * http://blog.stevensanderson.com/2013/07/09/knockout-v2-3-0-released-v3…
krosaen · 2013-07-15
yeah, a good description in passing in terms of using a framework as an "island of riches" here: http://blog.stevensanderson.com/2012/08/01/rich-javascript-application… we use this technique at food52.com, e.g this content page cached uniformly, login system, recipe saving widget, comment system all done in ko. http://food52.com/recipes/22888-yotam-ottolenghi-sami-tamimi-s-basic-h… more interactive / sophisticated uses of ko coming in our new shop soon for the cart functionality.
yiransheng · 2013-02-16
Another comparison from a while ago, which includes eight of the js mv* frameworks: http://blog.stevensanderson.com/2012/08/01/rich-javascript-application…
33degrees · 2013-02-13
The closest thing I've seen is this: http://blog.stevensanderson.com/2012/08/01/rich-javascript-application… Doesn't give adoption rate, but it does give an idea of relative popularity as of last august.
jjaques · 2012-08-31
You're right, it runs on Node. However as the poster above pointed out, there would be little practical use in combining this with another framework. Meteor is really it's own platform. The whole point is the unification of the client and server codebase. I'm not sure about Ember, as I believe it tends to be more opinionated about how much of the page it controls, but Knockout and Backbone are generally pretty easy to use for just a portion of the page. Steve Sanderson (creator of Knockout) has a really good overview of the most popular client side options (both libraries and frameworks). http://blog.stevensanderson.com/2012/08/01/rich-javascript-application…
nrb · 2010-07-29
It seems that the criticisms keep switching between ASP.NET and ASP.NET MVC interchangeably. If you are primarily speaking about MVC, I think there is definitely some misinformation here. 1. The key term here is "defaults". This behavior is completely configurable. 2. This doesn't apply to MVC, since it is all handler based. Plus, you can extend it at pretty much any point in the pipeline: http://blog.stevensanderson.com/2007/11/20/aspnet-mvc-pipeline-lifecyc… 4. I think this is an older point of view that is rapidly changing with MVC. Outputting custom formats is astonishingly simple, it's a matter of using built-in ActionResults, or inheriting it when creating your own, e.g., YamlResult. When they make the framework more extensible like they have here, I think developers certainly take advantage of that. I keep seeing a lot of criticism of the default behavior, when all of this behavior is trivially overridden.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close