|
Well, can back that down a little! For C#, there are some advantages in using just Visual Basic .NET instead: I'm doing a startup and developing a Web site intended to be a serious business and am using Microsoft, .NET, etc. C#? Never touch the stuff! Instead I just use Visual Basic .NET. The keys are the Microsoft 'common language runtime' and .NET collection of classes, and VB has plenty of access to these although C# has more in some advanced respects. VB has easier syntax, that is, is not 'idiosyncratic' the way C# is borrowing from C/C++. So, VB is easier to learn and easier to read on the page. So, VB is easier for me, the founder and also for anyone I hire. SQL Server stored procedures? Never touch the stuff! I like the idea of relational database via T-SQL. That's fine. For my work, T-SQL via essentially 'command lines' and/or ADO.NET is just fine, plenty powerful. 'Command lines'? Yes: Use the little program SQLCMD.EXE that comes with SQL Server. So, if want some DB operation, just type the T-SQL commands into a simple text file and give it to SQLCMD.EXE. E.g., can do queries to get data for 'reports' of wide variety. SQLCMD.EXE is not part of the UI but can be just fine for a lot of the rest want from DB. I don't even like the idea of a stored procedure because it 'distributes' the source code of the software logic in a clumsy way. ADO.NET and T-SQL are so powerful that there's s a good chance won't actually need stored procedures. If someday do need a stored procedure, then maybe download one or have a friend write one for you. Or learn a little about stored procedures and then write one. To get a good start on the programming, get the relatively well written Jim Buyens, 'Web Database Development, Step by Step: .NET Edition', ISBN 0-7356-1637-X, Microsoft Press, Redmond, Washington, 2002. Then get copies of the standard Microsoft Press books on VB, ASP.NET, ADO.NET, and SQL Server. Then learn how to use the several thousand Web pages of .NET documentation at MSDN. Here's what I do: For some topic, say, class System.Uri, I start with what I have and/or a Google search. When I find a Web page I like, then I have my favorite Web browser save it. I save it in a file system directory I have on my development computer. So far I have four such directories, one for each of Windows, VB, ASP.NET, and SQL Server. In total I have about 3000 such Web pages. For the file names used for saving a Web page, I have a little macro that assigns those just as MSDNxxx.HTM where the xxx is the next unused sequence number. In each directory I have a table of contents
file that acts like an 'index' and collection of 'abstracts': So for each file MSDNxxx.HTM, I have in the TOC the full tree name ending with MSDNxxx.HTM, the URL of the page at MSDN, the title of the page, the first paragraph or so of the page, and maybe some additional notes. Eventually you will see how MSDN is organized: In .NET there are 'namespaces'. Typically for each there is a nice few Web pages of overview discussion. Those are good to read. Those overview pages have links to more details, often with more overviews, some tutorials, and some pages "How to: ...", usually quite practical with code samples. Then there are links for each .NET class. In the page for the class there are links to pages for the class constructors, methods, and properties. For some of the classes, e.g., STRING, it can take maybe a few dozen MSDN pages to document all of it. For typing, I just use my favorite text editor. So I use it to maintain and search the TOC files and also to enter source code. No, I won't touch Visual Studio. The text editor I use is KEdit, and it is my most important tool. So far I have found that KEdit is just fine for developing .NET software. For running the VB compiler, I use either a command line script or use the way ASP.NET works in development (which is excellent). For a scripting language, I just use the old ObjectRexx from IBM, available for download for free. ObjectRexx is both elegant and serious. I've written software, especially scientific and engineering, for decades in old Basic, assembler, Algol, Fortran, PL/I, C, etc. There read a little documentation and write nearly all of own 'logic'. Developing a Web site with .NET is quite different: In simple terms, .NET has a class for darned near everything so far found of significant general usefulness in commercial software development, especially for Web apps. So, .NET is enormous, a major event in computing. So, for developing a Web app, heavily what you do, at least the first time, is read a lot and type a little. Your code is mostly just really simple 'glue' code between calls to .NET methods. So in my code, to me, one of the crucial issues is just what the heck does the .NET class, method, or property do? For the answer, just ahead of each significantly obsure usage of .NET, I in put in comments with the tree names of the relevant files MSDNxxx.HTM. Then one keystroke in my editor will display the Web page of the MSDNxxx.HTM file. To me, a big part of the really meaningful asset of my code is just the code that works together with the links to the MSDN documentation. It's that documentation, readily available right there in my code, that lets me 'desk check' and understand what the code does. So far, it seems to me that what Microsoft has done with .NET, 'managed code', MSDN, etc. is just terrific stuff, a real step forward in computing. My experience is that you will have questions. Then you can often get answers on fora and blogs via a Google search. In particular, MS runs several fora where MS experts hang out and provide sometimes some quite good answers. I've gotten maybe a dozen really good answers on some knotty questions. You need to accumulate a collection of such helpful fora. For more, it's possible to pay MS and get more. Once you have serious revenue, to save time, likely you should just pick up a phone and call an appropriate MS expert and have them just walk you through some 'task' as you take notes. Then the next time, just use your notes! I believe that you will find that your most difficult issues are not in the programming but in 'system management and administration', e.g., for installation, configuration, backup, recovery, security, performance, reliability, of Windows Server, SQL Server, other MS servers, and the networks you use. For such work, once my business has significant revenue, I intend just to pickup the phone and call MS, Cisco, HP, etc. You can do it. What you didn't get in a BS or MS in computer science, someone who did can give you a few lectures and get you nicely caught up on what you might need occasionally. But it's not easy getting good with several books, each 500-1000 pages, and a few thousand Web pages at MSDN. |