Сорри, лимит был
Сейчас вроде убрал... попробую ещё раз что-нть запостить.
Microsoft Developer Tools Roadmap 2004-2005
In February 2002, software developers and architects worldwide were introduced to Visual Studio .NET and the Microsoft .NET Framework. This landmark release, four years in the making, offered a unified development environment and programming model for constructing a range of software solutions. With the recent launch of Visual Studio .NET 2003, customers gained the benefits of enhanced tool and framework functionality, as well as increased performance, security and scalability for building enterprise-critical software.
As the needs of businesses continue to evolve, Microsoft remains committed to ensuring the success of its customers by providing innovative developer tools that meet these ever-changing requirements. To help organizations plan future software development efforts, Microsoft is providing a roadmap to the following planned releases of its developer tools:
· Visual Studio code name "Whidbey" (2004). This release of Visual Studio and the .NET Framework will offer innovations and enhancements to the class libraries, common language runtime (CLR), programming languages, and the integrated development environment (IDE). In addition, this product will provide deep support for SQL Server code name "Yukon" by enabling developers to write stored procedures using managed code.
· Visual Studio code name "Orcas" (2005). This version of Visual Studio and the .NET Framework will provide tools support for the Windows operating system, code name "Longhorn."
Microsoft developer tools have always been built to enable developers to take advantage of the latest advances in the Windows platform. As shown in Figure 1, Microsoft will continue this tradition by providing tools that support upcoming versions of SQL Server and the Windows operating system.
Top of Page
Visual Studio "Whidbey" (2004)
The Whidbey release of Visual Studio and the .NET Framework will make strides in all dimensions of application development. First, Visual Studio Whidbey will set a new bar for developer productivity by tailoring the software development experience to the needs of the individual developer. This "personalized productivity" will deliver features across the development environment and .NET Framework class libraries to help developers overcome their most pressing challenges in minimal time. Second, Whidbey will enable developers to apply existing skills across a broader range of application development scenarios through improved integration with the Microsoft Office System and SQL Server Yukon. Finally, Whidbey will deliver a new set of tools and functionality that will help satisfy the application development needs of today's large-scale enterprises.
Key focus areas for Whidbey include:
· Language and IDE Productivity. Microsoft will build on the distinctive characteristics of each of the four languages delivered as part of Visual Studio (Visual Basic, Visual C++, Visual C#, and Visual J#). This language innovation will enrich the programming experience for each of the respective developer communities without sacrificing existing language functionality and interoperability. Features surfaced through language innovation will be manifested throughout the Whidbey IDE, delivering personalized productivity for all developer communities.
· The Microsoft .NET Framework. Whidbey will introduce enhancements across the .NET Framework class libraries. Windows client application development will be simplified through new controls and designer features, while the introduction of "ClickOnce" technology will dramatically ease Windows client application deployment. ASP.NET Whidbey will introduce a collection of new features that refine Web application development and radically reduce coding effort. Other enhancements include more productive ADO.NET data access, support for the latest Web services standards, and expanded functionality for device-based development.
· Microsoft Office Solution Development. The Whidbey release of Visual Studio Tools for the Microsoft Office System will bring significant enhancements to the development of business solutions based on Microsoft Office Excel 2003 and Microsoft Office Word 2003. Developers building Office solutions will benefit from improved integration between Whidbey and Office, a familiar coding experience, and improved security and deployment.
· SQL Server Yukon Solution Development. SQL Server Yukon integrates the development and debugging of database objects into the Whidbey development environment, enabling developers to use the same tools for building and deploying database objects that they use to write managed components and applications today.
· Enterprise Development and Life-Cycle Support. Microsoft plans to deliver improved support for architects and enterprise developers in the Whidbey release. New tools will deliver enhanced project analysis and design, software configuration management, and deployment, as well as a scalable new build engine to ensure that Microsoft developer tools span the application life cycle.
Language and IDE Productivity
Microsoft offers four programming languages for building software with Visual Studio. In Whidbey, Microsoft will expand upon the unique strengths of Visual Basic, Visual C++, Visual C#, and Visual J# to deliver a rich language offering for developing a range of software. These language innovations, surfaced through the Whidbey IDE, will work in concert with enhanced IDE profiles and an intuitive Help system to deliver productive, customized development experiences based on the needs of the developer community (figure 2).
Visual Basic
The Whidbey release of Visual Basic will radically improve developer productivity while continuing to provide full access to the .NET Framework. Key design goals for Visual Basic Whidbey include: reducing the amount of code required to accomplish common tasks; dramatically reducing programming errors at design time; simplifying data access; improving the RAD debugging experience; and delivering high-end features for advanced Visual Basic developers.
Visual Basic Whidbey will reduce the coding associated with many common programming tasks by over 50 percent. New objects and methods will provide efficient access to the most frequently used functionality within the .NET Framework, including project-related resources, such as forms, data sources, and Web services, as well as machine-level components, such as printers, the file system, and the registry. The code in figure 3 shows one example of how these Visual Basic language extensions will dramatically simplify the code required for common operations.
Visual Basic .NET 2003 |
Const GreetingName As String = "Greeting" Dim sDisplay As Object Dim ResMgr As ResourceManager ResMgr = New ResourceManager("ResourcesSample.MyStrings",_ Me.GetType.Assembly)
sDisplay = ResMgr.GetString(GreetingName) |
Visual Basic Whidbey |
My.Resources.MyStrings.Greeting |
Figure 3. Use of the My. classes provides Visual Basic developers with faster access to commonly used functionality within the .NET Framework.
In addition, the Visual Basic code editor will provide pre-built code templates that enable developers to "fill in the blanks" and focus on solving the problem at hand rather than on language syntax (figure 4). Developers will also be able to easily create and distribute their own customized code snippets.
New features in the Visual Basic code editor will dramatically reduce programming errors for both beginning and advanced developers at design time. Providing similar functionality to the Microsoft Word spelling and grammar check, Visual Basic Whidbey will suggest corrections for common syntax errors.
Figure 5 shows a smart tag offering corrections for a misnamed type. Examples of errors that will be trapped include: forgetting to reference a required assembly, attempting to override a method with an incorrect signature, and misspelling a class name. In addition, the compiler will warn developers of semantically incorrect code that would otherwise cause runtime errors, such as attempting to access code elements prior to initialization.
Visual Basic Whidbey will also radically enhance the experience of manipulating and retrieving data. Simplified data source design from within the development environment will be available for local and remote data, business objects, and Web services. Whidbey will also reintroduce the ability to create data-bound forms without code. Ideal for many common data access scenarios, yet robust and scaleable enough for the most demanding distributed applications, this feature will enable developers to automatically generate customizable, data-bound UI when a table or columns are dragged and dropped onto a form.
Whidbey will deliver a debugging experience that is both powerful and familiar to the Visual Basic developer. With the reintroduction of Edit and Continue, developers will be able to modify and test source code without stopping and restarting the debugging session. Debugger advances will allow developers to intercept exceptions, get additional information about the exception, and continue if appropriate (figure 6). This iterative development and debug cycle, combined with advanced error correction and code analysis in break mode, will provide developers using Visual Basic with a debugging experience that is both powerful and flexible.
Following development, Visual Basic Whidbey will simplify the task of deploying a completed Windows client application to a user's machine with the introduction of "ClickOnce" deployment. Using this technology, developers will be able to create an application package that can be distributed through a Web page, file share, or other medium. Application users will simply click on the distribution package to install the application and all of its prerequisites. Further information on ClickOnce deployment and other deployment advances in Visual Basic Whidbey are covered later in this document.
For developers who have existing investments in Visual Basic 6.0 code, Whidbey will include several key improvements to the Visual Basic Upgrade Wizard. While the current version of the upgrade wizard available with Visual Basic .NET 2003 will successfully upgrade up to 95 percent of an application, advances in Whidbey will improve upon this rate with support for upgrading COM+ projects, additional Visual Basic 6.0 controls, including the TreeView, ListView and MaskedEdit controls, and enhanced support for upgrading code that involves programmatic printing. The Upgrade Wizard will also take advantage of many of the new language features being introduced in Whidbey to produce even cleaner and more maintainable upgraded code.
For the more advanced Visual Basic developer, language enhancements include support for operator overloading, unsigned data types, and partial types. In addition, developers using Visual Basic will have access to the CLR implementation of generics that promote code reuse across a variety of data types. Visual Basic Whidbey will introduce inline XML-documentation comments that will assist developers in creating well documented applications ready for deployment inside or outside the enterprise. Finally, Visual Basic Whidbey developers will continue to have full and direct access to all of the classes and functionality within the .NET Framework.
Like its predecessors, Visual Basic Whidbey will focus on enabling developers to rapidly build applications that span all tiers. Planned enhancements across the visual designers, code editor, language, and debugger will greatly enhance productivity, enabling developers to create robust, elegant applications faster and deploy them across the Web, a business group, or an enterprise.
Top of Page
Visual C++
In Whidbey, Visual C++ will offer even more power and fine-grained control than its predecessors for systems and application developers targeting both Windows and the .NET Framework. Key improvements are planned across all areas of the product, including the language, compiler, and core libraries. These enhancements will enable C++ developers to more effectively target the CLR, optimize their code for performance, target 64-bit Windows, and improve application security. Moreover, Visual C++ Whidbey will enable developers to build native C++ applications for mobile devices directly within the Visual Studio Whidbey IDE. (More information about embedded C++ development can be found in the Device-Based Development section).
With Visual C++ .NET versions 2002 and 2003, Managed Extensions enable developers to explicitly take advantage of the CLR and the .NET Framework. In Whidbey, the existing Managed Extensions syntax will continue to be fully supported. In addition, Visual C++ will offer expanded support for the CLR and the .NET Framework with powerful new features and a more elegant syntax for writing managed code. This syntax is now undergoing ECMA standardization as a C++ binding to the ECMA-standardized Common Language Infrastructure (CLI). The new syntax will be called C++/CLI.
The C++/CLI subset of the C++ language will be largely implemented in Visual C++ Whidbey, and will offer Visual C++ developers a number of new capabilities. For the first time, C++ developers will be able to write .NET-connected applications using true C++ programming paradigms. For example, C++ templates and C++-style deterministic finalization will be enabled for code and data managed by the CLR and the garbage collector. Additionally, C++/CLI brings many CLR programming paradigms to C++, including the CLR implementation of generics.
C++/CLI also streamlines the manner in which managed data types are defined and consumed. The new standard introduces keywords that are more intuitive to C++ developers than the underbar-underbar keywords of current Managed Extensions. In C++/CLI, the ref keyword is used in a manner similar to the Managed Extensions __gc keyword to define a garbage-collected class:
ref class MyRefClass { /* … */ };
In addition, C++/CLI introduces a new category of type, the handle, which is used to signify the use of automatic garbage collection. Handles borrow the syntax of pointers, but use the carat (^) in place of the asterisk (*). The keyword gcnew is used to create these garbage collected objects, and returns a handle:
MyRefClass ^ c = gcnew MyRefClass();
With C++/CLI, developers will also be able to incorporate traditional C++-style deterministic finalization for handle types. This means that a reference type may be optionally instantiated as an object using normal C++ stack-allocation syntax. In doing so, the object will automatically have its destructor called when it falls out of scope. This feature enables a style of programming not available in other languages targeting the CLR.
In addition to C++/CLI support, the Visual C++ compiler will offer several code-generation enhancements for CLR-targeting code. These enhancements include the ability to specify a "pure" image that includes no native-x86 instructions and a "safe" image that passes the CLR verification process. Furthermore, the Visual C++ Whidbey compiler will be able to optimize MSIL beyond what is possible with other managed languages.
One of many enhancements planned for the C++ compiler in Whidbey is Profile Guided Optimizations (POGO). POGO technology enables the compiler to instrument an application and collect information on how the application is used at runtime. This information enables Visual C++ to further optimize generated code based on real-world application usage patterns. Pre-release versions of 64-bit POGO technology currently ship in the freely downloadable Platform SDK (PSDK). In Whidbey, this technology will be extended to the core 32-bit compiler, and support will be integrated into the IDE (figure 7).
Whidbey will also include the 64-bit C++ compilers that are currently only available in pre-release form within the PSDK. These compilers enable Visual C++ developers to write unmanaged code that target the 64-bit versions of Windows running on both Intel and AMD hardware. Support for targeting 64-bit Windows will be fully integrated into the IDE (figure 8).
In addition to language and compiler enhancements, Visual C++ Whidbey will deliver improvements and additions to core C++ libraries, such as the Microsoft Foundation Classes (MFC), the Standard Template Library (STL), and the C-runtime library (CRT). These additions will enable C++ developers to better support the .NET Framework and deliver built-in application security.
First, a new version of the Standard Template Library (STL) will be introduced. This version of STL will be tuned for interacting with managed code and data. Programmers who are comfortable using STL for writing traditional C++ applications will find they will be able to apply the same coding techniques to writing CLR-based applications. Second, a new version of the C-runtime library (CRT) with enhanced security features will be released with Whidbey. As part of Microsoft's ongoing commitment to the Trustworthy Computing initiative, this release of the CRT will help increase the collective security of applications that integrate the CRT.
With Whidbey, developers will continue to choose Visual C++ to build their most demanding applications and components. Whidbey expands on the core set of capabilities delivered in the 2003 release of Visual C++ .NET with an exciting offering of new and refined features for the control and performance-conscious C++ developer.
Top of Page
Visual C#
In Whidbey, Microsoft plans to infuse C# with a variety of language and code editor features that will provide C# developers with "code-focused RAD," delivering productivity for creating business frameworks and reusable object-oriented components. Included among these features are generics, iterators, anonymous methods, partial types, and refactoring.
As projects increase in sophistication, programmers often need a means to better reuse and customize existing component-based software. To achieve such a high level of code reuse, programmers typically employ a feature called generics. In Whidbey, the CLR will include a type-safe, high-performance, compile time-verified version of generics that differs slightly in syntax and greatly in implementation from the templates as found in C++ and the generics as proposed for the Java language. Generics allow developers to author, test, and deploy code once and reuse that code for a variety of different data types with negligible performance impact. The CLR implementation of generics will also reduce code bloat when compared to other strongly-typed implementations, leading to more readable and maintainable source.
In the example below, a generic Stack class is created that will accept the type for which they are created and store data of that type natively, rather than forcing conversions to and from the base class type:
public class Stack<ItemType>
{
private ItemType[] items;
public void Push(ItemType data)
{
...
}
public ItemType Pop()
{
...
}
}
The type used by the generic Stack class is only specified upon instantiation. In this example, the Stack class is instructed to use a primitive integer type by specifying it as a parameter using the angle notation in the instantiation statement:
Stack<int> stack = new Stack<int>;
stack.Push(3);
int x = stack.Pop();
In addition to improving code reuse through generics, Visual C# will provide support for iterators to eliminate the often repetitive chores associated with implementing enumerator patterns. Based on similar features in research languages, such as CLU, Sather, and Icon, iterators make it easy for types to declare how the foreach statement will iterate over their elements. Rather than having to create the classes and build the state machine for manually implementing the enumerator pattern, the C# compiler will translate iterator code into the appropriate classes automatically.
Anonymous methods are practical language constructs that will enable programmers using Visual C# Whidbey to create code blocks that can be encapsulated in a delegate and executed at a later time. They are based on a language concept called a lambda function and are similar to those found in Lisp and Python. Anonymous methods are defined dynamically at the point at which they are used, rather then being pre-defined as a named method of a specific class. Anonymous methods make some types of operations more convenient, particularly when the method signature or body needs to be changed at runtime.
In this example, an anonymous method is used to directly modify a ListBox on a form, foregoing the creation of an entirely new method for the class and instead directly referencing the executable steps contained therein. The code used to modify the list box is stored within the scope of execution immediately following the delegate creation statement:
public class MyForm
{
ListBox listBox;
TextBox textBox;
Button button;
public MyForm()
{
listBox = new ListBox(...);
textBox = new TextBox(...);
button = new Button(...);
button.Click += new EventHandler(sender, e)
{
listBox.Items.Add(textBox.Text);
};
}
}
Whidbey will also enable C# developers to split types consisting of a large amount of source code into several different source files using partial types. Providing easier development and code maintenance, partial types enable developers to separate machine-generated and user-written parts of a type in order to more effectively supplement or modify code generated by a tool.
In addition to extending the C# language, Whidbey will introduce C# developers to a number of code editor enhancements. Among these is code refactoring—the process of restructuring code in a disciplined way (figure 9). With refactoring, C# developers can improve the design and efficiency of code after it has been written. Whidbey will include the following Refactoring types: Rename, Encapsulate Field, Change Method Signature, Extract Method, and Extract Interface.
Ответить
|