סילבוס מפורט וחלוקת שעות

סילבוס מפורט לקורס "תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל-Windows 8.1 ואפליקציות ל-Windows Phone 8"
תכנית לימודים בתקשורת ובתכנות אסינכרוני

רשימת נושאים ושעות:

נושא שעות
WPF 24
.NET Networking 20
בניית מערכת שרת לקוח – שלב ראשון 4
תכנות אסינכרוני 24
WCF 12
בניית מערכת שרת לקוח – שלב שני 4
Security 12
בניית מערכת שרת לקוח – שלב שלישי 4
פיתוח אפליקציות ל-Windows 8 32
בניית מערכת שרת לקוח – שלב רביעי 8
פיתוח אפליקציות ל-Windows Phone 8 32
בניית מערכת שרת לקוח – שלב חמישי 4
פרויקט מסכם  
   
   
סה"כ 180
 



WPF
הנושא הראשון שיילמד הוא פיתוח אפליקציות Desktop באמצעות WPF מתוך מטרה להפוך את תכנית הלימודים למעניינת וצבעונית יותר.
WPF מכיל ספריה גראפית גדולה המאפשרת להדגים ולהמחיש בצורה ויזואלית גם תקשורת וגם עבודה סינכרונית.
נושאים מרכזיים XAML, ספריה גראפית.

 
 1 Introduction to WPF
  • User interface (UI) and user experience (UX)
  • What is WPF?
  • WPF vs. Windows Forms
  • Why WPF?
 2 XAML
  • What is XAML?
  • XAML Advantages
  • XAML First Sample
3 Layout and Panels
  • Layout Basics
  • Layout Controls
  • Layout Hierarchy
  • StackPanel
  • WrapPanel
  • DockPanel
  • Canvas
  • Grid
  • UniformGrid Panel
 4 Controls (Part I)
  • What is a Control?
  • Content Controls
  • Button Control
  • TextBlock + TextBox + PasswordBox
  • ItemsControl + ListBox + ComboBox
  • CheckBox + RadioButton
6 Controls (Part II)
  • ListView Control
  • TreeView Control
  • Expander
5 Data Binding
  • Introduction
  • Model
  • “Hello world” with Binding
  • Using the DataContext
  • INotifyPropertyChanged Interface
  • UpdateSourceTrigger property
  • ObservableCollection
7 Style & Triggers
  • Local child control style
  • Window style
  • Application styles
  • Explicitly style
  • Add Style in code
  • Trigger
  • Data Trigger
  • Event Trigger
8 User Control
  • UserControl
  • CustomControl
  • Dependency Property
  • CustomControl with Dependency Property
9 Graphics
  • Shapes
  • Geometries
  • Transforms
  • Brushes
  • Opacity
10 Animation
  • Understanding Animation
  • Linear Animations
  • Storyboards
  • Path Animation
  • Animation Easing
11 Application and Windows
  • The Application Object
  • Application Startup and Shutdown
  • Application Events
  • Windows
  • Dialog Boxes

 
 
 
.NET Networking
 השכבה הפיסית, Streams, עקרונות בסיסיים (URI, IP Address, DNS, Port, Request/Response, Proxy), Socket, פרוטוקולים (TCP, UDP)


1 Introduction
  • Networks, Packets,and Protocols
  • About Addresses
  • About Names
  • Clients and Servers
  • What Is a Socket?
  • Exercises
2  Basic Sockets
  • Socket Addresses
  • Socket Implementationin.NET
  • TCP Sockets
  • UDP Sockets
  • The.NET Socket Class
3  Sending and Receiving Messages
  • Encoding Information
  • Composing I/O Streams
  • Framing and Parsing
  • Implementing Wire Formats in C---
  • Wrapping Up
4  Beyond the Basics
  • Nonblocking I/O
  • Multiplexing
  • Threads
  • Asynchronous I/O
  • Multiple Recipients
  • Closing Connections
  • Wrapping Up
  • 5  Under the Hood
  • Buffering and TCP
  • Buffer Deadlock
  • Performance Implications
  • TCP Socket Life Cycle
  • Demultiplexing Demystiex?


 בניית מערכת שרת לקוח – שלב ראשון
תוכנת IM -מסרים מיידים , תוכנת לקוח מבוססת WPF, התחברות ותקשורת בין הלקוחות באמצעות Socket .

תכנות אסינכרוני
עקרונות התכנות האסינכרוני, Task, async, await , Asynchronous socket communication,



1 Introduction
  • Asynchronous Programming
  • What’s So Great About Asynchronous Code?
  • What Is Async?
  • What Async Does
  • Async Doesn’t Solve Everything
2 Why Programs Need to Be Asynchronous
  • Desktop User Interface Applications
  • Web Application Server Code
  • Silverlight, Windows Phone, and Windows 8
  • Parallel Code
  • An Example
