January 25, 2012

CapArea.NET Follow-up: HTML5 Metro apps resources

CapArea.NetMy thanks to everyone who came out tonight for the Capital Area .NET User Group for my presentation on developing Windows 8 Metro style applications using HTML5 and JavaScript. Great questions and lots of great discussion. Thanks for keeping me on my toes!

As promised, I wanted to share pointers to some additional recorded sessions from BUILD that you may find useful, as well as a link to the sample Canvas Paint app that I used for my demos. If you're interested in getting the additional tweaks I added to the sample to support persisting the brush color and size, etc. please drop me a note via my contact page, and I will be happy to share it.

Additional Related BUILD Sessions:

and the presentation on which my talk tonight was based:

UPDATE: Nevin House, who attended last night's talk, got in touch with me via email, and recommended the following two talks on JavaScript, and I heartily agree…both are great talks and are highly recommended for anyone wishing to better understand JavaScript in the context of Metro style apps in Windows 8:

Both presentations feature some of the best presenters from BUILD. Enjoy!

Canvas Paint Sample App

canvasPaintLogoThe Canvas Paint sample app, along with many other samples and demos, may be downloaded from the Samples area for Windows 8. The direct link to the Canvas Paint sample is:

http://code.msdn.microsoft.com/windowsapps/CanvasPaint-878fa5d5

Note that you can browse the code directly online, or download the sample and run it locally (if you have installed the Windows 8 developer preview).

January 24, 2012

dotTrace 5.0 Performance Early Access Program

As some of you may have noticed, we have recently opened the EAP for dotTrace 5.0 Performance. It was a very quiet launch for a number of reasons, but now here we are talking about the new exciting version of the .NET performance profiling tool.

There’s a ton of new features in this release as outlined below and some of the major features we’ll get back to in future posts, covering them in full detail. For now, download dotTrace 5.0 Performance EAP, and read further to learn what you’re going to get with it.

Remote profiling enhancements

Remote profiling with dotTrace 5.0 PerformanceOne of dotTrace Performance benefits is the ability to preform remote profiling of applications. This comes in very useful when instance you are trying to diagnose and issue on a machine that is in production. In dotTrace 5.0 Performance, we have enhanced this behavior to allow:

  • Running the profiling agent as a regular service or ASP.NET Web Service.
  • Remote profiling over HTTP. This effectively removes some of the common barriers encountered when trying to do remote profiling such as firewalls or VPNs.
  • Less administrative permissions making it easier to use in more restricted environments.

Attach to a running process

A great new feature in dotTrace 5.0 Performance is the ability to attach the profiler to an existing process and run performance analysis on it. Once sufficient information has been collected, the profiler can then be detached. This allows us to open up new usage scenarios like taking a snapshot of an application that needs to be run for hours (or days) before it starts to display any performance issues.

dotTrace Performance can now attach to a running process

Profiling API re-design

In dotTrace 4.5.1 Performance, we introduced a very early version of the profiling API which allows you to incorporate profiling capabilities inside your application. It was a rough-cut version and had one minor glitch: you could not detach the profiler once attached. This problem has now been solved as mentioned above, and the API has been overhauled to provide a much richer development experience.

Command line support

Version 5 also introduces support for running dotTrace Performance from the command line, including:

  • A configuration helper for command line execution.
  • Ability to integrate performance profiling into the Continuous Integration process (using TeamCity for example) via MSBuild or NAnt tasks.

dotPeek integration

If you are still not familiar with dotPeek, it is a free .NET decompiler tool which we opened the EAP several months ago. One of the core ideas of dotPeek is to offer integration with our other productivity tools, such as ReSharper, whereby you can decompile any assembly for which you do not have the sources, directly from within Visual Studio. We now offer the same experience with dotTrace 5.0 Performance (we have actually posted a preview of it several months ago.) While profiling an application, if you need to dig further into the code and you do not have the PDB’s, dotTrace Performance will decompile it for you in-place and present decompiled code in the source preview area.

Decompiling .NET code within dotTrace Performance

Enhancements and additions for supported frameworks

This version will also provide support for CLR 4.5 as well as Windows 8. In addition to the new frameworks, dotTrace 5.0 Performance also provides side-by-side profiling of CLR 1/2 and CLR 4.0/4.5 frameworks.

Compatibility with TypeMock Isolator

In collaboration with our friends at TypeMock, we have made dotTrace Performance work seamlessly along with TypeMock Isolator. This allows you to easily profile your unit tests even when using TypeMock as a mocking framework. It also means that dotTrace Performance can now work in what’s called transparent mode, stepping back and allowing other engines to interleave between dotTrace and the target of the performance profile.

Improvements in Plain List View

Among the improvements is the ability to filter in-place, system functions in the Plain List View as well as group functions by assemblies:

Improved Plain List View

Other features and improvements

dotTrace 5.0 Performance is packed with a ton of smaller features, bug fixes and performance improvements, including:

  • Lower memory footprint during performance profiling.
  • Support for IIS Express from within or outside of Visual Studio.
  • Improvements on the UI for Adjust Time functionality, allowing control of non-user-defined functions.
  • Up to 20 times performance improvement on plain list construction for larger snapshots.
  • Threads with message pumping loop are now highlighted.
  • Close to 40 bug fixes, including some important ones affecting callstacks.

