一键导入
intraweb-framework-patterns
Padrões de desenvolvimento web stateful usando IntraWeb com FreePascal/Lazarus — UserSession, TIWAppForm, thread safety, e design.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Padrões de desenvolvimento web stateful usando IntraWeb com FreePascal/Lazarus — UserSession, TIWAppForm, thread safety, e design.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Versao curta para migracao Delphi/IntraWeb -> Lazarus com equivalencia funcional. Foco em checklist objetivo, sem refatoracao e com checkpoint de progresso.
Migracao Delphi IntraWeb -> Lazarus IntraWeb com equivalencia funcional, sem refatorar regra de negocio. Inclui conversao FireDAC->Zeos, DFM->LFM, ajuste de units Delphi para FPC e fluxo com checkpoint (RETOMAR/STATUS/PAUSAR).
Padrões arquiteturais, de injeção de dependência e de UI para o ecossistema Projeto ACBr (Automação Comercial Brasil) em FreePascal/Lazarus.
Padrões pragmáticos de código limpo para FreePascal/Lazarus — conciso, direto, sem over-engineering
Checklist de revisão de código FreePascal/Lazarus — qualidade, segurança, performance, SOLID, memória
Implementação dos 23 padrões GoF (Gang of Four) em Object Pascal / FreePascal/Lazarus com interfaces, TInterfacedObject e princípios SOLID. Cobre Creational, Structural e Behavioral patterns.
| name | IntraWeb Framework Patterns |
| description | Padrões de desenvolvimento web stateful usando IntraWeb com FreePascal/Lazarus — UserSession, TIWAppForm, thread safety, e design. |
| alwaysApply | false |
Use esta skill ao desenvolver ou modernizar aplicações Web usando o framework IntraWeb em projetos FreePascal / Lazarus.
O IntraWeb é nativamente multithread (uma thread por requisição) e stateful (uma sessão contínua por usuário).
TSQLConnection, TSQLQuery), Conexões REST ou variáveis de contexto em unidades de formulário (unit) como globais na seção var.UserSession (geralmente provido pela unit UnitUserSession ou via método UserSession()) para guardar propriedades relativas ao usuário logado, como UserId, Role, ou TenantId.DataModule (ex: TdmDatabase) no momento de uso na thread, ou amarre um exclusivo no escopo da UserSession.TForm) quando construir uma tela para a Web.TIWAppForm.Formulários no IntraWeb são criados associados à aplicação web chamando .Create(WebApplication).
Evite liberar forms "cegamente" usando .Free no code-behind a menos que se trate de uma arquitetura popup estritamente isolada. O gerenciador de ciclo de vida do próprio servidor IntraWeb fará a coleta quando a sessão ou form for descartado via método Release.
procedure TIWFormLogin.IWButtonLoginClick(Sender: TObject);
var
LUserService: IUserService;
LUser: TUser;
begin
LUserService := TUserService.Create(TThreadDBFactory.GetConnection);
LUser := LUserService.Authenticate(IWEditUser.Text, IWEditPass.Text);
if Assigned(LUser) then
begin
// Salva na UserSession para que o estado seja retido entre requests
UserSession.LoggedUserID := LUser.Id;
UserSession.TenantID := LUser.TenantId;
// Libera a tela de login
TIWFormDashboard.Create(WebApplication).Show;
Release;
end
else
WebApplication.ShowMessage('Acesso Negado');
end;