Presentations

Presentations
Architecture Presentations

Cloud Computing Presentations

Service Oriented Architecture and Web Services Presentations

Windows Workflow Presentations

Advanced .NET Presentations

Introductory .NET Presentations

Architecture Presentations

Architects? We Don't Need No Stinkin' Architects!

Many developers have the opinion that architecture is the job of all the developers. Not only is there no need for an architect, but having someone in that position is at best unnecessary, and at worst dangerous. This stems from a misunderstanding of what architecture is. Ironically, this misunderstanding about architecture is also shared by many of those who do believe in the importance of having an architect.

Evaluating Architectures with Dependency Matrices
Download Code Sample Code

Software is complex, and the architecture of those systems often is intangible. Dependency matrices are a way of making architecture very concrete. This talk will show how to use NDepend’s Dependency Matrix to improve the structure of our applications.

Cloud Computing Presentations

Architecting For Failure, Cloud Architecture is Different!

While Cloud Computing offers enormous economic savings, and scalability for large amounts of users and data as well as over large geographic areas, you have to think differently about how to build these applications. Distributed applications are susceptible to a wide variety of outages because you cannot avoid the effects of computer networks and scarce computing resources. Traditional on-premise applications have always been subject to some of these problems, but cloud computing exposes them publicly in ways that cannot be hidden. This talk will explain how to architect and build applications to be resilient under these conditions. It will also explain what aspects of traditional software architecture and design are the same, and which areas must evolve.

Do Relational Databases Belong in the Cloud?

If applications put data in a computing cloud, the requirements of consistency, availability, and partitioning can conflict. That means to have a highly available and scalable application you may have to give up classic ACID database transactions and relational database features such as foreign keys, joins, and stored procedures. You also have to handle versioning of data and data latency. To meet these problems, a different class of database, often called "NoSQL" has been developed. While the name "NoSQL" is unfortunate, they are an alternative model to the relational model. This talk will address what kind of data model is appropriate to the cloud, and how to decide which data model to use.

Your First Azure Application
Download Code Samples

This talk explains the fundamentals of building, deploying, monitoring, and cost estimation for an Azure Web application.

What is Microsoft Marketplace DataMarket?
Download Code Samples

DataMarket is a data information service built on Microsoft Azure. DataMarket provides access to data from government, news, financial, traffic, and other sources. By providing a uniform method and format for retrieving and offering data, Microsoft hopes to create a data marketplace.

Both large and small data providers can provide access to data for large and small development organizations in an environment where otherwise it would be highly unlikely or impossible for these groups to partner. Potentially this could lead to the democratization of data, where data can be combined with other data, in ways that could not be foreseen by the original providers.

Monitoring Cloud Applications
Download Code Samples

Monitoring a cloud application is not a sexy or exciting topic for programmers, but it cannot be avoided when architecting or building a cloud application. You cannot attach a debugger to a production server in the cloud. Even if you could, it is often impossible to determine the exact circumstances surrounding a bug or crash. Cloud applications have to be monitored. You have to also monitor the behavior of a cloud application for other reasons: compliance, logging, determining the app’s health, or checking to see if your application is being used as you expected.

Microsoft Azure offers several programming interfaces and technologies to monitor and debug applications: diagnostics, management interfaces, IntelliTrace, and health monitoring. This talk will explain the best uses for each approach so that you can build high-quality cloud
applications.

Privacy in the Cloud

Here is an interview conducted by Scott Hanselman where we discuss the implications for privacy of cloud computing..

Cloud Computing Is In Your Future

Computing power is available when you need it, where you need it. You only use as much as you need. Such is the dream of cloud computing. We are far from realizing this dream.

Nonetheless, there is enormous potential now for organizations to build cloud applications. Small and medium sized businesses can develop services and applications that up to now could only be provided by large companies. Startups can minimize their infrastructure costs. Businesses of all sizes can use cloud infrastructure to handle unpredictable bursts of computing activity.

Building software that lives in the cloud requires managers, architects, and developers to think differently about security, databases, and applications. As with any new technology, there is no agreement among the vendors as how to proceed, and no standards exist. Service level agreements are primitive.

This explores the opportunities and pitfalls of cloud computing, and how to think about building cloud applications, and how cloud computing could evolve in the future.

Cloud Computing Will Change Electronic Commerce

Buying and selling of goods and services electronically will be radically transformed by cloud computing. Vendors and service providers will pay for just whatever computing resources they use, instead of building or renting from a data center where they must pay for peak capacity.

Since you pay only for what you use, and the infrastructure is outsourced, it will be easier for companies to start offering services, and for units of large companies to avoid using their central IT facilities. The marketplace will be more dynamic, and existing IT infrastructure, or the availability of large capital to pay for it, will not be a barrier to offer innovative, new solutions. Small companies will find it easier to compete with large ones.

