|
PIEBALDconsult wrote: VS 2010 was the peak.
Agreed! which is why I still use it when I can...still does almost everything I need and starts fast. I can have multiple projects open without the crippling my main workstation...not so with 2015 which seems to have a lot more overhead. I've started using 2017 occasionally and it seems much better than 2015 as far as resource usage.
As for Office, I switched around 5 years ago to Office 365...works for me as all 5 licenses are being used. I only keep two older Office products around...Access 2002/3 and Photo Editor. I really can't stand the UI in Access 2007+, however I've just found the tab view option that might just convince me to drop the older version. (WU always has issues with it anyhow)
"Go forth into the source" - Neal Morse
|
|
|
|
|
Only 1 reason I can think of - everything is synched across all platforms. Not sure if this was ever achieved in earlier versions.
And yes it pisses me off having to buy it every year for no benefit. When I have time I may well look for an alternative platform.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Well, yes, as many have pointed out the basic functionality has been there for a great many years.
Form a user's point of view, there's really a limit to how much genuinely useful stuff you can add to a spreadsheet or a word processor.
From a developer's point of view, there's a gaping hole where a good API should be.
98.4% of statistics are made up on the spot.
|
|
|
|
|
Very true, and you can see that they have not upgraded VBA, nor added security features so that you can have different levels of risk. Still you cannot add a background to Excel, which really sucks since you could scan an form, and then put the input fields in the foreground. Also I find the search in Excel to not be very good. In word they still have the same horrible format box from 20 years ago. Lots of things they could do.
The one I think is horrible are the improvements they could make in Outlook. Not really fond of their focused emails.
|
|
|
|
|
Yes, the search in Excel is ghastly!
As far as VBA goes, it has clearly been abandoned but it can't be formally deprecated as it hasn't been replaced. Yes, there's lots of stuff that has been effectively replaced by VSTO/VSTA, but the Visual Studio approach doesn't cater for the kind of power-user who used to chuck a bit of automation at their spreadsheets directly through Excel. As such, there's a whole heap of VBA/VB6 out there which is now completely insecure but still alive because people haven't really figured out how to replace it.
98.4% of statistics are made up on the spot.
|
|
|
|
|
Also, the nice thing about VBA is that it goes with the file, and is not something separate. Lot easier also just to throw a simple macro together, and Excel and Word have recorders making it even easier
|
|
|
|
|
PeejayAdams wrote: Visual Studio approach doesn't cater for the kind of power-user who used to chuck a bit of automation at their spreadsheets directly through Excel.
Having done some of both, I must concur that VSTO doesn't fully replace VBA. OTOH, there is relatively little that can't be accomplished fairly readily with VBA as it is today. Conversely, if security is an important consideration, as well it should be, a seasoned VBA programmer can work the same kinds of magic with VSTO, and it isn't really all that hard. Once you add a reference to the correct object model, IntelliSense helps immeasurably with the interactions with Excel, and the rest is plain old C# or VB.NET. More significantly, it's comparatively easier, IMO, to construct C# applications that talk
to two or more Office products.
David A. Gray
Delivering Solutions for the Ages, One Problem at a Time
Interpreting the Fundamental Principle of Tabular Reporting
|
|
|
|
|
Clifford Nelson wrote: What the hell has Microsoft Office group been doing for the last 20 years. Not much from what I can tell.
That's why they're still ptofitable!
CQ de W5ALT
Walt Fair, Jr., P. E.
Comport Computing
Specializing in Technical Engineering Software
|
|
|
|
|
Which is the reason that Microsoft wants to sell subscriptions and not products
|
|
|
|
|
So I brought our entire system to it's knees yesterday. What did I do? I entered some text into a varchar column in one of our database tables.
Why was that bad? When this column was created it originally held text, but then somebody decided that this text would be better served in a lookup table. Instead of creating a new column for the lookup key (an integer), they simply changed each value in column to its corresponding number in the lookup table.
And then they created views that join the table and lookup table which our company's programs tightly couple to. Microsoft, in their ever unceasing efforts to be helpful says you can join a varchar column to an integer column - so long as EVERY item in the varchar column casts to an integer. But if there is even one row that doesn't cast ... <rant>Why they couldn't cast the integer column to a varchar for us, only Microsoft can answer that.<end rant="">
So, to make a long story short, I added my text as a new lookup item and now there is a number where my text used to be and everything and everybody is happy again.
Brent
|
|
|
|
|
Because it's handled as a transaction.
And it needs to cast each and every value in the column to find out if there is a match for the join, and when it can't it throws an exception.
There's just one thing that's wrong with that.
If you make a join between an int and a varchar it wouldn't make a narrowing conversion on the varchar to int. It would make a widening conversion of the int to a varchar.
Which wouldn't throw any exceptions.
So I assume the join in the view contains an explicit cast to integer.
<edit>So there are at least three errors happening here</edit>
|
|
|
|
|
Jörgen Andersson wrote: If you make a join between an int and a varchar it wouldn't make a narrowing conversion on the varchar to int. It would make a widening conversion of the int to a varchar.
Nope - int has a higher precedence than varchar . If you try to join int to varchar , SQL will try to convert all values to int .
Data Type Precedence (Transact-SQL) | Microsoft Docs[^]
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
F*** me, you're right.
But why?
|
|
|
|
|
Comparing ints is faster, and probably seen as the default.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Yes, but a widening conversion to varchar and comparison between two varchars are probably faster than a narrowing conversion to int with an error check and then comparing two ints.
|
|
|
|
|
Jörgen Andersson wrote: with an error check and then comparing two ints. It's probably more a cast than a conversion.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
|
In fairness to Microsoft, they have introduced TRY_CAST() and TRY_CONVERT() in recent times which are very helpful when dealing with this kind thing.
98.4% of statistics are made up on the spot.
|
|
|
|
|
How about creating a foreign key relationship between the tables?
Would that not prevent this issue from happening again?
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
GuyThiebaut wrote: How about creating a foreign key relationship between the tables?
I believe that would trade one problem for another; you would trade an invalid cast for a foreign key constraint exception, which might well roll back a whole transaction. Moreover, who knows what it would do to the view?
David A. Gray
Delivering Solutions for the Ages, One Problem at a Time
Interpreting the Fundamental Principle of Tabular Reporting
|
|
|
|
|
Exactly, which is why foreign keys can be useful as they will prevent the insertion of data into a database which does not meet certain criteria.
A foreign key constraint should not affect a view - I see it more as a gatekeeper that prevents problematic data from being added to a database, whether that is by insertion, deletion or update.
I am aware that many people do not use foreign keys, however I have seen them to help in making the developer's life easier by keeping problematic data out of a database.
Without foreign keys you can find yourself in the position where the client is complaining about the system behaving strangely when the reason for that behaviour is, for want of a better word, unsanitised data.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
GuyThiebaut wrote: have seen them to help in making the developer's life easier by keeping problematic data out of a database.
I agree with you 100%, and I rely on foreign keys for precisely that reason. Nevertheless, I think it's important to be aware that having one doesn't excuse the developer from handling exceptions. In the situation under discussion, you are trading one kind of exception for another, albeit, more useful, one.
I don't think it would affect the view, either, but I thought it prudent to allow for some technical detail that I might have overlooked. I usually don't construct any views until I have my foreign keys defined, so that I can leverage them to help create the views.
David A. Gray
Delivering Solutions for the Ages, One Problem at a Time
Interpreting the Fundamental Principle of Tabular Reporting
|
|
|
|
|
static object s_obj = new object();
then in some function,
void func()
{
object obj = new object();
s_obj = obj;
}
Honestly, I have never seen such a code before. When someone does this, what actually happens to the memory, statically allocated to s_obj, initially? It's left hanging on the air without any reference ?
Starting to think people post kid pics in their profiles because that was the last time they were cute - Jeremy Falcon.
|
|
|
|
|
Depending on garbage collection the memory should be released, because the ref counter of the original object is set to zero in the func() assigment.
Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
Thanks, But does this apply even to Static Variables?
Starting to think people post kid pics in their profiles because that was the last time they were cute - Jeremy Falcon.
|
|
|
|