MarimerLLC / cslaforum

Discussion forum for CSLA .NET
https://cslanet.com
Other
31 stars 6 forks source link

Re-newbie - getting started again #195

Open RQJohnson opened 8 years ago

RQJohnson commented 8 years ago

I wrote several CSLA apps between about 2003 and 2010 and was active in the forums then, too. But I have been much less active since then. And frankly, I've forgotten a huge amount of this. And, of course, now I realize I need to get busy with app development again. I'll still only be developing windows apps so web stuff, mvvm, etc. are really of no concern.

So, I guess I should be asking first what version of CSLA I should be using. I am using VS 2012 Update 5 and .NET version 4.6 (though I expect most of my users will be 4.5). I also expect to continue my use of CodeSmith's Generator (of which I have probably forgotten even more) and their CSLA support.

So .. (1) what version of CSLA should I use? (2) I have already purchased the 4.0 book package and am a little daunted by the volume of material there (over 600 pages even if I ignore the WPF, ASP, and win Phone platform books). Yikes! Is this the best way to dive back in? (3) I still have the CSLA 3.8 video series and was thinking of starting by re-viewing those. But if that's just going to make it harder to use the more current version (because of a potentially significant change in the framework since then?) , that seems dumb. So, are there newer videos available? (4) I'm hoping to continue building regular Windows Forms apps as I don't see much value in climbing the XAML/WPF learning curve for the few years I'll continue to do this. But the discussion in book 2 (pages 78 - 80) regarding BindingList and ObservableCollection make me wonder if I really have an option here. Your comments are welcome on this topic, too.

Answers and links to download resources are MUCH appreciated. I am not familiar with this NuGet process either. So please give me a hint about where to get it and how to use to download the relevant version of CSLA.

Thanks in advance!

Q Johnson

rockfordlhotka commented 8 years ago

Welcome back!

Lots of questions, I'll try to answer from my perspective and perhaps others will chime in with their thoughts.

  1. I'd recommend using the current version from NuGet - speaking of which, you should use NuGet to pull in the packages, don't try file linking or any of that old-fashioned stuff, it just makes life harder. The current version is 4.6.300, but 4.6.400 is about to be released (with lots of new Xamarin support).
  2. The most current content is the Using CSLA 4 book that you have.
  3. The concepts and most of the code remains consistent from 3.8 - with the (big) exception that the 4.x rules engine is different and a whole lot better (thanks largely to @jonnybee) - and the addition of support for async/await, which is required for most modern app dev scenarios.
  4. If it were me I'd at least target WPF. I appreciate the simplicity and productivity of Windows Forms, but basically every modern platform (Windows, iOS, Android, Hololens, Xbox, etc.) use XAML, so I really think it is a worthy investment of your time.

Regarding NuGet, it is built into VS15. When you right-click on the References node in Solution Explorer you'll see an option to manage NuGet references right next to the old-style option. That'll bring up a window where you can search for, install, and upgrade the packages used by your project.

It isn't just CSLA that has moved to NuGet btw. Basically everything has moved to NuGet, because it is so much easier from the perspective of both the end user (you) and package publishers (me).

RQJohnson commented 8 years ago

Do I run the NuGet installation for every project for which I want CSLA library access? Or is this an install-once-somewhere operation? It doesn’t seem quite right to me to be putting the whole CSLA engine in my projects. Shouldn’t I only have references to the library files I want to use (which, presumably, live in a solution folder somewhere else… like in the old days J )?

When I try the install command in the package console with no solution open, it balks.

Robert "Q" Johnson

TeamNFP 512 255-7566 Direct

www.TeamNFP.com http://www.teamnfp.com/

