FOLLOW UP: Public Sector Developer Conference (Washington, DC)

UPDATE: Added link to LINQ deck

Thanks to everyone who attended!  Here are the links to the decks and code for the sessions.  I don’t have the content from the LINQ session yet, but will update this post when I get it.  However, I did promise to have a post up this morning.

The Benefits of Visual Studio Team System to Your Organizationdeck

What’s New in Windows Communication Foundation (WCF) and Windows Workflow (WF) in Visual Studio 2008 & the .NET Framework 3.5deck, code

Data Access with Language Integrated Querydeck

Building Rich Internet Applications Using Microsoft Silverlight 2.0deck, code

If you are interested in some additional sessions on LINQ & Workflow Services, I have a list of recorded webcasts in My Recorded Webcasts list.  There is a deep dive into Workflow Services as well a session similar to Joel’s LINQ session that covers LINQ to SQL in a little more detail.

WEBCAST FOLLOW UP: Silverlight 2 for Business Applications

Sorry for the slow follow up post.  For those of you looking for Pete’s deck from the webcast, it’s at http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/03/20/Slides-from-Silverlight-for-Business-Applications-Webcast.aspx.  The demo app Pete showed is at http://www.cookingwithxaml.com/meals/financials/default.html.  The source code for the app is available from http://www.financialdevelopers.com/.  The direct link is http://www.financialdevelopers.com/assets/SilverlightinFinancialsDemonostratorSource.zip.

Technorati Tags:

Improving the performance of drawing large vector datasets on the Virtual Earth map.

One of the topics that comes up often when I give Virtual Earth programming talks is that there is a point where performance degrades when adding shapes (pushpins, polylines, polygons) to the map.  When depends on the complexity of the shapes you add.  I always go on to explain that this is not 100% a limitation of the map control as much as it is a limitation of the fact that the control is an JavaScript control.  Therefore, we are at the mercy / limitations of JavaScript in the browser.  The recommendations I usually make are:

  • You as the developer need to manage the shape objects on the map.  Only show what’s necessary in your given view.  For example, if you are looking at a map of the united states, don’t try to draw county polygons for a given state.  Only draw county polygons when you have zoomed in to a level where it would make sense.  After you have zoomed in, you need to clear any polygons outside the current map view.
  • I agree that the first approach takes requires an extra a bit of client side coding to manage shapes.  Another approach is to generate tiles on the server and overlay those tiles on the existing map, effectively drawing vectors in a much more efficient manner without having to creating a huge amount of JavaScript objects.  Johannes Kebeck has some great articles on how to go down that path.  I have links to the articles in my working list of Virtual Earth Resources.  Another approach is to use a third party solution like MapDotNet Server 2007 to do the heavy lifting for you.  If you are interested, check out their Interactive SDK and samples.

If using something like MapDotNet isn’t an option for you and you need to go down the "do it yourself" path, then you’ll want to check a post from Keith Kinnan I just came across titled Microsoft Research Releases Tiled Vectors Demo.  There’s some great information and code samples for you "doityourselfers."

Technorati Tags: ,

Silverlight 2, Accessibility, Section 508, etc.

During my recent Silverlight 2 talks, I have had a handful of questions around building Section 508 compliant applications with Silverlight 2.  I’ve mentioned that the accessibility features are not in the current beta, but they are coming.  If you are interested in learning a little bit about what is coming, then check out the video at http://visitmix.com/blogs/Joshua/Silverlight-2-Accessibility-with-Mark-Rideout/ for details.  As the video mentions, if you want to get a head start, you just need to look into UI Automation from WPF since Silverlight will use the same approach.

Technorati Tags: ,,,

UPDATE: New Virtual Earth JavaScript Intellisense Helper release

One of our team members found a bug.  We fixed it and created a new release today.  Bug details and release download are available at http://www.codeplex.com/VEJS/Release/ProjectReleases.aspx?ReleaseId=12065.

We are ramping up for our next release.  If you are interested in what we are planning on doing/fixing, then please visit http://www.codeplex.com/VEJS/WorkItem/List.aspx.  Make sure you sort by open issues.  Please let us know if you have found any bugs in the helper or have any suggestions for the next release.  You can add work items to our list.  You can even vote on work items.  Let your voice be heard:)!

WEBCAST FOLLOW UP: Microsoft Synchronization Services for ADO.NET

UPDATE: I have added a recording link for this webcast to My Recorded Webcasts list.


Thanks to everyone who attended.  Sorry about the Live Meeting slide animation issue.  Hopefully the webcast was still valuable even with the difficulties.  Here are the links to the deck & demo code:


Deck


Sync Services 101 / Going N Tier Demo (first two demos)


Filtering Data


Applying Additional Server Logic


Conflict Resolution (from synguru.com)


Server Database


The demos require Visual Studio 2008 and depend on a SQL Server 2005 database.  I made the database available for download as well.  You’ll have to attach it to your SQL/SQL Express instance and make sure the connection strings in the project are correct.


The conflict handling demo is a direct link to the demo from http://syncguru.com.  Remember there are some great advanced samples and demos there as well.  There is also some good information about the next version too.


Lastly, I didn’t really call this out in the webcast, but Sync Services is a piece a much larger puzzle called the Microsoft Sync Framework.  You can learn more about the future of sync at http://www.syncguru.com/projects/SyncServicesDemoConflictHandling.aspx.


DC Launch Follow Up

Thanks to everyone who stuck around for my "Defy Occasionally-Connected Challenges With Smart Client Applications" session at the DC Launch.  The deck and demo files are available here:

