BM Bloggers

The blog of the Black Marble development team

September 2006 - Posts

Visual Basic.NET 2005 Power Packs ( subverted to c# )

Microsoft have just launched two Power Packs for VB.NET to help provide more functionality out of the box for VB.

 

PrintForm Component 1.0

With  the new PrintForm component you can  layout the Windows Form exactly as you want it and  to print the form as a quick report

 

http://www.microsoft.com/downloads/details.aspx?Fa...

 

Printing can be done to printer , preview or file. To use the PrintForm component in c# just follow the instructions for VB. it seems to be a bit slow in the trial I did earlier but I will do some more tests.

 

Interop Forms Toolkit 1.0

Allows .NET forms to be embedded in VB applications , this is quite incredible it is now possible to continue to work on and maintain applications in VB while adding new code in .NET.

if you are still maintaining VB code and are hankering for some .NET time check this Power Pack out.

 

http://www.microsoft.com/downloads/details.aspx?Fa...

 

b.

Posted 23 September 2006 22:53 by Robert

New Season of Black Marble Events at a new Venue

I've just published our new schedule of events for Autumn/Winter 2006/2007.

Coming next year - events on BizTalk, SharePoint 2007, Longhorn Server and Exchange Server.

All our events our free, and refreshments/lunch is provided.

Feel free to bring a colleague!

We have also moved to a new venue - make sure you check the map and directions in your confirmation email.

Linda

Posted 21 September 2006 17:03 by Linda

Technical Update (for Developers) - New Event

This event will provide a technical update covering Microsoft's latest shipping products, as well as what's forthcoming and the development environments that will be available to customise them.

Our aim is to provide a review of up and coming products, as well as highlighting any from the past year you may have missed, in order to help you make informed decisions for now and the future by raising awareness of the direction and scope of Microsoft's product plan by discussing these, and many more.

  • .NET 3.0, including WPF, WCF and WF
  • Microsoft Design Tools Expression, including Web Designer, Interactive Designer and Graphic Designer
  • CE
  • .NET 3.5 LINQ to the Future
  • Visual Studio Orcas Components

Date: 31 January 2007, Time: 2pm - 5pm, Location: The Courtyard.

Visit www.blackmarble.co.uk or email events@blackmarble.co.uk for more information or to book.

Posted 21 September 2006 17:00 by Linda

Technical Update 2007 (for Managers) - New Events

A welcome return for our Technical Update in January 2007. 

This event will provide a technical update covering Microsoft's latest shipping products, as well as what's forthcoming and the development environments that will be available to customise them.

Our aim is to provide a review of up and coming products, as well as highlighting any from the past year you may have missed, in order to help you make informed decisions for now and the future by raising awareness of the direction and scope of Microsoft's product plan by discussing these, and many more.

  • Windows 2003 Server R2
  • Windows Vista
  • Windows Longhorn Server
  • Microsoft Unified Communications including Office Communication Server 2007 and Office Communicator 2007
  • SQL Server 2005
  • Visual Studio 2005 (and various other editions)
  • Microsoft CRM 3.0
  • Microsoft Business Score Card Manager
  • BizTalk 2006 R2
  • Internet Explorer 7
  • Exchange 2007
  • Office Server 2007
  • Office Client 2007

Date: 31 January 2007, Time: 9am - 12pm, Location: The Courtyard

Visit www.blackmarble.co.uk or email events@blackmarble.co.uk for more information or to book.

Posted 21 September 2006 16:58 by Linda

Managing Development with Microsoft Team Server and Visual Studio 2005 - New Event

Microsoft has launched Visual Studio 2005, a major new release of its developer tools environment, and the foundation of Microsoft platform development for the next few years. This marked the arrival of the lifecycle tools, Visual Studio Team System and the Team Foundation Server, to support end-to-end system development scenarios. These are the tools Microsoft has been using for years internally but are being made available to address customers need to more rapidly develop and deliver solutions that meet the business performance, scalability and end user requirements.

Visual Studio Team System adds significant new capabilities and value to the suite of Microsoft developer tools, with advanced end-to-end role collaboration, real-time reporting and analysis, and a host of new tools covering architecture, development, and testing.

Many of you may have already transition to one of the individual role based offerings in Visual Studio Team System, but are still learning all the new tools and benefits of the offering. This session is intended to provide an introduction to Visual Studio Team System, highlight the new functionality and demonstrate Visual Studio Team System in action.

Date: 7 December, Time: 2pm - 5pm, Location: The Courtyard.

Visit www.blackmarble.co.uk or email events@blackmarble.co.uk for more information or to book.

Posted 21 September 2006 16:55 by Linda

The Manager’s Essential Guide to IT Security and Best Practice - New Event

An essential guide for general and IT managers on IT security issues that affect the whole IT industry. We will cover:

  • Security
  • Current Security Technologies
  • Security Awareness and User Education
  • Social Engineering
  • Security Best Practices
  • Software Security
  • ISA Server 2006

Date: 7 December, Time: 9am - 12pm, Location: The Courtyard.

Visit www.blackmarble.co.uk or email events@blackmarble.co.uk for more information or to book.

Posted 21 September 2006 16:54 by Linda

Make the Most of your IT Systems using Business Intelligence - New Event

Business Intelligence (BI) is not a product but a term that covers a wide range of products that allow a manager to make better business decisions.

BI has changed over the years both in reach and formality - today a good BI system can present data on a wide variety of heterogeneous services in a robust and accessible manner. Hence, in most cases provision of BI is an IT infrastructure issue focused on getting key data to key people.

The new tools from Microsoft aim to provide an easy and robust means to spread the reach of BI to a wider community of users, whether based in web browsers or rich clients such as Excel.

Products covered include Excel 2007 (client), SQL/Analysis Services, Reporting Services and Excel Server.

Date: 1 November, Time: 9am - 5pm, Location: The Courtyard.

Visit www.blackmarble.co.uk or email events@blackmarble.co.uk for more information or to book.

Posted 21 September 2006 16:51 by Linda

Ed Gibson - On the Road

Black Marble are proud to host the Northern leg of the 'Ed Gibson "On The Road"' Events tour which will take place mid-Septermber to mid-October 2006 at 5 venues around the country. The aim of the events are to raise awareness of the issues surrounding computer security, specifically Organised Crime and Hacking and also to raise the awareness amongst the Business and Developer communities of Developer and IT Pro User Groups and how they can help instruct and inform developers and managers about new technologies and other issues such as security.

The headline speaker is Ed Gibson the new Chief Security Advisor for Microsoft UK. Ed is an ex-FBI agent and delivers a fascinating talk on his experiences and views on security in the IT world and how to combat organised crime on the Internet.

Other speakers from the likes of Oracle will offer alternative or differing views on computer security and the event will end with an hour long 'panel discussion' with question and answers.

This event will feature Ed Gibson, Dinis Cruz and Duncan Harris of Oracle and is being run by the Scottish Developers Group and The Next Generation User Group in association with Black Marble.

Event date: 12 October, time 4pm - 7:30pm, location: The Courtyard.

Visit www.blackmarble.co.uk or email events@blackmarble.co.uk

Posted 21 September 2006 16:34 by Linda

More thermal grease please nurse....

A while ago I posted about my Dell 5150 overheating. Well all the things I tried have helped a bit, but not really sorted the problem so in desperation I called Dell support (when all else fails etc. etc.)

They suggested putting the latest bios on (A38), cleaning the heatsink with compressed air and making sure it was seated right, nothing I had not read in newsgroups. However, this got me thinking, when the motherboard had been swapped under warrantee, had the engineer put more thermal grease on the CPU?

So I put the BIOS update on as I know this has a different thermal map (when the fans switch on to the one I had). The air blast did not seem to clean out much dirt, but I did squeeze a good dollop of grease between the CPU and heatsink and reassembled the system.

Well it has been running a day and I would say I am 10DegC cooler.

So the moral of the story, chat to someone new it might give you an idea

Posted 19 September 2006 15:27 by Richard | 3 comment(s)

Filed under:

Installing XP on my Virtual PC is sloooooooow

When installing Windows (any version) on a Virtual PC get the Virtual PC extensions installed as soon as possible.

I have been installing a basic XP SP2 from an ISO image on a VPC and it has been hogging my P4HT processor, virtually melting my Dell 5150. After the basic installation I did a Windows update and this was really crawling along, with high CPU usage and loads of pauses. So I stopped the update, installed the VPC extensions did a reboot and now it is flying along, just I would expect.

I cannot stress enough how important these extensions seem to be to the efficient running of VPCs - get them installed

Posted 07 September 2006 15:15 by Richard

Filed under:

Unhandled exceptions in .NET 2.0 background threads

First a bit of history, in .NET 1.1 any exceptions that were not handled in a background thread that generated them were just lost, you had to remember to handle them within the failing thread or never see them again.

This 'feature' has been addressed in .NET 2.0 and now any unhandled exception in a background thread will cause the standard JIT/Debugger dialog to appear just as any unhandled exception in the primary UI thread would.

So code that was quietly failing in .NET 1.1. now starts to generate hard to ignore dialogs in 2.0:

If you do handle the exception in the background thread (as would normally be good practice) obviously no exception is raised in the primary thread and all is good. However, what happens if you want exception to be handled by the primary UI thread? say if you want to popup a dialog or change a statusbar so the user knows what is going on; you cannot easily do this from the background thread as .NET 2.0 has far tighter thread safety than previous versions.

To address the general problem of unhandled exception, in the primary thread you can set Application and AppDomain handlers, this is normally done in the Main() method as below:

static class Program
{
[STAThread]
static void Main()
{
    // Set the unhandled exception mode to force all errors to go through our handler.
    Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
    // which we define here
    Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

    // Add the event handler for handling non-UI thread exceptions to the event.
    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
    HandleUnhandledException(e.Exception);
}

static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{

    HandleUnhandledException(e.ExceptionObject as Exception);
}

static void HandleUnhandledException(Exception ex)
{
    MessageBox.Show(ex.Message, "Exception Caught from Program.cs", MessageBoxButtons.OK, MessageBoxIcon.Error);

}
}

With this code in place any exception throw by a a UI or non-UI method in the primary thread will be caught and handled. It will also catch any unhandled exceptions from a background thread. However, as they are still unhandled in the background thread itself (even though you handled them in primary thread) you still get the JIT/Debugger dialog (as well as your own MessageBox), so you have not gained much as far as user experience goes.

If you really need to handle exceptions between thread the answer is to use a call back in the background thread to handled the exception locally, then throw it again into the primary thread so it can picked up by the AppDomain handler. The code to do this is as follows:


delegate void ExceptionCallback(Exception ex);

void PassbackExceptionToMainThread(Exception ex)
{
   throw ex;
}

void Background(Object parameter)
{
   try { throw new ApplicationException("An exceptions from the thread"); }
   catch (Exception ex){ this.BeginInvoke(new ExceptionCallback(PassbackExceptionToMainThread), ex); }
}

private void button1_Click(object sender, EventArgs e)
{
   ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(Background));
}

I have upload a small sample application showing this solution to this blogs file store

Posted 04 September 2006 22:13 by Richard

Filed under:

Great Channel9 video in GUI testing

I have just watched the very interesting Ifeanyi Echeruo: Testing WPF - UI Fuzzing with InvokeStress. This gives a great discussion of the role of the tester within the development team, and no they don't 'just press buttons to see what happens'. They are there to drive quality and it is very much a development role.

Also it shows how to use the accessibility API in WPF (but similar APIs are there in all Windows versions) to drive testing of the GUI. The tool InvokeStress discussed is also available for downloaded at http://wpf.netfx3.com/files/folders/developer/entry5155.aspx. Basically this tool discovers all the GUI controls and click, drags etc. them to see what happens. This is a great way to check all possible route through an application; but you can also use it to build specific scenario tests.

I really recommend this video to anyone interested in testing quality

Posted 02 September 2006 19:31 by Richard

Filed under: