Development

Update ReSharper 7.1.3 has been released. See JetBrain's release notes for guidance. After installing Visual Studio 2012 Update 2, the unit test runner in ReSharper fails to run tests – all unit tests display “pending” status and never complete. This is a known issue with current versions of ReSharper (7.1.2 and 8.0). http://stackoverflow.com/questions/15829723/cant-run-mstest-unit-tests-via-resharper-after-upgrading-to-vs-2012-update-2 http://youtrack.jetbrains.com/issue/RSRP-339546 http://youtrack.jetbrains.com/issue/RSRP-339987 Grab the latest “private” 7.1.3 build from the links above, install, and carry on with your unit testing. There...

If you’re running a mixed team of developers with different versions of Visual Studio, you’re going to run into problems with solution and project file version compatibility. Theoretically, Visual Studio 2012 changed that; all solution and project files are backwards compatible! Yay! Problem solved. Except for our old friend .dbproj from Visual Studio 2010. Visual Studio 2012 converts .dbproj files into .sqlproj files, which Visual Studio 2010 can’t open. Google tells me that I just have to install SQL Server Data Tools for Visual Studio 2010, and everything will be great! Except that the current...

This one’s for my reference, mostly; hopefully I don’t spend hours trying to debug this error next time. The scenario is that you’re using an EntityDataSource to bind some entities to a ListView. Inside the ListView, you’ve got a nested data-bound control that’s trying to bind to a collection property of the current entity. For example, you bind a list of CustomerOrder entities to the parent ListView, and then bind the collection of CustomerOrder.CustomerOrderLines to a child ListView to render the products the customer has purchased on each order. Using the EntityDataSource in its default state gives...

A couple of years ago I posted my solution for the infamous “A potentially dangerous Request.Form value was detected from the client” error when using TinyMCE with ASP.NET 4.0. The solution worked (mostly) without turning off request validation. Since then, I’ve changed my approach slightly; I’ve dropped the Moxiecode TinyMCE ASP.NET assembly and have gone with a purely JavaScript solution. I think it works better, and it’s a lot cleaner and more up to date. There are a few parts to this: Implementing TinyMCE JavaScript version Decoding HTML server-side...

Certificate signing isn’t a perfect answer for untrusted code, but it does give the user another indication that your Add-In will do what it says on the tin. More importantly, not signing your code when the installer framework expects a certificate isn’t a great way to make a first impression. Not cool. Previously, we talked about automating builds of our Add-In’s installers and the parent *.wssx add-in package file, and my strategy for automatically building packages that support in-place upgrades. Now we’re going to talk about signing our *.wssx package with a certificate, specifically a...

The Windows Server Solutions SDK gives us some great new functionality for deploying Add-In packages: A proper upgrade process Signing Client installers that can be automatically applied to any joined PCs EULA support Localization support But, because there’s no such thing as a free lunch, the new functions come with added complexity. As I’ve discussed previously, in order for your Add-In to support in-place upgrades there are a bunch of properties that need to be changed...

A few weeks ago I posted recommendations for structuring your WSSX cabinet files and installer packages. I also promised to post some magic automation techniques to make building *.wssx files much, much easier. The magic part is coming in the next post, because we still need to cover some foundations properly! To that end, I’ve put together a custom Visual Studio 2010 project type that allows you to manage your *.wssx build process in the same way you manage every other project in your solution. It’s now up on the Visual Studio Gallery for download as an...

The Windows Home Server v1 extensibility framework missed out an important component; Microsoft implemented no upgrade capability for already-installed Add-Ins. The “upgrade” process required that the user uninstall the old version of your Add-In, and then install the new version. If your installer wasn’t checking for existing versions of your Add-In users could easily find themselves with multiple instances your Add-In installed, with no way to remove them without manual registry editing. Windows Home Server 2011 (and the other platforms that support the Windows Server Solutions SDK) now support Add-In upgrades properly. A user can now download...

We don’t normally review products on this blog; there are plenty of other content providers that do great reviews, and we want to keep the focus here on Windows Home Server development. Despite that (maybe because of it), we think this one is definitely worth your time. Disclaimer: Packt Publishing gave us a free copy of this eBook in December 2010 and asked us to review it. By now, it should be pretty clear that I really like WiX for building MSI packages. WiX may have a steep learning curve, but once you’re...

If you’re using ASP.NET Routing (without the MVC abstractions), you’ll be trying to route http://www.mysite.com/Default.aspx sooner or later. This won’t work: public static void RegisterRoutes(RouteCollection routes) { routes.Add("Default", new Route("Default.aspx", new RouteHandler("~/Site/Default.aspx"))); } It won’t work because the request isn’t actually for Default.aspx, the request is for the site root, which IIS will catch. IIS responds by attempting to serve the default page for the site (probably Default.aspx), which may or may not exist. To route requests to the site root, you’ll need to do this instead: public static void RegisterRoutes(RouteCollection routes) { routes.Add("Default", new Route(string.Empty, new RouteHandler("~/Site/Default.aspx"))); } We’re...

Search

Site Sections

Recent Posts

Archives

Post Categories

WHS Add-In Tutorial

WHS Blogs

WHS Development