KEMBAR78
Framework | PDF | Mobile App | Cross Platform Software
0% found this document useful (0 votes)
29 views9 pages

Framework

The document provides a classification and comparison of popular programming languages, focusing on their frameworks, UI options, and architectural patterns. It also offers a breakdown of C#/.NET technologies, including MAUI, Blazor, ASP.NET Core, EF Core, and Azure, detailing their use cases and output types. Additionally, it explains the structure and execution process of .NET applications, emphasizing the roles of .exe and .dll files.

Uploaded by

nawivac624
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views9 pages

Framework

The document provides a classification and comparison of popular programming languages, focusing on their frameworks, UI options, and architectural patterns. It also offers a breakdown of C#/.NET technologies, including MAUI, Blazor, ASP.NET Core, EF Core, and Azure, detailing their use cases and output types. Additionally, it explains the structure and execution process of .NET applications, emphasizing the roles of .exe and .dll files.

Uploaded by

nawivac624
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Great idea!

Let's classify and compare popular programming languages along similar lines —
focusing on:

 Language

 Primary runtime/platform/framework

 Popular UI options

 Common architectural pattern

This will help you understand how C#/.NET + MVVM fits into the broader ecosystem.

✅ Classification: C#, C++, Python, Java, JavaScript, Swift

Language Framework/Runtime Common UI Frameworks Common Architecture

WinForms, WPF, MAUI,


C# .NET (Core/Framework) MVVM, MVP
Blazor

C++ Native, Qt, MFC Qt, wxWidgets, ImGui, MFC MVC, custom, event-driven

Python CPython, PyQt, Tkinter Tkinter, PyQt, Kivy, PySide MVC, MVP, procedural

MVC, MVVM (Android Jetpack),


Java JVM, JavaFX, Swing JavaFX, Swing, Android UI
MVP

JavaScript Node.js, browser React, Angular, Vue, Electron MVVM (Vue), MVC (React), Flux

Swift SwiftUI, Cocoa Touch SwiftUI, UIKit MVVM, MVC (iOS classic)

🔍 Breakdown: C# vs Others

🔹 C#

 Platform: .NET (Windows, cross-platform via .NET Core/MAUI)

 UI Frameworks: WPF (desktop), MAUI (cross-platform), WinForms, Blazor (web)

 Best Suited Architecture: MVVM (especially for XAML-based UIs)

🔹 C++

 UI Frameworks: Qt (cross-platform), MFC (Windows-only), ImGui (game/dev tools)

 Architecture: Often manual or lightweight patterns (MVC in Qt)

 Not strongly architectural — flexibility leads to custom patterns

🔹 Python

 UI Frameworks: Tkinter (built-in), PyQt/PySide (Qt bindings), Kivy (mobile/desktop)

 Architecture: Often MVC-ish in PyQt/Kivy, but can be very procedural or script-like

 Weak native UI story — often used for backend, data science, or CLI tools
🔹 Java

 UI Frameworks: JavaFX (modern), Swing (older), Android (Jetpack Compose, XML)

 Architecture: MVC in desktop, MVVM/MVP in Android

 Well-structured, mature tooling, verbose

🔹 JavaScript

 UI Frameworks: React (component-based), Angular (MVC), Vue (MVVM), Electron (desktop


apps with web tech)

 Architecture: Component-driven, MVVM (Vue), Flux/Redux (React)

 Modern web is very architecture-focused

🔹 Swift

 UI Frameworks: SwiftUI (declarative), UIKit (imperative)

 Architecture: MVVM with SwiftUI, MVC with UIKit

 Strong MVVM support with new tooling and declarative UI

🧠 Summary View

Platform/Language Native UI Stack Ideal Pattern Notes

C#/.NET WPF, MAUI, WinForms MVVM Toolkit-supported, strong XAML binding

C++ Qt, MFC Custom/MVC Powerful, flexible, but manual

Python PyQt, Tkinter, Kivy Procedural/MVC Easy to start, weak tooling for UI

Java JavaFX, Android MVC/MVVM Verbose, very structured

JavaScript React, Vue, Angular MVVM/MVC Component- and state-driven

Swift SwiftUI, UIKit MVVM/MVC Declarative with SwiftUI

