Saturday, April 28, 2012

[Limited Time Offer, Only Two Days] Conan the Librarian T-Shirt

ThinkGeek - Conan the Librarian

For two days only!

Crushing your enemies, seeing them driven before you, and hearing the lamentation of their women is all fine and good, but every barbarian needs a day job to fall back on in less contentious times. Conan earned his MLS, proving that the stereotype about barbarians being illiterate is just that, a stereotype.

A few tips before you use the Hyboria Public Library:

  • Disputes between the followers of the Dewey Decimal System and those of the Library of Congress Classification can get noisy and messy. We advise relocating to a more peaceful section of the library if you are not personally involved.
  • No amount of lamentation will get your late fees waived.
  • If your late fees reach a certain amount, no gold will suffice. He'll want your head.

Conan the Librarian on a chestnut brown, 100% cotton t-shirt.

imageimageimage

The T-Shirt for every library barbarian...

The Loot/Cart thing made me laugh too (and was the final straw. T-Shirt bought, don't tell my DFO... :)

image

Friday, April 27, 2012

VIM Adventures - Learning VIM the fun way... "Zelda meets text editing"

Lifehacker - VIM Adventures Is a Fun Puzzle Game That Teaches You How To Use The Awesome Text Editor Vim

Vim is one of our favorite text editors, but there's a steep learning curve because it only uses keyboard commands—no mouse. VIM Adventures will teach you Vim shortcuts in a very enjoyable way: Playing an old school Zelda-like puzzle game.

...

VIM Adventures

What is VIM Adventures?

VIM Adventures is an online game based on VIM's keyboard shortcuts (commands, motions and operators). It's the "Zelda meets text editing" game. It's a puzzle game for practicing and memorizing VIM commands (good old VI is also covered, of course). It's an easy way to learn VIM without a steep learning curve.

You play a blinking cursor appearing one day in a semi text based world inhabited by little people but ruled by bugs. You soon discover that your arrival was foretold by an old prophecy and that you're expected to restore order to the world.

How to play

You start the game with only the ability to move up, down, left, and right. Using the mouse or cursor keys is not allowed, so look around you for a hint on how to move :) As you progress, you talk to people and collect items and keyboard buttons. Each keyboard button adds to the set of commands you can give the cursor, until you master VIM.

These instructions are all you need to know. Hints scattered throughout the game help you and ease the learning process. You can't advance to the next level until you master a skill! imageimage

That's awesome and officially cool.

SQL Server Query Optimizer Deep Dive series (Or "How to be the geek-hit at your next DBA get together, with your uber Query Optimizer knowledge...")

Paul White: Page Free Space - Query Optimizer Deep Dive - Part 1

"This is the first in a series of posts based on the content of the Query Optimizer Deep Dive presentations I have given over the last month or so at the Auckland SQL Users’ Group and the SQL Saturday events in Wellington, New Zealand and Adelaide, Australia.

Introduction

The motivation behind writing these sessions is that I have found that relatively few people have a good intuition for the way the optimizer works, partly because the official documentation is rather sparse, and partly because what information is available is dispersed across many books and blog posts. The content presented here is very much geared to my preferred way of learning – it shows the concepts in what seems to me to be a reasonably logical sequence, and provides tools to enable the interested reader to explore further, if desired.

When we write a query, we are not writing a computer program that can be directly executed. SQL is a declarative language used to logically describe the results we want to see. SQL Server goes through a process of compilation and optimization to create a physically executable implementation of the stated logical requirement. To put it another way, a SQL query is the specification for an executable program that SQL Server writes for us. The SQL Server component responsible for finding an efficient physical execution plan for a given logical query requirement is the Query Optimizer.

...

image..."

We all see the Query Plans and maybe use them in a sentence, but how much do we really know about them? This looks like a great series, providing some content and details that you don't see often, let alone in such a readable manner...

An xkcd that just reaches out and grabs you... Emotion

xkcd - Emotion

Wow, pretty darn deep for an xkcd, but so darn true. Sometimes life happens and you realize there's just some things that aren't really all that important or that just overshadow everything else. Thank God my family and I have not had this specific thing happen (though we've had enough, that's for sure)

WinRT XAML Toolkit - Controls, extensions and helper classes for WinRT

CodePlex - WinRT XAML Toolkit

A set of controls, extensions and helper classes for Windows Runtime XAML applications

