Какво е Microsoft .NET technology?

71 отговора 3395 прегледа
#1

Какво е Microsoft .NET technology?

Може ли някой да ми обясни какво
е това всъщност? До сега това което съм
чел са предимно малко мъгляви неща
от сорта "нещо много велико и хубаво",
но не и конкретно какво е. Какво например
означва за мен като програмист да напиша
"NET" приложение? Какво трябва да му е
различното от "нормалните" програми,
които съм писал до сега?
(Надявам се въпроса ми да не е глупав.)

Отговор
в отговор на Eмил #2

Re: Какво е Microsoft .NET technology?

Аз лично не пиша приложения с .NЕТ Framework, но съм чел все пак няколко встъпителни книги по въпроса, и за класовете, и за .NET езиците...така че един съвет от мен - първо като задаваш въпрос, стреми се да го задаваш максимално конкретизиран и описателен, щото иначе е много тъпо...

ами какво може да значи да направиш app с .NET - ами както предполагам, щом казваш че си писал досега, значи не е възможно да не си се използвал някакъв framework за разработка (освен ако не си писал console apps или apps на чисто Win32...) - примерно MFC, OWL, WTL, Java-рския framework и др. - ...едва ли е нещо коренно различно като подход - разбира се има и големи разлики - в .NET имаш набор от минимални възможностти, които всеки .NET-ски език трябва да поддържа, но конкретния език разбира се може (и го прави) да има и свои специфични възможностти - пример - използване на указатели в unmanaged C++...

та в този контекст - преди 2-3 дни четох една интересна статия в списание "Windows Developer" - там някакъв капацитет сравнително накратко, но доста разпалено обясняваше предимствата на C# и .NET и казваше, че ако C++ бил толкова добър, защо class frameworks, базирани на него били трудни за използване (не даде конкретни примери обаче, защо ли... )
аз не съм много съгласен с автора на статията де, но това си е мое мнение, просто споделям прочетеното...

най-често умните хора са и лоши
Отговор
в отговор на Eмил #3

Re: Какво е Microsoft .NET technology?

Microsoft .NET като цяло е комбинация от три неща - Microsoft .NET Framework, .NET Enterprise Servers и Development Tools.

Основното тук е .NET Framework. Това е, може да се каже, цяла една софтуерна платформа, каквато е например и Java. Има си среда за изпълнение - Common Language Runtime (нещо подобно на Java Virtual Machine при Java), който се грижи за управлението на програмите, сигурността и ресурсите (например чрез Garbage Collection и т.н.), има си основна библиотека с класове (BCL - Base Class Library), има си отделен обектно-ориентиран език, до който се компилира всичко - MSIL - Microsoft Intermediate Language (подобно на Java bytecode-а при Java), и т.н., и т.н...

С други думи, .NET Framework си е една завършена платформа. В този смисъл, да напишеш .NET приложение означава да напишеш програма, която е написана да се компилира за и да върви под управлението на .NET Framework.

.NET Enterprise Server-ите са следните сървъри на Майкрософт:

Application Center

BizTalk Server

Commerce Server

Content Management Server

Exchange Server

Host Integration Server

Internet Security and Acceleration Server

Microsoft Operations Manager

Microsoft Project Server

Mobile Information Server

SharePoint Portal Server

SQL Server

Windows 2000 Server

Windows 2000 Advanced Server

Windows 2000 Datacenter Server

Windows Server 2003

Отговор
в отговор на ironcode #4

Re: Какво е Microsoft .NET technology?

vroom и ironcode,
първо благодаря за отговорите.

От вашите отговори разбрах, че съм имал съвсем
погрешна представа за NET (по-точно явно никаква).
От статиите в интернет и списанията останах с
впечетлението, че това е нова технология (или
по скоро философия), която да обхване всичко
майкрософтско - операционната система и
съответно всички езици за програмиране, които
се ползват за писане на програми за Windows.
(Аз ползвам Делфи - явно трябваше да го спомена).
Предствях си го (така ми беше описано веднъж) едва
ли не като ново Win32 API, което да прави "чудеса".
Затова си мислех, че "NET" програма може да се
напише на всякакъв език, ако знаеш какво е това "NET".
А сега разбирам от вас, че е просто една нова среда
за разработване като много други.
Поради явно грешните ми представи, няма смисъл
да задавам допълнителни въпроси.