Let me know if you want this visualized as a table/image or tailored to a specific platform like mobile
or embedded systems.

Topics to master
Absolutely — since you're already familiar with C# and .NET, here's a clear breakdown of those
modern .NET technologies you mentioned, with practical explanations and when to use them:

🔷 1. MAUI – Cross-Platform UI for Mobile/Desktop

MAUI = .NET Multi-platform App UI


Build native apps for:

 Windows

 📱 Android

 🍎 iOS

 💻 macOS
All from a single C# codebase and XAML UI.

✅ Use MAUI When:

 You want to build mobile + desktop apps with shared code.

 You’re familiar with WPF or XAML (because MAUI uses similar syntax).

 You want one .NET project to target multiple platforms.

🔷 2. Blazor – Web Apps with C# Instead of JavaScript

Blazor = Build interactive web UIs using C# and Razor instead of JS.

Blazor Options:

Type Description

Blazor Server Runs on server, sends UI updates via SignalR

Blazor WebAssembly (WASM) Runs entirely in the browser using WebAssembly

Blazor Hybrid (with MAUI) Web UI inside native MAUI apps

✅ Use Blazor When:

 You want to build web apps using C# instead of JavaScript.

 You're building internal tools or line-of-business apps.

 You're already comfortable with Razor Pages / MVC-style syntax.

🔷 3. ASP.NET Core – Build Web APIs & Web Apps

ASP.NET Core is the modern way to build:

 ✅ Web APIs (for mobile/web apps)

 ✅ Web apps (with Razor Pages, MVC, or Blazor)


 ✅ Microservices (via gRPC or REST)

 ✅ Real-time apps (using SignalR)

✅ Use ASP.NET Core When:

 You’re building backend services, web APIs, or full web apps.

 You want high performance, modular, and cross-platform apps.

🔷 4. EF Core – Entity Framework Core (Data Access)

EF Core is a modern ORM (Object Relational Mapper) for .NET.

 Map your C# classes to a database (SQL Server, SQLite, PostgreSQL, etc.)

 Avoid writing raw SQL

 Supports LINQ, Migrations, Change Tracking

✅ Use EF Core When:

 You need to access a relational database.

 You prefer strongly typed data access.

 You want to avoid boilerplate data code.

🔷 5. Azure – Cloud Platform by Microsoft

Microsoft Azure lets you deploy and scale:

 Web apps

 APIs

 Databases

 Functions (serverless)

 Containers

 CI/CD pipelines

✅ Use Azure When:

 You want to host your .NET app in the cloud.

 You want to use cloud databases, queues, storage, etc.

 You want to scale your app without managing servers.

🔷 6. Unit Testing – Ensure Code Quality

In .NET, you can write tests using:


 xUnit (most popular)

 NUnit

 MSTest

Also supported:

 Mocking frameworks (Moq)

 Test runners in Visual Studio, CLI

✅ Use Unit Testing When:

 You want confidence in your code

 You're working on critical logic, services, APIs

🔷 7. AOT – Ahead-of-Time Compilation in .NET

Introduced in .NET 7 and improved in .NET 8

AOT compiles your .NET app to native machine code at build time (not at runtime).

✅ Use AOT When:

 You need faster startup

 You want to deploy lightweight, native-like apps (e.g., CLI tools, MAUI apps)

 You're targeting low-resource environments

🧭 TL;DR – What to Learn When

Goal Tool/Tech to Focus On

Build mobile & desktop apps ✅ .NET MAUI

Build web frontends in C# ✅ Blazor

Build web APIs/backend ✅ ASP.NET Core

Work with databases ✅ EF Core

Host your app or scale in cloud ✅ Azure

Write clean, tested code ✅ Unit Testing (xUnit)

Optimize performance/startup ✅ AOT in .NET 8

Let me know which area you’re most curious about next — I can give you a tailored roadmap or
project ideas!
Great question — and very practical! Let's break it down by project type and what kind of file or
output you get after building it in .NET.

🔧 Output Types by Project

Project Type Output File Description

Class Library Contains reusable code (no entry


.dll
(.NET) point)

Console App
.exe (Windows) / .dll (cross-platform) Self-contained executable or app
(.NET)

Platform-specific bundle:• Windows Native app package for each


