Tag Archives: Visual Studio 2008

NEW RELEASE: Virtual Earth JavaScript Intellisense Helper

I am happy to announce that we have a new release of the Virtual Earth JavaScript Intellisense Helper to bring Intellisense in sync with the new Virtual Earth Map Control 6.1.  In addition to 6.1 compatibility, we also made the following enhancements:

  • Consolidated all scripts into a single VEJavaScriptIntellisenseHelper.js file for better portability
  • Updated Default.aspx to point to the 6.1 Map Control
  • Updated Default.aspx.js to explain how to get intellisense everywhere for a page level map variable
  • Added a readme.txt with history

The quick turnaround is a huge testament to the hard work of the devs on this project.  Although I spent a good set of hours coordinating, writing a little bit of code, and "building" this release, the majority of the work was done by the community in their free time!

We haven’t figured out a way to unit test Intellisense:) or an automated way to validate the helper against the SDK so there is always a chance we missed something.  If you you find any bugs or missing pieces, please file a work item at http://www.codeplex.com/VEJS/WorkItem/List.aspx.  You can download 6.1.041708.1040 here.

VE JavaScript Intellisense Helper bug & workaround

A bug has been discovered when using the Virtual Earth JavaScript Intellisense Helper where JavaScript Intellisense fails to surface in a very common scenario.  The scenario is when you have declared a page level map variable.  You will get Intellisense in the JavaScript function where you instantiate the map variable.  However, you will not in other functions:

image 

In the example above, you would get Intellisense for map in GetMap(), but not in Find().  The problem is that Visual Studio 2008 JavaScript Intellisense engine does not know that GetMap() gets called before Find().  Therefore, there is no way to know that the map variable used inside the Find() function is an instantiation of the VEMap class.  We are investigating the best guidance on how to handle this scenario in Visual Studio 2008. 

On the surface, the workaround seems simple.  You just need to make sure the map variable is a page level instantiation like so:

image 

Of course, this poses a problem at runtime because VEMap doesn’t have access to the ‘myMap’ div yet.  That’s the whole reason people put their map init code in window.onload, body.onload, or pageLoad() for ASP.NET AJAX based solutions.  So what to do?  For now, here is what I am doing and what I have checked-in to source control for our upcoming release that will be in sync with the Virtual Earth Map Control 6.1:

image

The good news is that you really don’t have to comment/uncomment while you are developing.  The code above will "work" as is.  I say "work" because you will get an annoying script error for the "var map = new VEMap();" line of code, but the rest of your page will function as expected.  You just want to make sure you fix things for production:).  Although this is a little bit annoying, I think it is small price to pay for getting JavaScript Intellisense for the Virtual Earth Map Control.

SCREENCAST: Exposing/Consuming RSS/ATOM using WCF 3.5 & Silverlight 2

In this screencast, I show you how easy it is to expose RSS and Atom feeds using the new Web Programming Model (REST) features, classes in the new System.ServiceModel.Syndication namespace, and LINQ to SQL in the .NET Framework 3.5.  Then, you will see how you can use classes from the System.ServiceModel.Syndication namespace to consume RSS and Atom feeds using Silverlight 2.

Screencast: Exposing/Consuming RSS/ATOM using WCF 3.5 & Silverlight 2

Source code: WcfSyndicationLinqToSqlSilverlight2.zip

Service Factory Modeling Edition for Visual Studio 2008

During the recent Public Sector Developer Conference in Washington, DC, I was asked about tools support, beyond the class designer, for modeling WCF services.  My answer was to use the Service Factory Modeling Edition for Visual Studio 2008 from the patterns & practices team.  Here’s a quick screenshot of what the design surface looks like:

clip_image002

 

You will also want to check out the community site at http://www.codeplex.com/servicefactory.  The community site contains hands-on labs for both using and extending the Service Factory, discussions with customers and field, known issues, and roadmap information. In the near future the site will include presentations, demonstration videos, and community contributions.

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.

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

WEBCAST FOLLOW UP: Building WPF Applications in Visual Studio 2008 and Expression Blend

Thanks to everyone who attended!  You can download the deck here and the demo code here.  As always, if you missed it, you should be able to view a recording within 24 hours by following the original registration link.  I have also add the recording link to my list of recorded webcasts here.