Get your EAP build!

You can start playing with dotTrace 5.0 Performance by downloading the latest nightly build from the Early Access Program Page today!

January 23, 2012

Upcoming Events for January 23rd, 2012

Here are the events listed in Community Megaphone for the next week (or so) for the Mid-Atlantic area, as well as webcasts of interest…this list includes events imported from the UGSS event calendar, and user group events entered in Community Megaphone are also automatically synced to the UGSS event calendar:

Online

Microsoft-ComponentOne Hands-On-Workshops for Windows Phone:Session 1-Fast Track Your First App
Tuesday, January 24, 2012 11:00 AM, Online
Online Event Icon Government and citizen-oriented apps represent a huge emerging market for mobile developers. These “Let’s Build Something Mobile” Workshops will walk you through the basics of creating, testing and deploying a Public Sector app, so that No Developer is Left Behind taking advantage of this new market. As a participant you will have the opportunity to create your own unique Public Sector Windows Phone app that is ready to be deployed to the Windows Phone Marketplace. During each of the two sessions, experts from Microsoft and ComponentOne will be available to answer questions and offer guidance.
During this workshop, you’ll be exposed to the basics of creating a Windows Phone App and deploying to the Marketplace. As an attendee, you will be given some time during the session to use what you’ve learned to develop your own apps which access freely-available Public Sector data. The presenter along with resources from Microsoft and ComponentOne will be available to support you along the way.
*Attendees will receive a complimentary 1-year subscription for ComponentOne Studio® for Windows Phone
Pre-requisite: Download/Install
* Visual Studio Express & Tools http://aka.ms/getphone
* ComponentOne Studio(r) for Windows Phone (Trial Edition) http://www.componentone.com/SuperProducts/StudioWindowsPhone/

[ Event Details | Add To Calendar ]

Microsoft-ComponentOne Hands-On-Workshops for Windows Phone Series: Session 1 - Fast Track Your First App
Tuesday, January 24, 2012 4:00 PM, Online
Online Event Icon During this workshop, you’ll be exposed to the basics of creating a Windows Phone App and deploying to the Marketplace. As an attendee, you will be given some time during the session to use what you’ve learned to develop your own apps which access freely-available Public Sector data. The presenter along with resources from Microsoft and ComponentOne will be available to support you along the way.
*Attendees will receive a complimentary 1-year subscription for ComponentOne Studio(r) for Windows Phone
Pre-requisite: Download/Install
* Visual Studio Express & Tools http://aka.ms/getphone
* ComponentOne Studio(r) for Windows Phone (Trial Edition) http://www.componentone.com/SuperProducts/StudioWindowsPhone/


[ Event Details | Add To Calendar ]

Testing the Untestable: Unit Testing Legacy Code
Wednesday, January 25, 2012 9:00 AM, Online
Online Event Icon Webinar Registration
Everybody has legacy code. How do you apply unit testing to existing code? Code that wasn’t meant to testing.
This is a hardcore session, where we take an open source application and add tests to it. In the process, we’ll refactor the code, discuss readability, and where to even begin.
This is an intensive demonstration of automated testing hard-core legacy code. If you are a legacy ninja, check it out.
Sign up and you will get a sneak preview of the latest that's brewing in Typemock's labs


[ Event Details | Add To Calendar ]

Online - Azure Florida Association: Demystifying SQL Azure with SQL Azure MVP Vikas Sahni
Wednesday, January 25, 2012 6:30 PM, , Online
Online Event Icon 01/25/2012 - 4:00 PM - Online Meeting - What is SQL Azure, Value Proposition, Usage scenarios, Concepts and Architecture, What is there and what is not, Tips and Tricks


[ Event Details | Add To Calendar ]

Microsoft-ComponentOne Hands-On-Workshops for Windows Phone Series: Session 2 - Give Your App Some POP
Thursday, January 26, 2012 11:00 AM, Online
Online Event Icon Enhance the look and functionality of your existing Windows Phone app (or one created in the Fast Track Your First App session) by leveraging capabilities specific to the Windows Phone API and by using advanced UI controls. You’ll get a feel for Microsoft’s Expression Blend design tools too. As an attendee, you will be given some time during the session to use what you’ve learned in order to make improvements to your apps. The presenter along with resources from Microsoft and ComponentOne will be available to support you along the way.
*Attendees will receive a complimentary 1-year subscription for ComponentOne Studio(r) for Windows Phone
Pre-requisite: Download/Install
* Visual Studio Express & Tools http://aka.ms/getphone
* ComponentOne Studio(r) for Windows Phone (Trial Edition) http://www.componentone.com/SuperProducts/StudioWindowsPhone/


[ Event Details | Add To Calendar ]

