Acknowledge
This is the compilation of all Borcon 2004 blogs that I have read regularly during Borcon 2004. All articles in this compilation belong to the authors. Before putting all these articles together, I obtained permission from all authors. Please contact the authors regarding their articles.
FOLLOWING Are The Authors Who Grand Permission To Use Their Articles, Listed Alphabetical:
Serge dosyukov - http://borcon2004.blogspot.com/Euan garden - http://sqljunkies.com/weblog/euang/nick hodges - http://www.lemanix.com/nick/robert love - http: // Peakxml.com/jim mckeeth - http://www.bsdg.org/dave nottage - http://www.teamb.com/davenottage/craig stuntz - http://blogs.teamb.com/craigstuntzjoe White - http: //excastle.com/blog/
I receive no benefit or compensation from any authors, from Borland Corporation or from any other parties for this compilation. This compilation is given to the Borland users. Thank you to all bloggers for their excellent reports. If you find any mistakes, please let me Know.
Table of contents
PRECONCERENCE.
1.1. Tutorial sessions - day 1 - extended and corrected.
1.2. Get Ready for Microsoft .NET Framework 2.0.
1.2.1. Live from Danny's Talk.
1.2.2. Delphi syntax for generics.
1.2.3. 64 bits for the clr.
1.2.4. Danny's .NET 2.0 Talk: Part One.
1.2.5. Danny's .NET 2.0 Talk: Part Two.
1.3. John Kaster's Diamondback Talk.
1.4. Fetch my lino .. and drive me to asp.net.
1.5. ASP.NET 2.0 Overview Session.
1.6. Tutorial sessions - day 2.
1.7. Test Driven Development with Charlie Calvert.
2. Borcon Sunday Sessions and Events.
2.1. Sunday at borcon.
2.2. Borcon Day 1 - Sunday.
2.3. Opening session.
2.3.1. Borcon 2004 is Opened - Short.
2.3.2. Opening ceremony.2.3.3. Unleash the power - from the borcon opening session.
2.3.4. Opening session and opening keynotes.
2.3.5. WHOO! * Happy dance *.
2.4. Borcon Opening Keynote.
2.4.1. Live blogging from the borland keynote.
2.4.2. Welcome Keynote and Reception.
2.4.3. Live from the opening keynote.
2.4.4. DiamondBack At Opening Keynote.
3. Borcon Monday Sessions and Events.
3.1. Borland Keynote.
3.1.1. Monday's Morning Keynote Session.
3.1.2. Monday Morning session.
3.1.3. Diamondback and JBuilder 2005.
3.1.4. Kylix Community Project.
3.1.5. Unit Testing in Diamondback At Monday General Session.
3.2. What's new in diamondback.
3.2.1. What's new in Diamondback - Allen Bauer.
3.2.2. What's new in Delphi with allen bauer.
3.2.3. Allen Bauer's "What's New In Diamondback" session.
3.3. More New IB 7.5 Performance Monitoring Features.
3.4. Microsoft Keynote - from borcon.
3.5. Delphi 8 and SQL Server Yukon.
3.6. Borcon Day 2 - Monday.
3.7. NDataStore.
3.7.1. New Borland Product: NDataStore.
3.7.2. NDataStore.
3.7.3. NDataStore.
3.8. Refactoring with Jim Cooper.
3.9. What's new in the delphi compiler.
3.9.1. What is new in the delphi compiler - Danny Thorpe.
3.9.2. Danny's "What's New In The Diamondback Compiler" session.
3.9.3. What * wasn't * in Danny's DiamondBack session.
3.10. Diamondback Preview.
3.10.1. Diamondback Preview - Tonight Session.
3.10.2. Live from the Diamondback Preview!
3.10.3. Diamondback Preview Session.
3.10.4. Diamondback debugging.
4. Borcon Tuesday Sessions and Events.
4.1. RemObjects at borcon.
4.2. Overview of Interbase 7.5.
4.3. Borcon Day 3 - Tuesday.
4.4. Creating Custom ASP.NET Components with nick hodges.5. Borcon Closing Sessions.
5.1. Borcon 2004 closing session.
6. resources.
PRECONCERENCE
1.1. Tutorial Sessions - Day 1 - Extended and Corrected
Serge dosyukov
From a variety of sessions i .ve choose TWO:
Microsoft .NET Framework Security By Steve Teixeira XML in Microsoft .NET Framework by Robert Love
Bellow Is A Little About Firsti Think It Was A Great Session. Yes, There is Not Enough Time To Cover .Net Security In 4 Hours, But Steve Did Great Presentation.
He Covered Main Aspects of Incorporate Security Context Into your application.next Topics WERE INCLUDED:
set a security for your application code -at design time assemblies security settings. signing, security certificates, & cryptography in your applications security in ASP.Net applications ASP.Net authorization
What is Good About All Such Sessions, It Gives You An IDEA WHERE to Look and what to Expect from Which You Can Elaborate and com with a solution you need.
Note You might be surprised, but you will see a lot of Diamondback (Delphi 9) or Delphi 8 during a sessions which are in any way related to .Net and require some code samples. Almost all demos are done within them. You can see C # or ASP.Net code, Delphi.Win32 or Delphi.Net. I think this is showing a big effort of Borland in promoting a new version of Delphi or Delphi in general. I will encourage you to look at these products today and as soon AS IT (Delphi 9) Will Be Available for Evaluation.
Second session by Robert. Great session! Tutorial provided a basic coverage of main elements on how XML is used throughout MS .Net Framework. All samples was done using Delphi for .Net (Delphi 2005 or Delphi 9.0, I really do not know what it will be at the end, I like 2005 better) Robert cover main aspects of use of XML from application:. reading and writing from / in XML document, validation, and transformation What I personally found handy it is how any Delphi class can.. Be Easily Serialized Via Xml by Using XMLSerializer. It is easy and full customization. Great addition for delphi component streaming.posted by Serge At 2:39 PM
1.2. Get Ready for Microsoft .NET Framework 2.0
1.2.1. Live from Danny's Talk
Nick hodges
Okay, folks, I am sitting here in a conference room with a couple of my TeamB mates. Danny Thorpe is standing on the podium getting ready to give a four hour tutorial on the topic of .Get Ready for Microsoft.Net 2.0 .. I Think in The Interest of Being on The Cutting Edge, I am Going To Give A Shot At Live Blogging His Talk. How does Tath? We'll See How IT GoES, EH? I Have a Personal Rule: if Danny's Talking, i Listen. and now you can virtually .Listen. AS Well. Keep Hitting Refresh, As I'll Be Updating this all Morning.
Things Will Be getting underway here...
Danny is talking on the new Dotnet framework, .Whidbey .. He specifically says he's not talking to the MS marketing slides, but to the technical end of things. (Not a surprise, as Danny does not suffer marketing well, I don ' t thisk ....)
Danny Is Pointing Out That Avalon Will Be Available On XP Eventually, AS It Has Been Decoupled from The Release of Longhorn. Interesting.
Danny Points Out How There Is A BLURRY LINE BETWEEN What C # is and can do, and what the clr / platform does. As a delphi development in the Platform.driving factory for 2.0
Improve Security - MS did a complete audit of their codebase to improve security of the core infrastructure Improve .Host Control -.. I.e. improve the ability to host CLR-based assemblies Improve Performance and memory use..
.
CLR Architectural Changes
Generic Types are probably the most significant change.Large increases in CLR Host capabilities64-bit platforms will be released only on the 2.0 platform, including Intel Itanium II, AMD64Improved Compact Framework support - less .Hackish particularly for the design environments Danny says.. That borland is .very keen. to support the cf in delphi
C # language changes
Generic Types, Partial Classes, Anonymous Methods, Yield Iterators
Danny points out again that there should be a clear difference between CLR features and C # features, but that the line is alway blurred, especially in the press. He is showing us an example of C # generics, and discusses how they can actually improve codegen and code savings. Danny says Delphi will implement the 2.0 generic model. Methods will be able to declare generic types as well. Danny says that the Delphi syntax will look almost the same as the C # syntax. Generics will allow things like generic TList implementations to manage specific types and reduce the amount of typecasting needed to manage lists of pointers, etc. This will be really cool I think.Anonymous methods: I confess I can not understand exactly what this is It seems like a different kind of polymorphism, where. You can Declare a Method That Will Get .filled in Later. Sort of Like an Abstract Method.
Partial Classes: You can split a class in half, with multiple source files implementing parts of classes You'd then separate out machine generated code from user generated code (Think of, say, the ugly .InitializeComponents call that does what the... DFM in Delphi does. that code would end up in a different file that would be .hidden. or whatever. code folding apparently is not good enough here. ;-) in other words, your event handler code would be in one file, and the changes made in the Winforms designer would get put into another file Another good example is, say, an ActiveX generated unit that you might modify, and then lose your modifications when the file is regenerated (Editors Note:.. This is the kind Of Thing i Hate - this is a lot of work just because c # HAS this crappy model and no dfm files.)
This also means that ASP.NET will have a sort of .code-beside. Model, instead of .code-behind .. Partial classes will be used to augment your source. The ASP.NET framework will actually have total access to your classes , because they are declared as partial classes.New Iterators:.. The ability to .yield back in the middle of iteration to present data to the caller Think about the ability to iterate over a dataset, with the iterator being able to return each row .
VB.Net Language Changes
THEY WILL Be Able To Access, But Not Defee, Generic TypeSpartial Classesoperator OverLoadingXML DocGGGEnEdit and Continue Debugging (YUK! IS IT JUST ME, or is this a catastrophically bad idea?)
I'm not going to bother talking about the C Language changes. I find .Managed C . To be one of the ugliest, silliest ideas in all of the programming world, so let's just pretend that it never happened, okay?
Danny Is Now Entering Into the Will Dewitt / Dennis Landi Portion of The Talk, and Discussing The 64-Bit End of The 2.0 framework.
The JIT compiler will compile IL code to native 64 bit instructions for AMD64 and Itanium-2, but not Itanium-1 Need to remember that SizeOf (Integer) <> SizeOf (Pointer) Can PInvoke into unmanaged Win64 code Will have IL Binary portability ( IE you can take a binary from machine to machine, and 32-bit to 64-bit)
Danny's pointing out that Delphi will support the CF framework and the 2.0 Framework as soon as possible, but that they are in beta, and thus a real moving target. He points out that with the 1.0 framework, the metadata streaming was totally changed late in the beta, and something like that causes big problems for folks like Borland. They plan to do a Delphi release that will synchronize with the 2.0 framework when the 2.0 framework is released. Danny expects that to be .summerish. in 2005.He's now talking about how generics might be implemented in the Win32 compiler He thinks that they might be able to do it -... they have a plan They'll implement it in .Net first, and then give it a look It will probably be a Sub-set of the .net version, and not a completion.
ASP.NET 2.0
Declarative Databinding - now you have to write code to do databinding 2.0 will have declarative databinding It's data-driven, but still some code Provider Model -.... Drop a module in to do a specific service For example, a login provider . There's canned stuff in the framework, but you can define your own Another example -. credit card management, catalog management Web Parts -. Portal / personalization functionality you can move stuff around, skin the colors, etc. Master Pages - easily define a Master Page and a Theme for your application. Easily separate / decouple this from code. Themes will tie into the CSS stuff, allowing you to easily manage that for the user, or have the user manage it himself.
Okay, Back from the break:
YUKON / SQL Server
It will host CLR code in process, allowing you to build assemblies to do the storedproc thing instead of SQL Why? Gives Yukon lots of security and control over data access Will not even look at code that does not PEVerify You can define your own complex field types in your assemblies. Want to add flexibility and dynamic functionality and while at the same time providing security. Yukon is practically an operating system unto itself. Takes over CLR Memory allocation, CLR Exception Handling, and the CLR Security Model, Thread scheduling Yukon will inspect all managed code to ensure it can be executed. If you do not pass, you do not load. Will abort your code .at the slightest provocation. Yukon prefers that your code not have any global, static information / variables to prevent having interprocess communications. It prefers object instances and stack variables Yukon will require the 2.0 framework, and will not do 1.1 at all. This is definitely a move by MS to move into the Enterprise space. They Definitely Area Targeting Orcacle Here The Yukon Team IS Pushing The CLR FOLKS To Be More Scalable, Secure etc. Danny Notes That Yukon Is Having A Real Positive Effect On The Clrcompatibility With 1.1?
Theory is that .Net will get rid of DLL hell. But this has not really been tested until there is a totally binary incompatible version of the framework out there. That's coming, though There should be very few source code incompatibilites. The 2.0 framework SHOULD HAVE ALL THE EFFECTS, HOWEVER. 1.x and 2.0 should side-by-side ing............................................. up to bind against 2.0, but .caveat emptor. you can right now tinker around with the 2.0 platform if you rebuild the Delphi RTL to work agains the 2.0 framework if you rebuild the Delphi RTL using the command line compiler. The Delphi compiler can only Compile Against a Given Platform.What Does this all mean for you?
Danny recommends that if you are starting a project today, you should work against 1.1, but keep an eye on 2.0. Obviously something like generics is going to change the way that you do things. Some of the interoperability rules change, for example. New stuff will change the way you debug, probably. Think about debugging a partial class, for example This is a 2.0 release, not a 1.0 release. .We are out of diapers .. This has gone through a lot of code review There will be Application Versioning Concerns. You NEED TO REALIZE IS OUT THERE, AND May Affect Your 1.1 Apps, Even wegh it isn't supposed to. ;-) danny points out this 2.0 means a lot more to ms Than it does to us. yukon Using 2.0 in A Big Way. It's Ms's Push Into The Enterprise Space. Good for Developers, Because CLR Gets Stronger, More Scalable. .microsoft Is Betting The Farm on 2.0. Says Danny.
Posted on Saturday, September 11, 2004 9:27 AM
1.2.2. Delphi syntax for generics
Robert Lovei Am Sitting in Danny Thorpe's session on CLR 2.0, and Did Not Want To Wait To Post this Little Tidbit. Mentioned That this Would Be in the product.
Delphi Syntax for Generic Types Will BE:
Typetfoo
Function Tfoo
Varfoo: Tfoo
Posted on Saturday, September 11, 2004 7:46 AM
1.2.3. 64 Bit Changes for the CLR
Robert Love
JIT Compile Il to Native 64 Bit Instructions, Will Be Optimized to Specific Processor Type.
Sizeof (Pointer) <> sizeof (Integer)
INTPTR TYPE 64 BITS WIDE
P / Invoke Only Works Into Unmanaged Win64 Code.
Delphi Note:
Delphi 8 with Winform's Work Fine with no change.
Delphi with VCL Will Need Some Changes. Specification As Cardinal (32bit) In Many Places and It's Size Changes. So this Needs to Be Addressed Before The Vcl Will Work On 64bit.
Posted on Saturday, September 11, 2004 8:46 AM
1.2.4. Danny's .NET 2.0 Talk: Part One
Joe White
Covering Danny Thorpe's Preconference Tutorial on .NET 2.0. This is The First of Two Parts (I'm Writing this during the break).
.NET 2.0 IS A TOPIC That's Already Been Covered Fairly Exhaustive by Microsoft and Others. And Yet, I've Already Taken Two and A Half Pages of Notes.
Highlights So Far:
Diamondback will not have any of the new .NET 2.0 features. It will target .NET 1.1. The version after Diamondback will support .NET 2.0 new stuff, and will come out about the same time as Whidbey ( "summerish" 2005).. NET 2.0 Delphi will support generics and type inferencing, and may even push the envelope. .NET 2.0 Delphi will probably have to support partial classes, because ASP.NET 2.0 requires them. Delphi generics may work on Win32, but will probably only work with Interfaces and Maybe Classes.more Detailed Notes Follow. They May Bore You.
You can compile against .NET 2.0 today in Delphi 8. There's a compiler switch that lets you specify which runtime version to target. Danny is talking technical, not marketing. Microsoft is giving a .NET 2.0 presentation later in the conference, and they got in touch with Danny to ask if their content would overlap. He said no, that would not be an issue. .NET 2.0 will be the first binary breaking change since .NET was released, and will really test Microsoft's versioning features. Features and schedule really driven by Yukon 64-bit stuff: MS will not release 64-bit support in anything earlier than .NET 2.0, even though they've got it working Itanium 2, but not Itanium 1 (MS jokes that they have the largest installation of Itanium 1 machines in the world, and they're not going to support it) Assembly needs extra header flags to run as 64-bit ( "I actually tested this and I know what I'm doing" flags) Otherwise emulated (interpreted !) 32-bit Mode Delphi Will Support 64-Bit-Capable .NET (i. e, it can set these header flags) P / Invoke will bind directly to 64-bit APIs 32-bit WinAPIs will not even be accessible Delphi will support generics in the 2005 timeframe Type inferencing:... No coding done yet, but Danny does not anticipate problems Anticipates pushing the envelope Better constraint syntax (as opposed to C # 's "where" that looks like SQL) .NET lets you, and Delphi will let you, define both TList and TList in the same scope C # has a syntax ambiguity That delphi will not: class boo {...} void foo (system.type x) {...} void goo (bool x) {...} foo (boo); GOO (a
. S parsing the input, it does not know what the tokens mean Delphi will not have that problem, because it knows that Boo is a class name and a is a local variable: there is no ambiguity Anonymous methods:. Evaluating; don 't know if Delphi will have Same for iterators partial classes: ASP.NET 2.0 will use "code-beside" using partial classes (not code-behind as in 1.x) So Delphi will probably need partial classes; Danny thinks it can BE DONE, EVEN WITH TOP-DOWN PARSER SYNTAX: WON 'Call The "Partial" Side Note: VB.Net 2.0 Won't becoming to declare generic type! Side Note: D8 Already Supports XML DOC Comments Edit & Continue: Last Word Was, Can't Edit Currentscope, NOR Anything On Stack! (Makes It Kinda Useless, Doesn't it?) C # Won't have it delphi will wait and see. ... OOPS, Danny's About To Start Again, i 'Ll Post More Later.posted On Saturday, September 11, 2004 10:29 AM
1.2.5. Danny's .NET 2.0 Talk: Part Two
Joe White
Covering Danny Thorpe's Preconference Tutorial on .NET 2.0. This is the second of two parts (the first is here).
Nick Was Blogging Danny's Talk During Danny's Talk. Either He Found An Outlet, or His Laptop Has Waaay Better Battery Life Than The One I've Got. So His Blog Entry Is Also Worth a Read.
Okay, Picking Up More Or Less Where I Left Off Before The Bio Break:
POGO (profiler-guided optimizations) Why it matters:. 64-bit processors have a big penalty for branches (lookahead and all that) POGO tests the app under real use, and if one branch is called 10x more often than the other, it changes the emitted code to adapt. Might even move code around to keep the most-common stuff together. Will only be available for Managed C (it's not clear why) MS will not license it out, so Delphi is out of luck (and SO IS C #) Pointless Side Note: The Delphi / Win32 Compiler Has A NativeIVE. IT'S Going Away. Delphi for .NET WIING Support 64-Bit Processors, But Vcl for .Net Does Not in 64-bit , OS handles are 64-bit There's still some code in VCL that has them as Cardinal As part of the fix, compiler will probably add warnings if you try to assign a handle into a Cardinal or an Integer, so third-party code can be Fixed Easily .NET 2.0 Will Have Tryparse Methods (Hooray!), Because Yukon (a) Doesn't Like The Overhead of Exceptions, And (B) RESERVES TH e right to terminate running code if it throws any exceptions at all Note about CLR hosting:! Load the runtime once into your process, and it sticks So you'd better know which runtime version you want when you start up Other notes: Host can remap assembly bindings (ask for Studio -> remap to a request for a D8 assembly) In 2.0, memory allocations will go through the host first, then the OS (because Yukon is really its own OS: it allocates all available memory, sub- Allocates it to the clr, and uses everything That '
s left for various forms of caching) In 2.0, exceptions also go to the host first (because Yukon wants to be able to terminate immediately if certain bad exceptions happen) In 2.0, threading goes through the host (because Yukon does not use threads , it uses fibers) Diamondback = .NET 1.1 There will be a 2.0 Delphi release in the Whidbey timeframe On generics and Win32: Reeeeally do not want to codegen Win32 code at runtime generics may exist with restriction that T must be an interface (or maybe a class) Do not know whether generics will be in first 2.0 release The Whidbey-timeframe Delphi compiler may not support iterators or partial classes for Win32 ASP.NET 2.0: Provider model: "I am your login genie if you need login. Services, Cookies, ETC., COME TO ME "Web Parts: Customization A La My Yahoo! Master Pages (Hell, I Was Doing this Back In 1.0, with a usercontrol for the page header, annother for the point footer, and a handler In Global.asax To Insert The Into Every Page Editorial Not E: ASP.NET 2.0'S CODE-BESide Model Will Make A Lot of Users Very Happy, Because They'll No Longer Be Forced to Make All Their Fields Protected (AND get Yelled at by fxcop). Yukon Doesn't Like Static Variables Each Request Should Be Isolated from The Other Requests Static Variables Also Introdunce Opportunities For Memory Leaks Problem: All Delphi-generated code Has Static Variables, Because That '
s how class types are implemented Need to relax this rule in Yukon in order to use Delphi code Yukon will only support .NET 2.0, not 1.x (not surprising, given that most of 2.0 was a drive to make .NET meet the standard set by the Yukon team) Compact Framework in Diamondback It should work, but you may need to use the command-line compiler Unless a miracle occurs, there will be no designer, because MS's designer is still screwed up and not ready for release Delphi 8 will not work in CF because of the way Delphi tries to ensure deterministic unit initialization order (calls RunClassConstructor, which does not exist in CF) Diamondback will try to load that method, and if it does not exist, will still let the app run (but will not guarantee unit initialization order) As reported recently, .NET 1.1 SP1 breaks Delphi 8. Danny anticipates a fix by next week. mscoree.dll Every managed app has an unmanaged entry point that calls mscoree.dll, which Looks at Your Exe, Loads The Right CLR Version, And SE NDS you on your way t on 一 m t w b @ @ @ @ @ @ @ @ @ @ You you install .NET 2.0 Beta, It overwrites mscoree.dll (no problem) . When you uninstall, it does not put the old mscoree.dll back (problem). .dcpil, .dcuil files have references to the Framework, and are therefore not platform-portable. to use D8 with .NET 2.0, you first have to recompile the D8 RTL GC note:. Each thread has its own heap, so there's no thread contention for the heap Interesting.And there you have it much info, much trivia, and I did not blog the stuff I wasn '.. TIINTERESTED IN, But this sales beof. Share and enjoy.
I have another three pages of notes about John Kaster's talk about Diamondback, but I'm going to go get some food, and blog about his stuff later (I will write about it later;. Whether I blog about it tonight or tomorrow depends entirely ON Wirelessness.) Posted on Saturday, September 11, 2004 6:27 PM
1.3. John Kaster's Diamondback Talk
Joe White
Covering John Kaster's Preconference Tutorial On What's New in Diamondback (That Which We Dare Not Call Delphi 9).
THIS Talk WAS YesterdayAfternoon, But There Wasn't Enough Convergence of Wall Power And WORKING WIRELESS TO POST IT UnTil Now. So, Here Goes.
Before he even started the session, I caught a glimpse of Diamondback running on his machine The first thing I noticed was that there are three tabs at the bottom of the editor window:. "Code", "Design", and "History". Very Intriguing.
His Handouts WERE Hefty. 65 Sheets, 128 Printed Side Front and Back. The First 19 Pages (Not Counting The Cover Page "...
Head to Rush A Fair Bit To Cover What HE DID. (PiTY, 'Cause There Was Some Really Good Stuff. I wish they'd split the not-real-delphi stuff , Like ASP.NET and ECO, INTO A Separate Presentation To Give Him More Time.)
Once Again, I Had Two and A Half Pages of Notes Before The Break. Once Again, I Only Added Another Half Page After The Break (When He Was Covering Asp.Net and Eco). Good stuff, though.
Still No Official Word on Timelines, Not Even "You'll Hear About It At The Opening Session", SO I Assume That (a) It's Still A Ways Off and (b) Management Has Sent Out A Decree That Thou Shalt NOT Discuss Release. It's too bad. If they us selling diamondback today, there's no quothes IN My Mind That We 10 Upgrade Everyone In A Heartbeat.
Officially confirmed: Diamondback will support Delphi for Win32, Delphi for .NET, and C #, all within the same IDE You'll even be able to put Delphi and C # projects into the same project group I know that Sam, Brian, and.. I will all very much appreciate this He showed videos from folks who could not make it but had demoed their features ahead of time These videos will hit BDN around the time Diamondback ships IDE look & feel improvements:!.. Object Inspector, tool palette Delphi Direct goes away. Instead, the BDN news feed appears on Welcome page. you'll be able to add your own feeds Even John K turned Delphi Direct off! Sweet! The Locals view will allow you to change which stack frame you're inspecting! The "An exception has occurred" debugger dialog will have a "Do not show this exception class again" checkbox "log call stack" breakpoint action Color-coded event log Built-in IDE QualityCentral reporting The CPU view will show the source , The IL, And The x86 Code! (Holy Cow, That'll Be Cool. Visual Studio Can Show The Source and the x86, but can't show the il!) Side Note: Vcl for Win32 Does Not do unicode, and there no plans to add it. for people who need unicode vcl in Win32, he suggested the free TNT controls, and said they have the Danny Thorpe Seal of Approval Wavy red underlines for compiler errors;. hints showing the error message Refactoring (! whoo) Rename Extract Method Knows when to, and when not to, use var parameters DON '
t know whether it can do out parameters or function returns Extract Resource String Picks a default name for the resource string If that name already exists, reuses the existing resourcestring Sync Edit (select a block, hit a button, and it underlines all the duplicated words ;. click on one and start typing, and it syncs with all the others within the block) Find unit or namespace Declare Field Declare Variable Right-click on an identifier, select "Declare Variable" Smart guesses a reasonable data type Shows a preview of what's going to be changed, and does not apply until you say go All of these work in Delphi for Win32 and Delphi for .NET All except Extract Resource String work for C # Unsurfaced Refactoring API, so there will probably be more refactorings in later versions Find References, Find Local References Not By Name. If the are two differn, this will find Only References to the one you chooseELETADATA AS Refactorin g) Does not go through the compiler, so it's very fast Tool palette improvements Not just components anymore File New stuff is now in the tool palette Incremental search: start typing, filters the list Can drag categories and items around to reorder them, to Optimize The Incremental Search for What You Use Most Ctrl Alt P Focuses The Tool Palette, So You Offen Don '
t even need the mouse Compiler can export XML doc comments Hover over a symbol:. shows XML doc comment in a hint menu, with a stylesheet (HTML formatted, hyperlinks) Unlike Visual Studio, this only works if you have the compiler export the XML doc file. Demand loading of Win32 design-time packages (Allen blogged about the consequences of this decision, but did not say what the reason was) History view Every time you save, it rolls a new backup file you can specify how many levels of backup to keep Diff between versions There will be some level of integration with StarTeam here (but not in the build he was running) D8 Enterprise already ships with a StarTeam Standard license Diamondback will have solid StarTeam integration Browse & open directly from repository File renames are tracked on server New Open Tools APIs, including a syntax-highlighting API Function inlining Several caveats "[C] ompiling the other unit at the same time as compiling the call site (build all) is a different situa tion than inlining a function that was loaded from a precompiled .dcu "(though it's not clear what that means) The compiler can refuse to inline a function Looks like this is mainly for the functions in Windows.pas. It's not clear how useful it . will be for user code Forward declared record types (maybe .NET only; need to ask Danny) Multi-unit namespaces Last segment of unit name is just disambiguation for the compiler, not for .NET namespaces File ABCpas used to go into namespace ABC, But Will Now Go to Namespace Ab New Convention for Globals: Global Foo In Abcpas Is Now Abunits.c.foo He Didn't Go Into Much Detail, But I '
m guessing that if your package has a default namespace of Foo.Bar, and your filenames are A.pas, B.pas, and C.pas (not multipart names), then everything will probably export directly into the Foo.Bar namespace. FOR..IN: (See Also: Danny's Blog Post) You Will Still Have To Declare The Loop Variable in Your 'Var' Section. Many Bcl Classes Will Support For..in (Tlist, tstrings, tfields, etc.) Not in Diamondback / Win32 (but maybe in future Win32 compilers): Nested types Records with methods Operator overloading Custom attributes Generics Multicast events Still no way to put VCL controls on WinForms Come to Meet the Team, Monday night Each dev will show off their favorite features. .posted on sunday, september 12, 2004 11:32 am
Re: John Kaster's Diamondback Talk 9/12/2004 2:02 PM Max
-Not in DiamondBack / Win32 (But Maybe In Future Win32 Compilers):
Nested Types Records With methods operator overloading custom attributes generics multicast events
1.4. Fetch my lino .. and drive me to asp.net
Dave NotTage
OK, IT's a corny title .. so supe me ;-)
I have not touched ASP.NET much yet, but Lino's session ASP.NET:. Fasten your seatbelt has convinced me I should do more This is my first and only tutorial at BorCon this year, and it included a look at Diamondback, which CONFIRMED THAT C # Builder Is Included with it, at Least in The Build shown here.
Some Interesting Points I Note from this session:
MS's Reporting Services -.. Apparently you can throw away all your other (? Web-based) reporting systems This one rocks Something to investigate anyway.Cookie based session management is a thing of the past with ASP.NET 2.0, and it's all built -in.Falafel Software believes it should give away it's web development framework to web developers. How cool is that? Nothing much else to report that I can remember right now. Tomorrow is a rest day for me, other than the opening keynote if I Decide to Go, And the Reception Sunday Night.
Posted on Sunday, September 12, 2004 4:43 PM
1.5. ASP.NET 2.0 Overview Session
Dave NotTage
I firstly apologize for the lack of blog entries. This is my partners first trip to the US, and I wanted to make sure she had things to do and felt safe about going here and there. In addition, a friend of hers perished in an Helicopter Accident Yesterday, So I've Cut My Sessions Down Today To One: ASP.NET 2.0
ASP.NET 2.0 HAS A LOT OF Cool New Features.
There are new classes that help you manage sessions, information about users of your web applications including membership, role management and personalization. It also provides APIs for site navigation, caching of database access and configuration management.
IT Also Comes With an MMC Snap-in for Managing Your ASP.NET Applications, Rather Than Having to make MODS to Web.config.
.Page framework. Features of asp.net 2.0 include:
Master Pages -.. Rather like base ancestor classes (if you like) Override content placeholders to provide customised content Master pages can even be nested Themes / Skins -. Easily change the look / feel of your apps Localization -. For different languages / data formats etc. Adapative UI - allows your app to adapt to the kind of browser the user has, eg a mobile device.Brian Goldfarb whizzed through some demos of the page framework features, from which he built a website complete with site map, login / logout / registration, role managed users, data presentation, navigation and manipulation, all without needing to write a single line of code. Customization of themes at runtime needed just a few lines of code. The sitemap was built by manually editing the sitemap data, However I Wouldn't Be Surprised if this Can Be Done Automatically Through The Ide IN The Release Version.
HE Mentioned That The Build He. Using Is Beta 1, And That Beta 2 Should Be Out Soon.
Something that came out of the demo that has been discussed on the newsgroups before is automatic case-matching. I become annoyed when I see code that does not match the case of the original declaration, however it's something I've been against making automatic IN An IDE UNESS IT WAS OPTIONAL. I'M Rather Warming To The Idea Now :-) EG IF I DECLARE A SYMBOL AS
Foo: integer;
I'd Like the IDE to Automatical Change The Case of References To That Symbol, EG
For foo: = 0 to mylist.count - 1;
Changes TO:
For foo: = 0 to mylist.count - 1;
Posted on Thursday, September 16, 2004 10:14 AM
1.6. Tutorial sessions - day 2
Serge dosyukov
Delphi Tips and Techniques by Brian Long Foundations of Service-Oriented Architectures by KenneTH FAW
Session # 1: Many of us start a day with session which became classic of BorCon Delphi Tips and Techniques by Brian Long I think everybody enjoyed Brian .s British accent; o) As usual we see some nice ways to add homey touch... to your Delphi IDE (such as make visible some hidden menus, make your hints nice and colorful, some undocumented registry keys and more. Because during a session Brian used DiamondBack attendee were be able to feel a new flavor of new Delphi version, see new Features and language extensions.
Session # 2:.. My big .thank you to Kenneth Faw, Pillar Technology Group, one of the favor presenters during BorCon (6 sessions) He did talk about SOA (Service-Oriented Architectures), not a web-service aspects of it (many of us see SOA from this perspective only), but as a full architecture for enterprise applications (remember CORBA?). Even it wasn .t many people during a presentation, I think it was GREAT. My opinion, Kenneth should have this session presented during regular tracks and for bigger auditoria. As soon as people go to enterprise market they start to make (in many cases) same mistakes, over and over & Going through major aspects of SOA architecture, Kenneth included many real life samples of building Enterprise Application IN .NET and Java Environment.
building SOA detailed list of benefits do you have legacy system component - look at SOA architecture defining SOA architecture for your applications use of web-services in your SOA good and bad practices of implementing enterprise application
If you miss a sessions, Talk with kenneth, you will find what you can get Many Good, IT Might Lead to a Consulting Contract with PILLAR TG ... OR Might Be not ...; o) Anyway, IT WAS GoOOod.
Posted by Serge at 1:10 AM1.7. Test Driven Development with Charlie Calvert
Jim McKeeth
Charlie Calvert Presented a Preconference Tutorial on test driven development.
You can get to the presentation, code and notes by visiting www.elvenware.com. This is a subset of the information available there is alone of my impressions and interpretations.
Unit Testing is not tied to any methodology, but it works well with a number of agile methodologies. Related technologies include Patterns, UML and especially Refactoring. In fact you should not refactor unless your code is well covered by unit tests.
A side effect of complete unit tests is they provide a specification and documentation for the project. If the tests are all created first then they provide the specification and measurement of progress on the project. When the tests pass then the requirements are complete, and the tests document the routines. Programmers would rather write and read code instead of specifications and documentation, so if a unit test, being code, provides documentation and specifications then the programmers are more likely to create documentation and use specifications. If the tests pass, and THEY Are Well Designed, THEY Provide Current Documentation.
During the development process unit tests provide rapid feedback since you can run your tests early and often. This can let you know if your changes break another part of the program. It can also provide feedback to the users.
Creating The Test First First First First First First First First, That (Resulting In a Test Fail), THEN Only Adding The
Create the tests first Only tests the required features of the method One test per method is the preferred way There may be multiple checks on the results after the one test per method Create an empty stub for the method Run the tests and it fails the new ones Add only the code necessary to meet the requirements of the test Run the tests again If it fails then correct the method and rerun the tests If it passes then continue - do not add other unexercised and unrequired features Refactor Re-testReasons not to Use Unit Tests
Assuming you already have reasons to use it. Do not read these reasons unless you already have reasons to use unit tests. Do not let these reasons talk you out of if completely, but just so you have your eyes wide open before going in , And Also Are Willing Do What It Takes.
It requires a lot of work as you write one or more test per method, class and procedure in your project. You should be prepared for the upfront time commitment and realize that they payoff will come later. It will radically change the way you write code and the way you do your projects. Testing through-out development instead of at the end. May cause a conflict with managers and co-workers if they do not understand the reasoning behind using unit tests. Unit tests should be easy, flexible and simple, and at first you may not yet know how to do them correctly. They are not a silver bullet. If the code is really bad, or the project is very poorly designed then unit tests will not necessarily fix it.
Unit Testing
SEESN '' Matter.
Tests should be named Test * or otherwise meet a specific syntax as expected by the framework.Automate your tests to run as a console application, then grep the results for failures. Or some other automation where you will be notified of a failure. Tests should Run during the night and multiple Times during the day.
Philosophy
Four Variables
Cost Time Quality Scope
LET YOUR USERS / Management Pick 3 items. The 4th One is the flexible and the development set the level.
XP
Unit Testing is Required for the Other Features of Xp. Eve WRITE TESTED. You Write The Test First, The Code. The Tests Should Run Multiple Times Per Day.
Refactoring is the process of improving existing code. Refactor code to make it simpler and more flexible and reduce the costs of change. You need unit tests before you refactor. Refactoring is about improving design without adding new features.
Keep Code As Simple As Possible. Never Write More Code Than IT Out with The Assumption The IS Complex The Break It Into Smaller PIECES.
90% is easy and 10% is hard. Try leaving this difficult part out based on the concept that it will result in a more stable program in much less time for less money. If there is a choice between coding for a contingency now and doing The minimum dam.
With unit testing and refactoring then dealing with these possible future issues (the last, expensive 10%) can be done in the future at a much lower cost. You may never need that last 10% so you have saved the time and money. If you do need to add it later then you only pay the cost when you need it. Expect change and know that it will come, so you really can not plan ahead (adding features for the future). do it simply today and keep it so you Can Easily Change It Tomorrow. make Little Tiny Changes, Item Development, Release OFTencode That Is Easy to Test Is Easy To Use. It Should Be Encapsulated and UNCOople
Posted by Jim at 9/19/2004 06:59:46 PM
2. Borcon Sunday Sessions and Event
2.1. Sunday At Borcon
Nick hodges
I Just Got Done Giving My Tutorial on Building ASP.NET Controls. I. Hope So. It's Sometimes Hard To Tell. I Was Concerned Going In That I Didn't Have Enough Material, But It Worked Out . almost perfectly I could have used maybe 15 minutes more, but I did manage to at least cover everything, however rushed at the end I was using Diamondback for the demo, and it worked quite well -. only had to restart once, and I shop has tutorial is a lot of work and i'm glad that it is over.;). IT's also fun. I really like to give talks, and get pumped up when 'i i' Always in a good design.
Yesterday I went to Lino's .ASP.NET:.. Fasten Your Seatbelts which was well named Lino started at a hundred miles an hour and did not let up for four hours, entertaining us with his vast knowledge of ASP.NET He's done. Some Really Cool Stuff On His Website with Asp.Net, And Was Kind Enough To Share It All with US, Including The Code. Quite a Good Deal.Because I Went to Lino's Talk, I Didn't Get To See John Kaster Doing T Diamondback talk, where I guess he pretty much pulled back the curtain and showed all the amazing new features. Looks like Joe White has a good summary. What do I like? I like the Refactoring, the History view, SyncEdit, and integrated Unit Testing .
Tonight is the opening keynote. If i can get a Wireless Link in The General Session Room, I'll LiveBlog. Otherwise I'll Take Notes and Post Them After. I'm Hoping That Some of The Questions for Dale Are Interesting and, AHEM, Shall We Say .probing ..
Posted on Sunday, September 12, 2004 2:12 PM
2.2. Borcon Day 1 - Sunday
EUAN Garden
Catching Up with actually posting my blog notes)
Arrived Sat Night, IT WAS A Nice Quiet Flight Down from Seattle, I Was Able To Get A Row To MySelf and An Empty Row In Front of Me So I Was Able To Work ON My Slides All The Way Down, Although IT WAS PRETTY BUMPY Might Have Gotten A Little Carried Away On The Flight As I Have 65 Slides for a 1:15 Session Which Has A Ton of Demos, OOPS.
One of my demos is for the Microsoft Keynote on Monday, I'm doing this with Borland's Danny Thorpe I managed to track him down this morning to chat through the demo (and get some help debugging the delphi code for the demo), Danny's a pretty chilled guy so we discussed some ideas for the demo and decided we will make it up partially as we go along.I must be getting old, I went to check out the MS booth in the show hall and instead of looking to see if we have any cool demos or giveaways on the stand, I looked to see if we had paid for the same .super padded. carpet as last year :-), luckily we do so my back and knees might actually survive doing booth duty for the next 3 Days. However if you are at San Jose Airport on Wed Night I'll Be The One Limping As I am Bound to be in pain by then.
I Bumped Into Lino, Brian and Others from Frafel, They Have Sporting Theme Going On Their Stand this year
SEEMS LIKE NICK HAS BEEN HAVING More Luck WIRELESS THAN ME AND HAS BEEN Live Blogging The pre-conference sessions.
After a short spell on the booth (come and get your free SQL Server 2005, B2 T-Shirt while they last!), We headed off to the Borland Keynote. This is very unlike an MS keynote, it involves the VP for Developer Relations and the CEO getting up to some antics on stage, generally involves a T-Shirt cannon and some awards for customers and partners. This year they showed a video of the next version of their Windows and .Net IDE, even with my glasses on, sitting in the 3rd row it was fuzzy so it might be time for the annual eye test! The new CTO also showed off some long term thinking they have been doing on Software Development Optimisation (SDO) it was cool to see a bunch of BI being used, including some very soothing visualisation hardware. After the session we all headed off for the welcome reception.I headed off for the rehearsal for Rick La Plantes keynote. We ended up doing it in his hotel room, which was bigger than the meeting we Had Booked. THIS WAS The Biggest Hotel Room i Have Eve R Seen in My Life, IT Must Have Had More Square Footage Than My Entire House, Good Job Rick Was Only There for 20 HRS :-)
Danny and I walked through our demo for Rick, plus the Borland and MS marketing folks, everyone seemed happy so we headed out, however we came up with an idea to add to the demo so looks like a late night ahead, it will be very Cool if we can do it though.
List of blom borcon with far more detail than i Have:
Craig Stuntz - http://blogs.teamb.com/craigstuntz Dave NotTage - http://blogs.teamb.com/davenottage/category/138.aspx jim mckeeth - http://www.bsdg.org/Joe White - Http://excastle.com/blog/ marco cantu - http://www.marcocantu.com/development/borcon2004/ nick hodges - http://www.lemanix.com/nick/ Paul Gustavson - http: // www . Simventions.com / Gustavson / Robert Love - http://peakxml.com/ Serge dosyukov - http://borcon2004.blogspot.com/plus the Annual Tradition of DR Bobs Conference Report
Posted on Tuesday, September 14, 2004 10:37 PM
2.3. Opening session
2.3.1. Borcon 2004 is Opened - Short
Serge dosyukov
Borcon is Opened. Some People Was Shoot During a presentation. Just Joking; O)
Great Presentation, Many People, Big Party After, Casino, Good Music by Great Band, Dale Fuller Played Some Music for US AND THROUGH SOME GIFTS TO US.
Read More In Robert's Log Here or Nick's Here. Check Others Logs from a blog list, you will find more.
Posted by Serge At 1:19 AM
2.3.2. Opening Ceremony
Nick hodges
Well, Here I am at the opening ceremonies, Front Row with The Advisory Board Folks. I can't get a live link to the wireless network, so I'll Have to .delay Blog. Tonights Event, Though Those Reading It after the THE AFTER THE Event will get the .live blog. feel.
The main hall is a bit smaller this year, but it is crowded, and there's a festive atmosphere as we wait for David I and Dale to come out. As they always do. There are a couple of trendy looking podiums up there, and I Half Expect David I and Dale To Out and Play A Little Techno-Pop.
David I Has Just Come In From The Back and Is. Working The Crowd., Dancing and Getting US All to Clap. He's Tossing a Few T-Shirts To The Folks, and Just Gave Me A Big High Five! You Haven't Lived until you'd seen David I dance and jump in the air. It is a sight to behold. Two punked-out girls just jumped out on stage and danced with David. I am speechless.There's a pretty cool video playing touting Borland's .Power To create, Innovate, Anticipate, Execute, And Deliver Results .. The Motto this year is .unleash the power .. The Video Was Quite Well Done.
Hey, David I'S MOM IS here. That's Cool!
David I Points Out this conference is one of many. There's The European conference at the end of the year, and one in India, China, France, And Tokyo.
David is touting the keynote tomorrow morning, exhorting us to be there and not to miss it. Tuesday is the obligatory Microsoft keynote, and Wednesday is the obligatory Sun keynote. Might be interesting, you never know. ;-)
The special event is once again the Tech Museum. I am totally fired up for the table full of Hostess products. The man who invented the Ho-Ho deserves some sort of Nobel Prize for Gastronomy. If they do not have that award, they Should Invent It for Him.
David I Just Introducesd Dale. He's Going to Talk ON Borland's .Vision for the Future..
Dale's Talk:
Dale just said .We promised we'd never abandon the developer, and we want to keep the promise. .Code is King. The past and the future is all about Developer Productivity (I am really glad to hear them leading with this. I want to hear this. This is really good stuff for them to emphasize right off the bat.) Dale's making David do a Diamondback demo. David I showed a flash video with some features of Diamondback including SyncEditing, Refactoring, unit testing, and other stuff . Dale points out that Borland has a presence all over the world, including Cupertino, Scotts Valley, Singapore, Atlanta, and St. Petersburg. He points out that they are using their own tools to do distributed development. The future is to build upon .. and link existing and improving developer productivity to improve general business productivity .Software Delivery Optimization is the buzzword of the year I think he's making a good point here:. Because Borland understand developers and recognizes the .value of c ode., Borland can better bubble up from the bottom the tools needed to manage development and requirements. He points out that there are lots of CASE tools out there that .started at the top. and simply do not do the job because they don 'T Understand Code and The Development Process.dale Just Brought Up Pat Kerpan, The CTO. He's Going to Talk About Some .concept Products .. His Stuff:
He has some desktop that I think is trying to show a tool that a big picture view of a project with requirements, estimates, etc. It's pretty cheesy, to be frank. I think I know what they are getting at here, but I ' m not sure. They've got David I's picture up there, and they are morphing his face to indicate how things went on the project. I am quite baffled here. for you Yahoo BORL board types, there's an icon for .Blue Dwarf. On The Screen. Now the area Talking About It. OOPS, Red Ball on Blue Dwarf. There is some Kind of Dashboard Thing with status ball. I don't have one idea what this is. this is real weird. forgive me , but this is really, really strange. What in the world is he talking about? Now there's some music playing. Why? I have no idea. Now he's pulling out Clippy and melding it with RoboCop. I seriously have no idea what is going On Here. He's Done, THANKFULLY. Sorry, But what in the world was That? log.sec corporation won .application of the year ..
Hewlett-packard won an .application of the year. Award As Well.
And SO DID QMEDTRIX for A Delphi Application That Manages Medical Billing Product Called BillCheck.
The Partner Solution of the Year of the Year Goes To Dunn Solutions Group.
(He's A StarTeam Trainer).
..................... ..
The university of the year award goes to carnegie-Mellon. Borland Gave Them $ 1,000,000 Bucks! Wow.
The President's Award. I. The Big Check To An Employee. Goes To Allen Bauer. Very Well DeServed. Allen is A Great Guy and A Dedicated Borlander.posted on Sunday, September 12, 2004 8:26 PM
2.3.3. Unleash the power - from the borcon opening session
Robert Love
I am Sitting in the Front Row of the Open session this year there is all thing table ...i online for us to blog ... ;-)
I am Sitting Next To Marco Cantu, He Has A Camera and You Can See Pictures Of The Session As IT Occurs!
The session started with David I dancing through out the crowd. Then they began tossing Green T-Shirts. David I has never looked better ;-) you will have to check out Marco's Site in a few minutes to understand why.
. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
David Welcome Dale Fuller, CEO of Borland, His 6th Borcon Session Since Starting with Borland.
Dale Fuller Recommitted The Promise His Original Promise Not to Forgot The Core of There Business ... The development!
Dave I .. Showed a Video Previewing Diamondback. Here is what i caught, it is going by really real fast!
Refactoring: Rename Method, Auto Declare Variable Unit Testing Win32 and .Net Change History Window
Dale exerciseed the folowing
1/3 of All Development Projects Are Never Completed. Everything. And Borland's Tools That Focus on Business Are Designed to Improve The Process of getting to the .code..
THE CTO WAS Welcome Out (MISSED HIS NAME)
THEY SHOWED Ideas On How You Might Want To Tracking of Software Development. I Got The Impression That Something Big Was Going to Be Shown Tomorrow Morning.Then They Started to Present The Annual Awards
Customer Application of the Year
Log.sec Corporation HP QMedtrix Systems Inc.
Partner solution of the year
Dunn Solutions Group
TRAINER OF THE YEAR
Tom Margrave ORASI Software Http://www.oraasi.com
Technology Partners of the year
Automated Qa Business Objects (Crystal Reports) Segue Software Woll2woll Software
New award this year: university of the year
Carnegie Mellon's University
THEY RECEIVED A $ 1,000,000 Cheans Able To To Talk After The Award and He Ment That His Students Like To Use Borland Products.
President's Award
Allen Bauer
Allen Seemed Happy The Check Associated with His Award.
Then Dale Came Back Out with the T-Shirt Cannon!
THEY LET US Go for a Party!
Posted on Sunday, September 12, 2004 4:03 PM
2.3.4. Opening session and opening Keynote
Joe White
I'm Posting this a little late, since nick already Posted About this stuff. I'll Just Add on To what he had to say.
Opening session (Sunday Night)
There was the obligatory light show (the lightning effects were pretty cool; I wonder what kind of equipment they needed to make that work), techno music (they should sell the soundtrack), and abstract computer-generated videos (I particularly liked the mood -lit clocks and the plasmafied ASCII). It was interesting to watch DavidI getting bouncy. and the dancing girls were an interesting bit of spice, with their 80's hair, and what could not exactly be called miniskirts. they were really more like mini Denim loincloths.
This is Dale's sixth BorCon, DavidI's 19th, and DavidI's mom's first. (He apologized to her about the dancing girls. It's not clear whether he actually even knew about them.) The new buzzword is "Software Delivery Optimization", which extends ALM. The Yy Basical Or Make It A Continuum:
Build Software (Delphi, ETC.) Build Software Right (Alm: CaliberRM, StarTeam, ETC.) Build The Right Software (SDO)
The basic idea is to extend the process up to the decisionmakers, and make sure they're involved in knowing what the costs and risks are of changes. I'll be interested to see what all they come up with for this.
They pointed out that people have tried this before, with things like CASE tools, but those focused on the business needs and not the code. Borland, being Borland, focuses on the code and grows from there.
I'll Have to See if I can Drag Our Director of Development To Borcon Next Year. There's a fair bit of stuff for him to chew.
Opening Keynote
I Agree with Nick: San Jose Taiko's Performance Was Very Cool. The Song The Started with Was Called "Matsuri", Which Means "Festival".
More about sdo, incruding the skit. I liked the program's Came over and said "good morning": "why is it a good morning? It's 8:28 am. Talk to me at 10:00 "
The Interesting Statistics They Cited:
30% of Software Projects Are Canceled Before Completion 54% Are Over Budget 66% Are Not Considered Successful by Their Companies 90% Were Delivered Late
And the big reason is that management makes decrees that have a huge impact on the timeline (their example was "we need a new feature, and we need to move the deadline up by a month, and we need to take five people off the project ". the end result was" we can do it, but we need to keep those five people on the project ") They also talked about new projects on the horizon:. Project Themis (team infrastructure, coming first half of 2005), Project Hyperion (Visibility and Predictability, COMING IN 12 to 18 MONTHS), AND Project Prometheus (Enterprise Resource Planning, Also COMING IN 12 to 18 MONTHS).
Lots of buzzwords. I hope the offer home good sessions next year. Give US a solid sensor of what this stuff means.
Posted on Monday, September 13, 2004 2:04 PM
2.3.5. Whoo! * Happy Dance *
Joe White
Had to blog this first.
I have, in my hot little backpack, a two-CD set of the Diamondback Preview. They handed them out to everyone after the What's New in Diamondback / Meet the Delphi session tonight Team. (Now are not you sorry you missed the con ?)
New Toy. HEHE ...
Yes, It's Beta, Yes It's Going to Do Some Crashing. But ... refactoring, man. Find References. Sync Edit. Debugging .Net and Win32. Delphi and C # in The Same Project Group. I'm Going to Have Some Serious Fun with this Thing, especially after i get back home.
Oh, and a note for the guys back home:. The Diamondback Win32 compiler still supports old-style objects So we could use this thing's refactoring tools to migrate them to classes How long have we been waiting for that.?
Wheeee ...
Posted on Monday, September 13, 2004 9:40 PM
2.4. Borcon Opening Keynote
2.4.1. Live Blogging from the Borland Keynote
Nick HodgeSwell, Here I am at The Morning Keynote. I'll Live Blog for as long as my battery hold out.
There IS a Wonderful Taiko Drumming Band Performing. I Love Taiko Drumming, And Am Loving It Sitting Right Here in The Front Row.
David i Just Came Out and played with the the! How cool is there! Very Well Done.
David Just Introducesd Boz Elloy. His Topic .maximing The Business Value Of Software ..
Borland's Vision IS:
Continue to Buildware for Software People Continue To Server The Needs of Software Creators Broaden Our Outreach to Help. Software People (Managers, Analysts, ETC.)
More on the buzzword of the day .software development Optimization.:
He Just Promised US a. Orland RoadMap in Some Detail ..
I Like Boz. He Seem Like a Cool Guy.
They are running a little skit about changing requirements on a theoretical .iPets.com. Site. They are showing off their new EstimatePro tool. The Borland System Engineers are doing the skit. It's pretty good, actually. They are funny, but are illustrating ............ .י.......................
I'm Jealous. They area stuff integrated Right Into JBuilderx. Very Slick.
The.............
Boz is back now.
He's talking about how developers are the .gods., Creating something out of nothing. But he does not think we have all the tools that we need to be successful. We have the development tools, but there is more to success in developing software THAN JUST Developments. Software Developers May Not Have The Knowledge To Properly Management and Deploy Software.
Three myths of Software DevelopmentIt's an engineering discipline - we have a ways to go before its truly and engineering discipline It's only about the bits - they have to be the right bits It's different from other managed business processes - It can actually be very Like a Physical Manufacturing process with things moving through the system.
What Has Been Done To Improve and Optimize The Software Development Process? Software Optimizes Other Business Processes, But What About Our Business Processes?
IF you are in business. If you turn off the software, you 's off the lightware, you turn off the lights. Software Must Be a Core Competency for All Business.
Being Good at Software IS:
Increasing the ability to Target and capture opportunities Decreasing the time to production of software Decreasing the risk of software projects and increasing predictability Decreasing the cost Increase the quality
But in Fact, The Industry Is Failing At this. Reasons why:
Competing business priorities and resources Constant change and shorter release cycles Distributed teams and external resources Increased complexity and mixed environments Inability to properly deploy the application
Boz is Talking About a Lot of Good Stuff, But It's Higher Level Management Stuff, So It's Not Really Anyhes That Can Be Blogged Really Well.
Posted on Monday, September 13, 2004 8:47 AM
2.4.2. Welcome Keynote and Reception
Jim McKeeth
The welcome keynote opened with a rock concert theme. Mostly just a welcome out. Dale renewed his personal and Borland's commitment to the developer and writing code. "It's all about the code" was his mantra for the evening.
This is a picture from right before the keynote began. These are the same photos I used earlier, but they came out much better this time. Christine Ellis is right in the middle with the 2 screens behind the large logo, and then the large screens To Either Side of The Stage.dale Comment That More Companies Were Standardizing On Borland's Tools. Borland Tools.
There was a really interesting presentation on the future of software metrics. They took real Star Team data and represented it in interesting ways. They used video morphs of David I, that varied from a devil to an angel, based on the measurement of change requests and code check-ins. They used midi music based on code metrics for submitted code changes. Project status was displayed with ambient orbs. There were a number of the creative ways of looking at development team data.
I actually got a chance to visit with David I. later in the computer lab. He said that the demo actually used real data from Star Team, and the representations were actually based on this real data. Only the user interface was flash. They are Going to Have Parts of It On Display In The Computer Lab, And Maybe A Write-Up ON BDN.
Visiting with David I. was a real treat. He is a very intelligent individual, and he takes software development and application life cycle management very seriously. I had heard a lot of comments from him up on stage, and read his "Sip from the firehose "column, but when you sit down together after a long day around midnight you can tell the conversation is very candid. He is 100% in what he says up on stage and in his commitment to software developers. Borland has a great asset in Him.
A panoramic shot of the whole reception hall. To the left we have the casino tables. Then some food (it was everywhere, and pretty good even), a dance floor with a live band and video games (lots of them, everywhere!) Immediately following the keynote was the opening reception. There was plenty of good food, Casino gambling for door prizes, and dance band (that was rather loud), dancing, and drink coupons. I took some photos and mingled a little bit. I talked To Marco Cantu, Malcom Groves, Dr. Bob, Christine Ellis, Robert Love and Dale Fuller. NOT THAT I Expect Any The To Remember ME.
In my brief visit with Dale he mentioned that most likely there would not be a new Kylix release unless something changed. As we all know things could change tomorrow. He said there just really was very little demand for it, which is unfortunate, it Is a good product. it is good to know what if and when Things do change The Linux Platform, Borland Will Have A Development Tool That Can Be Updated Quite Quickly.
In the immediate future, if you want to use a Borland tool to develop on Linux you actually have a few other options. I think C Builder X could be used to target Linux, although the IDE would not run on it. Also JBuilder Should Run On and Target Linux (Since It Supports a JVM). I don't use each of Those Tools, SO I am Not Sure on the details. Now with mono 1.0 Release You Can Use delphi 8, C # Builder and soon Diamondback To Target The Linux Platform, Just Don't use the delphi sysutils unit (someone Needs to make a safe version of sysutils to target mono.)
Posted by Jim at 9/19/2004 10:42:01 PM
2.4.3. Live from the opening keynote
Craig Stuntz
Wireless coverage is spotty, but I have a good connection now, so I'll take advantage of it. Quinn Wildman recruited me to give a short presentation on InterBase Performance Monitor to his "Introduction to InterBase, Part 2" preconference this afternoon. I showed the first public preview of the new version of Performance Monitor, which includes support for new performance monitoring features in the upcoming 7.5 release of InterBase.InterBase 7.5 adds two new monioring tables to the seven already available in older versions of IB 7. for those unfamiliar with this feature, it allows you to see ingreat detail what's happening inside of an active InterBase server and what your users are doing, and to take control if necessary. All of this is accomplished by simple sQL statements, though you can use my GUI App if you prefer. The Two New Tables Allow You to See Details of Triggers in Use by the server, as well..
In addition, the database performance monitoring table adds features which allow you to flush the write cache, release server memory, and trigger the sweep via UPDATE statements (or viabuttons on the GUI application.
David I HAS Started The Opening Keynote Address Now, SO I'll Stop Typing and Listen.
Posted on Sunday, September 12, 2004 9:22 PM
2.4.4. DiamondBack At Opening Keynote
Craig Stuntz
David I showed a short video which (very briefly!) Demonstrated new Diamondback features. It was hard to make out what was on the screen, but I noticed live help in the code completion dropdown (in a window to the side, which displays info about the method currently selected), and unit testing. Also a JBuilder-like (and very cool) sync edit. Select a segment of code, turn on sync edit, and start typing over an identifier. The change is applied to every instance of That Identifier In The Selection As you type.posted on Sunday, September 12, 2004 9:52 PM
3. Borcon Monday Sessions and Events
3.1. Borland Keynote
3.1.1. Monday's Morning Keynote Session
Serge dosyukov
David i Have Continued A Yesterday Dale .s Music Line and Joined Taiko Group (Taiko? Read this http://www.taiko.com/rollingthunder.html). Drums - Great Wake Up Call for US.
Boz Elloy Holding a Keynote Session About Borland Vision of Software Delivery Optimization (http://info.borland.com/conf2004/keynotes.html).
After Short Introduction He Passed It To A Borland Team To Talk About SDO In Action. AS A Sample Project Ipet.com # 2 IS Shown. Caliberrm in A Team Planning and Development ...
Nice phone conversations between team members in a mean time. Next step was to address requirement changes to a development team (automatically via CRM notification) to JBuilder X team into UML diagram which then posted into StarTeam Repository (integrated into IDE) ... passed to next member of development team (notification and distribution) ... two clicks and we have a code created which then passed to QA team which by time Mike come to QA department they already notified and almost done their job ... and only need To change status of the request to go to deployment ... and ... DONE ... VERSION # 2 Defined, IMplented and deployed ... and then come to boz with Next Presentation About Borland Vision for Software Developments ...
Borland saying - it is time to step forward from just development to a fully managed process from definition, design, implementation to QA and delivery ... "getting good": decrease cost of the project, decreasing a time of the project, making project Successful and Delivered At Time ...
Borland answer to development problems - Software Delivery Optimization.I am not very fast in typing, so I let other guys to give more details on each aspect in of SDO by Borland ... Check blog list for more details For example, Nick has. Very Detailed Blog About a Presentation Here http://www.lemanix.com/nick/.
............... ..
Borland is Going to Make It Available for Delphi Developers Next Year.
Borland plan to change a way how products are packaged and distributed: product line will be more segmented and target specific needs of development teams instead just having Pro / Ent / Arch versions.
New Projects Were Announced Which Address Different Part of Development Cycle: Prometheus - ERP for Software Delivery
Hyperion - Visibility and Predictability
THEMIS - Team-Work Infrastructure
WE WILL SEE THEM INTEGRATED IN CURRENT Environment One by One During Next Few Years.
AS A Main Next Stage of Evolution of Borland Platform for 8 Months - Resource and Project Management, Process Automation and Optimization (This Segments Are Part of First Two Project).
Next Exciting News Was Announce of the New Versions of Products
JBuilder 2005 StarTeam 2005 Caliber 2005
. Note Borland finally decided to go with year based versioningAs a closing point of the presentation we saw one of features of upcomming DiamondBack - NUnit based testingAnd then, just in case if someone fall asleep during presentation, we had a Taiko team with David I again .
Posted by Serge At 9:17 AM
3.1.2. Monday Morning Session
Robert Love
The session just started, and the drums are ringing, after hearing from the Japanese drummer's David I entered the stage and joined them in playing. After a short introduction he welcomed Boz Elroy on stage.
Maximizing the business value of software
IT's Not Just About Doing It Faster, ITS About Doing It Better.
Borland Vision - Long Term Vision
Continue to build Software for Software People Continue To Server the Needs of The Software Creators Broaden Our Outreach To Help. Porther. Software People
The Call this Vision Software Delivery Optimization
THEN STARTED a Funny But Realistic Role Playing Situation Began To Roll Out for Ipets.com
During this the the next.
New Product SPC Estimate Professional Caliber RM JBuilder X Together Optimize-It Borland Management Console
. The Executive request a Change and then then use the tools to track risk, and the progress all the way through the development process to the QA Then moved it on to Operations, to deploy the product into production.Lets facts: Forces that impact the GODS of Software (Developers)
Poor prioritizing of projects Poor management of people to projects Poor Management of requirements and Scope Poor Visibility into and across the process Poor process automation governing consistency across teams and timezones Poor understanding of what it takes to roll an app into
Forces Come from: Decisions Makers and Operations
Software Has Been Written To Optimize Most Business Processes, However Software Development Has Been Neglected.
30% Canceled Before They Are Finished 54% Delivered Over Budget 66% WERE NOT CONSIED SUCCESSFUL 90% Delivered Late
Why?
Competing business priorities & resources Constant change & shorter release cycles Distributed teams & External resources Increased complexity & mixed-It environments Inability to deploy even though developed on time
Borland's Answer: Software Delivery Optimization
Maximize Opportunity ACCELERATE DELIVERY MITIGATE RISK Ency Quality Reduce Spending
With all of the bullet points above, the short answer is Borland is trying to resolve the problems found in Software development. Software development is process that starts well before it gets to developers and ends out side of the developers with deployment. Borland will be providing Tools to resolve.
Roadmap ... (12-18 MONTH FOCUS)
Project Themis - Team-Work Infrastructure (New Product 1st Half 2005)
Initially, 4 Distance Roles Addressed Analyst, Architect, Developer, Tester All Platforms Support Hyperion - Visibility and Predictability
Project Prometheus - ERP for Software Delivery
Announced the Following Products
JBuilder 2005 StarTeam 2005 CaliberRM 2005
THEY ARE Going to Give a Quick Showing of Jbuilder 2005 and Diamondback (Delphi)
JBuilder
Drag and Drop of CaliberRM Requirements Into the Source Code Distrbuted Refactoring Code Security Audits from Fortify (Subscription Based Updated to Detect Regular Updates.
Diamondback (Delphi / C # / Delphi for .NET)
Unit Testing (Both NUnit and Dunit Supported) Auto Created Basic Testing Framework Code.
The Rest Will Be Shown Tonight At The Diamondback Preview.
--over and out -
Posted on Monday, September 13, 2004 6:03 AM
3.1.3. Diamondback and JBuilder 2005
Jim McKeeth
JBuilder 2005
Calibur RM (Requirements Management) intgrated client, integrated refactoring that communicates with all developers Built in support for security audits on the code from fortify -. Could be run automatically.
Delphi Diamondback
BUILTITS BOTH NUNIT AND DUNIT. Greater Functionality For building tests. PREVIOUSLY AVAILABLE. Plus Many, Many New Features.
IT Looks Like Alll The Productivity Features Previously Available In JBuilder Are Now In Diamondback. Looks Like Features Are Being Added To Both At the Same Time.
Posted by jim at 9/13/2004 10:41:21 am
3.1.4. Kylix Community Project
Jim McKeeth
The Kylix Community Project. Teaming Up Between Borland and Community Leaders to Keep Clx Up to Date.
Posted by Jim at 9/13/2004 09:13:47 PM
3.1.5. Unit Testing in Diamondback At Monday General Sessioncraig Stuntz
Michael Swindell demoed unit testing in Diamondback at Monday morning's general session. Very slick. There's nothing added that you can not do already with DUnit or NUnit, but with Diamondback it's much, much easier. Write your class, then complete a couple of wizards to create a corresponding test project and test suite. The IDE generates the testing framework for you, and you just fill in the code for the tests themselves. you can run the tests within the IDE. This feature should significantly increase the use of unit testing In the delphi community.
Posted on Monday, September 13, 2004 2:49 PM
What'a new in Diamondback
3.2.1. What's new in Diamondback - Allen Bauer
Robert Love
Allen Bauer's Presentation Will Be Focused on The Ide Specifically .. The room is packed (Standing Room Only)
Multiple Personality IDE
Delphi Win32 Delphi for .NET C #
Debugging
Win32 & .Net debuggers working simultaneously. Debugging .Net code hosting a Win32 process AppDomain support in the Module View for managed apps. (App domains show up in the modules panes and in the scope browser pane) Soring in the modules view Better stack traces in Win32 apps (for frames that do not have Debug Info) (Even after an Exception!) Locals view allows for changing frames in Win32 Exception notification dialog enhancements Break / continue buttons Ignore Exceptions type check box .Net exceptions now show the exception message On Dialog Unicode Enabling View That Show Program Data (Watch, Locals, Inspector, Stack, ETC ...) Connect to IIS Better Better Evaluators CPU View
Refactoring
Rename detections naming conflicts Extract method Extract Resource string Sync Edit Find unit or namespace Declare Field Declare Variable C # & Delphi (Win32 & .NET) Refactoring will cross languages, if you change a C # symbol and it is used in Delphi code the engine will change Both !!! Will Refactor DFM VALUES AS Well.Synedit
SELECT A Section of Code and Press The Synedit Button or Shift-Ctrl-j Then You Can Tab Through Common Symbols, and Change All Symbol of The Same Name At The Same Time. This is Cool!
VCL Designer
Floating Designer will be supported !!!! Even for VCL for .NET (But not Winform's) Drag and Drop from the component palette is now support instead of just click and click. (BTW click and click is still supported)
Structure view
Similar to Object Tree View Shows Errors from Error Insight (See Below)
Error Insight
Shows Errors by Underlining Such As undeclared IdentifierS. Does Not Require a Compile
Component Palette
Custom Categories Allow you to move components for Other Sections in Your Own. Completely Customizable Icon Size Show Caption's Plus (5-15 More Options That I Could Not Record Fast Enough)
Project Manager
HAS File Management Functionality Shows Source Tree Right Click (RENAME) Right Click (Add Folders)
File | New Other Dialog
Much Better, Tree View Down The Side Instead of All of the Tabs.
Help inSight
If you place your mouse over a symbol It will tell you where it is declared and the parameters. If an Xml Document is generated for the given symbol it will give that help as well. If a parameter has help it you can click on it an See the help for what parameter as well.
History Tab
Shows all of the changes that you have made to the file. Saves X number of changes to your file. Easy to revert to a previous copy Diff Viewer to see all of the changes. Does not require Star Team Enhanced if Star Team is installed because You See Items in the repository as well.Then He Ran Out Time, After Talking with Him He Covered <20% of What is New!
Posted on Monday, September 13, 2004 7:57 AM
3.2.2. What's new in Delphi with Allen Bauer
Jim McKeeth
Allen Bauer, Borland's Principle Architect, Presented What's New in Delphi. I Took A Three Panoramic Shots of His Session:
This is from my seat in the back row. Robert love is sitting right next to me, but i cleverly cut him out so his head would''t takeover the entire photo.
I TOOK THIS PICTURE While Standing Up at the back of the room. In this one you can see the top of robert's laptop screen, and a ghost image of half of the back of his head. I Didn't Cut Him Out So Well this Time.
Again Standing In The Back, But this Time with the zoom turned on. The flue shirt layer ign......................
And Here Are My Session Notes:
.
A Full House In a Double Wide Meeting Room (The Biggest They Have Next To the Main Hall), And this session is going to be review.
Galileo Is a Multiple Personality IDE. Diamondback Has Delphiwin32, Delphi.Net and C # in this Single IDE. Diamondback is Still A little "out there" on the roadmap. It is not peese.
Debugging
Win32 & .NET debuggers working simultaneously. Debugging .NET code hosted in a Win32 process. AppDomain support in the Module view for managed apps (App Domains show up in the module panes and in the scope browser pane.) Switch between C #, Delphi Win32 , Delphi.NET during same development session. Sorting in the modules view Exception notification dialog enhancements Break / Continue buttons Ignore exception type checkbox .net exceptions now show the exception message on dialog Breakpoint view Supports in-place editing Check box to quickly enable / disable Breakpoint Toolbar "Log Call Stack" Breakpoint Action Multiple Debuggers Debugger Registration Betted Iis Connection Cassini Web Server Support (Still) Refactoring
Rename Renames all occurrences of a symbol, entire scope Will rename occurrences in a Delphi and C # assembly at the same time, if one references the other So if a C # assembly declares a symbol and a Delphi assembly uses the C # assembly then it will rename it all occurrences of a symbol that is shared between the two. This is not a regular text search and replace Does not effect comments If an unrelated symbol has the same name it is not renamed Looks at descendent classes Will alert about possible conflicts Extract method Create a method out of a selected block of code Extract Resource String (Delphi only) Sync Edit Edit all occurrences of identifiers within a selected block of code. Specifically for local scope editing, does not take scope or unselected code into consideration. not a replacement for rename Find Unit or Namespace Declare Field Declare Variable C # & Delphi (Win32 & .Net)
VCL Designer
Choose Between Embedded or Floating Designer Also Has Dock and undocked Views Improved Drag and Drop Design Support.lots of Cross Product Pollination Between JBuilder and Delphi
Greatly enhanced Tool Pallet by Corbin Dunn.
IT CORRECTS The name everywhere (in any of a number of place).
History File Lets you compare and backup from multiple history backups
Makes Heavy Use of Community Tools - AQTIME, Virtual TreeView, ETC.
Posted by Jim at 9/19/2004 06:37:35 PM
3.2.3. Allen Bauer's "What's new in diamondback" session
Joe White
Covering Allen Bauer's Borcon Session On What's New in The Diamondback IDE.
Looks Like Nick Wasn't Doing a Live Blog of this One, SO I'll Post My Comments.
Consider this to be a follow-up to my notes from John Kaster's Preconference Tutorial on Diamondback. I Won't cover any of the overlap here.
Allen started by saying he would mostly cover IDE features. Fair enough. Danny (who knows me by name, BTW) will cover the compiler stuff this afternoon, and the "Meet the Team" tonight will cover even more.
He's talking about features in a product that's not finished yet, BTW. Ship dates have not been decided yet, features have not been decided yet. This is a very new thing for Borland. (He mentioned that he's allowed to talk about anything ExcePt Release Dates, Product Names, and Bundling / Pricing. VERY COOL.
Debugging features Debug .NET code hosted within a Win32 process May not be able to seamlessly "Step Into" from Win32 code into .NET code AppDomain support in Module view Better stack traces in Win32 for frames without debug info Think EnumFonts;. You didn ' t used to be able to see a stack trace when Windows calls your callback function, but now you will Locals view and stack frames:.!! Yes, it will work even after exceptions Woot Look at different threads' call stacks and Locals views Same operations in both Win32 and .NET debuggers Refactoring No distributed refactoring in Diamondback, but they have underlying architecture to support it Refactoring works across projects within a project group, even between C # and .NET Based on actual uses list, not just what's in the. dpr Only works within current iFDEFs Sync edit:! Can Tab through distinct symbols "Live Templates" (Ctrl J templates with this Tabbing to fill gaps) will not be in Diamondback but are on the plate IDE is theme-enabled Trans parent panels & checkboxes, even at design time Component palette is drag-and-drop even in VCL Marketing has always claimed that Delphi supports "drag-and-drop" GUI development, but Allen commented that it was really "click-and-click "Now you can actually drag a component off the palette and onto the form Yes, click-and-click development still works. So do double-click and Shift click. Component Palette in Diamondback probably will not support one component in multiple categories , YET. Object Inspector Shows Properties For Files and Projects. Can Rename A File Using Object Inspector, Even IF It's Not Saved Yet! Carries Rename THROUGH TO The Disk File Doesn '
t do anything to the old .dcu file (alas) Rename Class refactoring even reaches into the .dfm Also, if you rename a form class, it will rename the global Form1 variable in that unit History view: If you had 30 revs of a file, and you change the setting to only save 10 revs, it will not delete the old revs, and will continue to keep 30 revs for that file. Borland devs use AutomatedQA apps (I should've asked which apps) IDE uses VirtualTreeViewposted on Monday, September 13, 2004 10:56 AM
3.3. More new IB 7.5 Performance Monitoring Features
Craig Stuntz
I gave my session on InterBase Performance Monitoring this morning. I was pleasantly surprised to see good attendance in spite of the fact that my session was concurrent with Allen Bauer's "what's new in Delphi" presentation.
In addition to the features I mentioned yesterday, IB 7.5 introduces three new server maintenance functions accessible through simple UPDATE statements against the TMP $ DATABASE table (or via buttons in my free IB Performance Monitor GUI application).
You can now:
Flush the disk write cache. Reclaim Memory by Compacting The Heap and Discarding Unused Procedure and Trigger Clones. Start The Sweep Thread.
... via the Performance Monitoring Features.
In addition, the GUI app has been significantly updated by me and by Andreano Lanusse of Borland Brazil. It now features the ability to save the displayed data in several different file formats, show additional columns, hide internal queries and other data resulting from the Performance Monitor App itself, And Much More. I'll Try And Release A Public Beta Soon - IT Delivers Enhancements for users of IB 7.0 and 7.1, Not Just 7.5.
Posted on Monday, September 13, 2004 3:01 PM
3.4. Microsoft Keynote - From Borconrobert Love
Hopefully this is a good session, I have Been Bored Many Times in The Keynical Details and the industry keynotes tent to be a bit higher level.
Marketing Hype So Far with nothing much to report :-(
Talked About The Dynamic Systems Initiative (DSI) Which i Had Not Heard Before It Uses An Xml Schema To Keep Different Systems To Search And Read about That.
THE Started Talking About SQL Server 2005, And How You Can Write Managed Code Stored Procedures.
Yeah, Danny Thorpe Was Just Welcome Out on Stage !!!
Using delphi 8 with the commit line compiler You can Specify .NET 2. - CLRVERSION = V2.0.40607
They compiled a Delphi function into an assembly, then loaded it into to SQL Server and then they wrote the same function in TSQL then they used the same function in a performance test. (I.e. Delphi code as a Stored Procedure)
Execution
TSQL Time: ~ 10,000 ms Delphi Time: ~ 110-190 ms
THE MENTIONED SQL ON 64 BIT Platform, And The Same Delphi Managed Code Will Run There with no change.
THEY WRAPED UP SHOWING CALIBERRM INTEGRATION WITH TEAM Foundation Server and MS Project, Which Seem Quite Seamless and Easy
Posted on Monday, September 13, 2004 9:30 AM
3.5. Delphi 8 and SQL Server Yukon
Craig Stuntz
I'm watching Danny Thorpe and Euan Garden demonstrate writing managed code stored procedures using Delphi 8 and SQL Server Yukon. Since D8 uses the 1.1 version of the .NET framework and Yukon requires 2.0, this may seem unusual. Turns out all you have to do is specify a switch to the dccil command-line compiler indicating which framework version you'd care to target, and it works fine with framework versions which did not exist when D8 was released.I'm wondering what, if anything, this Might Offer in Terms of Solving The Problem People Have Been Having with .NET 1.1 SP 1 ...
Posted on Monday, September 13, 2004 3:12 PM
3.6. Borcon Day 2 - Monday
EUAN Garden
As (un) planned I was up late last night working on a new part of the demo for today, as such I slept in (missing 2 alarm calls, ooops) and missed Borlands keynote, lots of the bloggers I posted yesterday were there though IF you want to see the notes.
Met up with everyone for the key note at 10, which left us 90 mins to get setup and tested, had to reboot my laptop a couple of times which was making me nervious but it seemed fine. We rehearsed the new demo, but we forgot To Tell Rick WE WERE DOING IT, WOOPS.
I Thought ricks Keynote Went Very Well, He Got Through a lot in An Hour, The First Demo That Danny and i Did Went Like this:
Danny wrote a Delphi class that performed string splitting and manipulation, he then compiled it using the delphi for .net compiler but tagetted the 2.0 version of the frameworks using the commandline compiler instead of using the ide version. I then loaded the generated assembly into SQL Server and exposed the function triany wrote as a sql server function using sqlclr. I Then Wrote a T-SQL VERSION OF THE FUNCTION. THEN WE RAN TO COMPARE PERF, The .NET VERSION TOOK ~ 100MS And The T-SQL Version TOOK ~ 10,000ms. there 10,000ms. there is applause from the crowd :-) for the second demo:
I exposed a SQL Server function as a Web Service using our new HTTP Endpoint technology. Danny imported the WSDL into Delphi 8 and it generated a proxy. Danny had a simple little UI that called the web service with a parameter and then displayed the results. ONCE AGAIN THERE WAS Applause :-)
Post Keynote I chilled a little and did some booth duty (my those T-Shirts are flying out the door), then I went to a session on Borlands new data engine for .Net, interestingly enough they write it in a Java and then have A Compiler That Generates C # CODE, SO IT IS 100% .Net and Can Run On Top of Compact Frameworks. They Are Not Shipping It Yet But They Hope To Next Year.
The first part of the evening was spent on booth duty, answering questions and doing demos, I was glad off the padded carpet by the end. Afterwards I went to the Borland Delphi meet the team session that was packed, as in standing room only, WHERE The Showed The New DiamonBack Preview Release, They Even Gave Out CDX.
So Now ITS Time To Start Prepping for My Session At 8 (Ouch!) In The Morning, As Always The Case I Am Adding a Couple of Demos At The Last Minute, AlthiUgh I Did Management To Get My Slide Count Down To 52, Shoulf Be a Snap in 75 mins ... Posted on Tuesday, September 14, 2004 10:59 PM
3.7. NDataStore
3.7.1. New Borland Product: NDataStore
Robert Love
Notes On What Features It Has:
jDataStore Code ported from Java -> C # First Class .NET Database 100% Managed Code written C # Local connection is done In Process Remote connection is done remotely Fault Tolerant Delphi / C # / VB Stored Procedure On disk structure identical for:.. .net framework .NET Compact Framework Linux / Solaris (JDATASTORE) 1.1M Deployment for .NET Framework 925k Deployment to .NET Compact Framework
My personal thoughts: This is a unique and exciting technology to try There is only one other database that I know of that supports Managed Code Stored Procedures and that was the SQL Server 2005. However, nDataStore has a smaller footprint, and looks like it. Will Work Well as an Embeded Database.
Posted on Monday, September 13, 2004 12:44 PM
3.7.2. NDataStore
Craig Stuntz
I'm listening to Steve Shaughnessey talk about NDataStore, Borland's .NET native DB server. Some folks might be familiar with JDataStore, Borland's fast, cheap Java native DB server. Jens Ole Lauridsen took the front end of a Java compiler, removed the byte . code emitter, and converted it to emit C # code Steve and Jens tweaked the conversion until they could build NDataStore from the JDataStore source code 95% of the source code originates in Java -. the remaining 5% is the binding to the .NET environment which is unique to NDataStore and written in C #. The final product is 100% C # and deploys as a single, 1.1 MB DLL.There's a second version for .NET Compact Framework which is essentially the same product less fail over, the remote server Component, And A Few Other Things Which Are Less Useful on a Handheld.
JDataStore, NDataStore, and the CF edition of NDataStore use identical file formats. So you can build a DB on Solaris with JDataStore, and copy it onto a handheld device and open it in NDataStore. This is unlike SQL Server's CE edition, where you can 'T Even Build A DB ON A Pc. NDataStore Is Also Smaller Than SQL Server CE, Both in Terms of Install Footprint and DB size.
Steve showed benchmarks comparing the .NET and Java editions and "native" MySQL vs. .NET and Java. He also compared in-process local execution with execution via the remote driver. The tests were performed using a subset of the TPC benchmarks. He first increased MySQL's low default cache size to a level on par with NDataStore and made MySQL's sort buffer twice as large as NDataStore. He tried with and without logging with MySQL and left sync_binlog at its default of false, sacrificing guaranteed crash recovery, which should help MySQL's Performance At The Cost of Data Integrity.populate DB
Lower Numbers Are Better
45.596 JDataStore Local51.775 NDataStore Local72.284 JDATASORE Remote74.117 MySQL (no logging) 105.390 mysql (with bin logging)
Create Indexes
Lower Numbers Are Better
2.263 jdatastore Remote2.323 NDataStore Local2.754 JDATORE LOCAL14.761 mysql16.233 mysql with bin logging
TPC-C New Orders
Higher Numbers Are Better
7796 TPM NDataStore Local6922 TPM JDATORE LOCAL6631 TPM mysql (BIG Advantage Due to Sync_BINLOG) 6526 TPM mysql bin logging (BIG Advantage Due Sync_binlog) 5988 TPM JDATORE Remote
The Java-> C # Converter Also Automatical Translated All The Tests Which Have Been Built for JDATOSTORE over the years.
NDataStore Inherits All of JDATASTORE 7'S FAULT TOLERANCE FEATURES, INCLUDING FAILOVER MIRRORING. JDATASTORE / NDATASTORE USE A LOG FILE, But It's Managed Automatically - No Administrator is Required.
At 5:00 Today, Jens Ole Lauridsen Will Be Demonstrating How To Use delPhi and c # to write db Triggers, Stored Procs, And Udfs for NDataStore Using Both The Normal Framework and CF.
Posted on Monday, September 13, 2004 5:44 PM
3.7.3. NDataStore
Joe White
I had a lot of questions, and they answered most of them right away:?? Transactions Yes, full transaction support including rollback and disaster recovery Client / server Yes (but also supports local in-process) SQL Yes (SQL-92)?
Here's the rest of my notes:
Short answer: Yes, this is a real database ADO.NET and BDP drivers SQL-92 entry-level compliance When running locally, can run in-process (remote is TCP / IP) Transaction support Log-based, crash recovery, rollback. Row-level locking (plus table locking if you want it) Support for read-only transactions High-availability support (automatic and manual failover, incremental backup) Disaster recovery Stored procs, user-defined functions, triggers are coded in .NET Direct access to transactional context (you're running in-process on the server) Managed code protects the database kernel Single DB kernel for multiple editions A lot of vendors prefer to have a "server kernel" and a "micro-kernel" that are not quite compatible in one way or another NDataStore does not; local, server, and high-reliability server all have the same disk structure, identical protocol, same transactiton management, same SQL, etc. All this in a single, 1.1 MB DLL That's For ado.net. if you want bdp, There Are Additional . DLLs If you want to do client / server, there's a client assembly available that's even smaller Performance: Managed code does not make it slower 64-bit support Licensing: Same as JDataStore ($ 60 / seat for desktop version; $ 500 /.. server for normal server; $ 1000 / server for high-reliability server) Faster than mySQL in most benchmarks Note that mySQL does not support disaster recovery (does not force writes to flush to disk immediately, so a commit isn '
t really a commit), and NDataStore is still faster in several benchmarks Obviously, these are vendor benchmarks, so salt grains are required Single-file data store Zero-admin database: keeps transaction logs only as long as needed (no need to truncate or anything messy like that) Next steps: Apply for NDataStore field test (drop off a business card, or e-mail ggoldfield at borland dot com) Will need to sign an NDA, so you may not see me blogging about it :-( Interesting NOTE: THEY ACTUALLY MAINTAIN A SINGLE JAVA CODEBASE, And Run A Tool to Translate Into C # with every build! 95% of code is shared other 5% IS .NET Platform Support (Like ADO.NET), And Written In C # no delphi / Win32 Client Yet, But They've Broken Ground ON This and Are Evaluating Itsigh. If Only They'd Had This on The Market A Month Ago. The Folks Back Home (Especial John and Jeff) Will Know What I mean.
Posted on Monday, September 13, 2004 2:32 PM
3.8. Refactoring with Jim Cooper
Jim McKeeth
Jim Cooper of Tabdee and Falafel Software presented Introduction to Refactoring Jim is a great speaker It is understandable why his More Design Patterns in Delphi was so full If you want to know more about refactoring, then get Martin Fowler's Refactoring:... Improving the Design Of evting code
Refactoring is changing code after it already works. It is a series of small steps to minimize bugs. Should use unit tests to verify you do not break it. Refactoring does not change the behavior or add new features.
Code is not for computers to read, it is for programmers to read Most programs spend 90% of their time in maintenance mode -. Refactoring makes code easier to maintain Since the code is easier to read, bugs are easier to find In the.. LONG TERM IS FASTER, SHORT TERM IT WILL Take LONGER. Reduces Chaos in long-lived code. Fowler formalizes and names the best practices for refactoring.opportunities for Refactoring
When adding functionality -. Makes adding new features easier, but keep refactoring separate from changes When fixing a bug During a code review Refactoring does take time though May need to sneak it past managers at first Eventually you will refactor as you go and will not be Separating it.
Points to Note
Refactoring is typically based on OO More atomic then patterns, but may use patterns Most do not concern interfaces, but some may work with them Many refactorings include other refactorings, or one is required before the other can be applied. Some are opposites (extract Method, inline method
Thoughts on Refactoring:. Most successful applications spend most of their time in maintenance mode, where you are fixing minor bugs or making other minor changes If the application has been properly refactored then these small changes take very little time Otherwise these changes are very expensive. . Rs..............................
Posted by Jim at 9/19/2004 10:53:33 PM
3.9. What's new in the delphi compiler
3.9.1. What is new in the delphi compiler - Danny Thorpe
Robert Love
The Following IS My Personal Notes On New Languages Features, IT IS Possible There Are Not Exact.For in Support
Delphi now supports for in loops, this is similar to the for each. Is found in c #, this information is also found in danny's blog.
For Element in Collection Do Statement;
Basical You Can do Things Like thisvarsa: Array of string; s: string; beginfor s in sa dobeginshowMessage (s); end; end;
Key Points of for in
Read Only (you can not modify the element) Compiler Can Optimize The Loop Available on Both Win32 and .NET
Collection Needs to Have One of the Following to Work
Implements IENUMERABLE (.NET) Interface Public Function GetENUMERATOR Compiler Recognized Primitive Data Types Arrays Sets Strings
Multiunit Namespaces
Goal: Support Placement of Delphi Symbols Into a Specific .NET Namespace While PreserVing Unit Make Logic and Syntax and Package Support.
An assembly can contain classes that contribute to multiple Namespaces. Multiple assemblies may contribute to a given namespace There is no relationship between the assembly filename and Namespaces with in it (!!) When source uses a namespace, the compilers looks at the ALL of the Assemblies That Contribute To That Namespace.
Basically Namespaces Relationship to ask asmblies is a many to hany rellationship.
Delphi8 Solution
Unit name = .NET Namespace (this Has Several Problems Which DiamondBack Addresses)
Diamondback Solution
Dotted Unit Name: (Borland.Vcl.classes)
Right Most Name Dropped Left Remainder Is The .NET Namespace
You can now Use the folowing in you buy
Usesborland.vcl.classes;
Works As It Always Has, But Only Provides Only Symbols in Classes.
Usesborland.vcl;
Works Only with packages..
usesBorland.Vcl *;.. Works with Source Code as well as with packages, but it will not execute initialization sections of all units in the namespace It will only execute the initialization sections if you actually use a symbol from that unit.
SO WHERE DOES The Unit Global Variable and procedures go?
Namespace.Units.Unitname.global
Also The.NET Framework Does Not Support Constant Data, IT Must Be Initialized In Code, Delphi Solves This Problem by Setting All of The Data Global Data In The .global. Constructor.
Function inlining
New .inline. Directive, Looks Like a calling convention
Procedure foo (i: integer); inline;
Rules:
inline directive is a suggestion;. compiler may choose not to inline depending on the call site complexity Function body must be seen (top-down) before calls to the function can be inlined Circular unit references defeat inline (See # 2) ASM routines can . not be inlined inlined code is spliced into the call site node tree prior to optimization -. so, inlined code will participate in optimization at each call site Inlinable code has limited access to private or protected symbols
Why?
Faster code
Why not?
Code Bloat Creates Hidden Temps, Increase Register Pressure -> Could Hurt Performance Always Genereates The Real Method.
Always Messure the benefit of inline !!
{$ Inline on | OFF | auto}
Default is on
Auto is Not Recommend, AS IT HAS Both.
Misc Changes
Movzx in code gen
INSTEAD OF XOR REG, REG / MOV FAVORS P4 / PE CPU - No Prefiex Opcode Penatlty
Unicode Identifers, Not Supported in Published Sections
Improved Overload Discrimination, Specially All of The DiffERENT STRING TYPES.
Forward Declare Records Are Supported (.Net Only)
Future Directions (After Diamond Back)
Generics (Parameterized Types!) Support for .NET 2.0
Posted on Monday, September 13, 2004 1:39 PM
3.9.2. Danny's "What's New in the Diamondback Compiler" session
Joe White
Covering Danny Thorpe's Session About What's New in The Diamondback Compiler.
I've already posted several times about what's new in Diamondback. I will not duplicate any of that information here. And Danny was only talking about the compiler. Not about refactoring, not about databases, not about ASP.NET, not about ECO , NOT ABOUT VCL. Just The Compiler.
Therefore, this is going to be a long post.
(Also, Be Sure to See my next blog post, with stuff danny Didn't Say During the session. In particular, WHEN Are Some of the Other Delphi / .Net Language Features COMING TO WIN32?)
For..in
Loops over the elements of a collection, without actually requiring you to care about indexing into the collection When is it useful? When you do not care about the index, but just want the elements When you do not want to do an indexed loop because getting a count and / or doing random access is expensive (linked lists, database tables) Danny gave the example of asynchronous retrieval (a background thread is going out and getting the next element before you ask for it), which does not work so well with array indexes Unordered / non-indexed data (sets, hashtables) you should think of the returned data as read-only. Do not change the collection while iterating. (you can change properties on the object you got, but don ' t try to replace the object in the collection) Modifying the underlying collection should cause the enumerator to throw an exception the next time you call MoveNext. (So do not modify the collection while you're iterating!) Win32 implementation may allow writeback someday , But I t might be full of gotchas. Assume that you should never modify the collection while you're iterating it. Because you treat the data as read-only (you are treating the data as read-only, right?), an enumerator should give you a stable view of the data. that means that, if you call Reset on the enumerator, and enumerate a second time, you should get the same data. Not guaranteed to be in the same order the second time, though. This is the theory. In reality, things like databases may not guarantee a consistent view, for performance reasons (because doing a read-only transaction might be cost-prohibitive). But if they did offer a consistent view, wouldn '
? T that be nice Syntax: for MyObject in MyCollection do {statement}; Why not foreach Because Danny was reluctant to add a new keyword Besides, should it have been 'foreach' or 'for each' As a mathematician, Danny asked?? , "Would not 'for all' be better?" So, no new keywords for this. Supported in both Win32 and .NET .NET uses IEnumerable if it's there, otherwise looks for the code pattern Win32 only supports the code pattern (probably because interfaces carry all that reference-counting baggage) The collection is held in a temporary variable. So, if you did forMyRecord in LoadCollectionFromDatabase do, you'd still be fast, because LoadCollectionFromDatabase would only be called once. Much like the way the for loop already caches its maximum value Collection must fit one of these:. Implement IEnumerable (.NET only, for now) Have a method called GetEnumerator Be an array, set, or string (? or enumeration Danny did not remember for sure) Mechanics : (Very Familiar if you already knowy knowledge c # does foreach) GetEnumerator returns an enumerator object, with MoveNext and Reset methods and a Current property You start with no current element (on a "crack", per Danny) and must call MoveNext to make the first element current MoveNext returns False when there are no more elements (if the collection is empty, it returns False the first time you call it) Reset rewinds the collection to the beginning. for..in does not call Reset. The enumerator is freed automatically at the end of the loop (inside a finally block). As I Mentioned Before, Many Classes in The VCL Will Support for..in. Not All, Because When genrus comes out, they '
ll all be generics and it will only need to be implemented once TList has TListEnumerator, even in .NET (and even though TList is just a thin wrapper around ArrayList), simply because Win32 does need TListEnumerator. (It's there as a placeholder for code Compatibility Between Win32 and .NET, for Code That Uses The Enumerator Directly Instead of Using For..in Multi-Unit Namespaces
Goal: Put symbols into a specific namespace while preserving unit make logic (which works by having a relationship between the unit name and the file on disk) and the syntax and the package support Relationship between assemblies and namespaces is many-to-many There is no relationship between the namespace and the file on disk uses namespace; always refers to a namespace, never to a filename In Delphi 8: (the old way) Unit name = .NET namespace This works as an interim solution, let's get it shipped. . Problem:. Exposes structure to the world Component and library authors want to split code into multiple files, but that's a pain for their customers More segregated than most .NET namespaces Can not inject code into a namespace you do not control (. not that this was necessarily recommended practice to begin with) Diamondback: (the new way) unit Borland.Vcl.Classes; Rightmost segment is dropped Types in this unit end up in namespace Borland.Vcl (Borland.Vcl.TList) '.. Classes' Is Still There B ehind the scenes (buried in the metadata), but it's not in the C # programmers' face uses Borland.Vcl.Classes; Compiler can find file on disk by appending '.pas' Compiler can also find this unit within a package, and. . only pulls symbols for that single unit This is using a unit, not a namespace uses Borland.Vcl;. This is using a namespace only works for code that's already compiled into an assembly Can not work for static linking (because there's no way.. TO Find the .pas file. Wide open; Pulls in Everything in the namespace, NOT ONE Unit. Uses borland.vcl. *;
This is either using a namespace, or using multiple units specified by a filespec. They amount to the same thing. Works against code in packages, and against source / dcus. Be careful. If you're going against source, this loads a lot of symbols from disk. (Compilation will be slow.) The smart linker will be even smarter for this. If a unit is dragged in by the wildcard, but you do not ever reference any of its types, then its initialization section will not Be Compiled Into The EXE. this is here. danny didn't Talk About this, but i imagine it Would Be a bad idea for borland.vcl.classes.pas to say useing borland . .Vcl *; Globals (global procedures / functions, global constants, global variables) are as discussed in my earlier post: Borland.Vcl.Classes.MyGlobal becomes Borland.Vcl.Units.Classes.MyGlobal The 'Units' is stuck. In There Because Delphi Already Allows A Global named 'classes' inside the unit named 'classes'. (news to me! i t hought that was a compiler error for duplicate identifier.) To avoid breaking it, they stuck an extra level in there. Simple unit names (no dots in the filename) are an exception to this rule. When the rightmost segment is in fact the only segment, it's not dropped. But if the project has a default namespace, it's considered part of the filename. So if the default namespace is Borland.Vcl, and the file is Classes.pas, then the "fully-qualified filename" (I 'm Not Sure if this is danny's terminology) is considered to be borland.vcl.classes.pas, so the classes is dropped.a couple orthol
Arrays in .NET can not be preinitialized, so if you have a global const array, it's actually initialized in code in the unit's class constructor (I'll have to reread the IL book. I know there is global data, since that's where strings are stored, but evidently it can not be used for arrays) Note on unit initialization sections: If you have circular unit dependencies, the initialization order may not be the same between Win32 and .NET This is because, when unit A touches. Something Inside Unit B, Unit B's Class Constructor Will Fire Immedieration In. Net, WHEREAS IN WIN32 The Initialization Section Might Not Fire Until Later.Function Inline
Involves persisting the compiler's node tree to the .dcu Not been done before Can produce significant speed boost in certain cases Caution:..! Code bloat risk Not quite like C macros, because these are not textual replacements instead, it grafts nodes into. the syntax tree (it's after parsing, not before) Works for most anything: procedures, functions, methods, and local procedures 'inline;' directive, looks like a calling convention Did not Turbo Pascal have this a long time ago Maybe it? was just for assembler ... Works for both Win32 and .NET (and may beat the JIT compiler in some cases, since the JITter goes for fast optimizations and low impact) The 'inline' directive is just a suggestion to the compiler. The compiler can disregard it if it thinks you're wrong or stupid. Could decide it would make the call site too complex (by needing too many temps and blowing your registers) The same procedure may be inlined at some call sites and not others This is Still a Top-down Compiler. It M ust see the body of the inline procedure before it's used. In some cases with circular unit references, the compiler disables inlining on purpose. Does not work for procedures with an asm body, because that does not emit compiler tree nodes Spliced into node tree before optimization Generates temps for stuff that's passed into the procedure Then probably optimizes those temps right back out Restrictions on inlining stuff that access class privates Hard and fast rule in .NET: Can not inline these into another class May relax this rule in Win32 Code, Post-DiamondBack Best Practices: Use Only for Very Small Functions Always Test Performance and Measure The Benefit. DON '
. T assume it will speed up your code It may slow it down Caveats: Hidden temps; burns registers and stack Can actually hurt performance Causes unit dependency brittleness:!. Users depend not just on your interface, but also your implementation May not matter much for our code, but for this reason, expect Borland to be very conservative about using inline within the RTL and VCL! Since the procedure is not always inlined, the compiler actually does emit a "real" procedure body as well @ operator returns this presumably the smart linker is vigilant, and if every call is inlined, the real body will be eliminated {$ iNLINE ON / AUTO / OFF} directive Affects the call site AUTO = compiler picks "small routines" to inline. Per Danny, this option IS "scary" and will never be the default.miscellaneous new features
MOVZX (Optimization for P4 / PIII processors. Will cause smaller / maybe-slightly-faster code on newer processors, at the expense of running slightly slower on older processors) UTF8 and UCS2 source for both Win32 and .NET Danny, were not you going to show some amusing examples of this? No Unicode allowed in published properties or methods (I think this restriction is Win32-only) Improved overload discrimination (can overload on 'type of' types) Forward declarations for record types (.NET only)
COMING in DiamondBack 1
Whidbey support (well, yeah, you can compile against Whidbey in D8, but you can not consume generics so you're really a second-class citizen) Generics (for .NET; see below) May do something along the lines of partial Classes Records with Methods for Win32? (Also See My Next Blog Post)
Posted on Monday, September 13, 2004 6:06 PM
3.9.3. What * Wasn't * in Danny's Diamondback SessionJoe White
Stuff that came up after Danny's talk (which I briefly summarized here). Even those of you who were at the talk did not hear this stuff yet. (Well, except for Allen, but I suspect he already knew all of this anyway. )
DELPHIFOR MAC?
Now, Don't get your hopes up. There is no official word on this yet. (It May Be Worth NOTING That this is not an official "no".)
Yes, you can get partway there with Mono, but there's not much there for GUI. However, when someone was asking Danny about this after the session, he pointed out that Diamondback will be a multi-personality IDE (with the three personalities out of The Box. Delphi / Win32, Delphi / .NET, AND C # /. NET). and Personalities Will Be Part of The Open Tools API. (NOT Sures) Open, But it's there.) Open Personality API?
So, WHETHER BORLAND WRITES A MAC PERSONALITY NOT (AND Mum's The Word ON That So, SO You CAN Still Hold Out Hope), Somebody Else Might Be Able To. This is a pretty darned Intriguing Concept, I think.
The features is coming! The features is coming!
I spent a while grilling Danny about what will be in Diamondback for Win32, and what will sneak in later. Here are the results. (Tabular format makes the holes a little more glaring, does not it? Still, this is good stuff to Hear Word on ...)
Feature Diamondback Diamondback 1 (Whidbeyish) 'strict private' and 'strict protected' in Win32 Yes 'static' keyword in Win32 No Forgot to ask Class constructors in Win32 No Forgot to ask Nested classes in Win32 Yes [Note 1] Records with methods in Win32 No Yes [Note 2] Operator overloading in Win32 No Yes [Note 3] Custom attributes in Win32 No Forgot to ask Generics in Win32 No Researching Multicast delegates in Win32 No ResearchingNote 1: Yes, they'll be there, but you won 'T Be Able To Use Them in public.
Note 2: Records with Methods Will Be Theore Primault Because They're A Prerequisite for Operator Overloading.
Note 3: Will Only Be Supported for Record Types.
Usual Disclaimers About Forward-Looking Statements, But If Danny Thinks It's Going to Be in a Release, I'd Say The Odds Are Pretty Darned Good ...
Posted on Monday, September 13, 2004 6:14 PM
3.10. Diamondback Preview
3.10.1. Diamondback Preview - Tonight Session
Serge dosyukov
I do not want to compite with NickCheck his blog ... But I would say - congratiulations to him for getting "Spirit of the Borland" awardAnd small word for Kylix community by Borland - "Kylix community project" See for more information - Kylix alive And Has A Futurealso, Diamondback Installs !!!; O) It's C #, D32, D.NET
Posted by Serge At 8:24 PM
3.10.2. Live from the Diamondback Preview!
Nick hodges
We Are Live a the the Diamondback Preview!
Michael Swindell Just Announce The Kylix Community Program Which Will Be Updating The Kylix CLX Library, etc. Sounds Pretty Good.
Michael just announce the 2004 Spirit of Delphi award and the winner is .... me! I am totally humbled and honored. Thanks to Borland and everyone for thinking of me. I really appreciate it. Seriously, that means a lot. Thank you . I'm real holly humbled and honored.michael is now Talking About the stuff in diamondback.
Refactoring, ECO for ASP.NET New ASP.NET Web Controls DBWeb controls are ECO enabled. New HTML designer features. DbGo for .Net Delphi Advantage for ADO.NET Create tables, edit tables, etc in the Data Explorer Team ALM productivity Fully integrated StarTeam Into the IDE
Michael Is Bringing Up Danny to Do The Compiler / Language Stuff.
Danny's Stuff:
Function inlining to improve performance. Can do things above and beyond what the .Net JITer does Diamondback now supports multi-unit namespaces. There is the for..in language contruct (Equal to the foreach in C #)
Allen Bauer Is Now At the Podium:
He's showing how the VCL.NET designer can be the good old fashioned floating designer that we all know and love and how the designer works just like we remember. Allen's pointing out that they have .ripped off. A bunch of stuff from JBuilder. For instance, SyncEdit. It allows you to select a bunch of code, and change all the common symbols in the code, ie you make a change in one place, and all the symbols are change where you selected. He's showing the History function, which IS Sort of Like A Simple, Local Version Control System. You CAN Save As Many Copies of A File As You Need on Disk, And The Ide Will Manage That For You, Including Source Code Diffs and What Not. Very Cool.
Now Ramesh Is Up to Show The ADO.NET/BDP IMPROVEMENTS.
Designer enhancements: Select StoredProcedures, automatic StoredProcedure parameter population, Table mapping support You can do schema / table creation in the IDE, copy table data from one location to another with bdpCopy, you can edit / alter tables and views as well, right from. the DataExplorer there's a new component called the DataHub that appears to aggregate data from multiple sources, and there is a DataSync component that will manage all the updates for you. It's a conduit between the dataset and your changes to the data.Next up is Chris Hesik to Do Debugging Stuff:
Chris was in the hospital and came in to demo for us. What a trooper! The biggest feature was to meld the Win32 and .Net debuggers together so that you can debug both together. He's got a project group with a Delphi for .Net, delphi for Win32, and C # projects. He's setting a breakpoint in each project, and is hitting each of the breakpoints, all at the same time. He's debugging a Win32 and a .Net process at the same time. each of the items in the stack frame now have local variable information If you select an item in the stack view, you get its local variable Breakpoint view is nicer -. can enable / disable breakpoint with checkboxes and inplace editing for variable breakpoints There is IL and native assembly in. the CPU view You have the choice to break or not break on a given exception. You can even ignore an exception, and the next time that exception is raised, it will continue to be ignored. that's a very nice feature.
Next Up Are The Eco Guys, Including Malcom Groves:
You Know, I don't totally Understand The Eco Stuff, But It Sure Looks Cool. I understand The Big Picture - That You Can Design Classes That Are Persistent - But Exactly How That Works in Eco ISN't Clear To Me .. . They are now .back-tracking. the Northwind Database into ECO. that's pretty cool.Mark Edington is up next. (Have I mentioned that Mark is just a really smart, really nice guy?) He's talking about Unit Testing. This is pretty hot stuff, folks. There are wizards that will automatically build test cases for your classes. It's all done automatically, so all you have to do is write the actual tests and nothing more. Very, very nice. If you are not doing Unit testing, you need to start doing it. My online _Result As the result variable for a test. Doesn't eveningone know That undeescores Are The SPAWN OF SATAN?
John Sileski is Going to Demo StarTeam Integration. I Personally Am Pretty Excited About this. I Love Starteam, And Am Really Looking Forward to A Tight Integration Between The Ide and Starteam.
Jim Tierney is up showing the new Web Deployment Manager. This is a really neat feature, and very useful. You can easily deploy an ASP.NET application to any network or FTP location. In addition, the ASP.NET Project Manager will show all The Files in The Directory of a Project, as ASP.NET Projects Are Very File Based. It's a nice feature.
Finally, Corbin Dunn is Up. Corbin Is Another Really, Really Nice, Super Smart Guy.
He's showing off refactoring. This is really nice, too, folks. You can extract methods, rename variables (across the entire project), extract resourcestrings, automatically declare variables, and find the unit of a given declaration and add it to your uses clause . He is showing HelpInsight, where a .help hint. pops up for identifiers when you hover the mouse over an identifierThat's it. If you are not fired up for Diamondback, I personally think you do not have a pulse. ;-)
And Here's Why You Should Have Come to Borcon - They Are Giving All of US A CD with the preview version of Diamondback on it. Don't you wish you around you? ;-)
Posted on Monday, September 13, 2004 8:46 PM
3.10.3. DiamondBack Preview Session
Robert Love
I am Now in the session room, and it looks like it might be standing room only overce it fills out .... Yep it is standing room.
Announcement:
Kylix Community Project - Admin Team: Borland Chad Hower, Andreas Hausladen, And Olaf Monien
This is to improve the clox library
Spirit of Delphiaward 2004 Award Goes TO ... NICK HODGES this is very well.
Several Members of The delPhi Team Are Coming Up and showing some of the features in Diamond BACK
Danny Thorpe (Compiler Enhancements)
Compiler Inline Multiunit Namespaces for in
Allen Bauer (IDE Enhancements)
Floating Designer! Sync Edit History WINDOW with DIX VIEWER
Ramesh (ADO.NET/BDP)
BDP Designer Enhancements
Drop Down List for Stored Procedures Automatic Parameter Population Drop Down for Scheminame TableMapping Support
Meta Data Service
Create, Drop: Table View, Indexes Alter Table Data Migration BdpcopyTable
DataHub and DataSync Able To Resolve Database, Data CAN Come from Multiple Database Sources Into A Single DataSourceRemoteConnection and RemoteServer Are New Components That Make It Easy To Remote Datasets.
Chris Hesik (Debugging Features)
Able to run and debug multiple applications at the same time, this includes project targeting different platforms Win32: Local Variables for each stack frame AppDomains in Module View Breakpoint view has easy check box enable / disable and tool bars IL Disassembly in the CPU View Exception. Dialog - Break and Continue Button and a Check Box To Ignore The Exception Type.
Hendrik and Malcom (ECO)
Design Surface to Define Classes. Showed how they work with ADO.NET How you can change and object and it auto update the database. Showed how use the an existing database. The reversed the SQL Server Northwind Database
Mark Edington
Unit Testing Dunit and NUnit
The Battery Going Out Will Update The Rest Later ...
Posted on Monday, September 13, 2004 5:59 PM
3.10.4. Diamondback Debugging
Craig Stuntz
I Haven't Written ABOUT Diamondback As Much As I'd Planned Since Others Are Doing Such A Good Job of It. But One Demo Which I Thought WAS NEAT WAS ConcURRENTLY Debugging Win32 and .NET Apps.
the debugger is context-aware and will switch back and forth between Win32 and .NET modes as required. So you can create a project group with both .NET and Win32 projects and set breakpoints in both of them. When they trip, the debugger will Change Modes for the Current Frame. SHOULD BE VERY USEFUL for Debugging Applications Which Host The Framework, ActiveX Controls, and UNMANAGED Exports in Delphi for .NET Apps.
Posted on Tuesday, September 14, 2004 3:56 PM
4. Borcon Tuesday sessions and events4.1. Remobjects at Borcon
Serge dosyukov
Alessandro Federici had BOF session today about RemObjects Framework and Chrome.Borland was not be able to manage to put his name on BC Update flyer for some reason but people did come and able to see in action an elegant solution provided by RemObjects for Delphi developers Visit www.remObjects.com and see this great library.
As a second particar of presentation we cut chrome
Chrome is RemObjects' Next Generation Object Pascal language for the .NET and Mono Platforms. While implementing a language that stays true to the beauty and elegance of Object Pascal, Chrome adds useful design elements from other languages such as C #, Java and Eiffel, and it introduces its own language innovations.Use Chrome to write fully managed native .NET applications for the Microsoft .NET Framework, the Compact Framework or the Mono Platform, and develop your applications inside the well known Visual Studio .NET IDE
I really would like to see evolution of this product. If you are open for changes in Object Pascal language then it will worth to look at it.Alessandro and is introducing a new language which is similar to OP (about 80%) but added team FEW EXTENSIONS To IT (Aside from One Related To .NET Framework) .for Now It is Just Language (No Designer), But you can code in it for .net. and ... it compiles and weight !!!! And IT IS in Visual Studio, IT Consumes It, So All Features of VS.NET Available for Developers.
USING PASCAL LANGUAGE for Last 15 Year, I Really Looking Forward What this Project Became over Time. Great staf.
Posted by Serge AT2: 46 PM
4.2. OverView of Interbase 7.5
Craig Stuntz
Charlie Caro Gave A Preview of New Features in IB 7.5, A Free Update for IB 7 Customers.when?
Goal is to ship with diamondback.
Features and Goals of Release
SQL Functionality Global temporary tables - like a regular table but data goes away at end of transaction or attachment Each attachent sees its own data only Can be indexed SQL Standard does not allow constraints between regular and temporary tables CASE, COALESCE,.... NULLIF SQL Performance Memory management algorithms changed to better fit a server architecture. SMP support exploited to increase allocation speed. Allows memory to be reclaimed and returned to the OS more regularly. Stored procedure clones, internal queries, and the like can not hold memory for extended periods of time anymore. By default done every five minutes, but can be done manually via performance monitoring or you can change the default. Sort buffer allocations optimized to reduce page faults. Page size limit increased to 16K, page buffer limit increased to 131,000 - Allows Use of fulol 2GB Address Space Available to process. Don't combine these Two maximum values as ib does NEED Some Memory for other things! cache will be dynamically expanded for increaed client loads I / O strategies: Two new alternatives to forced writes or asynchronous writes:. Asynchronous writes with periodic flush - IB guarantees a write cache flush every so often, can be triggered manually or scheduled Pages. Written in Order of Optimal Performance, with intra-thread coordination. "group commit"
(Careful writes done in background thread). Database linger prevents server from freeing up memory when all attachments detatch. Good for cases where users frequently connect and disconnect, like a web application. Can be configured with the interval of your choice. Also allows garbage collection or sweep to continue Server performance - SMP Atom synchronization improved;.... prevents excessive thread switching for high-frequency, short locks Means IB can use maximum CPU power Improved SMP performance by changing page latches to reduce need for multithreaded synchronization Long -running procs and queries should see 100% - 300% improvement;.. sweep can be three times faster JDBC driver improved - supports savepoints, remote protocol improved Security Embedded user authentication allows storage of user data in DB file instead of central admin. IB File. Can Maintain User Accounts with DDL-Like Commands. CAN Set Default Users. CAN CREATE A SYSDBA User (with Usual Privi leges) but it is not required. Users can change their own passwords. Deployment Can run multiple versions of IB on a single server machine (as long as at least one of them is 7.5 or higher). Ease of use Server-side DB Aliases. Defined in Admin.IB Table DB_Alias. Performance Monitoring Improvements.Posted On Tuesday, September 14, 2004 8:38 PM
4.3. Borcon Day 3 - Tuesday
Euan Garden.
Luckily my alarm call actually worked this morning so I managed to make it to my session on time, no demo dramas this year (last year I had to rebuild my machine starting on the morning of my session). I managed to get through all my slides bar 3 and 1 of my demos, which I was pretty happy with. It was really a 100mph session with a ton of content, I checked out the feedback forms and most people were happy but the did complain there was not enough time. I 'll try and prune it back if we do it again next year, all feedback gratefully received for next years version The agenda is below so you can see what I covered:! SQL Server 2005 Overview SQL Server Express Edition Data Access .Net Integration Web Services INTEGRATION T-SQL XML Security Service Broker
After my session I sat in on Donald Farmer's session on DTS and Reporting Services, Donald did his usual awesome job, including writing a report designer in Delphi for .Net. He then showed how DTS can consume RSS feeds and used Text Data Mining to decide ON .INTERESTING. Articles.
I then spent lunch working on the booth and giving out the SQL Server 2005 Beta 2 resource kits which included B2, Hands on Labs, Web Casts and a bunch of other useful stuff. We finally ran out of SQL Server T-Shirts as well, but we gave out some others at the party later. I bumped into BradA as he was arriving, he was sitting in on some of the sessions as well as answering questions in the booth before he headed out to a user group meeting and doing his session AT 8 On Wed Morning. We obviously upset the Same Person To Get Stuck with 8am sessions!
After lunch I headed back to the hotel for a quick snooze, another conclusion that I am getting old, I can not handle the late nights (and no alchohol was involved!) At conferences any more! This evening was the party sponsored by MS at the San Jose Tech Museum, this is the same place as last year so I managed to find the food MUCH faster than I did last year. Spent time chatting with some of the falafels and some of the other MS folks. DavidI came over to Chat for a while and was telling US amusing stories from previous borcons. He Has Been to the odd one or 2, Overall IT WAS A Good Night and theere More Free T-Shirts on the Way Out. Oh and if you at the guy I Saw Dipping Twinkies in the chocolate sauce on the desert table, i really hope you get help for the carb address!
Posted on Wednesday, September 15, 2004 6:57 PM
4.4. Creating Custom ASP.NET Components with Nick Hodges
Jim McKeeth
Nick Hodges of Lemanix (The # 1 Borland Partner In minnesota) is covering asp.net component building. He will be used DiamondBack and Delphi.
First A Couple Panoramic Shots:
. On the right is one of the man stationary Cameras.
This One is from Up Front WHERE I ended up sitting. NOTICE The TABLES THEY HAD SET UP THIS YEAR IS MOST All The Halls. It Made Taking Notes Very Nice.
UPDATE:.... These photos are from Nick's ASP.NET Development Strategies, not Creating Custom ASP.NET components Same speaker, different location and time This pictures do not do Nick justice He looked like a rock star up there When he finished HIS sessions and the limitening video.
Topics to be covered:? Why build controls User Controls Rendering Web Controls Persistence in Properties Block Types Div Span P (Paragraph) Postback Management Lifecycle of a control Client-side Javascripting Composite Controls A control made of multiple controls Complex Properties Inner Properties State Management of Complex Properties Template Controls Http Handlers
User Controls
User Controls are "page chunks" that just provide a portion of the page. Typically they contain common headers, footers, etc. Need to have the "* .ascx" extension. Behind the HTML there is also code-behind code.
Server Controls
They abstract the browser so the correct code is rendered for the current client. They encapsulate features and behavior and maintain state. Server Controls are configurable at design-time like components. Server controls are easier to share then user controls.
System.Web.ui.Control Is The Base Class to Descend from. Must Have a parameter-legs constructor. All Properties Must Have Get_ and set_ assessors.
Any HTML you want to output must be outputted in the Render method. Simply place the control in an assembly (or package) and install it into the IDE. It is worth noting that the control does not by default have any style support.
For A Web Control You Override Render Render Method Handles The Block Tags (P, SPAN, DIV, ETC.)
Composite Controls
Composite controls are controls that contain multiple child-controls. This is different then User Controls because all the controls are generated in code with no visual design. Must implement INamingContainer (with no methods) to indicate that it will name all child controls based on the name of the parent control to prevent collision with other controls on the page. All assessors must call EnsureChildContols before accessing the properties of the child controls. Composite controls must override render for customer rendering. If Render is not overridden then the child controls are streamed out one after the other. When overriding Render you can call AddAttributesToRender passing the Writer to automatically render the attributes of the parent control.The Writer is an HTMLTextWriter class to facilitate the construction of HTML. Internally it uses StringBuilders and understands the concepts of opening and closing Tags by calling renderbegintag and renderendtag. if you want to add attribut Es Ten You Call ADDATRIBUTESBEGER You Call Renderbegintag. To Render A Child Control Call The RenderControl Method of The Child Control, Passing In The Writer.
Posted by jim at 9/19/2004 07:12:57 PM
5. Borcon Closing Sessions
5.1. Borcon 2004 Closing Session
Serge dosyukov
Session is started with digest of the moment from opening session. Then it is followed by introduction dance by dancing group which we saw sunday. Dale and David thanks support team, advisory board, speakers, TeamB and people who blog during conference. "Thank you Word to a sponsors
Then after some information discussion for BorCon attendees, John presents a new features of BDN web-site: new format (ASP.Net, Diamondback ... some section are already moved some might moved as it go), new EventCentral.Dale and David Again Point To a Presentation Of Delphi 2005 Version and Encourage To Go and Evaluate Product (D2005 Preview), Prepare Yourself for Official Release.
Again Dale Point At Effort of Borland To Go Hand-by-Hand With Developers Into a New Era of Software Development and BEING WITH BORLAND All these Years.
THEN IS A TIME for Borland Bucks Drawing for Prizes. Dale Mentioned Accident Happened In Past When Borland Bucks Did Fell, Almost, ON GIM AND MISSED by inch.; O)
My friend won one !!!! congratulation.
Again some people.
Then Prizes Again ...
Borcon 2004 OFFICIALLY IS Closed.
Ps. I will contact your machine with this blog to give you more details on sessions i
Posted by Serge At 2:44 PM
6. Resources
Other Borcon 2004 Resources on The Web:
Marco cantu http://www.marcocantu.com Paul Gustavson http://www.simventions.com/gustavson/ Dr. Bob http://www.drbob42.com bdntv http://bdn.borland.com/bdntv borcon 2004 wiki http://www.excastle.com/borcon2004/wiki.pl