Sunday, July 09, 2017

Notes :Programming in C# Jump Start ( Microsoft Exam-70-483)

Module 1:

Object orineted Programing ; Managed Language & C#

What is Object Oriented Programming
To be object oriented, a language is designed around the concept of objects. that are something, have certain properties and exhibit certain behaviors. This means the language generally includes support for: —
Encapsulation — Inheritance — Polymorphism
What is Managed Language
Managed languages depend on services provided by a runtime environment.
• C# is one of many languages that compile into managed code.
• Managed code is executed by the Common Language Runtime (CLR).
• The CLR provides features such as: — Automatic memory management — Exception Handling — Standard Types — Security
There are 3 categories of types:
— Value types : these directly store values
— Reference types:or objects, store a reference to data
— Pointer types:only available in unsafe code
What are Lambda Expressions
  • An enhancement of anonymous methods
  • • An unnamed method written inline
  • • An alternative to a delegate
  • • At compile time a lambda expression becomes either: — An instance of a delegate — Or an expression tree
  • • Expressions are validated at compile time, but evaluated at run time.
  • • Dynamic expression trees are supported

Module 2:

Constructing Complex Types, Object Interfaces and Inheritance and Generics

Classes and Structs
• A class or struct defines the template for an object.
  • A class represents a reference type
  • A struct represents a value type
  • Reference and value imply memory strategies
When to Use Structs :
Use structs if:
— instances of the type are small
— the struct is commonly embedded in another type
— the struct logically represent a single value
— the values don’t change (immutable)
— It is rarely “boxed” (see later)
• Note: structs can have performance benefits in computational intensive applications
Note : Useful : 2 classes inside same namespace

Inheritance

— Classes can optionally be declared as:
  1. static — can never be instantiated
  2. abstract — can never be instantiated; it is an incomplete class
  3. sealed — all classes can be inherited unless marked as sealed
— Virtual Methods
  1. Virtual methods have implementations
  2. They can be overridden in derived class.

What are Virtual Functions

Virtual Function is a function in base class, which is overrided in the derived class, and which tells the compiler to perform Late Binding on this function.
Virtual Keyword is used to make a member function of the base class Virtual.
Example :
difference between genric and collection

Module 3:

Controlling Programmatic Flow & Manipulating Types and Strings

Module 4:

Code Reflection and Information ,Working with Garbage Collection

What is Reflection
Reflection inspects type metadata at runtime
The type metadata contains information such as:
  1. The type Name
  2. The containing Assembly
  3. Constructors
  4. Properties
  5. Methds
  6. Attributes
  • This data can be used to create instances, access values and execute methods dynamically at runtime
What is Garbage Collection
Garbage collection is automatic memory management.
• De-referenced objects (orphans) are not collected immediately but periodically.
  • factors influence Garbage Collection frequency —
  • Not all orphans are collected at the same time
Garbage Collection is computationally expensive

Memory Leaks

  • Despite having automatic memory management, it is still possible to create managed memory leaks.
  • • Objects that fall out of scope may be referenced by objects in scope, keeping them alive.
  • • Events can be a common source of memory leaks:Events can hold references to objects ,Solution! Unsubscribe from events proactively
  • • Weak references can be used to avoid some memory leak scenarios

Weak Reference

  • Weak references create a reference that the Garbage Collector ignores.
  • • The Garbage Collector will assume an object is eligible for collection if it is only referred to by weak references.
  • • To hold an object with only weak references, create a local variable referring to the weak reference value.
— This prevents collection until the local variable is out of scope.

Module 5:

Type and Value Validation , Encryption Technique

What is Data Validation
  • Data validation is testing values introduced to an app (via a service, file, or data entry) against expected values and ranges.
  1. Prevent overflow
  2. Prevent incorrect results
  3. Prevent undesirable side-effects
  4. Provide guidance to systems or users
  5. Prevent security intrusions
The compiler validates that the object type is correct — It does not validate the object’s value
  • Debug / Trace Assert() methods alert the developer or the user
  • Raise an Exception:
— System.ArgumentException
— System.ArgumentOutofRangeException
— System.ArgumentNullException

Data Contracts

  • “Design by Contract” from the Eiffel programming language
  • Code contracts are a unified system that can replace all other approaches to data validation
  • Code contracts have — Preconditions (Requires) — Post-conditions (Ensures)
  • A contract assertion can be “evaluated” statically
  • A contract assertion can be “enforced” at runtime

What is Encryption

  • An encryption algorithm makes data unreadable to any person or system until the associated decryption algorithm is applied.
— Encryption does not hide data; it makes it unreadable
— Encryption is not the same as compression
  • Types of encryption
— File Encryption
— Windows Data Protection
— Hashing, used for signing and validating
— Symmetric and Asymmetric

