Level Extreme .NET Magazine April 2008 issue

Universal Thread Magazine March 2007 issue

2008
2007
2006
2005
2004
2003

2008
2007
2006
2005
2004
2003

2008
2007
2006
2005
2004
2003
2002

2006
2005
2004

2008
2007
2006
2005
2004

2007
2006
2005
2004
2003

2004
2003
2002
2001
2000
1998
1997
1996
1993

2003
2002

2003
2001

2003
2002
2001

2003
2001

Visual FoxPro 2001
Visual FoxPro 2000
Visual Studio 2000

West Wind 2002
Double Impact 2001
FoxTeach 2001
Jam sessions
Technical Guidelines

Universal Thread documentation

About
Acronyms
Contact information
Troubleshooting
Time zones
Web Service
Terms & Conditions
Copyright

Manage your account for the messages area options, your subscription information, your invoicing, youir banners and your pictures Subscribe to the Universal Thread and get all the benefits related to the messages area A corporate subscription is needed for companies that have more than one developer Access the Universal Thread store to purchase your subscription, corporate subscriptions and banners The Universal Thread is covering several conferences per year. On site, reporters cover the technical aspect of the conference as well as making interviews, taking pictures and videos and other related content. Get all the reports from our coverages site. Universal Thread home page Level Extreme .NET Magazine, a newly published online magazine by Level Extreme about Microsoft .NET technology and its community Universal Thread Magazine, a magazine dedicated to the Visual FoxPro community TechEd 2003

TechEd is the definitive Microsoft conference for building, deploying and managing connected solutions. TechEd 2003 is the very best way to stay current on today's technologies. With the latest versions of many of Microsoft's key products shipping shortly, it's a great time to see products in action, talk to the experts who designed them, and stay ahead of the curve.

Date: 
Location: 

Overview

by Michel Fournier

Welcome to our coverage of TechEd 2003. This year, Guy Barrette will be our reporter. Guy has extensive experience in writing. He is also a Universal Thread Magazine regular contributors in the .NET Book Reviews section. He also has reported on various conferences so far. Have a great TechEd 2003 conference!

 
Michel Fournier, Level Extreme Inc. 
Michel Fournier is the owner of Level Extreme, designer of the renowned Universal Thread. He specializes in providing IT solutions in the .NET world as well as the SQL Server data platform. His expertise has been used in feasibility study, prototyping, analysis, development, training, development team integration, standards implementation and testing. His consulting services have been given to clients in Montreal, Toronto, Quebec, Bathurst, Moncton and the United States. In the last years, he has given various training and consulting related to Internet and Visual FoxPro for user groups and companies while having published various articles for different sources. You will find the biggest Internet product achievement he has done by accessing the Universal Thread. He has been a Microsoft MVP in 1997, 2002, 2003, 2004, 2005, 2006, 2007 and 2008.

Sunday, June 1

Hello everyone and welcome to this coverage of the Microsoft TechEd 2003 conference. This year, TechEd is held in Dallas, Texas at the Dallas Convention Center. First I want to thank my employer, Nurun, who is sending me once again to this conference; Michel Fournier form the UT to let me do this coverage and the Montreal Visual Studio.NET User Group for lending me their laptop so I can write and send my texts.

Let me start by explaining what TechEd is. TechEd is the largest Microsoft conference and it is being held annually. There are about a dozen TechEd conferences taking place on every continent from Europe to Asia but the mother of all TechEd is the US one. For our European readers, TechEd Europe will be held in Barcelona, Spain from June 30 to July 4. The content of the conference is a mix between development, infrastructure and architecture. To give you an idea of the magnitude of this conference, there are more than 400 sessions during 5 days, a pre-conference day, wireless Internet access, a sea of PCs available to get last minute information or to get in touch with the office, plenty of announcements even a shuttle service with the Microsoft colors.

Sunday is the pre-conference day. You could choose between a full day session of a full day hands-on-lab. I choose to attend the Software Legends Tips and Tricks session. The Software Legends is a group of highly visible book authors that do lectures at conferences. A few months ago, Microsoft sent these Software Legends for a tour of bookstores across the USA. Today, I had the chance to see some of these legends: David Chappell, Jeffrey Richter, David Platt, Juval Löwy, Billy Hollis, Yasser Shohoud and Don Box. For more information on the Software Legends, visit www.softwarelegends.com or do a search with their names either on MSDN or Amazon.

The first speaker was David Chappell who spoke about its favorite things. Davis is an accomplished musician and throughout his talk, he made some parallels between music and software programming even playing some tunes on a piano that was sitting next to the stage.

Favorite thing #1: Multiple Platforms
David likes that there are multiple platforms to choose from. He explained how Microsoft influenced Sun with COM+, ADO and ASP and this resulted in EJB, JSP and JDBC. Then Sun influenced Microsoft and .NET was born.

Favorite thing #2: How Web Services are created
David explained how TCP became the standard transport protocol and that he is glad that finally, the world will standardized on SOAP has the data encapsulation protocol and that SOAP will dominate by 2005. Davis mentioned that he thinks that the standard bodies like the W3C are too slow and its better that software companies unite and produce technology that will be later submitted to the standard bodies because they can move a lot faster.

Favorite thing #3: .NET My Services
Wait, hasn’t .NET My Services been ditched? Yes explained David but he thinks it’s an idea that is too good and that it will surface later with a better business model.

Favorite thing #4: Project Mono
David said that when he first took a look at Mono, he wasn’t impressed but a year later he is surprised that the amount of work that have been done. For those who don’t know, Mono is a project to create an open source .NET implementation running on Linux (www.go-mono.com).