Features

  • A copy of the AsyncUI library - a set of extension methods for UI classes that add support for async/await to wait for events such as:
    • Wait for a BitmapImage to load
    • Wait for a Button or one of a list of buttons to be clicked
    • Wait for a FrameworkElement to load, unload or become non-zero-sized
    • Wait for a MediaElement to change state - eg. to start or finish playback
    • Wait for a Selector (e.g. ListBox) to change selected item
    • Wait for a Storyboard to complete
  • Controls
    • AnimatingContainer - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive
    • CascadingTextBlock - a TextBlock replacement that animates the individual letters in a cascade - fading in while falling down into position, then optionally fading out while falling down from the standard position
    • CountdownControl - a movie-style control that animates a ring-slice shape while counting down seconds - e.g. to take a picture with a camera after a given number of seconds (supports async/await)
    • DelayedLoadControl - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen
    • PieSlice - a pie slice path/shape given StartAngle, EndAngle and Radius
    • RingSlice - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius
    • TextBlockExtensions/GetCharacterRect() - an extension method that returns a rectangle that holds a character at a given index in the TextBlock
  • Conterters
    • BooleanToDataTemplateConverter - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.
  • Extensions
    • WriteableBitmap - a set of extension methods for a WriteableBitmap
      • ColorExtensions - Conversions between pixels and pixel buffer types of byte, int and Color
      • IBufferExtensions - Adds a GetPixels() extension method to the PixelBuffer property of a WriteableBitmap that reads in the buffer to a byte array and exposes an indexer compatible to the one of the Pixels property in Silverlight's WriteableBitmap
      • WriteableBitmapSaveExtensions - support for loading and saving the bitmap to/from files
      • WriteableBitmapBlitBlockExtensions - support for quick blitting of a full-width section of a bitmap to another bitmap of same width
      • WriteableBitmapCopyExtensions - support creating a copy of a WriteableBitmap
      • WriteableBitmapCropExtensions - support for creating a cropped version of a WriteableBitmap
      • WriteableBitmapFloodFillExtensions - support for flood-filling a region of a WriteableBitmap - either limited by an outline color or by replacing a given color - usually a color at the starting position or colors similar to it
    • Serialization
      • JsonSerialization - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.
      • XmlSerialization - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.
    • StringIOExtensions - allows to easily read or write a string from/to file in a single call
  • VisualTree helpers
    • VisualTreeDebugger - provides a trace of the visual tree structure when a control loads, its layout updates or it gets tapped as well as allowing the application to break in the debugger if one of these events occurs
    • VisualTreeHelperExtensions - provides a set of extension methods that enumerate visual tree ascendants/descendants of a given control - making it easy to do these operations with LINQ as well as simple ways to list controls of a given type or find the first control of a given type searching up or down the visual tree

..."

With jump that is WinRT, with its locked down, limited .Net profile, we'll be seeing a number of libraries, projects and such like this. I don't know what it is about this one, but I just thought it cool and something I wanted to share... :)

JSIL - The IL to JS transformation project (Yes it takes .Net IL assemblies and generates JavaScript from them)

JSIL

"JSIL is a compiler that transforms .NET applications and libraries from their native executable format - CIL bytecode - into standards-compliant, cross-browser JavaScript. You can take this JavaScript and run it in a web browser or any other modern JavaScript runtime. Unlike other cross-compiler tools targeting JavaScript, JSIL produces readable, easy-to-debug JavaScript that resembles the code a developer might write by hand, while still maintaining the behavior and structure of the original .NET code. Because JSIL transforms bytecode, it can support most .NET-based languages - C# to JavaScript and VB.NET to JavaScript work right out of the box.

image

image..."

Not sure if this is cool, funny or awesome (or all three). It seems to be pretty much a .Net decompiler that instead of presenting the decompiled code as C# or VB, it uses JavaScript. Not something that I think I'll be using, but I still think this is a cool project and the fact that it's OSS makes it cool++.

(via Tim Anderson’s ITWriting - Convert .NET Intermediate Language to JavaScript)

Thursday, April 26, 2012

"The SQL Server is slow..." - Try starting with the free SQL Server 2012 Performance Dashboard Reports

MS SQL Tips - Install SQL Server 2012 Performance Dashboard Reports

"Problem

SQL Server 2012 Performance Dashboard Reports are Custom Reports which Microsoft has developed to quickly give an overview of the overall performance of SQL Server 2012 instance. Keep in mind that in order to use the Performance Dashboard Reports you don’t need to install SQL Server Reporting Services. In this tip we will take a look at how to install and use these built-in SQL Server Reporting Services Reports.

Solution

SQL Server 2012 Performance Dashboard Reports can be downloaded from the following link: http://www.microsoft.com/download/en/details.aspx?id=29063. The Microsoft Documentation states that “The SQL Server 2012 Performance Dashboard Reports are Reporting Services report files designed to be used with the Custom Reports feature of SQL Server Management Studio. The reports allow a database administrator to quickly identify whether there is a current bottleneck on their system, and if a bottleneck is present, capture additional diagnostic data that may be necessary to resolve the problem. The Dashboard reports basically retrieve information from SQL Server Dynamic Management Views and hence there is no additional overhead when using these reports.”

