The Bootcamp is being conducted at Formulatrix Indonesia, Salatiga City, Indonesia.
- Day 1 Project
- Day 2 Project
- Day 3 Project
- Day 4 Project
- Day 5 Project
- Day 6 Project
- Day 7-11: AutoChess Project
- Day 12 Project
- Day 13 Project
- Day 14 Project
- Day 15 Project
- Day 16 Project
- Day 17 Project
- Day 18 Project
- Day 19 Project
- Day 20-21 Project
- Day 22 Project
- Midterm Exercise
- Ludo Game Project
- Install a text editor (ex: VScode)
- Install .NET (ex: .NET 8.0)
- Install C# Plugins in VSCode
- Run the code:
cd to/your/path
then simplydotnet run
- Company tour.
- Basic environment setup.
- C# introduction.
- Constructor, Overloading, Composition.
- Memory shared for different data type.
- 2 of 4 OOP Pillars: Inheritance, Encapsulation.
- Access Modifier.
- 2 of 4 OOP Pillars: Polymorphism, Abstraction.
- Upcasting, Downcasting, Overriding.
- Dynamic, Static, Extention Method, Params.
- Properties.
- Interface.
- Enum.
- Generic.
- Ref, Out, In.
- Delegate.
- Error type, Exception try-catch, Exception Handling.
- Default delegate: Action, Func.
- Anonymous method (Lambda expression).
- Foobar assignment.
- Operator overloading.
- Partial:
class Program
method structuring. - Collection data type:
Dictionary
,ArrayList
,List
,LinkedList
,HashSet
,Stack
,Queue
.
- Create class diagram project: Auto Chess game.
- PLatforms can be used: Mermaid, PlantUML, draw.io.
- Github gist.
- Design pattern reference: Facade.
- Create abstract/interface for every classes.
- Create object/class -> GameController -> Cardinality.
- 30 problems: 25 multiple choices & 5 essays.
- Multiple choices: each 1 point.
- Essay: each 5 points (add code example - google docs) -> as complete as possible.
- Maximum 50 points.
- Duration: 2 hours (1PM - 3PM).
- Destructor
- Garbage collection
- Memory profiler tool
- Finally.
- Dispose.
- Conditional Compilation.
- Watch run.
- Logging (debug and trace).
- Multi threading.
- Task.
- ThreadExceptionHandling.
- AsyncGuidance
- Async await.
- Cancellation token, deadlock, lock mechanism, semaphore.
- File and Serialization (Path, FileStream, JSON Serialization, XML Serialization)
- Practice 5 Solid principles.
- Revise the Ludo Game Project.
- Logging (NLog and log4net).
- Log as descriptive as possible but not too long
- Structured vs String In
- Unit testing (NUnit, XUnit, Moq).
- Final Project Team: Rafif, Yudha, Dayat.
- Logging/Severity level: Trace = 0 | Debug = 1 | Information = 2 | Warning = 3 | Error = 4.
- Better use structured logging than string interpolation.
- EntityFramework: Database framework.
- EntityFramework.pdf
- Database packages:
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Sqlite
Microsoft.EntityFrameworkCore.Design
- Gitflow.
- Design Pattern.
- ASP.Net : Web development framework
- WebAPI
- WebMVC
dotnet new mvc
or add packageASP.NET Core Web App (Model View Controller)
.dotnet watch run
: To update changes directly when program is running.- Add new pages:
- Modify
_layout.cshtml
- Create new Category controller in
./Controller/CategoryController.cs
- Create new file
./Views/Category/Index.cshtml
. - Connect with database
- Inside
./Models/Category.cs
- Inside
./Models/Product.cs
- Create
./Data/DataContext.cs
: Assign to database (create file.db) - Add new builder
builder.Service.AddDbContext<DataContext>(options => {options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection"))})
inProgram.cs
. - Modify
appsettings.json
to declare the database name and save all credentials name/data (don't be uploaded to public github, assign to.gitignore
). - Add seeding data to database, in
./Data/DataContext.cs
. - Build data context -> Create
./Migrations
->dotnet ef migrations add "Initial Create"
dotnet ef database update
-> build database.- Add logic of datbase in
CategoryController.cs
to gather all of the data. - Add receiving logic in
./Views/Category/Index.cshtml
.
- Inside
- Add button in a page (Create button):
- Add button or other attributes in
Views/.../Index.cshtml
- Add
./Views/Category/Create.cshtml
: A new page. - Create a new method in
./Controller/CategoryController.cs
: Action when the button is pushed.
- Add button or other attributes in
- Modify
- TempData: modify in beckend
./Controller/CategoryController.cs
and in./Views/Category/Index.cshtmml
. - Icon: getbootstrap. Get the SVG HTML format, paste to the
Index.html
inside the ancor<a>here</a>
- Razor Dages (SPA)
- ASP.Net : Web development framework
- Web API: Application Programming Interface.
- Material: Miro
- Common interface between two different system
- REST API
- Software API Tools: PostMan, PostMan-VScode, ThunderClient-VSCode, Swagger
- Use Swagger: localhost:port/swagger
- Package: ASP.NET Core Web API
- Create
./Controllers/CategoryController.cs
, add[Route("api/[controller])]
-> addbuilder.Services.AddCOntroller
inProgram.cs
- More notes
- Web API: Application Programming Interface.
- Debugging technique: each person explains three techniques.
- Mine (5th present):
- Quick thinking and look
- Divide and Conquer
- Change One Thing at a Time
- More notes