Some new in-mix downloads
There are some very cool downloads suddenly appear on MSDN download site due to all new technologies, presented at Mix ‘09. So let’s start
- Silverlight 3 SDK beta 1
- If you do not want to install full SDK, you can install only runtime for Windows or Mac. Then, you can read documentation online. You do not need it, if you’re going to install
- Silverlight 3 tools beta 1 for VS2008 SP1. After you have all this, go to the official Silverlight web site and start working.
- If you re “in” .NET RIA Services, you can download March ‘09 preview of it also to use with new Silverlight. It also makes sense to read about what is it in Brad’s blog.
- Also new Silverlight toolkit was released with SL3 support and a bunch of new up/down controls, LayoutTransformer, Accordion and TransitioningContentControl.
- Microsoft Expression Blend 3 Preview. It includes SL3 and WPF3.5 SP1 support, but excludes SketchFlow by now.
To learn more about Silverlight 3.0 and Blend 3.0, you can see first day keynotes at mix 09, Rollup of what’s new in Silverlight 3 by Joe Stegman. This includes offline mode support by Mike Harsh. I’ll write another separate post for this topic, due to the fact, that I’m a desktop guy, so wary about the future of WPF.
To learn more about how to use new Expression Blend, it worth to see this session by Pete Blois. Another good sessions are also wrapped for you by Scott Hanselman.
After we done with all web stuff, let’s speak about a client
- Microsoft MultiPoint SDK. Do you want to use multitouch in your application? This SDK provides you with ability to use up to 250 individual mouse devices simultaneously. And yes, it works with Windows XP SP2 too
- Internet Explorer 8 for Windows XP x32, XP x64, Vista x32, Vista x64
- In case, that you do no have Windows Vista or Windows Server 2008, you can download 30-day evaluation virtual hard disk of Windows Vista or Windows Server 2008 Enterprise and see how it works
. - Also a small present for my old friends (from my military consulting era) – WPF and Silverlight APIs for GIS engine of ESRI. Have a fun!
That’s all by now, going to write a review for new book and will publish it soon (probably even before, you’ll finish with all those downloads and readings). So, stay tuned and be good people.
March 20th, 2009 · Comments (2)
WPF Line-Of-Business labs and Silverlight vs. Flash
Small update today (mostly interesting links)… During my last “Smart Client” session I was asked about WPF LOB application development labs. So, there are two full labs, I noticed about:
Both labs include WPF ribbon and DataGrid, Southridge also come with M-VV-M design sample and some other interesting features. As for me, it seemed, like some parts of those labs can be easily used “as-is” for production level applications, like it was done with SCE starter, which turned into TimesReader (by the way, it has free version again).
For those, who still trying to consider what to use for their next killer app, I propose to read following article from Jordan, which compares between Silverlight and Flash. And then see composite application guidance to use Prism for Silverlight development. Here the video of it usage by Adam Kinney from Channel 9
Have a nice day and be good people
February 18th, 2009 · Comments (6)
Microsoft Tag vs. QR tag
One of Microsoft’s announcements on CES09 was Microsoft Tag. Do you remember last try of Microsoft to create mobile barcodes on Live platform? I remember it. So why Windows Live Barcode was deprecated, while Microsoft creates new one? What the key difference between Quick Response approach, barely adopted by industry and new colorful MS stuff? Let’s try to understand differences and approximate future fail or success on this technology.
Key differences:
- The only information contains inside MS Tag is ID, which should be used to fetch all relevant information from tag server while QR contains all necessary information and can be used offline. Both technologies have it own advantages and disadvantages. From one hand, you can manage and fix results all the time, from the other hand, what happen with fraud and offline usage?
- MS Tag using High Capacity Color Barcode (HCCB) technology, which makes able to encode more information into relatively small area. Also because of small amount of information, errors can be handled easily for MS Tag. For encode 1 byte we need 8 symbols in QR codes, while in MS Tag only 4.
- MS Tag using thee base colors (CMYK) while QR only two (BW), thus in offset print MS Tag is much more sensitive to the quality of color plates. From other hand, if I my approximation is right, MS Tag can be printed in gray palette too, due to the fact, that it uses color differences, rather then color codes for decoding. Also it seemed, that hardware used for four barcodes will be more expensive, than similar hardware for two colors.
- Because of the fact, that QR is mature technology (first ISS was presented in October 1997), there are huge amount of devices, supports it natively, while MS Tag is rather new. From other hand, http://gettag.mobi/ provides WM,J2ME, IPhone, Blackberry and Symbian native clients for reading MS Tags. So it seemed, that very soon (if Microsoft will not abandon it again) this will be distributed de-facto.
- QR Code® is registered trademark of Denso Wave Inc, which makes this technology problematic for future enhancements, also HCCB, used for MS Tag is licensed by Microsoft, however as far as I understand from their IPL site, it can be used as far as remains under MS patent agreement. But maybe an appliance of this technology is protected.
Bottom line – I’m very skeptic with MS Tags, however let’s give it a chance and see whether MS Tag will become another Semacode, ShotCode, PDF417, Dot Code, Aztec Code, etc. or become Barcode technology we see every day everywhere…
Meanwhile, you can create your own MS Tag, download free reader for your mobile device from http://gettag.mobi and decide whether you like it or not. For me, this technology is cool, but the code itself is very ugly
Be good people and have a nice day.
January 9th, 2009 · Comments (26)
Source code for Silverlight 2 controls
Too much exciting news today. Shortly after announced about Windows 7 beta download, I found, that Joe Stegman, Seema Ramchandani, Andre Michaud, Jon Sheller and other guys from Silverlight team released the source code of managed Silverlight controls, included in System.Windows.dll, System.Windows.Controls.dll, and System.Windows.Controls.Data.dll. Get it, you have a lot of thing to learn from this package.
Download Silverlight 2.0 controls source code >>
January 7th, 2009 · Comments (4)
New version of Hebrew and Arabic support for Silverlight was released
Please notice, that new version (RC1) of Bidi support for Silverlight was released. What’s new in this release?
- Initial version of bidi DataGrid
- Listbox, CheckBox, RadioButton, DatePicker, Tab and TabItem controls were added (tnx to Yasser Makram and Emad from Santeon)
- There are some changes in nBidi algorithm by Itai Bar-Haim
- Button and ToggleButton base fixes + valid default templates for all controls
- Some performance and stability issues.
So, be sure, that you have the latest release and take a part of tests, which were also updated to new version.
Great thank to all contributors for huge united work done. If you want to take a part in development drop me a note.
Download latest release (RC1) of bidirectional text support for Microsoft Silverlight >>
January 4th, 2009 · Comments (7)
How to migrate from CS2007 to WordPress, Movable Type (or any other blog engine, supports XML-RPC) with C#
Today we’ll speak about migration from community server 2007 to another blog engine, when you have no access to CS and/or other database.
Let’s set targets first:
- You want to migrate all posts
- You want to migrate all comments
- You want to transfer all hosted images and media files
- You should update all internal links
Looks complicated? not really. First of all, grab any XML-RPC framework (for example xml-rcp.net). Then create a proxy to CS2007 – it uses Metablog API. You can see all defined methods by accessing /blogs/metablog.ashx
[XmlRpcUrl("http://blogs.microsoft.co.il/blogs/tamir/rsscomments.aspx?PostID=", posts[i].postid);
_rssReader = new XmlTextReader(commentsRSSURL);while (_rssReader.Read()) {
_rssReader.MoveToContent();
if (_rssReader.NodeType == XmlNodeType.Element) {
if (_rssReader.Name == "pubDate") { date = DateTime.Parse(_rssReader.ReadElementContentAsString()); }
if (_rssReader.Name == "dc:creator") { author = _rssReader.ReadElementContentAsString(); }
if (_rssReader.Name == "description") {
if (!shouldSkip) {
content = _rssReader.ReadElementContentAsString();
comments.Add(new Comment {
author = author,
date_created_gmt = date,
status = true
As you can see, now you have all comments. Next step is to detect and reupload all images to the new host.
private const string imgRX = "<img[^>]*src=\"?([^\"]*)\"?([^>]*alt=\"?([^\"]*)\"?)?[^>]*>";
var matches = Regex.Matches(posts[i].description, imgRX);
Console.WriteLine("Fixing {0} images…", matches.Count);
for (int j = 0; j < matches.Count; j++) {
Console.WriteLine("Retriving image #{0}", j);
var url = matches[j].Groups[1].Value;
if (url.Contains(baseURL)) {
try {
var data = wc.DownloadData(url);
Console.WriteLine("Uploading image #{0}", j);
var uf = newblog.uploadFile(newblogid, newUsername, newPassword, new MediaObject {
bits = data,
name = matches[j].Groups[1].Value.Substring(matches[j].Groups[1].Value.LastIndexOf(‘/’) + 1)
});
posts[i].description = posts[i].description.Replace(url, uf.url);
} catch { }
}
}
Now all images are stored in the new location and all image links are updated within stored posts. Next step is to upload all posts to the new location. CS stores tags as categories, which is wrong. Why? Because categories can be hierarchical, while tags cannot. So we have to convert all categories within retrieved posts into real tags. After it we can post everything
for (int i = posts.Length – 1; i >= 0; i–) {
posts[i].mt_keywords = string.Join(",", posts[i].categories);
var pid = newblog.newPost(newblogid, newUsername, newPassword, posts[i], true);
foreach (var comment in posts[i].comments) {
try {
var cid = newblog.newComment(newblogid, newUsername, newPassword, pid, comment);
} catch { }
}
Now we have to update all internal links within new locations. For this we should grab all posts back to learn new URLs.
var newPosts = newblog.getRecentPosts(newblogid, newUsername, newPassword, toFetch);
for (int i = 0; i < newPosts.Length; i++) {
foreach (var pi in _postsIndex) {
if (newPosts[i].description.Contains(pi.Key)) newPosts[i].description = newPosts[i].description.Replace(string.Concat(baseURL,pi.Key), pi.Value);
}
wpblog.editPost((string)newPosts[i].postid, newUsername, newPassword, newPosts[i], true);
if (!refereces.ContainsKey(newPosts[i].link)) refereces.Add(newPosts[i].link, posts[i].link);}
We done. Last, but not the least, is to update old posts with new URL to make visitors able to forward into new location.
csposts = csblog.getRecentPosts(csBlogid, csUsername, csPassword, toFetch);
for(int i=0;i< csposts.Length;i++) {
if (_postsIndex.ContainsKey(csposts[i].link)) {
string write = string.Format("<h3>[This blog was migrated. You will not be able to comment here.<br/>The new URL of this post is <a href=\"{0}\">{0}</a>]</h3><hr/>", _postsIndex[csposts[i].link]);
csposts[i].description = string.Concat(write, csposts[i].description);
csblog.editPost((string)csposts[i].postid, csUsername, csPassword, csposts[i], true);
Console.WriteLine("Post {0} was updated",i);
}
}
Have a nice day and be good people!
January 1st, 2009 · Comments (8)
Silverlight Bidi Controls Library RC0 and movement from Beta 2 to RC0
Finally, I got free minute to convert Silverlight BiDi controls from Silverlight beta 2 to RC0 (you can download SL rc0 tools for VS2008 here) and as usual some breaking changes (the full list is here)
- Calendar and DatePicker moved from System.Windows.Controls.Extended into System.Windows.Controls – Extended namespace is now deprecated.
- CalendarButton is not inside System.Windows.Controls.Primitives
- TypeConverter.CanConvertFrom(Type sourceType) was changed and now it has new first parameter ITypeDescriptorContext context
- TypeConverter.CanConvertFrom(object value) was changed and now it has new first parameter ITypeDescriptorContext context and second parameter System.Globalization.CultureInfo culture
- TypeConverter.ConvertFromString is not virtual anymore
- TextDecorationCollectionConverter was removed
- generic.xaml should be placed into themes directory (as in WPF)
- VisualTransition.Duration is not VisualTransition.GeneratedDuration
- ContentPresenter has no HorizontalContentAlignment and VerticalContentAlignment. It has HorizontalAlignment and VerticalAlignment now. Also it has no Background, Padding,TextAlignment,TextDecorations and TextWrapping properties
Those, basically, all changes done in Silverlight RTL support library. So, you can download and use the latest version within Silverlight RC0 version
Have a nice day and be good people.
October 4th, 2008 · Comments (8)
Free Microsoft Expression series video training catalogs
MSDN download center just published video catalogs, where you can find sample chapters of Total Training’s video series for Microsoft Expression studio. Worth to download and see. Here the breakdown by products
- Expression Blend 2 [Windows / Mac]
- Expression Encoder 2 [Windows / Mac]
- Expression Design 2 [Windows / Mac]
- Expression Media 2 [Windows / Mac]
- Expression Web 2 [Windows / Mac]
Also, if you are “in” Office development, it makes sense to take a look in to Data Connectivity Components for Office 2007 System. It can be used by non-Microsoft Office applications to read data from Office system files.
Happy downloading!
October 3rd, 2008 · Comments (2)
.NET 3.5 SP1 is RTM and available for download
For all those who asked, .NET 3.5 SP1 is final and available for download. What’s inside?
- ASP.NET Dynamic data
- Core improvements for CLR
- A lot of performance improvements in WPF
- ClickOnce enhancements
- ADO.NET with Data Services and Entity Framework
- LINQ2SQL and Data Provider for SQL Server 2008, that was released last week
- WCF with easier DataContract serialization
Download it with Web Installation or as Full Package
For more information, please see Read Me and KB about .NET 3.5 SP1 RTM. If you faced with any issue, please provide us with feedback via MS Connect
August 10th, 2008 · Comments (3)
Arabic and Hebrew languages bidirectional support for Silverlight 2.0 beta 2
Those days, I’m, together with guys from Microsoft Egypt and Santeon, finishing development of bidirectional input and output support for Silverlight. I want you to take part in alpha testing of this solution. Please see the test form here and try it.
Also, you can download latest development build or compiled binary version with debug symbols and try it yourself. Please, if you’re in any issue, report it, by using issue tracker in CodePlex.
In order to use it, all you have to do is to use custom namespace within your project and then, you’ll be able to get almost all controls, you know, but with Arabic and Hebrew RTL and LTR support. You have to set one property: FlowDirection to change the rendering method (exactly as in WPF). Here an example of usage.
<UserControl x:Class=”BidiTest2.Page”
xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
xmlns:l=”clr-namespace:System.Windows.BidiControls;assembly=BidiControls”>
…
<l:TextBlock FlowDirection=”LeftToRight” Text=”שלום עולם”/><l:TextBox FlowDirection=”RightToLeft” Text=”{Binding Text, Mode=TwoWay}”/>
That’s all. Thank you for your cooperation.

July 16th, 2008 · Comments (20)
Discover other tags
My tools
- .NET Framework Detector
- Duplicate images finder
- Exchange Security Policy for Windows Mobile Devices Fix
- Gas Price Windows Vista SideBar gadget
- Israel Traffic Information Windows Vista SideBar gadget
- Localization fix for SAP ES Explorer for Visual Studio
- LocTester
- RTL and LTR in Windows Live Writer
- Silverlight controls library
- Snipping tool integration plugin for WLW
- USB FM receiver library
- Vista Battery Saver
- WebCam control for WPF
- Windows Live SkyDrive attachment for Windows Live Writer
- Wireless Migrator
- WPF Virtual Keyboard