The Cloud Computing future is here now.

Introduction to Cloud Computing With Microsoft Azure

Cloud Computing presents a very enticing opportunity for businesses, especially small and mid-size businesses, or small business units of large corporations. You use only the compute resources that you need, which makes the economics, and the ability to scale up and down quickly huge advantages. On the other hand, there are some critical technological and social challenges. Depending on the geographic dispersion or size of your client base, you may have to think about application design very differently. In addition, if cloud computing is a utility, then the social and political implications have to be considered as well. Using Microsoft Azure as an example (but the concepts apply to Google, Amazon and other providers as well), these challenges are discussed.

Software as a Service in the Cloud
Architecting and building a Software as a Service application requires solving a series of problems that are independent of a particular software platform. First, a SaaS architecture follows directly from the fundamental principles of the business model. Second, a series of difficult technical problems must be solved in addition to providing the business functionality. These include certificate security, low-IT-capable clients, business continuity when connectivity is lost, provisioning of services, scalability as the number of clients increase, database design for clients, how to use virtualization, and how to integrate and release service functionality over several different client applications. Third, you have to effectively use the platform technology such as WCF and ASP.NET. If you approach building a SaaS application on these three levels, you can then leverage your work into new platforms such as Windows Azure. This talk was first given at TechEd 2009.

A Lap Around Windows Azure and the Azure Platform
Download Code Samples


Here is a tour of the Azure cloud operating system and computing platform capabilities.  It contains an overview of its various components, and explains how these fit together. It explains the unique approach Microsoft is taking to allow a developer to write a service in the cloud. Learn about the cloud services that enable developers to easily create or extend their applications and services whether they are consumer-targeted applications, social networking web sites, or enterprise class applications and services.

Claims Based Security
Download Code Samples

How can Internet-based, collaborative applications communicate identity information about their users? How can trading partners use each other’s applications without keeping login information about each other’s every changing list of employees? How can emergency responders use each other’s databases of information only for the duration of the emergency? Claims represent an industry standard way of representing user identity that is the part of the solution to this problem that directly relates to a developer of Internet based applications. A claim can represent any relevant information about a user. For example: their age, how they were authenticated, and their job title, even what they had for breakfast. This talk will explain how to use claims in a .NET application so that applications do not have to change as the security requirements evolve, or the users of the application change over time.


SOA and Web Services Presentations

Windows Workflow and WCF Help Make “Software + Services” a Reality
Download Code Samples


The future of software is a combination of local software and Internet services interacting with one another. Software should run in locations that have the maximum compute power while minimizing the amount of data that has to be transferred. Sometimes mission critical software has to run even when disconnected to the Internet. When reconnected, the various data sources have to be reconciled. By bringing together the worlds of rich clients and services in the cloud, you can get the best of both worlds. Two critical technologies for putting together these two worlds are Windows Workflow Foundation (WF) and Windows Communication Foundation (WCF). WCF makes it possible for the different worlds to talk to each other. WF makes it possible for applications to run when and where it is appropriate, and to easily wait for data to arrive. .NET Framework 3.5 has begun the integration of these two technologies. This gateway to the world of Software + Services is what we will explore.

Speaking a Common Language: The OASIS Reference Model for Service Oriented Architecture

The Reference Model for SOA is an OASIS standard. It provides a vocabulary for service oriented applications that allows people to achieve a common understanding when they talk about services. This talk will explain how to use the reference model in discussions with vendors, stakeholders, development staff, business analysts and others that participate in the development of services. This will permit everyone to speak the same language when planning, architecting, developing, and using a SOA.

     Video Presentation: SOA World East June 2007


Introduction to Service Oriented Architecture

Developers often have trouble understanding Service Oriented Architecture (SOA) because it is frequently talked about in very abstract terms. This is unfortunate because corporate economics and technology improvements are driving the use of service orientation to develop modern business applications. This talk explains in very clear and concrete terms what a SOA is, why it is important, and what it means to develop a SOA application.

Windows Workflow Presentations

Workflow Services Using WCF and WF
Download Code Samples

Using workflow to build services is one of the fundamental building blocks of service-oriented systems. Version 3.5 of the .NET Framework simplifies the building of workflow enabled services using Windows Workflow Foundation (WF) and Windows Communication Foundation (WCF). The new framework classes reduce the amount of plumbing code that has to be written as well as providing new templates to help build these kinds of scenarios. This talk will not only illustrate the new features, but demonstrate them with a realistic scenario.

Using the Windows Workflow Rules Engine Outside of a Workflow
Download Code Samples