Favorite thing #5: Service Oriented Architectures
David showed a diagram where an ASP.NET Web site, a Windows application and a Java Web site are getting the information they need by calling a system exposing the data thru Web Services. He liked the fact that SOAP is platform independent and thinks that more and more we will be this model: a back-end exposing its services by the way of Web Services to be accessed by a multitude of “clients”.

The next speaker was Jeffrey Richter and he talked about some controversial .NET topics.

Controversial Topic #1: Can manage code be protected?
Everyone knows how easy it is to disassemble a .NET assembly. This is not a .NET only problem because you can decompile code on every platform but are there solutions to prevent this on .NET? Of course, Jeffrey offered a few solutions: -Do nothing because disassemblers have and will always exist.
-Write server side applications like ASP.NET applications because the assemblies are never distributed. -Few parts of an application are worth disassembling. Who cares about you copy & paste code? You can write the code that you want to be more secure in Visual Basic 6 and call it from your .NET code.
-Use an obfuscator, a program that mess around your assemblies rendering almost unusable the disassembled code. -Use Digital Rights Management. This technology will first be implemented in Office 2003 and incorporated later in development tools.

Controversial Topic #2: How much faster will your code run using NGEN.EXE?
Every time you start a .NET application, .NET does a just in time compilation (JIT) to transform the intermediate language that resides in a .NET assembly and transforms it into native code. The problem is that JIT takes time and may incur a slight performance hit. Microsoft provides a solution by including a small utility in the .NET framework called NGEN that you can use to compile your applications to native code. Is it too good to be true? Yes and that’s what Jeffrey explained next:
-NGENing your assemblies must be done on the machine where it will run and you must JIT at install. You cannot JIT on a machine at work and distribute native code file.
-JIT is still required sometime by the runtime
-JIT is required after the client machine has been touched, ex: installation of a service pack or a .NET Framework update.
-NGEN can hurt performance of the applications. Typically, NGEN’d applications run 5% to 10% slower so do you really care if they start faster?
-Of the 317 DLLs in the .NET Framework, only 24 are NGEN’d. Of those, the majority are for Visual Studio.NET and Windows Forms.

Controversial Topic #3: How much slower is manage code compared to unmanaged code?
The .NET Framework offers many features like JIT, garbage collection and runtime checks. Developers may worry about the impact of all this on performance. The truth is that performance is not an issue. Some manage code is even faster then unmanaged code. Jeffrey gave an example in the fact that when you compile a C++ program, you must choose the target CPU. Usually, you will choose to be compatible for Pentium 2 processors if you are distributing your applications on multiple machines. By using .NET, at JIT time, the compiler will optimize the code for the processor installed on the client machine; a Pentium 4 for example.

Next in line was David Platt who gave a somewhat structured talk. Boy does he speak fast! Honestly, I had trouble following him some times and the fact that he jumped from one subject to another didn’t helped either. His talk focused on ways to mess up .NET memory management and how to avoid them. He demoed code that kept leaking memory and how to solve the problem. David mentioned that if you are using a COM DLL that leak memory in COM, the problem won’t be solved by calling it from .NET. He pointed out that with ASP.NET, it’s possible to recycle the process after a certain time. You configure this in the ProcessModel of the Machine.Config file. One thing to keep in mind at all time is the garbage collector. Basically, you must program accordingly. Next David showed some XML code and how to serialize a class in XML.

Juval Löwy talk was about Visual Studio.NET and C# tips and tricks. WINCV: The WINCV is cool but little known utility included with Visual Studio.NET. It’s a .NET class viewer that you can use to take a look at the different classes in the .NET Framework. There’s no shortcut to it so, just do a file search for WINCV.EXE to find it. The resulting output is in C# and it is a lot faster then searching true ten thousands search results in MSDN. 10 in my coolness factor!



Linked Files: If you want to share a file between multiple projects but don’t want to copy it in all project, you can share it. In the Open Existing Item dialog box, the Open button is actually a dropdown. Click the down arrow and select Link File. Voilà! The file is now linked and shared across projects. Juval pointed that this also works with SourceSafe. Multiple Project Startup: In the solution property page, you can select to start more then one project when you run your solution. You can even customize what project will be started first. Very useful when working with a solution that has multiple dependant projects.



Blank Solution: Juval demonstrated that if you add a second project to an existing one, Visual Studio.NET will create automatically a solution for you. However, the solution file will be created in the directory of the first project. If you prefer to have a directory containing the solution file along with each project in its own subdirectory, create a blank solution first and then add the different projects. Simple and effective.
Task List: You can add special comments in your code that will be listed in the Task List. For example, if you type this line of code, it will show in the Task List.
//TODO: Must optimize this loop
Build Event: In Visual Studio .NET 2003 and with C# (sorry, not in VB), you can trigger events before and after compilation. For example, let’s say you want to automatically unregister your DLL from Enterprise Services (COM+) before compilation and that you want to register the new version back after the compilation. A real time saver.
Drag & Drop onto classes: The classes don’t have designers where you can drap & drop design time objects unlike what you can do in a Windows Form or a Web Form. You still can do it by importing the System.ComponentModel namespace in your class and then inherit from the Component class. Visual Studio.NET will then allow you to drag & drop object onto the class designer.



Document Outline Window: Juval demonstrated that by using the Document Outline Window, it is a lot easier to navigate thru files like Web.Config.
Logging: Juval is a strong believer in logging everything an application does. He demonstrated a framework he and his company built to do that. The source code is available online at www.idesign.net

