The more I read, the more I acquire, the more certain I am that I know nothing. -Voltaire
Email Exception Error
Email Error
Application_Error
String message = "Url " + Request.Path + " Error: " + Server.GetLastError().ToString();
MailMessage m = new MailMessage();
m.From ="me@mycompany.com";
m.To = "you@yourcompany.com";
m.Subject = "if you knew how to code, you wouldn't see this email";
m.Body = message;
SmtpMail.SmtpServer="127.0.0.1";
SmtpMail.Send( m );
Application_Error
String message = "Url " + Request.Path + " Error: " + Server.GetLastError().ToString();
MailMessage m = new MailMessage();
m.From ="me@mycompany.com";
m.To = "you@yourcompany.com";
m.Subject = "if you knew how to code, you wouldn't see this email";
m.Body = message;
SmtpMail.SmtpServer="127.0.0.1";
SmtpMail.Send( m );
Automation World Article: Improve competitive quality with extreme programming (Features)
Automation World Article: Improve competitive quality with extreme programming (Features): "The eXtreme Programming methodology advocates a 12-step program to minimize software bugs.The organization’s Web site, www.extremeprogramming.org, discusses these in detail.
1. Develop user stories. These create time estimates for the release planning meeting and are used instead of a large requirements document. They are written by the customers as things that the system needs to do for them.
2. Hold a release planning meeting. A release plan, which lays out the overall project, is created at this meeting. The release plan is then used to create iteration plans for each software version.
3. Create the release plan. This specifies exactly which user stories are going to be implemented for each system release and specifies dates for those releases.
4. Release small pieces of the system to the customers often. This is critical to getting valuable feedback in time to have an impact on the system’s development.
5. Use iterative development. Have a planning meeting at the beginning of each iteration to plan what will be done.
6. Move people around to avoid serious knowledge loss and coding bottlenecks. If only one person on the team can work in a given area and that person leaves, or more things need to be done in that section, the project’s progress can be reduced to a crawl.
7. Code unit test first. Creating a unit test helps a developer to really consider what needs to be done. Requirements are nailed down firmly by tests.
8. Pair up programmers. All code to be included in a production release is created by two people working together at a single computer. Pair programming increases software quality without impacting time to deliver. It is counterintuitive, but two people working at a single computer will add as much functionality as two working separately, except that it will be much higher in quality.
9. Hold a daily stand-up meeting. Communica"
1. Develop user stories. These create time estimates for the release planning meeting and are used instead of a large requirements document. They are written by the customers as things that the system needs to do for them.
2. Hold a release planning meeting. A release plan, which lays out the overall project, is created at this meeting. The release plan is then used to create iteration plans for each software version.
3. Create the release plan. This specifies exactly which user stories are going to be implemented for each system release and specifies dates for those releases.
4. Release small pieces of the system to the customers often. This is critical to getting valuable feedback in time to have an impact on the system’s development.
5. Use iterative development. Have a planning meeting at the beginning of each iteration to plan what will be done.
6. Move people around to avoid serious knowledge loss and coding bottlenecks. If only one person on the team can work in a given area and that person leaves, or more things need to be done in that section, the project’s progress can be reduced to a crawl.
7. Code unit test first. Creating a unit test helps a developer to really consider what needs to be done. Requirements are nailed down firmly by tests.
8. Pair up programmers. All code to be included in a production release is created by two people working together at a single computer. Pair programming increases software quality without impacting time to deliver. It is counterintuitive, but two people working at a single computer will add as much functionality as two working separately, except that it will be much higher in quality.
9. Hold a daily stand-up meeting. Communica"
Online Database Functions Testing Tool
15 Seconds : Online Database Functions Testing Tool: "Online Database Functions Testing Tool"
Windows Shell Extension for Subversion
tortoisesvn.tigris.org: "Windows Shell Extension for Subversion"
Creating an Outlook Task Add-in Solution with Visual Studio 2005 Tools for Office
Summary: Using new Microsoft Office Outlook 2003 add-in support in Microsoft Visual Studio 2005 Tools for the Microsoft Office System, create Microsoft Office Word 2003 task reports using WordProcessingML and XML expansion packs, and create a context menu for tasks in Outlook. (24 printed pages)
Note This article is pre-release documentation and is subject to change in future releases. Visual Studio 2005 Tools for Office Beta 2 is included with Microsoft Visual Studio 2005 Beta 2.The beta release of Outlook add-in support for Visual Studio 2005 Tools for Office Beta 2 is available separately, by downloading Microsoft Visual Studio 2005 Tools for the Microsoft Office System – Outlook (Beta).
Note This article is pre-release documentation and is subject to change in future releases. Visual Studio 2005 Tools for Office Beta 2 is included with Microsoft Visual Studio 2005 Beta 2.The beta release of Outlook add-in support for Visual Studio 2005 Tools for Office Beta 2 is available separately, by downloading Microsoft Visual Studio 2005 Tools for the Microsoft Office System – Outlook (Beta).
TargetProcess - Agile Project Management & Bug Tracking Software | Home
TargetProcess:Suite 1.3.5 is a web-based integrated agile project management and bug tracking software. It is designed to solve distributed teams problems and support agile development processes like Extreme Programming. Integrated Bug Tracking makes project management more effective, improves overall project traceability and provides consistent snapshot of project state. In general, TargetProcess will help you keep project on track in an agile way.
Web Services Transactions specifications
Web Services Transactions specifications: "Web Services Transactions specifications"
Understanding Service-Oriented Architecture
Introduction
It seems probable that eventually most software capabilities will be delivered and consumed as services. Of course they may be implemented as tightly coupled systems, but the point of usage—to the portal, to the device, to another endpoint, and so on, will use a service-based interface. We have seen the comment that architects and designers need to be cautious to avoid everything becoming a service. We think this is incorrect and muddled thinking. It might be valid right now given the maturity of Web Service protocols and technology to question whether everything is implemented using Web services, but that doesn't detract from the need to design everything from a service perspective. The service is the major construct for publishing and should be used at the point of each significant interface. service-oriented architecture allows us to manage the usage (delivery, acquisition, consumption, and so on) in terms of, and in sets of, related services. This will have big implications for how we manage the software life cycle—right from specification of requirements as services, design of services, acquisition and outsourcing as services, asset management of services, and so on.
Over time, the level of abstraction at which functionality is specified, published and or consumed has gradually become higher and higher. We have progressed from modules, to objects, to components, and now to services. However in many respects the naming of SOA is unfortunate. Whilst SOA is of course about architecture, it is impossible to constrain the discussion to architecture, because matters such as business design and the delivery process are also important considerations. A more useful nomenclature might be Service Orientation (or SO). There are actually a number of parallels with object orientation (or OO) and component-based development (CBD):
* Like objects and components, services represent natural building blocks that allow us to organize capabilities in ways that are familiar to us.
* Similarly to objects and components, a service is a fundamental building block that
1. Combines information and behaviour.
2. Hides the internal workings from outside intrusion.
3. Presents a relatively simple interface to the rest of the organism.
* Where objects use abstract data types and data abstraction, services can provide a similar level of adaptability through aspect or context orientation.
* Where objects and components can be organized in class or service hierarchies with inherited behaviour, services can be published and consumed singly or as hierarchies and or collaborations.
For many organizations, the logical starting place for investigating service-oriented architecture is the consideration of Web services. However Web services are not inherently service oriented. A Web service merely exposes a capability that conforms to Web services protocols. In this article we will identify the characteristics of a well formed service, and provide guidance for architects and designers on how to deliver service oriented applications.
It seems probable that eventually most software capabilities will be delivered and consumed as services. Of course they may be implemented as tightly coupled systems, but the point of usage—to the portal, to the device, to another endpoint, and so on, will use a service-based interface. We have seen the comment that architects and designers need to be cautious to avoid everything becoming a service. We think this is incorrect and muddled thinking. It might be valid right now given the maturity of Web Service protocols and technology to question whether everything is implemented using Web services, but that doesn't detract from the need to design everything from a service perspective. The service is the major construct for publishing and should be used at the point of each significant interface. service-oriented architecture allows us to manage the usage (delivery, acquisition, consumption, and so on) in terms of, and in sets of, related services. This will have big implications for how we manage the software life cycle—right from specification of requirements as services, design of services, acquisition and outsourcing as services, asset management of services, and so on.
Over time, the level of abstraction at which functionality is specified, published and or consumed has gradually become higher and higher. We have progressed from modules, to objects, to components, and now to services. However in many respects the naming of SOA is unfortunate. Whilst SOA is of course about architecture, it is impossible to constrain the discussion to architecture, because matters such as business design and the delivery process are also important considerations. A more useful nomenclature might be Service Orientation (or SO). There are actually a number of parallels with object orientation (or OO) and component-based development (CBD):
* Like objects and components, services represent natural building blocks that allow us to organize capabilities in ways that are familiar to us.
* Similarly to objects and components, a service is a fundamental building block that
1. Combines information and behaviour.
2. Hides the internal workings from outside intrusion.
3. Presents a relatively simple interface to the rest of the organism.
* Where objects use abstract data types and data abstraction, services can provide a similar level of adaptability through aspect or context orientation.
* Where objects and components can be organized in class or service hierarchies with inherited behaviour, services can be published and consumed singly or as hierarchies and or collaborations.
For many organizations, the logical starting place for investigating service-oriented architecture is the consideration of Web services. However Web services are not inherently service oriented. A Web service merely exposes a capability that conforms to Web services protocols. In this article we will identify the characteristics of a well formed service, and provide guidance for architects and designers on how to deliver service oriented applications.
Automation Samples for Visual Studio .NET 2002
http://msdn.microsoft.com/vstudio/downloads/samples/automation2002/
HotScripts.com 4ASPNET POP3 .NET Component
Description: A powerful, cheap and easy to use POP3 .NET component, which allows you to download/parse emails from POP3 server, save attachments, retrieve custom headers etc. Great help with examples (C#), free updates and support.
Dynamically invoke XML Web Services - significantly improved
GotDotNet User Sample: Dynamically invoke XML Web Services - significantly improved: "It is pure reflection prgramming in .NET.
E.g.
DynamicWebServiceProxy ws = new DynamicWebServiceProxy();
string ns = 'eYesoft.Tools.Web.Services.DynamicProxy.';
ws.WSDL = 'http://localhost/CTWS/Service1.asmx?WSDL';
ws.TypeName = 'Service1';
ws.MethodName = 'GetOrder';
// get all types of the dynamic assembly
Type[] types = ws.ProxyAssembly.GetTypes();
// get a certain type by name - watch out for fully qualified name
Type t = ws.ProxyAssembly.GetType(ns + 'Order');
...
Then create an instance of the type by using reflection.
object result = Activator.CreateInstance(t);
result = ws.InvokeCall();
Christian "
E.g.
DynamicWebServiceProxy ws = new DynamicWebServiceProxy();
string ns = 'eYesoft.Tools.Web.Services.DynamicProxy.';
ws.WSDL = 'http://localhost/CTWS/Service1.asmx?WSDL';
ws.TypeName = 'Service1';
ws.MethodName = 'GetOrder';
// get all types of the dynamic assembly
Type[] types = ws.ProxyAssembly.GetTypes();
// get a certain type by name - watch out for fully qualified name
Type t = ws.ProxyAssembly.GetType(ns + 'Order');
...
Then create an instance of the type by using reflection.
object result = Activator.CreateInstance(t);
result = ws.InvokeCall();
Christian "
Changing Target Web Service At Runtime
Introduction
While developing clients for web services, we typically add a web reference to the web service by specifying URL of the .asmx file. Adding a web service in VS.NET generates required proxy object. However, it may happen that after adding the web reference the web service is moved to some other location. In such cases the most easy way is to recreate the proxy object. But what if the same thing happens after you deploy your web service client. It would be nice to allow configurable URL so that even if original web service is moved your clients need not be recompiled. In this article we will see how to do just that.
While developing clients for web services, we typically add a web reference to the web service by specifying URL of the .asmx file. Adding a web service in VS.NET generates required proxy object. However, it may happen that after adding the web reference the web service is moved to some other location. In such cases the most easy way is to recreate the proxy object. But what if the same thing happens after you deploy your web service client. It would be nice to allow configurable URL so that even if original web service is moved your clients need not be recompiled. In this article we will see how to do just that.
Code Project - POP3 Client as a C# Class - C# Programming
http://www.codeproject.com/csharp/pop3client.aspThe
Orthogonal Arrays
Orthogonal Arrays: "Orthogonal arrays are beautiful and useful. They are essential in statistics and they are used in computer science and cryptography. In statistics they are primarily used in designing experiments, which simply means that they are immensely important in all areas of human investigation: for example in medicine, agriculture and manufacturing.
Your automobile lasts longer today because of orthogonal arrays ['The new mantra: MVT', Forbes, Mar. 11, 1996, pp. 114-118.]
The mathematical theory is extremely beautiful: orthogonal arrays are related to combinatorics, finite fields, geometry and error-correcting codes. The definition of an orthogonal array is simple and natural, and we know many elegant constructions - yet there are at least as many unsolved problems.
Here is an example of an orthogonal array of strength 2:
0 0 0 0 0 0 0 0 0 0 0
1 1 1 0 1 1 0 1 0 0 0
0 1 1 1 0 1 1 0 1 0 0
0 0 1 1 1 0 1 1 0 1 0
0 0 0 1 1 1 0 1 1 0 1
1 0 0 0 1 1 1 0 1 1 0
0 1 0 0 0 1 1 1 0 1 1
1 0 1 0 0 0 1 1 1 0 1
1 1 0 1 0 0 0 1 1 1 0
0 1 1 0 1 0 0 0 1 1 1
1 0 1 1 0 1 0 0 0 1 1
1 1 0 1 1 0 1 0 0 0 1
Pick any two columns, say the first and the last:
0 0
1 0
0 0
0 0
0 1
1 0
0 1
1 1
1 0
0 1
1 1
1 1
Each of the four possible rows we might see there,
0 0, 0 1, 1 0, 1 1,
does appear, and they all appear the same number of times (three times, in fact). That's the property that makes it an orthogonal array.
Only 0's and 1's appear in that array, but for use in statistics
0 or 1
in the first column might be replaced by
'butter' or 'margarine' ,
and in the second column by
'sugar' or 'no sugar' ,
and so on. Or
'slow cooling' or 'fast cooling',
'catalyst' or 'no catalyst',
etc., depending on the application.
Since only 0's and "
Your automobile lasts longer today because of orthogonal arrays ['The new mantra: MVT', Forbes, Mar. 11, 1996, pp. 114-118.]
The mathematical theory is extremely beautiful: orthogonal arrays are related to combinatorics, finite fields, geometry and error-correcting codes. The definition of an orthogonal array is simple and natural, and we know many elegant constructions - yet there are at least as many unsolved problems.
Here is an example of an orthogonal array of strength 2:
0 0 0 0 0 0 0 0 0 0 0
1 1 1 0 1 1 0 1 0 0 0
0 1 1 1 0 1 1 0 1 0 0
0 0 1 1 1 0 1 1 0 1 0
0 0 0 1 1 1 0 1 1 0 1
1 0 0 0 1 1 1 0 1 1 0
0 1 0 0 0 1 1 1 0 1 1
1 0 1 0 0 0 1 1 1 0 1
1 1 0 1 0 0 0 1 1 1 0
0 1 1 0 1 0 0 0 1 1 1
1 0 1 1 0 1 0 0 0 1 1
1 1 0 1 1 0 1 0 0 0 1
Pick any two columns, say the first and the last:
0 0
1 0
0 0
0 0
0 1
1 0
0 1
1 1
1 0
0 1
1 1
1 1
Each of the four possible rows we might see there,
0 0, 0 1, 1 0, 1 1,
does appear, and they all appear the same number of times (three times, in fact). That's the property that makes it an orthogonal array.
Only 0's and 1's appear in that array, but for use in statistics
0 or 1
in the first column might be replaced by
'butter' or 'margarine' ,
and in the second column by
'sugar' or 'no sugar' ,
and so on. Or
'slow cooling' or 'fast cooling',
'catalyst' or 'no catalyst',
etc., depending on the application.
Since only 0's and "
CodeGuru: An Automatic Build Number Incrementer for Visual Studio .NET
Each of us who migrate to VS.NET encounters a few bumps in the road. One bump that caught me off guard was that my macros no longer worked.
My existing build number incrementing macro was a combination of bits and pieces of code scavenged from countless authors over the years. Although my build numbering system is not complicated, and does not require features found in similar macros, it will provide a solid foundation to start from.
Goals
These are my requirements for automating build numbers:
On each release build, automatically increment a build number contained in a separate file that will be included into my project.
Automatically track build date and number in a log file.
My existing build number incrementing macro was a combination of bits and pieces of code scavenged from countless authors over the years. Although my build numbering system is not complicated, and does not require features found in similar macros, it will provide a solid foundation to start from.
Goals
These are my requirements for automating build numbers:
On each release build, automatically increment a build number contained in a separate file that will be included into my project.
Automatically track build date and number in a log file.
Embedded Windows Media/Launch.com in Firefox 1.0 - MozillaZine Forums
Full Step-By-Step Guide: Embedded Windows Media & Launch.com in Firefox 1.0
Last Updated: 24th December 2004
This guide has been superceded by newer versions. Go here to find them: http://forums.mozillazine.org/viewtopic.php?t=206216
Last Updated: 24th December 2004
This guide has been superceded by newer versions. Go here to find them: http://forums.mozillazine.org/viewtopic.php?t=206216
Microsoft.VisualStudio.TestTools.WebTesting Namespace
The Microsoft.VisualStudio.TestTools.WebTesting namespace supplies classes that enable Web testing. This namespace includes the WebTest class which is the base class for all Web tests. The WebTestRequest and WebTestResponse classes simulate the HTTP requests and responses of the Web pages under test. These classes use the FormPostHttpBody class to simulate the use of form post parameters. Microsoft.VisualStudio.TestTools.WebTesting also includes classes for data binding, test rules, representing Web pages, query strings, HTTP context, and plug-ins that provide a test extensibility function.
PHP Help: LAMP, MySQL/PHP Database Driven Websites - Part I
http://www.phpfreaks.com/tutorials/89/0.php
Virtual Server 2005: Program Customized Testing Environments Without Trashing Your Machine -- MSDN Magazine, August 2004
http://msdn.microsoft.com/msdnmag/issues/04/08/VirtualServer2005/default.aspx
Visual Studio: Visual Studio Extensibility Center
Welcome
Here you will find information on the various ways to customize, extend, and integrate with the Visual Studio environment, including macros, add-ins and the Visual Studio Industry Partner (VSIP) Program SDK. Whether you are building large scale commercial tools or just personalizing your Visual Studio experience, the Visual Studio Extensibility Center is Microsoft’s primary source for information and guidance.
Here you will find information on the various ways to customize, extend, and integrate with the Visual Studio environment, including macros, add-ins and the Visual Studio Industry Partner (VSIP) Program SDK. Whether you are building large scale commercial tools or just personalizing your Visual Studio experience, the Visual Studio Extensibility Center is Microsoft’s primary source for information and guidance.
Testing Web Applications Articles
Testing Web Applications
This page provides access to a variety of downloadable papers that address testing Web applications. The following topics are considered:
This page provides access to a variety of downloadable papers that address testing Web applications. The following topics are considered:
grack.com: Bugzilla.NET
Bugzilla.NET
Bugzilla.NET is my Visual Studio.NET <-> Bugzilla integration project. So far it has the ability to query Bugzilla from within Visual Studio and synchronize a set of tasks with a given set of server-side queries.
Bugzilla.NET is my Visual Studio.NET <-> Bugzilla integration project. So far it has the ability to query Bugzilla from within Visual Studio and synchronize a set of tasks with a given set of server-side queries.
FileForum | Windows XP PowerPacker
http://fileforum.betanews.com/detail/Windows_XP_PowerPacker/1120750090/1
Windows XP PowerPacker 1.0 RC6.1 beta
Publisher's Description:
PowerPacker will help a user create a Multiboot Windows XP disk with or without DriverPacks. It will do almost everything for you, even hex edit the files needed to be hexed, create the boot directory, boot menu, etc. It makes creating multiboot XP disks a breeze.
Latest Changes:
* New File Menu that you can find at the top left of the main window
* Got rid of the ugly picture that was on the right side that made you have to tilt your head and squint your eyes to read it
* Added an UnDocumented option that you can add to your ini file
Windows XP PowerPacker 1.0 RC6.1 beta
Publisher's Description:
PowerPacker will help a user create a Multiboot Windows XP disk with or without DriverPacks. It will do almost everything for you, even hex edit the files needed to be hexed, create the boot directory, boot menu, etc. It makes creating multiboot XP disks a breeze.
Latest Changes:
* New File Menu that you can find at the top left of the main window
* Got rid of the ugly picture that was on the right side that made you have to tilt your head and squint your eyes to read it
* Added an UnDocumented option that you can add to your ini file
Latest Windows Drivers for 878-based WinTV boards
http://www.hauppauge.com/pages/support/support_pci_878.html#drv
Microsoft Windows Installer Cleanup utility
Very helpful indeed.
http://download.microsoft.com/download/E/9/D/E9D80355-7AB4-45B8-80E8-983A48D5E1BD/msicuu2.exe
http://download.microsoft.com/download/E/9/D/E9D80355-7AB4-45B8-80E8-983A48D5E1BD/msicuu2.exe
Privoxy - Home Page
Privoxy - Home Page
Privoxy is a web proxy with advanced filtering capabilities for protecting privacy, modifying web page content, managing cookies, controlling access, and removing ads, banners, pop-ups and other obnoxious Internet junk. Privoxy has a very flexible configuration and can be customized to suit individual needs and tastes. Privoxy has application for both stand-alone systems and multi-user networks.
Privoxy is based on Internet Junkbuster (tm).
The most recent release is 3.0.3 (stable).
Privoxy is a web proxy with advanced filtering capabilities for protecting privacy, modifying web page content, managing cookies, controlling access, and removing ads, banners, pop-ups and other obnoxious Internet junk. Privoxy has a very flexible configuration and can be customized to suit individual needs and tastes. Privoxy has application for both stand-alone systems and multi-user networks.
Privoxy is based on Internet Junkbuster (tm).
The most recent release is 3.0.3 (stable).
Building a SOAP Client
* Proxy Classes and Web References
o Creating a Web Reference
o Renaming the Web Reference
o Viewing the Web Reference Files and Properties
o Using a Proxy Class
* XML Web Service Clients
o Creating the Windows Forms Client
o Creating the Web Forms Client
o Creating the Console Client
o Chapter 4 Quick Reference
o Creating a Web Reference
o Renaming the Web Reference
o Viewing the Web Reference Files and Properties
o Using a Proxy Class
* XML Web Service Clients
o Creating the Windows Forms Client
o Creating the Web Forms Client
o Creating the Console Client
o Chapter 4 Quick Reference
Load Testing Terminology
TTN On-Line Edition for September 2002: "Load Testing Terminology by Scott Stirling (scott.stirling@workscape.com) Introduction What is the difference between load, stress and performance testing? Why do these three types of testing seem to belong together, perhaps with others such as scalability testing and benchmarking? Questions such as these, which I have encountered in my own career as sometimes load tester, on Web forums and in discussions in the workplace, are what this article purposes to answer. It would be nice to point to some seminal piece of QA literature that settles these questions definitively, but surprisingly, this is not possible. The use of these terms in the QA literature varies to the point that sometimes load testing is defined as a type of performance test, or performance test is a type of load test, or (somewhat common, actually) load testing is not worth mentioning explicitly. To what degree definitions proposed in the literature have been arrived at independently versus influenced by or directly based on previous published definitions is impossible to tell. The signature characteristic of background, performance and stress testing is that they all require some kind of definite workload (the terms 'workload' and 'load' are interchangeable in this context) exercising the system or component under test (SUT or CUT) during testing. Load is an indispensable part of the test set up for all these types of testing. There are notable exceptions where simulated load is crucial to other types of testing, such as aspects of security testing, where it may be required to simulate load- related conditions giving rise to security problems (such as a buffer overrun or denial-of-service). Reliability testing sometimes requires load as a prerequisite to measuring realistic, time-dependent phenomena such as mean-time- between-failures (MTBF) in transaction or batch processing systems. But reliability is a concern for other criteria, such as functional accuracy "
Stress Testing Web Application using Microsoft's Web Application Stress Tool
Load Balancing and your Web applications
Running an application on more than one machine introduces potential challenges into the design and layout of the application. If you're Web app is not 100% stateless you will run into potential problems with resources required on specific machines. You'll want to think about this as you design your Web applications rather than retrofitting at the last minute.
For example, if you're using a Visual FoxPro backend and you're accessing local FoxPro data in any way, that data must be shared on a central network drive in order for all of the cluster servers to be able to access those files. This includes 'system' files of the applications itself – in Web Connection this would mean things like the log file and the session management table, which would have to be shared on a network drive somewhere. It can also involve things like registry and INI file settings that may be used for configuration of servers. When you build these types of configurations try and build them so that the configuration information can be loaded and maintained from a central store or can be replicated easily on all machines.
If you're using Active Server Pages, you'll have to know that ASP's useful Session and Application objects will not work across multiple machines. This means you either have to run the cluster with Single Affinity to keep clients coming back to the same machine, or you have to come up with a different session management scheme that stores session data in a more central data store such as a database. I personally believe in the latter because most e-Commerce applications already require databases to track users anyway for traffic and site statistics. Adding Session state to these files tends to be trivial without adding significant overhead.
Finally, load balancing can allow you to scale applications with multiple machines relatively easily. To add more load handling capabilities just add more machines. However, remember that when you build applications this way that your weakest link can bring down the entire load balancing scheme. If your SQL backend which all of your cluster nodes are accessing is maxed out, no amount of additional machines in the load balancing cluster will improve performance. The SQL backend is your weakest link and the only way to wring better performance out of it is to upgrade hardware or start splitting databases into separate servers. Other Load Balancing software like Resonate and Local Redirector also have to worry about bottlenecks in the IP manager machine that routes IP requests. NLBS is much better in this respect than many other Load Balancing solutions that require a central manager node since NLBS uses every machine in the cluster as a manager that communicates with the others and every machine is an equal helping in the pickup of IP requests.
Running an application on more than one machine introduces potential challenges into the design and layout of the application. If you're Web app is not 100% stateless you will run into potential problems with resources required on specific machines. You'll want to think about this as you design your Web applications rather than retrofitting at the last minute.
For example, if you're using a Visual FoxPro backend and you're accessing local FoxPro data in any way, that data must be shared on a central network drive in order for all of the cluster servers to be able to access those files. This includes 'system' files of the applications itself – in Web Connection this would mean things like the log file and the session management table, which would have to be shared on a network drive somewhere. It can also involve things like registry and INI file settings that may be used for configuration of servers. When you build these types of configurations try and build them so that the configuration information can be loaded and maintained from a central store or can be replicated easily on all machines.
If you're using Active Server Pages, you'll have to know that ASP's useful Session and Application objects will not work across multiple machines. This means you either have to run the cluster with Single Affinity to keep clients coming back to the same machine, or you have to come up with a different session management scheme that stores session data in a more central data store such as a database. I personally believe in the latter because most e-Commerce applications already require databases to track users anyway for traffic and site statistics. Adding Session state to these files tends to be trivial without adding significant overhead.
Finally, load balancing can allow you to scale applications with multiple machines relatively easily. To add more load handling capabilities just add more machines. However, remember that when you build applications this way that your weakest link can bring down the entire load balancing scheme. If your SQL backend which all of your cluster nodes are accessing is maxed out, no amount of additional machines in the load balancing cluster will improve performance. The SQL backend is your weakest link and the only way to wring better performance out of it is to upgrade hardware or start splitting databases into separate servers. Other Load Balancing software like Resonate and Local Redirector also have to worry about bottlenecks in the IP manager machine that routes IP requests. NLBS is much better in this respect than many other Load Balancing solutions that require a central manager node since NLBS uses every machine in the cluster as a manager that communicates with the others and every machine is an equal helping in the pickup of IP requests.
Effort Estimating for Test Automation Projects
By Babu Narayanan
Aug 18, 2005
Summary: "The subject of software estimating is definitely a black art," says Lew Ireland, former president of the Project Management Institute. As you know, estimating is more of an art than a science, and inherently more prone to the negative aspects of human biases. So bare with me, if am awry in my estimation exercise. These are the lessons learnt out of my experiences which describes in detail the following key areas for effort calculation:
Candidates for test automation.
Factors that affects test automation estimation.
Grouping steps to determine complexity.
Framework design and estimation.
Scripting effort estimation.
Aug 18, 2005
Summary: "The subject of software estimating is definitely a black art," says Lew Ireland, former president of the Project Management Institute. As you know, estimating is more of an art than a science, and inherently more prone to the negative aspects of human biases. So bare with me, if am awry in my estimation exercise. These are the lessons learnt out of my experiences which describes in detail the following key areas for effort calculation:
Candidates for test automation.
Factors that affects test automation estimation.
Grouping steps to determine complexity.
Framework design and estimation.
Scripting effort estimation.
Tim Weaver : NUnit with ASP.NET Context
NUnit with ASP.NET Context
Recently a bug was found in one of our components. Okay, so finding a bug isn't unusual, however what made this one stand out was that the component in question had over 70% code coverage with NUnit tests and it still wasn't found. Turns out the bug was related to the very small percent of code that relies on ASP.NET Context. The code isn't covered by our NUnit tests because frankly it is really hard to deal with ASP.NET context through unit tests.
I decided I wanted a way to get better coverage. Specifically I wanted to execute the code dependent on ASP.NET context. A quick google search turned up a few examples of how other people have tackled this. I took some of the examples I found and extended them to meet my requirements.
Recently a bug was found in one of our components. Okay, so finding a bug isn't unusual, however what made this one stand out was that the component in question had over 70% code coverage with NUnit tests and it still wasn't found. Turns out the bug was related to the very small percent of code that relies on ASP.NET Context. The code isn't covered by our NUnit tests because frankly it is really hard to deal with ASP.NET context through unit tests.
I decided I wanted a way to get better coverage. Specifically I wanted to execute the code dependent on ASP.NET context. A quick google search turned up a few examples of how other people have tackled this. I took some of the examples I found and extended them to meet my requirements.
Subscribe to:
Posts (Atom)
Ramadan - What is it?
Ramadan is one of the most important and holy months in the Islamic calendar. It is a time of fasting, prayer, and spiritual reflection fo...
-
ZipStudio - A versatile Visual Studio add-in to zip up Visual Studio solutions and projects - The Code Project - C# Programming
-
TargetProcess - Agile Project Management & Bug Tracking Software | Download (Project Management Software, Project Tracking, Bug Tracking...