<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nilesh Patel</title>
    <description>The latest articles on DEV Community by Nilesh Patel (@nileshsp).</description>
    <link>https://dev.to/nileshsp</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F93954%2F2c2948d8-5a7f-496c-aec7-a4950297e20a.png</url>
      <title>DEV Community: Nilesh Patel</title>
      <link>https://dev.to/nileshsp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nileshsp"/>
    <language>en</language>
    <item>
      <title>Real-time server side rendered web applications using html, css &amp; server language without writing a single line of JavaScript</title>
      <dc:creator>Nilesh Patel</dc:creator>
      <pubDate>Sat, 19 Jan 2019 01:54:34 +0000</pubDate>
      <link>https://dev.to/nileshsp/real-time-server-side-rendered-web-applications-using-html-css--server-language-without-writing-a-single-line-of-javascript-4no1</link>
      <guid>https://dev.to/nileshsp/real-time-server-side-rendered-web-applications-using-html-css--server-language-without-writing-a-single-line-of-javascript-4no1</guid>
      <description>&lt;p&gt;It's 2019 already and technologies have evolved so far such that there are many options to try on with different combinations when it comes to web applications. Being a full stack developer, have got to work on projects with many combination of technologies over the decade. When it comes to real-time functionality javascript implementation of web-sockets is always first thought that comes to the mind. After introduction of webassembly standard few years ago, Microsoft introduced framework called &lt;a href="https://blazor.net" rel="noopener noreferrer"&gt;Blazor.net&lt;/a&gt;(still experimental) &lt;a href="https://blogs.msdn.microsoft.com/webdev/2018/02/06/blazor-experimental-project/?ranMID=24542&amp;amp;ranEAID=je6NUbpObpQ&amp;amp;ranSiteID=je6NUbpObpQ-mo17T_cKvNZQ1Y5AZc7rKg&amp;amp;epi=je6NUbpObpQ-mo17T_cKvNZQ1Y5AZc7rKg&amp;amp;irgwc=1&amp;amp;OCID=AID681541_aff_7593_1243925&amp;amp;tduid=(ir__9xciw9kee9kfr1202j3ttrvko32xhpb031pfjc1u00)(7593)(1243925)(je6NUbpObpQ-mo17T_cKvNZQ1Y5AZc7rKg)()&amp;amp;irclickid=_9xciw9kee9kfr1202j3ttrvko32xhpb031pfjc1u00" rel="noopener noreferrer"&gt;almost a year ago&lt;/a&gt; which primarily allows to create web applications using server languages and html(with options for javascript interop as well) that can run through WebAssembly in browser. After watching the video &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/GI_9g9lZpik"&gt;
&lt;/iframe&gt;
 &lt;/p&gt;

&lt;p&gt;late last year have tried out demo project using &lt;em&gt;Blazor's server side template&lt;/em&gt; (&lt;a href="https://blazor.net/docs/get-started.html" rel="noopener noreferrer"&gt;an option while creating new project&lt;/a&gt;) &lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/NileshSP" rel="noopener noreferrer"&gt;
        NileshSP
      &lt;/a&gt; / &lt;a href="https://github.com/NileshSP/dotnetefrazorcompssr" rel="noopener noreferrer"&gt;
        dotnetefrazorcompssr
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Blazor/Razor components server side rendered web app
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Blazor/Razor components with SSR(server side rendered) accessed through browser, built in .Net Core(2.1) using Entity Framework code first interfacing In-memory/MS-Sql db&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Project showcases Blazor/Razor Components frontend UI(using C#) rendered on server(SSR) consuming data from the in-memory/sql database using .Net Core service with entity framework code first to database pattern&lt;/p&gt;

&lt;p&gt;Overall project communicates between client &amp;amp; server using SignalR(part of the framework and does not require explicit implementation) to render HTML(built on server) &amp;amp; C# oriented UI&lt;/p&gt;



&lt;p&gt;&lt;a href="https://dotnetefrazorcompssr.herokuapp.com/" rel="nofollow noopener noreferrer"&gt;Live demo link - https://dotnetefrazorcompssr.herokuapp.com/&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/NileshSP/dotnetefrazorcompssr/blob/master/screenshot.gif"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FNileshSP%2Fdotnetefrazorcompssr%2Fraw%2Fmaster%2Fscreenshot.gif" alt="alt text" title="Working example.."&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h1&gt;
  
  
  Steps to get the project running
&lt;/h1&gt;

&lt;p&gt;Pre-requisites:&lt;/p&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/net/download/dotnet-core/2.1" rel="nofollow noopener noreferrer"&gt;.Net Core 2.1 SDK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://code.visualstudio.com/" rel="nofollow noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt; or Recommended - &lt;a href="https://visualstudio.microsoft.com/vs/community/" rel="nofollow noopener noreferrer"&gt;Visual Studio Community editon version 15.9.1&lt;/a&gt; or later editor&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;



&lt;p&gt;Clone the current repository locally as
&lt;code&gt;git clone https://github.com/NileshSP/dotnetefrazorcompssr.git&lt;/code&gt;&lt;/p&gt;



&lt;p&gt;Steps: using Visual Studio community edition editor&lt;/p&gt;


&lt;blockquote&gt;

&lt;ol&gt;
&lt;li&gt;Open the solution file (DotnetEFRazorCompSSR.sln) available in the root folder of the downloaded repository&lt;/li&gt;
&lt;li&gt;Await until the project is ready as per the status shown in…&lt;/li&gt;
&lt;/ol&gt;


&lt;/blockquote&gt;
&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/NileshSP/dotnetefrazorcompssr" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
 with working &lt;a href="https://dotnetefrazorcompssr.herokuapp.com/websitesdata" rel="noopener noreferrer"&gt;demo link&lt;/a&gt; as 

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fn3nazt2d8agt0650t0wb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fn3nazt2d8agt0650t0wb.gif" alt="Alt image to text"&gt;&lt;/a&gt;&lt;a href="https://dotnetefrazorcompssr.herokuapp.com/websitesdata" rel="noopener noreferrer"&gt;Live app link&lt;/a&gt; - is made available on heroku by hosting app as a container using docker&lt;/p&gt;

&lt;p&gt;Most of the rendered code to display elements like filters, table with data and continuously updating &lt;em&gt;Current server time&lt;/em&gt; option are all in one &lt;a href="https://github.com/NileshSP/dotnetefrazorcompssr/blob/master/DotnetEFRazorCompSSR.App/Pages/WebsitesData.cshtml" rel="noopener noreferrer"&gt;file&lt;/a&gt; with no javascript other than required c#, css &amp;amp; html&lt;/p&gt;

&lt;p&gt;Regarding realtime functionality, &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Current server time&lt;/em&gt; is continuously being updated from server using timer with interval of 1000ms&lt;/li&gt;
&lt;li&gt;Table data for each row is being made available at an interval of 100ms (kind of streaming like functionality where in whenever associated data entity is added with new item it is being streamed and made available to client in the browser)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the best part is download size over to the client browser is very less, in this case it's 2.9KB overall&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fe1mra42wzwaf3v9ngygi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fe1mra42wzwaf3v9ngygi.jpg" alt="Alt image to text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This led me to think about creating real-time applications with new approach requiring minimal overhead of working along multiple languages or technologies with overall less code&lt;/p&gt;

&lt;p&gt;Let me know guys what do think &amp;amp; thanks for stopping by!&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>razorcomponents</category>
      <category>aspnetcore</category>
      <category>signalr</category>
    </item>
  </channel>
</rss>
