So putting all the XAML stuff to one side (sure that can be web but it is usually referred to as “XAML”) this is an attempt to quantify what it might mean to be a C#, ASP.Net developer today – this is actually an impossible job as these requirements are specific to individual roles and are also in a constant state of flux with prevailing technology changes! (Click on the headings for wider definitions from Wikipedia)
The following five items are probably the “pillars” in terms of requirements to be an Asp.Net developer. In addition a rudimentary understanding of a back end database such as SQL SERVER is a common requirement.
“C# is a general-purpose, object-oriented programming language. Its development team is led by Anders Hejlsberg. The most recent version is C# 6.0 which was released in 2015”
“ASP.NET is an open-source server-side web application framework designed for web development to produce dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, web applications and web services.”
MVC (Model-View-Controller) is a software architectural pattern for implementing user interfaces on computers. It divides a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user.
What else am I likely to be expected to know about?
Cascading Style Sheets is a style sheet language used for describing the presentation of a document written in a mark-up language most often used to set the visual style of web pages.
ADO.NET is a data access technology from the Microsoft .NET Framework which provides communication between relational and non-relational systems through a common set of components.
NB The Entity Framework and Linq are related aspects of this framework and a basic understanding of operation is a common requirement for jobs requiring MVC.
Dependency injection is a technique whereby one object supplies the dependencies of another object. A dependency is an object that can be used (a service). An injection is the passing of a dependency to a dependent object (a client) that would use it. The service is made part of the client’s state. Passing the service to the client, rather than allowing a client to build or find the service, is the fundamental requirement of the pattern.
The intent behind dependency injection is to decouple objects to the extent that no client code has to be changed simply because an object it depends on needs to be changed to a different one.
Which tools am I likely to utilise?
Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs for all common platforms, as well as web sites, web applications and web services.
Powershell is a task automation and configuration management framework from Microsoft, consisting of a command-line shell and associated scripting language built on the .NET Framework. It was made open-source and cross-platform in 2016.
From a developer standpoint it can be useful in many common scenarios:
- static analysis
- interfacing with C#
- embedding PowerShell applications
- working with XML and JSON
- interfacing with Excel
GitHub is a web-based Git repository hosting service. It offers all of the distributed version control and source code management (SCM) functionality of Git (command line tool) as well as adding its own features.
Each role you undertake is likely to have it’s own preferred libraries and methodologies. Some of the more common requirements are: