What Is .NET?
.NET is the Microsoft Web services strategy to connect information, people, systems, and devices through software. Integrated across the Microsoft platform, .NET technology provides the ability to quickly build, deploy, manage, and use connected, security-enhanced solutions with Web services. .NET-connected solutions enable businesses to integrate their systems more rapidly and in a more agile manner and help them realize the promise of information anytime, anywhere, on any device.
The Microsoft platform includes everything a business needs to develop and deploy a Web service-connected IT architecture: servers to host Web services, development tools to create them, applications to use them, and a worldwide network of more than 35,000 Microsoft Certified Partner organizations to provide any help you need.
What Are Web Services?
If you ask a developer what Web services are, you’ll hear something like, “self-describing software modules, semantically encapsulating discrete functionality, wrapped in and accessible via standard Internet communication protocols like XML and SOAP.”
But if you ask a business leader who has implemented Web service-based solutions, you’ll get a different kind of answer. You’ll hear that Web services are an approach that helps the business connect with its customers, partners, and employees. They enable the business to extend existing services to new customers. They help the business work more efficiently with its partners and suppliers. They unlock information so it can flow to every employee who needs it. They reduce development time and expense for new projects. You’ll hear less about what Web services are and more about what they enable the business to do.
Benefits of Web Services
By enabling applications to share data across different hardware platforms and operating systems, Web services provide many benefits, including:
•Opening the door to new business opportunities by making it easy to connect with partners.
•Delivering dramatically more personal, integrated experiences to users through the new breed of smart devices—including PCs.
•Saving time and money by cutting development time.
•Increasing revenue streams by enabling businesses to easily make their own Web services available to others.
Connecting Applications Through Web Services
Web services are revolutionizing how applications talk to other applications—or, more broadly, how computers talk to other computers—by providing a universal data format that lets data be easily adapted or transformed. Based on XML, the universal language of Internet data exchange, Web services can communicate across platforms and operating systems, regardless of the programming language in which the applications are written.
Each Web service is a discrete unit of code that handles a limited set of tasks. However, although Web services remain independent of each other, they can loosely link themselves into a collaborating group that performs a particular task.
Example: Your Inventory System
Say you have a stand-alone inventory system. If you don’t connect it to anything else, it’s not as valuable as it could be. The system can track inventory, but not much more. You may have to enter inventory information twice—once in your accounting system and once in your customer relationship management system. The inventory system may be unable to automatically place orders to suppliers. The benefits of such an inventory system are diminished by high overhead costs.
However, if you connect your inventory system to your accounting system, it gets more interesting. Now, whenever you buy or sell something, the implications for your inventory and your cash flow can be tracked in one step. If you go further, and connect your warehouse management system, customer ordering system, supplier ordering systems, and your shipping company, suddenly that inventory management system is worth a lot. You can do end-to-end management of your business while dealing with each transaction only once, instead of once for every system it affects. That’s a lot less work—and a lot less opportunity for errors.
These connections can be made easily using Web services. Web services allow the applications to share information through the Internet, regardless of the operating system or back-end software that the application is using.
Web Services Use Industry-Standard Protocols
Web services also make it possible for developers to choose between building all pieces of their applications, or consuming (using) Web services created by others. This means that an individual company doesn’t have to supply every piece for a complete solution. The ability to expose (announce and offer) your own Web services creates new revenue streams for your company.
Web services are invoked over the Internet by means of industry-standard protocols including SOAP; XML; and Universal Description, Discovery, and Integration (UDDI). They are defined through public standards organizations such as the World Wide Web Consortium (W3C).
SOAP is an XML-based messaging technology standardized by the W3C, which specifies all the necessary rules for locating Web services, integrating them into applications, and communicating between them. UDDI is a public registry, offered at no cost, where one can publish and inquire about Web services.
Listed below are articles that articulate Microsoft view point on the software factories and SOA.
The toolkit is designed to simplify integrating reusable code into applications allowing architects to automate development activities that developers would usually have to perform manually; often by following a series of instructions. By using the toolkit, architects can also ensure that repetitive and often error-prone activities are performed in a consistent manner, streamlining and accelerating the development process.
The toolkit can be used with assets developed in-house or by third parties; such as the assets created by the Microsoft patterns & practices team. These assets can be exposed to developers within Visual Studio, and in some cases, configured by using configuration files, templates, and wizards.
Understanding the Guidance Automation Toolkit
The Guidance Automation Toolkit consists of a series of elements that work together to provide automation functionality, including:
Recipes Recipes automate activities that developers would usually perform manually, often by following a series of instructions. You can use recipes to ensure that repetitive and often error-prone activities are performed in a consistent manner and to simplify complex or repetitive development tasks. Recipes can be run on particular solution elements, or on a group of solution elements that share certain characteristics (for example, all C# projects).
Actions Actions are atomic units of work called in a defined sequence by recipes. The sequence is specified in the recipe definition. An action accepts input either from arguments that have been gathered by the calling recipes or from output received from an action run earlier in the sequence. Recipe actions are specified in the recipe definition.
Text Template Transformation Templates A Text Template Transformation template consists of a combination of text and scriptlets. Scriptlets are expressions in Visual Basic or C# that when run, return a string that is directly inserted into the output stream of the template. Templates are expanded by the Text Template Transformation engine included with the Guidance Automation Toolkit. Text is inserted unmodified into the template output.
Wizards Wizards are value gathering strategies used to gather values from recipe arguments. Any recipe can have a wizard associated with it. A wizard walks the developer through one or more steps, which are displayed as pages of the wizard.
Type Converters Type converters validate the value of a field and convert them from their user interface representation to a type representation
Visual Studio Templates Visual Studio templates are written in XML and are used by Visual Studio to create solutions or add one or more projects or items to an existing solution. The templates are expanded by the Visual Studio template engine. Using the Guidance Automation Toolkit, you can associate Visual Studio templates with recipes. This association means that when a template is unfolded, the wizard extension calls the recipe to let it collect parameter values (arguments) for the expansion and then, after the template is unfolded, to execute actions that may further transform solution items created by the template.
Each of these elements is collected together along with a configuration file into Guidance Packages, which are packaged and then installed as a unit. These Guidance Packages can be managed using Guidance Package Manager in Visual Studio 2005. Once a Guidance Package is installed and enabled for a particular solution, recipes can be executed to carry out the required tasks.