Software Development and Web Programming Specialist
Software Development and Web Programming Specialist
Category:
Software Development and Web Programming Specialist
Program Length | Total Contact Hours | ||||
Clock Hours | 360 | Theory Hours | 160 | ||
Credit Hours | Lab Hours | 200 | |||
Externship Hours | |||||
Total Hours | 360 |
Course Number | Course Title | Clock Hours | Lab Hours |
COMP-98-361 | Software Development Fundamentals | 80 | |
COMP-98-375 | HTML 5 Application Development Fundamentals | 80 | |
COMP-70-480 | Programming in HTML 5 with JavaScript and CSS3 | 100 | |
COMP-70-486 | Developing ASP.NET MVC Web Applications | 100 | |
Lab Hours Breakdown | |||
COMP-98-361 | Software Development Fundamentals | 30 | |
COMP-98-375 | HTML 5 Application Development Fundamentals | 30 | |
COMP-70-480 | Programming in HTML 5 with JavaScript and CSS3 | 30 | |
COMP-70-486 | Developing ASP.NET MVC Web Applications | 30 | |
Total Lab Hours | |||
Total Hours | 450 |
Program Objective
Prepare the student to be able to be able to work as a web developer or web administrator. This training is an entry point into both the web application and Windows Store apps. The student will be able to develop dynamic websites using the latest Microsoft Visual Studio platform.
Program Description
98-361- Software Development Fundamentals
- Understanding Core programming
-
- Understand computer storage and data types
- How a computer stores programs and the instructions in computer memory, memory stacks and heaps, memory size requirements for the various data storage types, numeric data and textual data
- Understand computer decision structures
- Various decision structures used in all computer programming languages; If decision structures; multiple decision structures, such as If…Else and switch/Select Case; reading flowcharts; decision tables; evaluating expressions
- Identify the appropriate method for handling repetition
- For loops, While loops, Do…While loops, and recursion
- Understand error handling
- Structured exception handling
- Understanding Object Oriented Programming
-
- Understand the fundamentals of classes
- Properties, methods, events, and constructors; how to create a class; how to use classes in code
- Understand inheritance
- Inheriting the functionality of a base class into a derived class
- Understand polymorphism
- Extending the functionality in a class after inheriting from a base class, overriding methods in the derived class
- Understand encapsulation
- Creating classes that hide their implementation details while still allowing access to the required functionality through the interface, access modifiers
- Understanding general software development
-
- Understand application life cycle management
- Phases of application life cycle management, software testing
- Interpret application specifications
- Reading application specifications and translating them into prototypes, code, select appropriate application type, and components
- Understand algorithms and data structures
- Arrays, stacks, queues, linked lists, and sorting algorithms; performance implications of various data structures; choosing the right data structure
- Understanding web applications.
-
- Understand web page development
- HTML, Cascading Style Sheets (CSS), JavaScript
- Understand Microsoft ASP.NET web application development
- Page life cycle, event model, state management, client-side versus server-side programming
- Understand web hosting
- Creating virtual directories and websites, deploying web applications, understanding the role of Internet Information Services
- Understand web services
- Web services that will be consumed by client applications, accessing web services from a client application, SOAP and Web Service Definition Language (WSDL)
- Understanding desktop applications.
-
- Understand Windows apps
- UI design guideline categories, characteristics and capabilities of Store Apps, identify gestures
- Understand console-based applications
- Characteristics and capabilities of console-based applications
- Understand Windows Services
- Characteristics and capabilities of Windows Services
- Understanding databases.
-
- Understand relational database management systems
- Characteristics and capabilities of database products, database design, Entity Relationship Diagrams (ERDs), normalization concepts
- Understand database query methods
- Structured query language (SQL), creating and accessing stored procedures, updating data and selecting data
- Understand database connection methods
- Connecting to various types of data stores, such as flat file; XML file; in-memory object; resource optimization
98-375 HTML5 Application Development Fundamentals
- Manage the application life cycle
- Understand the platform fundamentals
- Packaging and the runtime environment: app package, app container, credentials/permission sets, host process, leverage existing HTML5 skills and content for slate/tablet applications
- Manage the state of an application
- Manage session state, app state, and persist state information; understand states of an application; understand the differences between local and session storage
- Debug and test an HTML5-based, touch-enabled application
- Touch gestures; understand which gestures you test on a device
- Build the user interface (UI) by using HTML 5
- Choose and configure HTML5 tags to display text content
- Choose and configure HTML5 tags to display graphics
- When, why, and how to use Canvas; when, why, and how to use scalable vector graphics (SVG)
- Choose and configure HTML5 tags to play media
- Video and audio tags
- Choose and configure HTML5 tags to organize content and forms
- Tables, lists, sections; semantic HTML
- Choose and configure HTML5 tags for input and validation
- Format the user interface by using cascading style sheet (CSS).
- Understand the core CSS concepts
- Separate presentation from content (create content with HTML and style content with CSS); manage content flow (inline versus block flow); manage positioning of individual elements( float versus absolute positioning); manage content overflow (scrolling, visible, and hidden); basic CSS styling
- Arrange UI content by using CSS
- Use flexible box and grid layouts to establish content alignment, direction, and orientation; proportional scaling and use of “free scale” for elements within a flexible box or grid; order and arrange content; concepts for using flex box for simple layouts and grid for complex layouts; grid content properties for rows and columns; use application templates
- Manage the flow of text content by using CSS
- Regions and using regions to flow text content between multiple sections (content source, content container, dynamic flow, flow-into, flow-from, msRegionUpdate, msRegionOverflow, msGetRegionContent); columns and hyphenation and using these CSS settings to optimize the readability of text; use “positioned floats” to create text flow around a floating object
- Manage the graphical interface by using CSS
- Graphics effects (rounded corners, shadows, transparency, background gradients, typography, and Web Open Font Format); two-dimensional (2-D) and three-dimensional (3-D) transformations (translate, scale, rotate, skew, and 3-D perspective transitions and animations); SVG filter effects; Canvas
- Code by using JavaScript.
- Manage and maintain JavaScript
- Create and use functions; jQuery and other third-party libraries
- Update the UI by using JavaScript
- Locate/access elements; listen and respond to events; show and hide elements; update the content of elements; add elements
- Code animations by using JavaScript
- Use animation; manipulate the canvas; work with images, shapes, and other graphics
- Access data access by using JavaScript
- Send and receive data; transmit complex objects and parsing; load and save files; App Cache; datatypes; forms; cookies; localStorage
- Respond to the touch interface
- Gestures, how to capture and respond to gestures
- Code additional HTML5 APIs
- GeoLocation, Web Workers, WebSocket; File API
- Access device and operating system resources
- In- memory resources, such as contact lists and calendar; hardware capabilities, such as GPS, accelerometer, and camera
70-480 – Programming in HTML5 with JavaScript and CSS3
- Implement and manipulate document structures and objects
- Create the document structure by using HTML
- Structure the UI by using semantic markup, including markup for search engines and screen readers, such as Section, Article, Nav, Header, Footer, and Aside; create a layout container in HTML
- Write code that interacts with UI controls
- Programmatically add and modify HTML elements; implement media controls; implement HTML5 canvas and SVG graphics
- Apply styling to HTML elements programmatically
- Change the location of an element; apply a transform; show and hide elements
- Implement HTML5 APIs
- Implement storage APIs, AppCache API, and Geolocation API
- Establish the scope of objects and variables
- Define the lifetime of variables; keep objects out of the global namespace; use the “this” keyword to reference an object that fired an event; scope variables locally and globally
- Create and implement objects and methods
- Implement native objects; create custom objects and custom properties for native objects using prototypes and functions; inherit from an object; implement native methods and create custom methods
- Implement program flow
- Implement program flow
- Iterate across collections and array items; manage program decisions by using switch statements, if/then, and operators; evaluate expressions
- Raise and handle an event
- Handle common events exposed by DOM (OnBlur, OnFocus, OnClick); declare and handle bubbled events; handle an event by using an anonymous function
- Implement exception handling
- Set and respond to error codes; throw an exception; request for null checks; implement try-catch-finally blocks
- Implement asynchronous programming
- Receive messages from the HTML5 WebSocket API; use JQuery to make an AJAX call; wire up an event; implement a callback by using anonymous functions; handle the “this” pointer
- Create a web worker process
- Start and stop a web worker; pass data to a web worker; configure timeouts and intervals on the web worker; register an event listener for the web worker; limitations of a web worker
- Access and Secure Data
- Validate user input by using HTML5 elements
- Choose the appropriate controls based on requirements; implement HTML input types and content attributes to collect user input
- Validate user input by using JavaScript
- Evaluate a regular expression to validate the input format; validate that you are getting the right kind of data type by using built-in functions; prevent code injection
- Consume data
- Consume JSON and XML data; retrieve data by using web services; load data or get data from other sources by using XMLHTTPRequest
- Serialize, deserialize, and transmit data
- Handle binary data; handle text data such as JSON and XML; implement the JQuery serialize method; handle web forms with Form.Submit; parse data; send data by using XMLHTTPRequest; sanitize input by using URI/form encoding
- Use CSS3 in applications
- Style HTML text properties
- Apply styles to text appearance; apply styles to a text font, including WOOF, @font-face, size, and understudy fonts; apply styles to text alignment, spacing, and indentation; apply styles to text hyphenation; apply styles for a text drop shadow
- Style HTML box properties
- Apply styles to alter appearance attributes, including size, borders, rounded corners, outline, padding, and margin; apply styles to alter graphic effects, including transparency, opacity, background image, gradients, shadow, and clipping; apply styles to establish and change an element’s position
- Create a flexible content layout
- Implement a layout using a flexible box model; implement a multi-column layout; implement a layout using position floating and exclusions; implement a layout using grid alignment; implement a layout using regions, grouping, and nesting
- Create an animated and adaptive UI
- Animate objects by applying CSS transitions; apply 3-D and 2-D transformations; adjust UI based on media queries, including device adaptations for output formats, displays, and representations; hide or disable controls
- Find elements by using CSS selectors and JQuery
- Choose the correct selector to reference an element; define element, style, and attribute selectors; find elements by using pseudo-elements and pseudo-classes
- Structure a CSS file by using CSS selectors.
- Reference elements correctly; implement inheritance; override inheritance by using !important; style an element based on pseudo-elements and pseudo-classes
70-486 – Developing ASP.NET MVC Web Applications
- Design the application Architecture
- Plan the application layers
- Plan data access; plan for separation of concerns, appropriate use of models, views, controllers, components, and service dependency injection; choose between client-side and server-side processing; design for scalability; choose between ASP.NET Core and ASP.NET; choose when to use .NET standard libraries
- Design a distributed application
- Design a hybrid application; plan for session management in a distributed environment; plan web farms; run Microsoft Azure services on-premises with Azure Pack; enable deferred processing through Azure features including queues, scheduled and on-demand jobs, Azure Functions, and Azure Web Jobs
- Design and implement the Azure Web Apps life cycle
- Identify and implement Start, Run, and Stop events; code against application events in applications; configure startup tasks, including IIS, app pool configuration, and third-party tools
- Configure state management
- Choose a state management mechanism including in-process, out of process, and Redis-based state management; plan for scalability; use cookies or local storage to maintain state; apply configuration settings in web.config files; implement sessionless state including query strings; configure middleware to enable session and application state in ASP.NET Core
- Design a caching strategy
- Implement page output caching and data caching; create cache profiles; implement HTTP caching; implement Azure Redis caching; plan a content delivery network (CDN) strategy, for example, Azure CDN
- Design and implement a Web Socket strategy
- Read and write string and binary data asynchronously; choose a connection loss strategy; decide when to use Web Sockets; implement SignalR; enable web socket features in an Azure Web App instance
- Design a configuration management solution
- Manage configuration sources, including XML, JSON, and INI files; manage environment variables; implement Option objects; implement multiple environments using files and hierarchical structure; manage sensitive configuration; react to runtime configuration changes; implement a custom configuration source; secure configuration by using Azure Key Vault; use the Secret Manager tool in development to keep secrets out of your code for configuration values
- Interact with the host environment
- Work with file system using file providers; work with environment variables; determine hosting environment capabilities; implement native components, including PInvoke and native dependencies for hosts including Linux and Windows; use ASP.NET hosting on an Open Web Interface for .NET (OWIN)-based server
- Compose an application by using the framework pipeline
- Add custom request processing modules to the pipeline; add, remove, and configure services used in the application; design and implement middleware; design for kestrel, Http.sys web server and IIS; design and implement startup filters
- Design the build and deployment architecture
- Design a browser artifact build strategy
- Design a JavaScript build pipeline using Gulp, Grunt, npm and Bower; design an artifact build strategy using Less, Sass and Font Awesome; design and implement a bundling and minification strategy for broswer artifacts, including JavaScript, CSS and images
- Design a server build strategy
- Manage NuGet dependencies; target runtimes, including the full .NET Framework, .NET core, and .NET standard; manage debug and release configurations, including compilation and optimization options; include or exclude files from build; manage build sources, including content, resources, and shared files; implement metadata for projects, including version, release notes, and descriptions; define other build options, including xmlDoc and warningsAsErrors; work with static files in ASP.NET core
- Design a publishing strategy
- Implement application publishing using dotnet.exe; manage publishing options in csproj; implement additional tooling; implement pre-publish and post-publish scripts; implement native compilation; publish to Docker container image
- Implement an Azure deployment strategy
- Deploy Azure Web App using supported deployment models including FTP, Kudu, Web Deploy, and Visual Studio Publishing Wizard; provision ARM- based resources while deploying applications; implement deployment environments, including dev, test, and prod in Azure; use deployment slots for staging sites; deploy to Azure Stack
- Implement a on-premises deployment strategy
- Deploy application to IIS using Web Deploy, xcopy, and Visual Studio Publishing Wizard; deploy application to Windows Nano Server, deploy application to IIS Hosted Web Core, deploy application to HTTP.sys web server; deploy application to Kestrel on Windows and Linux; implement reverse proxying to Kestrel using IIS and Nginx
- Develop the user experience
- Create elements of the user interface for a web application
- Create and apply styles by using CSS; structure and lay out the user interface by using HTML; implement dynamic page content based on a design
- Design and implement UI behavior
- Implement client-side validation; use JavaScript to manipulate the DOM; extend objects by using prototypal inheritance; use AJAX to make partial page updates
- Design the UI layout of an application
- Implement partial views and view components for reuse in different areas of the application; design and implement pages by using Razor Pages; design and implement layouts to provide visual structure; define and render optional and required page sections; create and use tag and HTML helpers to simplify markup
- Plan a responsive UI layout
- Plan for applications that run on multiple devices and screen resolutions; use media queries and Bootstrap’s responsive grid; detect browser features and capabilities; create a web application that runs across multiple browsers and mobile devices; enable consistent cross-browser experiences with polyfills
- Plan mobile UI strategy
- Implement mobile specific UI elements such as touch input, low bandwidth situations, and device oritentation changes; define and implement a strategy for working with mobile browsers
- Develop the user experience
- Plan for search engine optimization and accessibility
- Use analytical tools to parse HTML; provide an xml sitemap and robots.txt file to improve scraping; write semantic markup for accessibility, for example, screen readers; use rich snippets to increase content visibility
- Plan and implement globalization and localization
- Plan a localization strategy; create and apply resources to UI including JavaScript resources; set cultures; implement server side localization and globalization
- Design and implement MVC controllers and actions
- Apply authorization attributes, filters including global, authentication, and overriddable filters; choose and implement custom HTTP status codes and responses; implement action results; implement MVC areas; implement Dependency Injection for services in controllers
- Design and implement routes
- Define a route to handle a URL pattern; apply route constraints; ignore URL patterns; add custom route parameters; define areas; define routes that interoperate with Single Page Application frameworks such as Angular
- Control application behavior by using MVC extensibility points
- Create custom middleware and inject it into the pipeline; implement MVC filters and controller factories; control application behavior by using action results, model binders, and route handlers; inject services into a view
- Design and implement serialization and model binding
- Serialize models and data using supported serialization formats, including JSON, XML, protobuf, and WCF/SOAP; implement model and property binding, including custom binding and model validation; implement web socket communication in MVC; implement file uploading and multipart data; use AutoRest to build clients
- Troubleshoot and debug web application
- Prevent and troubleshoot runtime issues
- Troubleshoot performance, security, and errors; implement tracing, logging, and debugging including IntelliTrace; enable and configure health monitoring including Performance Monitor; configure and use App Insights runtime telemetry
- Design an exception handling strategy
- Handle exceptions across multiple layers; use MVC middleware to configure error handling; use different exception handling strategies for different environments; create and display custom error pages; configure a custom pipeline for error handling; handle first chance exceptions; configure and use App Insights; log application exceptions
- Test a web application
- Create and run unit tests, for example, use the Assert class, create mocks and stubs; create and run web tests including using Browser Link; debug a web application in multiple browsers and mobile emulators; use Azure DevTest Labs; use Visual Studio Team Services
- Debug an Azure application
- Collect diagnostic information by using Azure App Insights; choose log types, for example, event logs, performance counters, and crash dumps; stream logs directly to Visual Studio from a deployed site; debug an Azure application by using Visual Studio and remote debugging; interact directly with remote Azure websites using Server Explorer
- Design and Implement Security
- Configure authentication
- Authenticate users; enforce authentication settings; implement ASP.NET Core Identity; enable Facebook, Google and other external providers; implement account confirmation, password recovery, and multi-factor authentication; perform authentication using Azure Active Directory, Azure Active Directory B2C, Azure Active Directory B2B, and Microsoft Identity manage user session by using cookies; acquire access tokens using the Microsoft Authentication Library (MSAL)
- Configure and apply authorization
- Create roles; authorize roles programmatically; configure and work with custom UserStores using middleware; configure controllers and actions to participate in authorization
- Design and implement claims-based authentication
- Perform authentication and authorization using tokens including OpenID, OAuth, JWT, SAML, bearer tokens, etc.
- Manage data integrity
- Apply encryption to application data; apply encryption to the configuration sections of an application; sign application data to prevent tampering; secure data using Azure Key Vault; implement encryption for data protection using the data protection APIs in transit and at rest
- Implement a secure site
- Secure communication by applying SSL certificates; require SSL for all requests; enable SSL hosting in the development environment; implement SSL using Azure Load Balancers; salt and hash passwords for storage; use HTML encoding to prevent cross-site scripting attacks (ANTI-XSS Library); implement deferred validation and handle unvalidated requests, for example, form, querystring, and URL; prevent SQL injection attacks by parameterizing queries; prevent cross-site request forgeries (XSRF); use Azure Security Center to monitor Azure resources; implement Cross Origin Resource Sharing (CORS); implement protection against open redirect attacks