Presentations
Architecture Presentations
Cloud Computing Presentations
Service Oriented Architecture and Web Services PresentationsWindows 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.
|