SharePoint ShopTalk
Thursday, January 26, 2012 12:30 PM, Online
Online Event Icon
REGISTER FOR A SPECIAL EDITION OF SHAREPOINT SHOPTALK: PANELIST SPOTLIGHT - TIPS & TRICKS WITH K2!
Sharepoint ShopTalk is a live, dynamic discussion held weekly amongst SharePoint Professionals. It is an excellent source for users who need to discuss challenges or are looking for answers to pressing contemporary SharePoint questions. All are welcome to take advantage of this forum that features leading experts in the field.
K2: No Code Solutions for Building Workflow Applications in SharePoint
See how K2 offers an easier way to build and automate process-driven solutions in SharePoint, plus provides the tools necessary to support the entire life cycle of your business processes, including workflow design and modeling, business data and enterprise system integration, reporting and analysis, and process administration. All without code!
Benefits:
· Learn about key concepts and best practices of Business Process Management
· See how the K2 platform can be used to reduce time and costs through rapid workflow creation and deployment
· Learn how K2 can leverage and enhance your existing Microsoft investments
Speaker Bio
Greg Sanderson has 15 years of experience in application design, architecture, analysis, training, and project management. He is currently a technical sales engineer for K2 in the Eastern US and Canada regions. Prior to K2, Greg was responsible for managing application development projects for News America Marketing's internal and external online presence. He oversaw multiple development teams and areas of responsibility, including SharePoint and related .NET applications.

[ Event Details | Add To Calendar ]

Microsoft-ComponentOne Hands-On-Workshops for Windows Phone Series: Session 2-Give Your App Some POP
Thursday, January 26, 2012 4:00 PM, Online
Online Event Icon Enhance the look and functionality of your existing Windows Phone app (or one created in the Fast Track Your First App session) by leveraging capabilities specific to the Windows Phone API and by using advanced UI controls. You’ll get a feel for Microsoft’s Expression Blend design tools too. As an attendee, you will be given some time during the session to use what you’ve learned in order to make improvements to your apps. The presenter along with resources from Microsoft and ComponentOne will be available to support you along the way.
*Attendees will receive a complimentary 1-year subscription for ComponentOne Studio(r) for Windows Phone
Pre-requisite: Download/Install
* Visual Studio Express & Tools http://aka.ms/getphone
* ComponentOne Studio(r) for Windows Phone (Trial Edition) http://www.componentone.com/SuperProducts/StudioWindowsPhone/


[ Event Details | Add To Calendar ]

SSWUG Online Course: Introduction to Windows Azure
Tuesday, January 31, 2012 12:00 AM, Online
Online Event Icon SSWUG.ORG's virtual class will provide you with the knowledge of Window Azure's components and aspects to run applications without the expense needed to maintain the hardware and save money on licensing costs.
Scott Klein, who is a Microsoft SQL Azure MVP and the co-founder of Blue Syntax Consulting, will showcase the different types of services that can be hosted in Windows Azure such as web and worker roles, and then move on to the basics of Azure's durable storage solution, which include Azure queues, blobs and tables.
He will also provide a introduction on SQL Azure - Microsoft's cloud-based relational database, and how you can use SQL Azure to store your relational data on the cloud. This will be followed up by sessions dealing with Azure AppFabric, cloud computing patterns and practices, as well as diagnostics and service management.


[ Event Details | Add To Calendar ]

VA

High Availability and Disaster Recovery for SQL 2012
Monday, January 23, 2012 7:00 PM, Vienna, VA
View High Availability and Disaster Recovery for SQL 2012  on Bing Maps NOVA SQL User Group Meeting
SQL 2012 introduces a multitude of changes in the HA and DR stacks. We will review the options we currently have available in SQL 2008 R2, and discuss what changes both in clustering and the big new feature of SQL 2012 AlwaysOn Availability Groups. Joe will give a demo of the Availability Groups feature, and show how you can have a multi-site DR scenario without even talking to your SAN admin.
Joey D'Antoni is a DBA with over a decade of experience working in both Fortune 500 and smaller firms. He is currently working at Comcast. He holds a BS in Computer Information Systems from Louisiana Tech University, and a MBA from North Carolina State University. He is the Vice President of the Philadelphia SQL Server Users Group, and a member of the board of the SQL/Oracle and Health Care PASS VCs. Joe is a frequent speaker a local user groups, Code Camps, and SQL Saturdays.


[ Event Details | Map & Directions | Add To Calendar ]

Windows 8 Metro Apps using HTML 5 From Start to Finish - G. Andrew Duthie (Microsoft)
Tuesday, January 24, 2012 6:30 PM, Vienna, VA
View Windows 8 Metro Apps using HTML 5 From Start to Finish - G. Andrew Duthie (Microsoft) on Bing Maps Get started writing Metro style apps using your HTML5, JavaScript, and CSS skills today! Come dive into the specifics of this exciting platform and see how you can use your Web skills to build deeply-integrated Windows apps. You’ll discover how this mirrors or differs from traditional Web programming and how to harness the rich capabilities of Windows 8 through JavaScript and the Windows Runtime.