Windows Workflow Rules Engine can be used as a standalone rules engine. This talk explains how to use the Windows Workflow Rules Engine as part of an application without invoking a workflow. You have to understand how to design and code the integration and connection of the Rules Engine with your application. You have to understand how to incorporate modified rule sets into your application without having to rebuild the application. You have to understand how to architect and build an application that allows you to edit the rules outside of your application. You will have to build your own, and decide how you want to handle the versioning of rule sets. Understanding WWF is helpful for this talk, but it is not a prerequisite.

State Machine Workflows
Download Code Samples 

When modeling workflows involve human interaction, there are often long periods of time before a response is made to a request. In this environment, modeling the workflow as a series of states and transitions is often the best model. This session will demonstrate how to incorporate a state transition model into a workflow.

Advanced Topics in Windows Workflow Foundation

Download Code Samples
This talk will discuss some of the more sophisticated topics you need to understand in order to build complex workflows.

Sophisticated workflows must handle errors and this talk will start out by talking about workflow error and cancellation handlers. We talk about how to synchronize workflows that share data. Many workflows will interact with databases so you will have to understand transactional workflows. Since many workflows will be long lived, they will have to incorporate compensation as opposed to atomic, or two-phase commit type transactions. We will discuss both transaction models in workflow. We will explain how sophisticated hosts will trap runtime events, and persist workflows.

Building Business Applications Using Microsoft Windows Workflow Foundation
Download Code Samples

Microsoft Windows Workflow (WF) will arrive with .NET Framework 3.0, and offers a programming solution that lets you focus on writing business workflows immediately without having to solve the difficult problems of workflow plumbing. In this session, I will enhance the application built in the introductory session by introducing more advanced features of workflow in order to demonstrate how to build real world workflows. This will require overcoming some difficult challenges. Businesses have complex policies that are difficult to express. Workflow Foundation allows you express these business policy constraints as rules which may vary depending on the specific business conditions. Most real life workflows run for long periods of time, this talk will show how to use compensation, rather than the classic ACID transaction model to build workflows. In addition, I will demonstrate how these long running workflows can communicate asynchronously with other people and software.

Advanced .NET Presentations

How to Partition and Layer a Software Application
Download Code Samples

How do you make your software adaptable to changing technologies?  Everyone answers: use layering.  But exactly how do you develop software layers? How do you create application interfaces that allow you to change the underlying technology? This is especially crucial as we begin to think about cloud computing and realize that parts of applications may migrate to the cloud, while others stay on desktops and local servers.

This session will focus on techniques such as interface based design, proper use of inheritance, dependency inversion, factories, single responsibility, facades, and other patterns and techniques to accomplish this.

Refactoring, Serialization, and Version Hell
Download Code Samples

With the introduction of assemblies, the Global Assembly Cache, strong names, and version policy, .NET developers need not suffer with the "DLL Hell" that has plagued Windows development for years. While that is a gigantic step in the right direction, a large, but manageable problem has emerged: "Version Hell".

"Version Hell" arises from two facts of .NET life if you use assembly versions to build bullet-proof installations and deinstallations. First, strongly named executables must call into strongly named class library assemblies. Second, change the version of an assembly, and you have a different version of the types in that assembly.

What happens when you want to move a type from one assembly to another? What happens when you want to refactor a type so that its functionality is moved among several assemblies? What happens when you have changed the assembly version, or refactored a type, and you want to bring back a serialized type of a previous version? Or you want to bring back a type that no longer exists? Is there some optimal number of assemblies to break your application up into?

These are all issues that all .NET developers will encounter sooner or later and should be prepared to solve. This talk was given to the MaineBytes Users Group.

Application Domains And Contexts and Threads, Oh My!
Download Code Samples

Application domains are fundamental to the .NET programming model and are an excellent example of how a .NET concept such as type safety can be used to build very scalable applications (such as ASP.NET), or allow programs to control security settings. Associated with the idea of an application domain are contexts which provide a mechanism for the .NET Framework to simplify various programming tasks. Understanding how threads interact with application domains and contexts will give you the basic knowledge you need to build scalable applications.

Introductory .NET Presentations

An Experienced Programmer's Guide to C# and .NET
Download Code Samples

Microsoft .NET revolutionizes software development on the Windows platform.  The C# language provides a particularly clear way of working with .NET’s Common Language Runtime, and the extensible .NET Framework class library.  This session will leverage your existing programming skills from other languages such as Java, Visual Basic, or C++ to help you understand how to use C# to develop on the .NET platform. The topics covered include attributes, metadata, interface-based programming, memory management, type safety, and the basics of the framework class library. This talk was given at the SYSCON Edge 2004 East Conference.


All Content (c) 2000 - 2014 Reliable Software, Inc. All rights reserved.