An introduction to the design of modern web applications.
Upon completion of this training students will be able to:
- Create a high quality code in C#.
- Create unit tests with MS Unit Testing and Moq frameworks.
- Design and create a simple web application using ASP.NET framework.
- Use Visual Studio IDE for developing .NET applications.
- Strong motivation and desire to learn.
- Basic programming languages skills - ability to read and create a simple algorithm.
- Experience in creating simple C# applications.
- English - A2+.
- Create a new private repository - help.
- Add "Demenkovets" to your repository as collaborators - help.
- Complete a task.
- Upload a task file to your repository - help.
- Send an email to [email protected] with a link to your repository:
Subject: ASP.NET MVC Training
Hi,
Here is my repository and my tasks - https://github.com/<github-account>/<repository>
+ Task 1 - https://github.com/<github-account>/<repository>/blob/master/tasks/task01-vowel-count.cs
+ Task 2 - https://github.com/<github-account>/<repository>/blob/master/tasks/task02-sort-array.cs
+ Task 3 - https://github.com/<github-account>/<repository>/blob/master/tasks/task03-filter.cs
+ Task 4 - https://github.com/<github-account>/<repository>/blob/master/tasks/task04-find-min-max.cs
- Task 5
- Task 6
Thanks,
<Your Full name>
If you can't solve a certain task just skip it, but we expect that you will be able to solve at least 4 tasks.
Also, we expect that you will complete all tasks in two days, but don't hesitate to send us your solution even in case that you miss the deadline.
Each task is a console application that has a method template and test cases. You have to implement the method body in the way to make all test cases work.
-
Getting the amount of vowels in a string - task01-vowel-count.cs.
-
Sorting an array - task02-sort-array.cs.
-
Filtering values in an array - task03-filter.cs.
-
Finding a min and max values in jagged arrays - task04-find-min-max.cs.
-
Getting a list of prime numbers in a specified range - task05-prime-numbers.cs.
-
Using class and methods modifiers - task06-modifiers.cs.
Consider using these tools for completing tasks: repl.it, .NET Fiddle or LINQPad.
Fiddles for tasks:
Training will cover these topics:
- Creating types in C#
- Value and Reference Types.
- Classes vs Struct.
- Boxing and Unboxing.
- Naming conventions.
- Static and instance class.
- Type members - Fields, Constructors, Methods (Property, Indexers, Operators , Event - preview), Nested types. Enum.
- Encapsulation. Inheritance. Polymorphism
- Encapsulation. Access modifiers. Properties. Automatic properties. Indexers.
- Inheritance.
- Sealed Methods and Classes.
- Special Base Types - System.ValueType, System.Enum. Virtual methods.
- System. Object (Equals, GetHashCode, ToString and etc). Abstract methods.
- Abstruct classes.
- Interface Inheritance.
- Dynamic.
- Single dispatch and multiple dispatch.
- Framework Fundamentals
- String and Text Handling (String, StringBuilder).
- Formatting and Parsing.
- Dates and Times.
- Equality Comparison - Standard Equality Protocols. Order Comparison.
- IComparable versus Equals.
- Exception Handling. Logging. NLog
- Exception Sources. Exceptions from APIs, your code.
- Handling exceptions and catch blocks.
- Nested try blocks.
- Finally blocks.
- Throwing exceptions, rethrowing exceptions.
- Exception types, custom exceptions and unhandled exceptions.
- Logging and NLog .Net Framework.
- Configuration (multiple targets, logger-specific routing).
- Generics and Collections
- Generic types.
- Type constraints: reference type, value type, new(), type inference and etc.
- Enumeration: IEnumerable, IEnumerator, IEnumerable and IEnumerator.
- IEqualityComparer and EqualityComparer.
- IStructuralEquatable and IStructuralComparable .
- ICollection, IList and IDictionary<TKey,TValue> Interfaces.
- Lists, Queues, Stacks, Sets and Dictionaries.
- Customizable Collections and Proxies.
- Delegates. Lambdas and Events
- Delegate types.
- Creating a delegate.
- Multicast delegates.
- Invoking a delegate.
- Common delegate types.
- Inline methods (anonymous function and lambda expression).
- Delegates versus interfaces.
- Captured variables.
- Lambdas and expression trees.
- Events. Standard event delegate pattern. Custom add and remove methods.
- Events versus delegates.
- Introduction to Language Integrated Query (LINQ)
- LINQ-to-objects queries: Fluent Syntax and Query Operators.
- Lambda expressions and Func signatures. Query Expressions.
- Supporting Query Expressions. Deferred Evaluation. LINQ, Generics, and IQueryable.
- Standard LINQ Operators: Filtering, Select, SelectMany, Ordering, Specific Items and Subranges. Set Operations. Joins.
- Local Queries.
- Interpreted Queries (IQueryable preview). Combining Interpreted and Local Queries.
- Internal device types in .NET Framework. Resource management
- .NET Framework Internals. WinDbg tool.
- Garbage Collection. Optimization techniques.
- Events and the Garbage Collector.
- Weak References and Events.
- Garbage Collection and Memory Consumption.
- Finalizers.
- IDisposable, Dispose, and Close. Рattern Dispose.
- Streams and I/O
- Stream Architecture.
- Using Streams.
- Stream Adapters, Stream Decorators.
- File and Directory Operations.
- XML Technologies
- XML intro.
- Architectural Overview.
- X-DOM Overview.
- The LINQ to XML DOM. Instantiating an X-DOM.
- Navigating and Querying. Updating an X-DOM.
- Documents and Declarations.
- Projecting into an X-DOM.
- XmlReader. XmlWriter.
- Patterns for Using XmlReader/XmlWriter.
- XSD and Schema Validation. XSLTXSD, XSLT, XPath.
- Serialization
- Serialization Concepts.
- Serialization mechanisms in the .NET Framework. Formatters.
- The Data Contract Serializer.
- The Binary Serializer.
- XML Serialization.
- Object Oriented Design Principles
- Principles of software development.
- SOLID principles.
- Attributes
- Applying Attributes.
- Defining and Consuming Custom Attributes.
- ADO.NET intro
- ADO.NET infrastructure.
- The Data Provider Model.
- Connected approach.
- The SqlConnection Object.
- The SqlCommand Object.
- Reading Data with the SqlDataReader.
- Disconnected approach – The DataSet and SqlDataAdapter.
- Using Stored Procedures.
- ADO.NET EF
- Entity Framework Basics.
- Entity Framework Architecture.
- Entity Framework development approaches Code First. Model First.
- Database First.
- The ASP.NET Platform Foundation
- The ASP.NET Life Cycles.
- Modules.
- Handlers.
- Disrupting the Request Life Cycle.
- Overview of MVC Projects
- Creating a New ASP.NET MVC Project.
- The MVC Pattern.
- Working with Visual Studio MVC Projects.
- Controllers and Actions
- Simulating the ASP.NET MVC runtime.
- The URL routing HTTP module.
- Application routes.
- Aspects of a controller.
- Writing controller classes.
- Processing input data.
- Producing action results.
- Creating the first application.
- Views
- The mechanics of a view engine.
- Definition of the view template.
- Basic helpers.
- Templated helpers.
- Custom helpers, HTML helper and Ajax helper.
- Inside the Razor view engine.
- Modeling the view.
- Advanced features.
- The model-binding architecture
- The input model.
- Model binding.
- Advanced model binding.
- Model validation.
- Ajax
- View on AJAX.
- Getting to know JavaScript libraries.
- Performing simple HTML replacement.
- Using JSON and XML responses.
- The ASP.NET Platform Services
- Configuration.
- State Data.
- Caching Data.
- Caching Content.
- Security in ASP.NET MVC.