G. Andrew Duthie, aka devhammer, is the Developer Evangelist for Microsoft’s Mid-Atlantic States district, where he provides support and education for developers working with the .NET development platform. In addition to his work with Microsoft, Andrew is the author of several books on ASP.NET and web development, and has spoken at numerous industry conferences from VSLive! and ASP.NET Connections, to Microsoft’s Professional Developer Conference (PDC) and Tech-Ed. Andrew has been participating in the user group community since way back in 1997, when one of his co-workers dragged him out to the Internet Developers User Group in Tyson's Corner, VA, and he's been hooked ever since.
Andrew is also the creator and developer of Community Megaphone, a site designed for promoting and finding developer community events.
In addition to his work in software development, Andrew has enjoyed some recent forays into the world of hardware experimentation, including developing for Kinect and .NET Gadgeteer, using his newly-formed hardware chops to do everything from blinking LEDs and making strange noises, to flying a helicopter with his bare hands.
Andrew can be reached through his blog at http://devhammer.net/. You can also follow Andrew on twitter @devhammer.

[ Event Details | Map & Directions | Add To Calendar ]

In-Person Training: Advanced SharePoint BI Security and Configuration (Metro Washington D.C.)
Monday, January 30, 2012 8:30 AM, Reston, VA
View In-Person Training: Advanced SharePoint BI Security and Configuration (Metro Washington D.C.) on Bing Maps In a partnership agreement between SSWUG.ORG and SolidQ, a fast-paced, in-person seminar on configuring and securing SharePoint 2010 and business intelligence services will be offered on Jan. 30-31 from 8:30 a.m. to 4:30 p.m. in Reston, Virginia.
Carl Rabeler, course instructor and director of SolidQ's BI Center of Excellence, will review the SharePoint 2010 security architecture for authentication and authorization, particularly as it relates to connectivity to external data sources. He will also provide information on configuring administrative access to SharePoint 2010, configuring service application accounts, and user permissions.
Additionally, you will learn about the nuances of configuring and security each of the core business intelligence components of SharePoint 2010: Excel Services, PerformancePoint Services, Reporting Services and PowerPivot Services. Finally, you will also learn about changes to Reporting Services security and configuration with SQL Server 2012.


[ Event Details | Map & Directions | Add To Calendar ]

February Meeting - What You Need to Know about Parallelism
Thursday, February 02, 2012 6:00 PM, Roanoke, VA
View February Meeting - What You Need to Know about Parallelism on Bing Maps The Free Lunch is Over: What You Need to Know about Parallelism
Presented by Stuart Leitch:
Single thread CPU performance improvements have largely stalled out. The sequential performance “free lunch” most developers enjoyed from hardware advances is over. With the industry shift to multiple core systems, performance has to be realized through concurrency and many developers will find themselves building applications designed to scale as the number of cores increases. This session will provide a broad review of the trends in parallelism and an overview of major patterns for parallelizing your applications.


[ Event Details | Map & Directions | Add To Calendar ]

Want your events listed? You can add them here.

You can also add your events via the Community Megaphone web service API. You can get more information on the API, and how to sign up, at http://www.communitymegaphone.com/API.aspx. You can also email me for more information.

Importing / Exporting Templates and Patterns in ReSharper 6.1

 

One of the changes introduced with the new settings in ReSharper 6.1 is how importing and exporting of templates and custom patterns are done (Custom Patterns were previously known as Structural Search and Replace).  As part of the unification of settings, Templates and Patterns now fall under the same modus-operandi when it comes to importing and exporting as other settings do. This is very similar to how our IDEA based IDE’s such as IntelliJ, WebStorm et al. work. However, certain legacy functionality is also available depending on what needs to be done.

The de-facto choice

Be it Templates or Patterns, when you want to import or export them, the recommended approach is to use the Manage Options dialog

 

SNAGHTMLa44bc04

 

To export, we merely select Export to File. ReSharper prompts us with a dialog box of what we would like to export:

 

SNAGHTMLa471579

 

At this point we can select whether we want Live Templates, Patterns (StructuralSearch*) or both. It is important to note that if you do not have any user defined templates and/or patterns, then these options are not available, i.e., you would not see the LiveTemplates / StructuralSearch checkboxes.

 

The exported file format is only compatible with ReSharper 6.1 and higher (.DotSettings file).

 

Importing

When it comes to importing templates and patterns, if these are in .DotSettings format, then it is merely about adding another layer. We select the file to import, and are prompted on what settings we’d like imported:

 

SNAGHTMLa62f7ad

 

The benefit of this approach is not only that it keeps all settings centralized, but it also allows us to mount and un-mount related templates.

 

* StructuralSearch comes from the old name giving to Custom Patterns which was Structural Search and Replace

 

Exporting Individual Templates

One option that is currently not available using the Manage Options dialog when dealing with the export of templates is to selectively choose which ones we’d like exported. If we want to only export specific templates, we need to use the Template Explorer (previously named Live Templates)

SNAGHTMLa66c44e

 

We can then select individual templates and choose the Export button. This is basically the old behavior prior to ReSharper 6.1. The difference however is that the file exported is in the new .DotSettings format. In this regard, there is no difference between this approach and the previous Manage Options one.

 

Dealing with legacy templates and patterns formats

The Templates Explorer window also has an option to import Templates

 

image

 

Although this allows the newer DotSettings file format, we usually should only use this when trying to import legacy templates (from version 6.0 and lower).

 

When it comes to Patterns, when trying to import older ones, we can use the Import from R# v6.0- button on the Custom Patterns options page

 

image

 

 

Summary

With the new settings we’ve hopefully made sharing of Patterns and Templates a little easier. There are still improvements to make but any/all feedback or changes you’d like to see are welcome. Please log them in our issue tracker so that they can be managed better.

January 18, 2012

Per Project Settings or How to have different naming styles for my test project

 

One nitpick that I myself and many have had with ReSharper is not being able to have different naming styles for types based on different projects. In my code I normally name classes using CamelCase

 

image

 

and in my test project I use all_lowercase

 

image

 

Unless you add all_lowercase as a valid naming style, you’ll always end up with those squiggly lines under all your tests. And let’s admit it, it’s not a big deal but it’s annoying. #FirstWorldProblem

 

Say hello to my little layer

With ReSharper 6.1 we introduced the concepts of layers, which open up many new possibilities, including sharing settings on DropBox and or setting company wide standards. What you might not know is that it allows Per Project Settings too! No big deal if you didn’t know, since we currently do not support it via the User Interface so it would be hard to figure it out. However it’s pretty simple to do and I’m going to show you how.

 

Our goal here is to allow all_lowercase settings for classes in our test project (Tests) and not permit the same in other projects (Project). This is the sample project layout we’re going to be working with

 

image

To make this happen, we need to create specific settings for the Tests project and allow the possibility of classes being all_lowercase. That is, the Tests project needs its own DotSettings file.

 

Since there’s no specific button or option to add Per Project settings in the UI, this is where we need to kind of use a workaround. We need to have a Settings file for the project and then edit the options and save it to this file. There are many ways to create this new settings files. We can copy the solution one and rename it, we can export the current settings, we can mount a new layer and have ReSharper create it for us, etc.

We’re going to use this last method. Why? Because since ReSharper mounts it when it creates the file, it will allow us to edit the settings too.

 

 

1. With the Solution open, click on Manage Options under ReSharper

 

2. Under This Computer, click on the Add Layer icon (on the right) and select Create Settings File

image

 

 

3. Save the file to the Tests project folder, in our case that would be under SolutionDir\Tests and name it (and here’s the important part) Tests.csproj.DotSettings. That is, it should be named with the ProjectName, followed by csproj or vbproj based on the type of project and with the extension DotSettings.

 

4. Now that we have the settings file mounted, we need to change the required settings, which in our case is to allow classes to have all_lowercase (this obviously works for other settings too). As such, double-click the recently mounted file or right click and click on Edit

 

image

 

5. The Options dialog comes up. We want to edit the naming styles

 

image

 

Modify any other settings you wish at this point and once done, hit Save on the Options dialog.

 

image

 

At this point, we can remove the mounted settings as its not required for it to actually work. We can also leave it in order to easily access the settings for the project in the future. If you do leave it, make sure you uncheck the checkbox so that settings are not applied to the entire solution.

 

[Recommendation: If you decide to leave the settings mounted, mount these under Solution Shared or Solution Personal as opposed to This Computer so that you don’t end up with a long list of different settings files]

 

 

As soon as we hit Save, the new settings automatically are picked up by ReSharper and take effect. We can now see that the naming style no longer appears incorrect under the Tests project

 

image

 

and if we try and use the same style in the actual Project we do get the warning

 

image

 

The UI will come

Once you do this once, you can pretty much copy the same file over to your different projects and rename it to match the project name. In one of the next versions of ReSharper we will provide a more intuitive UI (or should we say we’ll provide an actual UI) for this. For now however, I think this minor hack will make a few people happy!

Introducing ReSharper 6.1 SDK

This post is about ReSharper 6.1. For other features in ReSharper 6 (both 6.0 and 6.1), please see previous posts introducing ReSharper 6. Those cover support for JavaScript (including unit testing with QUnit), CSS, ASP.NET MVC 3 Razor, and Async CTP; bundled decompiler; explanations on ReSharper inspections; fine-tuning file headers; ReSharper settings revised in 6.1 (and their company-wide usage); recent improvements in IntelliSense options, and optimizing assembly references


Though every new release of ReSharper comes with extra features and functionality, there are always things that our users want that don’t come out of the box. This includes things like, for example, support for various unit test frameworks as well as various bits of functionality that are domain-specific or related to particular challenges a user is facing.

Luckily, ReSharper has always shipped with an Open API which provided the opportunity to write plug-ins — extensions to the core ReSharper mechanisms that would be provided in separate files and integrated into ReSharper at start-up. While the opportunity was always there, and has resulted in a number of plug-ins being written, there’s never been any framework that would simplify the task for plug-in developers. Until now.

With the release of ReSharper 6.1, we have also introduced the ReSharper SDK — a separate framework that has been designed to make plug-in development easier. The SDK includes the following:

  • ReSharper assemblies, including PDBs and documentation XML files. These files include not just the core ReSharper assemblies, but also the unit test framework, which lets you write unit tests for your plug-in.
  • MSBuild target files, which make referencing the ReSharper assemblies a lot easier.
  • Project and item templates for VS2010, which make getting started with plug-in development a breeze.

