Web Technology
Framework
This website was developed with the open-source framework ASP.NET Core MVC from Microsoft. "MVC" stands for a design pattern encompassing Model, View and Controller. Each of these has a particular responsibility.
Model: classes that represent the data entities and view models used on the website. This is where the business logic resides.
View: these are so called Razor files that render data in view models into HTML web pages, as instructed by Controller.
Controller: classes that execute code from the HTTP request to the web server. Controller handles all communication
between Model and View.
The MVC pattern allows to create apps that are more easy to test and update than traditional monolithic apps. Separation of concerns
ensures that changes in one area can be accomplished without affecting others.
Data storage
This website uses two data structures:
- SQL Database for persistent storage of articles, publications etc.
- developed as a local database
- migrated to a server on the hosting entity
- List<T> class for non-persistent storage of calculations
- iteration by using the collection interface IEnumerable
- very efficient enumeration of calculation runs
- session-based intermittent storage
Frontend
This website uses the following UI tools:
- HTML5
- Cascading Style Sheets (CSS)
- jQuery ajax
- Bootstrap
- a little bit of JavaScript
Resilience against wrong user input (unintended or malicious)
This website uses both client- and server-side input validation:
- JavaScript scripts including regex on the FE
- .NET decorator including regex in field definitions of the BE
Deployment and hosting
Frederik Brügmann - Software Solutions is my preferred partner to take care of
- deployment to production
- domain registration
- email-server management
- hosting
- maintenance (patching)
I put the publishing and maintenance tasks trustfully into the hands of a professional like Frederik.
When publishing a website, there are several tasks to be accomplished:
- Cookies: they store user preferences and enhance the user experience by making websites more personalized and easier to navigate. Regulations like GDPR require websites to obtain user consent for non-essential cookies, ensuring transparency and user control over personal data.
- Security: SSL/TLS certificates encrypt data transmitted between the user’s browser and the server, protecting sensitive information from interception. A valid certificate indicates that a website is secure, building trust with users and improving search engine rankings. Proper session management prevents unauthorized access and protects against attacks like session hijacking.
- Privacy Management: Implementing robust privacy policies and practices ensures that user data is handled responsibly and securely. Adhering to privacy laws and regulations helps avoid legal penalties and builds user trust by demonstrating a commitment to protecting their personal information.
- Impressum (imprint) requirements: In Germany, websites are required to include an “Impressum” (imprint) which provides essential contact information. This is mandated by the German Telemedia Act (TMG).
- Maintenance: Regularly applying updates and patches to the .NET framework, the database software and related applications to protect against vulnerabilities is crucial. Backups should be maintained in two independent locations.