Switch on the LightSwitch Gill Cleeren Microsoft Regional Director / Silverlight MVP Ordina Belgium

Embed Size (px)

DESCRIPTION

Agenda Introduction: what and why LightSwitch? Part 1: The basics Data Screens Queries Small demo Part 2: Deeper dive More on data More on screens More on queries Writing code in LightSwitch Security in LightSwitch Deploying a LightSwitch application Extending LightSwitch

Citation preview

Switch on the LightSwitch Gill Cleeren Microsoft Regional Director / Silverlight MVP Ordina Belgium Glad to meet you! Gill Cleeren Microsoft Regional Director MVP Silverlight.NET (www.ordina.be) Speaker (TechDays, DevDays, NDC Norway, Spring Conference UK, SQL Server Saturday Switzerland...) Visug user group lead (www.visug.be) Author (Silverlight 4 Data and services cookbook)- Agenda Introduction: what and why LightSwitch? Part 1: The basics Data Screens Queries Small demo Part 2: Deeper dive More on data More on screens More on queries Writing code in LightSwitch Security in LightSwitch Deploying a LightSwitch application Extending LightSwitch WHAT AND WHY LIGHTSWITCH? Introduction Not everyone is a developer... This guy at least looks like one... Developers like working fast as well This is not a Mac... What is LightSwitch? An easy way to build business apps for desktop and cloud applications The LightSwitch Development Experience Start Describe your data Create screens for common tasks Refine Author business logic Customize screen layouts Define custom queries Extend Explore ecosystem components Create custom Silverlight controls Integrate with custom data sources At this point, we already have working app (SL, MVVM, RIA Services) THE BASICS Part 1: Basic #1: Data Data is the base of our application LS allows Connecting to existing data sources Newly created tables Creating relations between tables Even in one or more databases Based on data, LS will do Field validation Transactions processing Concurrency checking Basic #1: Data LS can connect to Existing SQL Server data base SharePoint list WCF RIA Service LS has an internal database as well, used for Internal setting storage Custom entities LS allows changing internal fields, external cant be changed Basic #1: Data LS can create relations between data items If items are in internal database Doesnt work between 2 external items Works between 2 different types (internal and SQL Server for example) Basic #2: Screens Screens allow us to display data A LS app is made up of screens (which may seem logical) Creating a screen is done by: Selecting the type of screen you want Selecting the data you want Have LS generate it for you These screens can be tweaked: How they look What features they offer What commands they allow... Basic #2: Screens Types of screens that exist in LS: New Data Screen Search Data Screen Details Screen Editable Grid Screen List and Details Screen Your own! Basic #2: Screens Appearance of screens can be altered: Using the Screen Designer (Visual Studio) Customization Mode Screen (Run time, sends back the changes to Visual Studio) Basic #3: Queries A query in LS returns data that matches some criteria Return all products in selected category LS has internal query designer A query becomes part of the model Can be used to create (part of) screens from DEMO The BookStore application DEEP DIVE INTO LIGHTSWITCH Part 2: MORE ON DATA Formatting data The Entity Designer is used to create and format data items Cool stuff such as adding space in camel-cased words Business types are a layer on top of normal data types Applies default validation More cool stuff such as default domain onfield Summary properties Can be a computed property Requires coding IDs are int by default Fields can have a choice list as values We can decide whether or not we want to show a data item Custom validation is done by code Sorting and Filtering data For this, we need to change/create a query Can be created specifically for a screen or on entity level to be used throughout the application (global query) Types of data Data can be mixed between Local (internal) data External data Relations can be created between Internal and internal Internal and external LS cant change an external model Links to internal are visualized as dotted lines External data is linked through Foreign key This doenst support transactions Coding the data LS generates objects and members that describe our data Customer table Customer entity Coding the data Application Top level object Allows access to objects within the app Can be used to retrieve active user Data Workspace DW is top level for all data-access within app Contains property for each data source Default: ApplicationData External: XXXData Coding the data Data Source Object per data source in application Members contain entity set properties and query methods Entity Set returns collection of entities Query methods gets results of a query _Single _SingleOrDefault EntityObject Is generated for each entity in an entity collection Contains members to delete or update an entity Can be retrieved by calling query method that returns an entity Types of external data LS can connect with SQL Server Database WCF RIA Services SharePoint List OData Not native, through workaround... DEMO Working with data MORE ON SCREENS Screen Designer LS has no drag and drop interface! Screen Designer does the job Can be used to Add/remove items from a screen Add buttons Add items Add custom controls Change position of items... Screen designer at runtime Screens can be edited while running in the debugger Changes are sent back to Visual Studio Gives preview including data Search screen By default, search is done over all fields Allows exporting to Excel Master-detail On one or more screens, we can easily create an editable master- detail functionality Start with a search screen Create a detail screen Add the detail property as a summary on the search screen Clickable to detail On the child, include a summary back to the master This is easy to work if the user has many screens open DEMO Working with screens MORE ON QUERIES Query designer Visual design of queries Filters Sorting Parameters Not everything is possible We can code the queries Count(), Sum()... Navigating properties DEMO Working with queries WRITING CODE IN LIGHTSWITCH Code in LightSwith Code is required for Business rules Validation... LS has normal code editor (C# or VB, IntelliSense, Silverlight...) Most code will be in default methods Entities Queries Screens _CanRun() can be used to check permissions on this screen from code Data events General methods that are run when data is created, deleted, or modified. Access control methods that are run when data is created, deleted, or modified. Query methods that are run when a data source is queried. Query access control methods that are run prior to a query executing. Data source methods that are run when a data source is saved to. Property methods that are run when a property is modified. Screen events Button methods that are called when a button is clicked. General methods that are called when data is loaded or saved, or when a screen is closed. Access control methods that are called to verify if a user has permission to perform a task. Collection methods that are called when a collection is modified. Code and screens We have access from code to change screens Hide/show/enable elements Set default values from code DEMO Writing code in LightSwitch SECURITY IN LIGHTSWITCH Authentication in LightSwitch 3 options in beta 2: No authentication Forms authentication Windows authentication Specific user API built-in Available after deployment to user specified during deploy SecurityAdministration Permissions in LightSwitch Securing an application starts with defining permissions Developer must create these In code, we can then check the permission Can be granted for debug mode DEMO Security in a LightSwitch application DEPLOYING A LIGHTSWITCH APPLICATION Deployment options Desktop client 2-tier deployment creates an application that runs on the end-users Windows desktop; the database and server components run on a networked computer. Desktop client 3-tier deployment creates an application that runs on the end-users Windows desktop; the database and server components run on a server that is running Internet Information Services (IIS) or on Windows Azure. Browser client 3-tier deployment creates an application that runs in the end-users web browser; the database and server components run on a server that is running IIS or on Windows Azure. Desktop, 2 tier deployment Silverlight 4 Out-Of-Browser App.NET Framework 4.0 All LightSwitch Components (DLLs) Desktop, 3 tier deployment Clients can be on the Internet or same network Silverlight 4 Out-Of-Browser App (Office Integration possible) Internet Information Server (IIS) NET Framework 4.0 LightSwitch Middle-tier components Browser, 3 tier deployment Clients can be on the Internet or same network Silverlight 4 Browser App Internet Information Server (IIS) NET Framework 4.0 LightSwitch Middle-tier components Publishing to Windows Azure DEMO Deploying a LightSwitch application EXTENDING LIGHTSWITCH Where to extend? LightSwitch has 6 extensibility points Extending LightSwitch Possible to combine multiple extensions: An extension provides a Money Market solution by using a Shell that has specific trading navigation A theme that is specific to the trading company A number of screen templates and controls that provide visualizations for trading data A custom data source could be the extension that aggregates the data to the application EXTENSION HOOKS Controls Business types A Business type provides a way to visualize, format, validate and store information/data Basically, this is just a visual formatting on data Screen templates Shell Theme Custom data source DEMO Using extensions in LightSwitch REAL-WORLD LIGHTSWITCH 1.Server products on-prem 2.Easy application access through browser 3.Access to equipment (diagnostic, printers) 4.Office light up for printing,, analysis 5.SharePoint integration for documents 6.Easy access to off-prem cloud 1.Server products on-prem 2.Easy application access through browser 3.Access to equipment (diagnostic, printers) 4.Office light up for printing,, analysis 5.SharePoint integration for documents 6.Easy access to off-prem cloud Demo: Vision Clinic DEMO Vision Clinic Summary LightSwitch is a nice tool to build LOB app with Easy For developers and non-developers Fast Choice of deployment options Extensible Q&A THANK YOU Stay up to date with MSDN Belux Register for our newsletters and stay up to date:Technical updates Event announcements and registration Top downloads Follow our blogJoin us on Facebook LinkedIn:Download MSDN/TechNet Desktop Gadget TechDays 2011 On-Demand Watch this session on-demand via Channel9Download to your favorite MP3 or video player Get access to slides and recommended resources by the speakers Switch on the LightSwitch Gill Cleeren Microsoft Regional Director / Silverlight MVP Ordina Belgium