Billy Hollis was next. Billy was the first author to publish a Visual Basic.NET book. He didn’t have any PowerPoints and sadly, I must say that his talk was more an advertisement for his other TechEd talks that he’ll do later this week. He spoke about how to create extender controls like the tooltip control that you found in Windows Forms. He then explained how to do things on the fly. By things on the fly, he meant building a questionnaire at runtime using questions stored in XML. Billy also spoke about ChalkTalk, an Visual Basic .NET application that let you draw on the screen à la John Madden (a famous football commentator). You can find the article and the source at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadvnet/html/vbnet01142003.asp

Yasser Shohoud and Don Box, both from Microsoft, were next. They took questions from the audience about Web Services. So here some of them:
Q: Will there be an integration of Web Services Enhancement (WSE) in a future version of Visual Studio.NET?
A: Yes

Q: Are WSE enterprise ready?
A: No. WSE are an add on and are not part of the platform.

Q: Should I use Web Services or .NET Remoting?
A: When you control both ends of the wire, remoting is OK.

Q: What about a good XSLT editor in Visual Studio.NET?
A: Don hoped that one will ship with the next version of Visual Studio.NET.

Q: Why SOAP 1.2 wasn’t included in the .NET Framework 1.1?
A: Because the standard was still moving and Microsoft does not want to repeat the same mistake it did by including a implementation of XSLT based on non finished specs in IE 4.

The last part of the Software Legends day was in the form of a panel where Don Box was asking questions to the Legends. Here is the Q&A:

Q: What’s your favorite feature of .NET?
Billy Hollis: Windows Forms
Yasser Shohoud: XMLReader class
Juval Löwy: Every class in .NET is a component
David Platt: XML Serialization
David Chappell: .NET is like Java
Jefrrey Richter: MetaData

Q: What’s your least favorite feature of .NET?
Billy Hollis: Remoting configuration (too complicated)
Yasser Shohoud: XML Serializer
Juval Löwy: You must derive from Enterprise Services for a component to be in COM+. It should be build right into the class.
David Platt: Lack of any UI to edit Web.Config
David Chappell: The definition of .NET or how Microsoft screwed the marketing
Jefrrey Richter: Properties

Q: What’s your favorite feature of Visual Studio.NET?
Billy Hollis: Macros
Juval Löwy: In 1.1 when you inherit, you can press tab and VS will implement the interface.
David Platt: The server explorer and the fact that you can drag&drop tables
David Chappell: Managers need to know nothing about VS.NET
Jefrrey Richter: Intellisence

