Applying model driven development in developing Silverlight applications
Sander Hoogendoorn
Level: 300 - Advanced Pre-requisites:
Abstract:To be quite honest, this talk is putting model driven development (MDD) to the test. Model driven development – generating code from a model – is a concept that has long promised high productivity and quality to projects. There are many different approaches to MDD, some of them highly theoretical, some of them painfully oversimplified. Think of generating code from UML models, or using Oslo and M. And whatever happened to (graphical and textual) DSL’s? As always Sander and his team follow a very pragmatic, straightforward approach to the subject, generating code from domain models and smart use cases. One of the benefits of true model driven development is that it allows to generate code from the same model to different target environments. Having done projects where code was generated in Windows applications, ASP.NET applications, and Java web applications, Sander will now use this approach to Silverlight line-of-business applications. In this talk Sander elaborates on how code generation works, how templates can be defined for Tobago MDA, a freely available MDD code generators, and will (try to) build up a Silverlight applications on stage. |
Architecting Software as a Service
Michael Stiefel
Level: 200 - Intermediate Pre-requisites: Basic understanding of .NET, WCF, ASP.NET
Abstract: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, high availability, adjusting to elastic demand (both scaling up, or scaling down), provisioning of services, scalability as the number of clients increase, database design for clients, thin vs thick 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, or Windows Azure. This talk discusses how to architect and design a SaaS application. |
Avoid a Failed SOA - Business & Autonomous Components to the Rescue
Udi Dahan
Level: 300 - Advanced Pre-requisites:
Abstract:Calling everything a service makes the term meaningless.
Now, we've got 13 different kinds of services and no clue when to use which one.
Is a single operation a service? Is a single endpoint a service?
What about cross cutting functions like authorization and data access?
If you've been wondering about these sorts of questions, then this talk is for you.
If you've been looking for a top-down analysis and design process, then this talk is for you.
If you've been looking for concrete guidance on how to choose technology for SOA, then this talk is for you.
Join Udi as he describes the "missing links" in SOA: Business Components and Autonomous Components.
It turns out that components are more important than ever in this new, service-oriented world.
|
Claims Based Security: What it is and Why it will be in your Future
Michael Stiefel
Level: 200 - Intermediate Pre-requisites: Understand Windows Communication Foundation (WCF)
Abstract: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.
|
Designing High Performance, Persistent Domain Models
Udi Dahan
Level: 200 - Intermediate Pre-requisites:
Abstract:Discover how denormalizing your OLTP database schemas and your object models can
improve your systems performance - even for complex business logic scenarios. We'll be touching on
tips and tricks that Amazon and EBay employ to improve throughput. This session will show you when
to use lazy loading, eager fetching, and other high-performance persistence techniques as well as
how to encapsulate this complexity keeping client code loosely coupled.
|
Does the Relational Database Make Sense in the Cloud?
Michael Stiefel
Level: 200 - Intermediate Pre-requisites: Understand relational databases
Abstract:If applications put that 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. |
From One Web Server to Two: Making the Leap
Richard Campbell
Level: 300 - Advanced Pre-requisites: ASP.NET
Abstract:Every web application starts out on a single web server. And while we've been told over and over again that you can always move to multiple web servers, it's not as simple as that! This session digs into the details of what it takes to make that leap - all the changes needed to let your application function properly with more than one server. You'll learn about replicating your web application between two servers and how to keep the content in sync. The techniques and challenges of load balancing are explored. And you'll explore the critical challenge of moving to multiple servers - getting rid of affinity. There's more affinity than just the session object, but that is a key starting point. Moving to multiple servers isn't easy, but this session will give you the check list of what to do to be successful. |
How To Partition and Layer a Software Application
Michael Stiefel
Level: 200 - Intermediate Pre-requisites: Can program in a .NET language
Know how to use Visual Studio.NET
Abstract:How do you make your software adaptable to changing technologies? Everyone answers: use layering. But exactly how do you develop software layers, 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.
|
Intentions & Interfaces - Making Patterns Concrete
Udi Dahan
Level: 200 - Intermediate Pre-requisites:
Abstract:The pattern movement is shifting into high gear. Not only are more patterns coming out, but they are at higher levels and
have deeper meanings than ever before. Unfortunately, many developers are having problems incorporating these patterns in day-to-day
development. In this session, we will see the practical aspects of intentional, interface-based programming that are at the core of
almost all advanced patterns. From validation to data access and service layers, you will leave this session being able
to write more maintainable, intention-revealing code than before.
|
Modeling services using smart use cases
Sander Hoogendoorn
Level: 200 - Intermediate Pre-requisites:
Abstract:Although many organizations apply service oriented architecture at the core of their software development efforts, executing such projects is hard. There are many different stakeholders, even external to the organization. And then there are many different types of deliverables. Legacy code needs to be wrapped, services need to be identified and defined, workflow needs to be modeled, user interface navigation decided, cloud computing needs to be researched. And if that wasn’t enough to make a grown man sweat, try estimating the size and complexity of these often multi man month projects. |
Performance Tuning ASP.NET: Part 1 (Understanding Performance Tuning)
Richard Campbell
Level: 300 - Advanced Pre-requisites: ASP.NET
Abstract:If “Why is the site so slow?” is the refrain, this session is the answer! This first part of a two part session on performance tuning deals with the fundamentals of tuning – how to build performance tests, instrument your web server and find bottlenecks in your web application. Once you’ve dug into this session, you’ll be ready to work on part two, cycling through various performance tuning techniques!
Duo session with Kent Alstad! |
Performance Tuning ASP.NET: Part 2 (The Performance Tuning Cycle)
Richard Campbell
Level: 300 - Advanced Pre-requisites: ASP.NET
Abstract:Part two of answering the question “Why is the site so slow?” Picking up where Part 1 left off, you’ll learn how to profile your application to find performance problems, hypothesize a fix, build and test the fix to determine results. Different tuning techniques will be evaluated including caching and other page optimizations.
Duo session with Kent Alstad! |
The Great Database in the Sky
Kent Alstad
Level: 200 - Intermediate Pre-requisites: Basic Knowledge of SQL, C#, and ASP.NET
Abstract:SQL Data Services (SDS) is the database behind Windows Azure. Learn how to build a simple database application using Windows Azure and SQL Data service. See how you can leverage global, scalable, recoverable, cloud data services and cut major dollars from your next projects IT budget. |