The Cathedral and the Bazaar
Eric S. Raymond used this phrase to explain the difference between Microsoft's preferenced for a closed Cathedral
approach versus open-source approaches by dispursed, independent vendors of Java wares.
Microsoft's ".NET" (dot net) strategy and
".NET Framework" technical architecture
is Microsoft's answer to Java and CORBA.
For large organizations, Microsoft's cathedral provides more stability and control because of the closed, incremental
approach. More importantly, Microsoft's approach yields a larger base of capable developers and users.
A focused set of users raises the economic threshold for when investors are willing to invest in
subsidiary products and services such as training and add-on tools.
Developer attention is fragmented in the open source world,
which makes it difficult to find and keep skills.
In order to keep up with the fast pace of technological change,
developers need to jump to the next hottest thing (even before making the current technology truely usable).
This may change as the popularity of
Google Apps grows and concentrates developer attention.
Dot Net Framework Components
Microsoft counters Java's “Write once, Run anywhere” premise
with “Write many languages, Run on one Micosoft platform”.
This has major implications for Microsoft's revenue model and technical careers.
dot NET Security Framework
from
Foundstone
Version Correspondence - Visual Studio vs. EntLib vs. Platform SDK
Versions of .NET Framework and Visual Studio are paired.
Visual Studio versions can co-exist on the same machine.
.NET Framework
| Visual Studio
| Launch Date
| OS Support
| Features
| EntLib
| Platform SDK
|
v1.0.3705 | 2002 | -
| - | - | -
| - |
v1.1.4322 | 2003 | -
| XP (IE 6.00), 2000 (IE 5.01)
| Not shipped with Vista.
| 1.1 June 2005
| - |
v2.0.50727 | 2005 | Nov. 2005
| - | - |
2.0 Jan. 2006
3.1 May 2007
| 5.0
|
v3.0 | 2008 | May 2008
| Shipped with Vista, download for XP SP1 (IE 7), Server 2003
|
WCF, WF, WPF,
LINQ to SQL, Silverlight
|
4.0 May 2008 | 6.0 (WinFX) |
v3.5 (30729)
SP1 | 2008
SP1
x64 & IA64
| Oct 2008
| download for XP SP2, Vista, Server 2003 SP1
| SQL Server 2008 support. Dependency injection (DI IoC pattern)/interception/cross-cutting mechanism in the
Unity Application Block .
|
4.1 Oct 2008 | 6.1 |
v3.5 update
| -
| -
| -
| KB958481
| -
| - |
v4.0
| 2010
| Beta1 2009
| Windows 7
| Parallel processing, NuGet
|
5.0
| - |
v4.5
| 2012
| 2012
| Windows 8
| "Metro" UI>
|
5.0?
| - |
|
|
Languages
Microsoft had first said J++ is no longer one of the languages in
the Visual Studio.NET suite of many languages.
Microsot once provided a
Java User Migration Path (JUMP) to the C# language (pronounced "see sharp").
For a while, Java was a supported language as J#.
Preparing Your Visual Basic 6.0 Applications for the Upgrade to Visual Basic.NET
This October 2000 article discusses the fundamental architectural issues when
upgrading from Visual Basic 6 to Visual Basic.NET using the Visual Basic.NET Upgrade Tool.
Visual?
C++ is used for low-level programming.
C# was invented by Anders Heilsberg's team.
F# is for functional programming.
VB.NET
JScript is derived from JavaScript
Like Node.js.
Brad Abrams was Microsoft's lead program manager on the .NET Framework team.
VS.NET IDE
The VS.NET IDE (Integrated development environment) is named devenv.exe.
So you can invoke it by typing "devenv" (with no quotes)
from the
Run window.
To use shortcut keys, type Ctrl-Esc, R (for Run), devenv, Enter.
When Visual Studio is installed,
you are prompted to set Envrionment settings for General, Visual Basic, C#, or Web Development.
If later you want to switch, in menu Tools > Import and Export Settings > Reset all settings option.
Projects exist within a Solution.
By default, project files are saved on Vista machine's
C:\Users\user\Documents\Visual Studio 2008\Projects\MyProject
Efficiently Using Expressions (Aggregates, Selections,
Common Language Specification
CLR (Common Language Runtime)
Microsoft hired from Sun several who wrote the Java runtime, and had them create
Microsoft's own Intermediate Language (MSIL) called OptIL, and
associated compilers: one for each of the existing programming source languages>
and a run-time compiler to create machine code executable native to each hardware platform.
Much like the Java RunTime engine, a Common Language Runtime (CLR)
execution engine (EE) "assembles" and "manages" OptIL code and provides services such as
memory management, cross language integration, exception handling, code access security, and automatic lifetime control of objects.
Microsoft OptIL vs. Java IDL Compiler
Microsoft 's replacement for IDL (Interface Definition Language) is to have self-describing objects.
The new OptIL compilers supply metadata for the .NET Framework to locate and unwind stack frames,
and include information required for debugging and garbage collection, as well as security attributes, marshaling data, extended class and member definitions, version binding, and other information required by the runtime.
.NET applications, components, and controls are built using Microsoft's .NET Framework class library.
.NET applications code written using this contract of cooperation is called "managed" code.
From COM to .NET
Existing "unmanaged" COM applications can use a COM callable wrapper (CCW) to access
system functionality managed by CLS-compliant library of classes, interfaces, and value types.
dot NET eliminiates COM plumbing.
COM | dot NET |
Registration
| self-described apps |
GUIDs
| hierarchial namespaces in BCL |
.IDL files
| unified object model |
HRESULTs
| structured execptions |
IUnknown
| common root object |
AddRef/release
| automatic garbabe collector |
CoCreateInstance
| new operator |
Visual Studio vs. Eclipse IDEs
The two most popular developer development environments are Microsoft Visual Studio and open-source Eclipse.
Versions of the Microsoft's .NET Framework and Visual Studio are paired, and can co-exist on the same machine.
Telephone, PDA and other mobile device applications are constructed using Microsoft's
.NET Compact Framework 2.0.
|
|
Base Class Library Namespaces For Import Into Source Code
The Base Class Library (BCL) provides for developers
common functions calls:
Some namespaces are standardized as ECMA 335 and ISO/IEC 23271:2006 standards.[1][2]
See
WIKIPEDIA
The System namespace
provides support for the console environments
provides base types for handlign String, DateTime, Boolean,
math functions, and base classes for attributes, exceptions, and arrays.
The System.Collections namespace
defines common containers (collections) for programming lists, queues, stacks, hashtables, and dictionaries.
It includes support for generics.
The System.Globalization namespace
Other namespaces include
.Threading,
.IO for Files, .Text, .Xml,
.Net for networking,
.Reflection,
.Security for cryptography,
.Diagnostics
.Runtime for interop with COM.
Non-standarized (proprietary) Microsoft namespaces include
ADO.NET, Linq,
Drawing,
Web (for ASP.NET), and
System.Windows.Forms>
ASP.NET
10 ASP.NET Performance and Scalability Secrets By Omar Al Zabir
ASP.NET vs. Java EJB
ASP.NET superceded Microsoft's ASP proprietary server-side web services programming model.
New features include the Windows Forms framework .
Microsoft has exams certifying web programmers on version 4:
- Exam 70-519 - Pro: Designing and Developing Web Applications Using Microsoft .NET Framework 4
- Exam 70-515 - TS: Web Applications Development with Microsoft .NET Framework 4
- Exam 70-518 - Pro: Designing and Developing Windows Applications Using Microsoft .NET Framework 4
- Exam 70-511 - TS: Windows Applications Development with Microsoft .NET Framework 4
IIS vs. Apache Tomcat Web Server
As of VS 2005, ASP.NET can be developed without IIS (Internet Information Service).
In 2011, Microsoft introduced
LightSwitch for easier development of business apps
from either Visual Studio
or a web-based interface.
Model View Controller design paradigm, which replaced the ASP.NET model.
|
|
ADO.NET and XML
Microsoft ADO.NET (Core Reference) by David Sceppa
Microsoft certification on this:
- Exam 70-516 - TS: Accessing Data with Microsoft .NET Framework 4
XML
Microsoft has been criticized for not being very much involved with the development of
Business Transaction Protocols (BTP) by Boston-based
OASIS (Organization for the Advancement of Structured Information Standards)
-- which maintains the
xml.coverpages.org --
and the United Nations CEFACT ,
who are trying to standardize XML tag names for all business transactions being conducted on-line.
Let's see how long Microsoft will be part of this group or break off so they can
claim proprietary patent rights.
MS SOAP vs. IIOP vs. REST vs. JSON
SOAP is also supported by Java and J2EE.
BizTalk
Microsoft submitted the SOAP specification to W3C.
|
Microsoft has the
MCAD - Microsoft Certified Application Developer for .NET
credential.
Introducing Microsoft .NET My Services by Jeannine Gailey and Christopher A. Jones
Inside C#, Second Edition by Tom Archer
Microsoft Visual C# (Core Reference) by Mickey Williams
Building COM+ Applications Using Microsoft .NET Enterprise Services, Course 2557
Application Upgrade and Interoperability Using Visual Studio .NET, Course 2571
|
|
Enterprise Library
LINQ (Language-Integrated Query)
Query | Operations | Usage |
select | Projection | limit the number of columns returned |
count, average, min, max |
Aggregation | - |
where | Filtering | - |
join | Grouping | - |
orderby | Partitioning
| returns input sequence as sections without rearranging the elements after
Skip (excluding) or take (including) elements at specified positions or
skipwhile or takewhile until an element does not satisfy a specific condition.
|
LINQ, introduced in 2008, are tricks in the .NET compiler which extend C# and VB languages
to access a variety of data sources (in-memory and XML structures as well as databases).
The compiler translates SQL query-like syntax into method calls such as:
using System.Collections;
namespace System.Collections.Generic{
public interface IEnumerable<out T> : IEnumerable{
new IEnumerator<T> GetEnumerator();
}
IEnumerable<int> numQuery2 = numbers.Where(num => num % 2 == 0).OrderBy(n => n);
foreach (int i in numQuery2){
Console.Write(i + " ");
}
}
The <out T> is a C# 4.0 artifact.
The <int> is a generic expression which are more general (generic)
by not providing an implementation, because the data source is not known until run-time,
IEnumerable<T> hides the true source of data.
The => are lambda commands introduced with C# 3 as in-line unnamed anonymous functions
executed in a delegate invocation.
Delegates (event handlers) are used to pass methods as arguments to other methods.
Delegates are used to define callback methods.
For example, a reference to a method that compares two objects could be passed as an argument to a sort algorithm.
Because the comparison code is in a separate procedure, the sort algorithm can be written in a more general way.
LINQ commands are therefor program commands, not embedded SQL strings.
So LINQ command input can be assisted by intellisense and errors in them can be caught at compile-time
rather than at run-time when another server (the database server) resolves them.
Errors in database names and datatypes are referenced as strongly typed objects.
|
|
WF (Windows Workflow Foundation)
WF (Windows Workflow Foundation) for asynchronous/manual processing of sequential or state-machine flows,
It was nicknamed ___ during initial development.
WPF (Windows Presentation Foundation) with Silverlight
WPF (Windows Presentation Foundation), defined by .baml (Binary XAML) files and
displayed by Silverlight/Mac Moonlight player, which compete with
Adobe Flash
It was nicknamed ___ during initial development.
.NET WinForms
WinForms (Windows Forms) use a rich (fat) client program which
installs on the client's machine to provide users
a rich graphical interface.
Winforms are encapsulated in the System.Windows.Forms
namespace, which provides:
- System.Windows.Forms.Form to manage windows.
- System.Windows.Forms.Control base class for processing keyboard, mouse,
and Windows messages.
- System.Windows.Forms.ButtonBase
- System.Windows.Forms.TextBoxBase
- System.Windows.Forms.ScrollableControl
- System.Windows.Forms.ContainerControl to manage scroll bars.
- System.Windows.Forms.Panel to group mutually exclusive radio buttons and other controls
- System.Windows.Forms.UserControl to derive custom controls.
|
|
|
WCF (Windows Communication Foundation) for Web Services
WCF functions are in namespace
System.ServiceModel
Microsoft certification
- Exam 70-513 - TS: Windows Communication Foundation Development with Microsoft .NET Framework 4
See my Web Services>
for in-depth description and code samples.
WIKIPEDIA:
IBM and Microsoft created the Web Services Interoperability Organization (WS-I)
industry consortium to create guidelines (not standards) and tests for interoperability.
It defined profiles, which as a set of named web services specifications at specific revision levels,
together with a set of implementation and interoperability guidelines recommending how the specifications may be used to develop interoperable web services.
It became part of OASIS.
The life of a service InstanceContextMode enumeration
PerCall (state unaware), PerSession, Single
Service BehaviorAtttribute
|
|
Assets
This describes the artifacts of an XML based system,
starting from the client's point of view.
|
Graphic based on
Karthik Ravindran's voice presentation:
Implementing and Accessing Web Services Using Visual Basic 6.0 and the SOAP Toolkit for Visual Studio
(no longer on Microsoft's website)
|
|
Testing .NET
.TEST integrates with Microsoft Visual Studio .NET to
perform Static Analysis of finished .NET Framework classes and methods
based on "Best Practices" and ".NET Framework Design Guidelines".
It automatically creates unit test harnesses, stubs, and test cases for automating regression testing.
It's in the same
Automated Error Prevention product line of group-oriented tools as
Parasoft's JTest for Java.
Micrsoft's public .NET demo sites:
ibuyspy.com retail store
FMStocks.com .NET service Fitch and Mather was written in VB and C#.
|
Code Profilers
$295 ANTS (Advanced .NET Tool Suite) Profiler works with $690 ANTS Load and $2985 ANTS Enterprise Load. From Red-gate, makers of SQL Compare and SQL Data Compare.
Borland's $700 Optimizeit Profiler for the Microsoft .NET Framework
$28 Performance Testing Microsoft .NET Web Applications
by Microsoft Press (September 25, 2002)
is based on the Microsoft ACT tool, but the concepts discussed are relevant to other tools as well,
such as structuring load tests
and troubleshooting performance bottlenecks and memory leaks.
$30 Performance Tuning and Optimization for ASP.NET Applications (Apress, April 2003)
by Jeffrey Hasan, Kenneth Tu
Maximizing .NET Performance
by Nick Wienholt
who describes
NPerf benchmark testing framework
for benchmarking .NET classes and methods.
Like Nunit, it's a CodeProject administered by Jonathan de Halleux.
The NPerf framework uses reflection to gather the benchmark testers, the tested types, runs the tests and output the results. The user just have to write the benchmark methods.
Its custom attributes are located in its NPerf.Framework namespace, NPerf.Framework.dll assembly.
Microsoft .NET Distributed Applications: Integrating XML Web Services and .NET Remoting (Microsoft Press, February 12, 2003)
by Matthew MacDonald
describes how to use VB.NET (not C#) for Remoting, XML Web services, Message Queuing.
Test-Driven Development (TDD) in Microsoft .NET (Microsoft Professional)
by James W. Newkirk (administrator of the
NUnit open source project for unit testing tool for the .NET environment)
and Alexei A. Vorontsov
$40 Designing Scalable .NET Applications (Expert's Voice) (APress; November 1, 2003)
by Rickard Redler, Joachim Rossberg
|
|
|
Resources
For programming advice, tips, code snippets, and answers to technical questions from developers using the latest technologies?
Try one of these independent Web communities:
angryCoder e-zine, written using the Microsoft .NET Framework,
where you can submit articles and download source code for a minimal donation.
C# Corner has developers using C# and .NET meet and exchange their ideas, code, and expertise through discussion forums or submissions.
The Code Project is a community of developers using Windows who specialize in C++, MFC, C#, and .NET.
DotNetJunkies.com offers information, tools, and education utilizing the ASP.NET Framework.
Visual Studio and
dot Net
International .NET Association
User groups interested in the Microsoft .NET platform have
the
International .NET Association (http://www.ineta.org)
resource to connect with their peers and sponsors.
INETA enables interaction among user groups interested in .NET,
providing them with unique educational support.
Make sure your user group is as vibrant and effective as it can be
in providing .NET education-register with INETA today at http://info@ineta.org.
Microsoft Partners
These companies provided First Look seminars on Visual Studio 2012, etc.
SolarTechnj.com 877.876-5278 or 201.8079889,
322 US Highway 46 West, Parsippany, NJ 07054
Premier Knowledge Solutions St. Louis, MO
Netcom Learning NY, 212.629-7265
|
Lutz Roeder's Reflector for .NET (formerly
here before RedGate) provides a class browser for .NET components and assemblies.
It features hierarchical assembly and namespace views, type and member dictionary index search,
type reference search, custom attributes view, an IL disassembler and viewers for C# XML documentations and MSDN help.
Assembly dependency trees, supertype/subtype hierarchies and
resources can be inspected as well. Function prototypes are displayed in C#, VB and Eiffel syntax. Windows XP enabled.
|
|
|
Portions ©Copyright 1996-2014 Wilson Mar. All rights reserved. | Privacy Policy |
Last updated