Отговор
в отговор на Eмил #5

Re: Какво е Microsoft .NET technology?

Знаете ли ..., без да ми се обиждате, но абсолютно нищо не сте разбрали и ако искате нещо да разберете е по-добре да задавате въпроси ...
Прочетете отново постинга на IronCode. Той е написал всичко - кратко и ясно ... Но тъй като е кратко, а вие не виждате по далеч от Delphi-средата за разработка на приложения и един ограничен програмен език, т.е. не по-далеч от монитора пред Вас ..., не сте разбрали нищо ...
Съветвам Ви да се светнете по следните въпроси:
- OS / Kernel, Driver & Modul / Executable Modul
- Lib / DLL / Resources
- OOP / OOD
- PI - code / Stack
- Remote Server (в софтуерен смисъл! )
- Intranet / Internet ...
И когато пълната мъгла в главата Ви в крайна сметка се вдигне, ще прогледнете за Microsoft .NET Technology ..., а и не само за нея!
Успех!

Отговор
в отговор на Eмил #6

Re: Какво е Microsoft .NET technology?

Mai nishto ne si razbral pak ama karai :)
Nqma znachenie...

Отговор
в отговор на Eмил #7

Re: Какво е Microsoft .NET technology?

Win32 API-то няма как да се промени или да е ново (щом няма да го променят дори за Win64...както и да е)...няма как фреймуърка да направи нещо в повече като възможност от това, което ти позволява API-то...

иначе е вярно, че може да се напише програма на който си избереш език от .NET-ските такива...поне в .NET Framework SDK-то има компилатори за C#, C++, Visual Basic (поне във версията от преди 8 месеца)...

доколкото може да се дефинира някаква "философия" - то тя е следната (според мен): да се пише всяка част от програмата на този език, който е най-подходящ за конкретния компонент...както е класическия пример от книгите (който не ме кефи де...): пишем интерфейса и формите на C#, пишем математическите изрази и изчисления на Fortran (щото е много удобно на него) и т.н.

в крайна сметка всеки фреймуърк обвива финкционалността на Win32 API в различна дълбочина и с различна архитектура и интерфейси, които излага на света, демек програмистите...то се подразбира, че колкото по-лесна е работата с фреймуърка, толкова би трябвало да са по големи trade-offs които се получават от слоя върху API-то...
има доста по опитни колеги, които предполагам ще потвърдят (а може и да не) моето мнение - примерно MFC е (сравнително) бърз, щото е сравнително тънък wrapper върху API-то, но пък както и да го увъртаме...си е трудно и мъчно да се бачка с него...няма как да си кривя душата, че е по-лесно с него, отколкото с Delphi да скалъпя един app със тривиални контроли и такива нещица, като от tutoriali-те...

най-често умните хора са и лоши
Отговор
в отговор на Eмил #8

Re: Какво е Microsoft .NET technology?

Ама не е среда, а е платформа! Среда е например Microsoft Visual Studio .NET, макар че има (и ще има все повече) среди, които могат да създават програми за платформата .NET - цяла една платформа, която включва всичко, което включва една платформа - среда за изпълнение, библиотека от основни класове, механизми за достъп до данни, за комуникация, и всичко друго. Само че .NET Framework не стъпва направо върху хардуера, а стъпва върху операционните системи и услугите, които те могат да предложат. .NET Framework например е много добре интегрирана с Internet Information Services, COM+, и какво ли не още...

