Lost programmer seeking advice

I am a programmer with a lot of knowledge of Delphi and Borland tools. I am now moving on to learning C # and .NET.

I am planning to rewrite my commercial application.

With all the thoses technology available with Microsoft tools, I am completely lost.

Which way? WinForms? WPF? WCF? Asp.NET? Using Microsoft Ajax? JQuery? NHibernate? Strong typed datasets? S # agr? Lock? Rhino?

I know all thoses technologies are not mutually exclusive and interoperable, but I would like to know what combinations you think are the best in the .NET world.

In short, my application is a database application. I need reporting and the ability to send custom strings for label / ticket printing. In one particular section of the application, I need graphic manipulation. Like drawing an image and being able to make a mouse on that image, like grabbing the mouse up / down / moving. Nothing really advanced, but needed. I also need some features of my application to be available online ...

If you have tips, hints, tips, success stories ... I really want my hands dirty in .NET, but I have 1G heads a day reading all the stuff available.

Thank.

+2


source to share


4 answers


From what you have provided in terms of the data of the current implementation, it looks like you want to focus on the desktop app (not the web); and assuming your customers don't mind installing the latest .NET framework, you should focus on using .NET 3.5 SP1 tools (or even 4.0 framework if your expected shipping date is ~ 6 months or more).

The decisive factor that you mentioned is peripheral support; namely, the ability to print to printers. Web technologies are great for replacing applications to a certain extent, but edge support is not their strong approach. They might work if you can create print documents and essentially just "print a page" to printers, but if you need to do any low-level communication with printers, then a rich client application is still a powerhorse.

However, rich client applications can blur lines. ClickOnce deployments can handle the distribution of updates for the application, and WebServices can allow you to centralize certain logic).



With regard to specific technologies; it depends on which clients will be installed and what your needs are. WinForms will be supported for a fair amount of time, but WPF seems to be the way forward; he sees more widespread adoption, and Microsoft is proving this as serious technology (not just eye candy) in VS2010 and other new products. WCF is essentially a revolution in .NET, while Microsoft is marketing it as a new way to do web services or replace existing messaging technologies (most likely a wrapper), the fact is that it brings with it a lot of functions and performance enhancers.

In terms of stuff at the data level: ORMs are large and powerful, but they also require knowledge to work properly. If .NET 4.0 is a possible target for you, you can take a look at EF4, Microsoft's official ORM (current version is not fully baked). NHibernate is also mature and stable and provides many resources. The typed datasets are fairly dated and are increasingly looked down on.

+5


source


It's too vague to actually answer. "It depends".

I assume your application is currently a window? Any reason to make it a website? If not, forget about asp.net and allow the choice between winforms and WPF.

Now think about where the application is running. On your own PC or on clients? depending on your deployment options (os, whatever) you would go with winforms as it might be more supported, but if you can, go to WPF.



Okay, so with that we'll go to your database. If you want an ORM (which is what you need) I love LLBLGen, but it costs money. IMHO, it's worth it, but decide for yourself. So, with this sorted ...

Unit testing. You probably won't need rhinos as this is more for taunts that you don't write, but maybe you can. Just start with NUnit, and as you progress, you decide what you need to check and what not. Don't worry about teaching it.

This is how I would do with her :)

+2


source


Focus on the infrastructure and models I am currently using and will:

  • IoC - I am using Unity and it works great so far.
  • ORM - nHibernate + Free nHibernate + LINQ for nHibernate
  • Glue - Write your own glue to hold things together.

If you need a web application, I would go with asp.net mvc. Try to get everything to work without any javascript and then add jQuery and javascripts to give a better experience, but don't demand it.

If you want to use a desktop app, I'm not sure which one I would choose, so I'll let others give advice on that.

+2


source


I came to C # from Delphi a few years ago. I can feel your pain. The .NET framework is a monster and you need to learn a while. You are where you should be.

I think you should start with a Winforms application. WinForms is the standard .NET framework for writing desktop applications. It will be very similar to the Delphi designer. Drag and drop controls onto the design surface and assign properties and events. It is a mature .NET technology.

Many of you are going to push you towards WPF for desktop development by telling you to write WPF applications and winforms is dead, etc. IMO the WPF design experience sucks in VS2008. This has improved in VS10. We'll see. Right now, people are recommending Blend for WPF design if you go that route.

I would take a book on winforms and a book on ADO.NET. ADO.NET is a little different from the standard data access functionality in Delphi. Plus, Winforms has much more flexible data binding than Delphi. You can bind to anything in .NET. This is a welcome change for a Delphi developer. I would use a standard report to write reports.

Once you're comfortable with WinForms, I'll move on to ASP.NET, WPF, WCF, or wherever I want.

Good luck!

+1


source







All Articles