Common performance problems that the Performance Dashboard Reports may help to resolve include:

  • CPU bottlenecks
    • What queries are consuming the most CPU?
  • IO bottlenecks
    • What queries are performing the most IO operations?
  • Index recommendations generated by the query optimizer
    • What are the potential missing indexes?
  • Blocking
    • What blocking is occurring?
  • Latch contention
    • What are the volume of latches?

Once you have successfully downloaded the SQL Server 2012 Performance Dashboard Reports then the next step will be to install the reports. Follow the steps below to complete the installation process.

..."

Note that there's more to just installing the MSI to use these reports (there's a setup.SQL you need to run per server and you need to select the main dashboard report manually). Read the above post as it covers it all in easily to read details.

Since I'm pushing for SQL Server 2012 at my day job, I thought I should mention these reports. Sure we've got production cross-server monitoring tools and all, but sometimes you just need some simpler. And these will be great for our Dev/QA/Stage servers.

Here's a snap of the Performance Dashboard report (reporting against a SQL Server running on my notebook);

image

And a few snaps of a few of the other reports;

image

image

image

image

As you can kind of see, much of the data is linked, so you can click down to additional details. And remember, this is all free...

 

Related Past Post XRef:
SQL Server 2012 RTM Day Download Link Round-up
SQL Server 2005 Performance Dashboard Reports

MS Open Tech JQuery Mobile's Metro

TechNet Blogs - Port25 - More news from MS Open Tech: announcing the open source Metro style theme for jQuery Mobile

"Starting today, the Metro style theme for JQuery Mobile, the popular open source mobile user interface framework, is available for download on GitHub and can be used as a NuGet package in Visual Studio.

The theme enables HTML5 pages to adapt automatically to the Metro design style when rendered on Windows Phone 7.5. The Metro style theme is open source and available for download here. This new Metro style theme’s development was sponsored by Microsoft Open Technologies, Inc. working closely with Sergei Grebnov, an Apache Cordova committer and jQuery Mobile developer.

...

image

...

To do so, developers already enjoy a selection of Apache Cordova Plugins that give their application a Windows Phone touch such as Social Share, Bing Map launcher and Live Tile. Now developers can use the new open source Metro style theme for jQuery Mobile to give their mobile apps and websites the Metro style look and feel, and offer the final users an experience similar to the one they get with native applications.

..."

If you're doing WP7, Cordova, jQuery Mobile dev, then you'll probably be interested in this...

 

Related Past Post XRef:
"Microsoft Open Technologies, Inc" (No, it's not April 1st)

0ff1ce14 SharePoint GUIDs

Reidar Husmo - Office14 guids

image

This made me chuckle and shake my head (in envy... I wish I was that... well... whatever...  ;)

SkyDrive for Windows, single folder tree sync getting you down? Want to sync any folder? Two words, "Directory Junctions" (oh and "Explorer Extension" too)

Bitdisaster - Sync any folder to SkyDrive

"With the arrival of the new SkyDrive app we are finally able to take advantage of the 25GB online storage. The new app https://apps.live.com/skydrive allows you to sync a specific folder to your online storage like Dropbox. It is very simple; just drop whatever you want into the SkyDrive folder and it’s up to the cloud. But it also comes with the same limitations like Dropbox. If you are a Live Mesh user then you probably appreciate that you can sync any folder on your hard drive to the cloud not matter where it is located. This is a very nice feature because it allows you to keep your existing folder structure. For some reason this feature didn’t make it into the SkyDrive app and Live Mesh will be discontinued soon.

NTFS to the rescue

Fortunately NTFS has some nice feature that we barely use but can be very useful. One of them is symbolic links or folder junctions. Basically it allows you to mount a folder into another folder, so it looks like the folder is physically located there. So my thought was – if the Explorer can’t see it then SkyDrive can’t see it and will handle them as regular folders. The command to create such a link is:

MKLINK [[/D] | [/H] | [/J]] Link Target.

The /D parameter creates a symbolic directory link and it was my first try because they are recommended over directory junctions /J but SkyDrive crashed with symbolic links while directory junctions worked with no problems. Plus, we don’t need admin rights to create junctions. If you execute the command then a junction will be created that like a folder and SkyDrive starts syncing its content.

SkyShellEx

While the command line just works fine I wanted a more convenient way to sync my folders; a perfect match for a shell extension. So I spent a couple of hours on implementing a little helper that can be downloaded as 64 bit version here SkyDriveShellEx_x64 [GD: Click through for the link] and 32 bit version here SkyShellEx_x32 [GD: Click through for the link] If you want to have a look at the source code first then you can find it here SkyShellEx_Project [GD: Click through for the link].

...

image

..."

I love that he hosted his binaries/and source on SkyDrive. :)

