diff options
Fully reworked website design. Remade pages in markdown. Configured files to work with ssg5.
30 files changed, 544 insertions, 0 deletions
diff --git a/src/_footer.html b/src/_footer.html new file mode 100644 index 0000000..5bdc5d5 --- /dev/null +++ b/src/_footer.html @@ -0,0 +1,30 @@ + </article> + + <nav class="footer"> + <table class="centered"> + + <tr> + <td> + <a href="https://github.com/Syndamia" target="_blank" class="link-tab" title="GitHub"><img src="./img/logos/github.png" alt="GitHub" width="32" height="32"></a> + <a href="https://stackoverflow.com/users/12036073/syndamia" target="_blank" class="link-tab" title="StackOverflow"><img src="./img/logos/stackoverflow.png" alt="StackOverflow" width="32" height="32"></a> + <a href="https://bg.linkedin.com/in/kamen-mladenov-18563b1a3?trk=people-guest_people_search-card" target="_blank" class="link-tab" title="Linkedin"><img src="./img/logos/linkedin.png" alt="Linkedin" width="32" height="32"></a> + </td> + + <td>||</td> + + <td> + <a href="https://github.com/Syndamia/syndamiadotcom/blob/master/LICENSE" target="_blank" class="link-tab">Website License</a> + <a href="/credit.html" target="_blank" class="link-tab">Credit</a> + </td> + </tr> + + <tr> + <td colspan="3"> + <a href="https://www.romanzolotarev.com/ssg.html" target="_blank" class="link-tab">Created with ssg by Roman Zolotarev</a> + </td> + </tr> + </table> + </nav> +</body> + +</html> diff --git a/src/_header.html b/src/_header.html new file mode 100644 index 0000000..d613740 --- /dev/null +++ b/src/_header.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html lang="en"> + +<head> + <meta charset="UTF-8"> + <meta name="author" content="Kamen Mladenov"> + <meta name="robots" content="index, follow"> + <link rel="icon" href="/img/favicon.png" type="image/png"> + <link rel="shortcut icon" href="./img/favicon.png" type="image/png"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href="/styles.css"> +</head> +<body> + <nav class="header"> + <a href="/tutorials.html" class="link-tab">Tutorials</a> + <a href="/projects.html" class="link-tab">Projects</a> + <a href="/blog.html" class="link-tab">Blog</a> || + <a href="/index.html" class="link-tab">Home</a> || + <a href="/about.html" class="link-tab">About</a> + <a href="/contact.html" class="link-tab">Contact</a> + <a href="/resume.html" class="link-tab">Resume</a> + </nav> + + <article> diff --git a/src/about.md b/src/about.md new file mode 100644 index 0000000..077fd10 --- /dev/null +++ b/src/about.md @@ -0,0 +1,10 @@ +## Hello! + +My name is Kamen. I am 18 years old and I was raised in and live in Bulgaria. + +Ever since I was a kid, computers were my interest. I tinkered with any program I can find on my grandmother's old laptop, I even fully disassembled and assembled different old laptops (and they worked). + +It took me quite some time, until a course in 2018, when I started seriously learning programming. In the beginning I wasn't that good, but I took it upon myself to work as hard as I could. I did most exercises that the teachers gave us and got excellent scores in all exams. + +Ever since then, programming has been my passion and obsession. Everything from back-end to front-end to operating systems is really interesting to me and I am trying to learn it as much as I can. + diff --git a/src/blog.md b/src/blog.md new file mode 100644 index 0000000..c44fcf0 --- /dev/null +++ b/src/blog.md @@ -0,0 +1 @@ +[COMING SOON] diff --git a/src/contact.md b/src/contact.md new file mode 100644 index 0000000..032aa07 --- /dev/null +++ b/src/contact.md @@ -0,0 +1,8 @@ +## Social media + +[](https://bg.linkedin.com/in/kamen-mladenov-18563b1a3?trk=people-guest_people_search-card) + +## Email + +Official email: [kamen.d.mladenov@protonmail.com](mailto:kamen.d.mladenov@protonmail.com) + diff --git a/src/credit.md b/src/credit.md new file mode 100644 index 0000000..4a299f1 --- /dev/null +++ b/src/credit.md @@ -0,0 +1,8 @@ +## This page is for crediting creators, whose stuff I use in this website + +[GitHub Logo Icon](https://iconscout.com/icons/github) by [Roundicons.com](https://iconscout.com/contributors/roundicons-com)ass="hyper + +[StackOverflow Logo Icon](https://iconscout.com/icons/stackoverflow) by [Alex Doreau](https://iconscout.com/contributors/alexis-doreau) + +[LinkedIn Icon](https://iconscout.com/icons/linkedin) on [Iconscout](https://iconscout.com) + diff --git a/src/img/favicon.png b/src/img/favicon.png Binary files differnew file mode 100644 index 0000000..5104a43 --- /dev/null +++ b/src/img/favicon.png diff --git a/src/img/logos/github.png b/src/img/logos/github.png Binary files differnew file mode 100644 index 0000000..bc7497a --- /dev/null +++ b/src/img/logos/github.png diff --git a/src/img/logos/linkedin.png b/src/img/logos/linkedin.png Binary files differnew file mode 100644 index 0000000..171af03 --- /dev/null +++ b/src/img/logos/linkedin.png diff --git a/src/img/logos/stackoverflow.png b/src/img/logos/stackoverflow.png Binary files differnew file mode 100644 index 0000000..9bbfb89 --- /dev/null +++ b/src/img/logos/stackoverflow.png diff --git a/src/index.md b/src/index.md new file mode 100644 index 0000000..be0c571 --- /dev/null +++ b/src/index.md @@ -0,0 +1,8 @@ +# Welcome +--- + +My name is Kamen Mladenov and I am a programming student. + +As of now, I am most comfortable with backend development and desktop applications. + +Here I will share programming knowledge as well as information about myself and my coding adventures. diff --git a/src/projects.md b/src/projects.md new file mode 100644 index 0000000..7485e26 --- /dev/null +++ b/src/projects.md @@ -0,0 +1,7 @@ + +|Name|Link| +|---|---| +|[Mundus](/projects/mundus/introduction.html)|[](https://github.com/Syndamia/Mundus)| +|syndamiadotcom [COMING SOON]|[](https://github.com/Syndamia/syndamiadotcom)| +|Bitspace [COMING SOON]|[](https://github.com/Syndamia/Shower)| + diff --git a/src/projects/mundus/basic-concepts.md b/src/projects/mundus/basic-concepts.md new file mode 100644 index 0000000..23b5dfd --- /dev/null +++ b/src/projects/mundus/basic-concepts.md @@ -0,0 +1,82 @@ +# Mundus - Basic Concepts + +**Article Created: 21 May 2020** || **Last Edited: 21 July 2020** + +[\< User Interface](./user-interface.html) + +--- + +Despite the fact that I tried my best to make the game as intuitive as possible, there are things you need to understand about how it works. + +## Tiles + +The ingame world (map) is composed of squares, called **tiles**, everything is a type of tile. The main purpose of tiles is to hold textures (amongst other important information). There are two main categories of tiles: items and mobs. Mobs (mobile object for short) are the creatures in the game. On the contrary, items are everything else, from the tools, to the trees. + +There is only one type of **mob tile** and that is **MobTiles**. + +All mobs have a couple of properties: + +- **health** (if it drops to or below 0, they die) + +- **defence** (reduces or completely negates certain amounts of damage) + +- **inventory** + +- **random movement qualifier** (used for random movement around the world) + +- **item that is dropped upon death** (health <= 0) + +- **the superlayer they are currenly in** + +**Items**, however, are divided into: + +- **Material tiles** are primarly used for crafting. Some tools are "consumable", meaning they can be consumed by the mob, which removes them from the inventory and changes the value of some property. In your inventory they are surrounded in oringe. + +- **Gear tiles** are something you equip (in your accessories and gear inventories) that boost your stats. In your inventory they are surrounded in purple. + +- **Ground tiles** are the tiles on the superlayer ground. For example, grass, water, sand are all ground tiles, because structures and mobs will be walking on top of them. + +- **Structure tiles** are tiles that can be placed in the world. For example, a tree is a type of structure tile. Some of them can be picked up. For example, a ladder is something you can have in your inventory, but something you can also place. They have a health and a dropped item (they drop their dropped item each time they're hurt). In your inventory they are surrounded in red. + +- **Tool tiles** are used for interracting (changing) the environment of the world. There are four types: + + - With a **shovel** you can dig up (remove) ground tiles from ground layer (see Layers and superlayers). + + - **Axes** are used to break (remove) wooden structures (trees, ladders, ...). + + - **Pickaxes** are used for breaking (removing) structures made from hard materials (rocks, boulders, ...). + + - **Swords** are used for damaging mobs. + + Tools aren't interchangeable, you can't use an axe to mine a bouder or an axe to kill a cow. In your inventory they are surrounded in blue. + +## Layers and superlayers + +The ingame world (map) is composed of **superlayers**. Superlayers represent each elevation level in the world. There are in total 5 superlayers (not all are implimented): **Space**, **Sky**, **Land**, **Underground**, **???**. + +Each superlayer is composed of 3 layers: **Structure**, **Mob** and **Ground**. Each one of them contains a specific type of tiles, structure tiles are only stored in "structure" layer, ground tiles only in "ground" layer and mob tiles only in "mob" layer. Even though, they are different layers, there are some rules for the interraction between them: + +- **Mobs can't be on top of structures** (except if the structure is marked as "walkable") + +- **Structures cannot be placed on top of mobs** (except if the strucure is marked as "walkable") + +- **Structures cannot be placed on top of holes** (empty spots in the ground layer), **except if they are "climable"**, in which case they will be placed on the structure layer on the superlayer below. Mobs also cannot be on top of holes (they fall to the superlayer below) + +## Inventory + +Each mob can store certain amount of item tiles. That is done in it's **inventory**. The inventory is comprised of 4 parts: + +- **Hotbar** can have all item tiles (except groundtiles). It should be used for the most important items in the inventory. In the UI you don't need to have the inventory menu open to use items from the hotbar. + +- **Items** is used as a bulk storage. It can hold any type of item tile and is the largest part of the inventory. + +- **Accessories** and **Gear** are used only to store gear tiles. + +## Crafting + +Creating different item tiles is done through **crafting**. Each craftable item requires from one to five different materials in different quantities. The item tiles must be inside the "items" part of your inventory. + +## Event logs + +Certain actions you do in the game are stored in memory as messages (logs). They are also used to give you information that you couldn't get otherwise. For example, there is a log if you can't climb up a superlayer because a mob is blocking the way, or when you damage/kill a structure or mob. + diff --git a/src/projects/mundus/history.md b/src/projects/mundus/history.md new file mode 100644 index 0000000..efa2ab2 --- /dev/null +++ b/src/projects/mundus/history.md @@ -0,0 +1,24 @@ +# Mundus - History + +**Article Created: 20 May 2020** || **Last Edited: 21 July 2020** + +[\< Introduction](./introduction.html) || [User Interface >](./user-interface.html) + +--- + +***08.02.2020*** - This was our first lecture in module 7 of the IT-kariera course and it was announced that for this exam we will be doing a project. We had almost complete freedom. From that point on, for the next couple of days I brainstormed different ideas. + +***12.02.2020*** - For the next two and a half weeks I explored different game engines / user interfaces. I started with Unity, but I dropped it because of time constraints. After that I looked into Gtk, and more precisely it's `C#` implementation: `GtkSharp 2.0`. I settled up on it and started learning it. +After that I started planning. + +***27.02.2020*** - I started slowly to work on the project itself. + +***28.03.2020*** - For the next week and a half I got a notebook and started taking notes and ideas all day long. + +***06.04.2020*** - Then started the spring school break. That was a good time to start coding the program. I worked really really hard, some days I worked for 8 hours without stop. It was almost the end of the break, but it got extended by a week. I continued working. + +But then, the COVID-19 situation happened. I wasn't able to continue working on it for a while, because I was burned out from the spring break and, in the beginning, there was an incredible amount of chaos with online education that I took upon myself to organize as much as I can. + +Until I finished the exam version, this pattern continued. I kept having a week or two where I worked really hard and another week or two where I rested. + +***23.05.2020*** - Finally, after many weeks of working on it, I had finished the exam version. I am saying "exam version" and not "the program" or "the project", because in the end it was more of a tech/code demo, than a finished product. More serious development will continue soon. diff --git a/src/projects/mundus/img/crafting-window.png b/src/projects/mundus/img/crafting-window.png Binary files differnew file mode 100644 index 0000000..61a7127 --- /dev/null +++ b/src/projects/mundus/img/crafting-window.png diff --git a/src/projects/mundus/img/create-new-game.png b/src/projects/mundus/img/create-new-game.png Binary files differnew file mode 100644 index 0000000..fe8d672 --- /dev/null +++ b/src/projects/mundus/img/create-new-game.png diff --git a/src/projects/mundus/img/inventory-menu.png b/src/projects/mundus/img/inventory-menu.png Binary files differnew file mode 100644 index 0000000..297d408 --- /dev/null +++ b/src/projects/mundus/img/inventory-menu.png diff --git a/src/projects/mundus/img/main-screen.png b/src/projects/mundus/img/main-screen.png Binary files differnew file mode 100644 index 0000000..bcf13c5 --- /dev/null +++ b/src/projects/mundus/img/main-screen.png diff --git a/src/projects/mundus/img/map-menu.png b/src/projects/mundus/img/map-menu.png Binary files differnew file mode 100644 index 0000000..f640abb --- /dev/null +++ b/src/projects/mundus/img/map-menu.png diff --git a/src/projects/mundus/img/small-game-window.png b/src/projects/mundus/img/small-game-window.png Binary files differnew file mode 100644 index 0000000..8af9885 --- /dev/null +++ b/src/projects/mundus/img/small-game-window.png diff --git a/src/projects/mundus/introduction.md b/src/projects/mundus/introduction.md new file mode 100644 index 0000000..e389cfa --- /dev/null +++ b/src/projects/mundus/introduction.md @@ -0,0 +1,35 @@ +# Mundus - Introduction + +**Article Created: 20 May 2020** || **Last Edited: 21 July 2020** + +[History >](./history.html) + +--- + +Mundus is an opensource light-weight sandbox desktop game (on how to install it, refer to the [README of repository](https://github.com/Syndamia/Mundus/blob/master/README.md)). + +In it, you can explore, fight with creatures, build things or dig up the whole ground. + +If you choose survival mode, gathering resources and crafting better equipment are essential. If you prefer creating things, creative mode is for you. + + +It all started as my exam project for module 7 of the course IT-kariera. Well, the concept has existed ever since my first lessons in the course. BitSpace and BitSpace 2.0 were short-lived attempts at implimenting this idea but with Mundus I decided it was time to do this once and for all. + +Although it began as an exam project, I will continue working on for the foreseeable future with two goals in mind. First and foremost, to create a fun game and second of all: to make it avalable to be downloaded directly on linux (from AUR, ...). + +I am doing this project by myself, from code to textures. It contains more than 2000 lines of code, which I have written in the past months. + +**Links to project**: [GitHub](https://github.com/Syndamia/Mundus) + +## Contents: + +1. [Introduction](./introduction.html) +2. [History](./history.html) +3. [User Interface](./user-interface.html) +4. [Basic Concepts](./basic-concepts.html) + +## Screenshots +(may vary between operating systems and system themes) + +   + diff --git a/src/projects/mundus/user-interface.md b/src/projects/mundus/user-interface.md new file mode 100644 index 0000000..445fcf0 --- /dev/null +++ b/src/projects/mundus/user-interface.md @@ -0,0 +1,104 @@ +# Mundus - User Interface + +**Article Created: 21 May 2020** || **Last Edited: 21 July 2020** + +[\< History](./history.html) || [Basic Concepts >](./basic-concepts.html) + +--- + +**Note: all screenshots are made in Linux with Mint-Y theme.** + +## Main screen + + + +We start off at the **main screen**. + +Here you can **load a save file** (_not implimented_), **create a new game**, **view the tutorial** (_not implimented_), or **change settings** (_not implimented_). + +## Create new game + + + +Creating a game gives you a couple of options: + +- **Game Mode**: Here you can select survival, in which you will start with almost no items and creative (_not implimented_) where you will have access to all items at all times. + +- **Difficulty**: In higher difficulties, your energy gets depleated much more quickly and trees, boulders and mobs are rarer. + +- **Screen & Inventory size**: The screen is the world area that you can see. Because of the user interface I use, the two are connected. + +- **Map size**: Map size is currently determined by the Screen & Inventory size, the higher the size, the smaller the map. + +**Note: all game window screenshots are made with the Small Game Window.** + +## Game Window + + + +After the world is generated, the game window opens. + +A the top you have your **(game) screen**. Here you can see the world. To navigate click on a place you want to go to. If you want to alter the envirnment, first click on an item (that can modify the world) and click the place you want to alter. + +Below that is your **energy bar**. Each mob (including the player) has an energy bar, each action you take takes energy. If your energy gets depleated, you start taking damage for each action you take. To replenish energy, kill mobs and consume their meats. + +Then you have your **health**. It represents how much life you have. If it drops to zero, you die (_not fully implimented_). + +Underneath that, there is your **hotbar**. It is a part of your inventory (for more information, consult [Basic Concepts](basic-concepts.html). + +After that, you have the **Event log button** and some of the most recent events. Clicking the Event log button opens a window from which you can browse all event logs. For more information, consult [Basic Concepts](./basic-concepts.html). + +To the sides there are a couple of buttons: + +- **Map** - opens the map menu + +- **Inv** - opens the inventory menu + +- **Music** - opens the music window (not fully implimented) + +- **Pause** - opens the pause window + +## Map menu + + + +**The Map menu** is an extension (to the left) to the normal game window. It is toggled with the inventory menu (either one of them or neither can be opened at the same time). For more information on the map, refer to [Basic Concepts](./basic-concepts.html). + +It contains a couple of things: + +- **Ground layer** - shows only the ground layer tiles of the map name of the superlayer you are currenly in and your coordinates in it + +- **Structure layer** - shows only the structure layer tiles of the map + +- **There is hole above player** - used to determine if you can climb up a superlayer + +## Inventory menu + + + +**The Inventory menu** is an extension (to the right) to the normal game window. It is toggled with the map menu (either one of them or neither can be opened at the same time). For more information on the inventory, refer to [Basic Concepts](./basic-concepts.html). + +It contains a couple of things: + +- **Items inventory** + +- **Crafing button** - opens the crafting menu + +- **Accessories inventory** + +- **Gear inventory** + +- **Information about the selected item** (icon and values) + +## Crafting window + + + +Every time you open **the crafting menu**, it automatically gets all items that you can craft, using the items in your Items inventory. + +At the top it shows you **all required items** (icons) and how much you need of each one. + +Below that it shows the **item that you can craft**. There are also two buttons, Prev and Next, for navigating multiple items you can craft. + +Finally, there is **the Craft button**, with which you can craft that item (removes required item from inventory and adds the crafted item). + diff --git a/src/resume.md b/src/resume.md new file mode 100644 index 0000000..9fdd632 --- /dev/null +++ b/src/resume.md @@ -0,0 +1,15 @@ + +||| +|---|---| +|Technologies| That I know well| +||C# GtkSharp 2.0| +||That I somewhat know| +||HTML CSS MySQL Visual Basic| +|Work Experience|-| +|Internships|-| +|Education|| +||**Application programmer** **[ONGOING]** 2019-2021, Course [IT-kariera](https://it-kariera.mon.bg/e-learning/)| +|Visits|| +||[Lidl Digital](https://careers-digital.bg) 24.02.2020| +||[HeleCloud](https://helecloud.com/) 20.02.2020| + diff --git a/src/robots.txt b/src/robots.txt new file mode 100644 index 0000000..e18756e --- /dev/null +++ b/src/robots.txt @@ -0,0 +1,6 @@ +User-agent: * +Allow: / +Disallow: /css/ +Disallow: /img/ +Disallow: /js/ +Sitemap: https://www.syndamia.com/sitemap.xml diff --git a/src/styles.css b/src/styles.css new file mode 100644 index 0000000..30c21c1 --- /dev/null +++ b/src/styles.css @@ -0,0 +1,83 @@ +:root { + --link-tab-bg-color: #303030; + --link-tab-bg-hover-color: #004080; +} + +* { + font-family: 'Open Sans', sans-serif; +} + +.centered { + margin-left: auto; + margin-right: auto; +} + +.header { + margin-top: 17px; + text-align: center; + font: 21px Arial; + border-bottom: 5px solid var(--link-tab-bg-color); + padding-bottom: 10px; +} + +.link-tab { + font-weight: normal; + padding: 10px; + color: white; + background-color: var(--link-tab-bg-color); + text-decoration: none; +} + +.link-tab:hover { + background-color: var(--link-tab-bg-hover-color); +} + +.footer { + text-align: center; + line-height: 39px; + border-top: 5px solid var(--link-tab-bg-color); +} + +a { + text-decoration: none; + font-weight: bold; + color: #004080; +} + +article { + margin-left: 25%; + margin-right: 25%; +} + +code { + font: 12px Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace; + color: #52595d; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + background-color: #f9f9f9; + padding: 0px 3px; + display: inline-block; + margin: 0px; +} + +pre > code { + border: 1px solid #cacaca; + line-height: 1.2em; + font: 12px Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace; + padding: 10px; + overflow:auto; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; + background-color: #FAFAFB; + color: #393939; + margin: 0px; +} diff --git a/src/tutorials.md b/src/tutorials.md new file mode 100644 index 0000000..f301224 --- /dev/null +++ b/src/tutorials.md @@ -0,0 +1,7 @@ +|| +|---| +|GtkSharp 2.0 [COMING SOON]| +|[Connect to Mysql in C# and Entity Framework](./tutorials/connect-to-mysql-in-csharp-ef/introduction.html)| + +I have some tutorial-style notes in my [references repo](https://github.com/Syndamia/References). Warning: some stuff might be wrong. + diff --git a/src/tutorials/connect-to-mysql-in-csharp-ef/connecting.md b/src/tutorials/connect-to-mysql-in-csharp-ef/connecting.md new file mode 100644 index 0000000..a91163c --- /dev/null +++ b/src/tutorials/connect-to-mysql-in-csharp-ef/connecting.md @@ -0,0 +1,53 @@ +# Connect to MySql in C# and Entity Framework - Connecting + +**Article Created: 21 May 2020** || **Last Edited: 21 July 2020** + +[\< Preparations](./preparation.html) + +--- + +## Connection string + +You can find many ways to impliment your connection string from [here](https://www.connectionstrings.com/mysql/). +From experience, this one works the best: + +``` +"server=localhost; port=YOUR-PORT; user id=YOUR-USER-ID; password=YOUR-PASSWORD; database=NAME-OF-DATABASE; SslMode=none" +``` + +If you don't know your port or user id, just look at the connection you use to connect to the database. + + In this example, the user id is _root_ and the port is _3306_. + +## ASP.NET Startup + +If you are making an ASP.NET application, you will need to alter your Startup.cs file. +Your ConfigureServices method should currenly look something like this: + +``` +// This method gets called by the runtime. Use this method to add services to the container. +public void ConfigureServices(IServiceCollection services) +{ + services.AddControllersWithViews(); + services.AddTransient<UserServices, UserServices>(); + services.AddDbContext<AppDbContext>(opt => + { + opt.UseSQL(CONNECTION_STRING); + }); +} +``` + +You need to change `.UseSQL` to `.UseMySQL` (refer to [preparations](./preparation.html) if you haven't already). + +## DBContext child class + +If you want to connect a DBContext child class to a MySQL databse, the best way is to override the `OnConfiguring` method. In the override, in `optionsBuilder`, call the `.UseMySQL` method (refer to [preparations](./preparation.html) if you haven't already). +Example: + +``` +protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) +{ + optionsBuilder.UseMySQL(DataBaseContexts.ConnectionStringMySQL); +} +``` + diff --git a/src/tutorials/connect-to-mysql-in-csharp-ef/img/connections.png b/src/tutorials/connect-to-mysql-in-csharp-ef/img/connections.png Binary files differnew file mode 100644 index 0000000..aa7b408 --- /dev/null +++ b/src/tutorials/connect-to-mysql-in-csharp-ef/img/connections.png diff --git a/src/tutorials/connect-to-mysql-in-csharp-ef/introduction.md b/src/tutorials/connect-to-mysql-in-csharp-ef/introduction.md new file mode 100644 index 0000000..2a2bd62 --- /dev/null +++ b/src/tutorials/connect-to-mysql-in-csharp-ef/introduction.md @@ -0,0 +1,19 @@ +# Connect to MySql in C# and Entity Framework - Introduction + +**Article Created: 21 May 2020** || **Last Edited: 21 July 2020** + +[Preparation >](./preparation.html) + +--- + +Connecting to `MySql` through `C#` can be quite tricky. I and many others have wasted too much time trying to figure this out. For that reason, I am making this tutorial. + +First are preparations in which I will talk about what you need to have for this to work. + +Second is the actual connecting. This covers changes in code and the all mighty connection string. + +## Contents + +1. [Introduction](./introduction.html) +2. [Preparation](./preparation.html) +3. [Connecting](./connecting.html) diff --git a/src/tutorials/connect-to-mysql-in-csharp-ef/preparation.md b/src/tutorials/connect-to-mysql-in-csharp-ef/preparation.md new file mode 100644 index 0000000..d7eed0d --- /dev/null +++ b/src/tutorials/connect-to-mysql-in-csharp-ef/preparation.md @@ -0,0 +1,20 @@ +# Connect to MySql in C# and Entity Framework - Preparation + +**Article Created: 21 May 2020** || **Last Edited: 21 July 2020** + +[\< Introduction](./introduction.html) || [Connecting >](./connecting.html) + +--- + +## MySql + +First of all, you need to insall MySql. You can do that from [here](https://dev.mysql.com/downloads/installer/). This is the installer. Skip this step, if you have already done it. + +## NuGet packages + +For an Entity Framework, [Microsoft.EntitiyFrameworkCore](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore) is the goto packet in this tutorial. + +Although [Microsoft.EntitiyFrameworkCore](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore) does offer connectivity with MS SQL server, **it doesn't offer the specific things for MySql**. + +That's why we need to also install another package: [MySql.Data.EntitiyFrameworkCore](https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/). + |