{"id":13466068,"url":"https://github.com/rstropek/StarshipTraveler","last_synced_at":"2025-03-25T21:31:13.817Z","repository":{"id":77987984,"uuid":"180599624","full_name":"rstropek/StarshipTraveler","owner":"rstropek","description":"Demo for conference talks and workshops about Blazor","archived":false,"fork":false,"pushed_at":"2023-11-14T20:48:26.000Z","size":4936,"stargazers_count":34,"open_issues_count":2,"forks_count":10,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-24T15:47:23.626Z","etag":null,"topics":["asp-net-core","blazor","blazor-server","blazor-webassembly","csharp","razor"],"latest_commit_sha":null,"homepage":"https://starshipclient.azurewebsites.net","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rstropek.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-10T14:29:39.000Z","updated_at":"2024-02-13T17:07:43.000Z","dependencies_parsed_at":"2024-01-15T16:52:44.498Z","dependency_job_id":null,"html_url":"https://github.com/rstropek/StarshipTraveler","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rstropek%2FStarshipTraveler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rstropek%2FStarshipTraveler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rstropek%2FStarshipTraveler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rstropek%2FStarshipTraveler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rstropek","download_url":"https://codeload.github.com/rstropek/StarshipTraveler/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245547248,"owners_count":20633332,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asp-net-core","blazor","blazor-server","blazor-webassembly","csharp","razor"],"created_at":"2024-07-31T15:00:38.808Z","updated_at":"2025-03-25T21:31:13.147Z","avatar_url":"https://github.com/rstropek.png","language":"C#","funding_links":[],"categories":["Sample Projects"],"sub_categories":["Others"],"readme":"[![api](https://github.com/rstropek/StarshipTraveler/actions/workflows/api.yaml/badge.svg)](https://github.com/rstropek/StarshipTraveler/actions/workflows/api.yaml)\n[![client](https://github.com/rstropek/StarshipTraveler/actions/workflows/client.yaml/badge.svg)](https://github.com/rstropek/StarshipTraveler/actions/workflows/client.yaml)\n[![server](https://github.com/rstropek/StarshipTraveler/actions/workflows/server.yaml/badge.svg)](https://github.com/rstropek/StarshipTraveler/actions/workflows/server.yaml)\n\n# Starship Traveler Blazor Demo\n\n![Screenshot](starship-travel.gif)\n\nI created this demo app for the [DevOne 2019 conference](https://devone.at). It has been updated for my Blazor sessions at [Techorama Belgium 2019](https://techorama.be/), [.NET Day Switzerland](https://dotnetday.ch/), and the [*International JavaScript Conferences* in London and Munich](https://javascript-conference.com/), Webinar for [M\u0026F Engineering, Switzerland](https://www.m-f.ch/events/event/29-webinare/73-webframeworks-webinar_2021), Wasm workshop for [University of Eduction Upper Austria](https://ph-ooe.at/). It showcases the capabilities of the ASP.NET Core Blazor framework.\n\n**Note** that this sample will not be continuously maintained. I will update it every now and then whenever I use it in workshops and/or conference talks. If you update and/or extend it, feel free to send me a pull request.\n\n## Demo Content\n\n* Fundamentals of programming with Blazor in a non-trivial app\n* Same app in Blazor Webassembly **and** Server-side Blazor\n* Encapsulation of components in a class library that can be used on client and server\n* Code sharing between client and server\n* Use of \"legacy\" .NET components (.NET Framework library) in Blazor WASM **and** Server-side Blazor\n* Debugging\n* Release deployments using container technology\n* CI/CD with GitHub Actions (deployment to *Azure App Service*)\n\n## Run the Full Demo\n\n* Install *Blazor* by installing *Visual Studio Preview*.\n\n* Clone the repository.\n\n* Open the solution [StarshipTraveler.sln](StarshipTraveler.sln) and run it.\n\n## Replay Demo?\n\nDo you want to try the demo yourself? Here is what you do:\n\n* Install *Blazor* by installing *Visual Studio Preview*.\n\n* Clone the repository.\n\n* Start the [API project](StarshipTraveler.Api) because the Blazor frontend consumes this Web API. **Note** that you should run the Web API as a console app or [in a Docker container](https://github.com/rstropek/StarshipTraveler/blob/master/storyboard.md#docker). Don't start the API in IIS as this can lead to CORS issues.\n\n* Open the solution in the [*Start*](Start) folder.\n\n* Follow the steps mentioned in [*storyboard.md*](storyboard.md). You will find the files referenced there in the [*Assets*](Assets) folder.\n\n## Docker\n\nThis repository contains Dockerfiles for all three projects:\n\n* *Api.Dockerfile*\n* *Client.Dockerfile* (WASM Client)\n* *Server.Dockerfile* (Serverside Blazor)\n\nGitHub Actions build the Dockerfiles and publish the resulting images to Docker hub:\n\n* [*rstropek/starshipapi*](https://hub.docker.com/repository/docker/rstropek/starshipapi)\n* [*rstropek/starshipclient*](https://hub.docker.com/repository/docker/rstropek/starshipclient)\n* [*rstropek/starshipserver*](https://hub.docker.com/repository/docker/rstropek/starshipserver)\n\nNote that the Dockerfiles build release versions of the apps. Therefore, you can use the resulting images to demonstrate WASM differences between debug and release builds.\n\n## Azure\n\nCurrently, the Docker images are deployed in Azure. **Note** that I do not always keep those deployments active. I sometimes turn them off to save costs when not doing presentations.\n\n* API: [https://starshipapi.azurewebsites.net](https://starshipapi.azurewebsites.net)\n  * Try it by opening [https://starshipapi.azurewebsites.net/api/tickets](https://starshipapi.azurewebsites.net/api/tickets)\n* Client: [https://starshipclient.azurewebsites.net](https://starshipclient.azurewebsites.net)\n* Server: [https://starshipserver.azurewebsites.net](https://starshipserver.azurewebsites.net)\n\n## Recording\n\n![Rainer on Stage](rainer-on-stage.jpg)\n\n* Recording of the session at DevOne Linz in Spring 2019: https://www.youtube.com/watch?v=_gYgkZ1UBQ4\n* Recording of the session at iJS London in 2020: https://youtu.be/mFBqThJQa0o\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frstropek%2FStarshipTraveler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frstropek%2FStarshipTraveler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frstropek%2FStarshipTraveler/lists"}