Lately I’ve been toying around with the idea of setting up my own climbing gym – potentially in Germany – but, who knows… South America might also be a nice place to climb judging from South America’s topography While I still need to figure out a couple of issues (the biggest ones are location and financing at the moment) I wanted to share a couple of great resources on how to build your own indoor climbing wall and how to set routs on your wall/in your gym.
Also, in addition to the two books above, some great links on the topic:
Cheers! Daniel
If you are the .NET Developer using Visual Studio 2010 you’ll love the Visual Studio 2010 Pro Power Tools!
Visual Studio 2010 Productivity Power Tools A set of extensions to Visual Studio Professional (and above) which improves developer productivity. Document Well 2010 Plus (More Info) One of the key pieces of feedback that we have received over several versions of Visual Studio is that users want to be able to customize the behaviour of their document tabs. From the ordering of tabs to the position of the close buttons, user can now configure dozens of different options for their tabs. Go to Tools -> Options -> Environment -> Document Tab Well to configure these options as you prefer: Tab Well UI Scrollable tabs Maintain spatial consistency of the documents that are included in the document well. Vertical tabs Document tabs are shown vertically, allowing you to fit more tabs than are normally visible when shown horizontally. Pinned tabs Allows you to pin tabs to keep them always visible and available. Show close button in tab well Similar to Visual Studio 2008, will show a close button in the document well that will close the active tab. Tab Behavior Remove tabs by usage order (LRU) When a new tab is inserted and existing tabs don't fit in the document well, instead of removing the tab at the end of the well it will remove the least recently used tab. This ensures that frequently used tabs are readily available. Show pinned tabs in a separate row/column Pinning tabs can quickly cause you to run out of space for regular tabs. The option allows you to always show pinned tabs in a separate row (or column, if displayed vertically) from regular tabs. Sorting Sort tabs by project Tabs will be sorted by the project they belong to, thus keeping them always together in the document tab well. Sort tabs alphabetically Tabs will be sorted alphabetically. When Sort By Project is turned on, tabs will be sorted first by project and then alphabetically. Sort tab well dropdown alphabetically The drop down menu at the right end of the document well is sorted alphabetically. This option allows ordering as the tabs are laid out in the document well. Tab UI Color tabs according to their project or according to regular expressions This option permits tabs to be colored according to the project they belong to. This is particularly useful when sorting tabs by project, as it allows you to immediately identify different groups of project documents. You can also configure regular expressions and assign a color to each one. If the name of a tab matches the configured regular expression, it will be colored with the assigned color. Miscellaneous options that modify tab UI Show document/toolwindow icon in tab Show close button in tab Modify dirty indicator style This option allows you to select from a set of different dirty indicators that you might prefer over the asterisk. Modify minimum and maximum tab size Allows you to modify minimum and maximum tab size. Try setting minimum and maximum sizes to the same value, and you will have evenly spaced tabs. Searchable Add Reference Dialog The new Add Reference dialog makes it faster and easier for you to find the reference that you are looking for and add it to your VB, C# or F# project. From the Solution Explorer, simply right click on the References node, select the Add Reference command to see the updated Add Reference Dialog. Highlight Current Line As the resolution of monitors increases, it’s becoming more difficult to find the caret in the code editor. The highlight current line extension makes it easy to find the caret by highlighting the line that the caret is on in the editor. You can even configure the default colour by changing the setting for “Current Line (Extension)” and “Current Line Inactive (Extension)” in Tools Options Fonts & Colors. HTML Copy This extension provides support for the HTML Clipboard format when copying code from the editor. This means that you’ll no longer have to go fix up the formatting of your code when you paste it into a TFS bug form or any other HTML based control. Triple Click It’s never been easier to select a line of code from the mouse by simple triple-clicking anywhere on the line. Fix Mixed Tabs Some developers prefer tabs, others prefer spaces, and nobody likes mixing tabs & spaces. This extension promotes developer harmony by warning as they are open or save a file that has a mixture of tabs & spaces. The information bar also provides an easy way to fix the file to suit your preference. Ctrl + Click Go To Definition This extension gives the editor a web browser by adding clickable hyperlinks to symbols in your code as you hold down the Ctrl key. Align Assignments This extension is useful for making your code a little more readable by aligning the assignments when you type Ctrl+Alt+] such that it takes this: And turns it into this: Please note: This may conflict with your formatting settings. E.g. in C# you will need to disable: Tools->Options->Text Editor->C#->Formatting->Spacing->"Ignore spaces in declaration statements"
Visual Studio 2010 Productivity Power Tools
A set of extensions to Visual Studio Professional (and above) which improves developer productivity.
Tools -> Options -> Environment -> Document Tab Well
Tools->Options->Text Editor->C#->Formatting->Spacing->"Ignore spaces in declaration statements"
Enjoy!
Daniel
After successfully getting all VS languages out the door, we released 10 additional languages for .NET Framework 4 (and 7 of those additional languages for VS 2010 Tools for the Office System 4.0 Runtime) the other day.
.NET Framework 4 (Standalone Installer)
ARA
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=ar
DAN
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=da
NLD
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=nl
FIN
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=fi
ELL
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=el
HEB
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=he
HUN
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=hu
NOR
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=no
PTG
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=pt-PT
SVE
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=sv
.NET Framework 4 (Web Installer)
http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=ar
http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=da
http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=nl
http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=fi
http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=el
http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=he
http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=hu
http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=no
http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=pt-PT
http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=sv
.NET Framework 4 Language Packs
X86
http://www.microsoft.com/downloads/details.aspx?FamilyID=6fd7e428-0aa8-40e3-a48d-0df2d76e24a8&displaylang=ar
http://www.microsoft.com/downloads/details.aspx?FamilyID=6fd7e428-0aa8-40e3-a48d-0df2d76e24a8&displaylang=da
http://www.microsoft.com/downloads/details.aspx?FamilyID=6fd7e428-0aa8-40e3-a48d-0df2d76e24a8&displaylang=nl
http://www.microsoft.com/downloads/details.aspx?FamilyID=6fd7e428-0aa8-40e3-a48d-0df2d76e24a8&displaylang=fi
http://www.microsoft.com/downloads/details.aspx?FamilyID=6fd7e428-0aa8-40e3-a48d-0df2d76e24a8&displaylang=el
http://www.microsoft.com/downloads/details.aspx?FamilyID=6fd7e428-0aa8-40e3-a48d-0df2d76e24a8&displaylang=he
http://www.microsoft.com/downloads/details.aspx?FamilyID=6fd7e428-0aa8-40e3-a48d-0df2d76e24a8&displaylang=hu
http://www.microsoft.com/downloads/details.aspx?FamilyID=6fd7e428-0aa8-40e3-a48d-0df2d76e24a8&displaylang=no
http://www.microsoft.com/downloads/details.aspx?FamilyID=6fd7e428-0aa8-40e3-a48d-0df2d76e24a8&displaylang=pt-PT
http://www.microsoft.com/downloads/details.aspx?FamilyID=6fd7e428-0aa8-40e3-a48d-0df2d76e24a8&displaylang=sv
X86/x64
http://www.microsoft.com/downloads/details.aspx?FamilyID=7a4c6414-7f64-47a5-ae20-218403137957&displaylang=ar
http://www.microsoft.com/downloads/details.aspx?FamilyID=7a4c6414-7f64-47a5-ae20-218403137957&displaylang=da
http://www.microsoft.com/downloads/details.aspx?FamilyID=7a4c6414-7f64-47a5-ae20-218403137957&displaylang=nl
http://www.microsoft.com/downloads/details.aspx?FamilyID=7a4c6414-7f64-47a5-ae20-218403137957&displaylang=fi
http://www.microsoft.com/downloads/details.aspx?FamilyID=7a4c6414-7f64-47a5-ae20-218403137957&displaylang=el
http://www.microsoft.com/downloads/details.aspx?FamilyID=7a4c6414-7f64-47a5-ae20-218403137957&displaylang=he
http://www.microsoft.com/downloads/details.aspx?FamilyID=7a4c6414-7f64-47a5-ae20-218403137957&displaylang=hu
http://www.microsoft.com/downloads/details.aspx?FamilyID=7a4c6414-7f64-47a5-ae20-218403137957&displaylang=no
http://www.microsoft.com/downloads/details.aspx?FamilyID=7a4c6414-7f64-47a5-ae20-218403137957&displaylang=pt-PT
http://www.microsoft.com/downloads/details.aspx?FamilyID=7a4c6414-7f64-47a5-ae20-218403137957&displaylang=sv
.NET Framework 4 Client Profile (Standalone Installer)
http://www.microsoft.com/downloads/details.aspx?FamilyID=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&displaylang=ar
http://www.microsoft.com/downloads/details.aspx?FamilyID=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&displaylang=da
http://www.microsoft.com/downloads/details.aspx?FamilyID=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&displaylang=nl
http://www.microsoft.com/downloads/details.aspx?FamilyID=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&displaylang=fi
http://www.microsoft.com/downloads/details.aspx?FamilyID=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&displaylang=el
http://www.microsoft.com/downloads/details.aspx?FamilyID=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&displaylang=he
http://www.microsoft.com/downloads/details.aspx?FamilyID=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&displaylang=hu
http://www.microsoft.com/downloads/details.aspx?FamilyID=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&displaylang=no
http://www.microsoft.com/downloads/details.aspx?FamilyID=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&displaylang=pt-PT
http://www.microsoft.com/downloads/details.aspx?FamilyID=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&displaylang=sv
.NET Framework 4 Client Profile (Web Installer)
http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab&displaylang=ar
http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab&displaylang=da
http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab&displaylang=nl
http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab&displaylang=fi
http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab&displaylang=el
http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab&displaylang=he
http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab&displaylang=hu
http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab&displaylang=no
http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab&displaylang=pt-PT
http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab&displaylang=sv
.NET Framework 4 Client Profile Language Packs
http://www.microsoft.com/downloads/details.aspx?FamilyID=b060a9f9-6fac-42a4-b60b-b476a2f4f987&displaylang=ar
http://www.microsoft.com/downloads/details.aspx?FamilyID=b060a9f9-6fac-42a4-b60b-b476a2f4f987&displaylang=da
http://www.microsoft.com/downloads/details.aspx?FamilyID=b060a9f9-6fac-42a4-b60b-b476a2f4f987&displaylang=nl
http://www.microsoft.com/downloads/details.aspx?FamilyID=b060a9f9-6fac-42a4-b60b-b476a2f4f987&displaylang=fi
http://www.microsoft.com/downloads/details.aspx?FamilyID=b060a9f9-6fac-42a4-b60b-b476a2f4f987&displaylang=el
http://www.microsoft.com/downloads/details.aspx?FamilyID=b060a9f9-6fac-42a4-b60b-b476a2f4f987&displaylang=he
http://www.microsoft.com/downloads/details.aspx?FamilyID=b060a9f9-6fac-42a4-b60b-b476a2f4f987&displaylang=hu
http://www.microsoft.com/downloads/details.aspx?FamilyID=b060a9f9-6fac-42a4-b60b-b476a2f4f987&displaylang=no
http://www.microsoft.com/downloads/details.aspx?FamilyID=b060a9f9-6fac-42a4-b60b-b476a2f4f987&displaylang=pt-PT
http://www.microsoft.com/downloads/details.aspx?FamilyID=b060a9f9-6fac-42a4-b60b-b476a2f4f987&displaylang=sv
X86/X64
http://www.microsoft.com/downloads/details.aspx?FamilyID=6aa229cc-85e2-4cca-9add-e8e75a615bc3&displaylang=ar
http://www.microsoft.com/downloads/details.aspx?FamilyID=6aa229cc-85e2-4cca-9add-e8e75a615bc3&displaylang=da
http://www.microsoft.com/downloads/details.aspx?FamilyID=6aa229cc-85e2-4cca-9add-e8e75a615bc3&displaylang=nl
http://www.microsoft.com/downloads/details.aspx?FamilyID=6aa229cc-85e2-4cca-9add-e8e75a615bc3&displaylang=fi
http://www.microsoft.com/downloads/details.aspx?FamilyID=6aa229cc-85e2-4cca-9add-e8e75a615bc3&displaylang=el
http://www.microsoft.com/downloads/details.aspx?FamilyID=6aa229cc-85e2-4cca-9add-e8e75a615bc3&displaylang=he
http://www.microsoft.com/downloads/details.aspx?FamilyID=6aa229cc-85e2-4cca-9add-e8e75a615bc3&displaylang=hu
http://www.microsoft.com/downloads/details.aspx?FamilyID=6aa229cc-85e2-4cca-9add-e8e75a615bc3&displaylang=no
http://www.microsoft.com/downloads/details.aspx?FamilyID=6aa229cc-85e2-4cca-9add-e8e75a615bc3&displaylang=pt-PT
http://www.microsoft.com/downloads/details.aspx?FamilyID=6aa229cc-85e2-4cca-9add-e8e75a615bc3&displaylang=sv
Visual Studio 2010 Tools for Office Runtime
http://www.microsoft.com/downloads/details.aspx?familyid=06C32242-2289-4471-93AA-CE96AA5CBC36&displaylang=ar
http://www.microsoft.com/downloads/details.aspx?familyid=06C32242-2289-4471-93AA-CE96AA5CBC36&displaylang=da
http://www.microsoft.com/downloads/details.aspx?familyid=06C32242-2289-4471-93AA-CE96AA5CBC36&displaylang=nl
http://www.microsoft.com/downloads/details.aspx?familyid=06C32242-2289-4471-93AA-CE96AA5CBC36&displaylang=fi
http://www.microsoft.com/downloads/details.aspx?familyid=06C32242-2289-4471-93AA-CE96AA5CBC36&displaylang=he
http://www.microsoft.com/downloads/details.aspx?familyid=06C32242-2289-4471-93AA-CE96AA5CBC36&displaylang=no
http://www.microsoft.com/downloads/details.aspx?familyid=06C32242-2289-4471-93AA-CE96AA5CBC36&displaylang=sv
Visual Studio 2010 Tools for Office Runtime Language Packs
http://www.microsoft.com/downloads/details.aspx?FamilyID=9daf1ab1-f4ab-4663-a069-228504f0fc0a&displaylang=ar
http://www.microsoft.com/downloads/details.aspx?FamilyID=9daf1ab1-f4ab-4663-a069-228504f0fc0a&displaylang=da
http://www.microsoft.com/downloads/details.aspx?FamilyID=9daf1ab1-f4ab-4663-a069-228504f0fc0a&displaylang=nl
http://www.microsoft.com/downloads/details.aspx?FamilyID=9daf1ab1-f4ab-4663-a069-228504f0fc0a&displaylang=fi
http://www.microsoft.com/downloads/details.aspx?FamilyID=9daf1ab1-f4ab-4663-a069-228504f0fc0a&displaylang=he
http://www.microsoft.com/downloads/details.aspx?FamilyID=9daf1ab1-f4ab-4663-a069-228504f0fc0a&displaylang=no
http://www.microsoft.com/downloads/details.aspx?FamilyID=9daf1ab1-f4ab-4663-a069-228504f0fc0a&displaylang=sv
Cheers!
If you quickly want to insert some binary data (like images, word documents, pdfs) into a database writing a front-end application for this talk might be a bit of an overkill… Fortunately, this is a pretty straight-forward talk in SQL Server Management Studio :-)
The following example updates the Categories table of the good ol’ Northwind database to store the images, updates two categories with images and adds another category and an image.
/* Add anadditional column to the Categories table to store the image */
ALTER TABLE dbo.Categories ADD CategoryPicture VARBINARY(MAX) NULL GO
/* update thetable to insert some images */
UPDATE Categories SET CategoryPicture = (SELECT * FROMOPENROWSET(BULK N'C:\Temp\Beverages.jpg', SINGLE_BLOB) AS CategoryImage) WHERE CategoryID = 1
UPDATE Categories SET CategoryPicture = (SELECT * FROMOPENROWSET(BULK N'C:\Temp\Condiments.jpg', SINGLE_BLOB) AS CategoryImage) WHERE CategoryID = 2
GO
/* Insert a new category with an image */
INSERT INTO Categories(CategoryName, CategoryPicture) Values ('Another Category', (SELECT * FROM OPENROWSET(BULK N'C:\Temp\AnotherCategory.jpg', SINGLE_BLOB) AS CategoryImage))
It’s the fun time of the product cycle where we are - with the exception of a couple of DCRs* – feature complete and preparing to hand over our strings to the Loc team. To make sure that the strings don’t contain literal or grammatical errors the PMs review them together with our technical writers (the guys who write the msdn content). Once that’s done the strings are handed over to the Loc team, get translated and checked back in into our branch.
To find all strings (at least all of which are embedded in resources) I wrote a small WPF program which reflects over our assemblies, extracts the embedded strings and shows them in a grid (from where I can easily copy & paste everything into Excel. If I’d need this functionality more often I’d probably write a small console application instead which I then could reuse in a PowerShell script).
Here is what I did (Stop bothering me, give me a direct download!):
Imports System.Reflection Imports System.Globalization Imports System.Threading Imports System.Linq Imports System.IO
Class MainWindow
Private Sub btnOpenFolder_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btnOpenFolder.Click
' Hook up the AssemblyResolve Event - which occurs when the ' resolution of an assembly fails - to the method AssemblyResolve ' This is important if your assemblies reference others which are ' located in a different path and can't be found ' http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx AddHandler AppDomain.CurrentDomain.AssemblyResolve, AddressOf AssemblyResolve
' Extract all the embedded resources from a given path Dim AssemblyInfos = ExtractResourceFromAssembly(GetFiles(txtPath.Text))
' and bind the extracted strings to a DataGrid DataGrid1.AutoGenerateColumns = True DataGrid1.ItemsSource = AssemblyInfos
End Sub
''' <summary> ''' Walks over a path and returns a list of files ending with .dll ''' </summary> ''' <param name="path">The path containing the assemblies.</param> ''' <returns>All list of files ending with .dll</returns> ''' <remarks></remarks> Private Function GetFiles(ByVal path As String) As List(Of String)
If path.Length = 0 Then MessageBox.Show("You have to enter a path.") Return Nothing End If
Dim query = From file In My.Computer.FileSystem.GetFiles(path, FileIO.SearchOption.SearchAllSubDirectories) Where (file.EndsWith(".dll")) Order By file
Return query.ToList
End Function
''' <summary> ''' Extracts all string resources from a list of assemblies and returns them as a list of AssemblyInfo-Objects holding the extracted strings. ''' </summary> ''' <param name="fileNames">The list of assemblies.</param> ''' <returns>A List of AssemblyInfo-Objects holding the extracted strings.</returns> ''' <remarks></remarks> Private Function ExtractResourceFromAssembly(ByVal fileNames As List(Of String)) As List(Of AssemblyInfo)
Dim ci As CultureInfo = Thread.CurrentThread.CurrentCulture Dim assemblyInfos As New List(Of AssemblyInfo) Dim rm As System.Resources.ResourceManager
For Each file In fileNames
' Load the assembly Dim _assembly = Assembly.LoadFrom(file)
' Retrieve all the resources ending with ".resources" Dim _resourceNames = _assembly.GetManifestResourceNames.Where(Function(n) n.EndsWith(".resources"))
For Each resourceName In _resourceNames
' remove the ".resources" from the end of the string resourceName = resourceName.Remove(resourceName.Length - ".resources".Length, ".resources".Length)
' create the respective ResourceManager Try rm = New System.Resources.ResourceManager(resourceName, _assembly)
' and get the the ResourceSet Dim resourceSet = rm.GetResourceSet(ci, True, False)
If resourceSet IsNot Nothing Then
Dim id As IDictionaryEnumerator = resourceSet.GetEnumerator()
While id.MoveNext()
If id.Value.GetType.ToString = "System.String" Then assemblyInfos.Add( New AssemblyInfo With { .Path = file, .Assembly = _assembly.ManifestModule.ScopeName, .Resource = resourceName, .Name = id.Key.ToString, .Value = id.Value.ToString} ) End If
End While
resourceSet.Close()
End If
Catch ex As Exception assemblyInfos.Add( New AssemblyInfo With { .Path = file, .Assembly = "Error", .Resource = ex.Message} )
End Try
Next
Return assemblyInfos
Private Function AssemblyResolve(ByVal o As Object, ByVal e As ResolveEventArgs) As Assembly Dim aName As New AssemblyName(e.Name)
Dim path1 = "The path where referenced assemblies are located." Dim p1 = Path.Combine(path1, aName.Name + ".dll") If (File.Exists(p1)) Then Return Assembly.LoadFile(p1) End If
Return Nothing
End Class
Public Class AssemblyInfo Public Property Path As String Public Property Assembly As String Public Property Resource As String Public Property Name As String Public Property Value As String End Class
To make things as easy as possible I uploaded the solution to MSDN Code Gallery.
* Design Change Request: Once a product is code complete the team focuses solely on bug-fixing and stabilizing the product and no new features are getting added. The only exception is when we learn (e.g. through a focus group working with the early product) that we’ve missed an important scenario/security issue/etc.
Yes, we are done with v1.0 !! An hour ago we released WCF RIA Services V1 to the web. Both the WCF RIA Services Toolkit and WCF RIA Services V1.0 for Silverlight 4 and Visual Studio 2010 are live on the Microsoft Download site :-)
The official product information is available on http://silverlight.net/riaservices as well as a Channel 9 video with Dinesh and Nikhil announcing WCF RIA Services v1.0.
Being a German working for Microsoft in the US I am extremely excited to announce that the Japanese, German, and French versions of Visual Studio 2010 and .NET Framework 4 are now available for MSDN subscribers!! It’s been a long journey, and it is truly rewarding to know that many of our international customers will now be able to experience this incredible product in their native language (and there is more to come :-) ).
Here are the SKUs available for download as of 5 pm (UTC-08:00) Pacific Time (US & Canada).
You experience the following error message:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
How to solve this issue?
There are a couple of things that might be going on here… (All of the following configurations are made on the computer running your SQL Server 2008 instance)
Allow remote connections to this server
The first thing you want to check is if Remote Connections are enabled on your SQL Server database. In SQL Server 2008 you do this by opening SQL Server 2008 Management Studio, connect to the server in question, right click the server…
… and open the Server Properties.
Navigate to Connections and ensure that Allow remote connections to this server is checked. Check if this solves the problem. If it does, here you go, continue with whatever you were doing and have a nice day.
Protocols for MSSQLServer
If you’re still running in issues let’s dig a bit deeper. The next good thing to check is the SQL Server Network Configuration. Open the SQL Server Configuration Manager, unfold the node SQL Server Network Configuration and select Protocols for MSSQLServer (or whatever the name of your SQL Server instance is).
Make sure that TCP/IP is enabled and try again. Even though I hope that this resolved your problems there might still be an issue with…
The Firewall
If there is still no communication happening between your computer and the remote SQL Server you most likely need to configure your firewall settings. A good first step is to figure out which port is being used by TCP/IP (and which you need to open in your firewall). You can do this by right clicking TCP/IP and selecting Properties.
Click on the tab IP Addresses and voilà – Port 1433 it is :-) That was easy enough and all there is left to do is to allow inbound TCP/IP traffic on Port 1433 in your firewall. In Windows 7 this works something like this. Open the Control Panel and navigate to Windows Firewall.
Click on Advanced Settings on the left hand side and you should see the Windows Firewall with Advanced Security. Select the Inboud Rules on the left hand side and click on New Rule… on the right hand side.
This opens the New Inbound Rule Wizard which you can use to allow inbound traffic on Port 1433 for TCP/IP (and which is exactly how you configured your SQL Server in the steps above). Just follow the steps outlined below and you should be good :-)
That’s it, success! From here you should be able to access your SQL Server remotely. Enjoy!
P.S. There's a good article on msdn on this topic if you're looking for additional information >> Configuring the Windows Firewall to Allow SQL Server Access.
Update (June 14th, 2010):
Hah! (We’re back ;-) ) It’s as easy as that:
Needless to say that other formatting – like Currency formatting – works as well
Check out Formatting Types on the .NET Framework Developer's Guide or SteveX Compiled - String Formatting in C# (nice cheat sheet) for more examples.
Canon ran into some audio-issues with their latest firmware update but were super quick to fix this issue :-)
There was a phenomenon in which the manual recording settings made in C1/C2/C3 were changed and sound could not be recorded if manual sound recording was used in the C1/C2/C3 settings and the camera was subsequently turned off (or if Auto Power Off was activated). This does not occur in modes other than C1/C2/C3.
Get the new firmware update here >> EOS 5D Mark II Firmware Update Version 2.0.4.
Get the update from http://web.canon.jp/imaging/eosd/firm-e/eos5dmk2/firmware.html
Excerpt from the change-log
Firmware Version 2.0.3 incorporates five enhancements to the movie function and a fix to the manual sensor cleaning function of the EOS 5D Mark II camera.
Enjoy (I know I will :-))!
We just announced the final release of IIS URL Rewriter 2.0 RTW.
URL Rewriter is an extension for IIS that makes Web addresses simple for customers to remember and search engines to find. URL Rewriter will help Web administrators implement simple and consistent Web addresses, generate customer and search engine friendly results, and leverage seamless integration with existing IIS features.
For more information or to download, please visit the Free URL Rewriter page.
I’m happy to report that the Bing Maps team shipped the final Bing Maps Silverlight Control with their Wave 14 update. Finally, no more screwing around with JavaScript but developing in in nice, good ol’ VB.NET or C# :-)
Btw, we updated Bing Maps as well which is especially sweet as the responsiveness got fantastic and we (finally) introduced Multi-point drag-drop directions :-)
Enjoy the goodness (which is usually VB but today Bing Maps) :-)
As mentioned in my last post today’s the day that Visual Studio 2010 and .NET Framework 4 Beta 2 are generally available to the public. We’ve updated the Visual Studio 2010 and .NET Framework 4 Beta 2 landing page which now includes links to the various Visual Studio 2010 versions as well as to the .NET Framework.
Visual Studio
Visual Studio Extensibility
.NET Framework
Team Foundation Server
Test Products
Express
Get the bits while they are still warm :-)
This morning we released Visual Studio 2010 Beta 2 together with .NET Framework 4 Beta 2.
These releases were accompanied by a major redesign of both the msdn Library as well as the msdn Developer Centers.
Visual Studio Beta 2 will be released in English, Japanese, and German and the .NET Framework Beta 2 will be released in English, Japanese, German and Arabic.
In addition to shipping the new (81% smaller) Client Profile of the .NET Framework, Beta 2 is the first version of Visual Studio to ship the new simplified SKU line up:
Visual Studio 2010 and .NET Framework Beta 2 is available to MSDN subscribers on Monday, October 19th, with general availability on October 21st.
Get all the details on the Beta 2 landing page or Somasegar’s blog (Announcing Visual Studio 2010 and .NET FX 4 Beta 2, Come meet the new MSDN).
Thanks to the SQL Server Team we just released a free SQL Server 2008 Express How-To-Guide Series on msdev.com. During the next weeks we’ll also integrating parts of the series into the Visual Basic Developer Center, C# Developer Center, the Beginner Developer Learning Center, etc.
One video of the series: How do I query data in a database?
Given the fact that we don’t have unlimited resources (yeah, I know… that was the biggest surprise for me as well when I started working at Microsoft. “Where are all the bags with money standing around in each corner? What? There are none? D’oh!”) we tried to cover a pretty comprehensive area starting with basics like “How do I create a database?” over “How do I query data in a database?” to more advanced features like “How do I import data from another source (Excel, Access, XML, MySQL, ...) into a SQL Server Database?”.
Please let me know how you like the selection we made and if there are other topics you’d like to see*.
P.S.: We’ll rearrange the videos soon to have a nice walkthrough including “Topics you should know before watching this video” and “Next videos you might want to watch”.
* I don’t want to raise wrong expectations in that I’m promising other videos to show up on request but depending on the topic/amount of people requesting content we might extend the series.
Abstract This sample shows how to edit data from a DataGridView in a details form which opens when one double clicks on the RowHeader of the DataGridView. Since both forms are bound to the same datasource one sees an instant update on both forms when the user decides to save the data and additional roundtrips to the database are avoided. It also provides a brief introduction to DataBinding in .NET.
Source Code Visual Basic | C#
Additional Resources Connecting to Data in Visual Studio Getting Started with Data Access Windows Forms Data Binding Forms over Data Video Series
Prerequisites The examples were created using Visual Basic 2008 Express (free download)/Visual C# 2008 Express (free download) but do also apply to earlier versions of Visual Studio (with minor modifications).
Abstract This short sample details how to access the clipboard to copy and paste text, images or generic objects. In order to do so this sample uses the Clipboard Class.
How Do I Video The corresponding How-Do-I video can be found here.
Additional Resources .NET Framework Class Library – The Clipboard Class
Prerequisites The examples were created using Visual Basic 2008 Express/Visual C# 2008 Express but do also apply to earlier versions of Visual Studio.
AbstractThis short sample demonstrates how to let one form in a Windows Forms application know when data in another form got changed. To implement this behavior I’ll show you how to create an event on Form2 and how to subscribe to this event on Form1 using the Handles keyword. The C# source code uses delegates to implement the aforementioned behavior.
Additional Resources Handling and Raising Events Events in Visual Basic
Prerequisites The examples were created using Visual Basic 2008 Express but do also apply to older versions of Visual Studio. Even though this concept is demonstrated in Windows Forms the same pattern can be used in WPF.
I regularly check the forums to get an understanding what’s going on in the community and what’s troubling our customers. Based on my findings I created some videos including the corresponding source code which I’m releasing over the next couple of days and subsequently when things come up (and there is a lot out there :-))
Abstract This short video shows how to exchange data between two forms of a Windows Forms application. You'll see how to use 1.) a public method and 2.) a public property to exchange data.
Additional Resources Access Modifiers in Visual Basic Access Modifiers in C# Property Usage Guidelines
Prerequisites The examples were created using Visual Basic 2008 Express/Visual C# 2008 Express but do also apply to earlier versions of Visual Studio. Even though this concept is demonstrated in Windows Forms the same pattern can be used in WPF.
Mit codekicker gibt es seit kurzem eine deutsche Alternative zu Stack Overflow. Noch nicht ganz so groß wie das englischsprachige Vorbild aber das kann ja noch kommen :-)
Viel Erfolg an das codekicker Team und schöne Grüße!
Found a great list of 30 cheat sheets/Reference guides on webdesigner depot (Thanks to Günter Hagedorn for this tip!).
This list neatly complements the Various Cheat Sheets (.NET, SQL Server, ASP.NET Ajax, CSS, JavaScript, RegEx, ...) post I did a couple of month ago which I updated with the following links:
Finally, find the update mentioned in the title on http://web.canon.jp/imaging/eosd/firm-e/eos5dmk2/firmware.html
Firmware Version 1.1.0 incorporates the following improvements and fixes.
Source (http://web.canon.jp/imaging/eosd/firm-e/eos5dmk2/firmware.html)
if you’re looking for firmware updates for other canon cameras you might want to look here: http://web.canon.jp/imaging/eosd-e.html
Ever since I remember I was in charge of my father’s computer (Well, to be honest, there was a time when I tried to install Skool Daze – a Commodore 64 game – on his brand new XT where he was ahead in the game but this quickly changed ;-) ).
Taking care of my father’s computer was an easy talk while we lived together in the same house but got significantly more challenging when I moved out, especially now that I’m in the US and my parents are in Germany. Since “remote controlling” my father on the phone wasn’t as easy as I hoped it to be (without going into details, I guess you know what I’m talking about…) I tried a couple of different programs including “Remote Assistance”, vnc, msn messenger and others over the time which all had different constraints. Without complaining to much none of them truly satisfied me. Fortunately though a friend introduced me to TeamViewer while we were struggling to setup his development environment and I’m using it ever since. Like Paint.NET, .NET Reflector, Fiddler, Process Explorer, FileZilla, … this is a “must have” tool for everybody doing IT-related work and getting regular requests from family and friends about “why the printer isn’t working anymore” or similar issues (I should probably write a “Must have tools” post).
To me it came down to a couple of things I liked about TeamViewer:
If you’re intrigued and have the same need (otherwise, what are you doing here ;-) ) give it a try and share your thoughts.
Happy administration!
Hi,
I posted a bit of code the other day which I used to get a list of all Code Snippets we ship in Visual Studio. In a nutshell, I used XElement.Load to create a new XML document from a filename from which I then read elements from (There are way to many ”from” in this sentence ;-) ). Unfortunately, I forgot to import the XML Namespace in the code I posted which caused my code not to return any results (but instead provided me with a brilliant opportunity to write another post. hehe :-) ).
Let’s have a look at the code which is causing trouble and a Code Snippets to understand what’s going on (you can find the complete code including the Snippet class in the aforementioned post):
Dim query = _
From file In My.Computer.FileSystem.GetFiles( _
"C:\Program Files\Microsoft Visual Studio 10.0", _
FileIO.SearchOption.SearchAllSubDirectories) _
Where file.EndsWith(".snippet") _
Order By file
Dim snippets As New List(Of Snippet)
Dim snippetDocument As XElement
Dim snippet As Snippet
For Each item In query
snippetDocument = XElement.Load(item)
If snippetDocument...<Title>.Value IsNot Nothing Then
snippet = New Snippet With {.Title = snippetDocument...<Title>.Value.ToString _
, .Description = snippetDocument...<Description>.Value.ToString _
, .Path = item _
, .Size = New System.IO.FileInfo(item).Length}
snippets.Add(snippet)
Code Snippet
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Activate a Running Application by Name</Title>
<Author>Microsoft Corporation</Author>
<Description>Activates a running application using the name of the application.</Description>
<Shortcut>appActNa</Shortcut>
</Header>
<Snippet>
<Imports>
<Import>
<Namespace>Microsoft.VisualBasic</Namespace>
</Import>
</Imports>
<Declarations>
<Literal>
<ID>applicationName</ID>
<Type>String</Type>
<ToolTip>Replace with the name of the application. This is often the title of the application window.</ToolTip>
<Default>"Untitled - Notepad"</Default>
</Literal>
</Declarations>
<Code Language="VB" Kind="method body"><![CDATA[AppActivate($applicationName$)]]></Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
As you can see there is a <Title> element in the the Code Snippet to which we are referring to in the code above… or are we?
Let’s dig a bit deeper, open the compiled program in .NET Reflector and disassemble it (if you don’t have .NET Reflector you have to stop reading NOW and get it!! Seriously, this tool is a life-safer and I’ve learned soooo much using it!).
If you focus on the parts I highlighted in red in the above picture you can see that <Title> consists out of the XML name and the XML namespace (check out XName..::.Get Method (String, String)). Since I didn’t import the namespace in my program an empty namespace got used resulting in the qualified name Title which doesn’t fit the namespace of the Code Snippet {http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet}Title, hence my program didn’t return any results.
To solve this problem I added the following line of code to my program
Imports <xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
and – finally – all is good :-)
Hopefully this solved the mystery of the missing results ;-)
Best!