From: Rockford Lhotka [mailto:notifications@github.com] Sent: Friday, May 27, 2016 11:59 PM To: MarimerLLC/cslaforum Cc: RQJohnson; Author Subject: Re: [MarimerLLC/cslaforum] Re-newbie - getting started again (#195)

Welcome back!

Lots of questions, I'll try to answer from my perspective and perhaps others will chime in with their thoughts.

  1. I'd recommend using the current version from NuGet - speaking of which, you should use NuGet to pull in the packages, don't try file linking or any of that old-fashioned stuff, it just makes life harder. The current version is 4.6.300, but 4.6.400 is about to be released (with lots of new Xamarin support).
  2. The most current content is the Using CSLA 4 book that you have.
  3. The concepts and most of the code remains consistent from 3.8 - with the (big) exception that the 4.x rules engine is different and a whole lot better (thanks largely to @jonnybee https://github.com/jonnybee ) - and the addition of support for async/await, which is required for most modern app dev scenarios.
  4. If it were me I'd at least target WPF. I appreciate the simplicity and productivity of Windows Forms, but basically every modern platform (Windows, iOS, Android, Hololens, Xbox, etc.) use XAML, so I really think it is a worthy investment of your time.

Regarding NuGet, it is built into VS15. When you right-click on the References node in Solution Explorer you'll see an option to manage NuGet references right next to the old-style option. That'll bring up a window where you can search for, install, and upgrade the packages used by your project.

It isn't just CSLA that has moved to NuGet btw. Basically everything has moved to NuGet, because it is so much easier from the perspective of both the end user (you) and package publishers (me).

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/MarimerLLC/cslaforum/issues/195#issuecomment-222290345 , or mute the thread https://github.com/notifications/unsubscribe/AStMGk0RTSkOFWKzvOqpICftKISJTWGuks5qF8uRgaJpZM4Io0fa .Image removed by sender.

rockfordlhotka commented 8 years ago

NuGet references are per-project, just like regular references.

There are a number of CSLA packages available from NuGet, and you should use the right one for each project.

For non-UI projects use CSLA-Core.

For UI projects use the CSLA package for that type of UI, such as CSLA-WPF for WPF.

The packages are designed so the correct CSLA assemblies will end up referenced - nothing extra.

RQJohnson commented 8 years ago

So the old process of compiling cslacs in debug and release modes and referencing the binaries in our projects is no longer needed then? I guess that makes sense. And it's easier for me. So that's a plus! 😁

Sent on the new Sprint Network

----- Reply message ----- From: "Rockford Lhotka" notifications@github.com To: "MarimerLLC/cslaforum" cslaforum@noreply.github.com Cc: "RQJohnson" qjohnson@teamnfp.com, "Author" author@noreply.github.com Subject: [MarimerLLC/cslaforum] Re-newbie - getting started again (#195) Date: Sat, May 28, 2016 8:32 PM

NuGet references are per-project, just like regular references.

There are a number of CSLA packages available from NuGet, and you should use the right one for each project.

For non-UI projects use CSLA-Core.

For UI projects use the CSLA package for that type of UI, such as CSLA-WPF for WPF.

The packages are designed so the correct CSLA assemblies will end up referenced - nothing extra.

—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread.

RQJohnson commented 8 years ago

I hate to be a victim of semantics here, so I need to be sure you and I are using the same idea for “project.”

Are you saying that if I have a WPF solution, I need to install CSLA – WPF in the WPF project and CSLA – Core in the Library project (because it doesn’t need a UI) ?

Are the templates useful for all types? Can I install more than one (e.g. CSLA-WPF and CSLA-Templates) into the same project?

I actually see all these available CSLA packages at NuGet:

Core

WPF

Windows Forms

ASP.NET

Silverlight

ADO.NET EF 4

ADO.NET EF 5

ADO.NET EF 6

ASP.NET MVC

ASP.NET MVC 4

Windows Phone

Windows Runtime

Legacy Validation

Templates

And, of course, that doesn’t even include a half dozen or more CSLA Contrib offerings there for various topics.

Will the CSLA 4.0 book(s) make their respective uses clear or is there another resource I should consult for this? (Wow, this used to much simpler! LOL)

Q

Robert "Q" Johnson

TeamNFP 512 255-7566 Direct

www.TeamNFP.com http://www.teamnfp.com/

From: Rockford Lhotka [mailto:notifications@github.com] Sent: Saturday, May 28, 2016 8:32 PM To: MarimerLLC/cslaforum Cc: RQJohnson; Author Subject: Re: [MarimerLLC/cslaforum] Re-newbie - getting started again (#195)

NuGet references are per-project, just like regular references.

There are a number of CSLA packages available from NuGet, and you should use the right one for each project.

For non-UI projects use CSLA-Core.

For UI projects use the CSLA package for that type of UI, such as CSLA-WPF for WPF.

The packages are designed so the correct CSLA assemblies will end up referenced - nothing extra.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/MarimerLLC/cslaforum/issues/195#issuecomment-222337653 , or mute the thread https://github.com/notifications/unsubscribe/AStMGrta_2j0v1noUbfI5b7XEBr1pDTUks5qGOyjgaJpZM4Io0fa .Image removed by sender.

Chicagoan2016 commented 8 years ago

Hi there, I think we are almost in the same boat :), I would recommend keeping a using csla 4.0 books' copy handy, it has definitely helped me alot. Please keep me posted what you found out about CodeSmith templates, it appears that Codesmith templates that are available are pretty much useless for CSLA 4.x and I dont have the time to learn to write my own codesmith templates.

Thanks

rockfordlhotka commented 8 years ago

When I say "project" I mean a project in Visual Studio. A solution is composed of one or more projects.

In most CSLA solutions you'll have at least two projects: a UI project and a business library project. And sometimes an appserver project.

The business library project should reference CSLA-Core (so you'll get Csla.dll).

The UI project should reference the CSLA package for that type of UI. NuGet will bring in dependencies as needed (so if you pick WPF, you'll get Csla.dll and Csla.Xaml.dll).

The appserver project is probably hosted in ASP.NET and so should reference CSLA-ASP.NET (so you'll get Csla.dll and Csla.Web.dll).

rockfordlhotka commented 8 years ago

This reddit thread has some people's thoughts on what kind of UI to target: https://www.reddit.com/r/dotnet/comments/4llg0c/which_gui_framework_for_new_enterprise_business/