3 Writing Asynchronous Code Manually
  • Some Asynchronous Patterns Used in .NET
  • The Simplest Asynchronous Pattern
  • An Introduction to Task
  • The Problem with Manual Asynchrony
  • Converting the Example to Use Manual Asynchronous Code
4 Writing Async Methods
  • Converting the Favicon Example to Async
  • Task and await
  • Async Method Return Types
  • Async, Method Signatures, and Interfaces
  • The return Statement in Async Methods
  • Async Methods Are Contagious
  • Async Anonymous Delegates and Lambdas
5 What await Actually Does
  • Hibernating and Resuming a Method
  • The State of the Method
  • Context
  • Where await Can’t Be Used
  • Exception Capture
  • Async Methods Are Synchronous Until Needed
6 The Task-Based Asynchronous Pattern
  • What the TAP Specifies
  • Using Task for Compute-Intensive Operations
  • Creating a Puppet Task
  • Interacting with Old Asynchronous Patterns
  • Cold and Hot Tasks
  • Up-Front Work
7 Utilities for Async Code
  • Delaying for a Period of Time
  • Waiting for a Collection of Tasks
  • Waiting for Any One Task from a Collection
  • Creating Your Own Combinators
  • Cancelling Asynchronous Operations
  • Returning Progress During an Asynchronous Operation
8 Which Thread Runs My Code?
  • Before the First await
  • During the Asynchronous Operation
  • SynchronizationContext in Detail
  • await and SynchronizationContext
  • The Lifecycle of an Async Operation
  • Choosing Not to Use SynchronizationContext
  • Interacting with Synchronous Code
9 Exceptions in Async Code
  • Exceptions in Async Task-Returning Methods
  • Unobserved Exceptions
  • Exceptions in Async void Methods
  • Fire and Forget
  • AggregateException and WhenAll
  • Throwing Exceptions Synchronously
  • finally in Async Methods
10 Parallelism Using Async
  • await and locks
  • Actors
  • Using Actors in C#
  • Task Parallel Library Dataflow
11 Unit Testing Async Code
  • The Problem with Unit Testing in Async
  • Writing Working Async Tests Manually
  • Using Unit Test Framework Support
12 Async in ASP.NET Applications
  • Advantages of Asynchronous Web Server Code
  • Using Async in ASP.NET MVC 4
  • Using Async in Older Versions of ASP.NET MVC
  • Using Async in ASP.NET Web Forms
13 Async in WinRT Applications
  • What Is WinRT?
  • IAsyncAction and IAsyncOperation
  • Cancellation
  • Progress
  • Providing Asynchronous Methods in a WinRT Component
14 The Async Compiler Transform—in Depth
  • The stub Method
  • The State Machine Struct
  • The MoveNext Method
  • Writing Custom Awaitable Types
  • Interacting with the Debugger
15 The Performance of Async Code
  • Measuring Async Overhead
  • Async Versus Blocking for a Long-Running Operation
  • Optimizing Async Code for a Long-Running Operation
  • Async Versus Manual Asynchronous Code
  • Async Versus Blocking Without a Long-Running Operation
  • Optimizing Async Code Without a Long-Running Operation
  • Async Performance Summary

WCF
פיתוח שכבת תקשורת באמצעות Window Communication Foundation
 
1 DESCRIBING WINDOWS COMMUNICATION FOUNDATION
  • ILLUSTRATING THE PROBLEM A SCENARIO
  • ADDRESSING THE PROBLEM WHAT WCF PROVIDES
  • Unification of Microsoft’s Distributed Computing Technologies
  • Interoperability with Applications Built on Other Technologies
  • Interoperability with Other Web Services Platforms
  • Interoperability with Microsoft‟s Pre-WCF Technologies
  • Explicit Support for Service-Oriented Development
2 USING WINDOWS COMMUNICATION FOUNDATION
  • CREATING A WCF SERVICE
  • Implementing a Service Class
  • Defining Service Contracts
  • Defining Data Contracts
  • Selecting a Host
  • Hosting a Service Using IIS or WAS
  • Hosting a Service in an Arbitrary Process
  • Defining Endpoints
  • Specifying Endpoints
  • Using Endpoints An Example
  • CREATING A WCF CLIENT
  • OTHER ASPECTS OF WCF
  • Messaging Options
  • Controlling Local Behavior
  • Security
  • Transactions
  • Transactions in the .NET Framework System.Transactions
  • Transactions in WCF
  • RESTful Communication
  • Communication using POX, RSS, and ATOM
  • Queuing

 
 
