Silverlight
- Silverlight runs on MAC and PC.
- There is now a CLR for the Mac.
- Microsoft is not currently planning to provide Silverlight for any unix platform (although there is MoonLight).
- Silverlight 1.0 is basically a media player. It has hooks for javascript etc and some might say it has similar functionality to the Flash movie player.
- Silverlight 1.1 has the real programming API. All further Silverlight references are to 1.1.
- Silverlight will do a (currently undefined) simplified subset of WPF.
- Silverlight gives acess to DOM in the browser.
- Currently, the alpha allows 1mb local storage per page. In future, the storage is probably going to be shared across a domain rather than on a page by page basis.
- Silverlight provides the capability to open a file on disk for read to allow for file uploads etc.
- Interop between JavaScript and hosted Silverlight app is quite easy.
- Silverlight looks a bit fiddly to set up, requiring javascript and sometimes xaml bootstrap – but being improved.
Software Factories
- Allow solution and project structures to be auto-generated based on wizards.
- Can provide code snippets and some (often template-based) code auto-generation.
- Comes with documentation in help files and some context specific stuff.
- Can include GUI designers that generate code.
- People can develop their own domain specific factories.
DSLs
Currently, Microsoft’s take on DSLs is GUI editors, not written language or code. At the Software Factories talk, a GUI tool in Visual Studio for drawing your business entities and relationships was billed as a DSL.
Windows Workflow Foundation (WF)
- Activity based with GUI designer for connecting and composing activities.
- Custom activities and compositions can be developed and inherit from base classes.
- Single threaded and mainly queue based, with some events sprinkled through.
- Activities can reference data from other activities using a mechanism vaguely like data binding.
- Hosted in the CLR, so can be part of a console app, ASP.NET, WinForms etc.
- Handles pickling and reconstitution of long running activities.
- Base Activity classes provide virtual hooks. Eg, ‘Execute’ for doing the work, ‘Cancel’, and ‘Compensate’ for handling rollback scenarios.
New in the Enterprise Library 3.1
- Validation Application Block: provides simple, attribute based property validation. Easy integration with standard ErrorProvider on WinForms and WebForms and WPF is possible. Looks ok but somewhat basic – don’t think it supports warnings for example. It has GUI tool support and also capability to specify related objects which need to be validated.
- Policy Injection Application Block: provides aspect oriented programming (AOP) style coding using attributes. All new AOP objects need to be created using the block’s object factory. Looks useful – there is out of the box support for validation, caching and logging in AOP fashion.