{"id":10003,"date":"2021-05-07T16:52:31","date_gmt":"2021-05-07T14:52:31","guid":{"rendered":"https:\/\/oxceed.com\/?p=10003"},"modified":"2021-11-22T15:19:19","modified_gmt":"2021-11-22T14:19:19","slug":"oxceed-from-asp-net-mvc-5-to-blazor","status":"publish","type":"post","link":"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/","title":{"rendered":"Oxceed &#8211; from ASP.Net MVC 5 to Blazor"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\">Following some great people on Twitter I&#8217;ve often seen people search for, and also searched for myself, examples of real world Blazor apps. They still seem quite hard to find and I thought we could do our part and let you know of our own app being based on Blazor.<\/h4>\n\n\n\n<p>Oxceed is a decently sized real world SaaS web app for financial performance management. It connects, and keeps updated, seamlessly with clients accounting systems and lets you monitor real-time how your company is doing. Onboarding is simple and you get a smorgasbord of reports, key performance indicators and other assets ready for consumption in minutes. Budgets &amp; forecasts are easily crafted, and you may customize most elements to suit your own specific needs.<\/p>\n\n\n\n<p>We have been in business for 6 years and was originally built on ASP.Net MVC 5, with quite a lot of JavaScript to help in user experience. Blazor caught our interest about 2 years ago as there seemed to be a lot of good stuff we could use (we all have .Net backgrounds), not only to make our user experience better (more SPA:ish), but also improve developer productivity and lessen the workload on the backend. So, January 2020 we decided to port the MVC app over to Blazor.<\/p>\n\n\n\n<p>Oxceed has been running the Blazor app in production since January 2021 and we see great benefits in all areas we expected. New features are built quicker than before, the component architecture is solid, developers happier by working on the latest and greatest stack and we can even see improved backend resource consumption. The client app runs on WebAssembly and our internal administration app runs Blazor on the server.<\/p>\n\n\n\n<p>The way we approached the porting was to start off from File &#8211; New project and for the first few months we dealt a lot with nailing the basics such as how we lay out the code into projects, routing, what goes into pages vs. components, authentication, theming, localization and more.<\/p>\n\n\n\n<p>Once started and having gotten a grip on how we would compose the Blazor implementation it has been amazing to see the benefits the framework provides. For example, we render many types of financial reports and by breaking it down into reusable components it gets easy to implement new report types, one by one.<\/p>\n\n\n\n<p>Another example is the ease with which we may use a component in multiple places to make the user experience intuitive. A popular feature in Oxceed is dashboards, you may assign a dashboard to a company from either the dashboard design area, subscription settings or simply when visiting a dashboard, all using the same component for dashboard assignment.<\/p>\n\n\n\n<p>What about challenges, weren&#8217;t there any? Oh yes, but we tend to look at them from a positive perspective and we think we have gained good experience and understanding of Blazor, which is very important for us to keep improving Oxceed and stay relevant and competitive.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Some challenges we had:<\/h4>\n\n\n\n<p>&#8211; On a large app, make sure you have a good state handling setup early. We started by keeping a bit of the MVC state implementation and gradually threw away piece by piece when we most possibly would have had less refactoring if we had just thrown it all out from the start.<\/p>\n\n\n\n<p>&#8211; Read up on, and test in detail how component disposal and component life cycle events work. We did not get it early enough and ran into hard to repro bugs spending much time understanding the causes and the fixes.<\/p>\n\n\n\n<p>&#8211; Components are awesome. However, performance may be impacted when going to deep in componentizing your pages. In our case we saw issues in rendering speed improve a lot by removing some levels of component nesting.<\/p>\n\n\n\n<p>&#8211; Security is important, very important, pay attention when building your client app API:s.<\/p>\n\n\n\n<p>&#8211; Cancellation tokens, you should use them. We did not, until real users started navigating quicker than API responded.<\/p>\n\n\n\n<p>&#8211; The initial download is big, yes, but has not been a concern among customers.<span style=\"font-size: 20px;\">&nbsp;<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Torulf Lundgren, CTO and co-founder, Oxceed<\/h4>\n\n\n\n<p>Take a look at our demo videos&nbsp;below to get a glimpse of what Oxceed looks like from the inside.<\/p>\n\n\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"15269\" class=\"elementor elementor-15269\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-30399a8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"30399a8\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[{&quot;jet_parallax_layout_image&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;_id&quot;:&quot;c445bed&quot;,&quot;jet_parallax_layout_image_tablet&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;jet_parallax_layout_image_mobile&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;jet_parallax_layout_speed&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:50,&quot;sizes&quot;:[]},&quot;jet_parallax_layout_type&quot;:&quot;scroll&quot;,&quot;jet_parallax_layout_direction&quot;:&quot;1&quot;,&quot;jet_parallax_layout_fx_direction&quot;:null,&quot;jet_parallax_layout_z_index&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_x&quot;:50,&quot;jet_parallax_layout_bg_x_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_x_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_y&quot;:50,&quot;jet_parallax_layout_bg_y_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_y_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_size&quot;:&quot;auto&quot;,&quot;jet_parallax_layout_bg_size_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_size_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_animation_prop&quot;:&quot;transform&quot;,&quot;jet_parallax_layout_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;]}]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d5515c9\" data-id=\"d5515c9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9bf75e3 elementor-layout-start e-tabs-view-vertical elementor-widget elementor-widget-video-playlist\" data-id=\"9bf75e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;tabs&quot;:[{&quot;title&quot;:&quot;Rapportera med Oxceed - Demofilm&quot;,&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?list=PL0tQ8JfoN_BGA_seQYbsBTzRqy9Kz7zmg&amp;v=JEp4sbRaIuc&quot;,&quot;duration&quot;:&quot;2:09&quot;,&quot;thumbnail&quot;:{&quot;url&quot;:&quot;http:\\\/\\\/img.youtube.com\\\/vi\\\/JEp4sbRaIuc\\\/maxresdefault.jpg&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;_id&quot;:&quot;fe500cf&quot;,&quot;vimeo_url&quot;:null,&quot;type&quot;:&quot;youtube&quot;,&quot;is_external_url&quot;:null,&quot;hosted_url&quot;:null,&quot;external_url&quot;:null,&quot;section_html_tag&quot;:null,&quot;video_html_tag&quot;:&quot;h4&quot;,&quot;inner_tab_is_content_visible&quot;:&quot;&quot;,&quot;inner_tab_content_1&quot;:null,&quot;inner_tab_content_2&quot;:null},{&quot;title&quot;:&quot;Budgetprocess och uppf\\u00f6ljning med Oxceed - Demofilm&quot;,&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/zcvy5sphYFk?list=PL0tQ8JfoN_BGA_seQYbsBTzRqy9Kz7zmg&quot;,&quot;duration&quot;:&quot;3:03&quot;,&quot;thumbnail&quot;:{&quot;url&quot;:&quot;http:\\\/\\\/img.youtube.com\\\/vi\\\/zcvy5sphYFk\\\/maxresdefault.jpg&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;_id&quot;:&quot;4d7920b&quot;,&quot;vimeo_url&quot;:null,&quot;type&quot;:&quot;youtube&quot;,&quot;is_external_url&quot;:null,&quot;hosted_url&quot;:null,&quot;external_url&quot;:null,&quot;section_html_tag&quot;:null,&quot;video_html_tag&quot;:&quot;h4&quot;,&quot;inner_tab_is_content_visible&quot;:&quot;&quot;,&quot;inner_tab_content_1&quot;:null,&quot;inner_tab_content_2&quot;:null},{&quot;title&quot;:&quot;Nyckeltal med Oxceed - Demofilm&quot;,&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/fz8IR0fU7OA?list=PL0tQ8JfoN_BGA_seQYbsBTzRqy9Kz7zmg&quot;,&quot;duration&quot;:&quot;2:10&quot;,&quot;thumbnail&quot;:{&quot;url&quot;:&quot;http:\\\/\\\/img.youtube.com\\\/vi\\\/fz8IR0fU7OA\\\/maxresdefault.jpg&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;_id&quot;:&quot;ca45aa4&quot;,&quot;vimeo_url&quot;:null,&quot;type&quot;:&quot;youtube&quot;,&quot;is_external_url&quot;:null,&quot;hosted_url&quot;:null,&quot;external_url&quot;:null,&quot;section_html_tag&quot;:null,&quot;video_html_tag&quot;:&quot;h4&quot;,&quot;inner_tab_is_content_visible&quot;:&quot;&quot;,&quot;inner_tab_content_1&quot;:null,&quot;inner_tab_content_2&quot;:null},{&quot;title&quot;:&quot;\\u00d6versiktssidor i Oxceed - Demofilm&quot;,&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/LgLH04eFkRc?list=PL0tQ8JfoN_BGA_seQYbsBTzRqy9Kz7zmg&quot;,&quot;duration&quot;:&quot;2:54&quot;,&quot;thumbnail&quot;:{&quot;url&quot;:&quot;http:\\\/\\\/img.youtube.com\\\/vi\\\/LgLH04eFkRc\\\/maxresdefault.jpg&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;vimeo_url&quot;:null,&quot;_id&quot;:&quot;44832d2&quot;,&quot;type&quot;:&quot;youtube&quot;,&quot;is_external_url&quot;:null,&quot;hosted_url&quot;:null,&quot;external_url&quot;:null,&quot;section_html_tag&quot;:null,&quot;video_html_tag&quot;:&quot;h4&quot;,&quot;inner_tab_is_content_visible&quot;:&quot;&quot;,&quot;inner_tab_content_1&quot;:null,&quot;inner_tab_content_2&quot;:null}],&quot;inner_tab_title_1&quot;:&quot;Tab #1&quot;,&quot;inner_tab_title_2&quot;:&quot;Tab #2&quot;,&quot;lazy_load&quot;:&quot;true&quot;}\" data-widget_type=\"video-playlist.default\">\n\t\t\t\t\t\n\t\t<div class=\"e-tabs\" role=\"region\" aria-labelledby=\"e-playlist-9bf75e3\">\n\t\t\t<div class=\"e-tabs-main-area\">\n\t\t\t\t<div class=\"e-tabs-wrapper\">\n\t\t\t\t\t<div class=\"e-tabs-header\">\n\t\t\t\t\t\t<div class=\"e-tabs-title\" id=\"e-playlist-9bf75e3\"><\/div>\n\t\t\t\t\t\t<div class=\"e-tabs-header-right-side\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-tabs-toggle-videos-display-button rotate-down e-font-icon-svg e-eicon-caret-down\" viewBox=\"0 0 571.4 571.4\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M571 393Q571 407 561 418L311 668Q300 679 286 679T261 668L11 418Q0 407 0 393T11 368 36 357H536Q550 357 561 368T571 393Z\"><\/path><\/svg>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"e-tabs-items-wrapper\">\n\t\t\t\t\t\t<div class=\"e-tabs-items\" role=\"tablist\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"e-tab-title-1631\" class=\"e-tab-title e-tab-desktop-title\" aria-selected=\"true\" data-tab=\"1\" role=\"tab\" tabindex=\"0\" aria-controls=\"e-tab-content-1631\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"icon-play\"><\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"icon-watched\"><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4 class=\"e-tab-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\">Rapportera med Oxceed - Demofilm<\/button>\n\t\t\t\t\t\t\t\t\t\t<\/h4>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"e-tab-title-1632\" class=\"e-tab-title e-tab-desktop-title\" aria-selected=\"false\" data-tab=\"2\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-tab-content-1632\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"icon-play\"><\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"icon-watched\"><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4 class=\"e-tab-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\">Budgetprocess och uppf\u00f6ljning med Oxceed - Demofilm<\/button>\n\t\t\t\t\t\t\t\t\t\t<\/h4>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"e-tab-title-1633\" class=\"e-tab-title e-tab-desktop-title\" aria-selected=\"false\" data-tab=\"3\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-tab-content-1633\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"icon-play\"><\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"icon-watched\"><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4 class=\"e-tab-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\">Nyckeltal med Oxceed - Demofilm<\/button>\n\t\t\t\t\t\t\t\t\t\t<\/h4>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"e-tab-title-1634\" class=\"e-tab-title e-tab-desktop-title\" aria-selected=\"false\" data-tab=\"4\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-tab-content-1634\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"icon-play\"><\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"icon-watched\"><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4 class=\"e-tab-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\">\u00d6versiktssidor i Oxceed - Demofilm<\/button>\n\t\t\t\t\t\t\t\t\t\t<\/h4>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"shadow shadow-top\" aria-hidden=\"true\"><\/div>\n\t\t\t\t\t\t<div class=\"shadow shadow-bottom\" aria-hidden=\"true\"><\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"e-tabs-content-wrapper\" role=\"tablist\" aria-orientation=\"vertical\">\n\t\t\t\t\t\t\t\t\t\t\t<div id=\"e-tab-content-1631\" class=\"e-tab-content elementor-clearfix\" data-tab=\"1\" role=\"tabpanel\" aria-labelledby=\"e-tab-title-1631\" tabindex=\"0\" data-video-url=\"https:\/\/www.youtube.com\/watch?list=PL0tQ8JfoN_BGA_seQYbsBTzRqy9Kz7zmg&amp;v=JEp4sbRaIuc\" data-video-type=\"youtube\" data-video-title=\"Rapportera med Oxceed - Demofilm\" data-video-duration=\"2:09\">\n\t\t\t\t\t\t\t<div><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-custom-embed-image-overlay elementor-clickable\" style=\"background-image: url('https:\/\/youtu.be\/LgLH04eFkRc?list=PL0tQ8JfoN_BGA_seQYbsBTzRqy9Kz7zmg');\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div id=\"e-tab-content-1632\" class=\"e-tab-content elementor-clearfix\" data-tab=\"2\" role=\"tabpanel\" aria-labelledby=\"e-tab-title-1632\" tabindex=\"0\" data-video-url=\"https:\/\/youtu.be\/zcvy5sphYFk?list=PL0tQ8JfoN_BGA_seQYbsBTzRqy9Kz7zmg\" data-video-type=\"youtube\" data-video-title=\"Budgetprocess och uppf\u00f6ljning med Oxceed - Demofilm\" data-video-duration=\"3:03\" hidden=\"hidden\">\n\t\t\t\t\t\t\t<div><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div id=\"e-tab-content-1633\" class=\"e-tab-content elementor-clearfix\" data-tab=\"3\" role=\"tabpanel\" aria-labelledby=\"e-tab-title-1633\" tabindex=\"0\" data-video-url=\"https:\/\/youtu.be\/fz8IR0fU7OA?list=PL0tQ8JfoN_BGA_seQYbsBTzRqy9Kz7zmg\" data-video-type=\"youtube\" data-video-title=\"Nyckeltal med Oxceed - Demofilm\" data-video-duration=\"2:10\" hidden=\"hidden\">\n\t\t\t\t\t\t\t<div><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div id=\"e-tab-content-1634\" class=\"e-tab-content elementor-clearfix\" data-tab=\"4\" role=\"tabpanel\" aria-labelledby=\"e-tab-title-1634\" tabindex=\"0\" data-video-url=\"https:\/\/youtu.be\/LgLH04eFkRc?list=PL0tQ8JfoN_BGA_seQYbsBTzRqy9Kz7zmg\" data-video-type=\"youtube\" data-video-title=\"\u00d6versiktssidor i Oxceed - Demofilm\" data-video-duration=\"2:54\" hidden=\"hidden\">\n\t\t\t\t\t\t\t<div><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"e-tabs-inner-tabs\" >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n","protected":false},"excerpt":{"rendered":"<p>Following some great people on Twitter I&#8217;ve often seen people search for, and also searched for myself, examples of real world Blazor apps. They still seem quite hard to find and I thought we could do our part and let you know of our own app being based on Blazor. Oxceed is a decently sized [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":9894,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_trash_the_other_posts":false,"editor_notices":[],"footnotes":""},"categories":[416808],"tags":[],"class_list":["post-10003","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-okategoriserade"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Oxceed - from ASP.Net MVC 5 to Blazor - Oxceed Finland<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oxceed - from ASP.Net MVC 5 to Blazor\" \/>\n<meta property=\"og:description\" content=\"Following some great people on Twitter I&#8217;ve often seen people search for, and also searched for myself, examples of real world Blazor apps. They still seem quite hard to find and I thought we could do our part and let you know of our own app being based on Blazor. Oxceed is a decently sized [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/\" \/>\n<meta property=\"og:site_name\" content=\"Oxceed Finland\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-07T14:52:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-11-22T14:19:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/oxceed.com\/fi\/wp-content\/uploads\/sites\/24\/2021\/05\/oxceed-for-foretag-mobile-banner.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1415\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Martin Ericson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Martin Ericson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/okategoriserade\\\/oxceed-from-asp-net-mvc-5-to-blazor\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/okategoriserade\\\/oxceed-from-asp-net-mvc-5-to-blazor\\\/\"},\"author\":{\"name\":\"Martin Ericson\",\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/#\\\/schema\\\/person\\\/b3e874d2e6116d756ef2aecb506e8880\"},\"headline\":\"Oxceed &#8211; from ASP.Net MVC 5 to Blazor\",\"datePublished\":\"2021-05-07T14:52:31+00:00\",\"dateModified\":\"2021-11-22T14:19:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/okategoriserade\\\/oxceed-from-asp-net-mvc-5-to-blazor\\\/\"},\"wordCount\":708,\"image\":{\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/okategoriserade\\\/oxceed-from-asp-net-mvc-5-to-blazor\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/wp-content\\\/uploads\\\/sites\\\/24\\\/2021\\\/05\\\/oxceed-for-foretag-mobile-banner.png\",\"articleSection\":[\"Okategoriserade\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/okategoriserade\\\/oxceed-from-asp-net-mvc-5-to-blazor\\\/\",\"url\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/okategoriserade\\\/oxceed-from-asp-net-mvc-5-to-blazor\\\/\",\"name\":\"Oxceed - from ASP.Net MVC 5 to Blazor - Oxceed Finland\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/okategoriserade\\\/oxceed-from-asp-net-mvc-5-to-blazor\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/okategoriserade\\\/oxceed-from-asp-net-mvc-5-to-blazor\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/wp-content\\\/uploads\\\/sites\\\/24\\\/2021\\\/05\\\/oxceed-for-foretag-mobile-banner.png\",\"datePublished\":\"2021-05-07T14:52:31+00:00\",\"dateModified\":\"2021-11-22T14:19:19+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/#\\\/schema\\\/person\\\/b3e874d2e6116d756ef2aecb506e8880\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/okategoriserade\\\/oxceed-from-asp-net-mvc-5-to-blazor\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/oxceed.com\\\/fi\\\/okategoriserade\\\/oxceed-from-asp-net-mvc-5-to-blazor\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/okategoriserade\\\/oxceed-from-asp-net-mvc-5-to-blazor\\\/#primaryimage\",\"url\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/wp-content\\\/uploads\\\/sites\\\/24\\\/2021\\\/05\\\/oxceed-for-foretag-mobile-banner.png\",\"contentUrl\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/wp-content\\\/uploads\\\/sites\\\/24\\\/2021\\\/05\\\/oxceed-for-foretag-mobile-banner.png\",\"width\":1920,\"height\":1415},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/okategoriserade\\\/oxceed-from-asp-net-mvc-5-to-blazor\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oxceed &#8211; from ASP.Net MVC 5 to Blazor\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/#website\",\"url\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/\",\"name\":\"Oxceed Finland\",\"description\":\"Fatta b\u00e4ttre beslut med Oxceed\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/oxceed.com\\\/fi\\\/#\\\/schema\\\/person\\\/b3e874d2e6116d756ef2aecb506e8880\",\"name\":\"Martin Ericson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/176e21de61385d9ffc7eefd75788ccd94753d7352703cc12f102b743159c03c2?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/176e21de61385d9ffc7eefd75788ccd94753d7352703cc12f102b743159c03c2?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/176e21de61385d9ffc7eefd75788ccd94753d7352703cc12f102b743159c03c2?s=96&d=identicon&r=g\",\"caption\":\"Martin Ericson\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Oxceed - from ASP.Net MVC 5 to Blazor - Oxceed Finland","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_GB","og_type":"article","og_title":"Oxceed - from ASP.Net MVC 5 to Blazor","og_description":"Following some great people on Twitter I&#8217;ve often seen people search for, and also searched for myself, examples of real world Blazor apps. They still seem quite hard to find and I thought we could do our part and let you know of our own app being based on Blazor. Oxceed is a decently sized [&hellip;]","og_url":"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/","og_site_name":"Oxceed Finland","article_published_time":"2021-05-07T14:52:31+00:00","article_modified_time":"2021-11-22T14:19:19+00:00","og_image":[{"width":1920,"height":1415,"url":"https:\/\/oxceed.com\/fi\/wp-content\/uploads\/sites\/24\/2021\/05\/oxceed-for-foretag-mobile-banner.png","type":"image\/png"}],"author":"Martin Ericson","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Martin Ericson","Estimated reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/#article","isPartOf":{"@id":"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/"},"author":{"name":"Martin Ericson","@id":"https:\/\/oxceed.com\/fi\/#\/schema\/person\/b3e874d2e6116d756ef2aecb506e8880"},"headline":"Oxceed &#8211; from ASP.Net MVC 5 to Blazor","datePublished":"2021-05-07T14:52:31+00:00","dateModified":"2021-11-22T14:19:19+00:00","mainEntityOfPage":{"@id":"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/"},"wordCount":708,"image":{"@id":"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/#primaryimage"},"thumbnailUrl":"https:\/\/oxceed.com\/fi\/wp-content\/uploads\/sites\/24\/2021\/05\/oxceed-for-foretag-mobile-banner.png","articleSection":["Okategoriserade"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/","url":"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/","name":"Oxceed - from ASP.Net MVC 5 to Blazor - Oxceed Finland","isPartOf":{"@id":"https:\/\/oxceed.com\/fi\/#website"},"primaryImageOfPage":{"@id":"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/#primaryimage"},"image":{"@id":"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/#primaryimage"},"thumbnailUrl":"https:\/\/oxceed.com\/fi\/wp-content\/uploads\/sites\/24\/2021\/05\/oxceed-for-foretag-mobile-banner.png","datePublished":"2021-05-07T14:52:31+00:00","dateModified":"2021-11-22T14:19:19+00:00","author":{"@id":"https:\/\/oxceed.com\/fi\/#\/schema\/person\/b3e874d2e6116d756ef2aecb506e8880"},"breadcrumb":{"@id":"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/#primaryimage","url":"https:\/\/oxceed.com\/fi\/wp-content\/uploads\/sites\/24\/2021\/05\/oxceed-for-foretag-mobile-banner.png","contentUrl":"https:\/\/oxceed.com\/fi\/wp-content\/uploads\/sites\/24\/2021\/05\/oxceed-for-foretag-mobile-banner.png","width":1920,"height":1415},{"@type":"BreadcrumbList","@id":"https:\/\/oxceed.com\/fi\/okategoriserade\/oxceed-from-asp-net-mvc-5-to-blazor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/oxceed.com\/fi\/"},{"@type":"ListItem","position":2,"name":"Oxceed &#8211; from ASP.Net MVC 5 to Blazor"}]},{"@type":"WebSite","@id":"https:\/\/oxceed.com\/fi\/#website","url":"https:\/\/oxceed.com\/fi\/","name":"Oxceed Finland","description":"Fatta b\u00e4ttre beslut med Oxceed","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/oxceed.com\/fi\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/oxceed.com\/fi\/#\/schema\/person\/b3e874d2e6116d756ef2aecb506e8880","name":"Martin Ericson","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/176e21de61385d9ffc7eefd75788ccd94753d7352703cc12f102b743159c03c2?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/176e21de61385d9ffc7eefd75788ccd94753d7352703cc12f102b743159c03c2?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/176e21de61385d9ffc7eefd75788ccd94753d7352703cc12f102b743159c03c2?s=96&d=identicon&r=g","caption":"Martin Ericson"}}]}},"_links":{"self":[{"href":"https:\/\/oxceed.com\/fi\/wp-json\/wp\/v2\/posts\/10003","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oxceed.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oxceed.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oxceed.com\/fi\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/oxceed.com\/fi\/wp-json\/wp\/v2\/comments?post=10003"}],"version-history":[{"count":11,"href":"https:\/\/oxceed.com\/fi\/wp-json\/wp\/v2\/posts\/10003\/revisions"}],"predecessor-version":[{"id":16472,"href":"https:\/\/oxceed.com\/fi\/wp-json\/wp\/v2\/posts\/10003\/revisions\/16472"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oxceed.com\/fi\/wp-json\/wp\/v2\/media\/9894"}],"wp:attachment":[{"href":"https:\/\/oxceed.com\/fi\/wp-json\/wp\/v2\/media?parent=10003"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oxceed.com\/fi\/wp-json\/wp\/v2\/categories?post=10003"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oxceed.com\/fi\/wp-json\/wp\/v2\/tags?post=10003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}