Domain: microsoft.com
Stories and comments across the archive that link to microsoft.com.
Comments · 34,132
-
Re:dont be evil
Microsoft will continue to provide security updates (part of "extended support") for Windows XP Pro for at least 7 years after Vista's release. So if Vista is released late this year, XP Pro will be under extended support until late 2013. (Note that XP Home doesn't get "extended support" and "mainstream support" ends 2 years after Vista's release.) ...I plan to squeeze every last drop of life out of XP Pro. That is, until M$ does evil things to force people to upgrade, like releasing Vista-specific software and dropping patches for XP altogether.Since so many users (especially businesses) will continue to use XP Pro while it's still under "extended support," I'm sure third-party software will continue to be written for XP if many of the software company's customers are still using XP. Only Microsoft has an interest in shutting out a large number of existing XP users (so users will upgrade to Vista).
-
Re:That and integrated cards are no slouch
I'd wager that at least the GMA 950 will be enough for the more advanced interface, and even the GMA 900 will be.
At this point in Vista's development, GMA 950 (desktop and mobile) will run Aero, although that page I linked to doesn't say which level of Aero ("Standard" or Glass).An older version of Intel's notebook guidelines for Vista (before the current 945GM chipset was released) said that GMA 900 would run Vista without the new Aero interface.
The key difference is support for Windows Vista Display Driver model (WDDM) drivers, which is required for Aero. GMA 950 has it now, GMA 900 doesn't. I don't know if WDDM support will be added to GMA 900 before Vista's release, but I doubt it.
Note that GMA 900 did a fine job running OS X's Aqua interface in Apple's Developer Transition Kits. Therefore, I think GMA 900 should run Aero if Intel or MS writes the drivers for it.
-
Re:Vista != Vista's 3D Interface
No joke. I clicked "Windows Vista Capable PCs and Customer Benefits" on this page and couldn't find any. What are they again?
-
Look how much the hardware vendors lapped this up
Follow their links:
http://www.microsoft.com/technet/windowsvista/eval uate/hardware/entpguid.mspx#ECAA
Not really surprising. -
Re:Short answer: no.
it does have generics, which are templates without the metaprogramming possibilities -- because it does not have templates. Henceforth, the STL does not work under C++/CLI. Nor does Boost.
Yes it does. No multiple inheritance, that's true, but as for templates, they're supported just fine. -
C++/CLI supports templates, people!
(posting this as a top level comment because I can't reply to EVERY SINGLE COMMENT that is loudly proclaiming that C++/CLI isn't C++ because it doesn't support templates)
Yes, yes it does - it just happens to support generics also: straight from MSDN. Templates, being strictly a compiler phenomenon requiring no post-compilation support from the runtime, are supported just fine. The only real C++ feature that isn't supported is multiple inheritance (with the exception of interface implementation). And that's just fine with me.
So to all you people claiming C++/CLI doesn't support templates, you're dead wrong. -
...and underestimates......the classic "bandwidth of a station wagon full of mag tape" problem.
Physical movement of media give high latency transmission, but high and readily expandable throughput. For some applications, you still can't beat sneakernet.
-
Re:Windows 2000?
Security updates will be available until Windows 2000 leaves the Extended Support phase of the Microsoft Support Lifecycle. According to http://support.microsoft.com/lifecycle/search/?so
r t=PN&alpha=windows+2000, that's in 2010. -
Re:Windows 2000?
Anyone know when the date is when MS will stop making security patches for Windows 2000?
Windows 2000 will be supported for 5 + 5 years since it's an enterprise product. Home level products are supported for 5 + 0 years (except XP Home which got two years more to live.) See http://support.microsoft.com/gp/lifepolicy for details.
-
Then, of course, there's timeline.Then, of course there's Microsoft's dealings with Timeline, where they (for a substantial discount), signed a license with the company for a data warehousing technology that was almost guaranteed Not to cover customers and developers, because it didn't cover the case where the customer included any code of their own.
When Microsoft's lawsuit (which pretty much echoed SCO's charge against Novell for the rights to UNIX of "We must have gotten those rights -- why would we pay so much for a contract that gives us so little"?) failed, their response to Timeline was. 'If you don't like it, then sue our customers.'
Their software indemnity policy specifically does not seem to cover the kind of situation that they created with Timeline (where there is any sort of custom programming involved -- whether by the customer or Microsoft).
(IANAL)Hmm... And almost immediately after a judge told Microsoft that they had this indemnity exposure for their customers, SCOg gets this 'idea' to create a big (fake) kerfluffel about how Linux has an indemnity exposure
... along with a $BIG 'license purchase' from Microsoft. -
Microsoft's take on UNIX machines
I thought this was interesting... let me know what you guys think.
http://support.microsoft.com/?kbid=225352 -
Re:Plus Plus!
The same argument could have been advanced against the name C++ itself: "The issue here is that the use of the C name is a big marketing issue. But to apply the C name in any variant to a language that is not C is fundamentally misleading and dishonest."
You're comparing apples to oranges.
Stroustrup didn't go around "casually" referring to C++ as C using a multi-million-dollar PR machine. On the contrary, he has written extensively about the relationship between C++ and C as the newer language has evolved, and has always been clear about the significance of having similar syntaxes and where the differences start.
Microsoft, on the other hand, frequently do refer to C++/CLI simply as C++. They even have a column on their MSDN web site called Pure C++; would you like to guess whether the C++ in question is the ISO standard variety or the C++/CLI one? That one's a real shame, and I'd have expected better from a distinguished C++ expert like Stan Lippman.
-
Wrong idea about b-plans..I need some advice on how to write up a killer business plan, everyone involved knows exactly where the business is heading.
The point of a business is to so that it shows that you thought of how to start, operate and exit the business - NOT how to operate the business. When you start, you'll find that things WILL change and you have to make adjustments. So, when an investor sees the B-plan, they'll know that you investigated the business thouroughly (or not) and that you are the expert.
Which leads me to another thing: DON'T BE (TOO) PARANOID ABOUT INVESTORS STEALING YOUR IDEA. Nothing will stop the works faster than demanding a NDA. For one thing, the investors are into investing, they don't want to be bothered with starting a biz. Prefessionals, like accoutnants, lawyers, etc... are doing their thing and they don't want to implement you idea and blabbing your idea all over will hurt them more than you - they don't want to have the reputation of blabbing people's ideas all over the place. Also, this is hard to take, I know, your idea is probably NOT that unique. Serendipity has its affect. Someone else has had your idea but just didn't have your guts to implemnt it. I know an entrepreneur who says that he can publish any of his ideas on the web for all to see and it wouldn't matter because it's the implemntation that's key. And he's a master.
That's right, I also said exit plan. An exit plan is necessary, because, one day, you WILL be leaving that business (death, retirement, or the most likely selling). The VCs will want to get out of your business after about 3 to 5 years. They have to in order to get the ROI that they demand.
Also, if you have MS Office, there's plenty of FREE startup templates on their site. here I don't know if Open Office and other FOSS can use those.
Oh! I almost forgot, the book, "The Portable MBA in ENTREPRENEURSHIP" , Bygrave and Zacharakis is an excellent resource!
Good luck!! Maybe one day when I'm "Down Under" I'll see a huge office complex with your name on it!
-
Re:Why even bother?
Me, I just swore to avoid Windows XP because it doesn't offer much over Windows 2000, and so far I've had no issues with that. Now, Vista I will probably buy, but not because it supports Halo 2 (couldn't care less). I'll buy it because its an excellent upgrade for Windows 2000. When you skip an entire release, Microsoft's OS products are a lot more enticing
:D
Actually this is a sad myth in the Windows world, a lot did change with WindowsXP, stuff that would be important to almost everyuser, and from your level of knowledge especially you.
Things from several fairly big performance, but also stability changes are in WindowsXP, and were worth the upgrade, sorry that you didn't ever move over. However at this point, I agree you should just wait for Vista if XP would cost you to upgrade in the meantime.
However for people that think XP is only Win2K with crayon buttons, do a bit of reading, there are things that would surprised a lot of people.
http://msdn.microsoft.com/msdnmag/issues/01/12/XPK ernel/default.aspx
http://www.microsoft.com/whdc/driver/kernel/xp_ker nel.mspx
Win2k was a massive milestone in the Windows world, so XP got overlooked, and this is where you will note a lot of things that the 'average' journalist just don't get or didn't understand well enough to report on. Also remember than WindowsXP is basically the newer Windows 2003 Server code base, (as long as you have SP2 installed).
PS To add to the above thread about Halo2 being used to FORCE users to upgrade to Vista, that is about insane. If that was MS's intent then the WPF and all the other Vista technologies they are making available for XP would not be available for XP users. Why would Microsoft bother?
Secondly, Bungie is the developer of Halo2, they actually make the decisions on the platform and graphics requirements, Microsoft doesn't micro manage their work.
So all the people with the conspiracies need to get a life.
Take Care,
TheNetAvenger -
Re:Why even bother?
Me, I just swore to avoid Windows XP because it doesn't offer much over Windows 2000, and so far I've had no issues with that. Now, Vista I will probably buy, but not because it supports Halo 2 (couldn't care less). I'll buy it because its an excellent upgrade for Windows 2000. When you skip an entire release, Microsoft's OS products are a lot more enticing
:D
Actually this is a sad myth in the Windows world, a lot did change with WindowsXP, stuff that would be important to almost everyuser, and from your level of knowledge especially you.
Things from several fairly big performance, but also stability changes are in WindowsXP, and were worth the upgrade, sorry that you didn't ever move over. However at this point, I agree you should just wait for Vista if XP would cost you to upgrade in the meantime.
However for people that think XP is only Win2K with crayon buttons, do a bit of reading, there are things that would surprised a lot of people.
http://msdn.microsoft.com/msdnmag/issues/01/12/XPK ernel/default.aspx
http://www.microsoft.com/whdc/driver/kernel/xp_ker nel.mspx
Win2k was a massive milestone in the Windows world, so XP got overlooked, and this is where you will note a lot of things that the 'average' journalist just don't get or didn't understand well enough to report on. Also remember than WindowsXP is basically the newer Windows 2003 Server code base, (as long as you have SP2 installed).
PS To add to the above thread about Halo2 being used to FORCE users to upgrade to Vista, that is about insane. If that was MS's intent then the WPF and all the other Vista technologies they are making available for XP would not be available for XP users. Why would Microsoft bother?
Secondly, Bungie is the developer of Halo2, they actually make the decisions on the platform and graphics requirements, Microsoft doesn't micro manage their work.
So all the people with the conspiracies need to get a life.
Take Care,
TheNetAvenger -
Re:Microsoft's not dying
From an interview on Forbes.com with John Connors, CFO of Microsoft after the announcement that they were issuing a one-time dividend of 30 billion (yes with a B) dollars:
John Connors: The first thing was to keep enough cash on hand to give us flexibility to manage things like a severe short-term economic dislocation or investment opportunities. We haven't publicly said how much cash that will be, but it's probably fair to assume that, after the upcoming distribution, we will still have around $25 billion to $40 billion on hand.
and here's another quote from the same article:
We have a relatively unique model, in that our business is not capital-intensive. What drove our approach is that Bill [Gates] and Steve [Ballmer] and the board are pretty conservative. We don't want to be in the position where we have to make decisions because of the balance sheet. And while we don't anticipate that we would ever have a year with expenses but no revenue, we'll probably keep at least one year of operating expenses and cost of goods sold in cash on hand--that's around $20 billion in cash and short-term investments.
Now if you like you can also look at their SEC filings if you want to argue with people. AFTER the $30,000,000,000 dividend, they'll have AT LEAST $25-40 billion dollars. That means they have on hand $55-70 billion dollars cash or liquid assets. Your last statement that shareholders would have "no control" over this money is just dumb. Shareholders have final control over everything. That's why they have yearly votes.
This myth has been confirmed.
Microsoft Annual Report 2005 -
Re:Why even bother?
Windows is $299 for the standalone Professional version, and that's not even the lower priced Home upgrade. Also, an XBOX or PS2 is only $150, and a GC is even less.
-
Re:ExtortionThey won't even need to do that.
Bet you anything you like Vista will ship with it integrated as part of Windows Security Center. Now, if you've looked at that, you'll see it gives a nice idiot-proof interface like this:
FIREWALL: ON
Microsoft Antivirus is out of date. To keep it up to date, click here.
ANTIVIRUS: OUT OF DATEANTI SPYWARE: ON
No mention that alternative products even exist.
"Gee, no need to buy antivirus any more, comes included. Aw, got to pay an annual fee. Never mind, where's my credit card?"
-
Re:Problem is Microsoft Doesn't Use .NET
I don't know where you get the idea that all of Microsoft uses just C++- although I used C++ while interning there, quite a few of my friends were using C#. This was especially true if they were working as SDETs. Personally I believe Microsoft is moving more and more towards completely managed code. You mention the OS- MSR has got the Singularity kernel [http://research.microsoft.com/os/singularity/%5D written almost completely in managed code and frankly, that does seem to be the direction Microsoft is sailing in.
-
Re:What's .NET?
-
Log everythingI'm no programming expert, but I've found that logging everything with accurate timestamps can solve a lot of problems. One of the best things I've done was to acquaint myself with Python's logging module. It's really a lot nicer than throwing print statements all over the place, and log levels make for easy switching in and out of "debug" mode. So that's my advice... implement a good logging system.
:)I'm unfortunately not too familiar with C#, so I can't comment on it's logging facilities (or lack thereof) other than the
.NET EventLog class.There is a project on Sourceforge called C# Logger that is supposedly similar to log4j in Java. But it seems to be stuck in alpha release mode, and not particularly active.
Just my two cents. Hopefully it helps.
:) -
Re:parent overrated (you wish)That's not true.
Yes, it is. I refer you to Microsoft's own page. To save you some clicking and reading, I'll quote the relevant part:MP3 encoding support is included at no cost with Windows Media Player 10. For Windows Media Player 9 Series, you can add MP3 encoding support by purchasing one of the following plug-ins
If you simply mean that you could add a plug-in to WMP 9, then sure, that's a fair statement. But I wasn't saying you couldn't buy a plug-in, so it's hardly a "that's not true/parent overrated" situation, now is it? -
Re:Slashdot is broken
But then again, running a just-in-time compiler means that every single time your application loads up, it's going to dog it until everything's been compiled. JIT is fine for long running apps, but sucks for the transient jobs.
.NET runtime offers the ability to manually precompile an assembly into native code and cache it for later use. Look up ngen on MSDN for details. -
Re:I thought there might actually be some discussi
The best example is to just checkout the SDK
I had Speech Server laying around from my MSDN subscription, and decided to play with that, but I think the SDK actually has everything you need including a nice tutorial. -
Re:My experience with these mice...
-
Re:Trackball
Heathen! MS Trackball Optical for life!
Unfortunately, that trackball is discontinued too. :-(
Nobody seems to be interested in making trackballs anymore. Logitech hasn't updated their (horribly cramped) trackball line in a while, and Kensington seems to be stuck in the late 90's design-wise.
Damn mice. Who thought rubbing a potato across your desk was a good idea for a control scheme? -
Re:TrackballAmen to that brother.
My personal choice is the MS Trackball Explorer. Wonderfull design, acurate optical and very nice drivers in MS (holy buckets does mouse button control in linux blow chow). As fate would have it they got discontinued. I snapped up 3 that I plan on slowly doleing out over the years even though my current 3 (2 at home, 1 at work) work great and have for years. I looked around quite a bit before I bought the three, but found nothing that came close to it's ergonomics, and abilities. And no, don't suggest a thumb type trackball, I have used a few and it makes my thumb hurt just looking at them.Sera
-
Re:Because it makes things work.
I don't know. We've been deploying Office to our users via AD for five years now, starting with Office 2000 and now with Office 2003. User rights have never been an issue.
Is this a CD based install? One thing I would suggest is to run regmon and filemon while the problem happens and try to seee WTF the installer is trying to access that the user doesn't have access too.
You could also visit the MS Newsgroups and ask. There are people in those newsgroups that probably forgotten more about Windows than I know and would know off-hand the cause of your problem. -
Re:Tourism
'PNG does have a reputation for being dangerous.'
Justifiably so, if you're running Windows:
http://www.microsoft.com/technet/security/bulletin /ms05-009.mspx -
Re:Windows security more flexible and more complex
The abstraction is insufficient without a universally accessible and intuitive file/device/object model; one that does not require specific application support. There are myriad possible reasons why I may not be able to use your application in a particular context to control such attributes. As it stands, the various components in NT, which can have such metadata applied, are littered across the landscape of the OS.
I can see your point about the components of the OS, but if I want to secure objects specific to my application, do you suppose I should write my own virtual-file-system? Let's say that I write a database server and I want to control access to certain tables using NT Security. That's certainly possible now, but according to your argument, I should make it accessible using some kind of filesystem interface? The permissions / allowed rights for a file, a database table, and a printer are certainly different and the current NT model allows that. It's not "everything is a file" because, well -- not everything is a file.
Besides, the model is quite "universally accessible" although you don't get a nice directory tree view and I'm not too sure about the "intuitive" part. From MSDN:
You can use the GetSecurityInfo function with the following types of objects:
- Local or remote files or directories on an NTFS file system
- Named pipes
- Local or remote printers
- Local or remote Windows services
- Network shares
- Registry keys
- Semaphores, events, mutexes, and waitable timers
- Processes, threads, jobs, and file-mapping objects
- Interactive service window stations and desktops
- Directory service objects
The GetSecurityInfo function works with handles. If you want to work with names you can use the GetNamedSecurityInfo function. The object types that can be handled by those functions are documented in the SE_OBJECT_TYPE enumeration.
-
Re:Windows security more flexible and more complex
The abstraction is insufficient without a universally accessible and intuitive file/device/object model; one that does not require specific application support. There are myriad possible reasons why I may not be able to use your application in a particular context to control such attributes. As it stands, the various components in NT, which can have such metadata applied, are littered across the landscape of the OS.
I can see your point about the components of the OS, but if I want to secure objects specific to my application, do you suppose I should write my own virtual-file-system? Let's say that I write a database server and I want to control access to certain tables using NT Security. That's certainly possible now, but according to your argument, I should make it accessible using some kind of filesystem interface? The permissions / allowed rights for a file, a database table, and a printer are certainly different and the current NT model allows that. It's not "everything is a file" because, well -- not everything is a file.
Besides, the model is quite "universally accessible" although you don't get a nice directory tree view and I'm not too sure about the "intuitive" part. From MSDN:
You can use the GetSecurityInfo function with the following types of objects:
- Local or remote files or directories on an NTFS file system
- Named pipes
- Local or remote printers
- Local or remote Windows services
- Network shares
- Registry keys
- Semaphores, events, mutexes, and waitable timers
- Processes, threads, jobs, and file-mapping objects
- Interactive service window stations and desktops
- Directory service objects
The GetSecurityInfo function works with handles. If you want to work with names you can use the GetNamedSecurityInfo function. The object types that can be handled by those functions are documented in the SE_OBJECT_TYPE enumeration.
-
Re:Windows security more flexible and more complex
The abstraction is insufficient without a universally accessible and intuitive file/device/object model; one that does not require specific application support. There are myriad possible reasons why I may not be able to use your application in a particular context to control such attributes. As it stands, the various components in NT, which can have such metadata applied, are littered across the landscape of the OS.
I can see your point about the components of the OS, but if I want to secure objects specific to my application, do you suppose I should write my own virtual-file-system? Let's say that I write a database server and I want to control access to certain tables using NT Security. That's certainly possible now, but according to your argument, I should make it accessible using some kind of filesystem interface? The permissions / allowed rights for a file, a database table, and a printer are certainly different and the current NT model allows that. It's not "everything is a file" because, well -- not everything is a file.
Besides, the model is quite "universally accessible" although you don't get a nice directory tree view and I'm not too sure about the "intuitive" part. From MSDN:
You can use the GetSecurityInfo function with the following types of objects:
- Local or remote files or directories on an NTFS file system
- Named pipes
- Local or remote printers
- Local or remote Windows services
- Network shares
- Registry keys
- Semaphores, events, mutexes, and waitable timers
- Processes, threads, jobs, and file-mapping objects
- Interactive service window stations and desktops
- Directory service objects
The GetSecurityInfo function works with handles. If you want to work with names you can use the GetNamedSecurityInfo function. The object types that can be handled by those functions are documented in the SE_OBJECT_TYPE enumeration.
-
FoxproMany companies that generally only need a step up from MS Access
Correction. You misspelled MS Foxpro.
-
Re:Open Source + the Database VendorsFree (beer) Oracle: http://www.oracle.com/technology/products/databas
e /xe/index.htmlFree (beer) DB2: http://www-306.ibm.com/software/data/db2/udb/db2e
x press/Free (beer) SQL Server: http://www.microsoft.com/sql/editions/express/def
a ult.mspxNow what?
-
Re:Linux file & memory management shines
Please do yourself a favor and educate yourself before making any future bogus claims.
The following two articles respectively deal with executable and libary loading in Windows:
http://msdn.microsoft.com/msdnmag/issues/02/02/PE/
http://msdn.microsoft.com/msdnmag/issues/02/03/Loa der/ -
Re:Linux file & memory management shines
Please do yourself a favor and educate yourself before making any future bogus claims.
The following two articles respectively deal with executable and libary loading in Windows:
http://msdn.microsoft.com/msdnmag/issues/02/02/PE/
http://msdn.microsoft.com/msdnmag/issues/02/03/Loa der/ -
That should explain it
-
How to write ultra-reliable software
First, there is no magic solution to this. IT IS A LOT OF WORK. Also, my company predominately develops software for non-Linux platforms, so I'm not going to recommend any Linux specific tools.
I recommend the following (by no means a complete list):
1. Fuzz testing
Fuzz testing is throwing directed yet random inputs at a program to see how it fails. Extremely long strings, null terminated strings, invalid files, files that are "almost" valid, etc. It's good for security but it also helps reliability. Even if all your input comes from trusted sources, by protecting against invalid input you also protect against bugs in these sources.
2. Dynamic Analysis Tools
There's a wealth of tools that'll simulate disk-read errors, out of memory errors, and other failures like this. Even if you expect to always have enough memory, OOM conditions may happen even temporarily. Tools like AppVerifier help detect heap buffer overruns, underruns, and bad API usage. Run your test passes under tools like these.
3. Static Analysis
There's a host of tools which can analyze source code and look for problems. Run these as often as possible and fix all the issues which come up. If they are quick to run, make a clean run checkin requirement.
4. Establish a feedback loop
Even with the strictest coding standards, strict testing, and excellent tools, crashes will happen. Eventually, your code will run in an unexpected environment, some external influence on the program will corrupt its environment, or some maintenance coder two years down the road will checkin a "fix" that introduces a crashing regression for some customers. Have someway for your customers to send you dump files whenever a crash does happen. If you happen to support Windows, this is really easy. Microsoft has a site for getting access to all the crash data that the customer would send for your product. Establishing an account is free (as in beer), but does require you to provide a VeriSign ID to establish identity, so noone else will try to get at your data. My company uses this, and it allows us to focus on the top N crashes that occur in our products so we get the most bang for our bug.
Even if you do all of the above, there will still be some crashes in the product.
What not to do:
1. Swallow all exceptions
This'll make your code appear more stable on the surface, but by blindly swallowing exceptions you are forcing your code to operate in a state you never designed for. All you really do is turn an easy to diagnose crash into an impossible to diagnose crash, or worse, a bug that just results in silent data corruption.
2. Believe that using library x/Java/.Net/STL/etc. will fix your problems
All of the above are just tools, but it is still possible to have crashes even if you use these tools 100%. An OOM exception in any of the above is more graceful and more recoverable than an access violation, but you're still going to have to do a lot of work to make sure you eradicate the sources of exceptions in your code as well as make sure the exceptions you do expect and can recover from you can actually rollback/retry/etc. to leave your data in a valid state. -
How to write ultra-reliable software
First, there is no magic solution to this. IT IS A LOT OF WORK. Also, my company predominately develops software for non-Linux platforms, so I'm not going to recommend any Linux specific tools.
I recommend the following (by no means a complete list):
1. Fuzz testing
Fuzz testing is throwing directed yet random inputs at a program to see how it fails. Extremely long strings, null terminated strings, invalid files, files that are "almost" valid, etc. It's good for security but it also helps reliability. Even if all your input comes from trusted sources, by protecting against invalid input you also protect against bugs in these sources.
2. Dynamic Analysis Tools
There's a wealth of tools that'll simulate disk-read errors, out of memory errors, and other failures like this. Even if you expect to always have enough memory, OOM conditions may happen even temporarily. Tools like AppVerifier help detect heap buffer overruns, underruns, and bad API usage. Run your test passes under tools like these.
3. Static Analysis
There's a host of tools which can analyze source code and look for problems. Run these as often as possible and fix all the issues which come up. If they are quick to run, make a clean run checkin requirement.
4. Establish a feedback loop
Even with the strictest coding standards, strict testing, and excellent tools, crashes will happen. Eventually, your code will run in an unexpected environment, some external influence on the program will corrupt its environment, or some maintenance coder two years down the road will checkin a "fix" that introduces a crashing regression for some customers. Have someway for your customers to send you dump files whenever a crash does happen. If you happen to support Windows, this is really easy. Microsoft has a site for getting access to all the crash data that the customer would send for your product. Establishing an account is free (as in beer), but does require you to provide a VeriSign ID to establish identity, so noone else will try to get at your data. My company uses this, and it allows us to focus on the top N crashes that occur in our products so we get the most bang for our bug.
Even if you do all of the above, there will still be some crashes in the product.
What not to do:
1. Swallow all exceptions
This'll make your code appear more stable on the surface, but by blindly swallowing exceptions you are forcing your code to operate in a state you never designed for. All you really do is turn an easy to diagnose crash into an impossible to diagnose crash, or worse, a bug that just results in silent data corruption.
2. Believe that using library x/Java/.Net/STL/etc. will fix your problems
All of the above are just tools, but it is still possible to have crashes even if you use these tools 100%. An OOM exception in any of the above is more graceful and more recoverable than an access violation, but you're still going to have to do a lot of work to make sure you eradicate the sources of exceptions in your code as well as make sure the exceptions you do expect and can recover from you can actually rollback/retry/etc. to leave your data in a valid state. -
No bondage hereAnybody who dismisses
.Net as "bondage and discipline" isn't keeping up. Check out Boo, Nemerle, and IronPython. IronPython is compatible with CPython but actually runs faster. The author of Boo appeared on a panel discussion at the last PDC (Microsoft developers event). Of course it's not just a Microsoft playground with Mono out there.Also at PDC, there was a presentation about new features being added to the next version of the
.Net runtime, to better support dynamic languages. And back to C#, the new 2.0 supports closures, and 3.0 will have type inferencing. Plus there are rumors of some sort of macro facility coming. -
Re:I'm Job SearchingUse the VS.Net Express Edition to get started. Once you get into more complex stuff, it'll probably be better for you to get real experience with the real VS.Net IDE.
The Express edition could take you a long way. It's not limited in the kinds of applications you can build; it's really only missing a few features you don't need to learn the language (source control integration, remote debugging, macros). The code editor has its complete functionality, including IntelliSense and refactoring, in the Express edition. The form editor is likewise uncrippled. MSDN documentation is included. There are no restrictions on the types of programs you can build; GPL programs, commercial apps for sale, DirectX/OpenGL games, web applications, Windows Forms GUIs, native Win32 apps, it's all OK.
It's really amazing that Microsoft is giving this thing away for free until November. (In November they will stop offering it for download; however if you download it before then you can use it forever. So download it now, before Microsoft changes their mind!)
-
Re:I'm Job SearchingOnce you get into more complex stuff, it'll probably be better for you to get real experience with the real VS.Net IDE.
Actually, you'll learn .NET better and deeper if you stay away from the IDE and stick to the always freely available SDK. -
Re:I think you got it.
Here is the KB article about the bool marshalling error. There still isn't in a service pack for it for VS2003 (although there is a patch you can beg Microsoft for), and probably never will be.
-
Re:I think you got it.
Funny. I've written an application's GUI using C# and it's logic using C/C++ (a DLL). Had no problems whatsoever with interop. Mind pointing me at the bug report in Microsoft's Knowledge Base? Or any reference to it online?
By the way, talking of "C++.NET" - you're probably referring to the horrible C++ with Managed Extensions supported in Visual Studio .NET 2003. Try the new C++/CLI that is supported in Visual Studio .NET 2005 - legacy code can be compiled as is.
Check it out: http://msdn.microsoft.com/msdnmag/issues/06/00/Pur eC/default.aspx -
VB.NET Express and FREE training videos!
This is what I'm doing right now for my senior project at my college. I got myself a FREE copy of VB.NET Express and 20+ FREE training videos. It's only for a limited time though. MS will eventually start charging about $50 for an Express license. You can also find C#, C++, J#, Web Developer, and SQL Server for free. Just click the appropriate links on the left of either of the two links mentioned above.
-Ares -
VB.NET Express and FREE training videos!
This is what I'm doing right now for my senior project at my college. I got myself a FREE copy of VB.NET Express and 20+ FREE training videos. It's only for a limited time though. MS will eventually start charging about $50 for an Express license. You can also find C#, C++, J#, Web Developer, and SQL Server for free. Just click the appropriate links on the left of either of the two links mentioned above.
-Ares -
Re:WHY??
First of all, while it may have been true that VB6 was hobbled compared to functionality of C++6, it's not fair to say that VB.Net or ASP.Net is useless, to only use C#. The facts are that even Microsoft admits http://msdn.microsoft.com/asp.net/support/faq/def
a ult.aspx that they compile to the same MSIL code. Where .Net is very valuable is in web coding. It provides a much cleaner way to keep the HTML coding separate from the .Net coding than PHP, Javascript, or old Asp style code. -
Re:They don't know what .NET is
How true.
No, I think it's only true there was some internal confusion in the beginning, not as the grandparent says they have "yet" to know what it is. As the concept has matured, they're pretty clear about what it is. A software web strategy / platform to aid in development of web services. In other words, pretty much a competitor to Ruby on Rails as for rapid application development when it comes to modern kinds of network-aware applications, but also usable for other things. -
Re:I'm Job Searching
There are many great resources available for you. Grab yourself a copy of Visual Web Developer Express: http://msdn.microsoft.com/vstudio/express/vwd/def
a ult.aspx. This will allow you to mess around with the .NET framework and get a feel for the IDE - it is very similar to Visual Studio 2005. You will find lots of help on the forums at http://www.asp.net/ and this is a good starting point. The quickstart tutorials are great if you would like to wet your beak : http://www.asp.net/QUICKSTART/aspnet/Default.aspx. -
Re:I'm Job Searching
Download the Express editions of visual XXX.NET and then go watch the streaming multi-media lessons. http://msdn.microsoft.com/vstudio/express/vwd/lea
r ning/default.aspx If you've done any real programming it seems fairly straight forward and the express software is similiar enough to the real stuff. The beginning lessons do a fairly decent job of showing you how to use the IDE which I think is probably just as tricky (if not trickier) than learning a new syntax.