Microsoft Web Development Technologies – A Refresher

09/02/2014 R Tyler 0 Comments

Microsoft Technologies

As I’m soon to be making the move to Visual Studio 2013, I thought I would brush up on some of the newer (and not so new) Microsoft stable of products and web development methods. I assembled the list below from many online sources, not least the horses mouth itself I hope you find this aide-memoire useful.

Please get in touch or add a comment for all those important one’s I’ve missed (there are sure to be a whole host of those).

Term Description
.Net Framework A programming infrastructure created by Microsoft for building, deploying and running applications and services that use .NET technologies, such as desktop applications and Web services. The .NET Framework contains three major parts:
  • the Common Language Runtime
  • the Framework Class Library
Agile Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen tight interactions throughout the development cycle.
AJAX Short for Asynchronous JavaScript and XML, it is a term that describes a new approach to using a number of existing technologies together, including the following: HTML or XHTML, Cascading Style Sheets, JavaScript, the Document Object Model, XML, XSLT, and the XMLHttpRequest object. When these technologies are combined in the Ajax model, Web applications are able to make quick, incremental updates to the user interface without reloading the entire browser page.
ADO.NET ADO.NET is the data access component for the .NET Framework. ADO.NET is entirely based on XML and it leverages the power of XML to provide disconnected access to data. ADO.NET is made of a set of classes that are used for connecting to a database, providing access to relational data, XML, application data and retrieving results. ADO.NET is made of a set of classes that are used for connecting to a database, providing access to relational data, XML, application data, and retrieving results. ADO.NET has, unlike ADO, no Recordset object
ASP.NET A Microsoft server-side Web technology. ASP.NET takes an object-oriented programming approach to Web page execution. Every element in an ASP.NET page is treated as an object and run on the server. An ASP.NET page gets compiled into an intermediate language by a .NET Common Language Runtime-compliant compiler. Then a JIT compiler turns the intermediate code to native machine code, and that machine code is eventually run on the processor. Because the code is run straight from the processor, pages load much faster than classic ASP pages, where embedded VBScript or JScript had to be continuously interpreted and cached.
C# A hybrid of C and C++, it is a Microsoft programming language developed to compete with Sun’s Java language. C# is an object-oriented programming language used with XML-based Web services on the .NET platform and designed for improving productivity in the development of Web applications. C# boasts type-safety, garbage collection, simplified type declarations, versioning and scalability support, and other features that make developing solutions faster and easier, especially for COM+ and Web services.
Content Page In Web site development with ASP.NET,  the Content Page is a page that is usually associated with a Master Page. A Content Page will contain text (of course), HTML, and controls within tags. When the Content page is requested (by a visitor to the website) it’s content will be combined with a copy of the master page and its content will be placed within a placeholder. In this way a Master and Content page will provide a consistent framework in which to hold content.
Design patterns A design pattern in architecture and computer science is a formal way of documenting a solution to a design problem in a particular field of expertise. The idea was introduced by the architect Christopher Alexander in the field of architecture and has been adapted for various other disciplines, including computer science. An organized collection of design patterns that relate to a particular field is called a pattern language. The elements of this language are entities called patterns. Each pattern describes a problem that occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice. – The usefulness of speaking of patterns is to have a common terminology for discussing the situations designers already see over and over.
DTD A document type definition (DTD) is a set of markup declarations that define a document type for an SGML-family markup language (SGML, XML, HTML). A DTD uses a terse formal syntax that declares precisely which elements and references may appear where in the document of the particular type, and what the elements’ contents and attributes are. A DTD can also declare entities that may be used in the instance document. XML uses a subset of SGML DTD. A DTD is associated with an XML or SGML document by means of a document type declaration (DOCTYPE). The DOCTYPE appears in the syntactic fragment doctypedecl near the start of an XML document. The declaration establishes that the document is an instance of the type defined by the referenced DTD. DTDs make two sorts of declaration:
  • an optional external subset
  • an optional internal subset