Q: What’s your least favorite feature of Visual Studio.NET?
Billy Hollis: You can open the same project twice and mess it
Juval Löwy: Drag&drop of database components
David Platt: There’s no undo in the XML Schema editor
David Chappell: Java support (J#). It creates confusion.
Jefrrey Richter: Performance. It’s too slow.

Q: What’s your most anticipated new feature?
Billy Hollis: A better no touch deployment for Windows Forms with an API.
Yasser Shohoud: Custom XML serialization
Juval Löwy: Hope for secure .NET remoting channels
David Platt: Useful XML tools
David Chappell: Real differences between VB.NET and C#
Jefrrey Richter: Generics

Q: What’s Java feature would you like to see in .NET?
Billy Hollis: Companies spending insane amounts of money on Java software projects
Yasser Shohoud: Sense of community (Don added that it would help if we had a mascot!)
Juval Löwy: Perception of portability
David Platt: Cross platform
David Chappell: Market share
Jefrrey Richter: Performance. Sorry, I have no idea of what Java is!

Q: Witch Microsoft executive would you have lunch with?
Billy Hollis: Bill Gates
Yasser Shohoud: Bill Gates
Juval Löwy: Bill Gates
David Platt: The marketing guy how found the term .NET!
David Chappell: Bill Gates because I’m fascinating on how he manage his time
Jefrrey Richter: Bill Gates

Q: When will Longhorn ship?
Billy Hollis: Q3 2007
Yasser Shohoud: 3 years after Whidbey so Q2 2007
Juval Löwy: Q2 2007
David Platt: Q1 2008
David Chappell: Q2 2005
Jefrrey Richter: Q1 2007

This concluded the Software Legends day.

I then went to the Microsoft Certified Night from 7h00PM to 10h00PM. The people running the MCT program were meeting privately the trainers attending the conference. Since most of the stuff discussed there was private and applied for trainer only, I won’t report too much stuff here. If you’re an MCT, send me an email because they were great pre-announcements about the 2004 MCT program. One thing of general interest is the skill assessments. It’s a set of test to assess your current knowledge on different topics regarding Windows Server 2003 and Visual Studio.NET. It’s neither a certification process nor exams to prepare your self for passing certification exams. You can access the skill assessments at: www.microsoft.com/traincert

Monday, June 2

Paul Flessner’s Keynote
The first day of the conference started with a keynote from Paul Flessner, Senior VP Server Platform. Paul said that actually, 70% of the IT budget is on sustaining and running existing capabilities while 30% is for adding new capabilities. That should be more like 55% he said and Microsoft is working hard to lower the TCO.

A few announcements were made :
-The availability of Exchange Server 2003 Release Candidate 1
-The SQL Server 2000 Reporting Services
-The Beta version of BizTalk Server 2004
-SQL Server 2000 Developers Edition will retail for 49$
-Windows Storage Server 2003

SQL Server 2000 Reporting Services is a report writer for SQL Server 2000. You can design reports right into Visual Studio .NET and the reports can be viewed in different formats like HTML, Word and PDF. Hummm, what will happen of Crystal Reports? Reporting Services will be available at the end of 2003. No pricing yet but I may have heard somewhere that it will be included for free with SQL Server 2000.
Speaking of good news for developers, the Developers Edition of SQL Server 2000 will retail for 49$. Now, there’s no reason not to at least try the product!

Now with the sessions that I attended that day...

Introduction to Office 2003 Info Path
Info Path is a brand new product in the Office family. It is currently in Beta and I attended this session because I was curious and wanted to learn more.
Info Path is a piece of software that helps gather information. At first view it may look just like a simple program to fill forms but it’s more. It solves the fact that for filling Web forms, you must be connected. Info Path allows you to fill forms even when you are disconnected from the Web. It offers a rich UI, WYSIWYG design, a development platform + SDK, it uses XML, can send and read data from BizTalk and can query and updates data via databases or Web Services. You can see it as a smart client for Web Services.
The speaker demonstrated the integration with SharePoint. You can publish to SharePoint and the users can then see or enter data using the form.
Info Path picked my curiosity and I’ll try it when I’ll get back at the office.

SQL Server Yukon, part 1
When, when, when? Well, at the end of 2003 Microsoft will release a private Beta. The public Beta will be released sometimes Q1 2004.
This session was a disappointment. Mostly marketing stuff. Not even a demo. C’mon guys, this is TechEd we want to see some stuff! At least, there’s a session later this week talking about the integration of .NET in Yukon.
Oh, by the way, Yukon is the code name for the next version of SQL Server.

Source Control and Team Development using Visual Studio .NET and Visual SourceSafe
Sometimes, it pays to attend sessions where you know the material being presented. In this case, it confirmed that where I work, we are using Visual Studio .NET and Visual SourceSafe like it should be, following the team development best practices.
So this session was all about team development. The speaker explained a few scenarios for Web development and told the audience that the best one is the isolated one where each programmer gets the files from SourceSafe and works on his workstation independently from the other developers. He also recommended reading the team development best practices paper that can be downloaded from the Pattern and Practices section on Microsoft’s Web site.
Here a few of the tips he gave:
-Assign someone the task of understanding and managing the build process.
-Network latency affects SourceSafe performance and is one of the sources of data corruption.
-Non isolated mode is not recommended because only one developer can debug a Web application at a time.
-The developers should have the same SourceSafe file structure ex: D:\Projects
-For large projects, create multiple solutions under a main one. Compile will be faster.
-You must think about the SourceSafe file structure and be sure of it.
-Match the SourceSafe structure with the physical file structure.
-Use the same SourceSafe version. 6.0d is the latest one.
-Keep the SourceSafe database below 2GB. The SourceSafe archive feature tops at 2GB.
-Shadow folder can slow SourceSafe operations because the files have to be written more then once.
-Have a strong build process (use BuildIt).

The last point is very important and the speaker told the audience about a free Microsoft tool called BuildIt that automate the build process. He then demonstrated BuildIt.

Exhibit Hall Reception
The day ended with the exhibit hall reception. More than 125 companies are present at TechEd this year and this reception is a way to attract the attendees with free food and free beer. Seriously, it’s the perfect moment to take a look at the kiosk, what the vendors have to offer, see interesting software being demoed and get away with a few T-Shirts.

Tuesday, June 3

Tuesday started with Scott Charney, Microsoft Chief Security Strategist. His talk was about Trustworthy Computing. You may not have heard of Scott Charney before (I haven’t). He was head of the cyber crime fighting federal agency. Scott joined Microsoft last year and he is a very good and entertaining speaker.
After talking a little about his background, he talked about what Trustworthy Computing is and how it affects us developers and IT professionals. Trustworthy Computing can be defines by these: Security, Privacy, Reliability and Business Integrity.
Microsoft now applies S3+C to all the products development:
-Secure by design (Security training is now mandatory at MS)
-Secure by default (20+ services and now turned off by default in Windows 2003)
-Secure by deployment (Microsoft has pledge to fix the actual patch inconsistency problem)
-Communication (Be transparent)

Every Microsoft products must now pass thru a rigid security audit process. The cost to date for Microsoft is more then $200 millions.

Microsoft acknowledge the fact that security is also important for the IT professionals, that why they announced today two new networking certifications:
-MCSA: Security (3 networking exams + 2 security exams)
-MCSE: Security (4 networking exams + 3 security exams)
You can find more information about these new IT certifications at:
www.microsoft.com/traincert

Scott Charney closing comments were that security must now be part of our daily routine. Network specialist, software architects, developers must all think security in the early stages of planning.

Next with the technical sessions…

SQL Server Yukon .NET Programming Features
One of the most anticipated features of the next version of SQL Server is integration of the .NET runtime right into the database engine. This will let you call .NET assemblies that you may have coded in Visual Basic.NET or C# from your SQL store procedures. Does this means that TSQL is dead? Absolutely no because you will still use it for data intensive stuff but it you ever need to process data in a way that’s not possible with TSQL, you will be able to call .NET assemblies.
This means that you will be able to push more business logic on the data tier. Is this a good thing? There’s no easy answer for that, I’ll depend on the design of your application.
Your .NET code can be accessed from SQL functions, store procedures and triggers and the way it works is that you must encapsulate your .NET method into a SQL function that you’ll call from your SQL code.

The XML functionalities of Yukon are also greatly improved. XML can now be stores in a new XML data type that can be indexed and searched. Paired with a schema, this new data type is strongly typed. The speaker also mentioned the fact that Yukon can be a XML source accessible by HTTP or SOAP.

Another new feature will be the Service Broker. This enables Yukon to participate in loosely coupled distributed applications. Think queues and messaging integrated right into the database engine.

It will be possible to map data to objects with ObjectSpaces. I first saw ObjectSpaces at the 2001 PDC. It was cool concept that let you to map data to objects. I always asked me where this technology went. Here my answer!

A few cool features of Ado.NET version 2:
-Query notification for cache invalidation
-Parity with ADO (ADOX, etc.)
-Bulk updates
-Paging
-A new class called SqlDataTable

What’s new in ASP.NET 1.1 and Windows Server 2003
When you install the .NET Framework 1.1, all ASP.NET applications that were previously installed are automatically upgraded to 1.1. You can still make an ASP.NET application work with version 1.0 of the Framework by using a command prompt utility called ASPNET_REGIIS.
The Visual Studio .NET 2003 solution file is different from version 2002. If you want to stay backward compatible, copy your project file before opening it with Visual Studio .NET 2003.
ASP.NET 1.1 help you prevent SQL injection attacks by throwing an error if it detects something it doesn’t like (ex: HTML entered in a textbox).
It’s now possible to have secure credentials stored in the Web.Config file. The way it works is that the encrypted credential is stored in the registry. There’s a tool called ASPNET_SETREG (KB329290) that you can download to help you do this.
Forms authentification can now require SSL.
IIS6 was rewritten from scratch. It supports right now IPv6 and Unicode URLs. It caches page more efficiently. You will get the best performance from pages where you set a cache expiration without parameters.

Authoring Reports Using SQL Server 2000 Reporting Services
I missed the first session talking about this new product so it was without too much introduction that the speakers dove right into the process of creating a report with SQL Server 2000 Reporting Services.
The report designer is hosted into Visual Studio .NET 2003. When you save your newly designed report, it’s saved as XML. The format will be published by Microsoft so expect third party designers or utilities.
You can create a new report with the help of a wizard or if you prefer, you can start with a blank slate. Here are a few points that I noted:
-You can create tables or matrices
-You can do charts. Reporting Services will use the Office Web Components (so Office is needed for charting on the user’s PC)
-Expressions use the Visual Basic .NET syntax
-Reports can be interactive (drilldown)
-You can have multiple data sources in a report
-Reports can be generated in a multitude of formats: CSV, Word, HTML, PDF, TIFF

I would have thought that the data sources would be limited to SQL Server (Hey, it’s a SQL Server product!) but no. You can use: SQL Server, SQL Server Analysis Services, OLE DB, ODBC, Oracle and .NET data providers.
Reporting Services will be in Beta in August 2003 and it will be released by the end of that year. It will be included with SQL Server.
I was amazed at how easy it is to create powerful reports with this product. Can Reporting Services bring the fun back to report creation? OK, OK, I won’t push it that far :-)

