Fog Creek Software
Discussion Board




Intro to Visual Studio .Net for Delphi person?

Hola...

I've been an anti-.net luddite for long enough, but I just loaded a 60 day eval copy of VS .Net 2003.

One reason I've kept away from the entire .Net thing is the bewildering amount of "talk" on the subject. Everyone who writes about this stuff seems to assume that one is willing to live in .Net docs for months and to start from an elementary "this is a procedure, this is a class" tutorial level.  Even VB 7 is certainly not like VB 1-6, you don't just jump in... or do you?

So, can anyone suggest existing example projects based upon .Net that will showcase this environment --- esp. for a long term win32 & workstation developer? I am a proficient Delphi and C++ developer going back 8 and 12 years respectively, so the last thing I need is simpleton syntax tutorials.  (I do realize that there are significant differences in project construction, etc.)

I am interested in simple examples of web services, winforms, and database development. I really don't care if it's VB# or C#.

I appreciate any focus that can be brought to this stuff. Thanks.

Bored Bystander
Wednesday, April 14, 2004

Forget tutorials.  If you have knowledge of C++/Java syntax or the VB gui components, you'll be right at home in C#.

We just jumped head first writing code (we're all exerienced in either C++, Perl or VB), using MSDN as our guide.  We also bought Richter's and Petzold's books as references, but certainly haven't read through the more part of them.

I was amazed at how soon I could produce something that wasn't trivial.

Walt
Wednesday, April 14, 2004

HEAD ON A PIKE!!!

.
Wednesday, April 14, 2004

BTW: MSDN has many examples in the reference pages, and several sample projects covering different topics.

Many more you can get from codeproject, etc.

Walt
Wednesday, April 14, 2004

C# Programming by Jesse Liberty, published by O'Rielly.  Its concise and to the point. 

As Delphi develop recently converted to the .NET world, I can tell you the transition was reasonably painless.  I found that to just start coding was the best way to get started.  You will be productive very quickly.

Enjoy ...

Canuck
Wednesday, April 14, 2004

http://msdn.microsoft.com/vbasic/downloads/samples/default.aspx

Kyralessa
Wednesday, April 14, 2004

Why aren't you including Delphi8's IDE in your eval if you want .net? I like VS.Net/C#, but it doesn't come close(yet) to Delphi for RAD time-to-market, community add-ons, etc etc and asp.net is still behind Delphi/Intraweb for advanced web apps, just as VS.Net/C# lags behind Delphi/RemoteObjects for getting web services out the door (haven't tried VB.Net yet).  All this IMO of course :)

Joe Hendricks
Wednesday, April 14, 2004

Everyone, thanks for the guidance. Much appreciated.

Joe: Yeah, I thought of that. But it occurs to me that by staying in Delphi I am dodging the inevitable familiarization with the .Net development environment. IE, going through VCL type wrappers and Delphi equivalent units and packages instead of just biting the bullet and learning MS's "ways".  And I see profound marketability problems with Delphi "the language". I love it but few companies hire for Delphi.  Delphi (7) is what I would use for shrink wrap development.

Bored Bystander
Wednesday, April 14, 2004

Bored,
  Did you do anything with WebSnap?  If you did, start off with some ASP.Net - it looks different on top, but there's a lot of parallels you start running into after about a day of work.  (Gee, I wonder why.)

Unfocused Focused
Wednesday, April 14, 2004

Try these links:

  http://www.codeproject.com
  http://www.codeguru.com

Jussi
Wednesday, April 14, 2004

Bored,

I decided to write something that was actually useful to me.  It's hard to pick something that's small enough to be a good learning project, but still big enough to be useful.  I managed to come up with something, and it turned out to be a much better than simply writing "Hello World" in WinForms, WebForms, WebServices etc.  :-)

