Few things to learn in .Net technology
Few things to learn in .Net technology
-
Databases
1.1. Tables/Columns
1.2. Relationships
1.3. Keys
1.3.1. Primary Keys
1.3.2. Foreign Keys
1.4. Structured Query Language (SQL)
1.4.1. Syntax
1.4.1.1. Formatting of SQL
1.4.1.2. Naming Conventions
1.4.1.3. Use of CASE
1.4.2. SELECT/INSERT/UPDATE/DELETE
1.4.3. INNER JOIN
1.4.4. LEFT/RIGHT/FULL OUTER JOIN
1.4.5. CROSS JOIN
1.5. Aggregation
1.5.1. GROUP BY
1.5.2. CUBE
1.5.3. WITH ROLLUP
1.5.4. GROUP BY GROUPING SETS
1.5.5. SUM/COUNT/MIN/MAX/AVG
1.6. Ranking Functions
1.6.1. ROW_NUMBER/RANK/DENSE_RANK() OVER (PARTITION BY X ORDER BY Y)
1.6.2. COUNT/SUM/MIN/MAX/AVG(*) OVER (PARTITION BY X)
1.7. Views
1.7.1. What are they?
1.7.2. Pros/Cons
1.7.3. Views vs Indexed Views (aka Persisted Views)
1.7.4. Use of the “WITH SCHEMABINDING” clause
1.7.5. Variance in how different editions of SQL Server treat views
1.8. Stored Procedures
1.8.1. What are they?
1.8.2. Pros/Cons of stored procedures over direct database access
1.8.3. What responsibilities should be the stored procedures have (i.e. not complex business logic?)
1.8.4. Use of return values and output parameters
1.9. User Defined Functions (UDFs)
1.9.1. What are they?
1.9.2. Pros/Cons of use in various scenarious (e.g. NEVER in select statements)
1.9.3. Use of the “WITH SCHEMABINDING” clause
1.9.4. CLR UDFs
1.10. Indexes
1.10.1. What are they ?
1.10.2. Pros/Cons in various scenarios (i.e. SELECT vs INSERT/UPDATE/DELETE)
1.10.3. Various Types of index
1.10.4. Fill Factors
1.11. Constraints
1.11.1.1. Check Constraints
1.11.1.2. Unique Constraints
1.12. Triggers
1.12.1. What are they?
1.12.2. Various types (DML vs DDL)
1.12.3. Why you should never use them!
1.13. Security
1.13.1. Logins
1.13.2. Users
1.13.3. Roles
1.13.4. Schemas
1.13.5. Permissions
1.14. Design
1.14.1. Normalisation
1.14.2. Choice of Primary Keys
1.14.3. Storage of unstructured data (XML, VARBINARY(MAX) etc)
1.14.4. ROWVERSION columns for optimistic concurrency
1.14.5. ROWGUID columns for replication
1.15. Best Practices
1.15.1. Use of sub queries/functions vs. JOINs vs. Ranking Functions
1.15.2. Use of SELECT *
1.15.3. DML Triggers Vs. OUTPUT clause
1.15.4. When to use temporary tables, table variables and Common Table Expressions (CTEs)
2. .NET
2.1. What is it?
2.2. Languages
2.3. Versions
2.4. CLR + versions
2.5. Important Framework Namespaces/Classes (Foundation exam stuff)
3. C#
3.1. Object Oriented Programming (OOP)
3.1.1. Inheritance
3.1.2. Polymorphism
3.1.3. Interfaces
3.1.4. Abstract Classes
3.1.5. Partial Classes
3.2. Syntax
3.2.1. Formatting
3.2.2. Comments
3.2.3. XML Comments
3.2.4. User of CASE
3.2.5. Namespaces
3.2.6. Classes/Structs
3.2.7. Instance/Static Properties
3.2.8. Constructors
3.2.9. Instance/Static Methods
3.2.10. Delegates
3.2.11. Events
3.2.12. Lambda syntax
3.2.13. LInQ syntax
3.3. Naming conventions
3.3.1. Standards document
3.4. Configuration
3.4.1. Purpose of app.config/web.config files
3.4.2. How to read configuration files code
3.4.3. Encrypting sensitive sections of the config files
3.5. Concurrency
3.5.1. What are threads?
3.5.2. Thread safety
3.5.3. Thread Pool
3.5.4. Task Parallel Library (TPL)
4. ADO.NET
4.1. What is it?
4.2. How to connect to a database using SqlClient and/or ODBC connectors
4.3. How to send a command to the database
4.4. How to read the returned results
4.4.1. DataReader
4.4.2. DataTable
4.4.3. DataSet
4.4.4. Output Parameters
4.4.5. Return Values
5. Windows Services
5.1. What are they?
5.2. When should they be used in a solution?
6. Windows Forms/WPF
6.1. What are they?
6.2. For what sort of projects should you recommend a Forms/WPF solution?
7. ASP.NET
7.1. What is it?
7.2. For what sort of projects should you recommend an ASP.NET solution?
7.3. Web Site vs Web Application
7.4. Pages
7.4.1. How to write an aspx page
7.4.2. What goes into an aspx page and what doesn’t (e.g. presentation)
7.4.3. How to link to a code behind file
7.4.4. Master Pages
7.4.5. ASCX controls
7.5. ASP.NET page lifecycle
7.5.1. Init
7.5.2. Load State
7.5.3. Process Post Data
7.5.4. Load
7.5.5. 2nd Process Post Data
7.5.6. Change Events
7.5.7. Postback Events
7.5.8. PreRender
7.5.9. Render
7.5.10. Unload
7.5.11. How master pages/controls fit into this lifecycle
7.6. Cascading Style Sheets (CSS)
7.6.1. What is CSS
7.6.2. Never put presentation code in the aspx pages
7.6.3. Which versions of CSS are supported by which browsers
7.6.4. What are the new CSS 3.0 commands available (e.g. FlexBox)
8. Entity Framework
8.1. What is it?
8.2. Logical Model Vs Physical Model
8.3. Entity SQL
8.4. What is the role of the ObjectContext?
8.5. How to call stored procedures etc
8.6. In what sort of system architectures is EF particularly useful
9. Windows Workflow Foundation (WF)
9.1. What is it?
9.2. Pros/Cons over “hard coded” business processes
9.3. Persistence/Inflation of in-progress workflows
10. Business Objects
10.1. What is a business object? (i.e. encapsulation of behaviour… not data!)
10.2. Pros/Cons of using business objects
10.3. Behaviours that a business object contain (business rules validation, persistence, rollback etc.)
10.4. Behaviours that a business object NOT contain (processes spanning multiple business objects)
10.5. CSLA Framework (C# 2008 Business Objects)
11. Systems Design
11.1. Standard n-Tier architecture
11.1.1. UI
11.1.2. Workflow Process Layer
11.1.3. Business Layer
11.1.4. Data Layer
11.1.5. Database
11.2. Patterns
11.2.1. Object Creation Patterns
11.2.1.1. Factory
11.2.1.2. Singleton/Multiton
11.2.1.3. Prototype
11.2.2. Structural Patterns
11.2.2.1. Decorator
11.2.2.2. Adapter
11.2.2.3. Bridge
11.2.2.4. Facade
11.2.3. Behavioural Patterns
11.2.3.1. Producer/Consumer (aka Observer)
11.2.3.2. Iterator
11.2.3.3. Strategy
11.2.3.4. Command
11.2.3.5. Mediator
11.2.3.6. Unit of Work
12. Algorithm Design
12.1. Check if there’s an existing algorithm that does what you need (either in the Framework, your solution or online)
12.2. Design your algorithm to be as fast/memory efficient as possible, whilst making sure it is very easy to understand! (i.e. maintainability comes first!)
12.3. Where an algorithm needs to be optimised, make sure comment to say what you’re doing any why
12.4. Choose what you optimise for (e.g. speed or memory usage?)
13. Interoperability
13.1. Web services
13.1.1. What are they?
13.1.2. Different protocols
13.1.2.1. SOAP
13.1.2.2. REST
13.1.2.3. JSON
13.1.3. What Protocols?
13.2. WCF
13.2.1. What is it?
13.2.2. Different protocols that can be used
13.2.2.1. HTTP
13.2.2.2. TCP
13.2.3. Contracts
13.2.3.1. Operation Contracts
13.2.3.2. Object Contracts
13.2.4. Consuming Contracts in a Client app
13.3. Office Interop
14. Security
14.1. Authentication/Authorisation
14.1.1. Methods of authentication
14.1.2. Use of multiple factors of authentication
14.1.3. Different types of authentication
14.1.3.1. Windows
14.1.3.2. Forms
14.1.3.3. Windows Identity Foundation
14.1.3.4. Other External Identity Provider
14.1.4. Authentication requirements for different systems
14.1.4.1. Windows
14.1.4.2. SQL Server
14.1.4.3. Web Applications
14.1.4.4. Web Services/WCF Services
14.1.4.5. Windows Forms / WPF Applications
14.2. General
14.2.1. Attacks
14.2.1.1. External Code Execution
a. Uploading of code/files which is then executed – e.g. SQL injection
b. Providing URLs which are then downloaded by the system
14.2.1.2. Buffer Overflow
Invalid values being input into numerical/date fields (or simply too much text in a text field) may cause buffer overflow and allow external code to be run
14.2.2. Error Messages
Error messages that are displayed to the user must not contain information about the internal workings of the system (no stack traces!)
14.2.3. Credentials
14.2.3.1. Usernames/Passwords should never be stored together
14.2.3.2. Passwords should never be stored in plain text
14.2.4. Logging
14.2.4.1. Ensuring that the security of log files is also considered
14.3. Web Security
14.3.1. SSL
14.3.1.1. What is it?
14.3.1.2. How does it work?
14.3.1.3. Certificates
14.3.2. Web Hardening
14.3.2.1. Firewalls
14.3.2.2. IIS configuration
14.3.2.2.1. Only listen on the necessary ports
14.3.2.2.2. Do not allow outbound connections unless necessary
14.3.2.2.3. Disabling SSL 3.0 and below
14.3.2.2.4. Disabling HTTP headers that expose the technology being used
14.3.3. Attacks
14.3.3.1. Man-in-the-Middle
14.3.3.2. Man-in-the-Browser (Trojans etc)
14.3.3.3. Automated Bots
14.3.3.4. Session hijacking
14.3.3.5. Cross Site Scripting
14.3.3.6. Cross Site Request Forgery
14.3.3.7. Social Engineering
14.3.3.7.1. Phishing/Vishing/SMiShing
14.3.3.7.2. Username/Password re-use
14.3.3.8. Denial of Service
15. XML
15.1. What is it?
15.2. Pros/Cons over other data transfer formats (e.g. csv)
15.3. Namespaces
15.4. Elements
15.5. Attributes
15.6. Values
15.7. XML Schema Documents (XSD)
15.8. XSL Transformation Documents (XSLT)
Stay tuned for more !
Comments