This was a week with many different events in Austria!
On Monday we had a dinner with invitation by Microsoft where I've given an X-Box to Ingo Rammer. This was an INETA Europe present because Ingo was one of the first INETA Speakers for Europe when he did a presentation at the Belgian .NET User Group.
On Tuesday I've organized a meeting for the .NET User Group Austria in Vienna. Alex Homer and Dave Sussman did great presentations about ASP.NET 2.0 Personalization and XQuery.
Dave and Al are great candidates for such topics with their newest books:
A Message to User Group leaders: check what speakers are at your local (Microsoft) events. INETA can help you to get in contact with the INETA speakers for your user group meeting!
Alex Homer had his birthday on the day of the .NET User Group presentation! On Wednesday we had the .NET Day in Vienna with my presentation about .NET Enterprise Services Now and in the Future. Although the presentation was during lunch time, I had a lot of attendees :-)
On Thursday I was driving to Graz to give a presentation about .NET 2.0 and ASP.NET 2.0 for the .NET User Group Styria. Klaus Aschenbrenner, UG leader from this group did some ASP.NET 2.0 demonstrations.
Klaus has a more detailed story!
A great week!
Bill talked about "Seamless Computing", an extract from his PDC keynote.
During the keynote a cooperation Microsoft and Mobilkom Austria was announced. Boris Nemsic, CEO Wireless, Mobilkom Austria was a guest during the keynote. Here is some information by Mobilkom. The Motorola MPX200 will be available for Mobilkom, and Mobilkom will offer web services.
After the keynote Bill had a Q&A session where he answered questions such as:
Q: Because programming will get easier, there could be more "bad" programmers writing awful software.
A: Cars got cheaper and cheaper. We've seen more bad car drivers.
I agree fully with Dino's opinion about ObjectSpaces: "Like MTS, I buy the statement that ObjectSpaces is not great for everybody. But it would probably make life easier for more people than I myself thought two weeks ago."
I would extend to this that I see ObjectSpaces as a good fit with .NET Enterprise Services (or Indigo). ObjectSpaces is not the ideal solution for all distributed data-driven solutions, but I'm sure that at least medium-sized and small applications can be built faster and better (if used correctly).
With my presentation about .NET Enterprise Services Now and int the Future, ObjectSpaces plays an important role.
Today Bill Gates will be given a honorary knighthood: Knight Commander of the Most Excellent Order of the British Empire, KBE.
Others with this title: Tim Berners-Lee, Bob Geldof, Steven Spielberg
Wednesday Bill Gates will have the closing keynote at the .NET Day in Vienna.
Chapter 9 describes state management with serviced components.
With .NET Enterprise Services applications, state can be kept in many different places - e.g. client application, serviced compnent, shared property manager, database, ASP.NET Web Services (if used as a facade)...
This chapter covers the issues when to use what state, and how to decide where to put state.
Always when I have to go back to work with Visual Studio .NET 2003 I'm missing the refactor feature of Whidbey.
Creating properties with Whidbey:
Just select a private field, context menu: Refactor | Encapsulate Field, and the property is done. Readonly fields are also automatically detected, so a property just with a get accessor is created.
Using Visual Studio .NET 2003 a lot more typing is needed to create a property.
MSDN has a new article from Jeff Bogdan about the Avalon team. The team was founded on 17-January 2001 with 400 members.
Jeff also writes about Avalon Seven (seven goals for Avalon).
Chapter 8 describes the functionality of the Compensating Resource Manager (CRM) with .NET Enterprise Services. CRMs make it possible to build easily resource managers that participate with COM+ transactions. With a CRM it is possible to have transactional-like semantics accessing files or other non-transactional resources (Longhorn willl add transaction support to the file system).
.NET has a separate namespace System.EnterpriseServices.CompensatingResourceManager that includes classes that help creating compensating resource managers. However some native COM+ features (particularly for monitoring CRMs) are missing with .NET classes.
Congratulation to Peter Koen!
Peter is now MVP for C#.
He is very active in the developer community. Peter had some presentations with the .NET User Group Austria, speaks at various conferences, and is now starting the SQL Server User Group Austria.
With a customer we had these goals:
- Moving the complete development to .NET
- Writing ActiveX Controls for an existing ActiveX Control Container
- The container was written with MFC, and source code for the container is not available (written by a third party)
Using Windows Forms controls as ActiveX Controls was not possible. Adam Natahn's great book .NET and COM: The Complete Interoperability Guide didn't help in that case.
MFC supports Windows Forms as ActiveX Controls, but only in MFC 7.x.
Because this was not an option, a solution was to write an ATL ActiveX Control with container support that hosted the Windows Forms control and was hosted inside the MFC container.
ShadowFax Alpha Code is available. The ShadowFax team is looking for feedback on this code.
ShadowFax is the code name for a service-oriented reference architecture project from the Microsoft Platform Architecture Guidance Team.
Webcast about ShadowFax: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032241538&Culture=en-US
It's time to move from .NET to WinFX ;-)
I just had to work on some PowerPoint files using PowerPoint 2003 when I got the error message "The presentation cannot be edited because it contains only a read-only embedded font".
To resolve this problem the knowledge base article 827405 helped:
Save the PPT file with an older version of PowerPoint, and don't embed true type fonts.
Luckily I have a system with an old version of PowerPoint.
In Vienna we will have a .NET Day on 28-Jan-2004.
I have a presentation about:
- Enterprise Services - Now and in the Future
More INETA Speakers at this event:
- Visual Studio Whidbey Highlights
- An Introduction to ASP.NET 2.0
- Data Management in .NET 1.1
- Best Practices für Web Services im praktischen Einsatz
- J2EE & .NET Interoperabilität (with Beat Schwegler)
- Web Services Today and in the Future
Not to forget - although he's not an INETA speaker ;-)
Bill Gates will have the closing keynote!
.NET User Group Austria
Topic: ASP.NET 2.0 - Personalization and XQuery:
If you think personalization and XQuery are two unrelated topics, then you'd be right. However they are two new interesting features available in ASP.NET 2.0 "Whidbey", and topics that deserve some attention. Personalization in Whidbey provides a simple to use API for managing user details, integrated with a set of user controls to enable quick and easy site construction. XQuery is an XML Query language allowing simple searching through both single and multiple XML data sources. This talk will explain how easily the two topics can be used to enhance web sites constructed with ASP.NET 2.0.
On the following day (28-Jan-2004), Dave & Al will have a full-day presentation of Whidbey, ASP.NET, and Data-Management at the .NET Day in Vienna.
Dave & Al's newest books:
One of the last sentences with Don Box slides for a PDC presentation (WSV201):
Services: The Next Twenty Years
Within the last weeks I've seen many statements about OO will be replaced by SOA, that ObjectSpaces doesn’t fit into a services-oriented application architecture......
I have a different viewpoint: OO will have its place with SOA.
Function-Oriented --- Object-Oriented --- Service-Oriented
Not too many years ago there was a lot of discussion if OO is a good way to program. Just .NET made OO to the base foundation of the operating system. The Win32 API is function-oriented.
Functional programming is not completely gone with OO. Look inside the objects! We just don’t discuss this anymore.
Similar OO will have its place inside the services implementation.
Maybe once we get the functionality of device drivers in the form of a service. However, I don’t think I will concatenate a string or add two numbers by calling a service. Oh - there are hundreds of web services that offer this method, so maybe this is not a good example ;-)
int Add(int x, int y);
Would you really use this from a real application? Of course this would be different with more complex calculations.
OO programming will not be gone with SOA. I expect OO inside the implementation of services and agents.
Chapter 7 is about transactions. After giving an introduction to transactions I start with programmatic transactions using ADO.NET.
Next automatic transactions with serviced components and the [Transaction] attribute follows.
COM+ 1.5 allows setting transaction isolationn levels, so this is covered here, too.
Services without components are a very interesting approach to use transactions without configured components (only for Windows Server 2003).
Finally, I'm giving a first introduction to .NET 2.0: System.Transactions.With the TransactionManager and Transaction class it is possible to use the same classes for DTC and Web Services.
Update (Information from Florin Lazar): Windows XP will have support for Services without Components with SP2.
On 20-February we will have a cool .NET Terrarium Day in Vienna, Austria.
In the morning I'm talking about technologies used with the .NET Terrarium application:
- Web Services
- Registration and Peer Discovery
- Dynamic Loading of Assemblies
- Version Updates (Smart Clients)
In the afternoon the attendees will have a challenge to program herbivores and carnivores for the terrarium. The winner will get an X-Box or one-year of Red Bull drinks
For programmers who do not already know enough about .NET, they can attend a four-day .NET warmup training covering
- Introduction to .NET
- Windows Forms
- Data Access with ADO.NET
- .NET Remoting
More about the terrarium: http://www.windowsforms.net/terrarium
My other open courses in the next months: