Tuesday, September 2, 2008

Tech Ed 2008 Day Two - SOA305 Getting workflows running and talking in your applications

  • (Speaker: Mark Rees)
Use for: Long Running Episodic - Start/Stop State Machine or sequential Will it increase your productivity One workflow runtime per app domain. Typically create the workflow runtime using the singleton pattern. Each workflow will have an instanceID GUID that is used to reference instance beyond the lifetime of the application. SqlWorkflowPersistenceService Threading - 1 thread per worklow at any time. Give thread safety and Data syncronisation. However, there is no assurance that it will always be on the same thread. Thread affinity. Default scheduler from the thread pool. Async to the caller thread (returns instantly) Manual Scheduler - caller thread will wait for the workflow to return. Important for controlling the number of threads. High load environments. Has different behaviour for handling delays. Will need to manually resume. True will create a new thread to resume after the delay. Persistence In memory by default. Can't handle restarts. SqlWorkflowPersistenceService - Scheme and Logic (stored proc) install scripts DB polling time defaults to 60 seconds select * from InstanceState Tracking Capture events and data during the execution of a workflow. Performance measurement Profiles to filter what to track - points and locations Tracking_schema.sql Tracking_Logic.sql Useful to let processes outside of workflow know the state. Communication Input/output params .NET 3.0 External Data Exchange Model Recommend Microsoft .NET 3.5 Send Receive Activity Full WCF for WWF. Send - Call a WCF Service Receive - A WCF Service will call the workflow WorkflowServicehost - WCF WWF Hybrid ContextBinding for WWF like wsHTTPBinding with instanceId in header

Monday, September 1, 2008

Tech Ed 2008 Day One - DEV 335 Visual Basic 2008: Developer Productivity

  • (Speaker: Nick Randolph)
This was not really for me being a C# developer. Was hoping to pick up some interesting tips. I should have probably gone to BIN252 on SQL Server 2008 reporting services.

Tech Ed 2008 Day One - WEB 302 ADO.NET Data Services - The zen of RESTfulness and the Art of "Astoria"

  • (Speaker: Scott Hanselman)
POX - Plain old XML REST - Representational State Transfer HTTP GET, POST, PUT, DELETE ADO.NET Date Services This code was generated by a tool. tcpTrace - port forwarding Ctrl + . - Intillicrack DataService.js Fiddler MCSE (Microsoft Certified Solitaire Expert)

Tech Ed 2008 Day One - DAT 302 Overview of SQL Server 2008 - new features

  • (Speaker: Jeremy Boyd)
  • Auditing to file
  • windows application log
  • windows security log
  • Native Encryption
  • Enhanced Mirroring - Auto Page repair and log stream compression

sp_estimate_data_compression_savings ROW/PAGE

Filtered Index
Create Nonclusted index blah on Production.xyz (blah, blah) WHERE PID >= 27 AND PID <= 36;

Resource Governor
(Handles Contention) E.g Limit resources used for reporting. Resource Pools, Workload Groups, Classifier Functions (Which workload group to assign a connection to)

New Data Types
Date, Time, DataTime2 (System clock precision), DatetimeOffset (For use with timezones) select * from sys.systypes where name like '%date%' or name like '%time%' SELECT SYSDATETIME() AS SYSDATETIME, SYSDATETIMEOFFSET() as SYSDATETIMEOFFSET, SYSUTCDATETIME() as SYSUTCDATETIME SELECT SWITCHOFFSET ( '2005-01-20 23:00:00.00000 +4:00', datepard(TZoffset, sysdatatimeoffset()) TODATETIMEOFFSET - Adds timezone information to a DateTimeOffset.

HierarchyID - supports depth-first and breadth-first indexes. CLR based. Parent.GetDescendant(Child1, Child2) Node.IsDescendantOf() Node.GetLevel GetRoot Node.GetReparentValue(oldParent, newParent)

Grouping Sets - multiple group by clauses

Multirow insert CREATE TABLE tbl_RowCon (PDT VARCHAR(10) PRIMARY KEY, val int) INSERT tbl_RowCon VALUES ('PDT A', 10), ('PDT B', 5), ('PDT C', 10)

+= assignment

Merge Statement insert (DML statement combining multiple operations into one) WHEN MATCHED THEN (so UPDATE) WHEN NOT MATCHED THEN (so INSERT) SOURCE NOT MATCHED (so DELETE)

conditional insert

Table parameters - Readonly when used as a parameter. - using multiple parameters requires multiple round trips for multirow data. - temporary tables use disk resources and could be prone to locking. Leads to stored procedure recompilation. + offers more flexibility. Well defined scope - won't require locks. Can reduce round trips. CREATE TYPE EmployeeTableType AS TABLE (EmpID INT, EmpName nvarchar(100))

Spares columns - Generally the column wont have any data c XML COLUMN_SET FOR ALL_SPARSE_COLUMNS Values stored in XML will be expanded out to columns.

Large user defined types supported (>8000)

Spatial Data - Vector based. Geometry (Points, line strings, polygons) - Geography (geodetic)

Filestream Storage Attribute on varbinary(MAX) Use when objects are larger than 1MB and provides faster read access. Small objects are often better stored in the database. Exists as a folder on disk as specified - $FSLOG & filestream.hdr (header) .PathName() - filepath of the varbinary(max) column.

Tech Ed 2008 Day One - SOA 205 Extending the application platform with cloud services

  • (Speaker: Chris Auld)
XOML (Basically XAML)

Tech Ed 2008 Day One - WEB 301 ASP.NET MVC - Should you care?

(Speaker Scott Hanselman)
  • bin deployable (System.Web.Adstractions, System.Web.Mvc, System.Web.Routing)
  • Testable via System.Web.Abstractions
  • Rely more on convention over configuration (I.e. expected folder structure). The idea being reduced complexity.
One man's magic is another man's convention.
  • In the stack trace window in VS 2008 - Show External Code
  • The general flow of a page request is controller > model > view > render
  • The routing components aren't specific to the MVC web applications.
  • MVC Contrib
  • NHaml
  • Moq
  • ASP.NET MVC doesn't use viewstate or postbacks (In the sense of a more traditional ASP.NET web application)
  • ZoomIt - Presentation tool

Tech Ed 2008 Day One - Keynote

Live Mesh Folders At first glance it appears to be a internet based file sync tool with the added ability to share the folders with friends and family. All files must be sync'ed up to the online storage, although it also appears to sync directly across the local network.

Remote Desktop There is also the ability to create a type of remote desktop session. Sitting at home on my local network it doesn't appear to make much use of p2p technology as a remote session between my desktop and laptop is painfully slow compared to a standard remote desktop connection.