Hands-On-Lab: SQL Server Notification Services
TechEd offers a series of labs (more then 25) where you can try products and technologies. I wanted to know more about SQL Server Notification Services so I took time to do a Hands-On-Labs on this product.
SQL Server Notification Services is a free add on to SQL Server that you can download from Microsoft’s Web site. I let you develop applications where users can subscribe and be notified of events. The lab scenario is that you are in charge of a realtor Web site and that you want to add this functionality: let users be notified by email when a house meeting their criteria appear on the market.
The lab itself is well done and the instructions are clear and easy to follow. There’s nothing flashy about Notification Services, all the settings are done at the command prompt. I wished that I knew a little bit more of the product before I did the lab. It would have helped me more in my evaluation of Notification Services but from what I saw, I think it’s a great solution and that we can find good uses for it for some or our clients at Nurun.

MCP Party
The Microsoft Certified Professional party was help at TBC Indoor Kart Racing. To be admitted, you had to be an MCP. It was a fun evening where you could try your hand at kart racing. Of course there was free food, free beer and lots of prizes (humm, I think there’s a pattern here). The place was packed with MCPs and the master of ceremony asked who the earliest MCP in the crowd was and who the newest was. It’s easy to check that because MCPs are assigned with a unique chronological number. The MCP earliest in the crowd had number 1149. To give you an idea, I was certified in 1998 and my MCP number is in the 437 thousands. The earliest had just passed his first exam today. The master of ceremony also asked if any one had passed some of the security exams that were launched in the morning. Guess what, two people did those exams during the day and were now security certified. Talk about dedication!

Wednesday, June 4

Boost Your Data Driven Application Development Using SQL Server Centric .NET Code Generator
The speaker was a .NET developer’s evangelist based in Marseille, France. His talk was about a tool called Olymars that he built. This tool is a code generator for SQL Server database access. It’s not your average Wizard that generates low quality code. Olymars generates production quality code and it’s in use by a large number of Microsoft customers in Europe.
You have the choice to generate:
-Store procedures (add, update, select, delete)
-One C# class per store procedure
-Windows Forms or Web Forms controls mapped to the data
-Windows Forms or Web Forms both with basic UI

Olymars generates also a batch file that you can launch at night if you project requires it and it’s possible to extend it with add-ons to create:
-Business components (objects mapped to the data)
-Treeview factory
-Web Services
-ObjectSpaces type of objects
-.NET Compact Framework database code access

If it wasn’t enough, Olymars is fully customizable with the help of templates. This way, if you don’t like the output, you can tweak it to your own preferences or coding style.
Olymars is free but it’s not supported. Right now, you can download it from Microsoft France Web site but it will be available on MSDN in a few weeks:
www.microsoft.fr/olymars

The current version is SQL Server centric but version 2 will have the concept of data providers so you can write your own for Oracle databases even your custom XML files. By the way, where the name Olymars came from? I’ll give you a hint: the city the speaker cam from.