Simple Encryption Mehtods

  • File Encryption
— Encrypts and decrypts files
— Fast to encrypt/decrypt
— Based on user credentials
  • Windows Data Protection
— Encrypts and decrypts byte[]
— Fast to encrypt/decrypt
— Based on user credentials

Hashing

One-way encryption
• Common algorithms:
— MD5 (generates a 16 character hash than can be stored in a Guid)
— SHA (SHA1, SHA256, SHA384, SHA512)
Fast (depending on chosen algorithm)
  • Used for storing passwords, comparing files, data corruption/tamper checking — Use SHA256 or greater for passwords or other sensitive data

Symmetric Encryption

  • One key is used for both encryption and decryption
  • Faster than asymmetric encryption
• Cryptography namespace includes five symmetric algorithms:
— Aes (recommended)
— DES
— RC2
— Rijndael
— TripleDES

Asymmetric (or Public Key) Encryption

  • One key is used for encryption and another key for decryption
  • Commonly used for digital signatures
  • Cryptography namespace includes four asymmetric algorithms:
— DSA
— ECDiffieHellman
— ECDsa
— RSA (most popular)

Module 6:

Splitting Assemblies and Projects , Diagnostics and Instrumentation

What is an assembly?
  • An assembly is a container for a set of resources and types.
  • Assemblies can be referenced by other assemblies.
  • Some assemblies are specific to certain technologies.
  • In Visual Studio, an assembly equates to a Project
What is Instrumentation?
  • Instrumentation is code that reports performance information.
  • Telemetry aggregates instrumentation for analysis.
  • Diagnostics or Analysis is the use a telemetry to track causes of errors or identify trends.
What is a Performance Counter?
  • Performance Counter is a sampling for a single operation
  • You write to a counter by incrementing or decrementing
— Trending is accomplished using tooling
• You must have permission
• Counters are typically categorized

Module 7:

Interacting with File System, Working With REST Services

Why read or write to the file system?
  • Show existing data to user
  • Integrate user-provided data
  • Serialize objects out of memory
  • Persist data across sessions
  • Determine environment configuration

How do we write to files?

  • This is simplified with Framework methods; open / shut — File.WriteAllText / ReadAllText
  • Open for reading to keep open and keep writing
  • Open as stream for large payloads and realtime processing
How do we find files?
  • Get Windows folder with Environment Special Folders
  • Get the Current folder with File.IO Get Current Directory()
  • Use Isolated Storage dedicated to the current application
  • Anything Else. Caveat: Windows Store App development
How do we modify files?
  • Iterate through files using GetFiles()
  • Rename / Move with System.IO methods
  • Get File Info with System.UI.FileInf
What are Web Services?
  • Web Services encapsulate implementation
  • Web Services expose to disparate system
  • Web Services allow client systems to communicate servers — Web protocols (HTTP, GET, POST, etc)
  • Web Services are important to Service Oriented Architecture
— With and without metadata
— Loose coupling
What is SOAP?
  • SOAP is a standard for returning structured data from a Web Service as XML
— Envelope
— — — Header
— — —Bod
What is asynchronous programming ?
  • Asynchronous maximizes resources on multicore systems, by allowing units of work to be separated and completed.
  • Asynchronous programming frees up the calling system, especially a user interface, as to not wait for long operations.
What is the C# ASYNC/AWAIT keywords
  • Async and await simplify asynchronous programming.
  • Async and await allow asynchronous code to resemble the structure of synchronous code.
  • Methods marked with async may return Task<T>.
  • The async keyword instructs the compiler to allow await.
  • The await keyword instructs the method to return.
  • The await keyword instructs the compiler to resume execution within the same context after the operation is complete

Module 8:

Accessing a Database , Using LINQ

(More Notes on C# to JSON)
What databases can we use?
  • Windows Azure SQL Database
  • Local Network SQL Server
  • Local Machine SQL Server Express
  • Application SQL LocalDB
  • Application SQL CE
  • Other providers: Oracle, SqLite, MySql, DB2, Jet
— ADO.Net implements a provider model enabling many (if not all) databases. Database implementation is abstracted.
Types of access to a database
  • Low-level — Manual queries — DbDataReader
  • Object Relationship Models (ORM)
— Conceptual Modelling
— Entity Framework, Nhibernate, CSLA, Dapper
What is Language Integrated Query
  • LINQ is a general-purpose Query Language
  • LINQ is an integrated part of the .Net languages
  • LINQ is Type Safe and has Intellisense
  • LINQ includes operators like Traversal, Filter, and Projection
  • LINQ can be optimized with compiler versions
  • LINQ can be invoked using its Query Syntax
  • LINQ can be invoked using its Method Syntax
Reference :

No comments:

Post a Comment