October 2004 - Posts
from Terje's weblog
I found these three issues in many J2EE apps built. Design patterns used when those are not required too.
Using design patterns is a good thing, but as any other programming technique, it can easily be misused. Here‘s three things you should avoid when using design patterns:
Using evil design patterns
A few design patterns are considered evil by some. This includes one of the GoF-patterns; Singleton. Some people even call Singleton an anti-pattern,
and the use of an IoC-container is a good way to avoid being tempted to use Singletons. If you don't want to use an IoC-container Singletons can be
used (sparingly) if used wisely.
Using design patterns the wrong way
Most design patterns are well documented. Using a design pattern the wrong way leaves a pitfall in your code.
A programmer looking at the code might think a design pattern is used when it in fact is bad code disguised as a design pattern.
Overuse design patterns
A simple functionality does not need a complicated design. Overusing design patterns complicated things, and can in fact make the code harder to maintain.
An obvious rule is to only use a design pattern when it improves the design.
I wish you a very happy birthday Bill, and thanks a lot for all the history you built around us.
I was writing small cool tool which integrates Gmail new mail alerts, and found some nice APIs and Tools writtens in C# for RSS Feeds.
01. RSS Connect : A OpenSource RSS News Aggregator via Scobleizer
02. RSS 2.0 Framework for .NET
03. A Cool RSS Reader in C#
Homo Sapiens are not alone...
It sounds too incredible to be true, but this is not a hoax. A species of tiny human has been discovered, which lived on the remote Indonesian island of Flores just 18,000 years ago.
News@nature.com tells the story of a find that changes the world of palaeoanthropology, and challenges our perception of what it means to be human.
Read the full story here...
Where are other cool toys boys...google wanna aquire...:-)
Soma has announced the long awaited feature of Visual Studio 2005 :-)
It's not but "Edit and Continue" feature for Visual C#. This feature was
developed based on the customer feedback. This is one more classic example to
showcase how powerfull are the Microsoft Ears :-)
This feature will be shipped via next Beta refresh to partner level customers.
Check this page, to feel the aggressive and innovative Microsoft way of doing
software development for customers.
In soma words...
"We have always maintained that you should program in the language you’re most comfortable with. If you like E&C but prefer programming in C#, Visual Studio 2005 will enable you to do just that. This is a great example of the large number of customer driven features in Visual Studio 2005. Adding E&C to Visual C# is currently one of the top requested customer suggestions on the MSDN Product Feedback Center. Visual C# 2005 in Whidbey has been significantly improved by adding innovative language constructs, new compiler features, dramatically enhanced developer productivity, and an improved debugging experience."
Thanks very much guys @ C# product team
Well I can't stop writing a review on this book even thought I read only few chapters. The book that I am currently reading is incidently the World's first book on ".NET Secuirty". I am very glad to know that this book may go as a de-facto for students who want to learn .net from security perspective which can lead to a very good programming world of .NET in future as well. As a Microsoft MVP, I had got a chance to observe the community and students around in close, and I got to found one interesting thing amongst students. That is nothing but an intution to break or hack the software. So I learnt that only students can think about security right from the first line of thier code. Since the student community is slowly moving towards .NET development, there is a very strong need of these kind of books to make them write secure code right from the beginning.
The recent initiatives on Trustworthy computing from Microsoft are also very welcome in this perspective. This could help most of the developer to think twice before they write some code which interacts with public systems like internet.
The current book that I am reading (well..to improve my skills in writing secure code ;-)) is "The .NET Security and Cryptography" by Mr. Gnana Arun Ganesh and Peter Thorsteinson. I found this book as very different to read because, right from the first chapter, it made me think like a hacker which is very unlikely of my mindset as a developer. But as this book's preface denotes an old proverb "Think like a fish, if you wanna catch it", the authors of this book tried thier level best to implement the same wherever it is possible. Thanks Guys.
The coolest part of this book is it's practical approach towards the problems in security. You will find detailed explanations and code examples or graphical representations whereever you need of them. This approach gives a relief to the code-N-test developers. Most of the topics are covered with code and graphical representation just as it was taught by some professor in any university.
On .NET lines, this book covers ASP.NET security and web services security, the topics every developer looks for..along with Cryptography lessons from .NET perspective. There is a whole chapter dedicated for "Code Access Security" which made me feel the "Value for Money" and satisfaction as a developer.
The authors of this book has taken one more care at the end of the book. This books ends with a sneak overview of Web services to ensure thier focus towards next generation development platforms and the need of mentioning that. My overall rating is : Gold..Just go and grab one.
A Slashdot post and my buddy Ivarturi's blog pointed me to this..
"if you're doing C# and your foundations in OOP are rock-solid, there really isn't any difference whether you're coding C# or Java."
The list of enhancements to Java
- Generics (C# 2.0 already supports this)
- Enhanced For-Loop (the foreach construct in C# 1.0, duh!)
- Autoboxing/Unboxing (C# 1.0 already has this, everything is an object, even the primitives - not really, but they do it so well...)
- Typesafe Enums (again C# 1.0 already implemented this, but I think they've added a little bit more twist in Java, that its actually a better implementation)
- Varargs (C# 1.0's params construct, ellipsis construct in C++)
- Static Import (I don't know if C# 1.0 has this, or C#2.0, but C# has a construct for aliasing your imports - which is way cooler. Static Import, actually promotes bad coding habits IMHO)
- Metadata/Annotations (this is C# 1.0's Attributes, Sun's upturned noses just gave it a fancier name - also,
C#'s implementation is better and more intuitive)
I found this comment very interesting
Cakoose :- "C# vs Java, mostly a tie (c# good: ref and out parameters, indexers, foreach; c# bad: properties, operator overloading)"
This is one of the coolest case studies for Smart Client Applications developed with
.NET Framework. Purely developed using Visual C# and DirectX.
World Wind 1.2 : http://learn.arc.nasa.gov/worldwind/
From NASA :-
"NASA Learning Technologies (LT) is a NASA R&D effort for the engineering of teaching tools that deliver NASA content in the most engaging and dynamic manner possible. LT builds the pipeline and the delivery point for unencumbered access to the best data NASA has to provide.
World Wind allows any user to zoom from satellite altitude into any place on Earth, leveraging high resolution LandSat imagery and Shuttle Radar Topography Mission (SRTM) elevation data to experience Earth terrain (or any planet with the data) in visually rich 3D, just as if they were really there. Virtually visit anyplace in the world. Look across the Andes, into the Grand Canyon, over the Alps or along the African Sahara."
Teucer, my MVP buddy pointed me to one interesting thread in the respective forum
on Why NASA has choosed "C#" and "DirectX" rather than "Java/C++" and OpenGL.
MaxWell (World Wind Programmer) Replied...
"Microsoft ownes greater than 95% (or so) market share with personal computers. Our aim here at Learning Technologies is to touch as many people as possible with our products, so making something work (and work well) with MS Windows is top priority. World Wind started it's life with a piece of software called Blue Marble Viewer(this was before I came onboard), which was based on Open Scene Graph. That was primarily developed on Linux and while this piece of software was revolutionary and extremely powerful, porting each successive version to Windows proved to be costly. This created a need for a stable MS Windows product with the same functionality of BMV. With extremely limited resources, C# seemed like the only option that would allow us to have a deliverable product. This leads me into the biggest advantage for using C#..."
This is surely a great win for C#...cheers :-)
More Posts Next page »