Programming/Comparisons: Difference between revisions
Jump to navigation
Jump to search
(4 intermediate revisions by the same user not shown) | |||
Line 27: | Line 27: | ||
* /Pages/*.razor | * /Pages/*.razor | ||
* /Pages/*.cshtml | * /Pages/*.cshtml | ||
* /Shared/*.razor for partials | |||
|- | |- | ||
! Controllers | ! Controllers | ||
Line 40: | Line 41: | ||
| | | | ||
* Defined by `@page "/<path>"` on each /Page/*.razor page | * Defined by `@page "/<path>"` on each /Page/*.razor page | ||
|- | |||
! Layout | |||
| | |||
* Usually defined in /app/views/layout/application.html.erb | |||
* Usually used in /app/controllers/application_controller.cs, or the root controller of the application | |||
| | |||
* Usually defined in /Shared/MainLayout.razor and /Shared/MainLayout.razor.css | |||
* Usually used in /App.razor | |||
|- | |||
! Using Partials | |||
| | |||
* `<%= render '[partial name]', param_name: param_value_variable %> | |||
| | |||
* <[PartialName] ParamName=@ParamValueVariable /> | |||
* <[PartialName] @bind-ParamName=@ParamValueVariable /> for updating the parent on value change in partial | |||
|- | |- | ||
! Permissions/Authentication | ! Permissions/Authentication | ||
Line 50: | Line 66: | ||
* Used in /Pages/*.razor | * Used in /Pages/*.razor | ||
* /App.razor to rescue unauthorized | * /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. | |||
|- | |||
! Dependency Injection | |||
| | |||
* Rails doesn't really do dependency injection - usually objects are created on demand in the controllers. | |||
| | |||
* Defined in /Startup.cs | |||
* Used as regular parameters in /Data/*.cs | |||
* Used with `@inject <Class> <VariableName>` in /Pages/*.razor | |||
|- | |||
! JS/CSS | |||
| | |||
* /app/client/packs/*.js & /app/client/packs/*.css for Webpacker | |||
| | |||
* /wwwroot/css/*.css | |||
* /Pages/Shared/*.razor.css | |||
* Blazor does not use Javascript | |||
|- | |||
! Asynchronous Calls | |||
| | |||
* Ajax/HttpRequest | |||
| | |||
* SignalR/WebSockets | |||
|- | |||
! Calling Server Code | |||
| | |||
* Setup | |||
** Make a routing endpoint | |||
** Connect to controller | |||
** Return json | |||
* Use | |||
** Use endpoint in link | |||
** Parse json | |||
** Use JS to update page | |||
| | |||
* Define method on same razor page. | |||
* Add `@onclick="@(() => MyCSMethod(MyParam))` to html item. | |||
|} | |} |
Latest revision as of 10:27, 9 August 2021
Frameworks
Ruby on Rails and Blazor
Ruby on Rails and Blazor | |||||
---|---|---|---|---|---|
Ruby on Rails | Blazor | ||||
Language | Ruby | C# | |||
Models |
|
| |||
Views |
|
| |||
Controllers |
|
| |||
Routing |
|
| |||
Layout |
|
| |||
Using Partials |
|
| |||
Permissions/Authentication |
|
| |||
Data Services |
|
| |||
Dependency Injection |
|
| |||
JS/CSS |
|
| |||
Asynchronous Calls |
|
| |||
Calling Server Code |
|
|