Fabrice's weblog

Tools and Source

News

My .NET Toolbox
An error occured. See the script errors signaled by your web browser.
No tools selected yet
.NET tools by SharpToolbox.com

Read sample chapters or buy LINQ in Action now!
Our LINQ book is also available on AMAZON

.NET jobs

Emplois .NET

ASP.NET Hosting transatlantys

Contact

Me

Others

Selected content

Code signing certificates

If you need to sign a piece of code - eg. a Silverlight application, like I did with Sesame, an EXE, a DLL, an AIR application, a JAR applet - you need a code signing certificate.

A code signing certificate must be bought from a certificate authority, for example GoDaddy, VeriSign, Thawte, and Comodo. Note: a code signing certificate and an SSL certificate are not the same thing.
Be aware that not all providers allow you to sign everything with a single certificate. Some sell separate certificates for Microsoft Authenticode (that's what you need for Silverlight XAPs, for DLLs, for EXEs, and more), for Java, for AIR, and so on. Given that a code signing certificate is not exactly cheap, you may prefer to buy a single certificate that will allow you to sign files in different file formats.

I chose to buy my certificate from K Software, a reseller of Comodo certificates. It was much cheaper and moreover there isn't the restriction the other vendors impose on what you can sign.

Once you have your code signing certificate, you'll use SignTool.exe, which is a command-line tool part of the Windows SDK and installed with Visual Studio, or simply use Visual Studio 2010.

Resources:

Sesame improved: now signed, with auto-updates

A new version of Sesame has been uploaded. It contains several fixes and adjustments. The fixes concern mainly the filtering row.
This new version also introduces client-side paging, signed bits, and auto-updates.

Client-side paging

A new client-side paging feature has been activated. Sesame will now retrieve 15 items by default for each query, and 15 more each time you press "Load more".
This will result in improved speed.
For example, now that Netflix returns 500 items by default instead of 20 previously, the new client-side paging is even more important. To give you an idea: 500 Netflix titles weight more than 3MB, while 15 titles is just about 95KB. No need to say that there's a big difference in speed and resource consumption between the two!

15 items is enough in most cases. In the future, the size of the data pages will be customizable.

Code signing

Previously, when you tried to install Sesame on your desktop, you saw a confirmation dialog that looked like the following:

Sesame without signature

Not very engaging...
Starting with this new release, Sesame binaries are signed. This results in this new dialog box:

Sesame with signature

Less frightening than the "unverified" message, isn't it? This proves also that you'll be using genuine software.

Auto-updating

Another advantage of having Sesame signed is that it allows Sesame installed on the desktop to automatically update when a new version becomes available.

Note: To get the current release, however, you'll have to use the "Remove this application" command in the context menu of the desktop app and then "Install on desktop" again in your web browser.

Next time a new version of Sesame is published, you'll see the following dialog box appear:

Sesame updated 

And next time, for even more exciting features

That's it for today. Next time I'll introduce the provider model on which Sesame relies, and I'll show how this will allow you to browse more than just OData.
You'll see that this will enable a whole new set of possibilities!

VS 2010 tabs appearance improvements

As a follow-up to my post about Visual Studio Pro Power Tools, I advise you to take a look at the following post from the VS team: Document Well 2010 Plus: Hidden Options.
It provides great options for further improving the appearance of tabs in Visual Studio 2010.

I've activated several options straight away, for example to hide the Pin button, to highlight the selected tab, to maintain tabs pinned, and to have tabs pinned appear in original order.

Here is what my tabs look like now:

  • No Pin button (right-click is here for that)
  • No Close button (CTRL+F4, middle-click, and the button at the end of the tab well are enough)
  • No lost space (Min. tab size set to 20)
  • Current tab highlighted
Back from the OData Roadshow

I'm just back from the OData Roadshow with Douglas Purdy and Jonathan Carter. Paris was the last location of seven cities around the world.
If there was something you wanted to know about OData, that was the place to be!

These guys gave a great tour around OData.
I learned things I didn't know about OData and I was able to give a demo of Sesame to the audience.

More ideas and use cases popping-up!

Sesame Data Browser: filtering, sorting, selecting and linking

I have deferred the post about how Sesame is built in favor of publishing a new update.
This new release offers major features such as the ability to quickly filter and sort data, select columns, and create hyperlinks to OData.

Filtering, sorting, selecting

In order to filter data, you just have to use the filter row, which becomes available when you click on the funnel button:

You can then type some text and select an operator:

The data grid will be refreshed immediately after you apply a filter.

It works in the same way for sorting. Clicking on a column will immediately update the query and refresh the grid.
Note that multi-column sorting is possible by using SHIFT-click:

Viewing data is not enough. You can also view and copy the query string that returns that data:

One more thing you can to shape data is to select which columns are displayed. Simply use the Column Chooser and you'll be done:

Again, this will update the data and query string in real time:

Linking to Sesame, linking to OData

The other main feature of this release is the ability to create hyperlinks to Sesame. That's right, you can ask Sesame to give you a link you can display on a webpage, send in an email, or type in a chat session.

You can get a link to a connection:

or to a query:

You'll note that you can also decide to embed Sesame in a webpage...

Here are some sample links created via Sesame:

I'll give more examples in a post to follow.

There are many more minor improvements in this release, but I'll let you find out about them by yourself :-)
Please try Sesame Data Browser now and let me know what you think!

PS: if you use Sesame from the desktop, please use the "Remove this application" command in the context menu of the destkop app and then "Install on desktop" again in your web browser. I'll activate automatic updates with the next release.

VS 2010: New Add Reference dialog, tab layout and options

Microsoft has just published a new free extension for Visual Studio 2010 that provides an improved Add Reference dialog, an improved tab bar, and much more.

The new Add Reference dialog comes with a long-awaited feature: it's now searchable!
The tab bar allows you to display the close button at the end of the bar and not on each tab. It can also sort tabs by project and alphabetically. Tab color can vary by project or according to regular expressions.
I'll let you discover about the other features by yourself (HTML Copy, Triple Click, Current Line Highlighting, etc.).

The name of the extension is Visual Studio Pro Power Tools. I believe it's main features will come out-of-the-box with the next version of Visual Studio.

Good ASP.NET hosting: better, faster, cheaper

After seven years with webhost4life, it was time to move on. Especially because of all the troubles with webhost4life due to their internal migration to a new hosting environment (the company has been bought out).
I've just moved all my websites elsewhere. I'm now using Arvixe and OrcsWeb.

I use OrcsWeb for metaSapiens.com. OrcsWeb kindly offers me free ASP.NET hosting because I'm a Microsoft MVP. I'd like to publicly thank OrcsWeb for this, and I invite you to have a look at what they have to offer.

I use Arvixe for all my other websites, the major ones being SharpToolbox.com, JavaToolbox.com, AxToolbox.com, Proagora.com, LinqInAction.net, ClairDeBulle.com, and madgeek.com.

Moving all my websites wasn't a walk in the park, but it was well worth it. Let's consider what I get with Arvixe:

  • Unlimited diskspace
  • Unlimited data transfer
  • Unlimited domains
  • Dedicated application pools
  • Unlimited POP3 and IMAP mailboxes
  • Unlimited SQL Server 2008 databases
  • Unlimited MySQL 5 databases
  • .NET 1.1, 2, 3.5 and 4
  • Full trust
  • IIS 7
  • Daily backups
  • A powerful and easy to use control panel
  • And more!

All of this for $8 per month. If you don't need all of the above features, you can even get an offer as cheap as $5 per month.
You can even get better rates if you use coupon codes, such as TOPHOST (30% discount) or MVCHOSTING (20% discount).

All in all, I paid only $134 for two years for a great hosting service!
Maybe it's time for you to move too?

Disclaimer: the links to OrcsWeb and Arvixe are affiliate links that may bring me some money home if you sign up.

Sesame update du jour: SL 4, OOB, Azure, and proxy support

I've just published a new version of Sesame Data Browser.

Here's what's new this time:

  • Upgraded to Silverlight 4
  • Can run out-of-browser (OOB), with elevated permissions. This gives you an icon on your desktop and enables new scenarios. Note: The application is unsigned for the moment.
  • Support for Windows Azure authentication
  • Support for SQL Azure authentication
  • If you are behind a proxy that requires authentication, just give Sesame a new try. Silverlight 4 offers improved support for proxies.
  • An icon and a button for closing connections are now displayed on connection tabs
  • Some less visible improvements

Here is the connection view with anonymous access:

Sesame anonymous access 

If you want to access Windows Azure tables as OData, all you have to do is use your table storage endpoint as the URL, and provide your access key:

Sesame Windows Azure authentication

A Windows Azure table storage address looks like this: http://<your account>.table.core.windows.net/

If you want to browse your SQL Azure databases with Sesame, you have to enable OData support for them at https://www.sqlazurelabs.com/ConfigOData.aspx.

I won't show how it works because it's already been done in several places over the Web. Here are pointers:

You can choose to enable anonymous access or not. When you don't enable anonymous access, you have to provide an Issuer name and a Secret key, and optionally an Security Token Service (STS) endpoint:

Sesame SQL Azure authentication

Excerpt from Jack Greenfield's blog:

To enable OData access to the currently selected database, check the box labeled "Enable OData". When OData access is enabled, database user mapping information is displayed at the bottom of the form.
  • Use the drop down list labeled "Anonymous Access User" to select an anonymous access user. If an anonymous access user is selected, then all queries against the database presented without credentials will execute by impersonating that user. You can access the database as the anonymous user by clicking on the link provided at the bottom of the page. If no anonymous access user is selected, then the OData Service will not allow anonymous access to the database.
  • Click the link labeled "Add User" to add a user for authenticated access. In the pop up panel, select the user from the drop down list. Leave the issuer name empty for simple authentication, or provide the name of a trusted Security Token Service (STS) for federated authentication. For example, to federate with another ACS based STS, provide the base URI for the STS endpoint displayed by the Windows Azure AppFabric Portal for the STS.
  • Click the "OK" button to complete the configuration process and dismiss the pop up panel. When one or more authenticated access users are added, the OData Service will impersonate them when appropriate credentials are presented. You can designate as many authenticated access users as you like. The OData Service will decide which one to impersonate for each query by inspecting the credentials presented with the query.
Next time I'll give an overview of how Sesame Data Browser is built.

In the meantime, happy data browsing!

Silverlight and .NET 4 tools

I've just added two new attributes to SharpToolbox.com: Built for Silverlight and Built for .NET 4.

 

There are already more than 30 tools tagged as offering support for Silverlight, and 20 tools for .NET 4.

You can search for tools, libraries and add-ins with these attributes using the search page.

 

PS: if you have submitted tools, be patient, I have a lot to process...

Sesame OData Browser updated

Since the first preview of Sesame was published, I've been working on improving it with new features.
Today, I've published an update that provides the following:

  • Support for hyperlinks (URLs and email addresses)
  • Improved support for the OData format. More OData producers are supported, including Netflix and vanGuide, for example.
  • Fixed display of images (images used to appear mixed up)
  • Support for image URLs
  • Image zoom (try to hover over pictures in Netflix' Titles or MIX10's Speakers)
  • Support for complex types (test this with Netflix' Titles and the OData Test Service's Suppliers)
  • Partial open types support
  • Partial feed customization support (Products.Name and Products.Description are now displayed for http://services.odata.org/OData/OData.svc for example)
  • Partial HTML support
  • Query number is now unique by connection and not globally
  • Support for query continuation (paging) - See the "Load more" button
  • Partial support for <FunctionImport> (see Movies, Series, Seasons, Discs and Episodes with Netflix)
  • Version number is now displayed
  • More links to examples (coming from http://www.odata.org/producers) provided in the connection dialog

You can try all this at the same place as before. Choose Netflix in the connection dialog to see most of the new features in action and to get a richer experience.

Sesame Image Zoom

Sesame Complex Type

There is a lot more in the pipe. Enough to keep me busy for a few more weeks :-)

More Posts Next page »