I wrote a program to compress JPEG images (http://homepages.paradise.net.nz/jjrusk/tech/id51.htm).  It taught me the basics, plus some more advanced topics such as data binding and how to correctly implement IDispose (my first version leaked unmangaged resources like a sieve!)

John Rusk
Thursday, April 15, 2004

My advice: jump directly into coding, especially if you want to write components.

If you want to write ADO .NET database programs, then my advice is to read something about it in advance. ADO .NET is weird and error-prone.

Also, some of the controls included in .NET are very, very buggy - the equivalent Delphi controls are heaven, compared to them.

MX
Thursday, April 15, 2004

What did you find 'weird' about ADO.NET?

I thought it was heaven compared to vanilla ADO. 

Typed datasets make CRUD applications so easy.  Don't get me started on the databinding ...

The one thing that I thought was really lacking however, were some good widgets.  The ASP grid is a joke.  Having to shell out a few hundred $$ to DevExpress wasn't my idea of a good time.

Not much different than Delphi in this respect though.

Canuck
Thursday, April 15, 2004

Try to use an Access database, for example, with tables containing autoincrement columns (let's say the columns are called ID).

Update the tables.

After a few operations, you will notice very strange errors.

Why?

Because the IDs in the tables got out of sync with the IDs in memory... so in fact the database isn't updated correcly.

You have to write code (event handlers) which, after an update, read the ID's back into memory, for every record.

As a Delphi programmer, the fact that the components themselves don't handle this seems an unexcusable primitivism.

I use RAD environments to be very productive, not to spend time coding things that could have been coded once and for good by the makers of the IDE and component set.

Also, I find the fact that ADO .NET is disconnected to be error-prone, because you have to decide when to Update the disk tables with the contents in memory.

If you don't update one table, but update another, then you may have a database integrity error. There are also other errors which can occur.

It's a detail you have to keep in mind permanently.


About the .NET controls vs. Delphi controls:

The Delphi controls are comparable, but at least they are not buggy.

The grid control in Delphi at least works.

The grid control in WinForms contains very bad, unexcusable bugs for such a simple component, and you have to write code to work around bugs.

So, if you buy Delphi, at least you get controls that work. If you buy .NET, you get less controls, and the controls have lots of bugs.


The programmers who use MS environments such as VB are probably used to having bad bugs in the major controls, so they acknowledge the bugs, but somehow manage to think that this is normal.

MX
Thursday, April 15, 2004

BoredByStander said, "But it occurs to me that by staying in Delphi[.NET] I [would be] dodging the inevitable familiarization with the .Net development environment. IE, going through VCL type wrappers and Delphi equivalent units and packages instead of just biting the bullet and learning MS's "ways".  And I see profound marketability problems with Delphi the language. "

Most of the above paragraph expresses valid considerations, but I think it's misleading if the intended suggestion is that VCL is a wrapper around .NET.  VCL is a wrapper around Win32 in the same way as .NET/WinForms is a wrapper around Win32.  VCL.NET is not a wrapper around .NET. 

Moreover, VCL.NET is apparently faster than WinForms in most areas at the current time.  In particular, screen painting operations in VCL.NET are supposed to be much faster.  Not surprising if you consider that VCL has existed already for around ten years and has already undergone a port from Win16 to Win32, and now Win32 to .NET.

Also, VCL.NET is a pretty minor port from regular VCL, and most of the major third party vendors (e.g., DevExpress) have announced that VCL.NET versions of their VCL controls will be available soon, and many already have released VCL.NET compatible upgrades.

You can read more about VCL.NET in this Borland document. 

http://bdn.borland.com/article/0,1410,31983,00.html

(Disclaimer: I don't have firsthand experience with VCL.NET, or Delphi 8 for that matter; my opinions are based just on keeping up on the reading on Delphi 8 and from a presentation on Delphi for .NET by John Kaster of Borland.)

Herbert Sitz
Thursday, April 15, 2004

Sorry, should have said, "but I think it's misleading if the intended suggestion is that _VCL.NET_ is a wrapper around .NET.  _VCL.NET_ is a wrapper around Win32 in the same way as .NET/WinForms is a wrapper around Win32. "

Herbert Sitz
Thursday, April 15, 2004

Good point about Access ... I'll have to take your word for it, since I have only used SQL Server/MSDE for the back end. 

Regarding the concurrency issues though, that is inherent with disconnected recordsets, which existed in ADO as well, if you set your data access up that way.  So that problem isn't new to ADO.NET.  Albeit, it is somewhat uncomfortable if ADO.NET is the first time making that transition. 

Canuck
Thursday, April 15, 2004

*  Recent Topics

*  Fog Creek Home