Hi Petre – thanks for reaching out. Let me give you some background so you can make a better decision for your case.

Over 10 years ago, IntelliFactory developed the first incarnation of WebSharper as an internal toolset that we ourselves used to develop F# web applications for our customers. Back then your only alternative was F# code behind files with ASP.NET. Our main motivation was leveraging the JavaScript ecosystem without having to code in JavaScript and utilizing F# instead for writing shorter, more robust code for both the client and server.

Since then, we employed 20+ F# developers who worked on various extensions, libraries, the compiler and its tooling, evolving WebSharper into a set of coherent abstractions/components (sitelets, piglets, UI.Next, etc.) “that just work” and work really well together. (Not just for toy examples, but for 10--50-100k LOC full-stack F# web and mobile applications. So yes, WebSharper is above all targeted to building large, complex business applications, and has been used in this capacity extensively.)

These components are best leveraged together, but nothing keeps you from integrating other, external libraries and tech. You can bring in whatever else you prefer working with. You can create wrappers/extensions using WIG, via TypeScript declarations, or binding them manually. To your particular question, UI.Next for instance can substitute for a lot of what Angular, React and others can do, but you can always drop back to them if you like. We certainly recommend giving UI.Next a spin, once you get over the initial hurdles you will discover the same kind of ease of use and versatility but inside F#. Wrapping Angular or React with all of their features would require somewhat of an effort, and you will likely be still missing key UI.Next features like templating.

One criticism WebSharper often receives is that "it does too much.” Converting F# and now C# to JavaScript, an optional server-side with OWIN and ASP.NET integration, strongly typed templating, safe URLs, declarative forms, client-side routing, SPAs, client-server apps, HTML/JS applications, etc. and new vocabulary like sitelets, piglets, pagelets, formlets, flowlets ”scare people.” Heck, WebSharper is even declared “evil” by some, who claim that it is too opinionated, monolithic, overly complex, greedy, etc.

The other is that “WebSharper doesn’t fully embrace JavaScript tooling”, and it’s “too much .NET.” This is definitely changing (see upcoming webpack support, etc.) but it’s still mostly true: you indeed need to have a .NET mindset to start with WebSharper. This is inherent in its languages of choice (F#, C#, and now TypeScript) and the default target application paradigm (ASP.NET and now ASP.NET Core).

I could really hammer on what makes WebSharper the best toolset, but then I am biased. But feel free to ask anyhow. You should carefully consider your options and choose what's best for you. I definitely agree that WebSharper needs better documentation on comparing it to ASP.NET MVC, Fable, etc., and I am sure it will be coming soon.

And last, we are trying to dispel mindset that we "own" WebSharper. We are a company that drives its development and provides support and other services around it, but we are only one among the growing number of other contributors/companies around it.

By on 10/10/2017 1:46 AM ()

Hey Adam,

WebSharper is above all targeted to building large, complex business applications, and has been used in this capacity extensively. Can you provide a sample/demo application where WebSharper has been used? Something like https://aspnetzero.com ?


By on 10/10/2017 7:00 AM ()

I used aspnetzero in this hobby project:


and websharper in this one:


Why I use websharper, in the last web app project?

Because I like to code in F#, I cannot use it in my daily job. I learned F# 2-3 years ago on the hobby project, you can see in above links as well, and it was desktop app, the only C# code in desktop app is wpf UI code generated by visual designer.

I think you should try to make any type of project in F#, to learn F# and find that it is better than C#, and then you would not ask why to use websharper, you would actually want to use F# in any type of project.

First, I used suave for the web app, but as I needed to use client code in browser and failed to make it in suave + fable in reasonable time, I have switched to websharper.

By on 10/12/2017 11:26 AM ()

Hey Stefan,

Can you compare your experiences with aspnetzero and WebSharper? Which one did you take longer to learn and then which project took you longer to complete?

I am in a team so I'd have to work with others who are not F# proficient, but WebSharper supports C# as well so that shouldn't matter that much.


By on 10/12/2017 8:30 PM ()

You mean an enterprise application starter kit? No, we usually custom build those as a service, but you might find others who will provide them for free.

If you mean closed source business applications, they started to pop up around ~2008, for instance, here is a talk I gave at CUFP 2009 about the first large F# line of business application. You can also check some of our own applications we built with WebSharper, say CloudSharper here, here and here, of this very forum, among others. Microsoft Research also had a couple super exciting projects with WebSharper, and so did several other Fortune 500 companies such as Ford, etc.

An enterprise starter pack would definitely be awesome and very helpful I imagine. Feel free to create another thread for it and describe what you would like to have in it beyond what's in the standard project templates. We are pretty busy at the moment with the TypeScript and .NET Core changes, but I'll make sure it receives high priority unless someone else gets to it first.

By on 10/10/2017 9:30 AM ()

Adam, I'd appreciate you sharing sample demo projects.

Open source repos to experiment with would also be very helpful.


By on 10/12/2017 8:33 PM ()
IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy
Built with WebSharper