Software Development Best Practices with Microsoft Solutions Framework
The focus of this session was to introduce the attendees to the Microsoft Solutions Framework (MSF). MSF is a methodology for IT projects that gathers Microsoft best practices. Do you know that 71% of all IT projects fails, come over budget or run past the original deadline? MSF offer guidance to be more successful in delivering IT projects.
It was a fun introduction to MSF, the speaker was very interesting and MSF is one of the things I look forward to investigate back at work.

Focus Group and Microsoft No Limits Tour
After lunch, I attended a small focus group with Michael Stevens of Sams Publishing. Michael wanted to know more about developers (yes, that strange animal!), their needs and what they like and don’t like about IT books. It was a fun and interesting discussion.

Next to the Sams booth was a nice trailer with a Champ racing car beside. I couldn’t resist taking a closer look. Teeg Stouffer explained that this setup was for the Microsoft No Limits tour that is visiting American colleges and universities. They gathered data from an actual race, stored the information in a SQL Server database and played a segment of that race simultaneously displaying and analyzing the data like you would in a normal race. There was a leader board developed in C#, a VB.NET program that displayed TV overlay data like you would see on TV, even a simulator where you could try to mimic what the driver was doing in the race. A pit section displayed hardware that you could use in a real pit like Tablet PCs and Pocket PCs.
The No Limits Tour goal is to attract college and universities students to IT by displayed cool uses of technology.

Extending the ASP.NET Runtime
This session focuses on it is possible to customize and extent ASP.NET by coding HTTP modules, HTTP handlers, and using HTTP context. It was a level 400 session and things went pretty fast. Here are the highlights:
-The thread pool is managed by the CLR. If you are calling COM components, make sure to add the ASPCOMPAT=”true” directive. This way, you’ll get better performance because the page will run on a separate COM+ single thread apartment (STA) thread pool.
-You can put code directly into ASHX files. No need to compile, ASP.NET assigns this type of file to HTTP handlers and will compile it at runtime.
-.Although possible to create asynchronous modules and handlers, it is not recommended. It might even slow down execution.

Project Management for .NET Developers
The last session of the day focus was on project management. It was a short 101 intro on the tools you need to manage small projects and small teams. The speaker explained the basic documents you would need and a few concepts. Basically, you need a project definition document, a schedule and a communication plan. For the project definition document, he showed a nice Excel file where you had to fill the blanks. The schedule was made with Microsoft Project of course. The comment is made about schedules was not to go too granular. It’s of no use to assign 1 hours tasks for a 4 weeks projects lets say. As for communication, the speaker has come to like very much SharePoint Services that will be available free for Windows Server 2003.

Developer Party
Two parties took place that evening, one or IT professionals and one for developers. I attended the developer one that was help at Eddie Deen’s Ranch. The theme of the party was a Mexican fiesta. Again, free food, free beer (and margaritas) and lots of prize (humm, that pattern again). The evening was entertaining with lots of activities like bull riding, calf roping with a lasso (a mechanical calf that is), mariachis, a very good live Latino band and even armadillos racing. Heeee Hahhhhh, welcome to Texas my friends!

Thursday, June 5

SQL Server Tips and Tricks for DBAs and Developers
The first session I attended on Thursday was a tip and tricks SQL Server one. The first tip was how to prevent accidental tables drop by using schema binding views. A schema binding view is linked to one or more table. This was, if you try to drop a table, SQL Server will complain, therefore rending accidental tables drop impossible (well, at least you’ll have a warning).
The second tip was about sort order. Sort order is set at the SQL Server installation where it will default to the one used by the OS it is about to be installed on. You can change it at database creation and table creation. But what if you want to specify a different sort order? Do you know that it’s possible to specify a sort order directly in a query?
The third tip was about constraints. The speaker told us not to use the No Check switch because it will slow queries. By using the With Check switch, SQL Server will validate all existing data as soon as you save the constraint.
The fourth tip was about raising errors. The speaker demonstrated that it was possible to send a localized friendly error message to the user. The language is set at the user’s creation.
The last tip was a set of very large databases backup best practices. Basically, the speaker told us to use file groups to help speed the backup process.

Developing and Operating ASP.NET Applications: A Case Study of www.asp.net
This was a very interesting session because the speaker is a member of the www.asp.net team and he had some real life stories and tips to speak about. He first told us a little about the site and listed some stats. The site is composed of more then 4,000 files, has more then 105,000 visits per day and more then 16GB is transferred each day.
At first, the hardware that ran the site consisted of a hardware load balancer, two dual Pentium 500MHZ processors Web servers and a dual Pentium 750MHZ processors SQL database server. As the site grew, the bottleneck appeared to be the database server. The problem was that the OS, the databases and the logs where located on the same disk and I/O was not good. The hardware was upgraded and the site now runs on two dual Pentium 2.2GHZ processors, 1GB RAM Web servers and a dual Pentium 2.8GHZ processors, 2GB SQL database server. The biggest difference is the way disks are setup on the database server. They are now using RAID 0 disks arrays with separate controller and arrays for the OS, the logs and the database. The Web servers at running at 5% utilization and the database server at about 6%.
The speaker mentioned the fact that the site was built by developers and that not being database experts, they made some database design mistakes at first. He recommended a very good book by Ken England published by Digital Press called Microsoft SQL Performance, Optimization and Tuning Handbook. He said that the book was targeted at developers. I’ll check to see if I can get my hand on one copy and review it for you at some point in my .NET book reviews column.
Here’s a list of a few recommendations he made during his talk:
-De-normalized the tables for better performance
-Understand clustered indexes
-Use separate SQL accounts for anonymous access and administrative access
-Do not use Ad-Hoc SQL queries. Use store procedures. This will help you prevent SQL injection attacks.
-Cache aggressively
-Use the DataReader instead of the DataSet
-Try returning multiple resultsets from a single store procedure instead of called multiple store procedures in the same method.
-Ensure all open connections are closed
-Read the white papers that the team wrote. You can download them form the www.asp.net Web site.
-Make sure you turn ViewState off if you don’t need it, this especially true for DataGrids.
-Set the maximum value of virtual memory (800MB) in the configuration settings of the Web application

