Borland Conference 2004 Blogs
Compiled by Erwien Saputra
Acknowledgement
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 granted
permission to use their articles, listed alphabetically:
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/craigstuntz
Joe 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
1. Preconference.
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 Bit Changes 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 keynote.
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.
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 first
I 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 incorporating
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. It gives you a
starting point from which you can elaborate and come 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
fully customizable. Great addition for Delphi component
streaming.
posted by Serge at 2:39 PM
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 that sound? 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 in
about 15 minutes.
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 doesn't suffer marketing
well, I don't think....)
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 developer, he's far more interested in the
platform.
Driving Factors 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.
Danny points out that 2.0 development is
really being driven by Yukon/SQL Server -- that the needs of what
they want to do with Yukon is what is driving the development of
2.0.
CLR Architectural
Changes
Generic Types are probably the most
significant change.
Large increases in CLR Host capabilities
64-bit platforms will be released only on the 2.0 platform,
including Intel Itanium II, AMD64
Improved Compact Framework support -- less .Hackish .
particularly for the design environments. Danny says that
Borland is .very keen . to support the CF in Delphi, and
they are continuing to work with MS to work this issue out.
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't
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 isn't 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 for
modification.
VB.NET Language
Changes
They will be able to access, but not
define, generic types
Partial classes
Operator Overloading
XML DocGen
Edit 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 (i.e. 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 complete implementation.
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
- Won't even look at code that doesn't
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 don't pass, you don't 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
won't do 1.1 at all.
- This is definitely a move by MS to move
into the Enterprise space. They definitely are 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 CLR
Compatibility with
1.1?
- Theory is that .Net will get rid of DLL
hell. But this hasn't 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 calls
from 1.1. There may be side effects, however.
- 1.x and 2.0 should sit side-by-side on
your machine.
- You might be able to use an
app.config file to .float . a 1.1 binary 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 it is out there, and may affect
your 1.1 apps, even though it isn't supposed to. ;-)
- Danny points out that 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
Robert Love
I 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 in 2005.
Delphi Syntax for Generic Types will
be:
type
TFoo<T> = class
private
data1: T;
public
function SomMethod(param1: INteger;
Param2 :T) : Integer;
end;
function
TFoo<T>.SomeMethod(...);
begin
end;
var
Foo : TFoo<Integer>;
posted on Saturday, September 11,
2004 7:46 AM
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
changes.
Delphi with VCL will need some
changes. Specifically because THandle is declared 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
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 exhaustively 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.
posted on Saturday, September 11,
2004 10:29 AM
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 won't license it out, so Delphi is out
of luck (and so is C#)
- Pointless side note: The Delphi/Win32
compiler has a NativeInt type. Don't use it. It's going away.
- Delphi for .NET will 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 the 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 doesn't 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 don't want to codegen Win32 code
at runtime
- Generics may exist with restriction that T
must be an interface (or maybe a class)
- Don't 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, another for the
page footer, and a handler in Global.asax to insert them into every
page)
- Editorial note: 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 introduce
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 won't work in CF because of the
way Delphi tries to ensure deterministic unit initialization order
(calls RunClassConstructor, which doesn't exist in CF)
- Diamondback will try to load that method,
and if it doesn't exist, will still let the app run (but won't
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 sends you on your way
- There's only one version of mscoree.dll on
your system at a time (not much other way for it to work)
- Bug to note: When 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 didn't blog the stuff I wasn't interested in, but
this should be of some interest to the folks back home. 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
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 yesterday afternoon, 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 sides front and back. The first 19 pages (not counting the
cover page) were just an outline.
He did not go into detail on all of this
material. He had 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-really-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 The Release. It's too bad. If
they were selling Diamondback today, there's no question in my mind
that we would 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 couldn't 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
"Don't 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 are 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 doesn't 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 there are two different TFoo classes in two
different units, this will find only references to the one you
selelcted. (Based on the same metadata as refactoring)
- Doesn't 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 often 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 didn't 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
situation 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 A.B.C.pas used to go into namespace
A.B.C, but will now go to namespace A.B
- New convention for globals: global Foo in
A.B.C.pas is now A.B.Units.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
Dave Nottage
OK, it's a corny title.. so sue me ;-)
I haven't 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
noted 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
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 was 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 doesn't
match the case of the original declaration, however it's
something I've been against making automatic in an IDE unless 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 automatically
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
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 session, talk with Kenneth,
you will find what you can get many good ideas. 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 AM
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 along with some 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 shouldn't 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, then 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 - that exercises
only what is needed - and then a stub for the method (resulting in
a test failure), 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 - don't add
other unexercised and unrequired features
- Refactor
- Re-test
Reasons not to Use Unit
Tests
Assuming you already have reasons to use
it. Don't read these reasons unless you already have reasons to use
unit tests. Don't 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 don't 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
Setup and Teardown is run before and after
each test method. Tests should be discrete and independent so the
order of the tests doesn't 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
Let your users / management pick 3 items.
The 4th one is the flexible and the developers set the level
on.
XP
Unit testing is required for the other
features of XP. Everything should be tested. You will write the
test first, then 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 the minimum you need to make
it work. Start out with the assumption there is a simple solution.
If it is complex then 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
then just do the minimum now.
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 cannot 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,
iterative development, release often
Code that is easy to test is easy to use.
It should be encapsulated and uncoupled.
posted by Jim at 9/19/2004 06:59:46 PM
2. Borcon Sunday Sessions and Event
Nick Hodges
I just got done giving my tutorial on
Building ASP.NET Controls. I think it went pretty well -- 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 should have known
better. getGiving a 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 they are over. I'm
always in a good mood when I get to teach.
Yesterday I went to Lino's .ASP.NET:
Fasten Your Seatbelts . which was well named. Lino
started at a hundred miles an hour and didn't 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 the 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
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
Falafel, they have
sporting theme going on their stand this year, they also have yet
another venture, CodeFez. I'd
swear that Lino has more subsidiaries than MS!
Seems like Nick has been
having more luck
with 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 ever 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 bloggers from borcon with far more
detail than I have:
Plus the annual tradition of Dr Bobs conference
report
posted on Tuesday, September 14, 2004 10:37 PM
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
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 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 that this conference is
one of many. There's the European Conference at the end of the
month, 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 don't have that award, they
should invent it for him.
David I just introduced 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 code
., 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 don't 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 they are
talking about it. Oops, red ball on Blue Dwarf. There is some kind
of Dashboard thing with status balls. Whatever.
- I don't have any idea what this is. This
is really 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 goes to
Dunn
Solutions Group.
The Trainer of the Year goes to Tom
Margrave from Orasi Software. (He's a StarTeam trainer).
The Technology Partner of the Year goes to
four folks: AutomatedQA, BusinessObjects/Crystal Reports, Segue
Software, and Woll2Woll Software.
The University of the Year award goes to
Carnegie-Mellon. Borland gave them $1,000,000 bucks! Wow.
The President's Award . i.e. 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
Robert Love
I am sitting in the front row of the open
session this year there are some tables... I only can assume to
make it easier 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.
They reminded of several key
sessions. Stop back by here on Monday Night. 8pm MST - where
I will be in the Diamond Back Preview and Meet the Team
sessions.
David welcomed 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 Developers!
Dave I.. showed a video previewing
Diamondback. Here is what I caught, it was going by really
really fast!
- Refactoring: Rename Method, Auto Declare
Variable
- Unit Testing
- Win32 and .NET
- Code Change History Window
Dale Mentioned the following
1/3 of all Development Projects are never
completed. Everything resolves around the .Code
. and Borland's Tools that
focus on business are designed to improve the process of getting to
the .Code. .
Then the CTO was welcomed 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
Trainer of the Year
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
Then they received a $1,000,000 check as
the award. The Dean was able to to talk after the award
and he mentioned that his students like to use Borland
products.
President's Award
Allen seemed happy the check associated
with his award.
Then Dale came back out with the T-Shirt
Cannon!
Then they let us go for a party!
posted on Sunday, September 12,
2004 4:03 PM
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 couldn't 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. They basically 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 on.
Opening keynote
I agree with Nick: San Jose Taiko's
performance was very cool. The song they started with was called
"Matsuri", which means "festival".
More about SDO, including the skit. I liked
the programmer's comment, when the "project manager" 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 they offer some
good sessions next year that give us a solid sense of what this
stuff means.
posted on Monday, September 13,
2004 2:04 PM
Joe White
Had to blog this first thing.
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 Team session tonight. (Now aren't you sorry you missed the
con?)
New toy. Hehehe...
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
Nick Hodges
Well, 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
them! How cool is that! Very well done.
David just introduced Boz Elloy. His topic .Maximing the Business
Value of Software ..
Borland's Vision is:
- Continue to build software for software
people
- Continue to server the needs of software
creators
- Broaden our outreach to help .other . software people (Managers,
analysts,
etc.)
More on the buzzword of the day .Software Development Optimization .:
He just promised us a .Borland
Roadmap in some detail ..
I like Boz. He seems 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 the
features of CaliberRM really well. They are demoing the process of
managing a change and resource change to an application. This
is well done.
I'm jealous. They are demoing the
Caliber and Together stuff integrated right into JBuilderX.
Very slick.
These guys are funny and getting a lot of
laughs.
Boz is back now.
He's talking about how developers are the .gods ., creating
something out of nothing. But he
doesn't 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 development
tools. Software developers may not have the knowledge to
properly manage and deploy software.
Three myths of Software Development
- It'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, you are in
software. If you turn off the software, 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 anything
that can be blogged really well.
posted on Monday, September 13, 2004 8:47
AM
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 commented that more companies were
standardizing on Borland's tools. Borland tools were involved in
sending the rover to mars.
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 of them to
remember me.
In my brief visit with Dale he mentioned
that most likely there wouldn't 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 that if and
when things do change on 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 either 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
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 as a very low-level view of
how InterBase is using server memory.
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
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
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 development ...
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/.
Then there were some comments from Borland
team about how Borland strategy IS working within Borland software
development cycle.
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 announcment of the
new versions of products
- JBuilder 2005
- StarTeam 2005
- Caliber 2005
Note. Borland
finally decided to go with year based versioning
As a closing point of the presentation we saw one of features of
upcomming DiamondBack - NUnit based testing
And 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
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 .other . software people
They call this vision Software
Delivery Optimization
Then started a funny but realistic role
playing situation began to roll out for iPets.com
During this they used the following
product.
- 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 considered 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
- Ensure 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 these things.
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 supported (Includes Delphi
Support)
Project Hyperion -
Visibility and Predictability
Project Prometheus - ERP
for Software Delivery
Announced the following products
- JBuilder 2005
- StarTeam 2005
- CaliberRM 2005
Then 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
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
Built in unit testing support. Supports
both NUnit and DUnit. Greater functionality for building tests then
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
Jim McKeeth
They just announced 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
Craig Stuntz
Michael Swindell
demoed unit testing in Diamondback at Monday morning's general
session. Very slick. There's nothing added that you can't 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
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 don't 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 that 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
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 r