Deck

Workflow Services Demo

Sync Services for ADO.NET Demo

Server Database

The demos require Visual Studio 2008 and depend on a SQL Server 2005 database.  I made the database available for download as well.  You’ll have to attach it to your SQL/SQL Express instance and make sure the connection strings in the project are correct.  You’ll notice that I didn’t include a download for the WPF demo.  That’s because the UI in the Sync demo is the exact same UI from the WPF demo.

I mentioned recorded/upcoming webcasts a few times during the presentation.  You can find a list of all my recorded webcasts at http://devkeydet.com. Here are the recorded webcasts related to the topics I covered:

Introduction to Windows Communication Foundation ***

Introduction to Windows Workflow Foundation ***

Introduction to Windows Presentation Foundation ***

Smart Clients: What’s New in Visual Studio 2008?

Introduction to LINQ + LINQ to SQL

What’s New in the WCF and WF in Visual Studio 2008 & the .NET Framework 3.5

Building Workflow Services (WF+WCF) with Visual Studio 2008

Building WPF Applications in Visual Studio 2008 and Expression Blend

*** These webcasts are fairly old.  They are based on .NET 3.0 / VS 2005.  The core concepts obviously apply, but the developer experience for all of these technologies has greatly improved in Visual Studio 2008.

I also mentioned my webcast on Thursday.  I’ll be presenting a deeper dive into the Microsoft Synchronization Services for ADO.NET.  Details are here.

Virtual Earth: Drawing on the map and storing the result in SQL Server 2008

During my Virtual Earth Workshop at the GIS-T (www.gis-t.org) conference, I demo’d how to execute a spatial query in a VE scenario by using JavaScript, WCF, and SQL Server 2008.  The query returned GeoRSS to the browser so the VE map control could use it to draw polygons on the map.  I ingested the spatial data into SQL from ESRI shape files provided by the US Census Bureau here using a free tool available here.  I’m planning on cleaning up the code, making the sample available, and recording a channel 9 screencast explaining the sample.   As a result of the demo, I received the following email from one of the attendees:

"I would like to know if you have a demo of how I could store the coordinates created by generating points or polylines from on the map into a database. You can save them as part of collections but I would like to know how they can be stored into a database."

I do not have such a sample.  However, Johannes Kebeck, has a sweet series of posts around Virtual Earth & SQL Server 2008:

Virtual Earth & SQL Server 2008 – Part 1: Introduction (1/2)

Virtual Earth & SQL Server 2008 – Part 1: Introduction (2/2)

Virtual Earth & SQL Server 2008 – Part 2: Spatial Data Management in SQL Server 2008 (1/3)

Virtual Earth & SQL Server 2008 – Part 2: Spatial Data Management in SQL Server 2008 (2/3)

Virtual Earth & SQL Server 2008 – Part 2: Spatial Data Management in SQL Server 2008 (3/3)

Virtual Earth & SQL Server 2008 – Part 3: Getting Started with Virtual Earth

Virtual Earth & SQL Server 2008 – Part 4: Integrating SQL Server 2008 and Virtual Earth (1/6)

Virtual Earth & SQL Server 2008 – Part 4: Integrating SQL Server 2008 and Virtual Earth (2/6)

Virtual Earth & SQL Server 2008 – Part 4: Integrating SQL Server 2008 and Virtual Earth (3/6)

Virtual Earth & SQL Server 2008 – Part 4: Integrating SQL Server 2008 and Virtual Earth (4/6)

Virtual Earth & SQL Server 2008 – Part 4: Integrating SQL Server 2008 and Virtual Earth (5/6)

Virtual Earth & SQL Server 2008 – Part 4: Integrating SQL Server 2008 and Virtual Earth (6/6)

Virtual Earth & SQL Server 2008 – Part 5: Conclusion

Part 4 (6/6) is titled Inserting Data into SQL Server 2008 and answers the question.  However, Johannes takes a slightly different approach than the pattern I showed in my demo.  I love the fact that he took a fairly platform agnostic approach in his examples because it means that anyone can use the approach regardless of their client & server libraries.  However, I’m a .NET evangelist.  It’s my job to highlight our great developer platform.  We have some great libraries and APIs in the Microsoft AJAX Library / ASP.NET AJAX & the Windows Communication Foundation that could help make building out this scenario much easier.  I plan on taking the same scenario and building it out using them.  I’ll be working on it, along with my original example, in the next week or so.  When I am done, I will make the source code available and have 2 screencasts walking showing how to build them step by step.

WEBCAST: Microsoft Synchronization Services for ADO.NET

Microsoft Synchronization Services for ADO.NET makes building applications for occasionally connected environments a logical extension of building applications where you can count on a consistent network.  Rather than simply replicating a database and its schema, the Synchronization Services application programming interface (API) provides a set of components to synchronize data between data services and a local store. Applications are increasingly used on mobile clients, such as laptops and devices, that do not have a consistent or reliable network connection to a central server. It is crucial for these applications to work against a local copy of data on the client. Equally important is the need to synchronize the local copy of the data with a central server when a network connection is available. The Synchronization Services API, which is modeled after the ADO.NET data access APIs, gives you an intuitive way to synchronize data. Join us for this session as we introduce Synchronization Services and how you can build applications that use the services.

When

Thursday, March 27, 2008

2:30P-4:00P EST (11:30A-1:00P PST)

Register at this link:

http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032369780&Culture=en-US