As I said the other day, this is just the first of what I bet is a big wave for these kinds of hacks.

 

Related Past Post XRef:
Adding a simple "Send to... SkyDrive" to Windows Explorer
SkyDrive users take note! Want to keep your free 25GB storage (and not be cut to 7GB)? You need to take advantage of the free upgrade now...

MetroSky - End to end Windows Phone 7 SkyDrive sample code and app
SkyDrive API Link Round-Up
Code sample to access SkyDrive Photos API from WP7 (or any REST/OAuth/JSON enabled device/OS)
More information on integrating Windows Live, Hotmail and SkyDrive with your App's

The top 150 Geek-a-licious Windows utilities list by AddictiveTips
Directory Linker – Simple symbolic directory link utility for Vista/Windows 7
Junction Shell Extensions 1.1 Released

Richest Science Fiction/Fantasy/Fictional character? Might not be who you think...

Forbes - The 2012 Forbes Fictional 15

"It’s a great time to be imaginary. The characters that make up this year’s edition of the Forbes Fictional 15, our annual listing of fiction’s richest, boast an aggregate net worth of $209.5 billion. That’s up a stunning 59% from last year — and it’s enough cash to give $30 to every (real) person on the planet.

On top of the list is the ancient red-golden dragon Smaug, known by hobbits and dwarves across Middle Earth as “Smaug the Tremendous” and “Smaug the Unassessably Wealthy.” Smaug’s personal fortune jumped 16% from last year to $62 billion after wyrm watchers crafted a more detailed analysis of his massive hoard of coins, jewels and antiques.

..."

WinExtra - So, Who Is The Richest Sci-Fi Character?

image

That's before the Hobbit movies come out. I wonder if Smaug gets a cut?  :P

I still have to wonder at the fact someone gets paid to do this analysis. Up there with the 12 Days of Christmas cost thing they do every year... :/ Still this so much better, I mean, come on, dragon!

No more of that sinking feeling when using async for .Net 4/Silverlight 5 Projects - The Async Targeting Pack for Visual Studio 11 now available (Nuget: "Microsoft.CompilerServices.AsyncTargetingPack")

C# Frequently Asked Questions - Async Targeting Pack for Visual Studio 11 now available for .NET 4 and Silverlight 5

"If you’ve held off on trying Visual Studio 11 Beta because your .NET 4 or Silverlight 5 app uses the Async CTP, your wait is over! Today we’ve published the Async Targeting Pack for Visual Studio 11, a NuGet package that lets your Visual Studio 11 projects target .NET 4 and Silverlight 5 while taking advantage of C#’s new await keyword. While Visual Studio 11 provides built-in support for await in projects that target .NET 4.5 or .NET for Metro style apps, this targeting pack provides the API support to expand the set of target platforms to include .NET 4 and Silverlight 5 as well.

..."

Microsoft Downloads - Async Targeting Pack for Visual Studio 11

Async Targeting Pack for Visual Studio 11: End-User License Agreement, Installation and Release Notes

Version: 1.0.0
Date published: 4/26/2012

Language:English

AsyncTargetingPack-EULA.html, 9 KB
AsyncTargetingPack-InstallationAndReleaseNotes.html, 13 KB

The "Async Targeting Pack for Visual Studio 11" enables projects targeting .NET Framework 4.0 or Silverlight 5 to use the Async language feature in C# 5 and Visual Basic 11. This pack requires Visual Studio 11 and will not work with Visual Studio 2010.

The pack contains the API support necessary to use the 'async' and 'await' keywords in C# 5.0 and Visual Basic 11, as well as a set of Task-based adapter APIs that allow using some of the existing asynchronous APIs with the new language keywords.

This targeting pack is not required for projects targeting .NET Framework 4.5 or .NET for Metro style apps. It is only required for projects targeting Silverlight 5 and .NET Framework 4.0. Earlier platform releases are not supported.

Instructions

If you are already familiar with NuGet:
The package ID of the Async Targeting Pack that you can use when searching for it is: "Microsoft.CompilerServices.AsyncTargetingPack".

If you are not yet very familiar with NuGet:
Download the "AsyncTargetingPack-InstallationAndReleaseNotes.html" document from this page and follow the links in that document to learn how to use NuGet with Microsoft Visual Studio.

..."

So kind of a mix of both worlds. If you want to target .Net 4.0, yet want to use async, this is your ticket.

 

