The easiest way to create business applications for the Desktop and the Cloud
The release candidate for Visual Studio 2013 is available for download! The release candidate bundles many of the features we mentioned in the Visual Studio 2013 Preview—such as better support for team development and a refined Solution Explorer experience—with some noteworthy additions that were requested in the forums.
Download: Visual Studio 2013 RC
I am particularly excited about the new HTML table control, global date time handling support (i.e., DateTimeOffset), runtime performance improvements, the built-in created by/modified by fields on entities, and the new person semantic type. The enhancements are a healthy mix of optimizations for building business applications on Office 365 and across-the-board product improvements that have surfaced regularly in the forums and through customer feedback. Let’s take a look at some of the biggest additions.
In response to increasing requests for higher information density in our HTML client, the jQueryMobile table control is now available. This control is a great alternative to our List and Tile list controls in situations where you want to display tabular data.
The new table control honors our responsive design principles, making it a good choice on the breadth of devices and screen sizes. Just keep in mind that this control is not intended to be an editable grid: editing activities are still done in a separate screen to provide an immersive, task-centric user experience in the application.
We see a lot of questions related to the general problem of data timestamping, auditing, and tracking data changes in the forums. Tracking user changes to data rows is a common application requirement that’s hard to get right, so we went ahead and added CreatedBy/ModifiedBy as well as timestamping to all intrinsic data tables (i.e., data tables created as part of the app, not attached data).
There are four fields that are added when you enable this feature:
· CreatedBy: Stores the id of the user who created the record. The format of the user id is dependent on the authentication mode of your app.
· Created (DateTimeOffset): Stores the timestamp for the created record in UTC time. Note that this value is calculated in the LightSwitch middle-tier, not in the database.
· ModifiedBy: Denotes the user id who last updated the record.
· Modified (DateTimeOffset): Stores the timestamp for the last update to the record. Again, this is stored in UTC time.
While these fields are not intended to implement true database auditing, they are a huge productivity boost when you need to display, query, or correlate user activity in the app. You won’t see these new fields in the table designer, but they are automatically added when you create new tables in your app. If you need to enable or disable these fields for new or existing tables, there is a new property on the table to control the behavior:
Visual Studio LightSwitch is an optimal tool for building applications that model business processes within an organization. People are central to business processes; and the information that’s stored as part of the app that models the process is often related to the people who have helped create it. We’ve heard a lot of questions about relating users of the app to entities in the forums, and the possible solutions to that problem have never been particularly straightforward—often code and custom services were required. This feedback motivated us to create a new person semantic type.
Person fields represent a single user in the application. When you create a field of type person, you’re creating an implicit relationship to someone in your organization.
Person fields in SharePoint 2013-enabled applications will be displayed using a people viewer or people picker. The people picker will allow you to select values for the person field from your existing SharePoint user store, which will commonly be backed by your organization’s Active Directory. (Note: the people picker and viewer controls are not included the Visual Studio 2013 RC.)
Fields of type person also include an API, which allows you to access the SharePoint user profile.
One of the first things you’ll notice when you create a new project with Visual Studio 2013 is that the New Project dialog has been cleaned-up: the LightSwitch folder now appears under the Visual C# and Visual Basic nodes:
We have also added a new project template titled “Cloud Business App”. This new template provides an optimized experience for building Office 365 business applications with LightSwitch.
Today the Cloud Business App template includes a SharePoint-enabled LightSwitch project with all of the aforementioned features. You can expect to see a growing investment in Office 365 focused features in the Cloud Business App project type as we move forward.
LightSwitch has always supported Date and DateTime types; however, a number of folks have requested that we add support for DateTimeOffset to better accommodate globalized app scenarios. We’ve added the new type and it’s available on all entities.
Performance and bandwidth usage are top-of-mind concerns when building great mobile apps. We continue to make inroads in our HTML client to make excellent runtime performance a key part of our offering. When you update your apps to use Visual Studio 2013 RC, your HTML clients will immediately run faster—often much faster—because we’ve switched to using “minimalist metadata” (AKA, JSON-lite) when communicating between our HTML client and middle-tier. The extent of the performance improvement will depend on your data model, but a 50% savings in bandwidth is pretty common. Note that our Silverlight client already uses JSON-lite; we’ve just brought the HTML client up to parity in this regard.
The above improvements are some of my favorites, but I think you’ll find many of the less glamorous bug fixes included in the release to be equally valuable. Please take a minute to download Visual Studio 2013 RC today and let us know what you think! It’s always a good idea to read the system requirements and platform compatibility before you get started.
Note that your existing LightSwitch projects created with Visual Studio 2012 (including Update 1 or Update 2) or Visual Studio 2013 Preview, can be upgraded to Visual Studio 2013 RC (just open it and the product will do the rest). The LightSwitch forum is the best place to post your feedback. Many of the most valuable product improvements are drawn from forum posts and discussions. We very much appreciate you taking the time to try Visual Studio 2013 release candidate and provide feedback.
- Joe Binder, Program Manager
Visual Studio LightSwitch
So excited. To try out new lightswitch features, do you suggest to uninstall Visual Studio 2013 Preview and install Visual Studio 2013 RC? Or directly install Visual Studio 2013 RC on a PC which has Visual Studio 2013 Preview? Please suggest.
Yes, you can install the RC over the Preview. See the compatibility requirements here: www.microsoft.com/.../compatibility-2013
I'm loving the Person semantic type - awesome job guys! :-)
Definitely looking forward to the table control. That'll make a big difference to the applications I've written so far - the list control takes up too much space and a table will look so much nicer. The Created/Modified stuff will be useful too, although I'm doing that manually at the moment and it's not too difficult to set up.
Thanks Beth, its working. I have a small issue with model window. Not sure it's buy design or UI glitch. Here is the issue
I have a shell that I wrote myself but the Visual Studio Version Selector wont pick up 2013 RC. I have tried opening with the VSIX installer in the common 7 / IDE folder of the 2013 RC install folder. Keeps saying that "The extension is already installed to all applicable products". Any ideas anyone?
@Paul - Did you update the vsix manifest to state that your extension supports Visual Studio 2013 (version is 12.0)? Please ask the question and any follow up questions in the LightSwitch forums.
Hi, thank you for release.
What about generating TypeScript .d.ts files for model and screens?
HTML client must-have TypeScript definitions.
ok. there is a table in HTML. but we do not use HTML yet as it hasn't prooved to be mature enough for buisiness projects. the change tracking only for internal databases is kind of useless for real world business projects (there always already exists a database and that is never exclusively used by lightswitch). the people picker is a good idea but only available in sharepoint scenarios (so not for me).
So from this point i'm not motivated to invest into an upgrade.
Let's see if later updates for vs 2013 might change the situation.
Great news, very excited!
Point of inquiry: A common data model structure in many business applications is the parent-child hierarchy. I would love to see some kind of native control for working with parent-child data in LightSwitch, for example a TreeView control. For now, we're relying on 3rd party SilverLight controls, that do not work with the HTML5 client. Any suggestions in that direction?
Our database makes extensive use of composite primary keys and hence composite foreign keys. When wll Lightswitch support this?
Andre, by composite do you mean multiple key segments?
If so, lightswitch should support attaching to such databases if you have already defined them. Is that not working for you?
However, you are correct the LS does not let you author multi-segment keys on databases created by lightswitch.
Love the LS for cloud business app. But I have a small problem with the Screen Designer on Surface Pro.
I am using Visual Studio Ultimate 2013 w/ Update 2 on Windows 8 Enterprise 64-bit on Surface Pro 2, the Screen Designer works properly when first time create a new LS project, you can add and modify the Screen. But if re-open the solution file again, the screen designer is showing blank only.
If I re-open the same solution file on laptop(VS2013 Ultimate w/ Update 2), the designer works fine.
Is that a bug?
I don't personally have a Surface Pro handy, but I did pass this along to the team. It would be great if you could file a bug on Connect with your repro -- those bugs land into our bug tracking database and gets it in front of the right eyeballs to investigate. https://connect.microsoft.com/