Obrigado por se interessar em contribuir! 🚀
Este projeto segue um Código de Conduta respeitoso. Valorizamos inclusão e profissionalismo.
- 🐛 Bug Reports — Encontrou um erro?
- ✨ Feature Requests — Tem uma ideia?
- 📖 Documentação — Melhorias em README
- 🧪 Testes — Testes automatizados
- 🎨 UI/UX — Melhorias visuais
- 🔧 Refatoração — Limpeza de código
Use este template:
## 🐛 Descrição
[Explicar o problema]
## 📋 Como Reproduzir
1. Faça isto...
2. Depois aquilo...
## 📸 Ambiente
- .NET Version: [dotnet --version]
- Sistema: [Windows/macOS/Linux]## ✨ Descrição
[Explicar a feature]
## 💡 Motivação
Por que seria útil?
## 📝 Implementação
[Sua sugestão]git clone https://github.com/SEU-USUARIO/ASP.NET-Core-Web-App-MVC.git
cd ASP.NET-Core-Web-App-MVCgit checkout -b feature/descricao-curtadotnet build
dotnet watch rungit commit -m "feat: adiciona nova funcionalidade"git push origin feature/descricao-curta// ✅ Classes públicas em PascalCase
public class MovieController : Controller { }
// ✅ Propriedades em PascalCase
public List<Movie> Movies { get; set; }
// ✅ Métodos async com CancellationToken
public async Task<IActionResult> IndexAsync()
{
var movies = await _context.Movies.ToListAsync();
return View(movies);
}
// ✅ Validação com Data Annotations
[Required(ErrorMessage = "Título é obrigatório")]
[StringLength(100)]
public string Title { get; set; }- 📖 Veja DEVELOPMENT.md
- 💬 Abra uma Discussion
Obrigado por contribuir! 🙏