Иначе това, което си чел в статиите е било вярно, но не си го интерпретирал правилно. Например, .NET Framework наистина ще обхване операционната система, като все повече и повече се интегрира с нея, докато накрая всички престанат да пишат unmanaged код и да ползват API-тата. Услугите, които предлага .NET Framework, са много по-добри от Windows API, в смисъл, че са обектно-ориентирани, консистентни (например навсякъде за обработка на грешки се използват изключения, а не на едно място булеви стойности, на друго HRESULT, на трети кой знае какво)...


P.S. Като стана дума за езиците за програмиране - не си ограничен само до езиците, предлагани от Майкрософт. Има third party компилатори за сигурно повече от 30 различни езика, които могат да компилират за .NET Framework, които включват:

COBOL
Perl
Eiffel
Python
Pascal
Mercury
Mondrian
Oberon
Salford FTN95 (Fortran)
SmallTalk
Standard ML
Dyalog APL

и други...

Редактирано от ironcode на

Отговор
в отговор на ironcode #9

Re: Какво е Microsoft .NET technology?

Благодаря. На теб и останалите.

Като че ли ми е по-ясно. Ключовата дума за мен,
която ми убягваше е "платформа". Разбира се
имам много въпроси, но ще си ги изяснявам сам.
Мерси още веднъж.

Отговор
в отговор на Stalker #10

Egati demagogiata

Abe pichove ajde sega kato momcheto viatar go vee na bial kon i da kajem aaaa, mi to zarad Delphi-to be. Estestveno che ako az narichah Delphi (Object Pascal) ogranichen ezik, znachi i men me vee viatar i ne bih si pozvolil nravouchitelen ton! Kato e tolkova ogranichen ezikut sto li kat si pogledna C# koda se edno gledam Delphi/OPascal !!! kod (vprochem Borland veche narichat ezika "Delphi language") . Zaradi takiwa silno razviti ezici (C++, kogoto uvajavam izkluchitelno), izpolzvani ot hora s nedotam razviti sposobnosti, horata dignaha race i pochnaha otdavnada syzdavat ezici kato Java, C#, Delphi(daaa Delphi ).
Taka che dajte da se distancirame ot porednata voina na tema ezici (razpalvana ot iziavlenia kato gornoto)! i da ne priravniavame Delhi programist = Kalpav programist !!!

Отговор
в отговор на Eмил #11

Re: Какво е Microsoft .NET technology?

mnogo ne6ta pro4etoh tuk oba4e ne pro4etoh tova, 4e na kakavto i .NET ezik da pi6e6 nakraq izliza edin i sa6t optimiziran izhoden kod. sato i ova 4e s edno natiskane na mi6kata pravi6 prilogenieto Web bazirano (kato naprimer go.icq.com).




P.S. .NET ezicite ne sa samo MS. Delphito ne e sred tqh makar 4e 4uh 4e i te ne6to 6te se ma4at da se vargat kam tova

Отговор
в отговор на jo_pirata #12

Re: Какво е Microsoft .NET technology?

novoto delphi (moje da e 7 ili nagore ne sym siguren) moje da generira MSIL
a za .NET nomera e sledniq
ima6 edna virtuana ma6ina koqto izpylnqva MSIL(microshit intermediate language) ne6to kato ass ama ne e ograni4en do arhitekturata na cputo a do .net platformata (koqto zasega e ograni4ena do microshit ama mono moje da promeni tva)
taka 4e .net e o6te edna virtualna ma6ina kato jvm primerno oba4e moje6 da pi6e6 na vseki ezik s kompilator sposoben da generira msil
osven tva moje6 i drugi raboti da pravi6 primerno web-bazirani programi ama te 6te se izpylnqwat samo vyrhu microshitski serveri ili nqkvi imitacii
zasega za linux(ili ne6to razli4no ot win) nqma ni6to koeto da e stignalo do versiq 1 ama tva moje i da se promeni 6toto koi 6te im polzva serverite na microshit kato ne stavat za ni6to
ta tva e .net
nadqvam se da si osyznal 4e nqma nikakyv smisyl da go polzva6 6toto
1. web prilojeniqta nqma kyde da si gi pusne6 6toto nikoi microshitski server nqma da izdyrji na atakite na koito 6te sa podlojeni (95% ot serverite ne sa microshitski)
2. za normalni programi moje6 da polzva6 na borland 6itovete 6toto 6te ti vyrvqt i pod linux
3. microsoft sux:)
are tva e ot mene
za vernostta na goreizlojenoto ne se podpisvam ama moje i da se okaje vqrno