Related Past Post XRef:
Visual Studio Async CTP (Version 3) Released - Lots of compatibility added, bugs squashed, features added and the EULA updated to allow Production usage (not encouraged, but it IS allowed now)
PDC10 Async Round-up

Wednesday, April 25, 2012

Building a dynamic search with LINQ (think WHERE chaining)

Paul Sheriff's Blog for the Real World - Dynamic Search with LINQ, the Entity Framework and Silverlight – Part 2

"After my previous blog post, I realized that using SQL strings is not a great way to do things. Sometimes we start blogging too quick and then realize our mistakes after. But, no big deal, live and learn... I am going to now rewrite this application and use some lambda expressions to solve the problems inherit with concatenating strings to SQL statements; namely escaping a single quote and SQL Injection attacks. I am going to use the same search screen shown in Figure 1.

image..."

I thought this an interesting example of building a dynamic, user driven, multiple field query (or "where" wizard). Not sure I like the case usage (that looks like it could easily spiral out of maintenance control), but it does make it easy to read and grok (and this is just a demo)...

101 #SpaceApps from the International Space Apps Challenge

open.NASA - 100+ Reasons #SpaceApps Made a Difference

"The International Space Apps Challenge, held on 21-22 April 2012, was a very productive event. 100+ solutions were developed in less then 48 hours, and although a few teams are still submitting their solutions to the website, we wanted to provide a summary of the 100+ reasons what you did at the event made a difference! We have listed out all unique solutions submitted below, in alphabetical order, and included a one or two sentence elevator-pitch description of each. We have also included a link to the solution page if you are interested in finding out more information about the solution, want to view or download the code, share a comment, contact the team, or in some cases view a demo or prototype of the solution itself. If you are one of the participants and would like to improve the description we have for your project, please email us your updates at coreteam@spaceappschallenge.org.

Each location had the opportunity to nominate up to two winning solutions for consideration in the Global Judging process. The solutions thare were nominated are identified as well. Congratulations to everyone who contributed to one of the solutions below – the results truly speak for themselves.

image..."

This is a serious list of some very awesome and cool apps, many of which you can get the source for (at least those I checked);

Here's just a couple that stood out for me;

7. Beam Be Up To A Satellite! – Space Checkin (Virtual)
A spaceobject checkin game that visualizes the nearest satellites overhead and provides points and badges for each check-in.\

26. Exoapi.com (New York City, USA) (Nominated for Global Judging)
ExoAPI is an ongoing project that extends the accessibility of exoplanetary data by providing an easy to use RESTful API.

33. Galaxy Sexy (Tokyo, Japan)
An app that generates a graph of brain waves from a user who is interacting with space data, using a cheap EEG device, a PC and an arduino.

38. Hazardmap.info (Exeter, United Kingdom)
A real-time hazard map application that is powered by social media observations to help provide a a useful risk assessment for potential (and actual) crisis situations.

58. NASA-Ex (Virtual)
An 3d solar system exploration tool that uses C# ASP.NET MVC3 for a backend to interface with HORIZON data over telnet, Three.js to do the WebGL rendering, HTML5 and CSS3

101. Ze-Api (French For “The API”) (Nairobi, Kenya)
An API that converts inaccessible NASA data into popular formats used by developers, by converting Json data XML, YAML and a better structured JSON data.

Related Past Post XRef:
Some open apps at open.NASA with SpaceApp examples...
NASA making #spaceapps physical or "I just wanted some lasers on my fricken Arduino's..."

VMware Source Code Leaks

betanews - VMware source code leak: 'IT equivalent of the Deepwater Horizon oil spill'

"VMware has confirmed that a portion the the source code for its ESX hypervisor was compromised, although the code dates back as early as 2003. That said, a fairly significant portion of the company's customers are still using the platform as VMware works to push them towards its newer hypervisor called ESXi.

A hypervisor in the simplest terms is a virtual machine management platform on which several virtual machines can run concurrently. The hypervisor controls the sharing of virtualized hardware resources. ESXi has a far smaller attack surface, which limits the available avenues of attack on a installation.

The code was posted to Pastebin by a LulzSec-related hacker who goes by the handle "Hardcore Charlie" on April 8. ...

...

Paul Roberts, blogger with Kaspersky Lab's ThreatPost, calls the breach the "IT equivalent of the Deepwater Horizon oil spill disaster", pointing to the fact that VMware itself cannot rule out that its own source code repository may have been hacked.

Roberts is not referring only to the VMware code, but a chunk of other sensitive data that has "bubbled up" from the CEIEC breach ..."

In a word... ouch...

Obsoleted Types, Methods and Migration Guide and more for .Net 4.5 (Beta)

