280 likes | 384 Views
Session. SL4BIZ - Silverlight for Business. Some points… Microsoft MVP MCP, MCTS. Trainer (hopefully MCT in short ;) Technical writer & speaker. Barcelona Developers User Group Leader INETA Speaker Contact details Name: Jose Luis Latorre E-mail: joslat@gmail.com Twitter: @ joslat
E N D
Session SL4BIZ - Silverlight for Business
Some points… Microsoft MVP MCP, MCTS. Trainer (hopefully MCT in short ;) Technical writer & speaker. Barcelona Developers User Group Leader INETA Speaker Contact details Name: Jose Luis Latorre E-mail: joslat@gmail.com Twitter: @joslat Phone: Sorry! ;) • Speaker
Index • Introductionto Silverlight technology. • Silverlight for Business rightnow. • Demo time! • Futures & what will V5 bring? • Question time.
Silverlight enters the market as an alternative to develop rich islands inside web pages or, better, to design and develop whole sites completely with Silverlight technology – which is really complicated doing so with other technologies. Silverlight also provides high integration with other development environments that we all know. In any case, Silverlight is a Cross-browser plug-in that works in multiple platforms, with high performance including a multi-core technology and designed to solve the most usual (and unusual) RIA Application problems, like loading/unloading of content, flexible layouts, media reproduction and other.. • Why Silverlight?
Silverlight comes from WPF, Windows PresentationFoundation and is, bynow a subset of thistechnologyadaptedto web execution. In fact, in itsfirstversions, itwascalled WPF/E (Windows PresentationFoundationEverywhere). • Origins
Easydevelopment of RIA applications. Development on a confortable environment (VS 2008 & VS 2010) Basedonknown and reliabletechnology (.NET). Thoughtfor intense communications (Webservices, JSON, REST, WCF, etc..) Basedontheevolution of graphical interfaces (WPF, XAML). Itisimportanttoletclearwhat XAML is, known as “eXtensible Application Markup Language”. XAML is a declarativelanguagederivedfrom XML whichfunctionalityisallowusto define the visual interface, itselements and their layout. Itisvery similar toother XML derivedlanguagesfordescribing interfaces, like XHTML. Decouplingthetasks of theDesigner (View) and theDeveloper (Back End, Model, ViewModel, etc..) Multi-device & multi-Browser. • Mainconcepts
Basically, Silverlight is a browser plug-in thatrenders XAML and allowsustoexecutecodeontheclient machine and thussavingusfromsendingtheinformationtothe server, itsprocesor time and thecallbackwiththeinformation, whichiswhathappeswithASP.Netpages (and similar technologies). High performance in multimedia, concretely in video streaming & itsreproduction. Silverlight is vector based. • MainConcepts
Impressiveevolution. Multi platform & Multi browser pluginofaround 4Mb. Alreadyon 60% of theworld’s browsers. Actuallythebestsolution for developing RIA applications. Actual State and Roadmap
Index • Introductionto Silverlight technology. • Silverlight for Business rightnow. • Demo time! • Futures & what will V5 bring? • Question time.
Actual capabilities (with SL4.0 & WCF RIA Services 1.0) Displaying data • Binding enhancements • DataGridenhancements • Rich Text Box • Stacked series Charts • Filter • Grouping • Sorting • Paging • WebBrowser Professional look and feel • ICommand • Right-Click • Context Menu • Implicit Styles / Themes • Fluid UI • Mouse Wheel Getting user input • Drag & Drop • Webcam / mic • RIA Services • Multi touch • COM Validating user input • INotifyDataErrorInfo • Async Validation • IDataErrorInfo • Cross-field Validation • Authentication Saving data and sharing it • Printing • Clipboard • Office Integration
WCF RIA Services Vision – now with 1.0 flavor! • Simplify n-tier data-driven application development • A higher level framework on top of existing building blocks • LINQ, Data Access Technologies, WCF, Metadata • Provide an application architecture that scales to fit needs of breadth line-of-business applications
Actual capabilities (with SL4.0 & WCF RIA Services 1.0) Displaying data • Binding enhancements • DataGridenhancements • Rich Text Box • Stacked series Charts • Filter • Grouping • Sorting • Paging • WebBrowser Professional look and feel • ICommand • Right-Click • Context Menu • Implicit Styles / Themes • Fluid UI • Mouse Wheel Getting user input • Drag & Drop • Webcam / mic • RIA Services Validating user input • INotifyDataErrorInfo • Async Validation • IDataErrorInfo • Cross-field Validation • Authentication Saving data and sharing it • Printing • Clipboard • Office Integration
Vision and Goals • Simplify RIA-style application development • n-tier is hard, and un-natural • Focus on data-driven apps • Bring ASP.NET-style productivity to RIA development • Building blocks for data, security, etc. • Focus on scenarios • Client as an extension of the server • A single logical application
A Unified Story for Client and Server Service Rich Internet Application Browser Application Presentation Logic App Logic Data Access Layer HTML Network DB Services Other Applications
Scaling your DomainServices Databases ADO.NET, ORMs (LTS, EF, …) .NET Clients Silverlight, Phone, WPF Standards Clients JavaScript App Logic Lists/Objects Repository (NHibernate, …) Server Rendering HTML, Sitemaps Services REST/SOAP (Azure, …) Services SOAP, XML, JSON, OData Unit Test Code
WCF RIA Services • DomainContext • Stateful view + Bindable Data • class BookShelfContext • EntitySet<Book> Books { get } • EntityQuery<Book> GetBooksQuery() • Entities • class Book • Data members + Validation • DomainService • Stateless CRUD + App Logic • class BookShelfService • IQueryable<Book> GetBooks() • void ShareBook(Book) • void UpdateBook(Book) • void UnshareBook (Book) • Validation, authorization, business rules • Data Model • class Book Data Model + Metadata + Shared Code Services Application Presentation Logic App Logic Data Access Layer Network DB var q = Context.GetBooksQuery() Context.Load(q); Context.Books.Add(newBook); Context.SubmitChanges(); DomainService.Query Invoke GetBooks() Compose query, execute, serialize results DomainService.SubmitChanges Authorize, Validate, Execute, Persist Queries and ChangeSets
A Prescriptive Pattern • DomainService • Stateless CRUD + App Logic • class PlateViewDomainService • IQueryable<Restaurant> GetRestaurants() • IQueryable<Restaurant> SearchRestaurant(string) • void AddRestaurant(Restaurant) • Validation and authorization rules, • Application workflows, … • Data Model • class Book • DomainContext • Stateful view + Bindable Data • class PlateViewDomainService • EntityList<Restaurant> Books { get } • EntityQuery<Restaurant> GetRestaurantQuery() • EntityQuery<Restaurant> SearchRestaurantQuery(string) • class Restaurant • Data members + Validation Data Model + Metadata + Shared Code Services Rich Internet Application Presentation Logic App Logic Data Access Layer Network DomainContext Domain Service DB Under the covers infrastructure
Index • Introductionto Silverlight technology. • Silverlight for Business rightnow. • Demo time! • Futures & what will V5 bring? • Question time.
Index • Introductionto Silverlight technology. • Silverlight for Business rightnow. • Demo time! • Futures & what will V5 bring? • Question time.
Futures & what will V5 bring? • 5to 6 months for nextversion (Beta - only for developers) • Somesuggestedfeatures: • Improveddatabinding (non fwelements, styles, ancestors-relativebinding, static…) • 3D support • More platforms, iPhone, iPad, .. • Encoding & Streaming fromtheclient • Consolidate SL & WPF • Reporting • Better GPU Usage; Shaders • Local DB • BetterTextRendering.. • See more & participatehere: • http://dotnet.uservoice.com/forums/4325-silverlight-feature-suggestions • http://dotnet.uservoice.com/forums/57026-wcf-ria-services
Futures & what will V5 bring? • See more & participatehere: • http://dotnet.uservoice.com/forums/4325-silverlight-feature-suggestions • http://dotnet.uservoice.com/forums/57026-wcf-ria-services
Index • Introductionto Silverlight technology. • Silverlight for Business rightnow. • Demo time! • Futures & what will V5 bring? • Question time.