בניית מערכת שרת לקוח – שלב שני
שמירת כל התשדורת בין הלקוחות ב-Database
Security

  • Security
  • Permissions
  • Code Access Security (CAS)
  • Allowing Partially Trusted Callers
  • The Transparency Model
  • Sandboxing Another Assembly
  • Operating System Security
  • Identity and Role Security
  • Cryptography Overview
  • Windows Data Protection
  • Hashing
  • Symmetric Encryption
  • Public Key Encryption and Signing



בניית מערכת שרת לקוח – שלב שלישי
הרשמת משתמשים, הקמת קבוצות, הצפנת התשדורת.
פיתוח אפליקציות ל-Windows 8
לימוד ספריית WinRT מהבסיס ועד הפצת האפליקציה בחנות של מיקרוסופט

 
 1 Overview of the Windows 8 Platform and Windows Store Apps
  • Introduction to the Windows 8 Platform
  • Windows 8 UI Principles
  • WinRT and Language Projections
 2 Creating User Interfaces using XAML
  • XAML Basics
  • XAML Code-Behind
  • Advanced XAML
 3 Presenting Data
  • Working with Data Presentation Controls
  • The GridView Control
 4 Implementing Layout Using Windows 8 Built-In Controls
  • WinRT Controls
  • AppBar Control
  • Snapped and Fill Views
 5 Handling Files in Windows Store Apps
  • Handling Files and Streams in Windows Store Apps
  • Working with File User Interface Components
 6 Windows Store App Process Lifetime Management
  • Process Lifetime Management
  • Windows Store App Activation and Background Tasks
  • Implementing a State Management Strategy
 7 Working with Resources, Styles, and Templates
  • Creating Shared Resources
  • Creating Styles and Templates
 8 Designing and Implementing Navigation in a Windows Store App
  • Handling Navigation in Windows Store Apps
  • Semantic Zoom
 9 Implementing Windows 8 Contracts
  • Designing for Charms and Contracts
  • The Search Contract
  • The Share Contract
  • Managing App Settings
 10 Implementing Tiles and User Notifications
  • Implementing Tiles, Live Tiles, Secondary Tiles and Badge Notifications
  • Implementing Toast Notifications
 11 Designing and Implementing a Data Access Strategy
  • Evaluating Data Access Strategies
  • Working with Remote Data
 12 Responding to Mouse and Touch
  • Working with Pointer Events
  • Working with Gesture Events
 13 Planning for Windows Store App Deployment
  • The Windows Store App Manifest
  • Windows Store App Certification


 
 
בניית מערכת שרת לקוח – שלב רביעי
פיתוח תוכנת לקוח ב-WinRT אשר תתקשר עם אפליקציית ה- Desktop.

פיתוח אפליקציות ל-Windows Phone 8
לימוד העקרונות של פיתוח אפליקציות ל-Windows 8  מהבסיס, דרך תקשורת עם חומרה וסנסורים (מצלמה, GPS, Accelrometer וכו') ועד הפצת האפליקציה בחנות של מיקרוסופט
 
 1 Introduction to Windows Phone Development
  • Windows Phone 8 Devices
  • Windows Phone 8 Development Tools
  • Creating first Windows Phone application
2 User Interface
  • XAML and XAML Designer
  • Basic Controls
  • Layout and Screen Orientation
  • Data Binding and the MVVM Pattern
  • Pivot and Panorama
  • Text and Fonts
  • Input Handling
  • Styles and Control Templates
  • Transition and Animation
  • Application and Status Bar
  • Themes
  • Globalization and Localization
3 Application Model and Life Cycle
  • Application Execution State
  • Frame, Page and Navigation Model
  • Splash Screen
  • Application Data
4 Device Integration
  • Launchers and Choosers
  • Creating and Updating Tiles
  • Displaying Toast notifications
  • Lock Screen Interaction
  • Contacts and Calendar
  • Speech Recognition and Speech Synthesis
  • Media
  • Wallet
  • File and URI Associations
 
 5 Runtime and Multitasking
  • Application Launching
  • Fast Application Switching
  • Scheduled Tasks
  • Background Audio
  • Background File Transfers
  • Scheduled Notifications
6 Accessing Device Hardware
  • Accessing Device Status
  • Camera, Video and Audio
  • Location and Maps
  • Motion and Device Orientation
7 Communication
  • Web and Data Services
  • Sockets
  • Bluetooth
  • NFC
  • VoIP
  • Data Sense
  • Push notifications
8 Packaging and Deployment
  • Company Applications
  • Enterprise hub
  • The Store
  • The Certification Process

 
 
בניית מערכת שרת לקוח – שלב חמישי
פיתוח תוכנת לקוח ל-Windows Phone 8 אשר תתקשר עם אפליקציית ה- Desktop ואפליקציית ה-WinRT.
פרויקט מסכם
פיתוח אפליקציה ל-Windows 8.1
פיתוח אפליקציה ל-Windows Phone 8