Obsolete Types in the .NET Framework 4.5 Beta

"The following sections list the types that have been declared obsolete in the .NET Framework 4.5 Beta. Obsolete types are organized based on the assemblies in which they are found. The tables are organized as follows:

  • Obsolete Types in System Assemblies

    • mscorlib.dll

    • System.Core.dll

    • System.Data.dll

    • System.Data.OracleClient.dll

    • System.Design.dll

    • System.dll

    • System.EnterpriseServices.dll

    • System.Net.dll

    • System.ServiceModel.dll

    • System.Web.dll

    • System.Web.Mobile.dll

    • System.Xaml.dll

    • System.Xml.dll

    • WindowsBase.dll

  • Obsolete Types in Microsoft Assemblies

    • IEHost.dll and IEExec.exe

    • Microsoft.Build.Engine.dll

    • Microsoft.JScript.dll

    • Microsoft.VisualBasic.Compatibility.dll

    • Microsoft.VisualBasic.Compatibility.Data.dll

    • Microsoft.VisualC.dll

..."

Obsolete Members in the .NET Framework 4.5 Beta

"The following tables list the type members that have been declared obsolete in the .NET Framework 4.5 Beta, based on the assembly in which they are found. The tables are organized as follows:

  • Obsolete Members in System Assemblies

    • mscorlib.dll

    • PresentationCore.dll

    • PresentationFramework.dll

    • System.Activities.dll

    • System.Activities.Presentation.dll

    • System.Core.dll

    • System.Data.dll

    • System.Data.Entity.dll

    • System.Data.OracleClient.dll

    • System.Design.dll

    • System.dll

    • System.Drawing.dll

    • System.Messaging.dll

    • System.ServiceModel.dll

    • System.ServiceModel.Discovery.dll

    • System.Web.DataVisualization.dll

    • System.Web.dll

    • System.Web.DynamicData.dll

    • System.Web.Extensions.dll

    • System.Web.Services.dll

    • System.Windows.Forms.dll

    • System.Xaml.dll

    • System.Xml.dll

  • Obsolete Members in Microsoft Assemblies

    • IEHost.dll and IEExec.exe

    • ISymWrapper.dll

    • Microsoft.Build.Conversion.v4.0.dll

    • Microsoft.Build.Engine.dll

    • Microsoft.Build.Framework.dll

    • Microsoft.Build.Utilities.v4.0.dll

    • Microsoft.VisualBasic.dll

..."

Migration Guide to the .NET Framework 4.5 Beta

If you created your application using an earlier version of the .NET Framework, you can generally upgrade it to the .NET Framework 4.5 Beta easily. Open your project in Visual Studio 11 Beta. If your project was created in an earlier version, the Project Compatibility dialog box automatically opens. For more information about upgrading a project, see How to: Troubleshoot Unsuccessful Visual Studio Project Upgrades.

However, some changes in the .NET Framework require changes to your code. You may also want to take advantage of functionality that is new in the .NET Framework 4.5 Beta. Making these types of changes to your application for a new version of the .NET Framework is typically referred to as migration. If your application does not have to be migrated, you can run it in the .NET Framework 4.5 Beta without recompiling it.

Migration Resources

Review the following documents before you migrate your application from the .NET Framework 4 to the .NET Framework 4.5 Beta:

NET Framework Versions and Dependencies

Each version of the .NET Framework contains the common language runtime (CLR) as its core component, and includes additional components such as the base class libraries and other managed libraries. This topic describes the key components of the .NET Framework by version, provides information about the underlying CLR versions and associated development environments, and identifies the versions that are installed by the Windows operating system.

The following illustration summarizes the version history and identifies the versions that are installed by Windows.

image

Each new version of the .NET Framework retains features from the previous versions and adds new features. The CLR is identified by its own version number. Some versions of the .NET Framework include a new version of the CLR, but others use an earlier version. For example, the .NET Framework 4 includes CLR 4, but the .NET Framework 3.5 includes CLR 2.0. (There was no version 3 of the CLR.) Although the .NET Framework 4.5 Beta is an in-place update of .NET Framework 4, the underlying CLR version number is 4.5.

There's a serious list of stuff being deprecated and obsoleted in .Net 4.5. So long that the page snapshot was too long to include here (we're talking 48 pages for the Methods, 36 for the Types... Now THAT's a list!)

