The Wayback Machine - https://web.archive.org/web/20211125053701/https://github.com/sebastienros
Skip to content
Avatar

Sponsors

@pwesselius @SparkDevNetwork @Lombiq

Sponsoring

@potatoqualitee @daveaglick @xoofx @tidyui @Shazwazza @benaadams @NightOwl888 @lahma @agriffard @jtkech @deanmarcussen @neuecc @kevinchalet

Achievements

Achievements

Highlights

  • 3 discussions answered

Organizations

@OrchardCMS @aspnet @dotnet
Block or Report

Block or report sebastienros

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
sebastienros/README.md

Hi, I am Sebastien Ros 👋

I am a software developer in the ASP.NET team at Microsoft. I currently work on benchmarking ASP.NET Core and building distributed benchmarking services. I also spend some of this time helping the Orchard Core project by leading the community and contributing to features.

If I am not working or coding, I am probably

  • sleeping
  • doing husband and father duties
  • listening to James Taylor
  • playing guitar
  • biking
  • running
  • swimming

Open source

When I don't get paid to code, I still code, mainly on these open source projects:

Jint - https://github.com/sebastienros/jint

A JavaScript interpreter for .NET, which allows to run standard scripts in any .NET application. If you need to add some scripting capabilities to your apps, to build a rules engine, or evaluate configurable predicates, you should use it. It's fast and standard compliant.

The first version of this project started at a previous job, where we needed to send email compains, and we wanted to customize these emails using templates. We followed the way Razor was working by translating the template into pure code, but decided that JavaScript would be easier than C# for editors. A few years ago I decided to rewrite it from scratch following the ECMAScript specs. The first week I joined Microsoft I was asked to show a prototype to Scott Guthrie of "jQuery on the server" which I had built with it, that was fun!

YesSQL - https://github.com/sebastienros/yessql

A NoSQL-like document database layer for .NET that works on existing RDBMS like SQL Server, PostgresQL, Sqlite, MySQL. It allows to store documents and define materialized indexes you can query on using SQL directly. Because it's using the database system you want, you can reuse your existing knowledge, and also use custom SQL queries when you need to optimize for performance.

The idea of the project came to me while working on the first version of Orchard CMS, where we would have to split entities in many tables, which was impacting perf a lot. A CMS usually fits a document based approach, with denormalized data. However using brand new NoSQL databases is often an issue in terms of vendor lock-in, or lack of experience on these systems. RavenDB paved the way in .NET, and I thought we could definitely provide similar features using an RDBMS. Now YesSQL is the standard way to store content in Orchard Core.

Fluid - https://github.com/sebastienros/fluid

A Liquid template engine. Liquid is a templating language created by Shopify and used in other places like Jekyll. This can be used to provide a safe way for users to author templates. It also contains an MVC view engines where files like index.liquid will be used automacically for MVC Views.

This project was created for Orchard Core in order to enable users to create safe templates, and faster cold rendering of templates. The issue with Razor for content editors is that it's not safe, as it allows to access anything that C# allows, including reading the whole filesystem, and it is also slower to render a template the first time as it requires compilation. Fluid solves these two issues and now used in other .NET CMSes. Initially I tried to use dotLiquid but was faced with performance issues as it is using regular expressions to parse the templates.

Esprima.NET - https://github.com/sebastienros/esprima-dotnet

Is it a fully compliant ECMAScript parser for .NET. It allows to parse and manipulate JavaScript files, either for executing them, minifying, linting, finding bugs, ... It's use in Jint.

When I started rewriting Jint I followed an advice that Atif Aziz made on the previous version, and made the parser a separate library to Jint. The project is mainly a port of the JavaScript implementation named Esprima created by Ariya Hidayat.

Shortcodes - https://github.com/sebastienros/shortcodes

A .NET library to parse and evaluate shortcodes. It allows text content editors to inject specialized content blocks using custom arguments, like images, twitter embeds, youtube videos, only with simple blocks like [video 123].

Shortcodes are essential to WordPress, and for the Orchard Core we wanted a similar feature. The parser was written by hand as the syntax is simple and it needs to be efficient.

More about myself

Personal life

I am French, married and father of two. I joined Microsoft in 2010 and live in Bellevue WA (US).

My current bikes (we never have enough bikes)

  • Specialized Diverge Comp, mostly for commuting now.
  • Specialized Roubaix Expert Di2, for long/group rides.
  • Specialized Stump Jumper, for mountain biking.
  • Canyon Speedmax Cf 8.0 Di2, for triathlons.

My stava profile

My current guitars (we never have enough guitars)

  • Taylor 214ce
  • Yamaha SLG200S Silent Guitar

My current running gear (one pair is enough)

  • Nike Air Zoom Tempo Next%
  • Balega Hidden Comfort Running Socks

Pinned Loading

  1. Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework.

    C# 5.5k 1.9k

  2. jint Public

    Javascript Interpreter for .NET

    C# 2.4k 437

  3. yessql Public

    A .NET document database working on any RDBMS

    C# 895 154

  4. fluid Public

    Fluid is an open-source .NET template engine based on the Liquid template language.

    C# 675 114

  5. Esprima .NET (BSD license) is a .NET port of the esprima.org project. It is a standard-compliant ECMAScript parser (also popularly known as JavaScript).

    C# 268 62

  6. Benchmarks for ASP.NET Core

    C# 985 191

1,684 contributions in the last year

Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Mon Wed Fri

Contribution activity

November 2021

Created 1 repository

Created a pull request in sebastienros/fluid that received 12 comments

Opened 20 other pull requests in 8 repositories
dotnet/crank 8 merged 1 closed
sebastienros/fluid 3 merged
sebastienros/yessql 2 merged 1 closed
dotnet/tye 1 open
OrchardCMS/OrchardCore 1 merged
dotnet/aspnetcore 1 open
sebastienros/jint 1 merged
sebastienros/esprima-dotnet 1 merged
Reviewed 31 pull requests in 10 repositories
OrchardCMS/OrchardCore 7 pull requests
sebastienros/jint 6 pull requests
sebastienros/esprima-dotnet 5 pull requests
sebastienros/fluid 4 pull requests
dotnet/aspnetcore 4 pull requests
TechEmpower/FrameworkBenchmarks 1 pull request
aspnet/Benchmarks 1 pull request
SixLabors/ImageSharp.Web 1 pull request
dotnet/efcore 1 pull request
sebastienros/yessql 1 pull request

Created an issue in dotnet/runtime that received 9 comments

Regression in connections creation performance

I detected a regression due to this PR #53340 on "connection close" scenarios where we measure the speed of creating connections. It was discovered…

9 comments
Opened 7 other issues in 6 repositories
dotnet/crank 1 closed 1 open
rchardptrsn/MSSQL-Docker-Container 1 closed
sebastienros/fluid 1 open
microsoft/terminal 1 closed
dotnet/efcore 1 closed
sebastienros/jint 1 closed