Two packages are provided with the SDK: the MSI installer, which comes with all of the above, as well as a ZIP package, which contains only the assemblies and target files, and is provided to help build and test plug-ins in Continuous Integration systems such as TeamCity. Both packages contain introductory documentation to help you get started, with the bulk of documents related to plug-in development available online. These documents contain a variety of topics such as how to port your plug-in to use the SDK, develop support for a new language, or deploy the plug-in. The documents are being actively developed, and you’re welcome to comment on them should things start getting unclear.

The SDK packages are available on the ReSharper Downloads Page under Related Downloads. The following JetBrains TV video provides a comprehensive overview of the various SDK features including plug-in development, testing and configuration under TeamCity.

January 03, 2012

Optimizing Assembly References with ReSharper 6.1

This post is about ReSharper 6.1. For other features in ReSharper 6 (both 6.0 and 6.1), please see previous posts introducing ReSharper 6:


One of the prominent new features in ReSharper 6.1 is the ability to easily manage your existing assembly references, browse usages of referenced assemblies, and remove unused references.

In fact, this is not a single feature but three features. Each of them is outlined below:

  • Optimize References. This is the main feature for analyzing referenced assemblies. It can be invoked on any single project from the project’s own context menu or from the context menu of the References node in Solution Explorer:

    The Optimize References tool window displays assembly references that are both unused and used in the current project, and shows how exactly references are used. The feature does not require your project to be compiled, which means you can invoke it even if your project is currently broken.

    One of the best things about this feature is that it allows you to explore usages of a specific referenced assembly, namespace or type; filter them by kind, group them and navigate from them directly to your source code. The screenshot below illustrates exactly why this project references EasyHttp.dll, which types from that assembly are used and where:

    Different icons mean different kinds of usages like read, write, attribute, or invocation usages — the same usage filtering functionality that is used in all other ReSharper search features based on Find Results window. However, one kind of usages is unique for Optimize References: it’s called “related usages” and indicates implicit (non-direct) assembly reference usages required for the compiler.
    In the simplest case, related usages are caused by a type’s hierarchy. That is, if you use a certain type, you have to reference all assemblies containing that type’s supertypes. Unfortunately, this is just one example along with many others which are much more complicated!
    In addition to exploring assembly usages, you can delete unused assembly references directly from this tool window — the toolbar contains two buttons, Remove all unused references and Remove selected references:

    Note that this feature also deletes all redundant C#, VB.NET or XAML namespace import directives which reference namespaces from the assemblies being removed.
  • Remove Unused References. This refactoring quickly detects unused assembly references without displaying their usages. Since it works faster than Optimize References, it is very useful if you don’t want to a full-fledged usage analysis and you’re just looking for a quick cleanup of your project references.

    Clicking Analyze Used References… button in this dialog box will open the Optimize References tool window for a thorough analysis of reference usage.
  • Safe Delete Assembly Reference. This refactoring either silently removes selected assembly references or opens a confirmation window indicating that some of the selected references are used (and shows how they are used.) The refactoring is available on pressing Alt+Del on an assembly reference (or references) selected in the Solution Explorer, or via Refactor This shortcut menu.

These 3 features introduced in ReSharper 6.1 will definitely help you maintain your solution and get rid of redundant dependencies. By the way, keep in mind that if you want to find out which code is referenced in a given scope other than a project (for example, in a folder or in a method), you can use ReSharper’s Find Symbols External To Scope feature that has been recently made available as the Referenced Code option via Navigate To shortcut menu.


The original post is authored by Kirill Skrygan (@kskrygan on twitter), ReSharper developer and the the author of the Optimize Assembly References feature set.

January 02, 2012

New York City SharePoint Developers User Group presentation (Dec 21st)

I presented at the New York City SharePoint Developers User Group (NYCSPDUG) on Dec 21st - SharePoint Workspace 2010 for Developers. It was well attended (~70) and the presentation was well received (based on the questions & feedback).


Download the presentation deck (PDF) from here.. (ping me if there are any questions or for more info).

Microsoft MVP Award for 2012: SharePoint Workspace:Architecture

My thanks goes to Microsoft for the Most Valuable Professional (MVP) Award for 2012 - 5th time in a row since 2008!  The award is based on SharePoint WorkSpace 2010 – find out more about it at the Office 2010 website.
I have been working with the CTDOTNET/CTSPUG developer community and also actively presenting and participating in numerous events - more about it at the MVP site.

December 30, 2011

ReSharper 6.1.1 Early Access

Do you like ReSharper 6.1? Judging by the feedback that keeps arriving via multiple channels, most users are happy with performance improvements and extended functionality.

However, could there be a release of an application as complex as ReSharper without bugs? This is very unlikely, and we do know that 6.1 RTM does have certain issues that affect a part of its audience.

With that in mind, we’re planning to deliver another minor update early next year that would exclusively focus on fixing issues discovered with 6.1 that don’t imply any substantial architectural changes. For the most part, the issues have to do with the new settings engine not always persisting changes.

Meanwhile, we felt it would be fair to deliver a build that would incorporate fixes implemented this far before the team goes on holidays until Jan 10. That said, everyone who is affected by this set of issues with 6.1 is welcome to download the initial build from ReSharper 6.1.1 Early Access Program. Expect further early builds mid January.

OK we’re done for the year. See you around in 2012!

December 29, 2011

New dotPeek Build: Base Types and Inheritors in Assembly Explorer