Microsoft Dynamics CRM Microsoft Dynamics CRM is a customer relationship management software package developed by Microsoft. Out of the box, the product focuses mainly on Sales, Marketing, and Service (help desk) sectors, but Microsoft has been marketing Dynamics CRM as an XRM platform and has been encouraging partners to use its proprietary (.NET based) framework to customize it to meet many different demands. The Microsoft Dynamics family of business applications includes other related products such as Microsoft Dynamics AX (ERP application), Microsoft Dynamics GP, (ERP application) Microsoft Dynamics NAV (ERP application), and Microsoft Dynamics SL (ERP Application) and also Microsoft Dynamics Retail Management System; also known as Dynamics RMS.Dynamics CRM is a server-client application, which, like Microsoft SharePoint, is primarily an IIS-based web application which also supports extensive web services interfaces. Clients access Dynamics CRM either by using a Browser or by a thick client plug-in to Microsoft Outlook. Beside the Microsoft Internet Explorer the Chrome and Firefox browsers are fully supported since Microsoft Dynamics CRM 2011 Update Rollup.
HTML5 HTML5 is a W3C specification that defines the fifth major revision of the Hypertext Markup Language (HTML – created in 1990 and standardized as HTML 4 as of 1997). One of the major changes in HTML5 is in respect to how HTML addresses Web applications. HTML5 is a markup language used for structuring and presenting content for the World Wide Web and it is a core technology of the Internet. HTML5 core aims are; to improve the language with support for the latest multimedia while keeping it easily readable by humans and consistently understood by computers and devices (web browsers, parsers, etc.). HTML5 is intended to include (and to extend) the HTML 4 attempt to define a single markup language that can be written in either HTML or XHTML syntax. HTML5 includes detailed processing models to encourage more interoperable implementations; it extends, improves and rationalises the markup available for documents, and introduces markup and application programming interfaces (APIs) for complex web applications. New syntactic features include the <video>, <audio> and <canvas> elements, as well as the integration of scalable vector graphics (SVG) content (that replaces the uses of generic <object> tags
Indigo Indigo, part of Microsoft’s Windows operating system code-named Longhorn, unifies a variety of Microsoft technologies (COM+, MSMQ, ASP.NET Web services [ASMX], Remoting) and transports (HTTP, TCP, UDP, IPC) to create a single framework and runtime environment for building distributed systems.
LINQ Short for Language INtegrated Query, LINQ is set of classes added to the .NET Framework 3.5 along with language enhancements added to C# 3.0 and Visual Basic 9, the versions of the language that ship with Visual Studio 2008. LINQ adds a rich, standardized query syntax as a first-class citizen in .NET programming languages that allows developers to interact with any type of data.
MS Test MSTest.exe is a component in Visual Studio. MSTest is a command line utility from Microsoft that executes unit tests created in Visual Studio 2005, 2008, 2010 and is still available for backwards compatibility with older versions in Visual Studio 2012 and 2013. Microsoft recommends running the tests in VSTest.Console in later versions. MSTest is not the Visual Studio Unit Testing Framework defined in the Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll dynamic link library (DLL). MSTest is executed as a command-line command that is used to run unit tests. It has several options that you can use to customize your test run. You can use many of these options in conjunction with one another; in fact, you must use certain options in conjunction with other options, as described in the following sections. You can specify these options in any order on the MSTest.exe command line. MSTest.exe does not interpret the options or the values you specify for them in a case-sensitive manner.
MVC Abbreviated as MVC, Model-View-Controller is the term used to describe a software paradigm that separates objects into one of three categories:
  • models for maintaining data
  • views for displaying all or a portion of the data
  • controllers for handling events that affect the model or views.
  • In this separation, the view and controller depend on the model. However, the model does not depend on either of the two making it so the model can be built and tested independent of the visual presentation.
NUnit NUnit is an open source unit testing framework for Microsoft .NET. It serves the same purpose as JUnit does in the Java world, and is one of many progr FireBenchmarks is an addin able to record execution time of unit tests and generate XML, CSV, XHTML performances reports with charts and history tracking. Its main purpose is to enable a developer or a team that work with an agile methodology to integrate performance metrics and analysis into the unit testing environment, to easily control and monitor the evolution of a software system in terms of algorithmic complexity and system resources load. NUnit.Forms is an expansion to the core NUnit framework and is also open source. It specifically looks at expanding NUnit to be able to handle testing user interface elements in Windows Forms. As of January 2013, Nunit.Forms is in Alpha release, and no versions have been released since May 2006.
OAuth OAuth is an open standard for authorization. OAuth provides a method for clients to access server resources on behalf of a resource owner (such as a different client or an end-user). It also provides a process for end-users to authorize third-party access to their server resources without sharing their credentials (typically, a username and password pair), using user-agent redirections. OAuth is a service that is complementary to, and therefore distinct from, OpenID. OAuth is also distinct from OATH, which is a reference architecture for authentication (i.e. not a standard).
OData OData is a standardized protocol for creating and consuming data APIs. OData builds on core protocols like HTTP and commonly accepted methodologies like REST. The result is a uniform way to expose full-featured data APIs.
Razor Razor is a markup syntax for adding server-based code to web pages. It has the power of traditional ASP.NET markup, but is easier to learn, and easier to use. Razor is a server side markup syntax much like ASP and PHP and it supports the C# and Visual Basic programming languages when used in conjunction with ASP.NET.
SharePoint Microsoft SharePoint is a Web application platform developed by Microsoft. First launched in 2001, SharePoint has historically been associated with intranet, content management and document management, but recent versions have significantly broader capabilities.
Silverlight A Web-based digital video technology by Microsoft, codename “WPF/E”.  Silverlight is a cross-browser, cross-platform plug-in for delivering media and rich interactive applications for the Web. The Silverlight browser plug-in is freely available for all major browsers including Mozilla Firefox, Apple’a Safari and Windows Internet Explorer running on the Macintosh or Microsoft Windows.
SQL Profiler SQL profiler (or SQL Server profiler.) is a graphical user interface (GUI) software tool in Microsoft’s SQL Server relational database management system (RDBMS). It monitors, analyzes, troubleshoots and tunes SQL databases and their environment. Database monitoring, which, arguably, is the most widely-used and important RDBMS function, is performed by generating customized monitoring instances of specific database portions, also known as trace logs. SQL Profiler may be used to capture data for real-time or future review. In addition, traces may be scheduled to run at specific times. For example, to compare performance when the database is busy or idle, one trace may be set up to run in the morning at 10 a.m. when the database is busiest, and another set up to run at 2 a.m. when there is little or no database activity.
SSIS SQL Server Integration Services (SSIS) is a component of the Microsoft SQL Server database software that can be used to perform a broad range of data migration tasks. SSIS is a platform for data integration and workflow applications. It features a fast and flexible data warehousing tool used for data extraction, transformation, and loading (ETL). The tool may also be used to automate maintenance of SQL Server databases and updates to multidimensional cube data. First released with Microsoft SQL Server 2005, SSIS replaced Data Transformation Services, which had been a feature of SQL Server since Version 7.0. Unlike DTS, which was included in all versions, SSIS is only available in the “Standard” and “Enterprise” editions.
SSRS SQL Server Reporting Services (SSRS) is a server-based report generation software system from Microsoft. It is part of suite of Microsoft SQL Server services, including SSAS (SQL Server Analysis Services) and SSIS (SQL Server Integration Services). While SSAS enables users to construct special databases for fast analysis of very large amounts of data, and while SSIS enables users to integrate data from many sources outside Microsoft SQL Server databases, SSRS enables users to quickly and easily generate reports from Microsoft SQL Server databases. The SSRS service provides a unique interface into Microsoft Visual Studio so that developers as well as SQL administrators can connect to SQL databases and use SSRS tools to format SQL reports in many complex ways. SSRS also provides a ‘Report Builder’ tool for less technical IT workers to format SQL reports of lesser complexity. Administered via a web interface, it can be used to prepare and deliver a variety of interactive and printed reports. SSRS competes with Crystal Reports and other business intelligence tools.
TFS Team Foundation Server (commonly abbreviated to TFS) is a Microsoft product which provides source code management (either via Team Foundation Version Control or Git), reporting, requirements management, project management (for both agile software development and waterfall teams), automated builds, lab management, testing and release management capabilities. It covers the entire Application Lifecycle Management. TFS can be used as a back end to numerous integrated development environments but is designed to provide the most benefit by serving as the back end to Microsoft Visual Studio or Eclipse (on Windows and non-Windows platforms).
T-SQL Short for Transaction-SQL, an extended form of SQL that adds declared variables, transaction control, error and exception handling and row processing to SQL’s existing functions.
UI tests In software engineering, graphical user interface testing is the process of testing a product’s graphical user interface to ensure it meets its written specifications. This is normally done through the use of a variety of test cases.  Test Case Generation – To generate a set of test cases, test designers must be certain that their suite covers all the functionality of the system and also has to be sure that the suite fully exercises the GUI itself. The difficulty in accomplishing this task is twofold: to deal with domain size and with sequences. In addition, the tester faces more difficulty when they have to do regression testing.
Unit Testing Framework The Unit Testing Framework supports unit testing in Visual Studio. Use the classes and members in the Microsoft.VisualStudio.TestTools.UnitTesting namespace when you are coding unit tests. You can use them when you have written the unit test from scratch or are refining a unit test that was generated from code you are testing. Groups of Elements – To help provide a clearer overview of the Unit Testing Framework, this section organises the elements of the UnitTesting namespace into groups of related functionality. Note that Attribute elements – Whose names conclude with the string Attribute, can be used either with or without the string Attribute. For example, the following two code examples function identically:- [TestClass()] & [TestClassAttribute()]. Elements Used for Data-Driven Testing. Use the following elements to set up data-driven unit tests. Configure a Data-Driven Unit Test: 
  • DataAccessMethod
  • DataSourceAttribute
  • DataSourceElement
  • DataSourceElementCollection
Unit Tests In computer programming, unit testing is a method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures are tested to determine if they are fit for use. Intuitively, one can view a unit as the smallest testable part of an application. In procedural programming, a unit could be an entire module, but is more commonly an individual function or procedure. In object-oriented programming, a unit is often an entire interface, such as a class, but could be an individual method. Unit tests are short code fragments created by programmers or occasionally by white box testers during the development process. Ideally, each test case is independent from the others. Substitutes such as method stubs, mock objects, fakes, and test harnesses can be used to assist testing a module in isolation. Unit tests are typically written and run by software developers to ensure that code meets its design and behaves as intended.
WCF The Windows Communication Foundation (or WCF), previously known as “Indigo”, is a runtime and a set of APIs (application programming interface) in the .NET Framework for building connected, service-oriented applications. WCF is a tool often used to implement and deploy a service-oriented architecture (SOA). It is designed using service-oriented architecture principles to support distributed computing where services have remote consumers. Clients can consume multiple services; services can be consumed by multiple clients. Services are loosely coupled to each other. Services typically have a WSDL interface (Web Services Description Language) that any WCF client can use to consume the service, regardless of which platform the service is hosted on. WCF implements many advanced Web services (WS) standards such as WS-Addressing, WS-ReliableMessaging and WS-Security. With the release of .NET Framework 4.0, WCF also provides RSS Syndication Services, WS-Discovery, routing and better support for REST services.
Web Services The fundamental concept of web services is powerful and continues to evolve and advance. The original SOAP (Simple Object Access Protocol) standard is the use of the HTTP protocol to pass XML-formatted data to the server from a client and receive XML-formatted results in return. This can be from within a web browser using the XmlHttpRequest object or directly from a desktop application or another server. Before web services became widely adopted, it was not uncommon for developers to programmatically request a page as an HTML document and extract the desired data from it, a technique known as screen-scraping. This causes all sorts of frustrations as sites are continually updated and the screen-scraping clients must try to keep up by modifying their parsing code to adapt to the new HTML the target site is rendering.
WF Windows Workflow Foundation (WF) is a Microsoft technology that provides an API, an in-process workflow engine, and a rehostable designer to implement long-running processes as workflows within .NET applications. The current version of WF is WF4. An example of WWF usage with ASP.NET goes as follows: A Microsoft ASP.NET application that displays pages to its users might use a workflow to control the order in which those pages are shown. Doing this can make it easier to change the page flow without changing the pages themselves, as well as cleanly separating the application’s user interface from its controlling logic. A workflow, as defined here, is a series of distinct programming steps or phases. Each step is modeled in WF as an Activity. The .NET Framework provides a library of activities (such as WriteLine, an activity that writes text to the console or other form of output). Custom activities can also be developed for additional functionality. Activities can be assembled visually into workflows using the Workflow Designer, a design surface that runs within Visual Studio. The designer can also be hosted in other applications. Encapsulating programming functionality into activities allows the developer to create more manageable applications; each component of execution can be developed as a Common Language Runtime object whose execution will be managed by the workflow runtime. The workflow engine provides the following features. Scheduling and executing workflows and activities. Workflows can be executed using one of three methods: Using WorkflowInvoker, which executes workflows on the calling thread (that is, a new thread is not created for the workflow). This means that the calling process will wait for the workflow to complete.
Windows Azure Windows Azure is a cloud computing platform and infrastructure, created by Microsoft, for building, deploying and managing applications and services through a global network of Microsoft-managed datacenters. It provides both PaaS and IaaS services and supports many different programming languages, tools and frameworks, including both Microsoft-specific and third-party software and systems. Windows Azure was released on February 1, 2010 Websites allows developers to build sites using ASP.NET, PHP, or Node.js and can be deployed using FTP, Git, Mercurial or Team Foundation Server. Virtual machines let developers migrate applications and infrastructure without changing existing code, and can run both Windows Server and Linux virtual machines. Cloud services – Microsoft’s Platform as a Service (PaaS) environment that is used to create scalable applications and services. Supports multi-tier scenarios and automated deployments. Data management – SQL Database, formerly known as SQL Azure Database, works to create, scale and extend applications into the cloud using Microsoft SQL Server technology. Integrates with Active Directory and Microsoft System Center and Hadoop. Media services – A PaaS offering that can be used for encoding, content protection, streaming, and/or analytics.
WPF Windows Presentation Foundation (or WPF) is a graphical subsystem for rendering user interfaces in Windows-based applications by Microsoft. WPF, previously known as “Avalon”, was initially released as part of .NET Framework 3.0. Rather than relying on the older GDI subsystem, WPF uses DirectX. WPF attempts to provide a consistent programming model for building applications and separates the user interface from business logic. It resembles similar XML-oriented object models, such as those implemented in XUL and SVG.  WPF employs XAML, an XML-based language, to define and link various UI elements. WPF applications can also be deployed as standalone desktop programs, or hosted as an embedded object in a website. WPF aims to unify a number of common user interface elements, such as 2D/3D rendering, fixed and adaptive documents, typography, vector graphics, runtime animation, and pre-rendered media. These elements can then be linked and manipulated based on various events, user interactions, and data bindings.
Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable (please see the entry on XPath below). It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all free open standards. The design goals of XML emphasize simplicity, generality, and usability over the Internet. It is a textual data format with strong support via Unicode for the languages of the world. Although the design of XML focuses on documents, it is widely used for the representation of arbitrary data structures, for example in web services. Many application programming interfaces (APIs) have been developed to aid software developers with processing XML data, and several schema systems exist to aid in the definition of XML-based languages.  As of 2009, hundreds of document formats using XML syntax have been developed, including RSS, Atom, SOAP, and XHTML.
SGML The Standard Generalized Markup Language (SGML; ISO 8879:1986) is an ISO-standard technology for defining generalized markup languages for documents. ISO 8879 Annex A.1 defines generalized markup: Generalized markup is based on two novel postulates: Markup should be declarative: it should describe a document’s structure and other attributes, rather than specify the processing to be performed on it. Declarative markup is less likely to conflict with unforseen future processing needs and techniques. Markup should be rigorous so that the techniques available for processing rigorously-defined objects like programs and databases can be used for processing documents as well.
Web Services The fundamental concept of web services is powerful and continues to evolve and advance. The original SOAP (Simple Object Access Protocol) standard is the use of the HTTP protocol to pass XML-formatted data to the server from a client and receive XML-formatted results in return. This can be from within a web browser using the XmlHttpRequest object or directly from a desktop application or another server. Before web services became widely adopted, it was not uncommon for developers to programmatically request a page as an HTML document and extract the desired data from it, a technique known as screen-scraping. This causes all sorts of frustrations as sites are continually updated and the screen-scraping clients must try to keep up by modifying their parsing code to adapt to the new HTML the target site is rendering.
XPath XPath is a syntax for defining parts of an XML document. It uses path expressions to navigate in XML documents and it contains a library of standard functions. – XPath is a major element in XSLT and is a W3C recommendation. The XML Path Language, is a query language for selecting nodes from an XML document. In addition, XPath may be used to compute values (e.g., strings, numbers, or Boolean values) from the content of an XML document. The XPath language is based on a tree representation of the XML document, and provides the ability to navigate around the tree, selecting nodes by a variety of criteria. XPath uses path expressions to select nodes or node-sets in an XML document. These path expressions look very much like the expressions you see when you work with a traditional computer file system. XPath includes over 100 built-in functions. There are functions for string values, numeric values, date and time comparison, node and QName manipulation, sequence manipulation, Boolean values, and more. – Without XPath knowledge you will not be able to create XSLT documents. XQuery and XPointer are both built on XPath expressions. XQuery 1.0 and XPath 2.0 share the same data model and support the same functions and operators.
XSLT XSL stands for EXtensible Stylesheet Language, and is a style sheet language for XML documents. XSLT stands for XSL Transformations. XSLT includes over 100 built-in functions. There are functions for string values, numeric values, date and time comparison, node and QName manipulation, sequence manipulation, Boolean values, and more.

Leave a Reply: