Software Development Best Practices

As a software engineer, i feel overwhelming with the software development process. Although, it's been more than decades to learn about it and plus my doctoral degree is in software engineering. i don't have any confidence that our software will have less bugs, better performance, and stable architecture. This is because several reasons such as: requirements changes lack of better architecture (chaos architecture) untested software So my real question is how we create better software and eliminating that problem. Let's think simple solution about this: Requirements changes --> unavoidable --> we should take care the changes by giving our customer chance to change as long as they pay Lack of better architecture --> can be avoided --> we should create a standard platform in the team and the architect should maintain the document so it should up to date Untested software --> can be avoided --> we can create a standard process to make sure the software is tested and the bugs is eliminated. Requirements Changes the way to improve the requirement process is by Creating a series workshop / meeting session to improve the requirement visibility Managing clear documentation about the requirement and the requirement changes. Tracking the changes about the requirement and the requirement changes. So what tool do you have for these: Azure DevOps Microsoft Planner Microsoft OneNote You can learn further here Manage requirements, Agile methods - Azure DevOps | Microsoft Docs Lack of Better Architecture The way to improve better architecture are: Evaluate the architecture with the architecture best practices Learning the new technology that can fulfill you architectural need Implement standardization of your platform and architecture task So what tool do you have for these: Visual Studio 2022 or later to check the code map, and code analysis Visio or PowerPoint to create and propose your architecture work Azure WIKI to document your architecture You can learn further about the architecting here Visual Studio 2022 architecture feature - Architecture analysis & modeling tools - Visual Studio (Windows) | Microsoft Docs Architecture Center - Azure Architecture Center - Azure Architecture Center | Microsoft Docs Untested Software The way to improve your software quality are: Regular testing. For example, do software testing for each iteration Creating your testing script. For example, you can create manual testing on Azure DevOps or automated testing with Visual Studio Get Feedback from customer. Do feedback session with the client for each iteration. So what tool do you have for these: Visual Studio unit testing and testing feature Azure DevOps testing feature Microsoft Teams for documenting your meeting You can learn further about the testing here Unit test tools - Visual Studio (Windows) | Microsoft Docs What is Azure Test Plans? Manual, exploratory, and automated test tools. - Azure Test Plans | Microsoft Docs

What You Need to Learn in Game Development with Unity

Playing video game is good, Building video game is great. Building game for today is easier than before. This is because a lot of tool that you can use to build a game. One of the great tool to develop Video Game is Unity. Unity is a video game tool for anyone, starting from personal, small startup, to the enterprise. There are a lot of game made by Unity. On this article, I will focus on the learning syllabus that can be used in higher education to teach them how to develop video game with Unity. So, let's get started.   Understanding that what you need to learn The good news is the Unity already has a lot of material that you can learn. You can visit Learn game development w/ Unity | Courses & tutorials in game design, VR, AR, & Real-time 3D | Unity Learn to learn for free. Beside of that you can create a learning outcome that aligned with Unity namely Unity Certified User: Programmer | Game Development Certification for Students | Unity. There are two main tracks Game artist and Game Developer. As I mentioned before, this article will focus on Game Developer.   Student on bachelor degree or diploma - Unity Certified User Fresh Graduate - Unity Certified Associate Graduate Student - Unity Certified Professional Game Developer - Unity Certified expert   On this article, let's deep dive with Unity Certified User.   What you need to have You need a hardware with at least 8 GB RAM, and 5 GB free storage. I recommend you to use Windows. Windows is the largest ecosystem of gaming right? After that I recommend you to install Unity Hub – Manage Editor versions and collaborate with other creators | Unity. Unity hub is a single installer package that help you to install Unity tools, Visual Studio, and of course the documentation. You can download Visual Studio 2022 IDE - Programming Tool for Software Developers (microsoft.com) and install Unity in the package. You can read my previous tutorial here Video Game Development in .NET Framework (ridilabs.net)   16 Weeks Curriculum If you have a semester, you might have a lot time to deep dive the learning material. 2 weeks for mid-term and final-term assessment Mid-term can be capstone project to develop the game design document (Session 8) Final-term can be presentation project to present their game production (Session 16) 2 weeks for introduction with Unity. On this weeks, the student will learn the basic scripting, project structuring, and working model of game development  (Session 1 and Session 2) 8 week for create with codes courses Create with Code - Unity Learn 4 weeks of capstone project. The student will create their own video game   Let's make it easy by creating a timetable   Week Learning Activity Recommended Delivery 1 Getting started with Video Game Industry Classroom 2 Getting started with Unity Classroom 3 Coding with Unity (Car Movement) Self-Paced 4 Lab Cosing with Unity (Plane Movement) Self-Paced 5 Basic Game Play (Farming Shooter) Self-Paced 6 Sound and Effects (Tample Running Game) Self-Paced 7 Gameplay Mechanics (Soccer Game) Self-Paced 8 User Interface (Puzzle game) Self-Paced 9 Game Ideation Capstone 10 Creating Game Requirement Capstone 11 Creating Game Mission Statement Capstone 12 Creating Game Design Document Capstone 13 Creating the frontend of the game Capstone 14 Creating the backend of the game Capstone 15 Play testing Capstone 16 Demo Presentation Classroom

