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. The focus of this keynote will be to correct this misunderstanding of what software or technology architecture is. We will then be better architects. Our users will be happier, and developers will be more productive.

Cloud Computing Presentations

What is Microsoft Dallas?
Download Code Samples

Dallas is a data information service built on Microsoft Azure. Dallas is currently a Community Technology Preview (CTP).  Dallas accesses a variety of 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.

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.

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. How do you handle versioning of data and data latency? Using Microsoft’s Windows Azure as an example, this talk will describe these problems and talk about how to architect and design in this new world.

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.

Service Oriented Architecture and Windows Communication Foundation (nee Indigo)

Download Code Samples

Windows Communication Foundation (WCF) is Microsoft's new technology for building all kinds of distributed applications. This introductory talk explains the basic concepts of the Indigo programming model and relates them to how to build a service oriented application. Since this is a pre-release version of the technology, the code samples were built with the September 2005 CTP build.

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.

Introduction to Microsoft Windows Workflow Foundation
Download Code Samples

What do email, meeting planning, document approval, budgeting, manufacturing processes, resource planning, and product lifecycle management have in common? Work flow: long running, complex business processes that interact with human decision making. But traditional, conventional programming techniques require you to spend an enormous amount of time building your workflow infrastructure before you write a line of application code.

Fortunately, there’s a solution: 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 introduce the fundamentals of building workflow applications. Using an example of a simple business process, I will show you how to build a simple workflow application. I will also explain the fundamental parts of WF such as hosts, workflow, the activities and the basic workflow patterns.

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.

Stopping the Barbarians at the Gate: .NET Code Access Security
Download Code Samples

Most programmers have difficulty understanding security issues. It is easy to take any .NET assembly and expose it to other machines through .NET Remoting, or as a Web service. Programmers cannot assume that the software they are developing will only live on a single machine. Your technology can easily be exposed to the outside world, and that means exposing it to hackers. Code Access Security (CAS) helps deal with this problem by allowing you to place limitations on the code itself, irrespective of the user id under which the code runs. This talk was given to the Boston .NET Users Group.

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.

What is Microsoft .NET and Why Should I Care?

Microsoft .NET revolutionizes software development on the Windows platform to provide one programming development paradigm. .NET is made up of a virtual execution environment, the Common Language Runtime, and the extensible .NET Framework class library. While understanding this technology is imperative for people who develop on Microsoft platforms, other developers need to understand this technology so that they can build applications for heterogeneous platform environments.

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