(via Wriju's BLOG - Obsolete Types and Methods of .NET Framework 4.5)

Tuesday, April 24, 2012

DeNSo DB - A new C# based NoSQL with InProc, Service or Mesh modes

DZone - Introducing DeNSo DB - A New NoSQL Database written in C# for a .Net Environment

"DeNSo DB is provided in its entirety on Github, where you can get a description of its usage, features and theory. The github site has yet to be really fleshed out, and I'm sure readers would be particularly interested in seeing some answers to the question at the bottom: Why should I use it? Maybe you can start formulating your own opinion on that matter by taking a look at this brief summary of what exactly DeNSo DB is.

Right now, DeNSo DB is contending with a few well-established NoSQL databases like MongoDB, RavenDB, and HBase, each of which cater to specific usage. HBase, for example, is a Hadoop database, so it works well with processing Big Data. DeNSoDB currently has a few usages described on the github page:

..."

DeNSo DB

DensoDB is a new NoSQL document database. Written for .Net environment in c# language.
It's simple, fast and reliable.

You can use it in three different ways:

  1. InProcess: No need of service installation and communication protocol. The fastest way to use it. You have direct access to the DataBase memory and you can manipulate objects and data in a very fast way.

  2. As a Service: Installed as Windows Service, it can be used as a network document store.You can use rest service or wcf service to access it. It's not different from the previuos way to use it but you have a networking protocol and so it's not fast as the previous one.

  3. On a Mesh: mixing the previous two usage mode with a P2P mesh network, it can be easily syncronizable with other mesh nodes. It gives you the power of a distributed scalable fast database, in a server or server-less environment.

You can use it as a database for a stand alone application or in a mesh to share data in a social application. The P2P protocol for your application and syncronization rules will be transparet for you, and you'll be able to develop all yor application as it's stand-alone and connected only to a local DB.

Features

  1. Journaled
  2. Built using Command Query Responsibility Segregation pattern in mind.
  3. Store data as Bson-like Documents.
  4. Accessible via Rest
  5. Accessible via WCF
  6. Peer to peer syncronization and event propagation enabled.
  7. Pluggable via Server Plugin.
  8. Use Linq syntax for queries.

The Theory

A document database is a Database where data are stored as they are. Usually there is no need to normalize or change their structure, so it's optimal for domain driven design, because you'll not need to think about how to persist your domain.

A document is stored in BSon-like format A document is self contained, and all you needed to understand it's information are in the document itself. So you will not need additional query to understand foreign key or lookup table datas.

You can have collections of document. Collection are not tables, you can think to collections as sets of documents, categorized in the same way. A collection is schema-free and you can store different kind of documents in the same collection.

Every document in every collection is classified using a Unique Identifier. The DB will use the UID to store and to access every document directly.

You can store your data in DeNSo using a Bson document or, more easly you can store your entities in DeNSo.

DeNSo has a Bson De/Serializer able to traduce virtually every entity in a BSon Document and vice-versa." [GD: readme.md leached in full]

I've yet to jump on the NoSQL boat, but have been thinking about it for a couple projects and like that this one is OSS and written in C# (not that I'm saying the others aren't, just that the C# caught my eye...)

"Geeks and Repetitive Tasks," the Graph...

Global Nerdy - Geeks and Repetitive Tasks

image

So true isn't it?

(via Bruno Oliveira)

Windows 8 Release Preview coming first week in June...

Doug Holland - An Architects Perspective - Windows 8 Release Preview Coming June 2012

"Steven Sinofsky, President, Windows and Windows Live Division, announced today from Japan’s Windows 8 Dev Days that the Windows 8 Release Preview will be available during the first week of June. /via @BuildWindows8

..."

image

This will be news item of the day, but still... [Note to Self: Block off first week in June]

This means RTM September, October? I'm going to bet RTM to OEM's August/September, GA October (but that's a total WAG. Since it would need to be in OEM's hands by June'ish to make the Back to School, that means they are targeting Holiday season, which a June RP date seems to fit perfect)

(via Alvin Ashcraft's Morning Dew - Dew Drop – April 24, 2012 (#1,312))

Monday, April 23, 2012

Adding a simple "Send to... SkyDrive" to Windows Explorer

keyboardp - 'Send to SkyDrive' in Context Menu

"With the new SkyDrive desktop client, I figured it would be great to be able to right click on a file or folder and copy it to the SkyDrive folder from the context menu. Turns out, it's pretty easy to set up and customize.

image..."

Of course you need the SkyDrive app installed, https://apps.live.com/skydrive, first, but once you do this makes it pretty darn easy to send stuff to it. This is I'm sure only the first of very many like hacks.

The Zen of HTML, XML, XSL, structured code editing with Visual Studio Zen Coding 2010 extension

MSDN Code Gallery - Visual Studio Zen Coding 2010

"Visual Studio Zen Coding is a visual studio plugin for high-speed HTML, XML, XSL (or any other structured code format) coding and editing.

Zen Coding is an editor plugin for high-speed HTML, XML, XSL (or any other structured code format) coding and editing. The core of this plugin is a powerful abbreviation engine which allows you to expand expressions—similar to CSS selectors—into HTML code. For example:

image

image

image

..."

Some pretty cool features in this extension...

Using native OpenXML to create an XlsX (Which provides an example of why I highlight tools that make OpenXML easier...)

CodeProject - Creating basic Excel workbook with Open XML

The purpose of this article is to describe how to create an Excel workbook using solely DocumentFormat.OpenXml.dll (namespace is DocumentFormat.OpenXml).

In order to test the samples you have to download and install the Open XML SDK 2.0 from Download Center.

The demo is created for both C# and Visual Basic.

These standards define the structure and the elements for the Office files. The Office files (like xlsx for Excel) themselves are zipped files that contain a specific directory and file structure. The files that hold the content of a spreadsheet are xml files like any other xml files.

In case of Excel files a basic xlsx file contains for example following files:

  • /[Content_Types].xml: Defines parts and extensions for the spreadsheet
  • /xl/workbook.xml: For e xample sheets that are included in the workbook
  • /xl/styles.xml: Styles used in the worksheets
  • /xl/sharedStrings.xml: Strings that are shared among cells
  • /xl/worksheets/sheet1.xml...: The actual worksheets

The actual package contains more files but in the scope of this article these are the most interesting ones. The demo projects included show few operations that are done to produce and modify these files.

About the project

The project itself is very simple. It consists of two classes: MainWindow class and a static Excel Class. The Excel class is responsible of all the operations done against the Excel spreadsheet. It's kinda utility class, but note that it's nowhere near ready. It's supposed to be used as a learning tool or a seed to an actual implementation.

When writing this demo I found out that Excel is very picky on the XML files. One surprise was that the order of the elements in XML files is very important. For example elements in style sheet such as fonts, fills, borders, cellStyleXfs, cellXfs etc must be in specific order. Otherwise the document is interpreted as corrupted.

Another observation was that the indexes of the elements are quite often used (for example the index of a shared string). However there is no support in the library to fetch the indexes so the collections have to be looped in order to calculate the index of a desired element.

So one of the best tools when building this was a utility to extract data from the xlsx (=zip) file to see what is the actual content.

image

Yes, that creates an XlsX. Stuff that anyone who has used the Excel Object Model will cause a minor brain explosion. Parts, Packaging, ShareStringTables, oh my...

This is a great example of why I keep my eyes open for examples and wrappers that make the promise of Open XML a little more accessible to mere mortals.

 

Related Past Post XRef:
Generating Xlsx's on the Server? You're using OpenXML, right? With help from the PowerTools for OpenXML?

SSMS Object Explorer...Details?

David Atkinson - Ever wondered what the Object Explorer Details window is for?

"Typically, when I install SQL Server Management Studio and run it for the first time, the first thing I do is to close the Object Explorer Details window. After all, it doesn’t seem to serve a useful purpose, duplicating information that already exists in the Object Explorer.

However, I have discovered that it has one important redeeming capability, the ability to allow multi-selection by holding the ctrl or shift key depressed during the selection.

image

Why is this useful?

If I want to rename an object, or indeed make any textual modification to a number of stored procedures, I can simply script as drop/create, do a search/replace, and click execute to apply the changes.

..."

Another day, another post that lets me know just how little I know. While it took a while to pry Query Analyzer from my cold dead fingers, I have been using SSMS now for a while. Yet I think this is the first time I've seen this feature. Sure it's been there in the View menu, but it just didn't click. And while I might not use this allot, it is kind of a cool feature and I do see times where this will now come in handy.

SkyDrive users take note! Want to keep your free 25GB storage (and not be cut to 7GB)? You need to take advantage of the free upgrade now...

Are you a SkyDrive user? Happy that you have 25GB of free storage? Well you don't have 25GB of free storage any more. You now have 7GB of free storage.

But if you're an existing user you can get a free "upgrade" back to 25GB. But YOU have to do it (Unless you're already using 4GB+, then you'll auto-magically get upgraded)...

I just logged into my SkyDrive account and was prompted with the highlighted notice below.

image

After I clicked on the claim link;

image

Once I clicked on the free upgrade, I was back to 25GB;

image

 

Note: You can also download the Windows 7 Preview and iOS clients now too. Check out SkyDrive for Windows and OS X Lion app now available with new paid storage plans

image

SNAGHTML2cefc5e9

image

So while I'm VERY happy there's finally official Windows Explorer integration for SkyDrive, the way the 7GB cut is being handled irks me a little. An email a few days prior to this, a proactive notification of this change, would have been nice...