Pick it, pack it, fire it up, come along
and take a hit from the bong
Отговор
в отговор на Creator #13

Re: Egati demagogiata

Абсолютно съгласен.. мнението ти съвпада с моето 100%

Отговор
в отговор на Creator #14

Re: Egati demagogiata

според мен горното изказване не казва това.

проблема на delphi и на vb не е самият език. и двата езика са доста изразителни. проблема е, че ИЗКЛЮЧИТЕЛНО развитата среда скрива езика.
и всъщност делфи и вужуал бейсик програмистите не програмират на някакъв език а работят със съответната среда. т.е. без средата те не могат да се справят.

Отговор
в отговор на Eмил #15

Re: Какво е Microsoft .NET technology?

в общи линии най-близкото до .net e java.
за съжаление заради калпавата имплементация, според мен java е един боклук.
дано .net е по-добро

Отговор
в отговор на bbwolf #16

Re: Какво е Microsoft .NET technology?

Mliah... po-dobre ne go kazvai tva nikade drugade, shtot sha zaprilichash na edin asistent v MEI, koito tvyrdeshe, che nikoi nikade po sveta ne uchi i ne izpolzva Miscrosoft tehnlogiite :) Kofti za nego... vse oshte si e asistent i takyv sha si umre, no s misylta, che znae vsichko i che razbira vsichko... :)

V momenta men pyk nikoi ne moje da me ubedi, che ima po-dobra tehnologia kato byrzodeistvie i vyzmojnosti ot .NET. Prosto ako iskash neshto da ti vyrshi rabota si plashtash - tva e :). A VS.NET e dosta po-evtino ot Borland produktite, koito ne ti davat koi znae kakvo pove4e. (A zashto VS.NET prilicha na Borland produkt to e yasno :)).

Chovek ako ima vreme e dobre da ponavleze vyv vsichkite produkti i da si izbere nqkoi nali..., no vse pak pishesh na tva, za koeto ti plashtat nai-dobre :) Pone az taka mislia. Vse pak prilagash edni i syshti algoritmi za edni i syshti neshta - kakvo te pritesnqva? Dali shte ti izdyrjat serverite ili drugi neshta - tva go reshava rabotodateliat ti - tebe kvo te interesuva :: ako ti ne si rabotodatel de, no ... kakto i da e. .NET e za promishleno programirane, t.e. byrzo i lesno pravish stabilni (za tova trqbvat malko poveche znania) i moshtni prilojeniq. Tva moga da ti go kaja sled 1 godina opit s framework-a.

Poogledaite obqvite za rabota, precenete si do kolko sa vi vyzmojnostite, izberete si neshto i taka... :) Kvo tolkova

Отговор
в отговор на Плaмeн #17

Re: Egati demagogiata

