The Lounge is rated PG. If you're about to post something you wouldn't want your
kid sister to read then don't post it. No flame wars, no abusive conduct, no programming
questions and please don't post ads.
1. The lounge is for the CodeProject community to discuss things of interest to the community, and as a place for the whole community to participate. It is, first and foremost, a respectful meeting and discussion area for those wishing to discuss the life of a Software developer.
The #1 rule is: Be respectful of others, of the site, and of the community as a whole.
2. Technical discussions are welcome, but if you need specific programming question answered please use Quick Answers[^], or to discussion your programming problem in depth use the programming forums[^]. We encourage technical discussion, but this is a general discussion forum, not a programming Q&A forum. Posts will be moved or deleted if they fit better elsewhere.
4. No politics (including enviro-politics[^]), no sex, no religion. This is a community for software development. There are plenty of other sites that are far more appropriate for these discussions. Or if you must, use the Back Room[^] - but enter at your own risk.
5. Nothing Not Safe For Work, nothing you would not want your wife/husband, your girlfriend/boyfriend, your mother or your kid sister seeing on your screen. For those discussions where you wish to be a little more frank, use the Soapbox[^]
6. Any personal attacks, any spam, any advertising, any trolling, or any abuse of the rules will result in your account being removed.
7. Not everyone's first language is English. Be understanding.
Please respect the community and respect each other. We are of many cultures so remember that. Don't assume others understand you are joking, don't belittle anyone for taking offense or being thin skinned.
We are a community for software developers. Leave the egos at the door.
Got around to watching Solo this weekend. I was expecting a train wreck ala Last Jedi, but was pleasantly surprised. Not quite up to Rouge One but good, leads me to think the house of mouse might be trying to create a new series around Han Solo as it did not have a Xmas release and left more holes at the end... opinions please...
Know what you mean, Force Awakens, Last Hope Remake, Last Jedi, poor, Empire Strikes Back remake. Rouge One surprisingly good Last Hope prequel. Solo good standalone movie possible trilogy foundation...
Prequels, sequels, reboots... That's all they know how to do. Soon we are also going to get requels (sequels to remakes) or preboots (prequels that completely change all established elements) or seboots (reboots in a sequel that change everything without any logic). Wait... Is that not exactly what we are getting?
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
I just think it wasn't too bad! Lets face it the best Star Wars was Empire Strikes Back, Jedi created the phrase 'Ewok bad', Phantom Menace Jar Jar Binks( )!, Solo not that bad, could have been alot worse!
I think I need some help in navigating the incredibly huge sea of web technologies that have appeared in the last years - it has been a while since I had the time to actually study newish frameworks and products.
My job consists mostly of LoB applications, so until now I have found myself very comfortable with ASP.net Web Forms, WCF for AJAX interactions, a little bit of jQuery and ADO.net for database access - trying to keep it simple on the client side and have most of the work done on the server side. To achieve a 'modern' look I use the DevExpress Web Forms controls, and that's pretty much it.
It feels, however, like I'm missing something. Everybody is talking about different approaches but they all seem like huge steps backwards to me. I can't honestly believe people are more productive this way.
- ASP.net MVC? Yeah, just put some server side code alongside HTML. Back in my days we called that Classic ASP, and we hated it. Bonus hell points: video tutorials.
- Data binding? Yeah, bind everything to a EF context, you get IQueryables, it's fast! Oh, you need to call an API? Tough luck... no data binding for you. Back to ObjectDataSources!
- Bah! HTML5 and JS is all you need! Just use server side code for your APIs and learn to love
This is becoming a rant and I didn't really want that. I really think this is my fault. I just don't know where to start - and be productive with a simple but complete web app. I like having web services for application logic. I am ready to ditch Web Forms. I just don't want to lose my time again and again. Do you have any suggestion?
Thanks in advance
The Price of Freedom is Eternal Vigilance. -- Wing Commander IV
En Það Besta Sem Guð Hefur Skapað, Er Nýr Dagur.
(But the best thing God has created, is a New Day.)
-- Sigur Ròs - Viðrar vel til loftárása
I was hoping to help you and started reading your post.
Unfortunately about two lines into your post, my something in my head went BAZZZINGA!! and it was all downhill from there (hint: I'm of no use to you).
When I read this line, there was a conversation of this sort in my head:
Luca Leonardo Scorcia wrote:
My job consists mostly of LoB applications
Mind: There are LoB applications, Rajesh.
Mind: LoB applications, there are; you stupid twonk. Also, your mouth is open, Rajesh. Close it.
Me: Mate, th...
Mind: STOP IT! This from a guy who thinks his knowledge is out of date. And you don't even know what's an LoB application. When are you going to ask for help?
Mind: When are you going to build an LoB application?!
Me: [Grabs the sandwich from the side table]
Mind: Yeah, that's right. Keep eating. Would you like fries with that samich, capt'n fatso?
Mind: I bet LoB is different than IoT. Your RPI-connected-IoT-enabled fruit peeler project wasn't all that good.
Me: I know.
Mind: Learn how to do an LoB application.
Me: But the dude says something along the lines of his skills being already out of date, yes?
Me: [takes an enormous bite]
Mind: God, that's dry. Samich needs more sauce.
Me: OK, will do.
I feel your pain, Luca. I've been writing LoB applications for most of my career (thankfully!), most of the time with small companies and operating as a freelancer. At the end of the day, the client neither knows nor cares what technologies you've used; until, that is, the day you're not around and he needs to find someone to enhance the application that's powered his business for the past 15 years. At that point he'll be less than pleased - and his estimation of you will plummet - when he finds you're using some flavour-of-the-month framework that went out of fashion 10 years ago and no-one will touch with a barge-pole.
I've found that keeping it simple - ASP.Net (either C# or, yes, VB.Net which saves a serious amount of faffing about) with WebForms, ADO.Net, JQuery and some simple ASMX webservices does everything I've ever needed to do. Conversely when working with "99% complete" applications that I've been asked to "finish off", I find an enormous pile of redundant code, a massive dependency list and at least 2 or 3 versions of frameworks and tools that are no longer supported or even accessible.
It sounds like you're pretty much in charge technically; so stick with what you know and works, and build up your own personal library of routines and techniques for the things all these applications need to do. Even with a restricted toolset, you'll find you still learn new stuff about it every week, you still learn new ways to use it, and still get that satisfaction from solving problems elegantly and robustly.
PS LoB = Line of Business - those un-sexy, day-to-day back office applications that keep businesses running day in, day out.
When I started to seriously write web apps, both for personal use and for my clients, I came up with three "truths":
It's got to look good and be fast.
It's got to be clean code on the client.
It's got to be clean code on the server.
The user doesn't care what's behind what they see, they want a fast and good looking UI. For that reason, I glommed onto jqWidgets (lovely controls, but there is a minor performance hit because jqWidgets doesn't support minified .js files, mitigated by turning on compression. I also use Bootstrap because it works very nicely for helping me style the UI on mobile devices. And that's it. I also code the client-side almost always as a responsive UI -- auto-update the server on a UI change, and I use HTML5's websockets for auto-syncing the client.
I also care what's on the server side. That means C#, my own web server which can run standalone or under IIS (which is nice for hosting multiple HTTPS sites), using LetsEncrypt for certs and a acme.net for cert renewal. It's in C#, I don't use EntityFramework, preferring my own as powerful but much more lightweight implementation relying on just Linq2Sql. Most importantly, everything on the back-end that the client has to talk to (or listen to) is handled by a clean API architecture.
Now, you don't have to go down the whole "re-invent the wheel" process that I went down, and it was a major decision to throw out those client-side frameworks as well as EF, as well as the Microsoft web server stack and selectively roll my own. Not very marketable on my resume, haha. But I get a very clean separation of concerns and what I consider to be very maintainable web apps. And nothing uses Nuget.
So, at the end of the day, I need to know:
My answer will make me sound like a Microsoft FanBoy but I will go ahead and offer it and attempt to back it up.
Learn ASP.NET Core (.NET Core).
1. Visual Studio Community is (basically and almost entirely) free.
2. The .NET Core includes everything you need to create true Enterprise Apps
a.) VSTudio dev environment - wraps up build, minifying JS,
b.) There's an entire plan for developing web apps but it is still open.
c.) You can build ReactJS or AngularJS later on top of your ASP.NET MVC site anyways (if you decide to go that way later
d.) Microsoft wraps up the basics you will most certainly use : C# (for backend), HTML created via generator (Razor), Asynchronous support (AJAX but better), jQuery is there, Bootstrap is there
e.) It is very modular -- only add what you need for your web app (everything is added via Dependency Injection of services)
f.) You get the package management (Nuget) to add custom things you need.