Ruby on Rails and Blazor
|
|
Ruby on Rails
|
Blazor
|
Language
|
Ruby
|
C#
|
Models
|
|
- /Models/*.cs
- Package dependencies
|
Views
|
|
- /Pages/*.razor
- /Pages/*.cshtml
- /Shared/*.razor for partials
|
Controllers
|
|
- Part of /Pages/*.razor
- /Pages/*.cshtml.cs for corresponding /Pages/*.cshtml
|
Routing
|
|
- Defined by `@page "/<path>"` on each /Page/*.razor page
|
Permissions/Authentication
|
- Defined in /app/models/powers/*.rb
- Used in /app/controllers/*.rb
- /app/controllers/application_controller.rb to rescue Consul::Powerless
|
- Configured in /Startup.cs
- Used in /Pages/*.razor
- /App.razor to rescue unauthorized
|
Data Services
|
- /app/controller/*rb for basic data access
- /app/services/*.rb for more complicated data access/manipulation
|
- /Data/*.cs
- However, these classes are usually wrappers around API calls to other services - C# .NET best practices usually entail a series of micro-services instead of a monolith, meaning the frontend does not directly interact with the database.
- Since this folder can get pretty big, you'll have to split this up yourself. Some folders I've used are Services, API, Authentication, and Exceptions.
|
JS/CSS
|
- /app/client/packs/*.js & /app/client/packs/*.css for Webpacker
|
- /wwwroot/css/*.css
- Blazor does not use Javascript
|
Asynchronous Calls
|
|
|