Така е. Пък и не може да се каже, че хората са "вдигнали ръце" от C++, само защото бил използван от неправилните хора. Не е така. Измислят се нови езици, за да се повиши производителността - тя е най-важното - писане на по-качествен код за по-малко време. Разбира се, някои улеснения, предлагани от езиците, са за сметка на мощта (като например автоматичния boxing/unboxing при C#), но обикновено компромисът е добър, а и всеки е свободен да избере най-подходящия за целта език (поне при .NET). Именно в това е и силата на .NET - във възможностите за избор.

Отговор
в отговор на bbwolf #18

Re: Какво е Microsoft .NET technology?

Имаше много некоректни неща в горното ти изказване:

1. Common Language Runtime не е виртуална машина - точно runtime си е. За разлика от Java Virtual Machine, при .NET винаги имаш гаранция, че кодът се компилира до native чрез JIT.

2. MSIL не е ограничен до нищо. Това си е обикновен стеково-базиран, обектно-ориентиран език от ниско ниво (като казвам обектно-ориентиран, имам предвид, че има инструкции, поддържащи обектно-ориентираното програмиране, като например създаване на обект, извикване на виртуална функция и т.н.). Нещо повече - MSIL, Common Language Runtime, както и библиотеката с основните класове (BCL) са стандартизирани от ECMA. Сигурно си наясно какво означава това - има международен стандарт, който ги специфицира. Именно това позволява всеки, който иска, да си направи компилатор, който компилира до MSIL, както и своя имплементация на CLR. Разбира се, Microsoft ще се постараят техните имплементации да са най-добрите, но това няма да е чрез отклонение от стандартите (в крайна сметка, те са писали по-голямата част). И изобщо се забелязва едно приятно ориентиране към спазване на стандартите от страна на Microsoft. В новото Visual Studio .NET 2003 имплементацията на C++ ще бъде дори още по-съвместима от тази в обикновеното Visual Studio .NET, където пък е много по-добре от VS 6.0.

3. Не е вярно, че съврърите на Microsoft не стават за нищо. Това ти изказване означава, че въобще не си наясно на какво вървят голяма част от сървърите, които се използват за e-business. Говорим си за истински сървъри, а не за някакви пикливи Linux машинки, които сервират прости HTML страници. Защото, както знаеш, Web приложенията не са само HTML, намесена е и бизнес логика и бази данни. Не можеш да биеш Network Load Balancing клъстер от Windows 2000 Advanced Server машини, на които вървят COM+ компоненти, що се отнася до сложни e-business решения, които изискват distributed транзаксии - просто COM+ и Microsoft Distributed Transaction Coordinator (MS DTC) са най-подходящи за целта. Пък дали отзад ще сложиш MS SQL Server, или Oracle (който също поддържа MS DTC), си е твоя работа, макар че SQL Server 2000 определено има какво да предложи.

П.С. .NET Framework и Windows 2000 са победители на OpenHack 4 - [линк]

4. "microsoft sux:)" - с това можеше да започнеш, за да не четем нататък. Забелязал съм, че повечето хора, които плюят по майкрософтските технологии, и особено по .NET, са хора, които въобще не разбират за какво става дума, но си плюят ей-така, само защото е от Майкрософт. Какво да се прави - не всички са фенове на open-source проектите, някои все още предпочитат трудът им да им се заплаща

Така че, както някой се изказа по-горе,
V momenta men pyk nikoi ne moje da me ubedi, che ima po-dobra tehnologia kato byrzodeistvie i vyzmojnosti ot .NET. Prosto ako iskash neshto da ti vyrshi rabota si plashtash - tva e :).

Редактирано от ironcode на

Отговор
в отговор на bbwolf #19

Re: Какво е Microsoft .NET technology?

Mdam... i za da se prikliuchi spora vi predlagam : taka ili inache shtom namirame vreme da draskame tuka - daite da si napravim neshto kato konkurs -> da rechem "Da se napravi el. magazin s nai-malko kod (bez tozi, generiran ot sredata), koito da ima opredeleni sekcii (kato statistiki s grafiki i t.n., koshnica i prost tool za vkarvane na produkti)" ili neshto podobno, no tova da ne otneme pove4e ot 2 chasa vse pak. Design ne se iziskva. Gleda se samo funkcionalnost, postignata za dadeno vreme. Ako vi se zanimava davaite :)

Login incorrect!
Отговор
в отговор на Плaмeн #20

Re: Egati demagogiata

айде сега - въобще не им е толкова развита средата, и за всичко по-различно от Хелоу Уорлд ще ти трябва да пишеш код.....
това, че мадами си пишат дипломните работи на Делфи без да знаят що е то дебъг, е отделен въпрос :)

Отговор