Brian Scott's Cropper is a great tool for capturing and cropping screenshots. If you're writing documentation, courses, ... and you need to grab parts of your screen, this tool is a real timesaver! Give it a try!
Alain Leroy and Rudi Larno are waiting on your feedback for defining the content to be covered on "Dev & ITPro days" in Belgium. So let them know what you want to learn!
My quick takes:
C# and VB.NET Language Enhancements
What's new in System.Data and System.Xml
ASP.NET 1.0 vs ASP.NET 2.0
Windows Forms applications - ClickOnce
Web Service Enhancements (WSE) Version 2.0
Team System:
- Introducing unit testing
- Static code analysis
- Load Test your application
- Design and Validate .NET Connected Systems
- Testing and profiling
- Version Control and Team Development with Visual Studio .NET
SQL Server 2005:
- A drill-down for the DBA
- What's in for the developer
- Business Intelligence Highlights
The shift towards services
Using Microsoft Application Blocks
Enterprise solution patterns with .NET
Implementing Authentication and Authorization in the .NET Framework
Developing with the .NET Compact Framework
MSBuild: Automating the build process
Architecting collaboration solutions with Office 2003 and SharePoint Portal Server
BizTalk Server 2004
MOM 2005
Exchange Server 2003
Virual Server 2005
...
Lately I've been facing a lot of problems with the integration of Visual SourceSafe 6d and Visual Studio .NET 2003.
Most of the problems seem to be related to the use of ASP.NET applications (web projects) and its integration in VS.NET.
In my search to get some of these problems solved, I ran into an interesting article that could solve some problems: "ASP.NET Applications without Web Projects". In this article Fritz Onion describes how to get rid of the web projects and create standard class library projects instead.
So I started converting my web projects to class library projects, and after the necessary tweaking, I have now all class library projects with the web component wizards enabled where needed.
The major advantage of this is that the SourceSafe now treats the web projects as class library projects and doesn't complain anymore about "web project not found", "Cannot Open Web Project from Source Control", ...
If you're facing the same error - and not afraid of tweaking a .csproj file - this solution is worth trying out!
However I didn't face any issues yet, I'm still looking for possible side-effects or unwanted behaviour.
Below some other useful links the VSS & VS.NET developer:
Cannot copy assembly 'Referenced Assembly' to file 'Current Project Output Folder\bin\Debug\Release\Referenced Assembly.dll'. The process cannot access the file because it is being used by another process.
If you've ever encountered this problem, know that it's a SourceSafe related problem. A hotfix is recently made available here by Microsoft Product Support Services .
Related to the above: BUG: "Could Not Copy Temporary Files to the Output Directory" Error Message When You Build a Solution That Contains Multiple Projects
I assume this is a good reason to use project references instead of assembly references.
Other possible solutions:
- Compile the outputs for individual projects to different folders. Visual Studio .NET 2002 and Visual Studio .NET 2003 do not support a common output folder.
- Set the Copy Local property for the referenced assembly or project to True.
- Verify that you do not have the Object Browser window open.
- Verify that you do not have the same project (or projects) open in another instance of Visual Studio .NET.
More information published here
Microsoft released a free performance diagnostic tool for Windows Server 2003: Server Performance Advisor V1.0.
Particularly useful when solving performance problems for IIS 6.0.
Yesterday on the TDD-workshop, organized by BENUG, Jonathan de Halleux did a great job by presenting his ideas on database-driven unit testing. During the session a lot of interesting code and examples were shown, nevertheless most of the attendees were overwhelmed by the content and its complexity.
For those of you interested in getting your hands on the examples: get this download and execute the walkthroughs yourself. Some technical info to get started can be found on David's Blog.
After the workshop a lot of the attendees were trying to get a grip on production grammars, the data-populator framework and model-based testing ... and how to apply all this within their IT-department.
I think Jonathan gave us a good starting point with some excellent tips, however some questions stays (currently) unanswered:
- what about testing large databases where backup and restore is not an option?
- how to set your database in a consistent state without impacting performance?
- what about visual inspection?
- ...
All feedback welcome!
Next Thursday – September 9th – the Belgian .NET User Group (BENUG) is organizing a workshop about application testing using Test-Driven Development and Model-Based Testing principles. This hands-on workshop will be led by Jonathan de Halleux (wiki).
The goal of this workshop is to give the attendees some in-depth information on how unit testing, with or without a database, can be performed.
With this post I would like to provide some additional information and links to the tools and frameworks that will be used during the workshop. An overview.
After introducing unit testing and its principles Jonathan will show some of the most common testing frameworks and tools today available.
-
NUnit: NUnit is a unit-testing framework for all .NET languages. Initially ported from JUnit and currently in version 2.2.
-
MbUnit: MbUnit is a Unit Test Framework for .Net. It provides new fixtures as well as the framework to create new ones. MbUnit is based on QuickGraph, a directed graph library for C#. Currently in version 2.2.
-
csUnit: csUnit is a unit testing tool for the Microsoft .NET Framework, supporting all.NET languages. Currently in version 1.9.4.
-
NUnitForms: NUnitForms is an NUnit extension for unit and acceptance testing of Windows Forms applications. Currently in version 1.3.
-
NUnitASP: NUnitAsp is a tool for automatically testing ASP.NET web pages. It's an extension to NUnit. Currently in version 1.5.
-
NUnitAddIn: NUnitAddIn is an add-in – developed by Jamie Cansdale - that enables point and test for Visual Studio.NET. Currently in version 0.9.
-
TestFu: TestFu is a framework that can help the tester to build a data generator, state machines, grammars, etc... Currently in version 0.2.
-
[Updated] Codesmith: Codesmith is a template-based code generator that can generate code for any ASCII-based language.
In the second part of the workshop Jonathan will cover database unit testing and how to use the frameworks and tools listed above in practice.
TestFu will be used to create “smart-data” for your test application. The purpose of this Database populator framework is to provide you with a smart and flexible set of random data generators to populate your database. This way you van provide the “food” for your unit tests. Furthermore TestFu can also be used as a production grammar.
"A production grammar is a collection of non-terminal rules to terminal rules that resembles a regular parsing grammar, but is used “in reverse”.” (Source)
Production grammars can do anything, ranging form generating data, piloting your application and generating test cases, ... During the workshop we’ll have a look at using production grammars for:
-
manipulate the Implementation Under Test (IUT),
-
generate test case that manipulate the IUT.
-
if you want to test IUT against input data,
-
generate a wide range of possible inputs.
[Updated]: Check out Jonathan's entry for more info on the use of Codesmith and the Database Populator Framework.
In the third part of the workshop Jonathan will briefly touch on model based testing. Model based testing is about using a model to describe the behaviour of a system. This is a proven technique that offers major advantages to test development teams. Models can be utilized in many ways throughout the product life-cycle, including:
This paper is a good read on model-based testing.
The Foundations of Software Engineering (FSE) group at Microsoft Research (MSR) have published Abstract State Machine Language(ASML), a tool that can be used for Model Based Testing.
"AsmL is the Abstract State Machine Language. It is an executable specification language based on the theory of Abstract State Machines. The current version, AsmL 2 (AsmL for Microsoft .NET), is embedded into Microsoft Word and Microsoft Visual Studio.NET. It uses XML and Word for literate specifications. It is fully interoperable with other .NET languages. AsmL generates .NET assemblies which can either be executed from the command line, linked with other .NET assemblies, or packaged as COM components." (Source)
During the workshop the attendees will be challenged to solve real-life problems in software testing. So don’t hesitate to bring your own software project and get it tested with the tools mentioned earlier! As a lot these tools are still “under development”, your feedback is greatly appreciated!
Workshop requirements:
Since this is a hands-on session, attendees are expected to bring their own portable, with the tools that will be used during the workshop pre-installed on it:
The workshop will start at 14h at the Compuware offices in Zaventem, Belgium. A road description can be found here.
See you all there!
Visual Studio 2005 Beta 1 Refresh (Community Technology Preview bits) - which includes parts of Team System - is available for download on MSDN Subscriber Downloads.
Brad mentions on the SourceSafe Team's Blog that SourceSafe 2005 Beta 1 is part of the main install of this latest release. I'm curious to see which other parts made it into this release!