Skip to content

Commit 3d3b5db

Browse files
committed
Added Chapter zero's codes.
1 parent cb1e947 commit 3d3b5db

File tree

4 files changed

+248
-1
lines changed

4 files changed

+248
-1
lines changed

Chapter00/Chapter00.csproj

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net8.0</TargetFramework>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>enable</Nullable>
8+
</PropertyGroup>
9+
10+
<ItemGroup>
11+
<None Update="Data.json">
12+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
13+
</None>
14+
</ItemGroup>
15+
16+
</Project>

Chapter00/Data.json

+122
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
[
2+
{
3+
"id": "d5e8b21d-4ec3-4723-aabe-cbb2dcd9d7f2",
4+
"title": "Inventory Tracking System",
5+
"summary": "Bu projede amaç basit bir envanter takip sistemi geliştirilmesidir.",
6+
"level": 70
7+
},
8+
{
9+
"id": "d9c41b8f-ecc4-4236-9538-8a6ad37d0ee3",
10+
"title": "Terminal-Based Dungeon Game",
11+
"summary": "Terminalden programın sorduğu sorulara göre oyuncuyu yönlendirilen bir zindan oyunudur. Tek level tasarlanması yeterlidir. Görsel bir öğe içermemektedir.",
12+
"level": 90
13+
},
14+
{
15+
"id": "c9235b47-076c-4d64-b42d-b57d39cfa6c8",
16+
"title": "Random Data Set Generator",
17+
"summary": "Hepimizin derdi bazen rastgele test verisi bulmak olur. Örnek ürün listeleri, kullanıcı profilleri gibi. Bu tip veri setlerini oluşturmayı kolaylaştıran bir programdır.",
18+
"level": 80
19+
},
20+
{
21+
"id": "e8fae5c8-62da-4eaa-9d35-8b06e49fb58f",
22+
"title": "Simple Abstract Syntax Tree (AST) Interpreter",
23+
"summary": "Oldukça basit seviyede bir dil yorumlayıcı programdır.",
24+
"level": 100
25+
},
26+
{
27+
"id": "bc7a7d32-8b09-4f8b-890d-5fd2b5c1d657",
28+
"title": "Lightweight API Gateway",
29+
"summary": "API Gateway prensiplerini içeren bir yönetim programıdır.",
30+
"level": 70
31+
},
32+
{
33+
"id": "6b6eb3c8-fdbf-4623-b6f7-1b309567f195",
34+
"title": "Backend Service Development for Kanban Board Applications",
35+
"summary": "Önyüz tarafında Kanban modelinde çalışan bir arayüz için gerekli fonksiyonellikleri sağlayan bir Web API'dir. Rest veya gRPC şeklinde çalıştırılabilir.",
36+
"level": 65
37+
},
38+
{
39+
"id": "d8a0c9ea-e4e2-4a3f-86a0-b2ee1b0df10e",
40+
"title": "Static Code Quality Analyzer",
41+
"summary": "Bir .net uygulama kodunu tarayıp belli başlı kod kalite metriklerini ölçümleyerek raporlayan bir araçtır.",
42+
"level": 100
43+
},
44+
{
45+
"id": "e9650eeb-961c-4887-bb55-4448c716e2f1",
46+
"title": "Data Transfer Application Between Different Sources",
47+
"summary": "Farklı kaynaklar arasında veri taşıması yapılmasını sağlayan yönetici uygulamadır. SSIS (Sql Server Integration Services) benzeri bir uygulamanın çok basit bir sürümüdür.",
48+
"level": 85
49+
},
50+
{
51+
"id": "05d5b8ae-e162-4e9a-bb44-72343aeea636",
52+
"title": "Radio Stations Program",
53+
"summary": "Internet üzerinden yayın yapan radyo programları için offline çalışan bir desktop uygulamasıdır.",
54+
"level": 60
55+
},
56+
{
57+
"id": "a370e8ef-2636-4f8d-9c4c-275238ed9b29",
58+
"title": "E-commerce Cart System",
59+
"summary": "Bir e-ticaret sistesinin sadece alışveriş sepeti modülünün geliştirilmesini içerir. Önyüz tasarımından ziyade arka plandaki model yapılarının tasarımı, bileşenler ve fonksiyonların içeriği önemlidir.",
60+
"level": 85
61+
},
62+
{
63+
"id": "e4ec7b69-e89c-46bf-8139-e1d40a2e9ee2",
64+
"title": "Library Management System (Nuget Clone)",
65+
"summary": "Burada Nuget benzeri bir paket yönetim sisteminin benzeri inşa edilir. Paket listeleme, versiyonlama, doküman desteği ve programlara indirebilme özelliklerinin olması yeterlidir.",
66+
"level": 90
67+
},
68+
{
69+
"id": "6b951e64-2f9c-46a4-93e3-bc09b119e3fa",
70+
"title": "Online Multi User Exam/Quiz Platform (Mentimeter Clone)",
71+
"summary": "Online platformda çalışan öğrenciler için soru setlerinin hazırlanabildiği bir web uygulamasıdır.",
72+
"level": 100
73+
},
74+
{
75+
"id": "ecb5e758-23b7-4e04-8e3a-477a2fe57b38",
76+
"title": "Employee Management System",
77+
"summary": "Hafifsiklet bir insan kaynakları yönetimi uygulamasıdır. Mavi yakalılar için tasarlanabilir. Organizasyon ağacı desteği olmalıdır.",
78+
"level": 65
79+
},
80+
{
81+
"id": "57f09776-bb1d-4a1c-92e7-726d5d96f2c6",
82+
"title": "Topic Based ChatBot Application",
83+
"summary": "Azure platformunun AI kabiliyetleri kullanılarak tasarlanacak ve platforma giren kullanıcılara yardım edebilecek bir chat bot uygulamasıdır.",
84+
"level": 75
85+
},
86+
{
87+
"id": "fc3b8d72-45ef-4a91-9713-5ba2e05e5e91",
88+
"title": "Stock Market Tracking and Analysis Program",
89+
"summary": "Piyasa verilerini analiz ederen bir takım sonuçlar üreten ve tavsiyelerde bulunan bir web uygulaması olarak düşünülebilir.",
90+
"level": 60
91+
},
92+
{
93+
"id": "7fdba578-bc6a-4d94-8583-4091c5d6c34e",
94+
"title": "Sequential Task Management System",
95+
"summary": "Bir sistemdeki planlı işleri çalışıtırıp, yönetiminin de yapılabildiği desktop uygulamasıdır. Web tabanlı olarak da tasarlanabilir.",
96+
"level": 90
97+
},
98+
{
99+
"id": "22bf3e68-2077-4d0e-9b9b-015e7b13e4c2",
100+
"title": "Real-Time Data Processing Service",
101+
"summary": "Bir veri setini gerçek zamanlı olarak analiz edip sonuç çıkartan servis uygulamasıdır. Performans öncelikli bir uygulama olduğu için paralel çalıştırma veya multitasking gibi özellikler öne çıkar.",
102+
"level": 100
103+
},
104+
{
105+
"id": "55b18938-7f9c-43ff-9b40-f3b3e70e08d3",
106+
"title": "Smart Notepad Application (Notion Clone)",
107+
"summary": "Notion benzeri bir not tutma uygulaması olarak düşünülebilir. Desktop uygulaması stilinde geliştirilebilir. Notion'daki her özelliği içermesine gerek yoktur ancak notları kalıcı olarak saklama, hatırlatma, önceliklendir ve export/import gibi özellikler barındırabilir.",
108+
"level": 70
109+
},
110+
{
111+
"id": "58a3c9a1-e7e5-4b78-b2d8-1e8ea82ac7bf",
112+
"title": "Simple 2D Platform Game",
113+
"summary": "OpenGL veya DirectX gibi kütüphanelere erişebilen paketler ile masaüstü windows uygulaması olarak geliştirilebileceği gibi Unity ile de yazılabilir. Tek sahnelik bir platform oyunu olması yeterlidir.",
114+
"level": 80
115+
},
116+
{
117+
"id": "b496f71f-3f1b-45b9-89cc-6cccf45b307a",
118+
"title": "ECS Based Game Engine",
119+
"summary": "Burada asıl amaç ECS (Entity Component System) yapısını kullanan basit bir oyun motorunun inşasıdır. C# dilinin temel enstrümanları ve .net platformunun bazı özellikleri kullanılarak tasarlanmaya çalışılır.",
120+
"level": 100
121+
}
122+
]