Video Game Development in .NET Framework

Video game development in Visual Studio Microsoft loves video games. Xbox, Game Pass, and DirectX is a real proof that Microsoft is committed to video game. As a result, we see a lot opportunity to build video game in any platform with Microsoft Based technology. You can see a specific section namely gaming. Microsoft has two categories: Game Development with Unity (C#) and Game Development with C++. It means you can build a video game with managed codes or native C++ codes. Microsoft provides support for Unity (2D/3D), DirectX (2D/3D), Unreal 3D, and Cocos2D. it's more than enough for developing a game. Additional Video Game Development tools If you feel you need more video game development tools you can visit these links MonoGame. It's a successor of XNA Framework. MonoGame provides multi-platform development for video game. You can visit Getting Started | MonoGame Documentation to learn more about MonoGame. What I love from MonoGame is well integrated with Visual Studio. However, it basically collection of library so you need to do extra effort to build game and contents. GoDot. It's a new game engine. GoDot provides project manager and editor for game development. You can learn more here Godot Docs – 3.3 branch — Godot Engine (stable) documentation in English WaveEngine. It's a professional game engine and animation based on .NET 5. You can develop AR and MR video games with WaveEngine. You can see some demos here GitHub - WaveEngine/Samples: This repository contains all the official samples of WaveEngine. Stride. It is awesome game engine with support for multi deployment and C# 8.0 supports. You can learn more at Stride documentation | Stride (stride3d.net) FlatRedBall. It a good game engine for building 2D videos games. You can learn more about Tutorials – FlatRedBall   medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

Deploying .NET CMS Umbraco in AWS

Background Our customer has AWS Subscription, and they want to deploy our .NET Solutions to the AWS. This article will give you step by step how to deploy the Umbraco Solution into the AWS. Step By Step Installing AWS Toolkit Visit the AWS toolkit page AWS Toolkit for Visual Studio (amazon.com) Download and install the AWS toolkit Installing Umbraco Create a new project in Visual Studio Select asp.net web application (.NET framework) Choose the default configuration and select empty web templates Don't check any references Click Manage Nuget Package And select Umbraco CMS Click install Build the solution Deploying to AWS Go to your AWS console Select IAM Create user with Programmatic Access and as Administrator User access key and secret key go to create profile in Getting Started page OR AWS Explorer Right click on the Project and Deploy to elastic beanstalk Create a new profile if you don't have one Filling the profile and click deploy. Please wait status until environment is healthy medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

Developing OData in Visual Studio

When I need OData Your customer asks you to provide web service that can expose their own data that already in the information system. They want to access the data through Excel so that they can perform freestyle analytics. OData is a standard that help the developer to create an endpoint service that can be consumed through productivity tools or app like an Excel. On this article, we will discuss how to develop OData easily with Visual Studio. What is OData OData is a web services that exposed a data. It just like RSS Feed or any API that exposed data. OData can be built by following Data specification. You can read the specification here OData - the Best Way to REST. OData is not only display the data in readable format but also help you to read the data with the elegant way through query and REST. How to develop OData You can follow these steps: Creating API based on REST style. You should create Web API based on your data. You can visit Tutorial: Create a web API with ASP.NET Core | Microsoft Docs or Get Started with ASP.NET Web API 2 (C#) - ASP.NET 4.x | Microsoft Docs. If you are not developer, I recommend you use ready to use software like Microsoft SQL Server integration tools - import, export, sync - Skyvia. Consuming with REST style. You can grab the OData Client Generator for C# OData Client Code Generation Tool - OData | Microsoft Docs Learn how to query, add, and edit data. You can visit this tutorial Understand OData in 6 steps · OData - the Best Way to REST. You can visit Getting Started · OData - the Best Way to REST for the tutorial. medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299"; How can Visual Studio Help? Visual Studio 2019 or later can help you develop OData easily based on several templates and packages. Extension. You can download extension that help you create OData service. I recommend you install one of these extension Nuget. You can download the package to help your codes right away based on the tutorial. You will find the OData package here NuGet Gallery | OData Hopefully this article will help you to crate OData services for your application. Enjoy your weekend.   medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

Accelerating .NET development in AWS

.NET is a first-class citizen in Microsoft Azure. However, you might have a customer who want to develop with .NET but use their existing Amazon AWS infrastructure. Is it hard to start with non-Microsoft environment? This article shows my experience when having Microsoft .NET solution but hosted in AWS. Terminology between AWS and Azure As a developer, we might think that is a solution in AWS does not exist in Azure (or vice versa). The Good News are cloud computing environment in Azure and AWS have similar terminology. Is just like buying a coke with brand Coca Cola vs Pepsi, you will have similar terminology Amazon EC2 vs Azure VM S3 vs Azure Storage Amazon RDS vs Azure SQL Dynamo DB vs Cosmos DB Elastic Beanstalk vs App Services medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299"; You can find a long list of this comparison here. In conclusion, you do not need to worry that your solution is not exist in AWS. .NET Support for Developer Amazon and Microsoft are open platform cloud computing environment. Therefore, you will find the .NET solution cam be deployed there through IaaS or PaaS environment. However, if you want to develop the .NET solution that utilize the AWS services (i.e. S3) you can download AWS Toolkit for Visual Studio. This is a tool that help you connect, manage, and consume the AWS infrastructure directly in your Visual Studio. You can download the toolkit for Visual Studio 2008, 2010, 2012, 2013, 2015, 2017, and 2019 here. AWS Toolkit for Visual Studio Codes. If you are using Visual Studio Codes the AWS toolkit is ready for you. Just search the AWS toolkit and you will find the way You can get see the getting started video here Comparing the Cost between Azure and AWS If your customer, ask you which one is better. You will be said that solution work great. In term of cost, both services are equal. I am hosting a .NET solution in EC2 instance with 4GB RAM, 2 VCPU, and 100 GB HDD, and Windows. I will get I am hosting a .NET solution in Azure VM with similar spec, I will get You can compare between the solution by visiting: Amazon AWS calculator Azure Pricing Calculator So which one do you choose? I recommend you play it around and decide. If your customer requests are AWS, it is a good time to install toolkit! See you next time! medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

Indonesian Tutorial for Unity and Visual Studio

Building Game is Fun! Video Game is fun, building game is more fun and challenging. On this weekend, I create five videos related with the beginner tutorial in Unity 2020 and Visual Studio. You can learn for free in #VSID YouTube Channel. On the first season, we have five videos to introduce you the Unity platform, Visual Studio, and C# scripting. Environment configuration. We will learn about how to setup Visual Studio 2019 and Unity 2020 Basic Scripting in C#. On this video, we will learn how to attach script in Unity using a C# programming language Components and Assets. On this video, we will discuss how to become productive by understanding the components and assets in Unity Timer Programming. On this video, we discuss how to create the timer that can be useful for many games. Triggers and Events. On this video, we will discuss how to codes about triggers and events interaction between objects. For example, our player reach the coins and get a point. medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299"; You can see the Indonesian video on this playlist See you in the season 2! medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

Three Steps to Setup Virtual Labs

Virtual Labs Decision Model Although virtual lab is promising to deliver the hands-on experience to the student in massive and simple way. Virtual Labs is not a silver bullet for any situation. Virtual Lab can be done if There is no need with special hardware There is no urgent need for specific physical skills / behavior The hardware can be replaced by the simulator The software can be obtained by the student / the organization The safety and health environment protocol can be prepared and followed by the student Virtual Labs Execution Model Whether you are creating a lab for DevOps, professional development for your employer, or managing classroom / school lab for course. Virtual Lab might be an answer for delivering a practice experience to the students / participants. Today I will discuss how to setup the virtual lab by using Cloud Computing technology. There are two main scenarios for virtual labs. The scenario can be blended for specific need. // Self-Paced Virtual Lab. This is asynchronous model when student can learn and practice with their own hardware or organization hardware. The idea of this virtual lab is by giving the student guidance and the student can do hands-on-lab based on their prime time. Remote Learning Virtual Lab. This is synchronous model when student can learn and practice with the assistance of a mentor / facilitator. The idea of this virtual lab is by giving student virtual classroom and assistance during the hands-on-lab. Virtual Labs Infrastructure Option There are two options when preparing the infrastructure Bring your own device (BYOD) option. The student will prepare the hardware, the software, and the connection itself. The organization needs to prepare a guide / hands-on-lab module for the lab. This can be done when the software / hardware can be obtained easily (consumer computing platform) Virtualization option. The organization will prepare the computing infrastructure and the simulator. The organization manages many aspect of the infrastructure the student only need to prepare the sufficient internet connection. Virtual Lab Setup The virtual lab can be setup based on the three previous steps above. To understand more, let's do some virtual lab implementation sample. Virtual Labs Implementation Sample Let us Imagine Contoso University will hold a virtual lab session for their object-oriented programming lab works (OOP Lab works). Virtual Labs Decision Model Yes, the virtual lab can be implemented because OOP Lab works does not need special hardware OOP Lab works only need computer and IDE (Integrated development environment) OOP Lab works safety and health environment can be followed by student Virtual Labs Execution Model The OOP lab work has 6 units module, 5 practice sessions and one capstone project session. 5 units will follow the remote learning virtual labs, and one capstone unit will follow self-paced virtual lab. Virtual Labs Infrastructure Option After capturing the student hardware capability, the Contoso University choose the virtualization option. This is to make sure that every student will help similar experience with hardware and software configuration. Virtual Lab Setup On this setup, the organization already subscribe two cloud services Office 365 subscriptions for education. It is a free subscription from Microsoft Cloud Computing Subscription based on Microsoft Azure. You can start free here Hardware Configuration The organization creates the Azure Lab Services by following these steps Campus admin creates the lab account Instructor / facilitator creates the OOP lab here Students will connect to the lab Software Configuration Microsoft Teams is created by following these steps The hands-on lab module is created and deployed in Microsoft Teams The assessment is created and deployed in Microsoft Teams Assistant is enrolled to the Teams Channel is configured and the students are enrolled The VM is created by following Azure VM with Visual Studio 2019 on it. The VM contains Microsoft Teams application from Office 365 subscription Having idea to implement Virtual Lab for any other scenario, please share on the comment below. //

5 Tips to improve your codes

On this video, i will share about how to improve your codes after your first iteration. This video will discuss what you should prepare, engage, and solve in the codes development world. After seeing this video you will understand how to plan, prepare, and develop your own codes You can visit the useful link of this video below  //

Object Oriented Analysis and Design with Visual Studio

Today, i created a video about object oriented and analysis design overview. This document will discuss how to do software development by following OOAD approach. After watching this video, you will understand how to Create use case Create domain model Create class diagram  Create codes based on your class diagram Enjoy! medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

Topics Highlights

About @ridife

This blog will be dedicated to integrate a knowledge between academic and industry need in the Software Engineering, DevOps, Cloud Computing and Microsoft 365 platform. Enjoy this blog and let's get in touch in any social media.

Xbox

Month List

Visitor