.NET MAUI App
→ .exe• Android → .apk• iOS → .app / .ipa platform

ASP.NET Core Web Hosted web app, run with dotnet


.dll + config/wwwroot
App yourapp.dll or published to a server

Blazor Runs in browser, no .exe; served via


.html, .wasm, .dll
WebAssembly web server

Web app hosted by server, behaves


Blazor Server .dll
like ASP.NET Core

Windows
.exe + .dll Native desktop app (Windows only)
Forms/WPF

Cloud function deployed to Azure,


Azure Function .dll
no executable

🔍 Examples with More Detail

🔹 1. Class Library

 Output: MyLibrary.dll

 No entry point — used by other apps via reference

🔹 2. Console App

 Output: MyApp.dll (cross-platform)

 Or MyApp.exe if published for Windows

 Can use:

 dotnet MyApp.dll

🔹 3. .NET MAUI
 Multi-platform output:

o Windows → YourApp.exe in bin\Windows

o 📱 Android → .apk

o 🍎 iOS → .app (simulator) or .ipa (device)

 Uses platform-specific SDKs under the hood

🔹 4. ASP.NET Core / Blazor Server

 Output: YourApp.dll + static files

 Run with:

 dotnet YourApp.dll

 Or host with IIS, Nginx, Azure App Service, etc.

🔹 5. Blazor WebAssembly

 Output is web-only:

o index.html

o .dll files (your app and dependencies)

o .wasm files (runtime)

 No .exe — runs in browser via WebAssembly

🔹 6. Azure Function

 Compiles to .dll

 Deployed to Azure Function runtime

 Invoked via trigger (HTTP, timer, queue, etc.)

🧠 Summary Table

Project Type Output Runs Where

Class Library .dll Used by other apps

Console App .exe / .dll Terminal

ASP.NET Core .dll Web server / cloud

Blazor WASM .html + .wasm Browser


Project Type Output Runs Where

Blazor Server .dll Web server

.NET MAUI .exe, .apk, .ipa Device/desktop

WPF / WinForms .exe Windows only

Azure Function .dll Azure runtime

Let me know if you want to try building and running a specific one — I can guide you step-by-step
with the output files!

✅ Yes — you're absolutely right, and that’s a great way to understand it.

Let’s walk through it step by step:

🧭 What Happens When You Run an .exe in .NET (Non-Single File)?

Let's say you have this structure:

/bin/Release/net8.0/

├── MyApp.exe 🟢 ← You double-click this

├── MyApp.dll 📦 Your compiled code (Main method)

├── Newtonsoft.Json.dll 📦 Dependency library

├── SomeLib.dll 📦 Another library

├── runtimeconfig.json ⚙️Runtime settings

├── deps.json 📦 Dependency tree

✅ When You Launch MyApp.exe:

1. The OS or dotnet CLI runs the host executable (MyApp.exe)

2. The app:

o Loads .dll files listed in deps.json

o Initializes the .NET runtime (based on runtimeconfig.json)

o Looks for the entry point (Main() in MyApp.dll)

3. The app runs and uses all referenced .dlls at runtime

It's like a manager (.exe) telling .NET:


“Here’s the setup — load this app, get these dependencies, go!”
📌 App Launcher vs Shortcut

Term What It Is Role

.exe Executable file Actual program runner

Shortcut (.lnk) Windows desktop/start menu link Just points to .exe

DLLs & configs Dependencies loaded dynamically App won't work without them (unless single-file)

So:

 The .exe is the real runner

 The shortcut (.lnk) is just a convenient pointer to it

🧩 Why Not Just One File Then?

Because by default:

 Modular .dll structure keeps builds smaller, builds faster

 Easier to update just one library

 Faster dev/debug cycles

But for deployment, many teams use:

 ✅ Single-file publish

 ✅ Self-contained publish

 ✅ Trimming (to reduce unused code)

🧠 Final Analogy

Think of .exe like a movie director, and .dlls are actors and tools.
The .exe says: “Lights, camera, action! Now bring in these actors (DLLs) to perform.”

If you're making a production for the public (users), you might want to package the entire movie into
one file — that’s the single-file executable approach.

Let me know if you’d like to try publishing a real example as a single .exe or explore .NET trimming for
size optimization!

You might also like