One thing that surprised me was the fact they are using inline code instead of code-behind. The reason behind this is that if they make a change to a page, they just have to FTP the new version and there’s no application restart compared to compiling and updating the application DLL. Of course, most of the application is already coded in business objects. One note of interest, the business objects never return ADO.NET objects like DataReaders or DataSets; instead, the data is mapped to objects.
One last recommendation: include a robots.txt file in your Web application where you will list file that you want search crawlers to ignore. The speaker gave the example of Google that is crawling their site about one time per week. They were trying to pinpoint a peak in usage and they found that Google was indexing the forums and was following all the links. In the ASP.NET forums, all the posts are cross linked by users. By using that robots.txt file, they have basically told the crawlers to excluded the forums pages.

Bad Time Slot
No, it’s not the title of a TechEd session more what I experienced. I first attended a session targeted at network admins called Troubleshooting ASP>NET Applications on IIS 6 but when the speaker started analyzing memory dumps, I said that was too much for my little developers brain and left for another session.
The second session I tried was Building Web Sites That Take Advantage of Commerce Server 2002 Business Analytics and Preditor Services (what a name!). It was worse, the speaker had cute little dancing characters (à la Japanese) all around is PowerPoints, his laptop was not working so he couldn’t demo and show anything and he was boring. Now you know what I mean by bad time slot.

Architecture and Deployment of SharePoint Products and Technologies
This session focused on how to architect and plan the hardware for SharePoint Windows Services 2003 and SharePoint Portal Server 2003 and yes, it was better then the last two !
If you are not aware, SharePoint Windows Services 2003 will be available for free for Windows Server 2003. It is a set of technologies to create and connect workspaces or workgroups. SharePoint Portal Server 2003 is not a free product. It offer additional capabilities on top of SharePoint Windows Services (are you still me me?).
Both products are build on top of .NET, Windows Server 2003 and SQL Server. They support load balancing (SharePoint Portal 2001 couldn’t be load balanced). One nice feature in a Web farm is that the administration is done one one server and automatically replicated to the other servers in the farm. There’s a maximum of 10,000 workspaces that can be hosted on a single SQL Server box.
For demonstration purposes, the speakers had set up a network of five servers: two Web servers, a cluster of two database servers and a domain controller. The servers were ordinary Pentium 4 1.7 GHZ boxes and load testing using Application Center Test (included with the Enterprise version of Visual Studio.NET) gave an average of 55 requests per second out of this configuration. Not bad at all.
The speaker then showed how to configure SharePoint to have an internal site (inside the firewall) for the users connected to the corporate network and an external site (reachable form the Web) to point to the same site. Interesting indeed.
From what I’ve seen, SharePoint is vastly improved and I can’t wait to set a server at work to test SharePoint Windows Services.

Using MSDE in an ASP.NET or Visual Basic .NET Environment
For those who don’t know, MSDE stands for Microsoft Database Engine. It’s a free scaled down version of SQL Server 2000. It’s limited to 5 connections at a time and it does not come with an administration tool like SQL Server Enterprise Manager you can however manage it from Visual Studio.NET. The title of this talk was misleading as the speaker focused the strategies on how to deploy MSDE with your applications.
A new deployment kit was announced. The kit will be available in Beta soon and we should expect a release sometime this fall.
Here are a few highlights of this session:
-In your installer, use MSI files.
-Up to 16 instances of MSDE can be running at a time.
-Each instance requires 70MB of disk space and uses 7MB being idle.
-You must distribute all MSDE install files in your installation. This limits the deployments to CD based deployments.

Attendee Party
The attendee party was held at Dallas Fair Park. This National Historic Landmark has the largest collection of 1930s Art Deco exposition style architecture in the United States. It is simply stunning.
Microsoft used two gigantic buildings, one where you could find casino style entertainment and the other with modern type of entertainment. I walked through the casino and dozens of table were available to play blackjack, roulette and other styles of casino games. The other building had virtual reality games, bumper cars, a laser gun arena, arcade games and an Xbox section where you could play on plasma screens and on projection screens.
A TechEd party without bands is not a TechEd party. This year, top recording acts Smash Mouth and The Wallflowers appeared live on stage. Smash Mouth was…a smash with their mix of ska, punk, pop, dance, reggae music . This is a real party band and soon, people were body surfing, jumping, dancing, girls dancing on stage and even a few ladies showed theirs….Yes, crazy it was. The Wallflowers played next and people really enjoyed their show.
All this and of course, free food, free beer and lots of prizes (now I know it’s a real pattern!). Check the photos by clicking the picture archive link at the top of this page.

Friday, June 6

Enterprise Solution Patterns Using Microsoft .NET
The first session of the last day was an introduction to design patterns in .NET. Patterns help document simple mechanisms that work, provide a common vocabulary and help you reuse. Microsoft has published 27 patterns to date that you can find in the
msdn.microsoft.com/practices Web site.
The speaker introduced what patterns are and explained some abstraction models. It was an informative introduction to patterns. I strongly encourage everyone to visit Microsoft’s patterns Web site and take a look at some of them. You can download them in PDF format. Some of them are also available from Microsoft Press.