We have today released a new early build of dotPeek, our lovely .NET decompiler and assembly browser.

One thing about this new build that’s worth a mention is that from now on, the Assembly Explorer contains nodes representing base types and inheritors of the current type — in addition to the actual list of members:

We hope that would be a handy addition for people with Reflector background. Of course, you can still use ReSharper-based navigation features such as Go to Base, Go to Inheritor, and Type Hierarchy to explore inheritance chains from symbol occurrences in the source code view area.

Other than that, the new build is mostly filled with bug fixes in decompiler core, and a couple of niceties such as support for non-standard DPI settings in the UI, and support for Math.E and Math.Pi, which for example enables the decompiler to output 2.0*Math.PI/3.0 instead of 2.0943951023931966.

The list of all fixes in the build is available here, and as usual, you can get the new dotPeek build from the Early Access Program home page.

December 27, 2011

ReSharper 6.1: Improvements in IntelliSense Options

This post is about ReSharper 6.1. For other features in ReSharper 6 (both 6.0 and 6.1), please see previous posts introducing ReSharper 6:



ReSharper 6.1 introduces more fine-grained control over Intellisense.

image

As shown in the screenshot, in addition to the two older options (enhancing Visual Studio’s Intellisense with ReSharper or leaving as is) we can now select which technologies to apply Intellisense to. It is important to note that by de-selecting a technology, we do not switch off Visual Studio Intellisense for that technology, but only eliminate ReSharper’s enhancements of it.

Defining Autopopup behavior

The way Intellisense works inside Visual Studio, including ReSharper’s, is that matching elements appear as you type, allowing you to select the option by hitting Tab or Enter

This default behavior can be very productive, but it can also prove somewhat annoying, specially when we’re doing things like Test Driven Development or any kind of Create from usage scenario. For instance, we are trying to write a class or method that does not exist. We write it out and hit Enter, Intellisense completes it with the nearest match

In order to avoid these situations, we have added a new feature to ReSharper 6.1 which allows us to control not only where we want Intellisense to appear, but also how. That is, in addition to selecting the technology such as HTML, C# or XAML, we can now fine-tune Intellisense in each of these. Under ReSharper | Options | Intellisense | Autopopup we have the following screen

SNAGHTML82e9576[4]

Much like the Code Inspections, it is divided into different tabs based on the technology and an All tab that displays all entries. If we look through the list, we can see that under C#, we have several options, one of them being
SNAGHTML8326fdc

By default, all entries have the value “Display and preselect” which results in the behavior shown in the previous video. We can however change this with two other options

  • Do not display which will completely disable Intellisense
  • Display but do not preselect which will display matching values but will not preselect it.

This latter option is what we need in our case. We’d like to know of existing elements, but not necessarily have them completed when hitting Enter or Tab, etc. The video below displays this new behavior

Same as we have done with the After ‘new’, we can do with many others.We have tried to think of the most common scenarios where one would like to control this behavior. Please let us know if you feel something is missing. Hopefully however, this makes working with Intellisense productive and often less intrusive.

December 20, 2011

ReSharper 6.1, dotCover 1.2 and dotTrace 4.5.2 Performance Released

Christmas is only a few days away and we’ve decided to celebrate it a little earlier by releasing not one, but all three of our main .NET tools: ReSharper 6.1, dotCover 1.2 and dotTrace 4.5.2 Performance.

ReSharper 6.1

As covered in previous posts, this release of ReSharper is much more than a few bug fixes.

Settings

In ReSharper 6.0 we laid the foundations for what would be the new settings management engine. This was quite a substantial change, both from an architectural point of view as well as functional. Unfortunately due to that pesky little annoyance called time, we did not manage to finish it for the 6.0 release. We have now though and ReSharper 6.1 introduces a wealth of new possibilities for sharing settings across solutions, teams, machines and even company-wide policies. And we’re still not done with settings, so keep your feedback coming for further releases.

image

Performance improvements

For every single release of ReSharper, we invest a large amount of time in performance improvements. This often isn’t an easy task since new releases also include new functionality. In 6.0 we had some serious performance issues with certain types of web projects. This has now thankfully been resolved in 6.1 and we’ve made 6.1 faster in many areas. Numbers are impressive: we have fixed 140 performance problems for 6.1.

Async and Visual Studio 11 support

Async support in C# is still in CTP stage. Visual Studio 11 is in early developer preview. Trying to support technology that is not entirely finished proves not only challenging but also risky. Any major changes could deem most of the work we’ve performed as obsolete. However, we know that you, our users, play with the early bits and miss ReSharper.

image

That’s why in 6.1 we provide support for Async features in C# and VB.NET, as well as initial experimental support for Visual Studio 11. Support for Metro style applications is not yet included, and in order to install ReSharper into VS11 Developer Preview, you have to use a separate .vsix installer available at ReSharper downloads.

Optimizing assembly references

Many users rely on ReSharper in streamlining their project maintenance tasks, and this new feature is a nice addition to the existing project-level toolset. In any project in your solution, ReSharper 6.1 detects assembly references that are not effectively used, and helps remove some or all of them.

image

SDK

During 6.0 development we invested heavily in trying to provide a better API for extending ReSharper. 6.1 also sees the birth of this effort. Along with an improved API, we also now provide a testing framework, Visual Studio templates for creating plug-ins, samples, as well as online documentation. ReSharper 6.1 SDK is available for download as a .msi or .zip package.

image

More awesome features

Here are a few more great features also added:

  • Structural Search and Replace for HTML and ASP.NET. You can now use Custom Patterns to refactor both HTML and ASP.NET markup.
  • Call tracking for ASP.NET MVC. Same call tracking features, extended to ASP.NET MVC 3.
  • New code inspections. Access to disposed closures, covariant array conversions and more.

We have also fixed many outstanding issues. Look for more blog posts describing 6.1 features and improvements in future here on the JetBrains .NET tools blog.

dotCover 1.2 and dotTrace 4.5.2 Performance

These are mainly maintenance releases with a primary focus of supporting ReSharper 6.1. In addition, dotCover 1.2 works side-by-side with TypeMock 6.2.x, provides performance improvements in report generation, reduces HTML report size and memory consumption.

Note that we are already working on next major dotCover and dotTrace Performance releases. EAPs are expected soon, exposing a ton of new functionality and improvements, so stay tuned for that.

Download them all!

You can download ReSharper 6.1, dotCover 1.2 and dotTrace 4.5.2 Performance right now!

Last but not least, we’d like to wish everyone very Happy Holiday season. Stay safe and see you all in the New Year!

December 13, 2011

ReSharper 6.1: The Finish Line

A couple of days ago, we have started to release ReSharper 6.1 nightly builds in production mode, with build 30 being the first one of the new breed.

What sets production builds apart from regular development builds is that exceptions are suppressed, meaning no more wild life in the right corner of the status bar, and performance is slightly better due to lower count of checks, asserts and whatnot. Basically, production mode builds is what you get when we deliver betas, release candidates, and final release builds.

What it all means for you is that if you’re generally reluctant to trying nightly builds due to the annoyance of exception reporting and general mistrust, this might be the right moment for you to test-drive ReSharper 6.1 before we release it — even more so considering that we’re not planning any beta releases prior to 6.1 RTM.

Having said that, please grab a fresh nightly build and try it out. Here’s the list of issues that separate us from releasing 6.1. If you think there are any more show-stopper level issues, please be quick to ping us here in comments or by creating a bug report. Thank you!

April 28, 2011

Siemens Smart Grid Innovation Contest

1The Smart Grid Innovation Contest is an open international competition to find new, sustainable Smart Grid business models and technologies for the near future.

Siemens believes in the future of the Smart Grid for a more sustainable world – a vision of intelligent, flexibly controllable power generation, distribution, and consumption. The breakthrough of Smart Grid applications, though, strongly depends on attractive business models that combine technologies and economic benefits.
The Smart Grid Innovation Contest consists of two phases: during the first phase, ideas are generated and developed in a collaborative community. In the second phase, universities are invited to submit research proposals to further elaborate and develop ideas.

Idea contest (for everyone) from April 13 to May 31 2011
 
Call for proposals (for universities) from October 4 to November 30, 2011. Siemens will award €15,000 and a workshop trip to Berlin together with Siemens Smart Grid experts to the five best ideas and the most valuable contributions. In a joint effort with several universities, more than €1,000,000 will be invested to translate the participants’ ideas into innovation. The contest addresses your creativity and your local expertise in making energy systems smarter and more environmentally friendly.

Watch an idea grow, through suggestions, comments and ranking, into mature and realistic innovation!

Full competition details and rules at:
http://www.siemens.com/smartgridcontest

September 22, 2010

Build a Quadrocopter using .NET Micro Framework and win a VS2010 + MSDN Subscription

For those of you are interested or working on a Quadrocopter controlled by the .NET Micro Framework, there is a contest where the winner of a flying Quadrocopter will get a free VS2010 license including 1 year MSDN subscription.

Check my blog at http://netmicroframework.blogspot.com/

September 28, 2008

IndiaStockQuotes Version 1.2.1

It has been a long time since I actually worked on the IndiaStockQuotes component. Just had sometime over the weekend and fixed some bugs in the component and got out a new release. Also upgraded the component from .NET 2.0 to 3.5. I dont yet use any 3.5 specific features, so you should be able to recompile the source agains 2.0 and still get it to run.

Check it out at India Stock Quotes

September 26, 2008

Moving a project from VS 2005 to VS 2008

When you open a VS 2005 project in VS 2008, Visual Studio offers to migrate the project to the new format. Usually there should be no problem with this and all your project files, solution files, Test cases etc should move seamlessly to the 2008 format.
Targettedframeworksetting
But if you do build your project you will notice that your output assemblies actually target .NET Framework 2.0 and not 3.5. This is basically because the migration retains the targeted framework to make sure you application does not fail. The method to change this setting after migration is not easy to find.

For VB projects, this setting is actually hidden inside, My Project -> Compile -> Advanced Compiler Options dialog. Obviously, this is not very easy to find. (See Image)

In C# projects this setting is a lot easier to find in Project Properties -> Application Tab itself. I am not sure why the VB team actually made this setting so difficult to find.