This article is going with post for Azure Global Bootcamp 2023 that held in Cilacap Indonesia. On this session, I shared about how to use AI in Visual Studio 2022 and Visual Studio Codes, you can grab and see the decks on this post.
If you want to join my live session, you can join at https://bit.ly/globalazure2023 , see you there
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
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 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";
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";
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";
.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";
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";
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.
//
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
//