|
Here is some information I extracted from a web site (UniversalThread.com) regarding the next version of Visual Studio (Whidbey).
These are some notes that were taken and posted to a web site by someone who attened some developers convention in Germany around Nov 4-7th, 2003. I like this because it is concise, but covers a number of key topics. Remember that this is the next version of Visual Studio.net due to be released in 2004.
Keynote # 3 - Visual Studio "Whidbey"
First, Rainer Becker welcomed all the attendees, which arrived today and provided some information about the last two conference days.
Then he introduced the speaker another time to the audience: Yair Alan Griver (aka YAG), Visual Studio Data Group Manager at Microsoft, was going to present the upcoming
version of Visual Studio .NET (code named "Whidbey"). This the very first time that Whidbey was presented in Germany.
YAG welcomed everybody. Then he told us that he is going to present many of the enhancements, which Microsoft has implemented in the upcoming version of
VS.NET. These enhancements were shown at the Microsoft Professional Developers Conference (PDC) 2003 just one week ago in Los Angeles for the very first time in public. It is quite remarkable, that YAG did not spare time and efforts to present all of this to a German audience, mostly consisting of ardent VFP fans, which, curious as Foxes tend to be, are eager to enlarge their scope of professional knowledge.
The version of Whidbey, which YAG was going to use for this session, was
early alpha software, but it worked nice, only a few "wrinkles" showed up, but nothing spectacular and no crash at all. Alan was evidently pleased. "As always", Yag then remarked, "some of the features mentioned may not be in the final release. Others features not mentioned may."
The Agenda for the keynote
- Language enhancements
- Development Environment - Core Features
- Development Environment - Building applications
- Enterprise Support
The Design Goals for Whidbey
- Personalized productivity
- Pain point reduction
- Comprehensive tools
- Path to the future
And here is the list of the new features and enhancements we learned about today ...
1. Language Enhancements
YAG pointed out that Microsoft is going to satisfy the needs of the language communities with Whidbey
and that, of course, Whidbey will provide continued support for cross-language inheritance,
cross-language debugging and full access to the .NET Framework. He went on pointing out that the
interoperability between the different programming languages still does not mean that they are not
indistinguishable. The languages are not intended to cover what each other language contains.
1.1 Visual Basic
- Operator overloading
- Unsigned data types
- XML code documentation
1.2 Visual C++
- POGO - Profile Guided Optimizations
- Managed Extensions
- MFC enhancements
1.3 Visual C#
- Iterators: They will provide an easier way to implement the enumerator design pattern.
- Anonymous methods
1.4 Visual J#
- Browser controls
- Java-language keywords
- Swing functionality
1.5 Any of the contained languages
2. Development Environment Core Features
YAG stressed that all core features of the Whidbey IDE are designed and developed with the definitive
goal to support developers with a more simplified and powerful IDE. This does not only include the ease
of use of all available tools, wizards and so on, this also includes strong links to the community, which
can be used easily. YAG was sorry that he will not be able to show us all of the new core features, since there are so many of them!
- Drop regions for easier docking.
Most of you will know this problem: You are trying to dock one of the many windows inside the
IDE at a certain place, but you need several tries until you get it there since it is not docking where
you want it to be. Here the Drop Regions come to our help. They are small regions indicating
where and how the window you are currently dragging can be dropped. Remark from an attendee: "We want this for VFP!"
- Community Web Services
- Maintained on MSDN
- Accessed via Visual Studio IDE
- Web services include:
- Starter Kits
- Project Templates for new Code Snippets, new My Classes, new Refactoring and Product Updates
- Extensibility
- New VB My classes. One major new element of VB.NET are "My Classes". They are
supposed to assist developers in writing code for common scenarios. The "My classes" are
an easy and direct way to use the most important classes of the .NET framework. In his
sample project, YAG explained the concept like so: the MyClasses are like a speed dial in a
phone, a direct and easy access to many parts of the .NET framework. It will be possible to write much less code without a performance loss.
- New C# code refactoring
- New Code snippets
- Customized profiles (includes window layouts, color schemes, key bindings, etc.)
- Debugger visualizations
- Additional Starter Kits
- Documentation and Help.
YAG spent a considerable amount of time to present a first look of the new Help file features,
which will provide a much more intelligent and supportive information basis to the developer.
Navigation in the help file is more task oriented and the search function has improved a lot. We
will be able to set several search options. We have seen one, we will surely love: "priorize topics
with code"! Further more, we will be able to make comments in the help file that can be saved! I
am pretty sure you will like this feature. This way you can have all information in one place: the help
texts, comments and information you have collected from other sources!
3. Development Environment - Building Apps
- Code Refactoring / Code-focused RAD / Disciplined code restructuring.
Another important theme for Whidbey are Code Refactoring possibilities. The idea behind this is
"code-focused RAD" and disciplined code restructuring. Alan showed an example, of what this
means for the daily business of the developer: When we are recognizing that we need a piece of
code anywhere else for a second time, we will be able to mark those lines and tell Whidbey to
make a new method in any class out of it. The original code is replaced by a call to the new
method. And note that the IDE is smart enough to find variable names in the code snippet and to
use them as parameters in the new method. Of course, the method call will also contain the correct variable names in its argument list.
- My Classes for VB
- Assists programmers in writing code for common scenarios
- Customizable and extensible
- Create additional "My" classes
- Auto-Correct and IntelliSense.
The Auto-Correct feature will help you to find and correct code that is not correct. This works like
a spell or grammar checker in Word. IntelliSense will be enhanced by introducing filtering, so that only relevant and frequently-used class members are visible.
- Code Snippets.
Templates for more complex common code tasks - like upgrading from Visual Basic 6 are provided.
- Code Formatting
- Default options are .NET coding guidelines
- Applied at file, project, solution level
- Can be shared with team
- Windows Applications
- Ease and safety of Web application deployment
- Richer user experience
- New controls
- Simplified data access (e.g. Drag and Drop of database fields on forms)
- The Immediate Window for Visual Basic (which is the counterpart of the Visual FoxPro Command Window) will always be available, not only while debugging.
- A new "Getting Started" task pane
- IDE Navigator: similar to ALT+TAB in Windows, but here meant to switch between open IDE windows in a fast way
- Faster development
- Fewer lines of code
- Fewer clicks
- A new project must not be saved before code can be run.
This is nice for testing a small piece of code outside your application.
- Improved performance
YAG showed some encouraging examples.
- ASP.NET Web Applications
- Faster development
- Simplified data access
- Reduce ASP.NET code by up to 70%.
Here YAG showed us how easy it is to implement paging, sorting, etc. for grids.
- Consistency and appearance
- Master Pages
- Themes and skins
- Improved performance
- Mobility built in
- VS.NET comes with a new secure personal web server that can only called from the local
host and it installs under a normal user account. So IIS is no longer needed on the machine youâ€re developing on.
- Device-based Applications
- Target .NET Compact Framework 2.0
- Smartphone, Win CE .NET 4.2, Pocket PC
- Telephony
- MSMQ
- SMS
- IDE support for native C++
- Office Solutions
- Schema-based Programming Model
- Extended Office Controls
- Assembly in document with signature or strong name
- Server-side document creation
- Smart Doc framework
- Data Access
- Make the 80% data access case easy
- Find and incorporate data tables much easier
- Gain more control over data binding
- Use SmartTags to help guide the programmer
- XML tools enhancements
Due to a kind request from Ken Levy - "Ken will kill me, if I'm not showing you the XML tools" :)
Alan showed examples of the XML Tools Ken is currently working on. We saw a very large
XML file opening really fast in the editor and an Intellisense list that was only filled with elements
that can be used at the cursor position. YAG then pointed out that lines in a stylesheet are
compiled in the background while typing. This enables the IDE to immediately indicate whether the
line is valid. He demonstrated that it is possible to change stylesheet code while previewing it. And here's the list of all the presented things:
- Editing XML documents
- Validation and IntelliSense from XSD or DTD
- Custom XSD schema folder for XML validationLanguage
- Editor style experience for XMLOutlining expand/collapse in XML editor
- XSD schema inference
- Create XSD schemas from XML or DTS files
- Editing and debugging XSLT
- XSLT language editing with IntelliSense
- XSLT debugging with language integration!
- Yukon Integration (the next version of SQL Server)
Whidbey will support the Yukon project system and we will be able to write Stored Procedures in
managed code with the possibility to seamlessly step across T-SQL and managed code.
- MS Build
- Whidbey and Longhorn build engine
- Documented file format
- XML-based
- Scalable, extensible build platform
- RAD support in Whidbey IDE
- Debugging
- Simpler debugger interface
- Debugger data tips
This feature assists developers with tips about how he can solve a problem and possible actions to take.
- Debugger Visualizations
- View data stored in complex data types (Collections: Tooltips scrollable)
- Supports built-in .NET Framework types
- Extensible for user types
- Upgrade Strategy
- Seamless upgrade from Visual Studio .NET 2002 and 2003
- Visual Basic 6.0
- Improved control migration
- Support for control arrays
- Keyword changes
- App object
- Form default instance
- Forms collection
4. Enterprise
- Expanded VSIP
- Deeper integration
- Common services
- Visual Designers for Service Oriented Applications
As we have seen, Whidbey will be an exciting new release of Visual Studio .NET with a whole lot of new features and enhancements!
Track: .NET: Business Objects With ADO.NET
Manfred Rätzmann first introduced himself. An interesting point in his biography is a book he wrote about software testing a year ago.
While explaining what Business Objects are he mentioned that we should take care that they are
designed in a way so they can be used under all common circumstances to ensure that we consider most of the scenarios we might face in the future:
- In a Fat Client application
- In a web application
- In a web service
- In batch processes
After giving a brief introduction on Business Objects in general (this session was a more advanced one),
Manfred then introduced a so called Business Object Manager class. It is responsible for every job that
has to deal with multiple instances of the same Business Object. This way the Business Objects have a
good level of encapsulation and are very lightweight. Then he gave an example for two common tasks so
we all know whether a certain job should be done by a Business Object itself or by a manager class. A
client business object could be able to give the sum of open accounts for one client, but it may not create
a query result that tells you all the turnovers for all or some of the clients in your database. A Business
Object Manager class can also create new instances of a Business Object or save changes of existing ones.
He then explained his Service Provider class, which is quite the same as a Business Process class,
besides the fact, that Manfedâ€s class is only responsible for processes where different business
objects are involved. When only instances of the same Business Object class are involved, the Business
Object Manager would be the right place to code these kinds of things into.
We then saw the implementation of the model using the C# language. Manfred explained how he coded
all the things he was teaching us in theory before. He showed us how flexible his approach is, by
switching the data source for his demo from a Visual FoxPro database that was accessed using the VFP
OLEDB provider to a SQL Server database which was directly accessed via the SQLServerAdapter.
Manfred mentioned during his session that he already created implementations of the presented model in
Visual FoxPro, .NET and Delphi successfully. So we can see, it is universal as it should be, since it is
"just” a model and has (nearly) nothing to do with its implementation that comes later. Of course, you
always have to take some things of the programming tool you are doing the implementation with into account (e.g. strong typing), so the model really fits.
Track: .NET: Architecting for the .NET Event Model
Like always Kevin McNeishâ€s session started with a funny part, instead of the actual topic. This time
we were able to see a small video sequence of Rick Strahl laughing for over two minutes. I will leave it to
your imagination to figure out what happened in the room during those two minutes :)
Afterwards Kevin started with an introduction to the .NET Event Model and pointed out that the design
of it is based on the Subject-Observer Pattern we all know. We saw the regular code we need to bind
controls to data in .NET. Then he explained the goal of getting this done in a Visual FoxPro way, what
means that we only need to fill in a DataBind property instead of writing multiple lines of code.
In order to get this done he started with a clear and detailed explanation of all necessary steps for
creating events in .NET:
- Creating the event
- Creating the Delegate
- Defining Parameter Objects
- Defining the method that fires the event
- Defining the eventhandler method
- Registering the handler with the event
Especially the way he explained this quite complicated concept of delegates helped attendees to get one
of the major hard to understand parts of .NET programming into their minds.
After being through all steps Kevin pointed out what can be done with these events:
- Establish a relationship between Business Objects: Business Objects can send out events to inform the observers (listeners) when anything interesting happens in the object.
- End user configuration security: The ability to do the application security setup in running forms
using custom events to tell every secure control to switch into security mode and back again. This is working in Windows- and WebForms applications!
And for sure, the session goal having intelligent data binding in Windows- and WebForms was achieved
with the result of being able to simply set one property and the databinding is done.
We got a good demo on all of these topics and Kevin showed how he implemented all of this in Mere Mortals .NET.
|
|
Track: .NET: Introduction to multithreading
Rick Strahl's session started with a detailed part, explaining what multithreading is and where you would
want to use it. Besides obvious examples like server or monitoring applications he also pointed out things
like keeping the user interface "responsive" and the ability to interrupt operations.
After that, Rick described some of the problems that exist and have to be solved when using
multithreading. A closer look to the way multithreading works in .NET was the next step in his session.
He showed us how easy it is to create and use threads and what different possibilities, e.g. multithreading with delegates exist.
Good real life examples like sending mail in the background without meanwhile blocking the user interface
helped to understand the technique and the code you need to implement.
Many tips and good hints for solving problems in multithreading environment followed this presentation
and the session ended with a demo of a WebMonitor application and a few explanations about debugging in multithreading environments.
And who didnâ€t get everything the first time has the chance to re-read it in his 26 pages of session notes included in the conference binder.
To be continued on Friday ...
Friday, November 7
by Hans-Otto Lochmann and Armin Neudert
Track .NET
Today the .NET track that started yesterday continued with six more sessions.
Track .NET: An ASP.NET Web Shop for free - experiences from the development of the upcoming dFPUG web shop
Norbert Abb, one of the owners of Wizards & Builders, showed a web shop application and explained
its development using the upcoming dFPUG web shop as an example. The application is based on
ASP.NET. He not only talked about the design and implementation, he also provided detailed information about deployment and maintenance issues.
Norbert pointed out, that we not necessarily need Visual Studio .NET in order to develop an ASP.NET
application, since Microsoft also supplies a free tool called WebMatrix. So the web shop application
Norbert was going to show can be customized with a free tool, but furthermore it is also based on source
code that is available freely. The sample web shop application is called IBuySpy, which you can download from the Internet.
The data for the sample is originally for MSDE or SQL Server but Norbert showed that you could also
use a VFP database for the shop data. Actually the dFPUG shop works with VFP data. The source and
the VFP data for the IBuySpy sample is included on the conference website so you donâ€t need MSDE or SQL Server. You can stick with VFP.
Norbert also showed us a possibility to get demo web space for ASP.NET pages with access to SQL
Server for free from Microsoft on www.webmatrixhosting.net. That was something many people did not know before!
|
|
Whidbey: IDE features for building ASP.NET applications After lunch, I attended this session on the new
IDE features of Visual Studio Whidbey. Hereâ€s a quick run down: IIS is supported but not required
A build in development Web server is included The FrontPage extension are supported but not required
A project can be directory based You can edit and test a single file without opening the whole project
Publishing is easier thanks to a nice deployment tool Intellisense is everywhere
The editor outlines the code
The designer NEVER modifies your HTML code
The editor can validate the HTML against common browsers (IE, Netscape, Opera) and display warning
if the HTML doesnâ€t comply The user controls are rendered on the design surface
Build page let you compile and test a single page in a project Fully compiled sites
That last feature is worth talking about. Whidbey let you fully compile an entire site to native code. This
will eliminate the performance hit that the first user of a Web page gets. Whatâ€s amazing is that even
though the aspx pages are still required, once compiled with this option, they contain nothing, not even a
single line of HTML code. Everything reside in the DLLs. I canâ€t wait to explore this feature.
Programming with Master Pages, Themes/Skins and Navigation Controls in ASP.NET Whidbey
This session covered new features that are real time savers. You can design a master page that other
pages can inherit. Let say you have a design that have a top banner, navigation in the left and a footer at
the bottom. You design your master and then you tell your pages that you want to use this master.
VoilĂ , instant reuse!
You can also design themes to change the display of your pages. The speaker demonstrated this feature
by building a baby store Web site. When you would choose boy in the preferences section, the site
would be displayed in blue. When you chose girl, the site turned to, guess what? pink and this, just by
changing the theme at run time.
Programming ADO.NET in Whidbey
I attended this talk on ADO.NET to see whatâ€s new with data access. For those worried about
another major paradigm shift in data access, donâ€t worry, the changes are incremental. The good
news is that if your code works now, it will work in Whidbey !
New in Whidbey is asynchronous data access with new methods like BeginOpen, EndOpen,
BeginExecute and EndExecute. This will help building client apps that donâ€t block the UI while
executing long queries.
You will also be able to batch the updates resulting in better performance because the DataAdapter
current Update method does a round trip per row.
The DataSet is now faster when used with .NET Remoting because it supports binary serialization.
MDAC is no longer required when you deploy your applications. Paging is easier with simple methods.
You will be able to have multiple active DataReaders.
Data base classes will be available to provide API independence. These new classes (DbConnection,
DbCommand) are not attached to any particular provider (SQL Server, ODBC).
|
|
|
|
|