|
Why not an article, or even a tip, where it stays in a more permanent place than this Lounge?
|
|
|
|
|
0) I've been here for 20 years. I know how to do this.
1) I'll write/publish the article when the code is done. I started the article last May when the code was reasonably complete, but lost a crap load of the code, and stopped working on it. As stated in the original message, I decided to start working on it again this week to rewrite the code I'd lost, and was merely sharing the progress.
2) Cool your jets, Sparky.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
CrudGet*
CrudUpsert*
CrudDelete*
I was going to ask why you didn't use a MERGE for the UPSERT, but I already found out myself. Good stuff!
|
|
|
|
|
Sander Rossel wrote: I was going to ask why you didn't use a MERGE for the UPSERT, but I already found out myself.
Using the MERGE function is fraught with danger, and it's easy to do it wrong. Furthermore, a MERGE operation is usually more complex, and typically uses several of the table's columns to determine whether or not an item should be updated. There's probably no way to generate it automagically that would be suitable in more than a small handful of instances.
It is simply easier and more reliable to generate an Upsert instead.
The programmer can always extend the generated partial class and include a specific CRUDMerge property, so I think my bases are sufficiently covered. BTW, this is primary reason I'm writing this aapp - the existing tools don't create partial classes, and don't allow you to customize their implementation based on corporate requirements as far as coding style and framework component inclusion. For instance, you can specify your own implementation code for INotifyPropertyChanged, and IDataErrrorInfo interfaces in the generated viewmodel, and you can even specify the standard using statements for the model and viewmodel (although the usefulness of these would only benefit you if a given "standard" name space was removed from .Net at some point in the future).
It's a cool app, and we're going to use it at work when we start our flagship application rewrite (whenever that's allowed to happen).
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
#realJSOP wrote: It's a cool app, and we're going to use it at work when we start our flagship application rewrite (whenever that's allowed to happen). Good stuff!
I've been using Entity Framework Core and love it so far.
I just write my domain models, write my DB mapping and let EF sort out the rest.
Not so nice when you get breaking changes and EF just drops a column (or table) instead of renaming and that sort of stuff
The queries it generates are pretty clean overall and I've gotten a lot better at predicating what they look like based on my LINQ query
|
|
|
|
|
The company I work for would flog you for using the NOLOCK hint in your SELECT statement.
Kelly Herald
Software Developer
|
|
|
|
|
Wehave simulateous access by thousands of users and dozens of stored procs, we have to do that because our queries take a few seconds.If we don't do it, we get errors.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
I decided to go for KeePass[^].
It's ugly.
But all is stored locally with high encryption, no need to connect to any server somewhere.
And even Bitwarden seems much nicer (aesthetically) I should have installed a docker container in my NAS to act as my personal server to avoid sending all my passwords into the cloud which seems too much overkill to me.
THANK YOU VERY MUCH everybody who posted an answer and a hint.
|
|
|
|
|
Joan M wrote: It's ugly.
Take that back! The interface can be considered "old school" by today's standard, but it's compact and functional. To me it's the peak usability. None of that modern big flat and empty surfaces crap taking valuable screen real estate.
Look at this crap! Something like 70% of the screen is nothing. I understand developers not caring about performance and expecting users to throw more hardware at the problem, but that does not work with monitors... I mean at some point user's room will not be large enough to fit the screen needed to display your damn application.
|
|
|
|
|
Luckily Ultra-Wide monitors are getting more and more affordable!
|
|
|
|
|
Clearly you've not seen those futuristic films about hacking where the password occupies the whole 9000 inches screen the hacker has to use a command line interface.
|
|
|
|
|
God bless Mr. Robot for at least breaking from that mold somewhat.
Real programmers use butterflies
|
|
|
|
|
Agree.
|
|
|
|
|
Mladen Janković wrote: peak usability.
I like that.
I agree it's what a Win32 desktop app can be expected to look like. I think some people have just developed a twisted view of what an app should look like because they spend so much time on a freakin' phone.
|
|
|
|
|
The reason I like Keeper is that it stores my passwords in the cloud and then I can access them from any device on earth. laptop, phone, pc, doesn't matter. It has browser extensions, stand alone desktop app, and mobile apps.
Good luck with KeePass! If you ever want something better (overall) IMHO, try Keeper.
|
|
|
|
|
i used KeePass for a long time. kept it on a thumb drive on my keyring.
now i just use LastPass, because it's available on all the OS's i use.
|
|
|
|
|
Do androids look for recycled friends in the Robituary Column?
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Some things are best left buried.
Another question: if two androids drive their car over to a lover's lane, are they seeking an automaton?
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
modified 27-Nov-20 12:09pm.
|
|
|
|
|
When they die they're encrypted
I'm not sure how many cookies it makes to be happy, but so far it's not 27.
JaxCoder.com
|
|
|
|
|
JUUN Software on LinkedIn: #teatime[^]
As some of you know I quit my job in August 2019 to focus on my own company, JUUN Software, full time.
I've had a good start, then some difficult months, and things are going very well right now!
Got a project I've inherited (WinForms VB.NET and Crystal Reports, yikes!), some work that was cancelled (postponed?) because of COVID, some projects I've done (and doing) from scratch and some nice returning customers.
For next year I've got even more projects lined up!
Despite COVID, I've had a great professional year
I got those mugs last week and since it came up I wanted to brag about my mugs too! (haven't tried them in the microwave yet though)
|
|
|
|
|
Congratulations!
My current prospects are pretty good as well. Two of my gigs I got basically because of Code Project.
Real programmers use butterflies
|
|
|
|
|
honey the codewitch wrote: I got basically because of Code Project. Because of your good* and continuous efforts on Code Project
* Ignoring your notorious if-statements.
|
|
|
|
|
I can't share it but I think you'd be pleased with my paid code.
It looks quite a bit different, because I don't like writing code the way I know others need it written. It's *work*, not for fun.
Best regards.
Real programmers use butterflies
|
|
|
|
|
Work and fun aren't mutually exclusive, but doing something for yourself still feels different somehow
|
|
|
|
|
Sure. Don't get me wrong, I really enjoy my work. But when I wrote code for work I write code less fluidly, and to a more rigorous standard, and imposing that standard on myself is work.
Real programmers use butterflies
|
|
|
|