Course Learning Outcomes
- Articulate the components of the .NET developer ecosystem.
- Design and develop .NET applications.
- Demonstrate the skills of a productive team member (such as solving problems, collaborating with others, communicating clearly, fulfilling assignments, and meeting deadlines).
🗝️.NET Ecosystem
The Microsoft .NET developer ecosystem encompasses a range of tools, frameworks, languages, libraries, and community resources that developers use to build software applications using the .NET platform.
To articulate the .NET developer ecosystem means to provide a clear and comprehensive description of each part, explaining how they contribute to the overall .NET developer ecosystem and how developers can leverage them in their projects.
Key Components
- .NET and .NET Framework: .NET (formerly .NET Core) is the modern, open-source, cross-platform runtime and SDK used for new development. .NET Framework is the original, Windows-only implementation that is still maintained for existing applications.
- Programming Languages: .NET supports several programming languages, with C# being the most widely used. F# and Visual Basic are also supported. All of them compile to a common intermediate language that runs on the .NET runtime.
-
Development Tools: Visual Studio Code with the C# Dev Kit (used in this
course) is a lightweight, cross-platform editor. Visual Studio is a full-featured IDE for
Windows, and JetBrains Rider is a cross-platform alternative. The .NET command line
interface (
dotnet) works with any editor. - NuGet: NuGet is a package manager for .NET that allows developers to easily integrate third-party libraries and tools into their projects.
- ASP.NET Core: The modern, cross-platform framework for building web applications and services, including MVC, Razor Pages, Web APIs, and Blazor. It replaced the original, Windows-only ASP.NET.
- Entity Framework Core: A widely used Object-Relational Mapping (ORM) framework for database access in .NET applications.
- .NET MAUI: A framework for building cross-platform mobile and desktop applications using .NET and C#. It replaced Xamarin, which reached end of support in May 2024.
- Community and Documentation: The .NET community is active and supportive. Online forums, documentation, and community-driven resources contribute to the ecosystem's vibrancy.
- Blazor: A component-based framework for building interactive web UIs using C# instead of JavaScript. A Blazor Web App can render components on the server (static or interactive server rendering) or in the browser using WebAssembly.
🗝️Design and Develop .NET Apps
Designing and developing .NET applications involves creating software solutions using the .NET platform and related technologies. Key components of this outcome may include:
- Requirements Gathering: Researching and understanding the requirements of the application involves identifying the users, features, and functionality of the application and working with stakeholders to understand the goals of the project and documenting them in a clear and comprehensive manner.
- Design: Plan the application's architecture, data model, and user interface before writing code, including how pages, components, and data services fit together.
- Technology Stack: Select the appropriate technology stack in which to develop the design given the requirements and audience. In this course, the stack selection is all within the .NET ecosystem.
- Development Environment: Set up the development environment. Typically, this involves using an integrated development environment (IDE) such as Visual Studio or Visual Studio Code. The development operation includes the methods, tools, and services needed to build, test, and deploy the application.
- Development: Write the code for the application. This includes implementing the design, writing, refactoring, optimizing, testing, and debugging the code in the application.
- Database Integration: If the application requires data storage, integrate a database using technologies like Entity Framework or other data access libraries compatible with .NET.
- User Interface (UI) Design: Design the user interface (UI) of the application. This includes the visual design of the application, evaluating the user experience (UX), and assessing the accessibility of the application.
- Deployment: Deploy the application to a production environment. This includes setting up the production environment, configuring the application, and deploying the application to the production environment.
- Documentation: Create documentation for the application. This includes user manuals, developer documentation, and any other relevant information that helps users and future developers understand the application.
Other considerations include security, performance, scalability, maintainability, and planning for updates.
🗝️Collaboration
Collaboration is an essential skill for software developers. This outcome involves demonstrating the skills of a productive team member, such as:
- Showing up on time to meetings and meeting deadlines.
- Communicating clearly and openly with team members.
- Sharing ideas, updates, and issues to avoid misunderstandings.
- Clearly defining roles and responsibilities of each team member.
- Fulfilling tasks and assignments.
- Working with others to solve problems.
- Celebrating and acknowledging successes.