Chapter00/Program.cs

+103
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
// var trackingSystem = new Homework(); // Default Constructor
2+
var trackingSystem = new Homework(
3+
Guid.NewGuid()
4+
, "Inventory Tracking System"
5+
, "Bu projede amaç basit bir envanter takip sistemi geliştirilmesidir."
6+
, 70);
7+
8+
Console.WriteLine("{0}", trackingSystem.Title);
9+
10+
// var apiGateway = new Homework();
11+
12+
object obj = trackingSystem;
13+
14+
// trackingSystem.Title="Inventory";
15+
16+
17+
List<Homework> homeworks =
18+
[
19+
trackingSystem,
20+
new Homework(
21+
Guid.NewGuid()
22+
, "Random Data Generator"
23+
, "Rastgele veri oluşturma aracı"
24+
, 90)
25+
];
26+
27+
// List<Homework> homeworks = new List<Homework>();
28+
// homeworks.Add(trackingSystem);
29+
// homeworks.Add(
30+
// new Homework(
31+
// Guid.NewGuid()
32+
// , "Random Data Generator"
33+
// , "Rastgele veri oluşturma aracı"
34+
// , 90)
35+
// );
36+
37+
// var randomGenerator = new Homework();
38+
// Console.WriteLine("{0}", randomGenerator);
39+
40+
// float pi = 3.14F;
41+
// var square= pi *2 *2;
42+
43+
44+
// Set Fields
45+
// trackingSystem.Id = Guid.NewGuid();
46+
// trackingSystem.Title = "Inventory Tracking System";
47+
// trackingSystem.Summary = "Bu projede amaç basit bir envanter takip sistemi geliştirilmesidir.";
48+
// trackingSystem.Level = 70;
49+
50+
// Print Out
51+
// Console.WriteLine("{0} (L:{2})\n\t{1}", trackingSystem.Title, trackingSystem.Summary, trackingSystem.Level);
52+
Console.WriteLine("{0}", trackingSystem);
53+
54+
// Entity Design
55+
class Homework(Guid id, string title, string summary, short level) // Primary Constructor
56+
{
57+
// Read-only Properties
58+
public Guid Id { get; private set; } = id;
59+
public string Title { get; private set; } = title;
60+
public string Summary { get; private set; } = summary;
61+
public short Level { get; private set; } = level;
62+
// public Homework()
63+
// {
64+
65+
// }
66+
// public Homework(Guid id, string title, string summary, short level)
67+
// {
68+
// Id = id;
69+
// Title = title;
70+
// Summary = summary;
71+
// Level = level;
72+
// }
73+
public override string ToString()
74+
{
75+
return $"{Id}:{Title}(L:{Level})\n\t{Summary}";
76+
}
77+
}
78+
79+
// class Homework
80+
// {
81+
// Guid _id;
82+
// public void SetId()
83+
// {
84+
// _id = Guid.NewGuid();
85+
// }
86+
// public Guid Id()
87+
// {
88+
// return _id;
89+
// }
90+
// string? _title;
91+
// public void SetTitle(string title){
92+
// if(string.IsNullOrEmpty(title)) {
93+
// throw new ArgumentException("There is no title");
94+
// }
95+
// _title=title;
96+
// }
97+
// string? Summary;
98+
// short Level;
99+
// public override string ToString()
100+
// {
101+
// return $"{Id}:{Title}(L:{Level})\n\t{Summary}";
102+
// }
103+
// }