Building High Performance Web Site Using Commerce Server 2002 and Content Management Server 2002
As if building a Web site with Commerce Server and Content Management Server wasn’t a daunting task, architecturing and planning is also a challenge. The speaker explained how to get the maximum performance from such a site. Here are some of the points he mentioned:
-MSIB has very good documentation on how to plan hardware.
-Get the best I/O by using RAID 10 or mirroring (not RAID 5).
-Get the best CPU possible for the Web servers. Commerce Server is a CPU hog.
-On Windows 2000, there’s no benefit of using a four processor server.
-The data warehouse server requires lots and lots of memory.
-Use Microsoft Operation Manager to monitor the site. MSIB 2.1 includes a management pack.
-Use output caching.
-Minimize the use of the content connector.
-Minimize the basket views.
-Try to reduce the page size and don’t use dozen of small images.
-Latency in the US network is about 60 milliseconds compared to 400 milliseconds overseas.

The speaker then explained that business people can’t understand why a high level Web site can cost so much. He said that by doing a transaction cost analysis (TCA), it was possible to determine the cost of a transaction. He showed an Excel template that Microsoft published to help people do TCAs. Lastly, he mentioned that the next Commerce Server service pack (available around October 2003) will allow developers to use Visual Studio .NET 2003.

Integrating Microsoft Content Management Server with SharePoint Technologies
My last TechEd 2003 session was one talking about the integration of two server products: Content Management Server 2002 and SharePoint Portal Server 2003. The integration will be possible by using the Content Integration Pack Version 3 that will be available at the end of 2003. The speakers demonstrated a very early build of the pack. They showed how to publish content from CMS to SharePoint, how to publish SharePoint content to CMS and how can SharePoint index CMS content.
The goal of the team behind the integration pack is to make the servers integration seamless as possible.

Interesting TechEd facts
For you who want more information on TechEd, I gathered here a few interesting facts. TechEd 2003 is significantly larger than 2002, with approximately 9,000 attendees, a 29 percent increase over 2002. In the Expo Hall, there are 250 partners, up 47 percent from 2002.
TechEd 2003 features a huge jump in the number of sessions offered from 2002: there are 60 percent more sessions -- 417 this year compared to 260 in 2002. To accommodate the additional 150 sessions, TechEd is a day longer.
38% of the attendees are IT professionals, 21% are developers, 18% are architects, 13% are business professionals (such as trainers and consultants), and 9% are executive management.
The ratio of technical staff to attendee is 1 staff member to every 5 attendees! You find technical staff members speaking, proctoring the hands-on labs, and waiting to answer your questions in Ask the Experts.

It's 4:30 a.m. and275 tired caterers are converging on the Convention Center to start setting up for another day.
Start with 500 gallons of coffee. Add 4,200 Krispy Kreme donuts. And that was just Monday. TechEd food and beverage manager Jeri Dixon said 60,000 bottles of water and 40,000 cans of soda will get chugged this week. Those mountains of fruit? Almost 30,000 pieces will be consumed before Friday balanced out, so to speak, by 15,000 Twinkies and other snack items. If you're trying to watch your weight, you won't want to pick up one of the 10,500 candy bars that will be set out this week - or the 42,000 ice cream items.
Marveling at the size of the lunchroom? It's set to serve almost 8,000 - and can move through 5,000 people in the first 20 minutes. Finally, this last item probably won't surprise you: Dixon said TechEd attendees are well-known for their high caffeine consumption: huge quantities of coffee in the morning, equally hug quantities of drinks like Coke and Mountain Dew in the afternoon.

TechEd 2003 Highlights
For me the highlights were:
-Windows SharePoint Services because it is so easy to set and manage workgroups with it.
-SQL Server Reporting Services. Could writing reports be fun again (was ever it?)
-Olymars. Maybe too good to be true. I can’t wait to try it.

Final Impressions
I enjoyed giving you reports on the things I saw, experienced and learned at TechEd 2003. I hope you enjoyed them too. Again, thanks to Nurun for sending me to TechEd, Michel Fournier for letting publish this coverage and the Montreal Visual Studio User Group for lending me their laptop. I hope to see you in San Diego for TechEd 2004. In the meantime, the Microsoft Professional Developers Conference (PDC) will be held October 26 - 30 in Los Angeles, California.

 
Guy Barrette 
Guy Barrette is a Solutions Architect based in Montreal, Canada. He is the Microsoft Regional Director for the Montreal region and a MVP for ASP/ASP.NET. He has been working and developing with Microsoft development tools since the launch of VB 3 in 1994. His focus is on Web applications with Microsoft technologies like IIS, ASP.NET, Visual Basic, C#, Visual Studio.Net, SQL Server and other Microsoft tools. He worked on one of the largest and successful e-commerce site in Canada: www.archambault.ca. He's been a speaker at developers' conferences like Microsoft DevDays and DevTeach. Speaking of DevTeach, Guy was the tech chair for the French track in 2004 and 2005. Guy has the following Microsoft certifications: Site Builder and Solution Developer. Guy is also president of the Montreal Visual Studio User Group (www.guvsm.net) and on the INETA (International .NET Association) Relation committee. Guy writes a monthly .NET book review column for the UniversalThread Magazine and he is the Visual Studio Talk Show Internet radio show co-host (www.visualstudiotalkshow.com). Blog: guy.dotnet-expertise.com



Copyright © 1993-2008, Level Extreme Inc., All Rights Reserved
62 Rue Doucet, Petit-Rocher, New Brunswick, E8J 1L3
Telephone: 1-506-783-9007 Email: mfournier@levelextreme.com