ProgrammingWithCSharp.sln

+7-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
88
README.md = README.md
99
EndProjectSection
1010
EndProject
11-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Chapter01", "Chapter01\Chapter01.csproj", "{2EB417F4-E20F-40F0-B186-41CB8A126788}"
11+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Chapter01", "Chapter01\Chapter01.csproj", "{2EB417F4-E20F-40F0-B186-41CB8A126788}"
12+
EndProject
13+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Chapter00", "Chapter00\Chapter00.csproj", "{A9F9401A-5C7E-4829-9EEC-CD2CE0786575}"
1214
EndProject
1315
Global
1416
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -20,6 +22,10 @@ Global
2022
{2EB417F4-E20F-40F0-B186-41CB8A126788}.Debug|Any CPU.Build.0 = Debug|Any CPU
2123
{2EB417F4-E20F-40F0-B186-41CB8A126788}.Release|Any CPU.ActiveCfg = Release|Any CPU
2224
{2EB417F4-E20F-40F0-B186-41CB8A126788}.Release|Any CPU.Build.0 = Release|Any CPU
25+
{A9F9401A-5C7E-4829-9EEC-CD2CE0786575}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
26+
{A9F9401A-5C7E-4829-9EEC-CD2CE0786575}.Debug|Any CPU.Build.0 = Debug|Any CPU
27+
{A9F9401A-5C7E-4829-9EEC-CD2CE0786575}.Release|Any CPU.ActiveCfg = Release|Any CPU
28+
{A9F9401A-5C7E-4829-9EEC-CD2CE0786575}.Release|Any CPU.Build.0 = Release|Any CPU
2329
EndGlobalSection
2430
GlobalSection(SolutionProperties) = preSolution
2531
HideSolutionNode = FALSE

0 commit comments

Comments
 (0)